Skip to contentSkip to conversation

when does udev rename network interface ?

DISCUSSION Brice Goglin 3 participants 3 messages Jun 29, 2006

lore
Share & tools
lore
#0 lore raw

Hi,

In our myri10ge ethernet driver, we print the interface name with netdev->name at the end of the myri10ge_probe routine. When the user wrote a rule to rename the interface, it looks like udev does the renaming after the end of the probe routine, which means we are printing the original netdev->name instead of the final one that udev sets.

I thought that udev would be called during register_netdev (which we call in the probe routine). But, it seems it is actually called later. Is there any way to wait until udev is actually called? or to force it to rename before the end of the probe routine so that we can end the driver initialization by printing the final name of the interface?

Thank you
Brice Goglin

Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid0709&bid&3057&dat1642
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#1 lore raw

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Quoted 8 lines · Brice Goglin

Hi,

In our myri10ge ethernet driver, we print the interface name with netdev->name at the end of the myri10ge_probe routine. When the user wrote a rule to rename the interface, it looks like udev does the renaming after the end of the probe routine, which means we are printing the original netdev->name instead of the final one that udev sets.

Quoted 6 lines

I thought that udev would be called during register_netdev (which we call in the probe routine). But, it seems it is actually called later. Is there any way to wait until udev is actually called? or to force it to rename before the end of the probe routine so that we can end the driver initialization by printing the final name of the interface?

udev is not called (in the sense of synchronous procedure call). register_netdev just sends notification about new interface; udev asynchronously processes this notification.

I am not aware of any way to wait for udev action completion. The only solution in your case seems to be long enough timeout (say several seconds) before printing interface name.

- -andrey
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)

iD8DBQFEo/lVR6LMutpd94wRAn1dAKCJwVwyuH2Uw//Pp8GvI5oDTg/UWwCguCoO XFTtsYHa+pZ+QuvKBgk5dP0=XMql
-----END PGP SIGNATURE-----

Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid0709&bid&3057&dat1642
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#2 lore raw
In reply to Brice Goglin
Quoted 16 lines · Andrey Borzenkov
Quoted 8 lines · Brice Goglin

Hi,

In our myri10ge ethernet driver, we print the interface name with netdev->name at the end of the myri10ge_probe routine. When the user wrote a rule to rename the interface, it looks like udev does the renaming after the end of the probe routine, which means we are printing the original netdev->name instead of the final one that udev sets.

Quoted 6 lines

I thought that udev would be called during register_netdev (which we call in the probe routine). But, it seems it is actually called later. Is there any way to wait until udev is actually called? or to force it to rename before the end of the probe routine so that we can end the driver initialization by printing the final name of the interface?

Quoted 7 lines

udev is not called (in the sense of synchronous procedure call). register_netdev just sends notification about new interface; udev asynchronously processes this notification.

I am not aware of any way to wait for udev action completion. The only solution in your case seems to be long enough timeout (say several seconds) before printing interface name.

And even then, it's a pretty foolish thing to do, as the inteface can be renamed at any point in time.

In short, don't worry about it, if userspace renames your device, there's nothing you can do about it, just accept it as what the user wanted to do.

thanks,

greg k-h

Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid0709&bid&3057&dat1642
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel