[PATCH] serial driver procfs

From: Ed Vance (EdV@macrolink.com)
Date: Thu Mar 14 2002 - 20:11:01 EST


Please pummel this patch into the next 2.4.19-preX.

Serial driver procfs patch

This patch changes text generated by the generic serial driver for the
/proc/tty/driver/serial interface. Now generates correct address and
port statistics fields for memory mapped devices. Displays only ports
claimed by driver. Prevents kudzu crash at pciserial.c:78 when memory
mapped devices are present, due to missing fields in text line and
missing check of string search result in kudzu.
Example - before:
    "1: uart:16550A port:02F8 irq:3 tx:0 rx:0 " (I/O space)
    "4: uart:16C950/954 port:0 irq:14" (memory space)
    "44: uart:unknown port:0 irq:0" (not claimed)
Example - after:
    "1: uart:16550A port:02F8 irq:3 tx:0 rx:0 " (I/O port)
    "4: uart:16C950/954 port:C4800000 irq:14 tx:0 rx:0 " (memory space)

Created on kernel files rev 2.4.19-pre3

Contributor: Ed Vance [serial24@macrolink.com]

diff -urN -X dontdiff.txt linux-2.4.19-pre3/drivers/char/serial.c
patched/drivers/char/serial.c
--- linux-2.4.19-pre3/drivers/char/serial.c Sat Mar 2 10:38:11 2002
+++ patched/drivers/char/serial.c Thu Mar 14 15:05:52 2002
@@ -3258,14 +3258,17 @@
         int ret;
         unsigned long flags;
 
+ /*
+ * Return zero characters for ports not claimed by driver.
+ */
+ if (state->type == PORT_UNKNOWN) {
+ return 0; /* ignore unused ports */
+ }
+
         ret = sprintf(buf, "%d: uart:%s port:%lX irq:%d",
                       state->line, uart_config[state->type].name,
- state->port, state->irq);
-
- if (!state->port || (state->type == PORT_UNKNOWN)) {
- ret += sprintf(buf+ret, "\n");
- return ret;
- }
+ (state->port ? state->port : (long)state->iomem_base),
+ state->irq);
 
         /*
          * Figure out the current RS-232 lines

----------------------------------------------------------------
Ed Vance edv@macrolink.com
Software Development Manager
Macrolink, Inc. 1500 N. Kellogg Dr Anaheim, CA 92807
PH 714.777.8800 x335 Fax 714.777.8807 http://www.macrolink.com
----------------------------------------------------------------

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



This archive was generated by hypermail 2b29 : Fri Mar 15 2002 - 22:00:19 EST