Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > fc11cd6e1c513a17304da94a5390f3cd > files > 3709

kernel-2.6.18-194.11.1.el5.src.rpm

From: Luming Yu <luyu@redhat.com>
Date: Fri, 9 Nov 2007 12:14:22 +0800
Subject: [serial] irq -1 assigned to serial port
Message-id: 4733DE9E.5050106@redhat.com
O-Subject: [RHEL 5.2 PATCH] bz227728: IRQ -1 assigned to serial port
Bugzilla: 227728

bz 227728

Description of problem:

 There is a "ttyS1 irq is -1" problem observed on tiger4 which cause the
  serial port broken.

  It is because that there is __no__ ACPI IRQ resource assigned for the
  serial port.  So the value of the IRQ for the port is never changed since it
  got initialized to -1.

Upstream status:
The patch has been in -mm tree for a while. I'm pretty sure it will go
upstream.
http://www.mail-archive.com/mm-commits@vger.kernel.org/msg28291.html

The following back port is tested by me , and it fixes the problem.

Management status:
The pm_ack, devel_ack, and qa_ack are __not__ set on the bugzilla.

Please review, test and AC.

Thanks,
Luming

Acked-by: Pete Zaitcev <zaitcev@redhat.com>
Acked-by: Prarit Bhargava <prarit@redhat.com>
Acked-by: Alan Cox <alan@redhat.com>

diff --git a/drivers/serial/8250_pnp.c b/drivers/serial/8250_pnp.c
index 632f62d..da3f91d 100644
--- a/drivers/serial/8250_pnp.c
+++ b/drivers/serial/8250_pnp.c
@@ -414,7 +414,8 @@ serial_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id)
 	}
 
 	memset(&port, 0, sizeof(struct uart_port));
-	port.irq = pnp_irq(dev, 0);
+	if (pnp_irq_valid(dev, 0))
+		port.irq = pnp_irq(dev, 0);
 	if (pnp_port_valid(dev, 0)) {
 		port.iobase = pnp_port_start(dev, 0);
 		port.iotype = UPIO_PORT;