浏览代码

[PATCH] via82cxxx_audio: Use pci_get_device

pci_find_device is not refcounting and should be getting killed off.

Signed-off-by: Alan Cox <alan@redhat.com>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Alan Cox 18 年之前
父节点
当前提交
14fef6414b
共有 1 个文件被更改,包括 4 次插入2 次删除
  1. 4 2
      sound/oss/via82cxxx_audio.c

+ 4 - 2
sound/oss/via82cxxx_audio.c

@@ -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)
 	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)
 	}
 	}
 
 
 	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)
 	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");