Subject: Re: [PATCH 08/26] e1000: Deprecate mii-tool SIOCMIIREG ioctl

From: Auke Kok <[email-masked]>
Date: Thu, 31 Aug 2006 14:17:10 -0700

Brandeburg, Jesse wrote:
> Jeff Garzik wrote:
>> Kok, Auke wrote:
>>> Deprecate mii-tool SIOCMIIREG ioctl. This ioctl is broken in e1000
>>> and ethtool has this functionality in working order.
>>>
>>> Signed-off-by: Jeff Kirsher <[email-masked]>
>>> Signed-off-by: Auke Kok <[email-masked]>
>> This doesn't "deprecated" anything, it changes the ABI on a
>> user's machine by _removing_ ioctl handling code that used to be
>> there. 
>>
>> What's broken, and what is needed to fix?  Perhaps e1000
>> should instead be limited to 10/100 networks/speeds?
> 
> mii-tool is broken because it doesn't understand GMII phys.  We ended up
> having a mess of code trying to implement the shim layer to support the
> PHY write ioctls, among others.
> mii-tool always reports 100 Mbps link when you actually have 1Gbps link.
> Using mii-tool to set options didn't work very well to begin with, so
> rather than continue to dump time into a dead end, just remove the
> incomplete/non-working code and force the user to use ethtool if they
> want to do set operations. 
> 
> Mii-tool is already marked in its man page to be obsolete
> 
> <quote from RHEL4>
> NOTE
>        This program is obsolete. Valid  media  are  only  100baseT4,
> 100baseTx-FD,100baseTx-HD,  10baseT-FD  and
>        10baseT-HD ethernet cards. For replacement check eth-tool.
> </quote>
> 
> We intentionally left the read code in to not break any user space
> programs that are using that IOCTL to read link status etc.  With some
> recent improvements to ethtool, it has the exact same functionality as
> mii-tool.
> 
> While I appreciate the "don't break user space" position, in this case
> it never really worked right, and when it did work the user was just
> lucky because they probably weren't getting what they wanted.

I'm dropping this patch from our stack, it seems (irony) that we might have 
some use for this ioctl after all and we need to re-evaluate what to do with 
it. It doesn't hurt (much) to leave it in there for now.

Jeff, I'll repost a summary of the changes I made to the queue on our gitserver 
in a second.

Cheers,

Auke