From f39094517448d5c25117cf9ff1f542ddda7da83d Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Thu, 24 Jan 2008 09:52:05 +0000 Subject: [PATCH] Forgot to commit the same change in UHCI: Notify the finisher thread after canceling transfers. It was possible that freeing the allocated transfer resources would be delayed unnecessarily until some other transfer completed and woke up the finisher thread. Found by Salvatore Benedetto, thanks! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23714 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/busses/usb/uhci.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/add-ons/kernel/busses/usb/uhci.cpp b/src/add-ons/kernel/busses/usb/uhci.cpp index 8d44aec44d..f535e30d28 100644 --- a/src/add-ons/kernel/busses/usb/uhci.cpp +++ b/src/add-ons/kernel/busses/usb/uhci.cpp @@ -634,6 +634,9 @@ UHCI::CancelQueuedTransfers(Pipe *pipe, bool force) } Unlock(); + + // notify the finisher so it can clean up the canceled transfers + release_sem_etc(fFinishTransfersSem, 1, B_DO_NOT_RESCHEDULE); return B_OK; }