From: Wolfgang Grandegger <wg@domain.hid>
To: mani bhatti <imranbashirbhatti@domain.hid>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-help] interrupts test
Date: Thu, 15 Feb 2007 08:46:08 +0100 [thread overview]
Message-ID: <45D40FC0.1000703@domain.hid> (raw)
In-Reply-To: <775081.52919.qm@domain.hid>
Hello,
you program does not use Xenomai services and is therefore off-topic
here, nevertheless...
mani bhatti wrote:
> Hi
> I have attached a kernel module parint.c.When i insert parint.ko into
> kernel i get the following message from kernel .
>
> Request_irq returns 0
> Interrupt generated. You should see the handler-message
> Badness in enable_irq at kernel/irq/manage.c:126
> [<c012da81>] enable_irq+0x68/0xdf
> [<c80be033>] init_module+0x22/0x52 [parint]
> [<c80be000>] handler+0x0/0x11 [parint]
> [<c012c78a>] sys_init_module+0xb5/0x221
> [<c0102898>] syscall_call+0x7/0xb
>
>
>
> Please if some one can point out the mistake i would be very helpful.
> Thanks.
>
> ------------------------------------------------------------------------
> Get your own web address.
> <http://us.rd.yahoo.com/evt=49678/*http://smallbusiness.yahoo.com/domains/?p=BESTDEAL>
> Have a HUGE year through Yahoo! Small Business. <
> http://us.rd.yahoo.com/evt=49678/*http://smallbusiness.yahoo.com/domains/?p=BESTDEAL>
>
>
>
> ------------------------------------------------------------------------
>
> #include <linux/module.h>
> #include <linux/interrupt.h>
> #include <asm/io.h>
>
> #define BASEPORT 0x378
>
> static int handler(void)
> {
> // do stuff
> printk(">>> PARALLEL PORT INT HANDLED\n");
> return IRQ_HANDLED;
> }
>
> int xinit_module(void)
> {
> int ret;
> ret = request_irq(7, handler, SA_INTERRUPT, "parallelport", NULL);
> enable_irq(7);
I think that's the reason for the oops. Remove the unbalanced
enable_irq() and disable_irq() from you code example. request_irq() and
disable_irq() already enabled/disable the interrupts.
> printk("\nRequest_irq returns %d \n",ret);
>
> //set port to interrupt mode; pins are output
> outb_p(0x10, BASEPORT + 2);
>
> // printk("Generating interrupt now on all output pins (intr/ACK = pin 10)\n");
>
> //generate interrupt
> outb_p(0, BASEPORT);
> outb_p(255, BASEPORT);
> outb_p(0, BASEPORT);
> // printk("Interrupt generated. You should see the handler-message\n");
> return 0;
> }
>
> void xcleanup_module(void)
> {
> disable_irq(7);
> free_irq(7, NULL);
> }
>
> module_init(xinit_module);
> module_exit(xcleanup_module);
> MODULE_LICENSE("GPL");
In gerneral, you should use RTDM services in a Xenomai driver module.
Wolfgang.
prev parent reply other threads:[~2007-02-15 7:46 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-12 15:55 [Xenomai-help] interrupts test mani bhatti
2007-02-12 16:19 ` Jan Kiszka
2007-02-15 7:46 ` Wolfgang Grandegger [this message]
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=45D40FC0.1000703@domain.hid \
--to=wg@domain.hid \
--cc=imranbashirbhatti@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.