[media] saa7164: free_irq before pci_disable_device
authorOlli Salonen <olli.salonen@iki.fi>
Sat, 21 Feb 2015 21:45:26 +0000 (18:45 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Tue, 3 Mar 2015 14:16:09 +0000 (11:16 -0300)
Free the IRQ before disabling the device. Otherwise errors like this when unloading the module:

[21135.458560] ------------[ cut here ]------------
[21135.458569] WARNING: CPU: 4 PID: 1696 at /home/apw/COD/linux/fs/proc/generic.c:521 remove_proc_entry+0x1a1/0x1b0()
[21135.458572] remove_proc_entry: removing non-empty directory 'irq/47', leaking at least 'saa7164[0]'

Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Reviewed-by: Steven Toth <stoth@kernellabs.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/pci/saa7164/saa7164-core.c

index 4b0bec3..9cf3c6c 100644 (file)
@@ -1436,11 +1436,11 @@ static void saa7164_finidev(struct pci_dev *pci_dev)
        saa7164_i2c_unregister(&dev->i2c_bus[1]);
        saa7164_i2c_unregister(&dev->i2c_bus[2]);
 
-       pci_disable_device(pci_dev);
-
        /* unregister stuff */
        free_irq(pci_dev->irq, dev);
 
+       pci_disable_device(pci_dev);
+
        mutex_lock(&devlist);
        list_del(&dev->devlist);
        mutex_unlock(&devlist);