Skip to contentSkip to conversation

Q: netdevice interface change

DISCUSSION Manfred 2 participants 2 messages Dec 23, 2000

lore
Share & tools
lore

Manfred

author
#0 lore raw

Hi Andrew,

I have 2 questions about your netdevice2.txt:
http://www.uow.edu.au/~andrewm/linux/netdevice2.txt

* is withdraw_netdevice() really required, can't unregister_netdev check "hidden", and notify the protocols/hotplug based on that value?

* I don't like the backward compatibility section:

<<<<<<<<
Other things:

     #define HAVE_PUBLISH_NETDEV

          This is for 2.2-compatible drivers.  They can do this:

          #ifdef HAVE_PUBLISH_NETDEV
          #define init_etherdev prepare_etherdev
          #define publish_netdev(dev) do {} while (0)
          #define withdraw_netdev unregister_netdev
          #endif
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

As far as I know Linus prefers backward compatibility the other way around:

<<<<<<
A 2.4 driver that must remain compatible with 2.2 should use the new interface and add these lines to their source file:

       #ifndef HAVE_PUBLISH_NETDEV
       #define prepare_etherdev init_etherdev
       #define publish_netdev(dev) do {} while (0)
       #define withdraw_netdev unregister_netdev
       #endif
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

--
Manfred
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#1 lore raw
Quoted 8 lines · Manfred

Hi Andrew,

I have 2 questions about your netdevice2.txt:
http://www.uow.edu.au/~andrewm/linux/netdevice2.txt

* is withdraw_netdevice() really required, can't unregister_netdev check "hidden", and notify the protocols/hotplug based on that value?

Yes, it's basically the same thing and yes, it could be done this way. The only difference is that withdraw_netdev() will blurt out a warning if it is called on an unhidden device.
This is useful now, but less so later. I guess it could be
#defined onto unregister_netdev later..

Quoted 23 lines

* I don't like the backward compatibility section:

<<<<<<<<
Other things:

     #define HAVE_PUBLISH_NETDEV

          This is for 2.2-compatible drivers.  They can do this:

          #ifdef HAVE_PUBLISH_NETDEV
          #define init_etherdev prepare_etherdev
          #define publish_netdev(dev) do {} while (0)
          #define withdraw_netdev unregister_netdev
          #endif
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

As far as I know Linus prefers backward compatibility the other way around:

<<<<<<
A 2.4 driver that must remain compatible with 2.2 should use the new interface and add these lines to their source file:

Quoted 6 lines
       #ifndef HAVE_PUBLISH_NETDEV
       #define prepare_etherdev init_etherdev
       #define publish_netdev(dev) do {} while (0)
       #define withdraw_netdev unregister_netdev
       #endif
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

You are correct, and that is in fact how I did it in rrunner.c. I'll do eepro100 and acenic that way too. The manual is wrong :)

BTW: I just finished the ethernet devices, so my request for help can be ignored. Fixed a truckload of unchecked kmallocs and error-path memory leaks while I was at it. Sigh.

-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/