All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mxser: PCI refcounts
@ 2006-09-15 14:12 Alan Cox
  2006-09-16 12:40 ` Jiri Slaby
  0 siblings, 1 reply; 4+ messages in thread
From: Alan Cox @ 2006-09-15 14:12 UTC (permalink / raw)
  To: akpm, linux-kernel

Switch to pci ref counts for mxser when handling PCI devices. Use
pci_get_device and drop the reference when we finish and unload.

Signed-off-by: Alan Cox <alan@redhat.com>

diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.18-rc6-mm1/drivers/char/mxser.c linux-2.6.18-rc6-mm1/drivers/char/mxser.c
--- linux.vanilla-2.6.18-rc6-mm1/drivers/char/mxser.c	2006-09-11 17:00:09.000000000 +0100
+++ linux-2.6.18-rc6-mm1/drivers/char/mxser.c	2006-09-14 16:14:52.000000000 +0100
@@ -538,6 +538,7 @@
 			if (pdev != NULL) {	/* PCI */
 				release_region(pci_resource_start(pdev, 2), pci_resource_len(pdev, 2));
 				release_region(pci_resource_start(pdev, 3), pci_resource_len(pdev, 3));
+				pci_dev_put(pdev);
 			} else {
 				release_region(mxsercfg[i].ioaddr[0], 8 * mxsercfg[i].ports);
 				release_region(mxsercfg[i].vector, 1);
@@ -862,9 +865,9 @@
 	index = 0;
 	b = 0;
 	while (b < n) {
-		pdev = pci_find_device(mxser_pcibrds[b].vendor,
+		pdev = pci_get_device(mxser_pcibrds[b].vendor,
 				mxser_pcibrds[b].device, pdev);
-			if (pdev == NULL) {
+		if (pdev == NULL) {
 			b++;
 			continue;
 		}
@@ -916,6 +919,9 @@
 			if (mxser_initbrd(m, &hwconf) < 0)
 				continue;
 			m++;
+			/* Keep an extra reference if we succeeded. It will
+			   be returned at unload time */
+			pci_dev_get(pdev);
 		}
 	}
 #endif


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] mxser: PCI refcounts
  2006-09-15 14:12 [PATCH] mxser: PCI refcounts Alan Cox
@ 2006-09-16 12:40 ` Jiri Slaby
  2006-09-16 12:58   ` Jiri Slaby
  2006-09-16 17:02   ` Alan Cox
  0 siblings, 2 replies; 4+ messages in thread
From: Jiri Slaby @ 2006-09-16 12:40 UTC (permalink / raw)
  To: Alan Cox; +Cc: akpm, linux-kernel

Alan Cox wrote:
> Switch to pci ref counts for mxser when handling PCI devices. Use
> pci_get_device and drop the reference when we finish and unload.

Please, don't do that. These all drivers need to be rewritten to pci probing 
(for this one I have a patch, but I waited for confirmation of previous 
patchset, but nothing has come, so perhaps I will clone it as NEW/EXPERIMENTAL 
1.9.1-with-pci-probing-driver) and when pci_find_device is there, we can `grep 
-r` it to know, which drivers need that. The same holds for zoran cards, which 
somebody wanted to play with (and rework), but as I can see, nothing happened :/.

[Changes in devices such as mtd are OK in my eyes...]

