Re: HEADS UP: KBI breakage for Ethernet modules



Yar Tikhiy wrote:
On Sun, May 27, 2007 at 03:51:29PM +0400, Yar Tikhiy wrote:
As discussed earlier on -net, I'd like to commit the following
patch. It will bring ether_ioctl() into accord with ioctl() WRT
the type of the command argument. In our ioctl(), command became
an u_long ages ago, but ether_ioctl() has never been fixed. With
int and u_long being of different widths on 64-bit arch'es, the
discrepancy can get us in trouble sooner or later.

In fact, ioctl command coding is very unlikely to change, so it
will continue to fit in 32 bits. OTOH, the C compiler should be
uneasy about squeezing u_long into int when ether_ioctl() is called
from an if_ioctl handler, so this patch will be a little step on
the way to a warning-free kernel.

This change will inevitably break the kernel interface to network
modules, so all of them will need rebuilding.

I received several positive replies and no negative ones, so the
change has just been committed. In fact, it breaks KBI on 64-bit
platforms only. (Thanks to Ruslan Ermilov for reminding me about
that.) Many thanks to those folks who encouraged the change.

Now all Ethernet-related kernel modules need to be rebuilt on 64-bit
platforms. The conventional "make buildkernel" procedure will take
care of stock modules, so only 3rd-party modules need some attention.


How does this affect 32-bit compatibility on amd64?

Scott

_______________________________________________
freebsd-current@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@xxxxxxxxxxx"



Relevant Pages