From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomasz Wroblewski Subject: Re: [PATCH] PCI uart: fix boot hang, and second S3 resume inactive timer list corruption Date: Mon, 26 Aug 2013 17:09:33 +0200 Message-ID: <521B6FAD.6060509@citrix.com> References: <521B1D24.1060903@citrix.com> <521B557002000078000EE575@nat28.tlf.novell.com> <521B3E58.5020206@citrix.com> <521B6C1E02000078000EE640@nat28.tlf.novell.com> <521B5744.1070608@citrix.com> <521B79AA02000078000EE6B4@nat28.tlf.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta4.messagelabs.com ([85.158.143.247]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1VDyQw-0008Fn-B2 for xen-devel@lists.xenproject.org; Mon, 26 Aug 2013 15:10:22 +0000 In-Reply-To: <521B79AA02000078000EE6B4@nat28.tlf.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich Cc: xen-devel List-Id: xen-devel@lists.xenproject.org On 08/26/2013 03:52 PM, Jan Beulich wrote: >>>> On 26.08.13 at 15:25, Tomasz Wroblewski wrote: >>> Nevertheless, the approach of your patch in simply giving up >>> the device (even if only termporarily) looks questionable to me >>> We'd rather need to restore full access to it I would think. But >>> yes, this hypervisor and Dom0 playing with the same device is >>> sort of a gray area. >> Restore ioport access at the start of poll routine (if not on) and >> disable it again at the end (if was not on)? I might do that (if you >> really prefer), but intuitively that seems more likely to produce side >> effects in dom0 kernel than skipping a poll in xen > As long as it's guaranteed to only be a poll (or a few of them) being > affected, this is fine. But what if an interrupt is being used? I'm probably missing something so can you elaborate on this? Probably not what you are asking, but ns16550_interrupt function currently doesn't hang when ioports are disabled as a byproduct of the "while ( !(ns_read_reg(uart, IIR) & IIR_NOINT) )" test in there, which already causes it to break out on 0xFF regs > Jan >