This one is clearly correct.
> and my patch (may apply with some offset, which I'm about to check
> into bk anyway):
> 
> --- linux/drivers/pcmcia/cs.c.old       Fri Jul  4 10:21:50 2003
> +++ linux/drivers/pcmcia/cs.c   Sun Jul  6 23:04:10 2003
> @@ -870,11 +870,13 @@
>  
>  void pcmcia_parse_events(struct pcmcia_socket *s, u_int events)
>  {
> -       spin_lock(&s->thread_lock);
> -       s->thread_events |= events;
> -       spin_unlock(&s->thread_lock);
> +       if (s->thread) {
> +               spin_lock(&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 */
This one may not be.  How did we get here with no thread to handle the
event?  Do you have an oops trace on this one?
Or just stick a
	if (!s->thread)
		dump_stack();
in there as well.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/