Commit 85cea662 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] yenta-socket initialisation fix

From: Daniel Ritz <daniel.ritz@gmx.ch>

init_socket() enables interrupts, and the interrupt handler does a wakeup.
Let's initialise that waitqueue head before turning on the interrupts.
parent 21f8b968
...@@ -338,13 +338,13 @@ static int pcmcia_add_socket(struct class_device *class_dev) ...@@ -338,13 +338,13 @@ static int pcmcia_add_socket(struct class_device *class_dev)
socket->erase_busy.next = socket->erase_busy.prev = &socket->erase_busy; socket->erase_busy.next = socket->erase_busy.prev = &socket->erase_busy;
INIT_LIST_HEAD(&socket->cis_cache); INIT_LIST_HEAD(&socket->cis_cache);
spin_lock_init(&socket->lock); spin_lock_init(&socket->lock);
init_socket(socket);
init_completion(&socket->thread_done); init_completion(&socket->thread_done);
init_waitqueue_head(&socket->thread_wait); init_waitqueue_head(&socket->thread_wait);
init_MUTEX(&socket->skt_sem); init_MUTEX(&socket->skt_sem);
spin_lock_init(&socket->thread_lock); spin_lock_init(&socket->thread_lock);
init_socket(socket);
ret = kernel_thread(pccardd, socket, CLONE_KERNEL); ret = kernel_thread(pccardd, socket, CLONE_KERNEL);
if (ret < 0) if (ret < 0)
return ret; return ret;
......
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