lkml.org 
[lkml]   [2008]   [Apr]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [git patch] free_irq() fixes
Eric W. Biederman wrote:
> Even if we never export them to drivers we will need to implement
> in genirq functions like:
>
> int __must_check irq_request(struct irq_desc *irq, irq_handler_t handler,
> unsigned long irqflags, const char *devname, void *devid);
>
> int __must_check request_irq(unsigned int irq, irq_handler_t handler,
> unsigned long irqflags, const char *devname, void *devid)
> {
> return irq_request(cookie_to_desc(irq), handler, irqflags, devname, devid);
> }
>
> Or at the very least do the mapping from cookie to irq_desc at the
> start of all of the genirq functions. One valid implementation of
> that cookie to desc will be the current array lookup. But for x86
> we need something less limiting.
[...]
> And on x86 at least the hardware maps the MSI write into an interrupt.
> So there is not an opportunity to get any metdata/OOB data from the
> MSI message. Instead we just potentially get a boatload more irq
> sources. Which is one of the things making a static NR_IRQS painful.
>
> To be safe we have to make NR_IRQS 10x+ or so bigger then people use
> today. Just in case they decide to plug in some really irq hungry
> cards.


Just to be clear, irq_chip/irq_desc and metadata/OOB data are two very
different beasts. irq_chip/irq_desc is more a system attribute as Linus
notes. Also, it doesn't change very often.
metadata/OOB, on the other hand, is different -for each interrupt-, and
is highly relevant to drivers. Thus should be part of the driver API
somehow.

Jeff




\
 
 \ /
  Last update: 2008-04-24 19:33    [from the cache]
©2003-2011 Jasper Spaans