Hi guys,
I write the following rules to remove "request_irq" from funciton
"alx_request_msix_irq":
@@
expression ret;
@@
static int alx_request_msix_irq(struct alx_adapter *adpt)
{
+ int rid = 0;
...
- ret = request_irq(...);
...
}
but it doesn't work for the source code:
static int alx_request_msix_irq(struct alx_adapter *adpt)
{
irqreturn_t (*handler)(int, void *);
int msix_idx;
int num_msix_intrs = adpt->num_msix_intrs;
int retval = 0;
for (msix_idx = 0; msix_idx < num_msix_intrs; msix_idx++) {
handler = alx_msix_rtx;
retval = request_irq(adpt->msix_entries[msix_idx].vector,
handler, 0, msix->name, msix);
if (retval)
return retval;
}
return 0;
}
it only works when I move the "request_irq" call out of the for loop:
static int alx_request_msix_irq(struct alx_adapter *adpt)
{
irqreturn_t (*handler)(int, void *);
int msix_idx;
int num_msix_intrs = adpt->num_msix_intrs;
int retval = 0;
handler = alx_msix_rtx;
retval = request_irq(adpt->msix_entries[msix_idx].vector,
handler, 0, msix->name, msix);
for (msix_idx = 0; msix_idx < num_msix_intrs; msix_idx++) {
if (retval)
return retval;
}
return 0;
}
_______________________________________________
Cocci mailing list
[email protected]
http://lists.diku.dk/mailman/listinfo/cocci
(Web access from inside DIKUs LAN only)