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@xxxxx>[...]
---
+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.
-static int numifbs = 2;^^^^^^^^^^^^
+static int numifbs = CONFIG_IFB_COUNT;
module_param(numifbs, int, 0);
MODULE_PARM_DESC(numifbs, "Number of ifb devices");