projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
9166d0f
)
Input: tsc2007 - fix locking in hrtimer handler
author
Thierry Reding
<
[email protected]
>
Mon, 11 May 2009 15:36:39 +0000
(08:36 -0700)
committer
Dmitry Torokhov
<
[email protected]
>
Mon, 11 May 2009 22:35:48 +0000
(15:35 -0700)
Now that hrtimers are always running in hard irq context we can't
unconditionally enable interrupts at the end of the timer function.
Signed-off-by: Thierry Reding <
[email protected]
>
Signed-off-by: Kwangwoo Lee <
[email protected]
>
Signed-off-by: Dmitry Torokhov <
[email protected]
>
drivers/input/touchscreen/tsc2007.c
patch
|
blob
|
history
diff --git
a/drivers/input/touchscreen/tsc2007.c
b/drivers/input/touchscreen/tsc2007.c
index 536668fbda227158beaeb0c7eec9478be72f4d56..948e167557f18fce7e73528283e5d56c953adbb6 100644
(file)
--- a/
drivers/input/touchscreen/tsc2007.c
+++ b/
drivers/input/touchscreen/tsc2007.c
@@
-200,8
+200,9
@@
static int tsc2007_read_values(struct tsc2007 *tsc)
static enum hrtimer_restart tsc2007_timer(struct hrtimer *handle)
{
struct tsc2007 *ts = container_of(handle, struct tsc2007, timer);
+ unsigned long flags;
- spin_lock_irq
(&ts->lock
);
+ spin_lock_irq
save(&ts->lock, flags
);
if (unlikely(!ts->get_pendown_state() && ts->pendown)) {
struct input_dev *input = ts->input;
@@
-222,7
+223,7
@@
static enum hrtimer_restart tsc2007_timer(struct hrtimer *handle)
tsc2007_send_event(ts);
}
- spin_unlock_irq
(&ts->lock
);
+ spin_unlock_irq
restore(&ts->lock, flags
);
return HRTIMER_NORESTART;
}