[Devel] [PATCH 2/3] pcmcia: Handle request_irq() failure while opening device
Monakhov Dmitriy
dmonakhov at openvz.org
Mon Feb 26 08:09:17 PST 2007
Signed-off-by: Monakhov Dmitriy <dmonakhov at openvz.org>
---
drivers/net/pcmcia/axnet_cs.c | 8 +++++++-
drivers/net/pcmcia/pcnet_cs.c | 8 +++++++-
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/drivers/net/pcmcia/axnet_cs.c b/drivers/net/pcmcia/axnet_cs.c
index 6139048..9b57bab 100644
--- a/drivers/net/pcmcia/axnet_cs.c
+++ b/drivers/net/pcmcia/axnet_cs.c
@@ -523,6 +523,7 @@ static int axnet_open(struct net_device *dev)
{
axnet_dev_t *info = PRIV(dev);
struct pcmcia_device *link = info->p_dev;
+ int err = 0;
DEBUG(2, "axnet_open('%s')\n", dev->name);
@@ -531,7 +532,12 @@ static int axnet_open(struct net_device *dev)
link->open++;
- request_irq(dev->irq, ei_irq_wrapper, IRQF_SHARED, "axnet_cs", dev);
+ err = request_irq(dev->irq, ei_irq_wrapper, IRQF_SHARED, "axnet_cs", dev);
+ if (err) {
+ printk("axnet_cs: request_irq() failed %s\n", dev->name);
+ link->open--;
+ return -EBUSY;
+ }
info->link_status = 0x00;
init_timer(&info->watchdog);
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c
index d88e9b2..13923ea 100644
--- a/drivers/net/pcmcia/pcnet_cs.c
+++ b/drivers/net/pcmcia/pcnet_cs.c
@@ -962,6 +962,7 @@ static int pcnet_open(struct net_device *dev)
{
pcnet_dev_t *info = PRIV(dev);
struct pcmcia_device *link = info->p_dev;
+ int err = 0;
DEBUG(2, "pcnet_open('%s')\n", dev->name);
@@ -971,7 +972,12 @@ static int pcnet_open(struct net_device *dev)
link->open++;
set_misc_reg(dev);
- request_irq(dev->irq, ei_irq_wrapper, IRQF_SHARED, dev_info, dev);
+ err = request_irq(dev->irq, ei_irq_wrapper, IRQF_SHARED, dev_info, dev);
+ if (err) {
+ printk("pcnet_open: request_irq() failed %s\n", dev->name);
+ link->open--;
+ return -EBUSY;
+ }
info->phy_id = info->eth_phy;
info->link_status = 0x00;
--
1.5.0.1
More information about the Devel
mailing list