2014-04-23 05:41:27

by Rusty Russell

[permalink] [raw]
Subject: Re: [PATCH v2] fix printk output

Sergei Ianovich <[email protected]> writes:
> On Tue, 2013-12-10 at 15:59 +1030, Rusty Russell wrote:
>> BTW, did you actually hit this?
>
> # modprobe usb_storage
> [ 600.807274] usbcore: registered new interface driver usb-storage
> # modprobe -r usb_storage
> [ 604.216318] waiting module removal not supported: please upgrade[
> 604.222164] usbcore: deregistering interface driver usb-storage
> # modprobe -V
> kmod version 9
>
> I am using the latest kmod package from emdebian unstable-grip.

Sorry, was off on leave.

Hmm, Lucas intimated that kmod version 11 started passing this flag
correctly.

In fact, kmod's modprobe *never* used the O_NONBLOCK
(ie. KMOD_REMOVE_NOWAIT) flag, until it was finally enforced in

commit 7ab8804448377fb6b8854f2dd288608db01bb43b
Author: Lucas De Marchi <[email protected]>
Date: Fri Sep 20 01:30:07 2013 -0500

See: tools/modprobe.c at that commit:

static int rmmod_do_remove_module(struct kmod_module *mod)
{
const char *modname = kmod_module_get_name(mod);
struct kmod_list *deps, *itr;
int flags = 0, err;
...
if (force)
flags |= KMOD_REMOVE_FORCE;

err = kmod_module_remove_module(mod, flags);

Perhaps we need to just get rid of the kernel message, since we're
getting far too many false reports :(

Cheers,
Rusty.


2014-04-23 09:50:57

by Lucas De Marchi

[permalink] [raw]
Subject: Re: [PATCH v2] fix printk output

On Wed, Apr 23, 2014 at 2:14 AM, Rusty Russell <[email protected]> wrote:
> Sergei Ianovich <[email protected]> writes:
>> On Tue, 2013-12-10 at 15:59 +1030, Rusty Russell wrote:
>>> BTW, did you actually hit this?
>>
>> # modprobe usb_storage
>> [ 600.807274] usbcore: registered new interface driver usb-storage
>> # modprobe -r usb_storage
>> [ 604.216318] waiting module removal not supported: please upgrade[
>> 604.222164] usbcore: deregistering interface driver usb-storage
>> # modprobe -V
>> kmod version 9
>>
>> I am using the latest kmod package from emdebian unstable-grip.
>
> Sorry, was off on leave.
>
> Hmm, Lucas intimated that kmod version 11 started passing this flag
> correctly.

Sorry... rmmod was correctly updated but I forgot modprobe. My bad.
Then when I enforced it on libkmod, modprobe ended up doing the right
thing.

>
> In fact, kmod's modprobe *never* used the O_NONBLOCK
> (ie. KMOD_REMOVE_NOWAIT) flag, until it was finally enforced in
>
> commit 7ab8804448377fb6b8854f2dd288608db01bb43b
> Author: Lucas De Marchi <[email protected]>
> Date: Fri Sep 20 01:30:07 2013 -0500
>
> See: tools/modprobe.c at that commit:
>
> static int rmmod_do_remove_module(struct kmod_module *mod)
> {
> const char *modname = kmod_module_get_name(mod);
> struct kmod_list *deps, *itr;
> int flags = 0, err;
> ...
> if (force)
> flags |= KMOD_REMOVE_FORCE;
>
> err = kmod_module_remove_module(mod, flags);
>
> Perhaps we need to just get rid of the kernel message, since we're
> getting far too many false reports :(

Now that I realize only kmod 16 has the fix... maybe. But I think this
commit could be easily backported to older versions if distros would
like to avoid the upgrade (even if they should not since latest
releases were more targeted to bug fixes). I'll try to push this or a
similar patch downstream to package maintainers.

Again, sorry about that.


Lucas De Marchi