Bug 9831

Summary: sis190 regression, "ifconfig eth0 up" produces eth0: ioctl SIOCSIFFLAGS: Invalid argument
Product: Drivers Reporter: Gabriel A. Devenyi (ace)
Component: NetworkAssignee: Francois Romieu (romieu)
Status: RESOLVED CODE_FIX    
Severity: normal CC: akpm, bunk, kernel, romieu
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.24-gentoo Tree: Mainline
Regression: Yes
Attachments: lspci -vvxxx
dmesg of kernel with working sis190
Kernel dmesg with pci=nommconf
Disable retrieval of MAC address from APC
Read the mac address from the eeprom first

Description Gabriel A. Devenyi 2008-01-27 08:38:11 UTC
Latest working kernel version: 2.6.23
Earliest failing kernel version: 2.6.24 (haven't checked -rc's yet)
Distribution: Gentoo
Hardware Environment: Core 2 duo 32bit
Software Environment:
Problem Description:
Jan 27 10:52:52 mythbox 0000:00:04.0: Read MAC address from APC.
Jan 27 10:52:52 mythbox 0000:00:04.0: Realtek PHY RTL8201 transceiver at address 1.
Jan 27 10:52:52 mythbox 0000:00:04.0: Using transceiver at address 1 as default.
Jan 27 10:52:52 mythbox 0000:00:04.0: SiS 190 PCI Fast Ethernet adapter at f8938000 (IRQ: 20), 00:00:00:00:00:00
Jan 27 10:52:52 mythbox eth0: RGMII mode.
Jan 27 10:52:52 mythbox eth0: Enabling Auto-negotiation.
Jan 27 10:52:52 mythbox dhcpcd[2427]: eth0: dhcpcd 3.2.0 starting
Jan 27 10:52:52 mythbox dhcpcd[2427]: eth0: ioctl SIOCSIFFLAGS: Invalid argument
Jan 27 10:52:52 mythbox dhcpcd[2427]: segfault at 00000018 eip 0804a0ce esp bfd127d0 error 4

Steps to reproduce:
ifconfig eth0 up
eth0: ioctl SIOCSIFFLAGS: Invalid argument
Comment 1 Daniel Drake 2008-01-27 10:29:20 UTC
(for my reference) downstream bug is https://bugs.gentoo.org/show_bug.cgi?id=207706
Comment 2 Andrew Morton 2008-01-27 11:28:26 UTC
There was probably a kenrel oops.  Please check /var/log/messages, see
if it was there?
Comment 3 Francois Romieu 2008-01-27 11:55:35 UTC
Whatever, the null mac address is not encouraging.

Can you send the dmesg of the working 2.6.23 kernel and a lspci -vvxxx ?

Thanks in advance.

-- 
Ueimor
Comment 4 Gabriel A. Devenyi 2008-01-27 12:03:39 UTC
Created attachment 14615 [details]
lspci -vvxxx
Comment 5 Gabriel A. Devenyi 2008-01-27 12:05:30 UTC
Created attachment 14616 [details]
dmesg of kernel with working sis190

Now, this is interesting, seems there's a 00:00:00:00:00 MAC address for this as well, however, the Ethernet actually works.
Comment 6 Gabriel A. Devenyi 2008-01-27 12:06:02 UTC
Re comment #2, Andrew, there is no OOPS I can find in /var/log/messages
Comment 7 Gabriel A. Devenyi 2008-01-29 10:07:18 UTC
Any patches for me to test, do you need some git bisecting or other testing?
Comment 8 Gabriel A. Devenyi 2008-01-29 17:25:17 UTC
I should also point out that this works on 2.6.23-gentoo-r6, which includes the patches here http://dev.gentoo.org/~dsd/genpatches/trunk/2.6.23/

And that it fails on 2.6.24-gentoo, which include the patches here
http://dev.gentoo.org/~dsd/genpatches/trunk/2.6.24/
Comment 9 Francois Romieu 2008-01-30 13:21:18 UTC
ace@staticwave.ca 2008-01-29 17:25 :
> I should also point out that this works on 2.6.23-gentoo-r6, which includes
> the
> patches here http://dev.gentoo.org/~dsd/genpatches/trunk/2.6.23/
> 
> And that it fails on 2.6.24-gentoo, which include the patches here
> http://dev.gentoo.org/~dsd/genpatches/trunk/2.6.24/

