diff options
author | Varun Wadekar <vwadekar@nvidia.com> | 2010-11-23 20:03:02 +0530 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:36:48 -0800 |
commit | 4952f856bbbaf0c9d28a4074e5f23a2757fec36a (patch) | |
tree | 519eeeb7057b00c9cae7219d5b9018b7e2952275 /drivers | |
parent | 825a9e1c79a36d708ef6a0dd70c0fa8855218d0b (diff) |
tegra: video: host: fix race condition in hostintr wait list
Change-Id: I5e58f5fe8935741441e2b30f585bb997b6317d3d
Author: Alex Frid <afrid@nvidia.com>
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/tegra/host/nvhost_intr.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/video/tegra/host/nvhost_intr.c b/drivers/video/tegra/host/nvhost_intr.c index 848d8b1e84e0..007aaed9909f 100644 --- a/drivers/video/tegra/host/nvhost_intr.c +++ b/drivers/video/tegra/host/nvhost_intr.c @@ -178,8 +178,7 @@ static void run_handlers(struct list_head completed[NVHOST_INTR_ACTION_COUNT]) list_for_each_entry_safe(waiter, next, head, list) { list_del(&waiter->list); handler(waiter); - atomic_set(&waiter->state, WLS_HANDLED); - smp_wmb(); + WARN_ON(atomic_xchg(&waiter->state, WLS_HANDLED) != WLS_REMOVED); kref_put(&waiter->refcount, waiter_release); } } |