USB: hub_for_each_child should skip unconnected ports
This patch (as1619) improves the interface to the "hub_for_each_child" macro. The name clearly suggests that the macro iterates over child devices; it does not suggest that the loop will also iterate over unnconnected ports. The patch changes the macro so that it will skip over unconnected ports and iterate only the actual child devices. The two existing call sites are updated to avoid testing for a NULL child pointer, which is now unnecessary. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Šī revīzija ir iekļauta:

revīziju iesūtīja
Greg Kroah-Hartman

vecāks
d39dbc8918
revīzija
969ddcfc95
@@ -2036,10 +2036,8 @@ static void collect_usb_address_map(struct usb_device *udev, unsigned long *map)
|
||||
udev->parent->descriptor.bDeviceClass == USB_CLASS_HUB)
|
||||
map[udev->devnum/32] |= (1 << (udev->devnum % 32));
|
||||
|
||||
usb_hub_for_each_child(udev, chix, childdev) {
|
||||
if (childdev)
|
||||
collect_usb_address_map(childdev, map);
|
||||
}
|
||||
usb_hub_for_each_child(udev, chix, childdev)
|
||||
collect_usb_address_map(childdev, map);
|
||||
}
|
||||
|
||||
/* this function must be called with interrupt disabled */
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user