Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S262416AbVESAYn (ORCPT ); Wed, 18 May 2005 20:24:43 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S262420AbVESAYm (ORCPT ); Wed, 18 May 2005 20:24:42 -0400 Received: from gateway-1237.mvista.com ([12.44.186.158]:14835 "EHLO av.mvista.com") by vger.kernel.org with ESMTP id S262421AbVESAYj (ORCPT ); Wed, 18 May 2005 20:24:39 -0400 Message-ID: <428BDCAD.2090307@mvista.com> Date: Wed, 18 May 2005 17:24:13 -0700 From: George Anzinger Reply-To: george@mvista.com Organization: MontaVista Software User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.6) Gecko/20050323 Fedora/1.7.6-1.3.2 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Andi Kleen CC: Dave Jones , akpm@osdl.org, linux-kernel@vger.kernel.org Subject: Re: tickle nmi watchdog whilst doing serial writes. References: <20050513184806.GA24166@redhat.com> <20050515130742.A29619@flint.arm.linux.org.uk> In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1603 Lines: 42 Andi Kleen wrote: > Russell King writes: > > >>On Sun, May 15, 2005 at 01:38:02PM +0200, Andi Kleen wrote: >> >>>Dave Jones writes: >>> >>>> >>>> #include >>>> #include >>>>@@ -2099,8 +2100,10 @@ static inline void wait_for_xmitr(struct >>>> if (up->port.flags & UPF_CONS_FLOW) { >>>> tmout = 1000000; >>>> while (--tmout && >>>>- ((serial_in(up, UART_MSR) & UART_MSR_CTS) == 0)) >>>>+ ((serial_in(up, UART_MSR) & UART_MSR_CTS) == 0)) { >>>> udelay(1); >>>>+ touch_nmi_watchdog(); >>> >>>Note that touch_nmi_watchdog is not exported on i386 - Linus vetoed >>>that some time ago. The real fix of course is to use schedule_timeout(), >>>but that might break printk() with interrupts off :/ >> >>Not to mention printk() from atomic contexts and panic(). No, >>schedule_timeout() is _not_ a "real fix" but a kludge. Um... I would think the real fix is to set the UART up to generate the modem status interrupt and eliminate the pole loop. Why can't this be done? I, for one, don't want my cpu looping in the serial driver, even more so with the interrupt system off. This, in my mind, is a real bug in the serial driver and should be so handled. -- George Anzinger george@mvista.com High-res-timers: http://sourceforge.net/projects/high-res-timers/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/