Re: [RFC PATCH] pci_request_irq (was [-mm patch] aic7xxx: check irq validity)

Matthew Wilcox
2006-10-02T18:15:24Z

On Mon, Oct 02, 2006 at 08:00:48PM +0000, Frederik Deweerdt wrote:
> /**
> + * pci_request_irq - Reserve an IRQ for a PCI device
> + * @pdev: The PCI device whose irq is to be reserved
> + * handler: The interrupt handler function,

> + * pci_get_drvdata(pdev) shall be passed as an argument to that function

I don't think you can (or should) do this. Move it to the body of the
comment below.

> + * @flags: The flags to be passed to request_irq()
> + * @name: The name of the device to be associated with the irq
> + *
> + * Returns 0 on success, or a negative value on error. A warning
> + * message is also printed on failure.
> + */
> +int pci_request_irq(struct pci_dev *pdev,
> + irqreturn_t (*handler)(int, void *, struct pt_regs *),
> + unsigned long flags, const char *name)
> +{
> + int rc;
> + const char *actual_name = name;
> +
> + rc = is_irq_valid(pdev->irq);
> + if (!rc) {
> + dev_printk(KERN_ERR, &pdev->dev, "invalid irq #%d\n", pdev->irq);
> + return -EINVAL;
> + }

Why is that more readable than

if (!is_irq_valid(pdev->irq)) {
dev_err(&pdev->dev, "invalid irq #%d\n", pdev->irq);
return -EINVAL;
}

> + if (!actual_name)
> + actual_name = pci_name(pdev);
> +
> + return request_irq(pdev->irq, handler, flags | IRQF_SHARED,
> + actual_name, pci_get_drvdata(pdev));

The driver name is a far more common usage than the pci_name.

return request_irq(pdev->irq, handler, flags | IRQF_SHARED,
name ? name : pdev->driver->name,
pci_get_drvdata(pdev));