mshv_vtl: initialize poll file mutex before device registration

mshv_vtl_init() registers /dev/mshv before initializing the poll file
mutex. A concurrent MSHV_SET_POLL_FILE ioctl can therefore attempt to lock
an uninitialized mutex while module initialization is still in progress.

Initialize the file-scope mutex statically so it is ready before the misc
device becomes visible.

Fixes: 7bfe3b8ea6 ("Drivers: hv: Introduce mshv_vtl driver")
Signed-off-by: Jiale Yao <yaojiale02@163.com>
Reviewed-by: Naman Jain <namjain@linux.microsoft.com>
Signed-off-by: Wei Liu <wei.liu@kernel.org>
This commit is contained in:
Jiale Yao 2026-10-18 11:46:16 +08:00 committed by Wei Liu
parent daa782262e
commit 60de22022f

View File

@ -95,7 +95,7 @@ union hv_synic_overlay_page_msr {
} __packed;
};
static struct mutex mshv_vtl_poll_file_lock;
static DEFINE_MUTEX(mshv_vtl_poll_file_lock);
static union hv_register_vsm_page_offsets mshv_vsm_page_offsets;
static union hv_register_vsm_capabilities mshv_vsm_capabilities;
@ -1370,8 +1370,6 @@ static int __init mshv_vtl_init(void)
goto free_low;
}
mutex_init(&mshv_vtl_poll_file_lock);
device_initialize(mem_dev);
dev_set_name(mem_dev, "mshv vtl mem dev");
ret = device_add(mem_dev);