[PATCH v2 2/8] usb: xhci: xhci_bulk_tx: Don't "BUG" when comparing addresses

Stefan Roese sr at denx.de
Thu Aug 20 12:22:23 CEST 2020


Hi Bin,

On 20.08.20 10:58, Bin Meng wrote:
> Hi Stefan,
> 
> On Thu, Aug 20, 2020 at 1:35 PM Stefan Roese <sr at denx.de> wrote:
>>
>> Octeon uses mapped addresses for virtual and physical memory. Its not
> 
> nits: It's
> 
>> that easy to calculate the resulting addresses here. So lets remove
> 
> let's
> 
>> this BUG_ON() completely, as its not really helpful.
> 
> it's

Will change in next version.

>>
>> Please also note, that BUG_ON() is not recommended any more in the Linux
>> kernel.
>>
>> Signed-off-by: Stefan Roese <sr at denx.de>
>> Cc: Bin Meng <bmeng.cn at gmail.com>
>> Cc: Marek Vasut <marex at denx.de>
>>
>> ---
>>
>> Changes in v2:
>> - Completely remove BUG_ON() for this trans_event.buffer check
>> - Reword commit text
>>
>>   drivers/usb/host/xhci-ring.c | 2 --
>>   1 file changed, 2 deletions(-)
>>
>> diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
>> index 092ed6eaf1..fd15f39906 100644
>> --- a/drivers/usb/host/xhci-ring.c
>> +++ b/drivers/usb/host/xhci-ring.c
>> @@ -726,8 +726,6 @@ 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) -
> 
> Does phys_to_virt() not work on MIPS?

It does. But the calculation of the resulting address grew quite
frustratingly complex AFAIR (it's been a while, when I created this
patch). To sum it up, the resulting expression was unreadable because
of the multiple de-references. It seemed "better" to drop this check
completely. Especially since Linux (checkpatch) moves away from BUG()
statements. I also tried to find this check in the Linux xHCI driver
and failed.

Thanks,
Stefan


More information about the U-Boot mailing list