> Signed-off-by: Alan Cox <alan@redhat.com>
> 
> diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.18-rc6-mm1/drivers/char/mxser.c linux-2.6.18-rc6-mm1/drivers/char/mxser.c
> --- linux.vanilla-2.6.18-rc6-mm1/drivers/char/mxser.c	2006-09-11 17:00:09.000000000 +0100
> +++ linux-2.6.18-rc6-mm1/drivers/char/mxser.c	2006-09-14 16:14:52.000000000 +0100
> @@ -538,6 +538,7 @@
>  			if (pdev != NULL) {	/* PCI */
>  				release_region(pci_resource_start(pdev, 2), pci_resource_len(pdev, 2));
>  				release_region(pci_resource_start(pdev, 3), pci_resource_len(pdev, 3));
> +				pci_dev_put(pdev);
>  			} else {
>  				release_region(mxsercfg[i].ioaddr[0], 8 * mxsercfg[i].ports);
>  				release_region(mxsercfg[i].vector, 1);
> @@ -862,9 +865,9 @@
>  	index = 0;
>  	b = 0;
>  	while (b < n) {
> -		pdev = pci_find_device(mxser_pcibrds[b].vendor,
> +		pdev = pci_get_device(mxser_pcibrds[b].vendor,
>  				mxser_pcibrds[b].device, pdev);
> -			if (pdev == NULL) {
> +		if (pdev == NULL) {
>  			b++;
>  			continue;
>  		}
> @@ -916,6 +919,9 @@
>  			if (mxser_initbrd(m, &hwconf) < 0)
>  				continue;
>  			m++;
> +			/* Keep an extra reference if we succeeded. It will
> +			   be returned at unload time */
> +			pci_dev_get(pdev);
>  		}
>  	}
>  #endif
> 

regards,
-- 
http://www.fi.muni.cz/~xslaby/            Jiri Slaby
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8  22A0 32CC 55C3 39D4 7A7E

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] mxser: PCI refcounts
  2006-09-16 12:40 ` Jiri Slaby
@ 2006-09-16 12:58   ` Jiri Slaby
  2006-09-16 17:02   ` Alan Cox
  1 sibling, 0 replies; 4+ messages in thread
From: Jiri Slaby @ 2006-09-16 12:58 UTC (permalink / raw)
  To: Jiri Slaby; +Cc: Alan Cox, akpm, linux-kernel

Jiri Slaby wrote:
> Alan Cox wrote:
>> Switch to pci ref counts for mxser when handling PCI devices. Use
>> pci_get_device and drop the reference when we finish and unload.
> 
> Please, don't do that. These all drivers need to be rewritten to pci 
> probing (for this one I have a patch, but I waited for confirmation of 
> previous patchset, but nothing has come, so perhaps I will clone it as 
> NEW/EXPERIMENTAL 1.9.1-with-pci-probing-driver) and when pci_find_device 
> is there, we can `grep -r` it to know, which drivers need that. The same 

Just a note. I tried to do all this work, but it was nacked:
http://www.fi.muni.cz/~xslaby/unpr/linux_patches/pci_find/

You can pick up from there some patches for non-device drivers (such as buses or 
so), if you want to not do the work yourself again...

regards,
-- 
http://www.fi.muni.cz/~xslaby/            Jiri Slaby
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8  22A0 32CC 55C3 39D4 7A7E

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] mxser: PCI refcounts
  2006-09-16 12:40 ` Jiri Slaby
  2006-09-16 12:58   ` Jiri Slaby
@ 2006-09-16 17:02   ` Alan Cox
  1 sibling, 0 replies; 4+ messages in thread
From: Alan Cox @ 2006-09-16 17:02 UTC (permalink / raw)
  To: Jiri Slaby; +Cc: akpm, linux-kernel

Ar Sad, 2006-09-16 am 14:39 +0159, ysgrifennodd Jiri Slaby:
> Alan Cox wrote:
> > Switch to pci ref counts for mxser when handling PCI devices. Use
> > pci_get_device and drop the reference when we finish and unload.
> 
> Please, don't do that. These all drivers need to be rewritten to pci probing 
> (for this one I have a patch, but I waited for confirmation of previous 
> patchset, but nothing has come, so perhaps I will clone it as NEW/EXPERIMENTAL 
> 1.9.1-with-pci-probing-driver) and when pci_find_device is there, we can `grep 
> -r` it to know, which drivers need that. The same holds for zoran cards, which 
> somebody wanted to play with (and rework), but as I can see, nothing happened :/.

Well if they need pci probing updates perhaps we should either apply the
alternative patches and see what breaks, or delete the driver and see
who screams.

Alan


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2006-09-16 16:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-09-15 14:12 [PATCH] mxser: PCI refcounts Alan Cox
2006-09-16 12:40 ` Jiri Slaby
2006-09-16 12:58   ` Jiri Slaby
2006-09-16 17:02   ` Alan Cox

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.