Re: [PATCH v2 memstick: support for legacy sony memsticks

From: Maxim Levitsky
Date: Tue Sep 25 2012 - 15:34:36 EST


On Tue, 2012-09-25 at 11:02 -0700, Tejun Heo wrote:
> Hello,
>
> > * Swithced to using a workqueue.
> > Unfortunelly, I still see that workqueue items are executed in parallel
> > I suspect that this happens if one work item sleeps. In this case I
> > don't want other work items to run too. I fixed this with a mutex, and anyway
> > it nice to have it to guaranteee this.
>
> You can use alloc_ordered_workqueue("namefmt", WQ_MEM_RECLAIM). No
> mutex needed for inter-work exclusion.
But this just adds the WQ_UNBOUND. Dunno, without lock I had several
crashes, that for high level of confidence caused by by parallel
execution of work items. Once I added this mutex, I couldnt reproduce
these.

I had the __blk_end_request fail with NULL msb->req. I can't see how
that can happen if work queue isn't executed in parallel.
(and then the I didn't even had by mistake the code that sets it to NULL
in msb_stop, so I really fail to see how that could happen due internal
bug in my code.
>
> Thanks.
>

--
Best regards,
Maxim Levitsky


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/