mirror of
https://github.com/torvalds/linux.git
synced 2026-05-13 08:39:31 +02:00
Consolidation of empty_zero_page declarations broke boot on sh. sh stores its initial boot parameters in a page reserved in arch/sh/kernel/head_32.S. Before commit6215d9f447("arch, mm: consolidate empty_zero_page") this page was referenced in C code as an array and after that commit it is referenced as a pointer. This causes wrong code generation and boot hang. Declare boot_params_page as an array to fix the issue. Reported-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> Tested-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> Fixes:6215d9f447("arch, mm: consolidate empty_zero_page") Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org> Reviewed-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> Tested-by: Artur Rojek <contact@artur-rojek.eu> Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
28 lines
787 B
C
28 lines
787 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _SH_SETUP_H
|
|
#define _SH_SETUP_H
|
|
|
|
#include <uapi/asm/setup.h>
|
|
|
|
/*
|
|
* This is set up by the setup-routine at boot-time
|
|
*/
|
|
extern unsigned char boot_params_page[];
|
|
#define PARAM boot_params_page
|
|
|
|
#define MOUNT_ROOT_RDONLY (*(unsigned long *) (PARAM+0x000))
|
|
#define RAMDISK_FLAGS (*(unsigned long *) (PARAM+0x004))
|
|
#define ORIG_ROOT_DEV (*(unsigned long *) (PARAM+0x008))
|
|
#define LOADER_TYPE (*(unsigned long *) (PARAM+0x00c))
|
|
#define INITRD_START (*(unsigned long *) (PARAM+0x010))
|
|
#define INITRD_SIZE (*(unsigned long *) (PARAM+0x014))
|
|
/* ... */
|
|
#define COMMAND_LINE ((char *) (PARAM+0x100))
|
|
|
|
void sh_mv_setup(void);
|
|
void check_for_initrd(void);
|
|
void per_cpu_trap_init(void);
|
|
void sh_fdt_init(phys_addr_t dt_phys);
|
|
|
|
#endif /* _SH_SETUP_H */
|