diff options
Diffstat (limited to 'target/linux/brcm2708/patches-3.10/0050-dwc_otg-Fix-incorrect-URB-allocation-error-handling.patch')
-rw-r--r-- | target/linux/brcm2708/patches-3.10/0050-dwc_otg-Fix-incorrect-URB-allocation-error-handling.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-3.10/0050-dwc_otg-Fix-incorrect-URB-allocation-error-handling.patch b/target/linux/brcm2708/patches-3.10/0050-dwc_otg-Fix-incorrect-URB-allocation-error-handling.patch new file mode 100644 index 0000000000..828d9804c2 --- /dev/null +++ b/target/linux/brcm2708/patches-3.10/0050-dwc_otg-Fix-incorrect-URB-allocation-error-handling.patch @@ -0,0 +1,38 @@ +From e3e9b6dbd5507ea5e571acae3ef6ed2e2d5dadcf Mon Sep 17 00:00:00 2001 +From: P33M <P33M@github.com> +Date: Fri, 15 Feb 2013 22:38:40 +0000 +Subject: [PATCH 050/174] dwc_otg: Fix incorrect URB allocation error handling + +If the memory allocation for a dwc_otg_urb failed, the kernel would OOPS +because for some reason a member of the *unallocated* struct was set to +zero. Error handling changed to fail correctly. +--- + drivers/usb/host/dwc_otg/dwc_otg_hcd.c | 16 ++++++---------- + 1 file changed, 6 insertions(+), 10 deletions(-) + +--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c +@@ -3136,17 +3136,13 @@ dwc_otg_hcd_urb_t *dwc_otg_hcd_urb_alloc + else + dwc_otg_urb = DWC_ALLOC(size); + +- if (NULL != dwc_otg_urb) +- dwc_otg_urb->packet_count = iso_desc_count; ++ if (dwc_otg_urb) ++ dwc_otg_urb->packet_count = iso_desc_count; + else { +- dwc_otg_urb->packet_count = 0; +- if (size != 0) { +- DWC_ERROR("**** DWC OTG HCD URB alloc - " +- "%salloc of %db failed\n", +- atomic_alloc?"atomic ":"", size); +- } +- } +- ++ DWC_ERROR("**** DWC OTG HCD URB alloc - " ++ "%salloc of %db failed\n", ++ atomic_alloc?"atomic ":"", size); ++ } + return dwc_otg_urb; + } + |