Re: HEADS UP: KBI breakage for Ethernet modules

From: Scott Long <scottl_at_samsco.org>
Date: Tue, 29 May 2007 09:18:39 -0600
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
Received on Tue May 29 2007 - 13:20:44 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:11 UTC