Patch "MIPS: VDSO: avoid duplicate CAC_BASE definition" has been added to the 4.10-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
MIPS: VDSO: avoid duplicate CAC_BASE definition
to the 4.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mips-vdso-avoid-duplicate-cac_base-definition.patch
and it can be found in the queue-4.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
1742ac265046f34223e06d5d283496f0291be259Mon Sep 17 00:00:00 2001
From: Arnd Bergmann <[email protected]>
Date: Tue, 17 Jan 2017 16:18:36 +0100
Subject: MIPS: VDSO: avoid duplicate CAC_BASE definition
From: Arnd Bergmann <[email protected]>
commit 1742ac265046f34223e06d5d283496f0291be259 upstream.
vdso.h includes <spaces.h> implicitly after defining CONFIG_32BITS. This defeats the override in mach-ip27/spaces.h, leading to a build error that shows up in kernelci.org:
In file included from arch/mips/include/asm/mach-ip27/spaces.h:29:0,
from arch/mips/include/asm/page.h:12,
from arch/mips/vdso/vdso.h:26,
from arch/mips/vdso/gettimeofday.c:11:arch/mips/include/asm/mach-generic/spaces.h:28:0: error: "CAC_BASE" redefined [-Werror]
#define CAC_BASE _AC(0x80000000, UL)
An earlier patch tried to make the second definition conditional, but that patch had the #ifdef in the wrong place, and would lead to another warning:
arch/mips/include/asm/io.h: In function 'phys_to_virt':arch/mips/include/asm/io.h:138:9: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
For all I can tell, there is no other reason than vdso32 to ever include this file with CONFIG_32BITS set, and the vdso itself should never refer to the base addresses as it is running in user space, so adding an #ifdef here is safe.
Patchwork: https://patchwork.linux-mips.org/patch/15039/
--- arch/mips/include/asm/mach-ip27/spaces.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
arch/mips/include/asm/mach-ip27/spaces.h +4 -2
@@ -12,14 +12,16 @@/* * IP27 uses the R10000's uncached attribute feature. Attribute 3 selects -* uncached memory addressing. +* uncached memory addressing. Hide the definitions on 32-bit compilation +* of the compat-vdso code. */ - +#ifdef CONFIG_64BIT #define HSPEC_BASE 0x9000000000000000#define IO_BASE 0x9200000000000000#define MSPEC_BASE 0x9400000000000000#define UNCAC_BASE 0x9600000000000000#define CAC_BASE 0xa800000000000000 +#endif #define TO_MSPEC (x) (MSPEC_BASE | ((x) & TO_PHYS_MASK))#define TO_HSPEC (x) (HSPEC_BASE | ((x) & TO_PHYS_MASK))
Patches currently in stable-queue which might be from [email protected] are
queue-4.10/mips-ip27-disable-qlge-driver-in-defconfig.patch queue-4.10/mips-update-ip27_defconfig-for-scsi_dh-change.patch queue-4.10/mtd-pmcmsp-use-kstrndup-instead-of-kmalloc-strncpy.patch queue-4.10/mips-vdso-avoid-duplicate-cac_base-definition.patch queue-4.10/mips-ip22-fix-ip28-build-for-modern-gcc.patch queue-4.10/mips-update-lemote2f_defconfig-for-cpu_freq_stat-change.patch queue-4.10/crypto-improve-gcc-optimization-flags-for-serpent-and-wp512.patch queue-4.10/mips-ralink-remove-unused-rt-_wdt_reset-functions.patch queue-4.10/mips-ralink-remove-unused-timer-functions.patch queue-4.10/mips-update-defconfigs-for-nf_ct_proto_dccp-udplite-change.patch