Updated one per your comment
Thanks,
Anthony
Isaku Yamahata wrote:
> On Wed, Sep 24, 2008 at 03:51:55PM +0800, Xu, Anthony wrote:
>> request_irq is needed by VTD
>>
>> Signed-off-by; Anthony Xu < anthony.xu@xxxxxxxxx >
>>
>>
>> diff -r 64d6ad484229 xen/arch/ia64/linux-xen/irq_ia64.c
>> --- a/xen/arch/ia64/linux-xen/irq_ia64.c Wed Sep 24 14:58:31
>> 2008 +0800 +++ b/xen/arch/ia64/linux-xen/irq_ia64.c Wed Sep 24
>> 15:20:48 2008 +0800 @@ -266,6 +266,42 @@ }
>> }
>>
>> +int request_irq(unsigned int irq,
>> + void (*handler)(int, void *, struct cpu_user_regs *),
>> + unsigned long irqflags, const char * devname, void
>> *dev_id) +{ + struct irqaction * action;
>> + int retval=0;
>> +
>> + /*
>> + * Sanity-check: shared interrupts must pass in a real dev-ID,
>> + * otherwise we'll have trouble later trying to figure out
>> + * which interrupt is which (messes up the interrupt freeing
>> logic etc). + * */
>> + if (irq >= NR_IRQS)
>> + return -EINVAL;
>> + if (!handler)
>> + return -EINVAL;
>> +
>> + action = xmalloc(struct irqaction);
>> + if (!action)
>> + return -ENOMEM;
>> +
>> + action->handler = handler;
>> + action->name = devname;
>> + action->dev_id = dev_id;
>> +#ifdef XEN
>> + setup_vector(irq, action);
>> +#else
>> + retval = setup_irq(irq, action);
>> +#endif
>> + if (retval)
>> + xfree(action);
>> +
>> + return retval;
>> +}
>> +
>> +
>> void __init
>> init_IRQ (void)
>> {
>
> request_irq() isn't defined in Linux 2.6.13 irq_ia64.c, but
> in kernel/irq/manage.c. And the above code doesn't match the one
> in manage.c (except ifdef XEN).
> Probably it would be better to surround whole request_irq()
> with #ifdef XEN.
>
> thanks,
request_irq_0927.patch
Description: request_irq_0927.patch
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|