> -----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
