Subject: Re: [PATCH 2/3] sky2: Reading registers in reset causes a hang

From: Mike McCormack <[email-masked]>
Date: Wed, 14 Oct 2009 08:08:44 +0900

Stephen Hemminger wrote:
> On Tue, 13 Oct 2009 07:36:45 +0900
> Mike McCormack <[email-masked]> wrote:
> 
>> 2009/10/13 Stephen Hemminger <[email-masked]>
>>> On Mon, 12 Oct 2009 23:06:37 +0900
>>> Mike McCormack <[email-masked]> wrote:
>>>
>>>> When sky2 hardware is in reset, reading registers with ethtool -d
>>>> causes a hard system hang. eg.
>>>>
>>>>     ifconfig eth1 down
>>>>     ethtool -d eth1
>>>>
>>>> Avoid reading FIFOs, descriptor and status unit, etc. after we've
>>>>  bought the interface down, as these seem to cause the issue.
>>>>
>>>> Assume the same is true for the second port, as my port only has
>>>>  one card.
>>> I don't see this on my cards. Let me investigate further before
>>> committing this. Also, the debugfs interface would also be screwed
>>> if the registers were unavailable.
>> I forgot to include one other piece of information... I'm running a
>> ping -f at the sky2 interface on a remote machine. I'll check debugfs
>> tonight.
>>
> 
> You are flooding a down interface??

I'm flooding the interface from before it goes down. (Another machine ran
ping -f 192.168.0.100 continuously while I was testing this...)

/sys/kernel/debug/sky2/eth1 no longer exists after ifconfig eth1 down,
so debugfs cannot cause this problem on my machine.

It may be possible to fix this with extra cleanup in sky2_down, however I'm
not really which part of the chip needs more resetting...

thanks,

Mike