Staging: comedi: addi-data: don't overwrite name for request_irq()
authorIan Abbott <abbotti@mev.co.uk>
Wed, 19 May 2010 14:11:58 +0000 (15:11 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 4 Jun 2010 20:38:52 +0000 (13:38 -0700)
The Addi-Data PCI drivers for Comedi use sprintf() in their comedi
"attach" routine to construct a string to pass as the name in the call
to request_irq().  All calls to "attach" routine share the same static
buffer for this name, but the contents will differ on each call
(including the comedi device number and the comedi board name).  This
changes the name displayed in /proc/interrupts for previous calls to
request_irq() using the same buffer.  Just use the board name instead;
it has slightly less information (no comedi device number) but at least
it doesn't change over the lifetime of the IRQ handler.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/comedi/drivers/addi-data/addi_common.c

index d7f9bf49bb75a1b2420f2110ffc6c50636ca249c..b18e81d8cf8a5187fc4bc41afc974b5eb91ccbae 100644 (file)
@@ -2574,10 +2574,6 @@ static int i_ADDI_Attach(struct comedi_device *dev, struct comedi_devconfig *it)
        struct pcilst_struct *card = NULL;
        unsigned char pci_bus, pci_slot, pci_func;
        int i_Dma = 0;
-       static char c_Identifier[150];
-
-       sprintf(c_Identifier, "Addi-Data GmbH Comedi %s",
-               this_board->pc_DriverName);
 
        ret = alloc_private(dev, sizeof(struct addi_private));
        if (ret < 0)
@@ -2652,7 +2648,7 @@ static int i_ADDI_Attach(struct comedi_device *dev, struct comedi_devconfig *it)
 
        if (irq > 0) {
                if (request_irq(irq, v_ADDI_Interrupt, IRQF_SHARED,
-                               c_Identifier, dev) < 0) {
+                               this_board->pc_DriverName, dev) < 0) {
                        printk(", unable to allocate IRQ %u, DISABLING IT",
                                irq);
                        irq = 0;        /* Can't use IRQ */