diff --git a/src/add-ons/kernel/bus_managers/usb/BusManager.cpp b/src/add-ons/kernel/bus_managers/usb/BusManager.cpp index d439a2e2db..8e9d7678b8 100644 --- a/src/add-ons/kernel/bus_managers/usb/BusManager.cpp +++ b/src/add-ons/kernel/bus_managers/usb/BusManager.cpp @@ -268,6 +268,14 @@ BusManager::SubmitTransfer(Transfer *transfer) } +status_t +BusManager::CancelQueuedTransfers(Pipe *pipe) +{ + // virtual function to be overridden + return B_ERROR; +} + + status_t BusManager::NotifyPipeChange(Pipe *pipe, usb_change change) { diff --git a/src/add-ons/kernel/bus_managers/usb/Pipe.cpp b/src/add-ons/kernel/bus_managers/usb/Pipe.cpp index 0abe8ada24..443025bb48 100644 --- a/src/add-ons/kernel/bus_managers/usb/Pipe.cpp +++ b/src/add-ons/kernel/bus_managers/usb/Pipe.cpp @@ -41,8 +41,7 @@ Pipe::SubmitTransfer(Transfer *transfer) status_t Pipe::CancelQueuedTransfers() { - TRACE_ERROR(("USB Pipe: cancelling transfers is not implemented!\n")); - return B_ERROR; + return GetBusManager()->CancelQueuedTransfers(this); } diff --git a/src/add-ons/kernel/bus_managers/usb/usb_p.h b/src/add-ons/kernel/bus_managers/usb/usb_p.h index 46fec81c79..f78a1637f4 100644 --- a/src/add-ons/kernel/bus_managers/usb/usb_p.h +++ b/src/add-ons/kernel/bus_managers/usb/usb_p.h @@ -171,6 +171,7 @@ virtual status_t Start(); virtual status_t Stop(); virtual status_t SubmitTransfer(Transfer *transfer); +virtual status_t CancelQueuedTransfers(Pipe *pipe); virtual status_t NotifyPipeChange(Pipe *pipe, usb_change change);