if (err < 0)
                return err;
 
-       if (irq > 0) {
-               err = st_press_allocate_ring(indio_dev);
-               if (err < 0)
-                       return err;
+       err = st_press_allocate_ring(indio_dev);
+       if (err < 0)
+               return err;
 
+       if (irq > 0) {
                err = st_sensors_allocate_trigger(indio_dev,
                                                  ST_PRESS_TRIGGER_OPS);
                if (err < 0)
        if (irq > 0)
                st_sensors_deallocate_trigger(indio_dev);
 st_press_probe_trigger_error:
-       if (irq > 0)
-               st_press_deallocate_ring(indio_dev);
+       st_press_deallocate_ring(indio_dev);
 
        return err;
 }
        struct st_sensor_data *pdata = iio_priv(indio_dev);
 
        iio_device_unregister(indio_dev);
-       if (pdata->get_irq_data_ready(indio_dev) > 0) {
+       if (pdata->get_irq_data_ready(indio_dev) > 0)
                st_sensors_deallocate_trigger(indio_dev);
-               st_press_deallocate_ring(indio_dev);
-       }
+
+       st_press_deallocate_ring(indio_dev);
 }
 EXPORT_SYMBOL(st_press_common_remove);