Skip to contentSkip to conversation

Patch "MIPS: VDSO: avoid duplicate CAC_BASE definition" has been added to the 4.10-stable tree

PATCH [email protected] 1 participant 1 message Mar 15, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

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 1742ac265046f34223e06d5d283496f0291be259 Mon 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.

Fixes 3ffc17d8768b ("MIPS: Adjust MIPS64 CAC_BASE to reflect Config.K0")
Cc Paul Burton <[email protected]>

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