Commit e59d9afb authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] Fix yenta-socket oops

From: Russell King <rmk@arm.linux.org.uk>

Interrupts can sometimes occur before the socket thread is started.
parent 85cea662
...@@ -868,13 +868,19 @@ static int pccardd(void *__skt) ...@@ -868,13 +868,19 @@ static int pccardd(void *__skt)
complete_and_exit(&skt->thread_done, 0); complete_and_exit(&skt->thread_done, 0);
} }
/*
* Yenta (at least) probes interrupts before registering the socket and
* starting the handler thread.
*/
void pcmcia_parse_events(struct pcmcia_socket *s, u_int events) void pcmcia_parse_events(struct pcmcia_socket *s, u_int events)
{ {
spin_lock(&s->thread_lock); if (s->thread) {
s->thread_events |= events; spin_lock(&s->thread_lock);
spin_unlock(&s->thread_lock); s->thread_events |= events;
spin_unlock(&s->thread_lock);
wake_up(&s->thread_wait); wake_up(&s->thread_wait);
}
} /* pcmcia_parse_events */ } /* pcmcia_parse_events */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment