The hypercall page only needs to be executable but currently it is setup to be writable as well. Fix the issue. Backport of upstream commit 372b1e91343e to earlier kernels. Tested on 4.9. Signed-off-by: Stephen Hemminger <sthemmin@xxxxxxxxxxxxx> --- drivers/hv/hv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c index 60dbd6cb4640..ce2aa14604e2 100644 --- a/drivers/hv/hv.c +++ b/drivers/hv/hv.c @@ -220,7 +220,7 @@ int hv_init(void) /* See if the hypercall page is already set */ rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64); - virtaddr = __vmalloc(PAGE_SIZE, GFP_KERNEL, PAGE_KERNEL_EXEC); + virtaddr = __vmalloc(PAGE_SIZE, GFP_KERNEL, PAGE_KERNEL_RX); if (!virtaddr) goto cleanup; -- 2.11.0