usb: host: u132-hcd: Drop if with an always true condition
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Tue, 21 Mar 2023 10:19:11 +0000 (11:19 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 21 Mar 2023 10:25:00 +0000 (11:25 +0100)
A platform device's .remove() callback is only ever called after
.probe() successfully completed. After such a successful call,
platform_get_drvdata() doesn't return NULL. Simplify accordingly.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Link: https://lore.kernel.org/r/20230321101911.342538-3-u.kleine-koenig@pengutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/u132-hcd.c

index f543399..45244c7 100644 (file)
@@ -2977,39 +2977,36 @@ static const struct hc_driver u132_hc_driver = {
 static int u132_remove(struct platform_device *pdev)
 {
        struct usb_hcd *hcd = platform_get_drvdata(pdev);
-       if (hcd) {
-               struct u132 *u132 = hcd_to_u132(hcd);
-               if (u132->going++ > 1) {
-                       dev_err(&u132->platform_dev->dev,
-                               "already being removed\n");
-                       return -ENODEV;
-               } else {
-                       int rings = MAX_U132_RINGS;
-                       int endps = MAX_U132_ENDPS;
-                       dev_err(&u132->platform_dev->dev,
-                               "removing device u132.%d\n",
-                               u132->sequence_num);
-                       msleep(100);
-                       mutex_lock(&u132->sw_lock);
-                       u132_monitor_cancel_work(u132);
-                       while (rings-- > 0) {
-                               struct u132_ring *ring = &u132->ring[rings];
-                               u132_ring_cancel_work(u132, ring);
-                       }
-                       while (endps-- > 0) {
-                               struct u132_endp *endp = u132->endp[endps];
-                               if (endp)
-                                       u132_endp_cancel_work(u132, endp);
-                       }
-                       u132->going += 1;
-                       printk(KERN_INFO "removing device u132.%d\n",
-                               u132->sequence_num);
-                       mutex_unlock(&u132->sw_lock);
-                       usb_remove_hcd(hcd);
-                       u132_u132_put_kref(u132);
-                       return 0;
-               }
+       struct u132 *u132 = hcd_to_u132(hcd);
+
+       if (u132->going++ > 1) {
+               dev_err(&u132->platform_dev->dev,
+                       "already being removed\n");
+               return -ENODEV;
        } else {
+               int rings = MAX_U132_RINGS;
+               int endps = MAX_U132_ENDPS;
+               dev_err(&u132->platform_dev->dev,
+                       "removing device u132.%d\n",
+                       u132->sequence_num);
+               msleep(100);
+               mutex_lock(&u132->sw_lock);
+               u132_monitor_cancel_work(u132);
+               while (rings-- > 0) {
+                       struct u132_ring *ring = &u132->ring[rings];
+                       u132_ring_cancel_work(u132, ring);
+               }
+               while (endps-- > 0) {
+                       struct u132_endp *endp = u132->endp[endps];
+                       if (endp)
+                               u132_endp_cancel_work(u132, endp);
+               }
+               u132->going += 1;
+               printk(KERN_INFO "removing device u132.%d\n",
+                       u132->sequence_num);
+               mutex_unlock(&u132->sw_lock);
+               usb_remove_hcd(hcd);
+               u132_u132_put_kref(u132);
                return 0;
        }
 }
@@ -3092,6 +3089,11 @@ static int u132_probe(struct platform_device *pdev)
        if (retval)
                return retval;
 
+       /*
+        * Note that after a successful call of usb_create_hcd(),
+        * dev_set_drvdata() was called such that platform_get_drvdata(pdev)
+        * returns hcd later on.
+        */
        hcd = usb_create_hcd(&u132_hc_driver, &pdev->dev, dev_name(&pdev->dev));
        if (!hcd) {
                printk(KERN_ERR "failed to create the usb hcd struct for U132\n");