Bug 11648

Summary: rtl8150 module does not unload when interface is up
Product: Drivers Reporter: Mike Frysinger (vapier)
Component: NetworkAssignee: drivers_network (drivers_network)
Status: CLOSED CODE_FIX    
Severity: normal CC: alan
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.26.5 Subsystem:
Regression: No Bisected commit-id:
Attachments: my kernel config
verbose lsusb output for rtl8150

Description Mike Frysinger 2008-09-25 13:52:43 UTC
using stock kernel.org 2.6.26.5 on a Dell Latitude D820 laptop (running Gentoo, but shouldnt matter).

i'm using a RTL8150 USB NIC with the driver built as a module:
ID 0bda:8150 Realtek Semiconductor Corp. RTL8150 Fast Ethernet Adapter

if you load the module, then bring up the interface by doing something simple like `ifconfig eth1 192.168.0.1`, then do `rmmod rtl8150`, the driver goes to lunch and forgets to come back.  top shows ksoftirqd processing a lot and rmmod using 100% cpu.  trying to strace rmmod shows nothing, so something in the kernel is processing a lot on its behalf ...
Comment 1 Mike Frysinger 2008-09-25 13:53:09 UTC
Created attachment 18049 [details]
my kernel config
Comment 2 Mike Frysinger 2008-09-25 13:53:29 UTC
Created attachment 18050 [details]
verbose lsusb output for rtl8150
Comment 3 Anonymous Emailer 2008-10-02 17:38:34 UTC
Reply-To: akpm@linux-foundation.org


(switched to email.  Please respond via emailed reply-to-all, not via the
bugzilla web interface).

On Thu, 25 Sep 2008 13:52:44 -0700 (PDT)
bugme-daemon@bugzilla.kernel.org wrote:

> http://bugzilla.kernel.org/show_bug.cgi?id=11648
> 
>            Summary: rtl8150 module does not unload when interface is up
>            Product: Drivers
>            Version: 2.5
>      KernelVersion: 2.6.26.5
>           Platform: All
>         OS/Version: Linux
>               Tree: Mainline
>             Status: NEW
>           Severity: normal
>           Priority: P1
>          Component: Network
>         AssignedTo: jgarzik@pobox.com
>         ReportedBy: vapier@gentoo.org
> 
> 
> using stock kernel.org 2.6.26.5 on a Dell Latitude D820 laptop (running
> Gentoo,
> but shouldnt matter).
> 
> i'm using a RTL8150 USB NIC with the driver built as a module:
> ID 0bda:8150 Realtek Semiconductor Corp. RTL8150 Fast Ethernet Adapter
> 
> if you load the module, then bring up the interface by doing something simple
> like `ifconfig eth1 192.168.0.1`, then do `rmmod rtl8150`, the driver goes to
> lunch and forgets to come back.  top shows ksoftirqd processing a lot and
> rmmod
> using 100% cpu.  trying to strace rmmod shows nothing, so something in the
> kernel is processing a lot on its behalf ...
> 

I never know who to blame^Wconsult when it comes to USB net drivers.
Comment 4 Alexey Dobriyan 2008-10-03 01:46:34 UTC
Hmm, everybody is doing tasklet_kill() in ->close hook.

Mike, try tasklet_kill(&dev->tl); before unlink_all_urbs() like
pegasus driver is doing.
Comment 5 Mike Frysinger 2008-11-12 23:11:44 UTC
it does not make a difference.  i still get 100% cpu utilization and
an unkillable process.