Skip to content

Commit

Permalink
pcmcia: cs: kill thread_wait
Browse files Browse the repository at this point in the history
There is not reason to have a waitqueue if it's always the same
thread that is waiting for it.  Just use wake_up_process instead.

Signed-off-by: Christoph Hellwig <hch@lst.de>

Small modification: Also remove unused variable.

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
  • Loading branch information
Christoph Hellwig authored and Dominik Brodowski committed Jun 24, 2008
1 parent 2df6970 commit 0b40209
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 10 deletions.
12 changes: 3 additions & 9 deletions drivers/pcmcia/cs.c
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,6 @@ int pcmcia_register_socket(struct pcmcia_socket *socket)

init_completion(&socket->socket_released);
init_completion(&socket->thread_done);
init_waitqueue_head(&socket->thread_wait);
mutex_init(&socket->skt_mutex);
spin_lock_init(&socket->thread_lock);

Expand Down Expand Up @@ -278,10 +277,9 @@ void pcmcia_unregister_socket(struct pcmcia_socket *socket)

cs_dbg(socket, 0, "pcmcia_unregister_socket(0x%p)\n", socket->ops);

if (socket->thread) {
wake_up(&socket->thread_wait);
if (socket->thread)
kthread_stop(socket->thread);
}

release_cis_mem(socket);

/* remove from our own list */
Expand Down Expand Up @@ -635,7 +633,6 @@ static void socket_detect_change(struct pcmcia_socket *skt)
static int pccardd(void *__skt)
{
struct pcmcia_socket *skt = __skt;
DECLARE_WAITQUEUE(wait, current);
int ret;

skt->thread = current;
Expand All @@ -656,7 +653,6 @@ static int pccardd(void *__skt)
if (ret)
dev_warn(&skt->dev, "err %d adding socket attributes\n", ret);

add_wait_queue(&skt->thread_wait, &wait);
complete(&skt->thread_done);

set_freezable();
Expand Down Expand Up @@ -694,8 +690,6 @@ static int pccardd(void *__skt)
/* make sure we are running before we exit */
set_current_state(TASK_RUNNING);

remove_wait_queue(&skt->thread_wait, &wait);

/* remove from the device core */
pccard_sysfs_remove_socket(&skt->dev);
device_unregister(&skt->dev);
Expand All @@ -716,7 +710,7 @@ void pcmcia_parse_events(struct pcmcia_socket *s, u_int events)
s->thread_events |= events;
spin_unlock_irqrestore(&s->thread_lock, flags);

wake_up(&s->thread_wait);
wake_up_process(s->thread);
}
} /* pcmcia_parse_events */
EXPORT_SYMBOL(pcmcia_parse_events);
Expand Down
1 change: 0 additions & 1 deletion include/pcmcia/ss.h
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,6 @@ struct pcmcia_socket {

struct task_struct *thread;
struct completion thread_done;
wait_queue_head_t thread_wait;
spinlock_t thread_lock; /* protects thread_events */
unsigned int thread_events;

Expand Down

0 comments on commit 0b40209

Please sign in to comment.