From: Philippe Gerum <rpm@xenomai.org>
To: Thomas Schaefer <thomass@domain.hid>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-help] MSI Interrupt Crash
Date: Fri, 02 May 2008 17:02:17 +0200 [thread overview]
Message-ID: <481B2CF9.9000404@domain.hid> (raw)
In-Reply-To: <6B8F1229FFBDCA47BA5C9712C46F18DF493016@domain.hid>
Thomas Schaefer wrote:
>
>> Does this help?
>>
>> --- include/asm-x86/wrappers_64.h (revision 3719)
>> +++ include/asm-x86/wrappers_64.h (revision 3720)
>> @@ -31,8 +31,8 @@
>> #define rthal_irq_descp(irq) (irq_desc + irq)
>> #define rthal_irq_desc_status(irq) (rthal_irq_descp(irq)->status)
>>
>> -#define rthal_irq_chip_enable(irq) ({ rthal_irq_descp(irq)->chip-
>>> enable(irq); 0; })
>> -#define rthal_irq_chip_disable(irq) ({ rthal_irq_descp(irq)->chip-
>>> disable(irq); 0; })
>> +#define rthal_irq_chip_enable(irq) ({ rthal_irq_descp(irq)->chip-
>>> unmask(irq); 0; })
>> +#define rthal_irq_chip_disable(irq) ({ rthal_irq_descp(irq)->chip-
>>> mask(irq); 0; })
>> #define rthal_irq_chip_end(irq) ({ rthal_irq_descp(irq)-
>>> ipipe_end(irq, rthal_irq_descp(irq));
>> 0; })
>>
>> typedef irq_handler_t rthal_irq_host_handler_t;
>
> We are using the current version from the SVN repository and those
> changes are already in there.
>
Please send the output back:
--- ksrc/arch/x86/hal-common.c (revision 3734)
+++ ksrc/arch/x86/hal-common.c (working copy)
@@ -347,8 +347,20 @@
if (irq >= NR_IRQS)
return -EINVAL;
+ if (rthal_irq_descp(irq)->chip == NULL) {
+ printk(KERN_ERR "Xenomai: %s: no chip descriptor for irq %u\n", __FUNCTION__, irq);
+ return 0;
+ }
+
rthal_irq_desc_status(irq) &= ~IRQ_DISABLED;
+ if (rthal_irq_descp(irq)->chip->unmask == NULL) {
+ printk(KERN_ERR "Xenomai: NULL unmask handler for irq %u, chip %s (->enable=%p)\n",
+ irq, rthal_irq_descp(irq)->chip->name,
+ rthal_irq_descp(irq)->chip->enable);
+ return 0;
+ }
+
return rthal_irq_chip_enable(irq);
}
@@ -358,8 +370,20 @@
if (irq >= NR_IRQS)
return -EINVAL;
+ if (rthal_irq_descp(irq)->chip == NULL) {
+ printk(KERN_ERR "Xenomai: %s: no chip descriptor for irq %u\n", __FUNCTION__, irq);
+ return 0;
+ }
+
rthal_irq_desc_status(irq) |= IRQ_DISABLED;
+ if (rthal_irq_descp(irq)->chip->mask == NULL) {
+ printk(KERN_ERR "Xenomai: NULL mask handler for irq %u, chip %s (->disable=%p)\n",
+ irq, rthal_irq_descp(irq)->chip->name,
+ rthal_irq_descp(irq)->chip->disable);
+ return 0;
+ }
+
return rthal_irq_chip_disable(irq);
}
--
Philippe.
next prev parent reply other threads:[~2008-05-02 15:02 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-02 5:29 [Xenomai-help] MSI Interrupt Crash jeff koftinoff
2008-05-02 7:56 ` Philippe Gerum
2008-05-02 8:50 ` Jan Kiszka
2008-05-02 9:04 ` Philippe Gerum
2008-05-02 9:07 ` Jan Kiszka
2008-05-02 9:40 ` Philippe Gerum
2008-05-02 9:55 ` Jan Kiszka
2008-05-02 10:09 ` Philippe Gerum
2008-05-02 10:42 ` Jan Kiszka
2008-05-02 10:53 ` Philippe Gerum
2008-05-05 11:17 ` Jan Kiszka
2008-05-02 9:40 ` Philippe Gerum
2008-05-02 14:17 ` Thomas Schaefer
2008-05-02 15:02 ` Philippe Gerum [this message]
-- strict thread matches above, loose matches on Subject: below --
2008-05-02 16:26 Thomas Schaefer
2008-05-04 8:46 ` Philippe Gerum
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=481B2CF9.9000404@domain.hid \
--to=rpm@xenomai.org \
--cc=thomass@domain.hid \
--cc=xenomai@xenomai.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.