netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 07/18] isdn: avm: call disable_pci_device() if pci_probe() failed
@ 2010-08-06 19:51 Kulikov Vasiliy
  2010-08-08  5:34 ` David Miller
  0 siblings, 1 reply; 2+ messages in thread
From: Kulikov Vasiliy @ 2010-08-06 19:51 UTC (permalink / raw)
  To: kernel-janitors
  Cc: Karsten Keil, David S. Miller, Alexey Dobriyan, Tilman Schmidt,
	netdev

Driver should call disable_pci_device() if it returns from pci_probe()
with error. Also it must not be called if request_region() fails as
it means that somebody uses device resources and rules the device.

Signed-off-by: Kulikov Vasiliy <segooon@gmail.com>
---
 drivers/isdn/hardware/avm/t1pci.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/isdn/hardware/avm/t1pci.c b/drivers/isdn/hardware/avm/t1pci.c
index 5a3f830..e891ed6 100644
--- a/drivers/isdn/hardware/avm/t1pci.c
+++ b/drivers/isdn/hardware/avm/t1pci.c
@@ -210,6 +210,8 @@ static int __devinit t1pci_probe(struct pci_dev *dev,
 	if (retval != 0) {
 		printk(KERN_ERR "t1pci: no AVM-T1-PCI at i/o %#x, irq %d detected, mem %#x\n",
 		       param.port, param.irq, param.membase);
+		if (retval != -EBUSY)
+			pci_disable_device(dev);
 		return -ENODEV;
 	}
 	return 0;
-- 
1.7.0.4


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

* Re: [PATCH 07/18] isdn: avm: call disable_pci_device() if pci_probe() failed
  2010-08-06 19:51 [PATCH 07/18] isdn: avm: call disable_pci_device() if pci_probe() failed Kulikov Vasiliy
@ 2010-08-08  5:34 ` David Miller
  0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2010-08-08  5:34 UTC (permalink / raw)
  To: segooon; +Cc: kernel-janitors, isdn, adobriyan, tilman, netdev

From: Kulikov Vasiliy <segooon@gmail.com>
Date: Fri,  6 Aug 2010 23:51:41 +0400

> Driver should call disable_pci_device() if it returns from pci_probe()

"pci_disable_device()"

> with error. Also it must not be called if request_region() fails as
> it means that somebody uses device resources and rules the device.

This interface, frankly, sucks.

If this is what we want then pci_enable_device() and
pci_disable_device() should maintain a reference count,
so that device drivers need not be mindful of what
arbitrary special circumstances they should make the
disable call or not.  They can make it unconditionally
and the PCI layer makes sure the device doesn't get
disabled unintentionally.

This is software interface design 101.

The current requirements are beyond unreasonable and
should be fixed before we apply patches like this.

I'm tossing all of these patches, sorry.

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

end of thread, other threads:[~2010-08-08  5:33 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-06 19:51 [PATCH 07/18] isdn: avm: call disable_pci_device() if pci_probe() failed Kulikov Vasiliy
2010-08-08  5:34 ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).