--- a/vmnet/Makefile +++ b/vmnet/Makefile @@ -43,7 +43,11 @@ INCLUDE += -I$(SRCROOT)/shared endif +ifdef KVERSION +VM_UNAME = $(KVERSION) +else VM_UNAME = $(shell uname -r) +endif # Header directory for the running kernel ifdef LINUXINCLUDE --- a/vmnet/userif.c +++ b/vmnet/userif.c @@ -137,16 +137,21 @@ */ static INLINE int -VNetUserIfMapPtr(VA uAddr, // IN: pointer to user memory +VNetUserIfMapPtr(VA64 uAddr, // IN: pointer to user memory size_t size, // IN: size of data struct page **p, // OUT: locked page void **ptr) // OUT: kernel mapped pointer { - if (!access_ok(VERIFY_WRITE, (void *)uAddr, size) || - (((uAddr + size - 1) & ~(PAGE_SIZE - 1)) != - (uAddr & ~(PAGE_SIZE - 1)))) { + uint8 v; + + /* Check area does not straddle two pages. */ + if ((uAddr & (PAGE_SIZE - 1)) + size > PAGE_SIZE) { return -EINVAL; } + /* Check if it is user's area. UserifLockPage() checks writability. */ + if (copy_from_user(&v, (void *)(unsigned long)uAddr, sizeof v) != 0) { + return -EFAULT; + } *p = UserifLockPage(uAddr); if (*p == NULL) { @@ -158,7 +163,7 @@ } static INLINE int -VNetUserIfMapUint32Ptr(VA uAddr, // IN: pointer to user memory +VNetUserIfMapUint32Ptr(VA64 uAddr, // IN: pointer to user memory struct page **p, // OUT: locked page uint32 **ptr) // OUT: kernel mapped pointer { @@ -201,7 +206,7 @@ return -EBUSY; } - if ((retval = VNetUserIfMapUint32Ptr((VA)vn->pollPtr, &pollPage, + if ((retval = VNetUserIfMapUint32Ptr(vn->pollPtr, &pollPage, &pollPtr)) < 0) { return retval; } @@ -213,7 +218,7 @@ goto error_free; } - if ((retval = VNetUserIfMapUint32Ptr((VA)vn->recvClusterPtr, + if ((retval = VNetUserIfMapUint32Ptr(vn->recvClusterPtr, &recvClusterPage, &recvClusterCount)) < 0) { goto error_free; From 8ba37a5023f939ba8d2e0d91b916ff442b1c18dd Mon Sep 17 00:00:00 2001 From: Michal Kubecek Date: Mon, 31 Dec 2018 00:05:42 +0100 Subject: [PATCH] modules: replace SUBDIRS with M Since commit 0126be38d988 ("kbuild: announce removal of SUBDIRS if used") in v5.0-rc1, using SUBDIRS when building out of tree modules produces a deprecation warning. As M used to work since pretty much ever, use it unconditionally. --- vmmon-only/Makefile | 2 +- vmnet-only/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vmnet-only/Makefile b/vmnet-only/Makefile index caab6b9..c2fc51f 100644 --- a/vmnet-only/Makefile +++ b/vmnet-only/Makefile @@ -111,7 +111,7 @@ prebuild:: ; postbuild:: ; $(DRIVER_KO): prebuild - $(MAKE) -C $(BUILD_DIR) SUBDIRS=$$PWD SRCROOT=$$PWD/$(SRCROOT) \ + $(MAKE) -C $(BUILD_DIR) M=$$PWD SRCROOT=$$PWD/$(SRCROOT) \ MODULEBUILDDIR=$(MODULEBUILDDIR) modules $(MAKE) -C $$PWD SRCROOT=$$PWD/$(SRCROOT) \ MODULEBUILDDIR=$(MODULEBUILDDIR) postbuild