
Am Montag, den 17.08.2020, 15:06 +0200 schrieb Stefan Roese:
Octeon uses mapped addresses for virtual and physical memory. Its not that easy to calculate the resulting addresses here. So lets remove this BUG_ON() for Octeon in xhci_bulk_tx().
Signed-off-by: Stefan Roese sr@denx.de Cc: Bin Meng bmeng.cn@gmail.com Cc: Marek Vasut marex@denx.de
drivers/usb/host/xhci-ring.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c index 092ed6eaf1..a762177c57 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c @@ -726,8 +726,11 @@ int xhci_bulk_tx(struct usb_device *udev, unsigned long pipe,
BUG_ON(TRB_TO_SLOT_ID(field) != slot_id); BUG_ON(TRB_TO_EP_INDEX(field) != ep_index);
- BUG_ON(*(void **)(uintptr_t)le64_to_cpu(event->trans_event.buffer) -
buffer > (size_t)length);
- if (!IS_ENABLED(CONFIG_ARCH_OCTEON)) {
BUG_ON(*(void **)(uintptr_t)le64_to_cpu(
event->trans_event.buffer) - buffer >
(size_t)length);
- }
why not remove the check? Or add at least a generic Kconfig option for special handling on archs with memory remapping. Arch or SoC specific config options in generic code are bad ;)
record_transfer_result(udev, event, length); xhci_acknowledge_event(ctrl);