Re: [PATCH] Module alias and table support

Greg KH
2002-11-25T21:36:42Z

On Mon, Nov 25, 2002 at 10:34:16AM +1100, Rusty Russell wrote:
> > > + /* not matched against */
> > > + kernel_long driver_info;
> >
> > Or is it because of "kernel_long"? I'm pretty sure this field is only
> > used within the kernel, and userspace does not care at all about it.
>
> It sucks to reproduce this, yes. But you need to know the size of the
> structure to grab it out of the object file. At least this way it's
> in the kernel source where we can change it.

But can't we still just use the structure from the kernel header and not
have to retype it here? If needed, we can change the type of
driver_info into something more portable than what it is today. That
would be much easier in the long run.

> > Why are you doing this "preprocessing" of the flags and the different
> > fields? If you do this, you mess with the logic of the current
> > /sbin/hotplug tools a lot, as they expect to have to do this.
>
> The plan was that /sbin/hotplug will gather all the fields for
> whatever device has been inserted and create the modprobe string, eg:
>
> system("modprobe usb:v0506p4601dl01dh01dc01dsc01dp01ic01isc01ip01");
>
> Which will simply match the alias such as:
> usb:v0506p4601dl*dh*dc*dsc*dp*ic*isc*ip*

Ah, you never told me about this plan :)

Yes, that would be very nice to have, pushing the logic out of the
/sbin/hotplug code and into modprobe doesn't bother me. That just saved
a _whole_ bunch of space in diethotplug, so you've made up for making
the size smaller.

How would modprobe know which driver to load based on the above line?
Are you going to scan all module files, or rely on something like the
modules.*map files of today?

> > Also realize that if you do this, you can't generate the existing
> > modules.*map files from the exported values.
>
> Hmm, I thought about enhancing this code to generate the .map
> files as well (where it has all the information). BTW, did I break
> the current depmod map-generating code?

I don't know, I haven't looked into that. Just realize that if you
pre-process the information like you are proposing to do, you can't get
it back later, which changes the way things work.

thanks,

greg k-h