[PATCH v2] ARM: pl330: Fix a race condition
Jassi Brar
jassisinghbrar at gmail.com
Fri Dec 9 11:50:48 EST 2011
On Fri, Dec 9, 2011 at 8:22 PM, Javi Merino <javi.merino at arm.com> wrote:
>
> I think the best solution would be to revert
> ee3f615819404a9438b2dd01b7a39f276d2737f2 and go back to my original
> patch (in the beginning of this thread):
>
> http://article.gmane.org/gmane.linux.ports.arm.kernel/133110
>
> What do you think?
Well, we have to resort to that if we can't find something simpler.
What do you think about ...
diff --git a/arch/arm/common/pl330.c b/arch/arm/common/pl330.c
index f407a6b..3a51cdd 100644
--- a/arch/arm/common/pl330.c
+++ b/arch/arm/common/pl330.c
@@ -1546,7 +1546,7 @@ int pl330_chan_ctrl(void *ch_id, enum pl330_chan_op op)
/* Start the next */
case PL330_OP_START:
- if (!_thrd_active(thrd) && !_start(thrd))
+ if (_state(thrd) == PL330_STATE_STOPPED && !_start(thrd))
ret = -EIO;
break;
Thanks
-jassi
[Sorry I don't have any pl330 platform handy]
More information about the linux-arm-kernel
mailing list