Re: [bisected] Re: Module removal-related regression?

From: Jakub Kicinski
Date: Sat Sep 09 2017 - 16:17:35 EST


On Sat, 9 Sep 2017 12:55:51 -0700, Dmitry Torokhov wrote:
> On Sat, Sep 9, 2017 at 12:27 PM, Jakub Kicinski <kubakici@xxxxx> wrote:
> > On Sat, 9 Sep 2017 19:41:21 +0200, Jakub Kicinski wrote:
> >> Hi!
> >>
> >> I'm having trouble with modules on linux/master. rmmod succeeds but the
> >> module is still loaded and the refcount goes to 1:
> >>
> >> #rmmod nfp; insmod ./src/nfp.ko nfp_pf_netdev=0 ; \
> >> /opt/netronome/bin/nfp-hwinfo -n 2 assembly.partno \
> >> lsmod | grep nfp; \
> >> rmmod nfp; \
> >> lsmod | grep nfp
> >> nfp 249856 0
> >> nfp 200704 1
> >>
> >> If I rmmod again the module will be actually unloaded. The user space
> >> is mostly Ubuntu 14.04. Has anyone seen this? I'm trying to bisect
> >> now...
> >
> > Got 'em!
> >
> > commit 1455cf8dbfd06aa7651dcfccbadb7a093944ca65 (HEAD, refs/bisect/bad)
> > Author: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
> > Date: Wed Jul 19 17:24:30 2017 -0700
> >
> > driver core: emit uevents when device is bound to a driver
>
> Does it happen with all modules or only nfp one?
>
> It seems to work here:
>
> dtor@dtor-glaptop3:~ $ lsmod | grep psmouse
> psmouse 135168 0
> dtor@dtor-glaptop3:~ $ sudo rmmod psmouse
> dtor@dtor-glaptop3:~ $ lsmod | grep psmouse
> dtor@dtor-glaptop3:~ $ sudo modprobe psmouse

It looks like the driver is actually reloaded. The driver used to
return EPROBE_DEFER, but I think it doesn't any more (rebuilding the
kernel to test that right now).

Could the uevent on unbind tickle Ubuntu 14.04's udev or somehow
else cause the driver to be loaded again?