platform/x86: ISST: Reset default callback on unregister
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Mon, 12 Jun 2023 22:40:32 +0000 (15:40 -0700)
committerHans de Goede <hdegoede@redhat.com>
Tue, 13 Jun 2023 10:34:50 +0000 (12:34 +0200)
When multiple clients are registered and some of those modules are
removed, the default IOCTL callback for those clients are still not
NULL. Calling them will result in crash.

Set the default IOCTL callback pointer to NULL on unregister.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Link: https://lore.kernel.org/r/20230612224033.2382527-2-srinivas.pandruvada@linux.intel.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/intel/speed_select_if/isst_if_common.c

index e0572a29212e850c28313bcca2822ca0097ba3c1..352bf5118d179cda6fde4e135ca0d243056dbccb 100644 (file)
@@ -831,6 +831,7 @@ void isst_if_cdev_unregister(int device_type)
 {
        isst_misc_unreg();
        mutex_lock(&punit_misc_dev_open_lock);
+       punit_callbacks[device_type].def_ioctl = NULL;
        punit_callbacks[device_type].registered = 0;
        if (device_type == ISST_IF_DEV_MBOX)
                isst_delete_hash();