Use iio->trig instead of attrb->trig as parameter of iio_trigger_unregister and iio_trigger_free. This allows one HID sensor driver to create multiple iio devices. In this case common attributes are shared and there can be one instance for the structure containing common attributes for all iio devices. Signed-off-by: Ye Xiang <xiang.ye@xxxxxxxxx> --- drivers/iio/common/hid-sensors/hid-sensor-trigger.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c index 30340abcbc8d..bb5e7c8ff15b 100644 --- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c +++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c @@ -236,8 +236,8 @@ void hid_sensor_remove_trigger(struct iio_dev *indio_dev, pm_runtime_put_noidle(&attrb->pdev->dev); cancel_work_sync(&attrb->work); - iio_trigger_unregister(attrb->trigger); - iio_trigger_free(attrb->trigger); + iio_trigger_unregister(indio_dev->trig); + iio_trigger_free(indio_dev->trig); iio_triggered_buffer_cleanup(indio_dev); } EXPORT_SYMBOL(hid_sensor_remove_trigger); -- 2.17.1