usb: gadget: composite: remove usage of list iterator past the loop body
authorJakob Koschel <jakobkoschel@gmail.com>
Tue, 8 Mar 2022 17:18:15 +0000 (18:18 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 15 Mar 2022 17:19:45 +0000 (18:19 +0100)
To move the list iterator variable into the list_for_each_entry_*()
macro in the future it should be avoided to use the list iterator
variable after the loop body.

To *never* use the list iterator variable after the loop it was
concluded to use a separate iterator variable [1].

Link: https://lore.kernel.org/all/YhdfEIwI4EdtHdym@kroah.com/
Signed-off-by: Jakob Koschel <jakobkoschel@gmail.com>
Link: https://lore.kernel.org/r/20220308171818.384491-24-jakobkoschel@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/composite.c

index 4f7e789..2eaeaae 100644 (file)
@@ -863,24 +863,25 @@ static int set_config(struct usb_composite_dev *cdev,
                const struct usb_ctrlrequest *ctrl, unsigned number)
 {
        struct usb_gadget       *gadget = cdev->gadget;
-       struct usb_configuration *c = NULL;
+       struct usb_configuration *c = NULL, *iter;
        int                     result = -EINVAL;
        unsigned                power = gadget_is_otg(gadget) ? 8 : 100;
        int                     tmp;
 
        if (number) {
-               list_for_each_entry(c, &cdev->configs, list) {
-                       if (c->bConfigurationValue == number) {
-                               /*
-                                * We disable the FDs of the previous
-                                * configuration only if the new configuration
-                                * is a valid one
-                                */
-                               if (cdev->config)
-                                       reset_config(cdev);
-                               result = 0;
-                               break;
-                       }
+               list_for_each_entry(iter, &cdev->configs, list) {
+                       if (iter->bConfigurationValue != number)
+                               continue;
+                       /*
+                        * We disable the FDs of the previous
+                        * configuration only if the new configuration
+                        * is a valid one
+                        */
+                       if (cdev->config)
+                               reset_config(cdev);
+                       c = iter;
+                       result = 0;
+                       break;
                }
                if (result < 0)
                        goto done;