lkml.org 
[lkml]   [2006]   [Oct]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFC PATCH] add pci_{request,free}_irq take #2
Frederik Deweerdt wrote:
> +int pci_request_irq(struct pci_dev *pdev,
> + irqreturn_t(*handler) (int, void *, struct pt_regs *),
> + unsigned long flags, const char *name)
> +{
> + if (!is_irq_valid(pdev->irq)) {
> + dev_printk(KERN_ERR, &pdev->dev,
> + "No usable irq line was found (got #%d)\n",
> + pdev->irq);
> + return -EINVAL;
> + }
> +
> + return request_irq(pdev->irq, handler, flags,
> + name ? name : pdev->driver->name,
> + pci_get_drvdata(pdev));
> +}
> +EXPORT_SYMBOL(pci_request_irq);

> +void pci_free_irq(struct pci_dev *pdev)
> +{
> + free_irq(pdev->irq, pci_get_drvdata(pdev));
> +}
> +EXPORT_SYMBOL(pci_free_irq);

ACK these parts


> Index: 2.6.18-mm3/include/linux/interrupt.h
> ===================================================================
> --- 2.6.18-mm3.orig/include/linux/interrupt.h
> +++ 2.6.18-mm3/include/linux/interrupt.h
> @@ -75,6 +75,13 @@ struct irqaction {
> struct proc_dir_entry *dir;
> };
>
> +#ifndef ARCH_VALIDATE_PCI_IRQ
> +static inline int is_irq_valid(unsigned int irq)
> +{
> + return irq ? 1 : 0;
> +}
> +#endif /* ARCH_VALIDATE_PCI_IRQ */

It's not appropriate to have PCI IRQ stuff in linux/interrupt.h.

This is precisely why I passed 'struct pci_dev *' to a PCI-specific irq
validation function, and prototyped it in linux/pci.h.

Jeff


-
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/

\
 
 \ /
  Last update: 2006-10-04 00:17    [W:0.210 / U:0.504 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site