diff options
author | Christoph Lameter <cl@linux.com> | 2010-12-06 11:16:24 -0600 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2010-12-17 15:07:18 +0100 |
commit | 4a6f4fe8377720e5a279fdbb769946c242e936d3 (patch) | |
tree | 9684b9d39fe8b3aa620465ca0a51e4aacbfdd633 /drivers/staging/speakup | |
parent | 12938a9220a38d555e38dc9b40021e664b99a1f1 (diff) | |
download | linux-3.10-4a6f4fe8377720e5a279fdbb769946c242e936d3.tar.gz linux-3.10-4a6f4fe8377720e5a279fdbb769946c242e936d3.tar.bz2 linux-3.10-4a6f4fe8377720e5a279fdbb769946c242e936d3.zip |
drivers: Replace __get_cpu_var with __this_cpu_read if not used for an address.
__get_cpu_var() can be replaced with this_cpu_read and will then use a single
read instruction with implied address calculation to access the correct per cpu
instance.
However, the address of a per cpu variable passed to __this_cpu_read() cannot be
determed (since its an implied address conversion through segment prefixes).
Therefore apply this only to uses of __get_cpu_var where the addres of the
variable is not used.
V3->V4:
- Move one instance of this_cpu_inc_return to a later patch
so that this one can go in without percpu infrastructrure
changes.
Sedat: fixed compile failure caused by an extra ')'.
Cc: Neil Horman <nhorman@tuxdriver.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Sedat Dilek <sedat.dilek@gmail.com>
Acked-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'drivers/staging/speakup')
-rw-r--r-- | drivers/staging/speakup/fakekey.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/staging/speakup/fakekey.c b/drivers/staging/speakup/fakekey.c index 65b231178f0..bf4ec68ac2e 100644 --- a/drivers/staging/speakup/fakekey.c +++ b/drivers/staging/speakup/fakekey.c @@ -78,10 +78,10 @@ void speakup_fake_down_arrow(void) /* don't change CPU */ preempt_disable(); - __get_cpu_var(reporting_keystroke) = true; + __this_cpu_write(reporting_keystroke, true); input_report_key(virt_keyboard, KEY_DOWN, PRESSED); input_report_key(virt_keyboard, KEY_DOWN, RELEASED); - __get_cpu_var(reporting_keystroke) = false; + __this_cpu_write(reporting_keystroke, false); /* reenable preemption */ preempt_enable(); |