lkml.org 
[lkml]   [2003]   [Jul]   [10]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateWed, 9 Jul 2003 21:30:10 -0700
FromAndrew Morton <>
SubjectRe: 2.5.74-mm3 yenta-socket oops back
Michael Frank <mflt1@micrologica.com.hk> wrote:
>
> 2.5.74-mm3 yenta-socket oopsed on the first boot at the same spot. 
> 
> I have successfully used both patches below with -mm1.
> 
> --- 1.50/drivers/pcmcia/cs.c    Mon Jun 30 22:22:30 2003
> +++ edited/cs.c Sat Jul  5 23:58:07 2003
> @@ -338,13 +338,13 @@
>         socket->erase_busy.next = socket->erase_busy.prev = &socket->erase_busy;
>         INIT_LIST_HEAD(&socket->cis_cache);
>         spin_lock_init(&socket->lock);
> -
> -       init_socket(socket);
> -
>         init_completion(&socket->thread_done);
>         init_waitqueue_head(&socket->thread_wait);
>         init_MUTEX(&socket->skt_sem);
>         spin_lock_init(&socket->thread_lock);
> +
> +       init_socket(socket);
> +
>         ret = kernel_thread(pccardd, socket, CLONE_KERNEL);
>         if (ret < 0)
>                 return ret;
> 

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/

\
 
 \ /
  Last update: 2005-03-22 13:46    [from the cache]
©2003-2008