static void micro_key_start(struct ipaq_micro_keys *keys)
 {
-       spin_lock(&keys->micro->lock);
+       guard(spinlock)(&keys->micro->lock);
+
        keys->micro->key = micro_key_receive;
        keys->micro->key_data = keys;
-       spin_unlock(&keys->micro->lock);
 }
 
 static void micro_key_stop(struct ipaq_micro_keys *keys)
 {
-       spin_lock(&keys->micro->lock);
+       guard(spinlock)(&keys->micro->lock);
+
        keys->micro->key = NULL;
        keys->micro->key_data = NULL;
-       spin_unlock(&keys->micro->lock);
 }
 
 static int micro_key_open(struct input_dev *input)
        struct ipaq_micro_keys *keys = dev_get_drvdata(dev);
        struct input_dev *input = keys->input;
 
-       mutex_lock(&input->mutex);
+       guard(mutex)(&input->mutex);
 
        if (input_device_enabled(input))
                micro_key_start(keys);
 
-       mutex_unlock(&input->mutex);
-
        return 0;
 }