PATCH to fix bug: "serial" does not show up in /proc/interrupts

Thomas Hood (jdthoodREMOVETHIS@yahoo.co.uk)
Wed, 01 Aug 2001 23:20:31 -0400


This is a multi-part message in MIME format.
--------------4706668D69139E11E46D515A
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Here is a patch to fix the serial driver so that its name
appears in /proc/interrupts. The bug was caused by code
that was overwriting the string literal "serial" with "".
gcc merges all the "serial" strings together into one, so
the "serial" sent to irq_request() was being ""ed as a
side-effect.

Here is the patch to 2.4.7-ac3 both inline and attached.
// Thomas Hood <jdthood_AT_yahoo.co.uk>

--- serial.c_ORIG Wed Aug 1 23:02:09 2001
+++ serial.c Wed Aug 1 23:11:01 2001
@@ -4852,10 +4852,13 @@

MODULE_DEVICE_TABLE(pci, serial_pci_tbl);

+/* serial_pci_driver_name[] gets truncated to "" if the pci probe fails */
+static char serial_pci_driver_name[] = "serial";
+
static struct pci_driver serial_pci_driver = {
- name: "serial",
+ name: serial_pci_driver_name,
probe: serial_init_one,
- remove: serial_remove_one,
+ remove: serial_remove_one,
id_table: serial_pci_tbl,
};

I wrote:
> I noticed the following anomaly. I am using a modular serial
> driver for /dev/ttyS0 and /dev/ttyS1 (actually /dev/tts/0 and
> /dev/tts/1 under devfs). See the listing of my /proc/interrupts
> below. I have /dev/ttyS1 open; it uses IRQ3; but note that the
> name of the serial driver is not printed in the list.
>
> root@thanatos:~# cat /proc/interrupts
> CPU0
> 0: 65078 XT-PIC timer
> 1: 1546 XT-PIC keyboard
> 2: 0 XT-PIC cascade
> 3: 1979 XT-PIC
> 5: 3324 XT-PIC CS4231
> 8: 1 XT-PIC rtc
> 10: 27 XT-PIC mwave_3780i
> 11: 5021 XT-PIC usb-uhci, Texas Instruments PCI1250, Texas Instruments PCI1250 (#2)
> 12: 3268 XT-PIC PS/2 Mouse
> 14: 8807 XT-PIC ide0
> 15: 4 XT-PIC ide1
> NMI: 0
> ERR: 0
>
> Strange. But it gets stranger. I insert a combination modem/
> ethernet pcmcia card and I get:
>
> 7: 9 XT-PIC xirc2ps_cs,
>
> In the past, there was something printed after the comma,
> but now there's just a space. Bizarre.
>
> I was not able to find any silly bugs in the serial driver
> or irq routines that would account for this, so I am worried
> that something is very wrong somewhere.
>
> --
> Thomas Hood
> jdthood_AT_yahoo.co.uk
>
--------------4706668D69139E11E46D515A
Content-Type: text/plain; charset=us-ascii;
name="toms-serial-patch-20010801-1"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="toms-serial-patch-20010801-1"

--- serial.c_ORIG Wed Aug 1 23:02:09 2001
+++ serial.c Wed Aug 1 23:11:01 2001
@@ -4852,10 +4852,13 @@

MODULE_DEVICE_TABLE(pci, serial_pci_tbl);

+/* serial_pci_driver_name[] gets truncated to "" if the pci probe fails */
+static char serial_pci_driver_name[] = "serial";
+
static struct pci_driver serial_pci_driver = {
- name: "serial",
+ name: serial_pci_driver_name,
probe: serial_init_one,
- remove: serial_remove_one,
+ remove: serial_remove_one,
id_table: serial_pci_tbl,
};

--------------4706668D69139E11E46D515A--

-
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/