[PATCH v1 2/8] usb: xhci: xhci_bulk_tx: Don't "BUG" when comparing addresses on Octeon
Daniel Schwierzeck
daniel.schwierzeck at gmail.com
Wed Aug 19 15:49:42 CEST 2020
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 at denx.de>
> Cc: Bin Meng <bmeng.cn at gmail.com>
> Cc: Marek Vasut <marex at 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);
--
- Daniel
More information about the U-Boot
mailing list