From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from az33egw02.freescale.net (az33egw02.freescale.net [192.88.158.103]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "az33egw02.freescale.net", Issuer "Thawte Premium Server CA" (verified OK)) by ozlabs.org (Postfix) with ESMTPS id 58EABDE053 for ; Sat, 26 Jul 2008 05:02:43 +1000 (EST) Message-Id: <0C5F7DBC-2B04-47C0-B14E-D5EEFD344176@freescale.com> From: Andy Fleming To: Sebastian Siewior In-Reply-To: <20080723200337.GA5122@Chamillionaire.breakpoint.cc> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Mime-Version: 1.0 (Apple Message framework v926) Subject: Re: [PATCH / RFC] net: don't grab a mutex within a timer context in gianfar Date: Fri, 25 Jul 2008 15:02:11 -0400 References: <20080718121008.GA28871@Chamillionaire.breakpoint.cc> <1216681028.7559.993.camel@localhost.localdomain> <20080722205911.GA29840@Chamillionaire.breakpoint.cc> <20080723200337.GA5122@Chamillionaire.breakpoint.cc> Cc: Nate Case , netdev@vger.kernel.org, linuxppc-dev@ozlabs.org, Vitaly Bordug , Li Yang , Jeff Garzik List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Jul 23, 2008, at 16:03, Sebastian Siewior wrote: > From: Sebastian Siewior > > I got the following backtrace while network was unavailble: > > |NETDEV WATCHDOG: eth0: transmit timed out > |BUG: sleeping function called from invalid context at /home/bigeasy/ > git/linux-2.6-powerpc/kernel/mutex.c:87 > |in_atomic():1, irqs_disabled():0 > |Call Trace: > |[c0383d90] [c0006dd8] show_stack+0x48/0x184 (unreliable) > |[c0383db0] [c001e938] __might_sleep+0xe0/0xf4 > |[c0383dc0] [c025a43c] mutex_lock+0x24/0x3c > |[c0383de0] [c019005c] phy_stop+0x20/0x70 > |[c0383df0] [c018d4ec] stop_gfar+0x28/0xf4 > |[c0383e10] [c018e8c4] gfar_timeout+0x30/0x60 > |[c0383e20] [c01fe7c0] dev_watchdog+0xa8/0x144 > |[c0383e30] [c002f93c] run_timer_softirq+0x148/0x1c8 > |[c0383e60] [c002b084] __do_softirq+0x5c/0xc4 > |[c0383e80] [c00046fc] do_softirq+0x3c/0x54 > |[c0383e90] [c002ac60] irq_exit+0x3c/0x5c > |[c0383ea0] [c000b378] timer_interrupt+0xe0/0xf8 > |[c0383ec0] [c000e5ac] ret_from_except+0x0/0x18 > |[c0383f80] [c000804c] cpu_idle+0xcc/0xdc > |[c0383fa0] [c025c07c] etext+0x7c/0x90 > |[c0383fc0] [c0338960] start_kernel+0x294/0x2a8 > |[c0383ff0] [c00003dc] skpinv+0x304/0x340 > |------------[ cut here ]------------ > > The phylock was once a spinlock but got changed into a mutex via > commit 35b5f6b1a aka [PHYLIB: Locking fixes for PHY I/O potentially > sleeping] > > Signed-off-by: Sebastian Siewior > --- Looks good to me. Thanks for taking care of this. Acked-by: Andy Fleming