Merge remote-tracking branch 'torvalds/master' into perf/urgent
[linux-2.6-microblaze.git] / drivers / net / ntb_netdev.c
index df8d49a..a5bab61 100644 (file)
@@ -71,7 +71,6 @@ static unsigned int tx_start = 10;
 static unsigned int tx_stop = 5;
 
 struct ntb_netdev {
-       struct list_head list;
        struct pci_dev *pdev;
        struct net_device *ndev;
        struct ntb_transport_qp *qp;
@@ -81,8 +80,6 @@ struct ntb_netdev {
 #define        NTB_TX_TIMEOUT_MS       1000
 #define        NTB_RXQ_SIZE            100
 
-static LIST_HEAD(dev_list);
-
 static void ntb_netdev_event_handler(void *data, int link_is_up)
 {
        struct net_device *ndev = data;
@@ -452,7 +449,7 @@ static int ntb_netdev_probe(struct device *client_dev)
        if (rc)
                goto err1;
 
-       list_add(&dev->list, &dev_list);
+       dev_set_drvdata(client_dev, ndev);
        dev_info(&pdev->dev, "%s created\n", ndev->name);
        return 0;
 
@@ -465,27 +462,8 @@ err:
 
 static void ntb_netdev_remove(struct device *client_dev)
 {
-       struct ntb_dev *ntb;
-       struct net_device *ndev;
-       struct pci_dev *pdev;
-       struct ntb_netdev *dev;
-       bool found = false;
-
-       ntb = dev_ntb(client_dev->parent);
-       pdev = ntb->pdev;
-
-       list_for_each_entry(dev, &dev_list, list) {
-               if (dev->pdev == pdev) {
-                       found = true;
-                       break;
-               }
-       }
-       if (!found)
-               return;
-
-       list_del(&dev->list);
-
-       ndev = dev->ndev;
+       struct net_device *ndev = dev_get_drvdata(client_dev);
+       struct ntb_netdev *dev = netdev_priv(ndev);
 
        unregister_netdev(ndev);
        ntb_transport_free_queue(dev->qp);