diff options
Diffstat (limited to 'drivers/firewire/net.c')
-rw-r--r-- | drivers/firewire/net.c | 50 |
1 files changed, 24 insertions, 26 deletions
diff --git a/drivers/firewire/net.c b/drivers/firewire/net.c index 815b0fcbe918..6b895986dc22 100644 --- a/drivers/firewire/net.c +++ b/drivers/firewire/net.c | |||
@@ -1440,9 +1440,9 @@ static int fwnet_add_peer(struct fwnet_device *dev, | |||
1440 | return 0; | 1440 | return 0; |
1441 | } | 1441 | } |
1442 | 1442 | ||
1443 | static int fwnet_probe(struct device *_dev) | 1443 | static int fwnet_probe(struct fw_unit *unit, |
1444 | const struct ieee1394_device_id *id) | ||
1444 | { | 1445 | { |
1445 | struct fw_unit *unit = fw_unit(_dev); | ||
1446 | struct fw_device *device = fw_parent_device(unit); | 1446 | struct fw_device *device = fw_parent_device(unit); |
1447 | struct fw_card *card = device->card; | 1447 | struct fw_card *card = device->card; |
1448 | struct net_device *net; | 1448 | struct net_device *net; |
@@ -1526,6 +1526,24 @@ static int fwnet_probe(struct device *_dev) | |||
1526 | return ret; | 1526 | return ret; |
1527 | } | 1527 | } |
1528 | 1528 | ||
1529 | /* | ||
1530 | * FIXME abort partially sent fragmented datagrams, | ||
1531 | * discard partially received fragmented datagrams | ||
1532 | */ | ||
1533 | static void fwnet_update(struct fw_unit *unit) | ||
1534 | { | ||
1535 | struct fw_device *device = fw_parent_device(unit); | ||
1536 | struct fwnet_peer *peer = dev_get_drvdata(&unit->device); | ||
1537 | int generation; | ||
1538 | |||
1539 | generation = device->generation; | ||
1540 | |||
1541 | spin_lock_irq(&peer->dev->lock); | ||
1542 | peer->node_id = device->node_id; | ||
1543 | peer->generation = generation; | ||
1544 | spin_unlock_irq(&peer->dev->lock); | ||
1545 | } | ||
1546 | |||
1529 | static void fwnet_remove_peer(struct fwnet_peer *peer, struct fwnet_device *dev) | 1547 | static void fwnet_remove_peer(struct fwnet_peer *peer, struct fwnet_device *dev) |
1530 | { | 1548 | { |
1531 | struct fwnet_partial_datagram *pd, *pd_next; | 1549 | struct fwnet_partial_datagram *pd, *pd_next; |
@@ -1542,9 +1560,9 @@ static void fwnet_remove_peer(struct fwnet_peer *peer, struct fwnet_device *dev) | |||
1542 | kfree(peer); | 1560 | kfree(peer); |
1543 | } | 1561 | } |
1544 | 1562 | ||
1545 | static int fwnet_remove(struct device *_dev) | 1563 | static void fwnet_remove(struct fw_unit *unit) |
1546 | { | 1564 | { |
1547 | struct fwnet_peer *peer = dev_get_drvdata(_dev); | 1565 | struct fwnet_peer *peer = dev_get_drvdata(&unit->device); |
1548 | struct fwnet_device *dev = peer->dev; | 1566 | struct fwnet_device *dev = peer->dev; |
1549 | struct net_device *net; | 1567 | struct net_device *net; |
1550 | int i; | 1568 | int i; |
@@ -1569,26 +1587,6 @@ static int fwnet_remove(struct device *_dev) | |||
1569 | } | 1587 | } |
1570 | 1588 | ||
1571 | mutex_unlock(&fwnet_device_mutex); | 1589 | mutex_unlock(&fwnet_device_mutex); |
1572 | |||
1573 | return 0; | ||
1574 | } | ||
1575 | |||
1576 | /* | ||
1577 | * FIXME abort partially sent fragmented datagrams, | ||
1578 | * discard partially received fragmented datagrams | ||
1579 | */ | ||
1580 | static void fwnet_update(struct fw_unit *unit) | ||
1581 | { | ||
1582 | struct fw_device *device = fw_parent_device(unit); | ||
1583 | struct fwnet_peer *peer = dev_get_drvdata(&unit->device); | ||
1584 | int generation; | ||
1585 | |||
1586 | generation = device->generation; | ||
1587 | |||
1588 | spin_lock_irq(&peer->dev->lock); | ||
1589 | peer->node_id = device->node_id; | ||
1590 | peer->generation = generation; | ||
1591 | spin_unlock_irq(&peer->dev->lock); | ||
1592 | } | 1590 | } |
1593 | 1591 | ||
1594 | static const struct ieee1394_device_id fwnet_id_table[] = { | 1592 | static const struct ieee1394_device_id fwnet_id_table[] = { |
@@ -1614,10 +1612,10 @@ static struct fw_driver fwnet_driver = { | |||
1614 | .owner = THIS_MODULE, | 1612 | .owner = THIS_MODULE, |
1615 | .name = KBUILD_MODNAME, | 1613 | .name = KBUILD_MODNAME, |
1616 | .bus = &fw_bus_type, | 1614 | .bus = &fw_bus_type, |
1617 | .probe = fwnet_probe, | ||
1618 | .remove = fwnet_remove, | ||
1619 | }, | 1615 | }, |
1616 | .probe = fwnet_probe, | ||
1620 | .update = fwnet_update, | 1617 | .update = fwnet_update, |
1618 | .remove = fwnet_remove, | ||
1621 | .id_table = fwnet_id_table, | 1619 | .id_table = fwnet_id_table, |
1622 | }; | 1620 | }; |
1623 | 1621 | ||