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

Frederik Deweerdt
2006-10-02T19:11:18Z

On Mon, Oct 02, 2006 at 12:15:22PM -0600, Matthew Wilcox wrote:
> 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.
OK, thanks for pointing this, will do.
>
> > + * @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;
> }
>
Better too.
> > + 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));
OK, thanks for the feedback,
Frederik
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>