request_irq() return value

From: Mariusz Kozlowski
Date: Thu Jul 27 2006 - 13:48:09 EST


Hello,

I'm looking at the source code of different drivers and wondering about
request_irq() return value. It is used mostly in 'open' routine of struct
net_device. If request_irq() fails some drivers return -EAGAIN, some -EBUSY
and some the return value of request_irq(). Is this intentional? Sample
drivers code:

8139cp.c:
static int cp_open (struct net_device *dev) {
...
rc = request_irq(dev->irq, cp_interrupt, SA_SHIRQ, dev->name, dev);
if (rc)
goto err_out_hw;
...
err_out_hw:
...
return rc;
}

3c359.c:
static int xl_open(struct net_device *dev){
...
if(request_irq(dev->irq, &xl_interrupt, SA_SHIRQ , "3c359", dev)) {
return -EAGAIN;
}
...
}

Besides request_irq() is arch dependent so depending on arch it has different
set of possible return values. So ... does the return value matter or I
misunderstood something here?

Regards,

Mariusz
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/