Subject: Re: [PATCH net-next] cxgb4: don't hold RTNL during ethtool phys_id

From: Dimitris Michailidis <[email-masked]>
Date: Thu, 07 Apr 2011 01:18:51 -0700

Stephen Hemminger wrote:
> On Wed, 6 Apr 2011 17:20:29 -0700
> Casey Leedom <[email-masked]> wrote:
> 
>> | From: Stephen Hemminger <[email-masked]>
>> | Date: Wednesday, April 06, 2011 05:09 pm
>> | 
>> | The Chelsio cxgb4 drivers implement blinking in a unique way by
>> | waiting on the mailbox. This patch cleans it up slightly by no longer
>> | holding the system wide network configuration lock during the process.
>> | 
>> | The patch also uses correct semantics for the time argument
>> | which is supposed to be in seconds; and zero is supposed
>> | to signify infinite blinking.
>> | 
>> | This is still a bad firmware interface design for this
>> | since it means the board is basically hung while doing the blink.
>> | But fixing it correctly would require hardware and firmware
>> | documentation. With that information the device could be converted
>> | to the new set_phys_id.
>> | 
>> | Compile tested only.
>> | 
>> | Signed-off-by: Stephen Hemminger <[email-masked]>
>>
>>   Are you assuming that the firmware won't respond with a command completion 
>> until the LED blinking is complete?  If so, that's a bad assumption.  The 
>> firmware runs as an asynchronous real-time OS.  The LED blinking simply becomes 
>> a thread of activity within the OS and the command completes immediately.
>>
>> Casey
> 
> Then how is LED blinking stopped?

You can pass 0 as blinks to cancel your request, which may or may not cancel 
the LED blinking depending on what other drivers have concurrent blinking 
requests in progress.  But you can't pass UINT_MAX as the patch does.  I'll 
fix it up to use the new ethtool interface this week.