Messages in this thread | | | From | Tom Gundersen <> | Date | Tue, 12 Jan 2016 16:10:36 +0100 | Subject | Re: [PATCH 1/3] ifb: make device count build-time configurable |
| |
On Tue, Jan 12, 2016 at 12:56 PM, Lubomir Rintel <lkundrak@v3.sk> wrote: > The devices can be created at run-time for quite some time already and the > load-time device creation collides with attempts to create the device of > the same name: > > # rmmod ifb > # ip link add ifb0 type ifb > RTNETLINK answers: File exists > > This is pretty much the same situation as was with the block loop devices > which was solved by adding a build-time configuration that the > distributions could use as they deem fit while keeping the default for > compatibility. > > Let's do that here as well. > > Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
This has been a nuisance, so would be great to see it fixed upstream.
Acked-by: Tom Gundersen <teg@jklm.no>
> --- > drivers/net/Kconfig | 21 +++++++++++++++++---- > drivers/net/ifb.c | 2 +- > 2 files changed, 18 insertions(+), 5 deletions(-) > > diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig > index f184fb5..63535b4 100644 > --- a/drivers/net/Kconfig > +++ b/drivers/net/Kconfig > @@ -110,12 +110,25 @@ config IFB > This is an intermediate driver that allows sharing of > resources. > To compile this driver as a module, choose M here: the module > - will be called ifb. If you want to use more than one ifb > - device at a time, you need to compile this driver as a module. > - Instead of 'ifb', the devices will then be called 'ifb0', > - 'ifb1' etc. > + will be called ifb. > + > Look at the iproute2 documentation directory for usage etc > > +config IFB_COUNT > + int "Number of ifb devices to pre-create at init time" > + depends on IFB > + default 3 > + help > + Static number of ifb devices to be unconditionally pre-created > + at init time. > + > + This default value can be overwritten on the kernel command > + line or with module-parameter ifb.numifbs. > + > + The historic default is 3. If a mid-2007 version of iproute2 > + is used (v2.6.23 or later), it can be set to 0, since needed > + ifb devices can be dynamically allocated via rtnetlink. > + > source "drivers/net/team/Kconfig" > > config MACVLAN > diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c > index cc56fac..911af2c 100644 > --- a/drivers/net/ifb.c > +++ b/drivers/net/ifb.c > @@ -298,7 +298,7 @@ static struct rtnl_link_ops ifb_link_ops __read_mostly = { > * Note that these legacy devices have one queue. > * Prefer something like : ip link add ifb10 numtxqueues 8 type ifb > */ > -static int numifbs = 2; > +static int numifbs = CONFIG_IFB_COUNT; > module_param(numifbs, int, 0); > MODULE_PARM_DESC(numifbs, "Number of ifb devices"); > > -- > 2.5.0 >
| |