diff options
author | Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 2011-04-15 14:08:19 -0400 |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2011-04-27 19:16:12 -0400 |
commit | 26fc8775b51484d8c0a671198639c6d5ae60533e (patch) | |
tree | df906e9e78fada3739e576ba0546b726de58f585 /include/linux/mmc | |
parent | f69475142136c8ad9b9c717aea2ff907aed9f863 (diff) |
mmc: fix a race between card-detect rescan and clock-gate work instances
Currently there is a race in the MMC core between a card-detect
rescan work and the clock-gating work, scheduled from a command
completion. Fix it by removing the dedicated clock-gating mutex
and using the MMC standard locking mechanism instead.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Cc: Simon Horman <horms@verge.net.au>
Cc: Magnus Damm <damm@opensource.se>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Cc: <stable@kernel.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'include/linux/mmc')
-rw-r--r-- | include/linux/mmc/host.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index bcb793ec7374..eb792cb6d745 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h | |||
@@ -183,7 +183,6 @@ struct mmc_host { | |||
183 | struct work_struct clk_gate_work; /* delayed clock gate */ | 183 | struct work_struct clk_gate_work; /* delayed clock gate */ |
184 | unsigned int clk_old; /* old clock value cache */ | 184 | unsigned int clk_old; /* old clock value cache */ |
185 | spinlock_t clk_lock; /* lock for clk fields */ | 185 | spinlock_t clk_lock; /* lock for clk fields */ |
186 | struct mutex clk_gate_mutex; /* mutex for clock gating */ | ||
187 | #endif | 186 | #endif |
188 | 187 | ||
189 | /* host specific block data */ | 188 | /* host specific block data */ |