coreboot-kgpe-d16/payloads/libpayload/drivers/usb
Aaron Durbin e3260ec29a libpayload: usb: don't prematurely free the usb device
Before the controller's destroy_device() could interrogate
the usbdev_t object usb_detach_device() was freeing and
NULLing out the pointer. That results in all callers who
needed that object to start accessing random bits of memory.

This eventually led into free()ing memory it shouldn't which
corrupted the allocator's state. Eventually, all forward
progress was lost by way of a single ended linked list
turning into a circular list.

The culprit seems to be a bad merge in commit e00ba21.

BUG=chrome-os-partner:43419
BRANCH=None
TEST=Can boot into OS now w/o "hanging" on glados.

Original-Change-Id: I86dcaa1dbaf112ac6782e90dad40f0932f273a1f
Original-Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/290048
Original-Reviewed-by: Julius Werner <jwerner@chromium.org>

Change-Id: I9135eb0f798bf7dbeccc7a033c3f8471720a0de5
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/11173
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
2015-08-13 16:34:09 +02:00
..
TODO Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
dwc2.c libpayload: usb: dwc2: support split transaction 2015-07-16 22:39:59 +02:00
dwc2.h Remove address from GPLv2 headers 2015-05-21 20:50:25 +02:00
dwc2_private.h libpayload: usb: dwc2: support split transaction 2015-07-16 22:39:59 +02:00
dwc2_rh.c Remove address from GPLv2 headers 2015-05-21 20:50:25 +02:00
ehci.c libpayload: usb: dwc2: support split transaction 2015-07-16 22:39:59 +02:00
ehci.h libpayload: Use unsigned long for BARs in *hci_init() 2014-07-10 20:55:41 +02:00
ehci_private.h libpayload: EHCI: Support root-hub TT feature 2015-03-23 17:57:40 +01:00
ehci_rh.c libpayload: EHCI: Support root-hub TT feature 2015-03-23 17:57:40 +01:00
generic_hub.c libpayload: usb: Remove generic roothub reset port function 2014-10-02 17:28:47 +02:00
generic_hub.h libpayload: usb: Remove generic roothub reset port function 2014-10-02 17:28:47 +02:00
ohci.c libpayload: Make Kconfig bools use IS_ENABLED() 2015-06-30 18:55:15 +02:00
ohci.h libpayload: Use unsigned long for BARs in *hci_init() 2014-07-10 20:55:41 +02:00
ohci_private.h libpayload: usb: Make OHCI work with ARM systems 2014-10-22 23:53:54 +02:00
ohci_rh.c libpayload: usb: Fix up usb_shutdown() code paths 2014-11-13 06:22:45 +01:00
quirks.c Remove empty lines at end of file 2015-06-08 00:55:07 +02:00
uhci.c libpayload: usb: Remove automatic clear_stall() calls from transfers 2014-11-13 06:22:58 +01:00
uhci.h libpayload: Add USB support for non-PCI controllers 2013-11-25 23:31:52 +01:00
uhci_private.h libpayload: Remove bitfield use from UHCI data structures 2012-01-10 00:02:54 +01:00
uhci_rh.c libpayload: Improve sanity checking in UHCI driver 2015-02-23 21:59:25 +01:00
usb.c libpayload: usb: don't prematurely free the usb device 2015-08-13 16:34:09 +02:00
usb_dev.c Fix the USB code to find the headers after they were moved. 2008-09-11 17:29:00 +00:00
usbhid.c libpayload: Make Kconfig bools use IS_ENABLED() 2015-06-30 18:55:15 +02:00
usbhub.c libpayload: usb: Add support for SuperSpeed hubs 2015-07-18 09:40:48 +02:00
usbinit.c libpayload: Make Kconfig bools use IS_ENABLED() 2015-06-30 18:55:15 +02:00
usbmsc.c libpayload: avoid memory overflows 2015-01-03 23:58:23 +01:00
xhci.c libpayload: Make Kconfig bools use IS_ENABLED() 2015-06-30 18:55:15 +02:00
xhci.h libpayload: Use unsigned long for BARs in *hci_init() 2014-07-10 20:55:41 +02:00
xhci_commands.c libpayload: usb: Support MTK xHCI host controller 2015-06-03 11:11:59 +02:00
xhci_debug.c libpayload: usb: Add support for SuperSpeed hubs 2015-07-18 09:40:48 +02:00
xhci_devconf.c libpayload: usb: Add support for SuperSpeed hubs 2015-07-18 09:40:48 +02:00
xhci_events.c libpayload: xhci: Make XHCI stack usable on ARM 2014-08-14 23:41:21 +02:00
xhci_private.h libpayload: usb: xhci: Prevent address reuse 2015-07-18 09:40:32 +02:00
xhci_rh.c libpayload: usb: Support MTK xHCI host controller 2015-06-03 11:11:59 +02:00