Input: matrix_keypad - fix race when disabling interrupts
[pandora-kernel.git] / drivers / input / keyboard / matrix_keypad.c
index e2ae657..4389ed3 100644 (file)
@@ -214,8 +214,10 @@ static void matrix_keypad_stop(struct input_dev *dev)
 {
        struct matrix_keypad *keypad = input_get_drvdata(dev);
 
+       spin_lock_irq(&keypad->lock);
        keypad->stopped = true;
-       mb();
+       spin_unlock_irq(&keypad->lock);
+
        flush_work(&keypad->work.work);
        /*
         * matrix_keypad_scan() will leave IRQs enabled;