On Fri, 26 Oct 2007 08:37:33 +0200 Ingo Molnar <[EMAIL PROTECTED]> wrote:
> > * Romano Giannetti <[EMAIL PROTECTED]> wrote: > > > > Does this help? > > > > I tried this, but although I have the D-state processes, I cannot see > > any debug trace now. Results are at: > > > > http://www.dea.icai.upcomillas.es/romano/linux/info/2624rc1_3/ > > > > Can I try anything more? This is quite a show-stopper for me... and > > before trying to bisect 11Mbyte of patches... > > hm, from your log it appears that lockdep did not find anything, still > the hang does trigger. > > it's /sbin/ifconfig and inet_ioctl() / dev_close() / rtl8169_down() that > seems to be hanging. I've extracted the relevant backtrace below. I've > Cc:-ed people who might have a better idea about what's going on. > > Ingo Are you building with NAPI enabled or not. Looks like the following might help the non-napi case. --- a/drivers/net/r8169.c 2007-10-24 21:38:43.000000000 -0700 +++ b/drivers/net/r8169.c 2007-10-26 09:46:07.000000000 -0700 @@ -2989,13 +2989,16 @@ static void rtl8169_down(struct net_devi { struct rtl8169_private *tp = netdev_priv(dev); void __iomem *ioaddr = tp->mmio_addr; - unsigned int poll_locked = 0; unsigned int intrmask; rtl8169_delete_timer(dev); netif_stop_queue(dev); +#ifdef CONFIG_R8169_NAPI + napi_disable(&tp->napi); +#endif + core_down: spin_lock_irq(&tp->lock); @@ -3009,11 +3012,6 @@ core_down: synchronize_irq(dev->irq); - if (!poll_locked) { - napi_disable(&tp->napi); - poll_locked++; - } - /* Give a racing hard_start_xmit a few cycles to complete. */ synchronize_sched(); /* FIXME: should this be synchronize_irq()? */ -- Stephen Hemminger <[EMAIL PROTECTED]> - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html