I'll dig that. Thanks for the pointer.

In the meantime can you try to boot with pci=nommconf and see if
dmesg changes at all ?
Comment 10 Gabriel A. Devenyi 2008-01-30 19:20:01 UTC
Created attachment 14655 [details]
Kernel dmesg with pci=nommconf

Here's the dmesg with the pci=nommconf, no change in the operation of the ethernet card.
Comment 11 Gabriel A. Devenyi 2008-01-30 19:38:37 UTC
And after some git-bisect digging, this appears to be the patch that breaks sis190 on my machine. *please note* that I still have the issue of a NULL mac address, although I guess that may be considered a different bug.

Comments?


bada339ba24dee9e143bfb42e1dc61f146619846 is first bad commit
commit bada339ba24dee9e143bfb42e1dc61f146619846
Author: Jeff Garzik <jgarzik@redhat.com>
Date:   Tue Oct 23 20:19:37 2007 -0700

    [NET]: Validate device addr prior to interface-up

    Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

:040000 040000 9c90fdf19e779e031fe99750315774e5b10c78b1 ba116466ea212ba57000acad9230b3f0fc71161a M      include
:040000 040000 b68d43485820b283151ad05f6fbc33e6e1337bc3 64480498bfb494bf36f69bbe0802514764513336 M      net
Comment 12 Francois Romieu 2008-01-31 12:59:55 UTC
Created attachment 14666 [details]
Disable retrieval of MAC address from APC

Gabriel, can you give this hack a try ?

-- 
Ueimor
Comment 13 Gabriel A. Devenyi 2008-01-31 16:46:35 UTC
It works! (using 2.6.24-gentoo) I guess the "APC" is broken for my ethernet card, however the eeprom works correctly. Does this mean my card needs a blacklist or is there some implementation error in the current code?
Comment 14 Gabriel A. Devenyi 2008-01-31 20:57:59 UTC
Not sure if this is relevent, but the ifconfig reports something odd for the "Base address":
eth0      Link encap:Ethernet  HWaddr 00:30:1B:80:CB:8B
          inet addr:192.168.1.3  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2221 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2127 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:520982 (508.7 Kb)  TX bytes:364277 (355.7 Kb)
          Interrupt:21 Base address:0xdead
Comment 15 Francois Romieu 2008-02-01 00:05:25 UTC
bugme-daemon@bugzilla.kernel.org <bugme-daemon@bugzilla.kernel.org> :
[...]
> It works! (using 2.6.24-gentoo) I guess the "APC" is broken for my ethernet
> card, however the eeprom works correctly. Does this mean my card needs a
> blacklist or is there some implementation error in the current code ?

I'll hack something to read eeprom first then try APC if it fails.
Comment 16 Francois Romieu 2008-02-01 00:08:34 UTC
ace@staticwave.ca  2008-01-31 20:57 :
> Not sure if this is relevent, but the ifconfig reports something odd for the
> "Base address":

Base address is useless. It should have been removed from the kernel
long ago but it is a low priority item. Please ignore it.
Comment 17 Francois Romieu 2008-02-10 13:10:16 UTC
Created attachment 14774 [details]
Read the mac address from the eeprom first

Gabriel, can you check that this patch works ?

-- 
Ueimor
Comment 18 Gabriel A. Devenyi 2008-02-11 07:06:06 UTC
Thanks, seems to work fine.
Comment 19 Daniel Drake 2008-02-16 15:48:00 UTC
Francois, thanks for working on this. Is it suitable to be sent to Jeff? (I'd like to get it upstream then pushed through the -stable tree)
Comment 20 Daniel Drake 2008-02-24 15:27:34 UTC
this is now in Jeff's tree (upstream-fixes, so should be in 2.6.25). Francois, thanks for working on this so quickly.