diff --git a/ui/input.c b/ui/input.c
index 7048810..f2d1e7a 100644
--- a/ui/input.c
+++ b/ui/input.c
@@ -595,28 +595,26 @@
 bool qemu_mouse_set(int index, Error **errp)
 {
     QemuInputHandlerState *s;
-    int found = 0;
 
     QTAILQ_FOREACH(s, &handlers, node) {
-        if (s->id != index) {
-            continue;
+        if (s->id == index) {
+            break;
         }
-        if (!(s->handler->mask & (INPUT_EVENT_MASK_REL |
-                                  INPUT_EVENT_MASK_ABS))) {
-            error_setg(errp, "Input device '%s' is not a mouse",
-                       s->handler->name);
-            return false;
-        }
-        found = 1;
-        qemu_input_handler_activate(s);
-        break;
     }
 
-    if (!found) {
+    if (!s) {
         error_setg(errp, "Mouse at index '%d' not found", index);
         return false;
     }
 
+    if (!(s->handler->mask & (INPUT_EVENT_MASK_REL |
+                              INPUT_EVENT_MASK_ABS))) {
+        error_setg(errp, "Input device '%s' is not a mouse",
+                   s->handler->name);
+        return false;
+    }
+
+    qemu_input_handler_activate(s);
     qemu_input_check_mode_change();
     return true;
 }
