ALSA: asihpi - Ensure all adapter data is cleared on device removal.
authorEliot Blennerhassett <eblennerhassett@audioscience.com>
Thu, 10 Feb 2011 04:26:18 +0000 (17:26 +1300)
committerTakashi Iwai <tiwai@suse.de>
Thu, 10 Feb 2011 17:49:38 +0000 (18:49 +0100)
Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/asihpi/hpioctl.c

index 0ea9aae8011b4573743108cff4158798a0e7907d..26186be638b13719e2027217b4ede0860421fce6 100644 (file)
@@ -449,10 +449,8 @@ void __devexit asihpi_adapter_remove(struct pci_dev *pci_dev)
                }
        }
 
-       if (pa->p_buffer) {
-               pa->buffer_size = 0;
+       if (pa->p_buffer)
                vfree(pa->p_buffer);
-       }
 
        pci_set_drvdata(pci_dev, NULL);
        if (1)
@@ -461,6 +459,8 @@ void __devexit asihpi_adapter_remove(struct pci_dev *pci_dev)
                        pci_dev->vendor, pci_dev->device,
                        pci_dev->subsystem_vendor, pci_dev->subsystem_device,
                        pci_dev->devfn, pa->index);
+
+       memset(pa, 0, sizeof(*pa));
 }
 
 void __init asihpi_init(void)