linux-parisc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Helge Deller <deller@kernel.org>
To: linux-kernel@vger.kernel.org, linux-parisc@vger.kernel.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jiri Slaby <jirislaby@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>,
	linux-pci@vger.kernel.org
Subject: [PATCH] serial: 8250_pci: Fix Warning at drivers/pci/devres.c:603 pcim_add_mapping_to_legacy_table
Date: Sun, 26 Jan 2025 08:37:16 +0100	[thread overview]
Message-ID: <Z5XmLKzhKpLAlzHt@p100> (raw)

Some PA-RISC servers have BMC management cards (Diva) with up to 5 serial
UARTS per memory PCI bar. This triggers since at least kernel 6.12 for each of
the UARTS (beside the first one) the following warning in devres.c:

 0000:00:02.0: ttyS2 at MMIO 0xf0822000 (irq = 21, base_baud = 115200) is a 16550A
 0000:00:02.0: ttyS3 at MMIO 0xf0822010 (irq = 21, base_baud = 115200) is a 16550A
 ------------[ cut here ]------------
 WARNING: CPU: 1 PID: 1 at drivers/pci/devres.c:603 pcim_add_mapping_to_legacy_table+0x5c/0x8c
 CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.11+ #2621
 Hardware name: 9000/778/B160L
 
  IAOQ[0]: pcim_add_mapping_to_legacy_table+0x5c/0x8c
  IAOQ[1]: pcim_add_mapping_to_legacy_table+0x60/0x8c
  RP(r2): pcim_add_mapping_to_legacy_table+0x4c/0x8c
 Backtrace:
  [<10c1eb10>] pcim_iomap+0xd4/0x10c
  [<10ca8784>] serial8250_pci_setup_port+0xa8/0x11c
  [<10ca9a34>] pci_hp_diva_setup+0x6c/0xc4
  [<10cab134>] pciserial_init_ports+0x150/0x324
  [<10cab470>] pciserial_init_one+0xfc/0x20c
  [<10c14780>] pci_device_probe+0xc0/0x190
  ...
 ---[ end trace 0000000000000000 ]---

I see three options to avoid this warning:
a) drop the WARNING() from devrec.c,
b) modify pcim_iomap() to return an existing mapping if it exists
   instead of creating a new mapping, or
c) change serial8250_pci_setup_port() to only create a new mapping
   if none exists yet.

This patch implements option c).

Signed-off-by: Helge Deller <deller@gmx.de>
Cc: <stable@vger.kernel.org> # v6.12+


diff --git a/drivers/tty/serial/8250/8250_pcilib.c b/drivers/tty/serial/8250/8250_pcilib.c
index ea906d721b2c..fc024bf86c1f 100644
--- a/drivers/tty/serial/8250/8250_pcilib.c
+++ b/drivers/tty/serial/8250/8250_pcilib.c
@@ -19,7 +19,9 @@ int serial8250_pci_setup_port(struct pci_dev *dev, struct uart_8250_port *port,
 		return -EINVAL;
 
 	if (pci_resource_flags(dev, bar) & IORESOURCE_MEM) {
-		if (!pcim_iomap(dev, bar, 0) && !pcim_iomap_table(dev))
+		/* might have been mapped already with other offset */
+		if (!pcim_iomap_table(dev) || !pcim_iomap_table(dev)[bar] ||
+			!pcim_iomap(dev, bar, 0))
 			return -ENOMEM;
 
 		port->port.iotype = UPIO_MEM;

             reply	other threads:[~2025-01-26  7:37 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-26  7:37 Helge Deller [this message]
2025-01-27 13:14 ` [PATCH] serial: 8250_pci: Fix Warning at drivers/pci/devres.c:603 pcim_add_mapping_to_legacy_table Helge Deller
2025-02-06 14:35 ` Philipp Stanner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Z5XmLKzhKpLAlzHt@p100 \
    --to=deller@kernel.org \
    --cc=bhelgaas@google.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jirislaby@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-parisc@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).