[haiku-commits] haiku: hrev53083 - src/add-ons/kernel/busses/usb

  • From: waddlesplash <waddlesplash@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 18 Apr 2019 14:11:51 -0400 (EDT)

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);


Other related posts:

  • » [haiku-commits] haiku: hrev53083 - src/add-ons/kernel/busses/usb - waddlesplash