Staging: ipack/devices/ipoctal: Clean up device removal.
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / staging / ipack / devices / ipoctal.c
index 8e61ebd..b84ab5e 100644 (file)
@@ -725,6 +725,7 @@ static int ipoctal_probe(struct ipack_device *dev)
        if (res)
                goto out_uninst;
 
+       dev_set_drvdata(&dev->dev, ipoctal);
        list_add_tail(&ipoctal->list, &ipoctal_list);
        return 0;
 
@@ -751,14 +752,9 @@ static void __ipoctal_remove(struct ipoctal *ipoctal)
        kfree(ipoctal);
 }
 
-static void ipoctal_remove(struct ipack_device *device)
+static void ipoctal_remove(struct ipack_device *idev)
 {
-       struct ipoctal *ipoctal, *next;
-
-       list_for_each_entry_safe(ipoctal, next, &ipoctal_list, list) {
-               if (ipoctal->dev == device)
-                       __ipoctal_remove(ipoctal);
-       }
+       __ipoctal_remove(dev_get_drvdata(&idev->dev));
 }
 
 static DEFINE_IPACK_DEVICE_TABLE(ipoctal_ids) = {