coreboot-kgpe-d16/payloads/libpayload/drivers/usb
Nico Huber 0c2364c17c libpayload: Fix interrupt-queue cleanup for OHCI
We have to free TDs more carefully if they have been processed by the
controller yet. The current code tries to force the controller to post
them back to the done queue, but that seems wrong. We can't be sure,
when they get written back. This resulted in leaking TDs with an invalid
reference to a freed interrupt queue.

The new approach: Mark the interrupt queue to be destroyed and handle
the freeing later, when the controller posted the last TD to the done
queue.

Change-Id: I79d80a9dc89e1ca79dc125c4bbccbf23664227b3
Signed-off-by: Nico Huber <nico.huber@secunet.com>
Reviewed-on: http://review.coreboot.org/1905
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
2012-11-24 08:54:04 +01:00
..
TODO Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
ehci.c libpayload: ehci: Prevent some race conditions 2012-11-23 18:18:59 +01:00
ehci.h Add an EHCI driver to libpayload's USB stack. 2010-09-25 17:01:13 +00:00
ehci_private.h [PATCH] libpayload: Implement EHCI reset function 2012-11-09 20:10:05 +01:00
ehci_rh.c libpayload: Turn the "debug" #define into the usb_debug static inline function. 2012-11-07 18:38:37 +01:00
ohci.c libpayload: Fix interrupt-queue cleanup for OHCI 2012-11-24 08:54:04 +01:00
ohci.h Add support for OHCI controllers and prelimiary support for xHCI (USB3) controllers. 2010-08-13 09:18:58 +00:00
ohci_private.h libpayload: Add support for interrupt transfers in OHCI 2012-06-21 11:59:11 +02:00
ohci_rh.c libpayload: Rework connection state detection for OHCI 2012-11-24 08:46:34 +01:00
quirks.c libpayload: Turn the "debug" #define into the usb_debug static inline function. 2012-11-07 18:38:37 +01:00
uhci.c libpayload: Handle errors in UHCI interrupt queues 2012-11-24 08:44:01 +01:00
uhci.h Avoid using the name "pid_t", which is used on unixoid systems. 2010-06-07 13:58:17 +00:00
uhci_private.h libpayload: Remove bitfield use from UHCI data structures 2012-01-10 00:02:54 +01:00
uhci_rh.c libpayload: Turn the "debug" #define into the usb_debug static inline function. 2012-11-07 18:38:37 +01:00
usb.c libpayload: Turn the "debug" #define into the usb_debug static inline function. 2012-11-07 18:38:37 +01: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 USB HID support multiple keyboards 2012-11-23 18:19:06 +01:00
usbhub.c libpayload: Detach devices behind removed USB hubs 2012-11-23 18:18:31 +01:00
usbinit.c libpayload: Fix some missing-prototype warnings 2012-11-23 18:17:24 +01:00
usbmsc.c libpayload: More compliant error recovery in USB MSC 2012-11-23 18:18:14 +01:00
xhci.c libpayload: Add init() function to hci_t and rework uhci_reset() 2012-11-14 17:45:16 +01:00
xhci.h Add support for OHCI controllers and prelimiary support for xHCI (USB3) controllers. 2010-08-13 09:18:58 +00:00
xhci_private.h Add support for OHCI controllers and prelimiary support for xHCI (USB3) controllers. 2010-08-13 09:18:58 +00:00
xhci_rh.c libpayload: Turn the "debug" #define into the usb_debug static inline function. 2012-11-07 18:38:37 +01:00