platform/x86: lenovo-yogabook: Fix work race on remove()
authorHans de Goede <hdegoede@redhat.com>
Sun, 30 Apr 2023 16:57:50 +0000 (18:57 +0200)
committerHans de Goede <hdegoede@redhat.com>
Tue, 9 May 2023 10:29:50 +0000 (12:29 +0200)
commit9148cd2eb4450a8e9c49c8a14201fb82f651128f
tree289f89055ea5873d809016407b4f6279fa2dbc74
parent6f37c034313701a0d5a4255ad4e7c38db2d50844
platform/x86: lenovo-yogabook: Fix work race on remove()

When yogabook_wmi_remove() runs yogabook_wmi_work might still be running
and using the devices which yogabook_wmi_remove() puts.

To avoid this move to explicitly cancelling the work rather then using
devm_work_autocancel().

This requires also making the yogabook_backside_hall_irq handler non
devm managed, so that it cannot re-queue the work while
yogabook_wmi_remove() runs.

Fixes: c0549b72d99d ("platform/x86: lenovo-yogabook-wmi: Add driver for Lenovo Yoga Book")
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20230430165807.472798-3-hdegoede@redhat.com
drivers/platform/x86/lenovo-yogabook-wmi.c