OSDN Git Service

arm64: vdso: don't free unallocated pages
authorMark Rutland <mark.rutland@arm.com>
Tue, 14 Apr 2020 10:42:48 +0000 (11:42 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Wed, 15 Apr 2020 10:13:16 +0000 (11:13 +0100)
commit9cc3d0c6915aee5140f8335d41bbc3ff1b79aa4e
tree3ca84d6bbd95b959b81c126a847e6f52e249aa68
parent8f3d9f354286745c751374f5f1fcafee6b3f3136
arm64: vdso: don't free unallocated pages

The aarch32_vdso_pages[] array never has entries allocated in the C_VVAR
or C_VDSO slots, and as the array is zero initialized these contain
NULL.

However in __aarch32_alloc_vdso_pages() when
aarch32_alloc_kuser_vdso_page() fails we attempt to free the page whose
struct page is at NULL, which is obviously nonsensical.

This patch removes the erroneous page freeing.

Fixes: 7c1deeeb0130 ("arm64: compat: VDSO setup for compat layer")
Cc: <stable@vger.kernel.org> # 5.3.x-
Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>
Acked-by: Will Deacon <will@kernel.org>
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/kernel/vdso.c