public inbox for linux-serial@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] pcmcia/serial release of memory I/O twice
@ 2004-03-03 14:59 Jose Alonso
  0 siblings, 0 replies; only message in thread
From: Jose Alonso @ 2004-03-03 14:59 UTC (permalink / raw)
  To: linux-serial; +Cc: rmk+serial

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

The I/O address is allocated by pcmcia_request_io and released by
serial8250_release_port and pcmcia_release_io.

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
                     because flag 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:
"serial8250_release_port undo only what serial8250_request_port does"

--- linux-2.6.3/drivers/serial/8250.c.ORIG	2004-02-18 00:57:14.000000000
-0300
+++ linux-2.6.3/drivers/serial/8250.c	2004-03-03 11:26:27.757353637 -
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


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2004-03-03 14:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-03-03 14:59 [PATCH] pcmcia/serial release of memory I/O twice Jose Alonso

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox