{
        struct its_device *its_dev = irq_data_get_irq_chip_data(d);
        u32 event = its_get_event_id(d);
-       int ret = 0;
 
        if (!info->map)
                return -EINVAL;
 
-       raw_spin_lock(&its_dev->event_map.vlpi_lock);
-
        if (!its_dev->event_map.vm) {
                struct its_vlpi_map *maps;
 
                maps = kcalloc(its_dev->event_map.nr_lpis, sizeof(*maps),
                               GFP_ATOMIC);
-               if (!maps) {
-                       ret = -ENOMEM;
-                       goto out;
-               }
+               if (!maps)
+                       return -ENOMEM;
 
                its_dev->event_map.vm = info->map->vm;
                its_dev->event_map.vlpi_maps = maps;
        } else if (its_dev->event_map.vm != info->map->vm) {
-               ret = -EINVAL;
-               goto out;
+               return -EINVAL;
        }
 
        /* Get our private copy of the mapping information */
                its_dev->event_map.nr_vlpis++;
        }
 
-out:
-       raw_spin_unlock(&its_dev->event_map.vlpi_lock);
-       return ret;
+       return 0;
 }
 
 static int its_vlpi_get(struct irq_data *d, struct its_cmd_info *info)
 {
        struct its_device *its_dev = irq_data_get_irq_chip_data(d);
        struct its_vlpi_map *map;
-       int ret = 0;
-
-       raw_spin_lock(&its_dev->event_map.vlpi_lock);
 
        map = get_vlpi_map(d);
 
-       if (!its_dev->event_map.vm || !map) {
-               ret = -EINVAL;
-               goto out;
-       }
+       if (!its_dev->event_map.vm || !map)
+               return -EINVAL;
 
        /* Copy our mapping information to the incoming request */
        *info->map = *map;
 
-out:
-       raw_spin_unlock(&its_dev->event_map.vlpi_lock);
-       return ret;
+       return 0;
 }
 
 static int its_vlpi_unmap(struct irq_data *d)
 {
        struct its_device *its_dev = irq_data_get_irq_chip_data(d);
        u32 event = its_get_event_id(d);
-       int ret = 0;
-
-       raw_spin_lock(&its_dev->event_map.vlpi_lock);
 
-       if (!its_dev->event_map.vm || !irqd_is_forwarded_to_vcpu(d)) {
-               ret = -EINVAL;
-               goto out;
-       }
+       if (!its_dev->event_map.vm || !irqd_is_forwarded_to_vcpu(d))
+               return -EINVAL;
 
        /* Drop the virtual mapping */
        its_send_discard(its_dev, event);
                kfree(its_dev->event_map.vlpi_maps);
        }
 
-out:
-       raw_spin_unlock(&its_dev->event_map.vlpi_lock);
-       return ret;
+       return 0;
 }
 
 static int its_vlpi_prop_update(struct irq_data *d, struct its_cmd_info *info)
        if (!is_v4(its_dev->its))
                return -EINVAL;
 
+       guard(raw_spinlock_irq)(&its_dev->event_map.vlpi_lock);
+
        /* Unmap request? */
        if (!info)
                return its_vlpi_unmap(d);