| From cf4df407e0d7cde60a45369c2a3414d18e2d4fdd Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Date: Wed, 13 Dec 2017 11:59:39 +0100 |
| Subject: Revert "USB: core: only clean up what we allocated" |
| |
| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| commit cf4df407e0d7cde60a45369c2a3414d18e2d4fdd upstream. |
| |
| This reverts commit 32fd87b3bbf5f7a045546401dfe2894dbbf4d8c3. |
| |
| Alan wrote a better fix for this... |
| |
| Cc: Andrey Konovalov <andreyknvl@google.com> |
| Cc: stable <stable@vger.kernel.org> |
| Cc: Nathan Chancellor <natechancellor@gmail.com> |
| Cc: Arnd Bergmann <arnd@arndb.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/usb/core/config.c | 9 +++------ |
| 1 file changed, 3 insertions(+), 6 deletions(-) |
| |
| --- a/drivers/usb/core/config.c |
| +++ b/drivers/usb/core/config.c |
| @@ -768,21 +768,18 @@ void usb_destroy_configuration(struct us |
| return; |
| |
| if (dev->rawdescriptors) { |
| - for (i = 0; i < dev->descriptor.bNumConfigurations && |
| - i < USB_MAXCONFIG; i++) |
| + for (i = 0; i < dev->descriptor.bNumConfigurations; i++) |
| kfree(dev->rawdescriptors[i]); |
| |
| kfree(dev->rawdescriptors); |
| dev->rawdescriptors = NULL; |
| } |
| |
| - for (c = 0; c < dev->descriptor.bNumConfigurations && |
| - c < USB_MAXCONFIG; c++) { |
| + for (c = 0; c < dev->descriptor.bNumConfigurations; c++) { |
| struct usb_host_config *cf = &dev->config[c]; |
| |
| kfree(cf->string); |
| - for (i = 0; i < cf->desc.bNumInterfaces && |
| - i < USB_MAXINTERFACES; i++) { |
| + for (i = 0; i < cf->desc.bNumInterfaces; i++) { |
| if (cf->intf_cache[i]) |
| kref_put(&cf->intf_cache[i]->ref, |
| usb_release_interface_cache); |