summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/usb_hub.c
diff options
context:
space:
mode:
authorthompsa <thompsa@FreeBSD.org>2009-04-22 17:07:53 +0000
committerthompsa <thompsa@FreeBSD.org>2009-04-22 17:07:53 +0000
commit5231ef1439e966728a0772ba8f5b6ca06d20bcf3 (patch)
tree5942084a336dab5270d641e447751934b56ab75c /sys/dev/usb/usb_hub.c
parentd9f29f24a6c9269725359671c325a86ff98f2c77 (diff)
downloadFreeBSD-src-5231ef1439e966728a0772ba8f5b6ca06d20bcf3.zip
FreeBSD-src-5231ef1439e966728a0772ba8f5b6ca06d20bcf3.tar.gz
MFp4 //depot/projects/usb@160413
Use direct reference to parent high-speed HUB instead of indirect, due to pointer clearing race at detach of parent USB HUB. Reported by: kientzle Submitted by: Hans Petter Selasky PR: usb/133545
Diffstat (limited to 'sys/dev/usb/usb_hub.c')
-rw-r--r--sys/dev/usb/usb_hub.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/usb/usb_hub.c b/sys/dev/usb/usb_hub.c
index 627d8a7..3c63f6c 100644
--- a/sys/dev/usb/usb_hub.c
+++ b/sys/dev/usb/usb_hub.c
@@ -1117,7 +1117,7 @@ usb2_intr_schedule_adjust(struct usb2_device *udev, int16_t len, uint8_t slot)
* access.
*/
- hub = bus->devices[udev->hs_hub_addr]->hub;
+ hub = udev->parent_hs_hub->hub;
if (slot >= USB_HS_MICRO_FRAMES_MAX) {
slot = usb2_intr_find_best_slot(hub->uframe_usage,
USB_FS_ISOC_UFRAME_MAX, 6);
@@ -1232,7 +1232,7 @@ usb2_fs_isoc_schedule_isoc_time_expand(struct usb2_device *udev,
isoc_time = usb2_isoc_time_expand(udev->bus, isoc_time);
- hs_hub = udev->bus->devices[udev->hs_hub_addr]->hub;
+ hs_hub = udev->parent_hs_hub->hub;
if (hs_hub != NULL) {
OpenPOWER on IntegriCloud