> -----Original Message-----
> From: David Brownell [mailto:[email protected]]
> Sent: Sunday, March 22, 2009 7:14 PM
> To: Narnakaje, Snehaprabha
> Cc: [email protected]
> Subject: Re: [PATCH] NET: dm9000 ethernet on dm355: fix NETDEV WATCHDOG
> timeout issue
> 
> On Wednesday 11 February 2009, Narnakaje, Snehaprabha wrote:
> >
> > We were trying to see why we need this additional dm9000 specific
> > disable/enable interrupts in the xmit function. It seems like dm9000
> > ethernet controller being used on other boards does not require this.
> 
> I suddenly started seeing these watchdog issues recently ...
> after I disabled lockdep in Kconfig, so I could measure
> something without its performance impact.  These timeouts
> would trigger with simple SCP or SSH commands, which used
> to work fine before lockdep got disabled.
> 
> First thought:  lockdep forces IRQF_DISABLED on, which has
> been known to create bugs in some drivers ... or hide them.
> 
> And sure enough, the dm9000 IRQ handler should be using
> spin_lock_irqsave(), not spin_lock(), since request_irq()
> doesn't pass IRQF_DISABLED.  That flavor bug is something
> lockdep has hidden for years in some other drivers.  (I've
> sent that bugfix on to netdev.)
> 
> 
> Yet ... that bugfix alone was not enough to make these
> watchdog messages go away.  If I rolled in a version of
> your patch (keeping the TX locking) it worked again.
> Mostly.  Sometimes the driver just stopped responding
> entirely...
> 
> This suggests a few potential reasons why not everyone
> sees these timeouts:
> 
>  - It might be a timing issue ... lockdep slows down
>    spin_lock() and friends.  EMIF may be set up wrong.
>    Lots of platforms have bus timing setup issues.
> 
>  - This might be an issue with the dm9000a (vs b or e)
>    chips.  Not all boards use the A version.
> 
>  - The IRQ handler has similar "disable irqs at the
>    chip" logic, with no comments about why ... maybe
>    a lot more places in this driver need to protect
>    against some TBS bug(s).
> 
> At any rate ... I'm back to running with lockdep enabled.


Did you finally use both the patches (your patch - fix in dm9000_interrupt and 
my patch - fix/workaround in dm9000_start_xmit) to get the dm9000 working with 
and without lockdep enabled?

Thanks
Sneha

> 
> - Dave
> 

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to