From 26f2e4a061d1751a5d155b7f920a51e0af2af808 Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Thu, 24 Jan 2008 09:51:02 +0000 Subject: [PATCH] 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@23713 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/busses/usb/ehci.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/add-ons/kernel/busses/usb/ehci.cpp b/src/add-ons/kernel/busses/usb/ehci.cpp index c75a4c29a0..1bfd84e5c7 100644 --- a/src/add-ons/kernel/busses/usb/ehci.cpp +++ b/src/add-ons/kernel/busses/usb/ehci.cpp @@ -906,6 +906,9 @@ EHCI::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; }