Discussion:
Can't load modules with parameters given
Benjamin Block
2013-12-19 18:31:36 UTC
Permalink
Hi,

I have a rather strange problem currently. I am trying to load a module
with some parameters (bnx2x with disable_tpa=1) and it fails because
this parameter is unknown according to dmesg. But modinfo lists this
exact paramter and it is also included in the source. And while this is
not an in-tree driver, I could also replicate the same behavior with
in-tree device drivers (like bonding with the parameter tx_queues):

$ modprobe bonding # works fine
$ rmmod bonding
$ modprobe bonding tx_queues=32
modprobe: ERROR: could not insert 'bonding': Unknown symbol in module,
or unknown parameter (see dmesg)

and dmesg tells me:
bonding: Unknown parameter `tx_queues'
and nothing else (as with bnx2x, this parameter is listed by modinfo).

Is there some obvious kernel-config-option I could have messed up or
something else like this?

I am using a Gentoo-Userspace kmod (v15) with a Ubuntu-Kernel (3.8.13.13
- this is a version with some ubuntu-patches applied) - I know, the
combination is rather strange. Any ideas?

best regards,
- Benjamin
Lucas De Marchi
2013-12-22 21:16:45 UTC
Permalink
Hi Benjamin,
Post by Benjamin Block
Hi,
I have a rather strange problem currently. I am trying to load a module
strange indeed
Post by Benjamin Block
with some parameters (bnx2x with disable_tpa=1) and it fails because
this parameter is unknown according to dmesg. But modinfo lists this
exact paramter and it is also included in the source. And while this is
not an in-tree driver, I could also replicate the same behavior with
are you sure modinfo and modprobe are reading the same module? maybe
you updated your modules between the operations?
Post by Benjamin Block
$ modprobe bonding # works fine
$ rmmod bonding
$ modprobe bonding tx_queues=32
modprobe: ERROR: could not insert 'bonding': Unknown symbol in module,
or unknown parameter (see dmesg)
bonding: Unknown parameter `tx_queues'
and nothing else (as with bnx2x, this parameter is listed by modinfo).
Is there some obvious kernel-config-option I could have messed up or
something else like this?
So... this changed in recent kernels (3.11 -- see the commit message
that introduced this behavior below)... we don't fail to load a module
anymore due to unknown option. So if/when you upgrade you won't see
this problem anymore.

Anyway, it shouldn't fail for you like it did, but it might as well be
a problem of the particularly patched kernel you are using... not
sure.
Post by Benjamin Block
I am using a Gentoo-Userspace kmod (v15) with a Ubuntu-Kernel (3.8.13.13
- this is a version with some ubuntu-patches applied) - I know, the
combination is rather strange. Any ideas?
the combination is not a problem and should work just fine.



Lucas De Marchi



---
commit 54041d8a73337411b485ff76957fb106cb5d40d0
Author: Rusty Russell <rusty-8n+1lVoiYb80n/***@public.gmane.org>
Date: Tue Jul 2 15:35:12 2013 +0930

modules: don't fail to load on unknown parameters.

Although parameters are supposed to be part of the kernel API, experimental
parameters are often removed. In addition, downgrading a kernel might cause
previously-working modules to fail to load.

On balance, it's probably better to warn, and load the module anyway.
This may let through a typo, but at least the logs will show it.

Reported-by: Andy Lutomirski <luto-***@public.gmane.org>
Signed-off-by: Rusty Russell <rusty-8n+1lVoiYb80n/***@public.gmane.org>
Benjamin Block
2013-12-22 23:15:25 UTC
Permalink
Post by Lucas De Marchi
Hi Benjamin,
Post by Benjamin Block
Hi,
I have a rather strange problem currently. I am trying to load a module
strange indeed
Post by Benjamin Block
with some parameters (bnx2x with disable_tpa=1) and it fails because
this parameter is unknown according to dmesg. But modinfo lists this
exact paramter and it is also included in the source. And while this is
not an in-tree driver, I could also replicate the same behavior with
are you sure modinfo and modprobe are reading the same module? maybe
you updated your modules between the operations?
pretty sure. It shows the exact path to the .ko, because this is a
out-of-tree driver that is not located under /lib/modules/..
And in case of the bonding-example, there is no other module anywhere
else with the same name.
Post by Lucas De Marchi
Post by Benjamin Block
$ modprobe bonding # works fine
$ rmmod bonding
$ modprobe bonding tx_queues=32
modprobe: ERROR: could not insert 'bonding': Unknown symbol in module,
or unknown parameter (see dmesg)
bonding: Unknown parameter `tx_queues'
and nothing else (as with bnx2x, this parameter is listed by modinfo).
Is there some obvious kernel-config-option I could have messed up or
something else like this?
So... this changed in recent kernels (3.11 -- see the commit message
that introduced this behavior below)... we don't fail to load a module
anymore due to unknown option. So if/when you upgrade you won't see
this problem anymore.
Anyway, it shouldn't fail for you like it did, but it might as well be
a problem of the particularly patched kernel you are using... not
sure.
Post by Benjamin Block
I am using a Gentoo-Userspace kmod (v15) with a Ubuntu-Kernel (3.8.13.13
- this is a version with some ubuntu-patches applied) - I know, the
combination is rather strange. Any ideas?
the combination is not a problem and should work just fine.
I am now certain that this is a specific and/or combination of
kernel-configuration-options which is messing this up here. I have a
debug- and a release-configuration with the only difference that the
debug-config contains several kernel-hacking-features enabled that the
release doesn't include (compiled with symbols, lockdep, tracing and
stuff like this). And in the release-config I could load the module with
the parameter given.

When I'm at work again I will figure out which config messes this up
exactly (I don't have access to the machines right now).


- Benjamin

Loading...