Commit 14fef641 authored by Alan Cox's avatar Alan Cox Committed by Linus Torvalds

[PATCH] via82cxxx_audio: Use pci_get_device

pci_find_device is not refcounting and should be getting killed off.
Signed-off-by: default avatarAlan Cox <alan@redhat.com>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent f2443ab6
...@@ -1547,7 +1547,7 @@ static int via_mixer_open (struct inode *inode, struct file *file) ...@@ -1547,7 +1547,7 @@ static int via_mixer_open (struct inode *inode, struct file *file)
DPRINTK ("ENTER\n"); DPRINTK ("ENTER\n");
while ((pdev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, pdev)) != NULL) { while ((pdev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, pdev)) != NULL) {
drvr = pci_dev_driver (pdev); drvr = pci_dev_driver (pdev);
if (drvr == &via_driver) { if (drvr == &via_driver) {
assert (pci_get_drvdata (pdev) != NULL); assert (pci_get_drvdata (pdev) != NULL);
...@@ -1562,6 +1562,7 @@ static int via_mixer_open (struct inode *inode, struct file *file) ...@@ -1562,6 +1562,7 @@ static int via_mixer_open (struct inode *inode, struct file *file)
return -ENODEV; return -ENODEV;
match: match:
pci_dev_put(pdev);
file->private_data = card->ac97; file->private_data = card->ac97;
DPRINTK ("EXIT, returning 0\n"); DPRINTK ("EXIT, returning 0\n");
...@@ -3245,7 +3246,7 @@ static int via_dsp_open (struct inode *inode, struct file *file) ...@@ -3245,7 +3246,7 @@ static int via_dsp_open (struct inode *inode, struct file *file)
} }
card = NULL; card = NULL;
while ((pdev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, pdev)) != NULL) { while ((pdev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, pdev)) != NULL) {
drvr = pci_dev_driver (pdev); drvr = pci_dev_driver (pdev);
if (drvr == &via_driver) { if (drvr == &via_driver) {
assert (pci_get_drvdata (pdev) != NULL); assert (pci_get_drvdata (pdev) != NULL);
...@@ -3264,6 +3265,7 @@ static int via_dsp_open (struct inode *inode, struct file *file) ...@@ -3264,6 +3265,7 @@ static int via_dsp_open (struct inode *inode, struct file *file)
return -ENODEV; return -ENODEV;
match: match:
pci_dev_put(pdev);
if (nonblock) { if (nonblock) {
if (!mutex_trylock(&card->open_mutex)) { if (!mutex_trylock(&card->open_mutex)) {
DPRINTK ("EXIT, returning -EAGAIN\n"); DPRINTK ("EXIT, returning -EAGAIN\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment