Search Linux Wireless

Re: rtw88: alloc_skb(32768, GFP_ATOMIC) fails, driver gets stuck

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06/10/2024 18:43, Michał Pecio wrote:
> Hi,
> 
>> I have this problem with RTL8811CU, RTL8723DU, RTL8811AU, RTL8812AU.
> 
> Does it mean there are working patches for 8811AU somewhere?
> I have this damn thing, lying unused because unsupported.
> 

Indeed, v1 is here:
https://lore.kernel.org/linux-wireless/ade57ca1-444f-49e2-b49e-f4b9da65b2cc@xxxxxxxxx/

v2 is almost ready.

>> The host controller died when I unplugged another device
> 
> xhci not responding, assume dead?
> Yuck. Maybe linux-usb should hear about it if it's reproducible.
> 

Yes, that's what happened:

Sep 29 14:32:10 ideapad2 kernel: xhci_hcd 0000:03:00.3: xHCI host not responding to stop endpoint command
Sep 29 14:32:10 ideapad2 kernel: xhci_hcd 0000:03:00.3: xHCI host controller not responding, assume dead
Sep 29 14:32:10 ideapad2 kernel: xhci_hcd 0000:03:00.3: HC died; cleaning up

I'm blaming the device, or a loose port. The device is one of those
cheap wifi adapters from Aliexpress. It has a bad habit of
disappearing when stressed. Unless this is not supposed to happen
even with bad devices/ports?

>> alloc_skb fails (silently) therefore the RX URB is not submitted
>> ever again. There are only 4 RX URBs.
> 
> drivers/net/usb/usbnet.c::rx_submit() deals with it by queuing a work
> to resubmit the URB later using blocking allocations.
> 

That looks like what the out-of-tree Realtek wifi drivers do as well.

> Failure of usb_submit_urb() is handled same way. This too can return
> -ENOMEM, on xhci for example.
> 
> Regards,
> Michal

Attachment: 300M Wireless USB Adapter.jpg
Description: JPEG image


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux