Re: [PATCH net-next] myri10ge: allow per-board firmware overriding

From: Stanislaw Gruszka
Date: Mon Apr 20 2009 - 05:47:22 EST


On Sat, 18 Apr 2009 22:36:39 -0400
David Dillow <dave@xxxxxxxxxxxxxx> wrote:

> > > We actually thought about supporting "eth2:fwname1,eth0:fwname2". But it
> > > might be hard to implement in this case due to udev possible renaming
> > > interfaces and this firmware names being needed *before* the renaming.

I was thinking about ID as serial number or MAC address - rather than device
name - something that driver specific and uniquely identify device.

> > It seems like this could be done in user space, using the PCI bus ID as
> > a key to select the firmware. The uevent identifies which device is
> > requesting the firmware, so some modification to /lib/udev/firmware.sh
> > should do it.
>
> On further inspection, that should work on Fedora 10, and it looks like
> other distros that use the upstream udev rules. RHEL5 uses a binary
> helper, so changing 05-early-rules.sh to use a script similar to udev's
> firmware.sh would work. YMMV elsewhere, those are the ones I had handy
> and happened to be working on some udev rules.

Module parameters I'm thinking about are not intended only for firmware names,
it could replace any device parameter which is needed during initialization.
Currently devices use module_param_array and code like this:

dev->my_param = default;
if (board_no < MAX_BOARDS)
dev->my_param = my_param[board_no++];

This solution have drawbacks:

- it limits number of device instances which can get parameter
- assume initialization ordering is constant.
- assume initialization is not done in parallel

Providing module_param_id would address this issues, but I have some concerns
before doing it:

- device have to access ID (like serial no) before initialization (at least
before driver will need parameter)
- why nobody already done it - perhaps such thing would be totally useless


Cheers
Stanislaw
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/