HEADS UP: KBI breakage for Ethernet modules
Yar Tikhiy
yar at comp.chem.msu.su
Tue May 29 13:18:04 UTC 2007
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.
--
Yar
More information about the freebsd-current
mailing list