Lines Matching refs:peer
358 struct fwnet_peer *peer, u16 datagram_label, unsigned dg_size, in fwnet_pd_new() argument
382 list_add_tail(&new->pd_link, &peer->pd_list); in fwnet_pd_new()
394 static struct fwnet_partial_datagram *fwnet_pd_find(struct fwnet_peer *peer, in fwnet_pd_find() argument
399 list_for_each_entry(pd, &peer->pd_list, pd_link) in fwnet_pd_find()
419 static bool fwnet_pd_update(struct fwnet_peer *peer, in fwnet_pd_update() argument
432 list_move_tail(&pd->pd_link, &peer->pd_list); in fwnet_pd_update()
450 struct fwnet_peer *peer; in fwnet_peer_find_by_guid() local
452 list_for_each_entry(peer, &dev->peer_list, peer_link) in fwnet_peer_find_by_guid()
453 if (peer->guid == guid) in fwnet_peer_find_by_guid()
454 return peer; in fwnet_peer_find_by_guid()
463 struct fwnet_peer *peer; in fwnet_peer_find_by_node_id() local
465 list_for_each_entry(peer, &dev->peer_list, peer_link) in fwnet_peer_find_by_node_id()
466 if (peer->node_id == node_id && in fwnet_peer_find_by_node_id()
467 peer->generation == generation) in fwnet_peer_find_by_node_id()
468 return peer; in fwnet_peer_find_by_node_id()
574 struct fwnet_peer *peer; in fwnet_incoming_packet() local
633 peer = fwnet_peer_find_by_node_id(dev, source_node_id, generation); in fwnet_incoming_packet()
634 if (!peer) { in fwnet_incoming_packet()
639 pd = fwnet_pd_find(peer, datagram_label); in fwnet_incoming_packet()
641 while (peer->pdg_size >= FWNET_MAX_FRAGMENTS) { in fwnet_incoming_packet()
643 fwnet_pd_delete(list_first_entry(&peer->pd_list, in fwnet_incoming_packet()
645 peer->pdg_size--; in fwnet_incoming_packet()
647 pd = fwnet_pd_new(net, peer, datagram_label, in fwnet_incoming_packet()
653 peer->pdg_size++; in fwnet_incoming_packet()
662 pd = fwnet_pd_new(net, peer, datagram_label, in fwnet_incoming_packet()
665 peer->pdg_size--; in fwnet_incoming_packet()
670 if (!fwnet_pd_update(peer, pd, buf, fg_off, len)) { in fwnet_incoming_packet()
677 peer->pdg_size--; in fwnet_incoming_packet()
689 peer->pdg_size--; in fwnet_incoming_packet()
1242 struct fwnet_peer *peer; in fwnet_tx() local
1300 peer = fwnet_peer_find_by_guid(dev, be64_to_cpu(guid)); in fwnet_tx()
1301 if (!peer) in fwnet_tx()
1304 generation = peer->generation; in fwnet_tx()
1305 dest_node = peer->node_id; in fwnet_tx()
1306 max_payload = peer->max_payload; in fwnet_tx()
1307 datagram_label_ptr = &peer->datagram_label; in fwnet_tx()
1312 ptask->speed = peer->speed; in fwnet_tx()
1409 struct fwnet_peer *peer; in fwnet_add_peer() local
1411 peer = kmalloc(sizeof(*peer), GFP_KERNEL); in fwnet_add_peer()
1412 if (!peer) in fwnet_add_peer()
1415 dev_set_drvdata(&unit->device, peer); in fwnet_add_peer()
1417 peer->dev = dev; in fwnet_add_peer()
1418 peer->guid = (u64)device->config_rom[3] << 32 | device->config_rom[4]; in fwnet_add_peer()
1419 INIT_LIST_HEAD(&peer->pd_list); in fwnet_add_peer()
1420 peer->pdg_size = 0; in fwnet_add_peer()
1421 peer->datagram_label = 0; in fwnet_add_peer()
1422 peer->speed = device->max_speed; in fwnet_add_peer()
1423 peer->max_payload = fwnet_max_payload(device->max_rec, peer->speed); in fwnet_add_peer()
1425 peer->generation = device->generation; in fwnet_add_peer()
1427 peer->node_id = device->node_id; in fwnet_add_peer()
1430 list_add_tail(&peer->peer_link, &dev->peer_list); in fwnet_add_peer()
1532 struct fwnet_peer *peer = dev_get_drvdata(&unit->device); in fwnet_update() local
1537 spin_lock_irq(&peer->dev->lock); in fwnet_update()
1538 peer->node_id = device->node_id; in fwnet_update()
1539 peer->generation = generation; in fwnet_update()
1540 spin_unlock_irq(&peer->dev->lock); in fwnet_update()
1543 static void fwnet_remove_peer(struct fwnet_peer *peer, struct fwnet_device *dev) in fwnet_remove_peer() argument
1548 list_del(&peer->peer_link); in fwnet_remove_peer()
1553 list_for_each_entry_safe(pd, pd_next, &peer->pd_list, pd_link) in fwnet_remove_peer()
1556 kfree(peer); in fwnet_remove_peer()
1561 struct fwnet_peer *peer = dev_get_drvdata(&unit->device); in fwnet_remove() local
1562 struct fwnet_device *dev = peer->dev; in fwnet_remove()
1570 fwnet_remove_peer(peer, dev); in fwnet_remove()