mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
1742ac2650
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.
Link: https://patchwork.kernel.org/patch/9418187/
Fixes: 3ffc17d876
("MIPS: Adjust MIPS64 CAC_BASE to reflect Config.K0")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/15039/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
34 lines
1012 B
C
34 lines
1012 B
C
/*
|
|
* This file is subject to the terms and conditions of the GNU General Public
|
|
* License. See the file "COPYING" in the main directory of this archive
|
|
* for more details.
|
|
*
|
|
* Copyright (C) 1996, 99 Ralf Baechle
|
|
* Copyright (C) 2000, 2002 Maciej W. Rozycki
|
|
* Copyright (C) 1990, 1999 by Silicon Graphics, Inc.
|
|
*/
|
|
#ifndef _ASM_MACH_IP27_SPACES_H
|
|
#define _ASM_MACH_IP27_SPACES_H
|
|
|
|
/*
|
|
* IP27 uses the R10000's uncached attribute feature. Attribute 3 selects
|
|
* 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))
|
|
|
|
#define HIGHMEM_START (~0UL)
|
|
|
|
#include <asm/mach-generic/spaces.h>
|
|
|
|
#endif /* _ASM_MACH_IP27_SPACES_H */
|