From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH] serial: Skip over PCIe device which have no quirks (fix AMT regression). Date: Wed, 5 Mar 2014 14:45:39 -0500 Message-ID: <1394048739-3697-1-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WLHkj-0004JS-9U for xen-devel@lists.xenproject.org; Wed, 05 Mar 2014 19:45:17 +0000 Received: by mail-qg0-f43.google.com with SMTP id f51so4218220qge.2 for ; Wed, 05 Mar 2014 11:45:14 -0800 (PST) List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: Thomas Lendacky , Keir Fraser , Suravee Suthikulpanit , Aravind Gopalakrishnan , Jan Beulich List-Id: xen-devel@lists.xenproject.org The "ns16550: Add support for UART present in Broadcom TruManage capable NetXtreme chips" implies that only devices that are have an MMIO BAR and are in the quirks table should be processed. Even the comment at the end says so: If we have an io_base, then we succeeded in the lookup But the code was checking for the !io_base - which is to say if the io_base was NULL then we would skip scanning. This means that if we have an communication device followed by a serial AMT device we would pick the communication device instead of the MMIO. See: 00:16.0 Communication controller: Intel Corporation Cougar Point HECI Controller #1 (rev 04) Subsystem: Intel Corporation Device 2008 Flags: bus master, fast devsel, latency 0, IRQ 11 Memory at fb12a000 (64-bit, non-prefetchable) [size=16] 00:16.3 Serial controller: Intel Corporation Cougar Point KT Controller (rev 04) (prog-if 02 [16550]) Subsystem: Intel Corporation Device 2008 Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 17 I/O ports at f0e0 [size=8] Memory at fb129000 (32-bit, non-prefetchable) [size=4K] pci 0000:00:16.0: [8086:1c3a] type 00 class 0x078000 pci 0000:00:16.3: [8086:1c3d] type 00 class 0x070002 This patch fixes it and allows us to use AMT again. CC: Aravind Gopalakrishnan CC: Suravee Suthikulpanit CC: Thomas Lendacky CC: Jan Beulich CC: Keir Fraser Signed-off-by: Konrad Rzeszutek Wilk --- xen/drivers/char/ns16550.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c index 53e49a1..8a908bd 100644 --- a/xen/drivers/char/ns16550.c +++ b/xen/drivers/char/ns16550.c @@ -707,7 +707,7 @@ pci_uart_config (struct ns16550 *uart, int skip_amt, int bar_idx) } /* If we have an io_base, then we succeeded in the lookup */ - if ( !uart->io_base ) + if ( uart->io_base ) continue; } /* IO based */ -- 1.7.7.6