Commit d6f46636 authored by Jakob Koschel's avatar Jakob Koschel Committed by Greg Kroah-Hartman
Browse files

usb: gadget: composite: remove usage of list iterator past the loop body

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: default avatarJakob Koschel <jakobkoschel@gmail.com>
Link: https://lore.kernel.org/r/20220308171818.384491-24-jakobkoschel@gmail.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent ac553418
Loading
Loading
Loading
Loading
+14 −13
Original line number Diff line number Diff line
@@ -863,14 +863,15 @@ 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) {
		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
@@ -878,10 +879,10 @@ static int set_config(struct usb_composite_dev *cdev,
			 */
			if (cdev->config)
				reset_config(cdev);
			c = iter;
			result = 0;
			break;
		}
		}
		if (result < 0)
			goto done;
	} else { /* Zero configuration value - need to reset the config */