Skip to contentSkip to conversation

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

DISCUSSION Thomas Hood 1 participant 1 message Aug 2, 2001 Char and misc drivers

lore
Share & tools
lore
#0 lore raw

Sorry ... here is the same patch but with the diff done from the parent of the code hierarchy.

---------------------------------------------------

drivers/char/serial.c Wed Aug 1 23:11:01 2001 renamed from drivers/char/serial.c_ORIG Wed Aug 1 23:02:09 2001 +5 -3
@@ -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,
 };
---------------------------------------------------
Quoted 9 lines

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>

drivers/char/serial.c renamed from drivers/char/serial.c_ORIG +5 -2
@@ -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,
 };