pcmcia/serial release of memory I/O twice

From: Jose Alonso
Date: Tue Mar 09 2004 - 11:13:14 EST


I am using a pcmcia modem (linux-2.6.3) and when I unplug the
card the kernel warns:
"kernel: Trying to free nonexistent resource <000003e8-000003ef>"

The allocation of I/O address is done in:
module serial_cs:
simple_config:
pcmcia_request_io ---> allocate I/O address
setup_serial ... serial8250_request_port ---> doesn't allocate I/O
(UPF_RESOURCES is not set)

The release of I/O address is done in:
module serial_cs:
serial_remove:
unregister_serial ... serial8250_release_port ---> release I/O
pcmcia_release_io ---> release again the I/O

I suggest the patch bellow:

--- drivers/serial/8250.c.ORIG 2004-02-18 00:57:14.000000000 -0300
+++ drivers/serial/8250.c 2004-02-27 13:31:41.000000000 -0300
@@ -1670,6 +1670,8 @@
struct uart_8250_port *up = (struct uart_8250_port *)port;
unsigned long start, offset = 0, size = 0;

+ if (!(up->port.flags & UPF_RESOURCES))
+ return;
if (up->port.type == PORT_RSA) {
offset = UART_RSA_BASE << up->port.regshift;
size = 8;

--
alonso

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/