hrev53083 adds 2 changesets to branch 'master'
old head: ce624c696f5657395b63595c115cc341f2c5c488
new head: 9f7fb0e5c9094fb1a0ac980f020d4e19cd7a680c
overview:
https://git.haiku-os.org/haiku/log/?qt=range&q=9f7fb0e5c909+%5Ece624c696f56
----------------------------------------------------------------------------
e8b2085d8777: busses/usb: Print the PCI ID of the device with an invalid IRQ.
9f7fb0e5c909: EHCI: Destroy the cleanup semaphore on teardown.
Otherwise, the wait_for_thread() of the fCleanupThread will block
forever, stalling the boot process.
Fixes another part of #15004.
[ Augustin Cavalier <waddlesplash@xxxxxxxxx> ]
----------------------------------------------------------------------------
4 files changed, 10 insertions(+), 6 deletions(-)
src/add-ons/kernel/busses/usb/ehci.cpp | 4 +++-
src/add-ons/kernel/busses/usb/ohci.cpp | 3 ++-
src/add-ons/kernel/busses/usb/uhci.cpp | 6 +++---
src/add-ons/kernel/busses/usb/xhci.cpp | 3 ++-
############################################################################
Commit: e8b2085d87771535c080bb6d77f71ae6d16fb376
URL: https://git.haiku-os.org/haiku/commit/?id=e8b2085d8777
Author: Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date: Thu Apr 18 18:01:13 2019 UTC
busses/usb: Print the PCI ID of the device with an invalid IRQ.
----------------------------------------------------------------------------
diff --git a/src/add-ons/kernel/busses/usb/ehci.cpp
b/src/add-ons/kernel/busses/usb/ehci.cpp
index d857e02a90..cec3fbb957 100644
--- a/src/add-ons/kernel/busses/usb/ehci.cpp
+++ b/src/add-ons/kernel/busses/usb/ehci.cpp
@@ -459,7 +459,8 @@ EHCI::EHCI(pci_info *info, Stack *stack)
}
if (fIRQ == 0 || fIRQ == 0xFF) {
- TRACE_MODULE_ERROR("device was assigned an invalid
IRQ\n");
+ TRACE_MODULE_ERROR("device PCI:%d:%d:%d was assigned an
invalid IRQ\n",
+ fPCIInfo->bus, fPCIInfo->device,
fPCIInfo->function);
return;
}
diff --git a/src/add-ons/kernel/busses/usb/ohci.cpp
b/src/add-ons/kernel/busses/usb/ohci.cpp
index 6b706b1b40..d10cb99fa6 100644
--- a/src/add-ons/kernel/busses/usb/ohci.cpp
+++ b/src/add-ons/kernel/busses/usb/ohci.cpp
@@ -433,7 +433,8 @@ OHCI::OHCI(pci_info *info, Stack *stack)
}
if (fIRQ == 0 || fIRQ == 0xFF) {
- TRACE_MODULE_ERROR("device was assigned an invalid IRQ\n");
+ TRACE_MODULE_ERROR("device PCI:%d:%d:%d was assigned an invalid
IRQ\n",
+ fPCIInfo->bus, fPCIInfo->device, fPCIInfo->function);
return;
}
diff --git a/src/add-ons/kernel/busses/usb/uhci.cpp
b/src/add-ons/kernel/busses/usb/uhci.cpp
index bbb59f6d89..798dd60d81 100644
--- a/src/add-ons/kernel/busses/usb/uhci.cpp
+++ b/src/add-ons/kernel/busses/usb/uhci.cpp
@@ -349,8 +349,7 @@ UHCI::AddTo(Stack *stack)
get_module(B_PCI_X86_MODULE_NAME, (module_info
**)&sPCIx86Module);
if (bus->InitCheck() < B_OK) {
- TRACE_MODULE_ERROR("AddTo(): InitCheck() failed
0x%08" B_PRIx32
- "\n", bus->InitCheck());
+ TRACE_MODULE_ERROR("bus failed init check\n");
delete bus;
continue;
}
@@ -578,7 +577,8 @@ UHCI::UHCI(pci_info *info, Stack *stack)
}
if (fIRQ == 0 || fIRQ == 0xFF) {
- TRACE_MODULE_ERROR("device was assigned an invalid IRQ\n");
+ TRACE_MODULE_ERROR("device PCI:%d:%d:%d was assigned an invalid
IRQ\n",
+ fPCIInfo->bus, fPCIInfo->device, fPCIInfo->function);
return;
}
diff --git a/src/add-ons/kernel/busses/usb/xhci.cpp
b/src/add-ons/kernel/busses/usb/xhci.cpp
index d6f28aef2b..9b32457aaf 100644
--- a/src/add-ons/kernel/busses/usb/xhci.cpp
+++ b/src/add-ons/kernel/busses/usb/xhci.cpp
@@ -385,7 +385,8 @@ XHCI::XHCI(pci_info *info, Stack *stack)
}
if (fIRQ == 0 || fIRQ == 0xFF) {
- TRACE_MODULE_ERROR("device was assigned an invalid IRQ\n");
+ TRACE_MODULE_ERROR("device PCI:%d:%d:%d was assigned an invalid
IRQ\n",
+ fPCIInfo->bus, fPCIInfo->device, fPCIInfo->function);
return;
}
############################################################################
Revision: hrev53083
Commit: 9f7fb0e5c9094fb1a0ac980f020d4e19cd7a680c
URL: https://git.haiku-os.org/haiku/commit/?id=9f7fb0e5c909
Author: Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date: Thu Apr 18 18:06:46 2019 UTC
Ticket: https://dev.haiku-os.org/ticket/15004
EHCI: Destroy the cleanup semaphore on teardown.
Otherwise, the wait_for_thread() of the fCleanupThread will block
forever, stalling the boot process.
Fixes another part of #15004.
----------------------------------------------------------------------------
diff --git a/src/add-ons/kernel/busses/usb/ehci.cpp
b/src/add-ons/kernel/busses/usb/ehci.cpp
index cec3fbb957..f1164e0245 100644
--- a/src/add-ons/kernel/busses/usb/ehci.cpp
+++ b/src/add-ons/kernel/busses/usb/ehci.cpp
@@ -659,6 +659,7 @@ EHCI::~EHCI()
delete_sem(fAsyncAdvanceSem);
delete_sem(fFinishTransfersSem);
delete_sem(fFinishIsochronousTransfersSem);
+ delete_sem(fCleanupSem);
wait_for_thread(fFinishThread, &result);
wait_for_thread(fCleanupThread, &result);
wait_for_thread(fFinishIsochronousThread, &result);