From: Andrew Morton <akpm@osdl.org>
To: "Dale E Martin" <dmartin@cliftonlabs.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: repeatable, hard lockup on boot in linux-2.6.0-test4 (more details)
Date: Tue, 2 Sep 2003 13:03:23 -0700 [thread overview]
Message-ID: <20030902130323.41d2fdca.akpm@osdl.org> (raw)
In-Reply-To: <20030902123050.GA854@cliftonlabs.com>
"Dale E Martin" <dmartin@cliftonlabs.com> wrote:
>
> And then I got one more at 590, inside i8042_check_mux:
> DB();
> if (request_irq(values->irq, i8042_interrupt, SA_SHIRQ,
> "i8042", i8042_request_irq_cookie))
> return -1;
> DB();
>
> This last one did not show up, nor did any inside the conditional loops at
> line 878 or 883, nor at line 888. So perhaps it was in request_irq that it
> locked up?
Looks like it. Please add a DB() to the start of i8042_interrupt(),
see if we locked up in an interrupt storm. Also sprinkle some in
request_irq() I guess. You know the deal ;)
There's an ugly in the irq code there: if i8042_check_mux() or
i8042_check_mux() are called while the device is open we end up freeing the
wrong IRQ. It is unlikely to help though.
--- 25/drivers/input/serio/i8042.c~i8042-free_irq-fix Tue Sep 2 12:55:23 2003
+++ 25-akpm/drivers/input/serio/i8042.c Tue Sep 2 12:57:19 2003
@@ -581,6 +581,7 @@ void i8042_controller_cleanup(void)
static int __init i8042_check_mux(struct i8042_values *values)
{
unsigned char param;
+ static int i8042_check_mux_cookie;
int i;
/*
@@ -588,9 +589,9 @@ static int __init i8042_check_mux(struct
*/
if (request_irq(values->irq, i8042_interrupt, SA_SHIRQ,
- "i8042", i8042_request_irq_cookie))
+ "i8042", &i8042_check_mux_cookie))
return -1;
- free_irq(values->irq, i8042_request_irq_cookie);
+ free_irq(values->irq, &i8042_check_mux_cookie);
/*
* Get rid of bytes in the queue.
@@ -653,6 +654,7 @@ static int __init i8042_check_mux(struct
static int __init i8042_check_aux(struct i8042_values *values)
{
unsigned char param;
+ static int i8042_check_aux_cookie;
/*
* Check if AUX irq is available. If it isn't, then there is no point
@@ -660,9 +662,9 @@ static int __init i8042_check_aux(struct
*/
if (request_irq(values->irq, i8042_interrupt, SA_SHIRQ,
- "i8042", i8042_request_irq_cookie))
+ "i8042", &i8042_check_aux_cookie))
return -1;
- free_irq(values->irq, i8042_request_irq_cookie);
+ free_irq(values->irq, &i8042_check_aux_cookie);
/*
* Get rid of bytes in the queue.
_
next prev parent reply other threads:[~2003-09-02 20:20 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-01 15:33 repeatable, hard lockup on boot in linux-2.6.0-test4 Dale E Martin
2003-09-01 18:23 ` repeatable, hard lockup on boot in linux-2.6.0-test4 (more details) Dale E Martin
2003-09-01 19:04 ` Andrew Morton
2003-09-01 19:57 ` Dale E Martin
2003-09-01 22:28 ` Andrew Morton
2003-09-02 0:31 ` Dale E Martin
2003-09-02 1:23 ` Andrew Morton
2003-09-02 12:30 ` Dale E Martin
2003-09-02 20:03 ` Andrew Morton [this message]
2003-09-02 23:45 ` Chris Wright
2003-09-03 12:41 ` Dale E Martin
2003-09-02 11:04 ` repeatable, hard lockup on boot in linux-2.6.0-test4 Maciej Freudenheim
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=20030902130323.41d2fdca.akpm@osdl.org \
--to=akpm@osdl.org \
--cc=dmartin@cliftonlabs.com \
--cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox