Commit af7a0568 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'mips-fixes_6.1_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux

Pull MIPS fixes from Thomas Bogendoerfer:

 - fix jump label branch range check

 - check kmalloc failures in Loongson64 kexec

 - fix builds with clang-14

 - fix char/int handling in pic32

* tag 'mips-fixes_6.1_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
  MIPS: pic32: treat port as signed integer
  MIPS: jump_label: Fix compat branch range check
  mips: alchemy: gpio: Include the right header
  MIPS: Loongson64: Add WARN_ON on kexec related kmalloc failed
  MIPS: fix duplicate definitions for exported symbols
  mips: boot/compressed: use __NO_FORTIFY
parents ab57bc6f 64806090
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/gpio.h> #include <linux/gpio/driver.h>
#include <asm/mach-au1x00/gpio-au1000.h> #include <asm/mach-au1x00/gpio-au1000.h>
#include <asm/mach-au1x00/gpio-au1300.h> #include <asm/mach-au1x00/gpio-au1300.h>
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#define DISABLE_BRANCH_PROFILING #define DISABLE_BRANCH_PROFILING
#define __NO_FORTIFY
#include <linux/types.h> #include <linux/types.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/string.h> #include <linux/string.h>
......
...@@ -26,6 +26,6 @@ extern char *fw_getcmdline(void); ...@@ -26,6 +26,6 @@ extern char *fw_getcmdline(void);
extern void fw_meminit(void); extern void fw_meminit(void);
extern char *fw_getenv(char *name); extern char *fw_getenv(char *name);
extern unsigned long fw_getenvl(char *name); extern unsigned long fw_getenvl(char *name);
extern void fw_init_early_console(char port); extern void fw_init_early_console(void);
#endif /* __ASM_FW_H_ */ #endif /* __ASM_FW_H_ */
...@@ -56,7 +56,7 @@ void arch_jump_label_transform(struct jump_entry *e, ...@@ -56,7 +56,7 @@ void arch_jump_label_transform(struct jump_entry *e,
* The branch offset must fit in the instruction's 26 * The branch offset must fit in the instruction's 26
* bit field. * bit field.
*/ */
WARN_ON((offset >= BIT(25)) || WARN_ON((offset >= (long)BIT(25)) ||
(offset < -(long)BIT(25))); (offset < -(long)BIT(25)));
insn.j_format.opcode = bc6_op; insn.j_format.opcode = bc6_op;
......
...@@ -145,8 +145,7 @@ LEAF(kexec_smp_wait) ...@@ -145,8 +145,7 @@ LEAF(kexec_smp_wait)
* kexec_args[0..3] are used to prepare register values. * kexec_args[0..3] are used to prepare register values.
*/ */
kexec_args: EXPORT(kexec_args)
EXPORT(kexec_args)
arg0: PTR_WD 0x0 arg0: PTR_WD 0x0
arg1: PTR_WD 0x0 arg1: PTR_WD 0x0
arg2: PTR_WD 0x0 arg2: PTR_WD 0x0
...@@ -159,8 +158,7 @@ arg3: PTR_WD 0x0 ...@@ -159,8 +158,7 @@ arg3: PTR_WD 0x0
* their registers a0-a3. secondary_kexec_args[0..3] are used * their registers a0-a3. secondary_kexec_args[0..3] are used
* to prepare register values. * to prepare register values.
*/ */
secondary_kexec_args: EXPORT(secondary_kexec_args)
EXPORT(secondary_kexec_args)
s_arg0: PTR_WD 0x0 s_arg0: PTR_WD 0x0
s_arg1: PTR_WD 0x0 s_arg1: PTR_WD 0x0
s_arg2: PTR_WD 0x0 s_arg2: PTR_WD 0x0
...@@ -171,19 +169,16 @@ kexec_flag: ...@@ -171,19 +169,16 @@ kexec_flag:
#endif #endif
kexec_start_address: EXPORT(kexec_start_address)
EXPORT(kexec_start_address)
PTR_WD 0x0 PTR_WD 0x0
.size kexec_start_address, PTRSIZE .size kexec_start_address, PTRSIZE
kexec_indirection_page: EXPORT(kexec_indirection_page)
EXPORT(kexec_indirection_page)
PTR_WD 0 PTR_WD 0
.size kexec_indirection_page, PTRSIZE .size kexec_indirection_page, PTRSIZE
relocate_new_kernel_end: relocate_new_kernel_end:
relocate_new_kernel_size: EXPORT(relocate_new_kernel_size)
EXPORT(relocate_new_kernel_size)
PTR_WD relocate_new_kernel_end - relocate_new_kernel PTR_WD relocate_new_kernel_end - relocate_new_kernel
.size relocate_new_kernel_size, PTRSIZE .size relocate_new_kernel_size, PTRSIZE
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <asm/bootinfo.h> #include <asm/bootinfo.h>
#include <asm/idle.h> #include <asm/idle.h>
#include <asm/reboot.h> #include <asm/reboot.h>
#include <asm/bug.h>
#include <loongson.h> #include <loongson.h>
#include <boot_param.h> #include <boot_param.h>
...@@ -159,8 +160,17 @@ static int __init mips_reboot_setup(void) ...@@ -159,8 +160,17 @@ static int __init mips_reboot_setup(void)
#ifdef CONFIG_KEXEC #ifdef CONFIG_KEXEC
kexec_argv = kmalloc(KEXEC_ARGV_SIZE, GFP_KERNEL); kexec_argv = kmalloc(KEXEC_ARGV_SIZE, GFP_KERNEL);
if (WARN_ON(!kexec_argv))
return -ENOMEM;
kdump_argv = kmalloc(KEXEC_ARGV_SIZE, GFP_KERNEL); kdump_argv = kmalloc(KEXEC_ARGV_SIZE, GFP_KERNEL);
if (WARN_ON(!kdump_argv))
return -ENOMEM;
kexec_envp = kmalloc(KEXEC_ENVP_SIZE, GFP_KERNEL); kexec_envp = kmalloc(KEXEC_ENVP_SIZE, GFP_KERNEL);
if (WARN_ON(!kexec_envp))
return -ENOMEM;
fw_arg1 = KEXEC_ARGV_ADDR; fw_arg1 = KEXEC_ARGV_ADDR;
memcpy(kexec_envp, (void *)fw_arg2, KEXEC_ENVP_SIZE); memcpy(kexec_envp, (void *)fw_arg2, KEXEC_ENVP_SIZE);
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
#define U_BRG(x) (UART_BASE(x) + 0x40) #define U_BRG(x) (UART_BASE(x) + 0x40)
static void __iomem *uart_base; static void __iomem *uart_base;
static char console_port = -1; static int console_port = -1;
static int __init configure_uart_pins(int port) static int __init configure_uart_pins(int port)
{ {
...@@ -47,7 +47,7 @@ static int __init configure_uart_pins(int port) ...@@ -47,7 +47,7 @@ static int __init configure_uart_pins(int port)
return 0; return 0;
} }
static void __init configure_uart(char port, int baud) static void __init configure_uart(int port, int baud)
{ {
u32 pbclk; u32 pbclk;
...@@ -60,7 +60,7 @@ static void __init configure_uart(char port, int baud) ...@@ -60,7 +60,7 @@ static void __init configure_uart(char port, int baud)
uart_base + PIC32_SET(U_STA(port))); uart_base + PIC32_SET(U_STA(port)));
} }
static void __init setup_early_console(char port, int baud) static void __init setup_early_console(int port, int baud)
{ {
if (configure_uart_pins(port)) if (configure_uart_pins(port))
return; return;
...@@ -130,16 +130,15 @@ static int __init get_baud_from_cmdline(char *arch_cmdline) ...@@ -130,16 +130,15 @@ static int __init get_baud_from_cmdline(char *arch_cmdline)
return baud; return baud;
} }
void __init fw_init_early_console(char port) void __init fw_init_early_console(void)
{ {
char *arch_cmdline = pic32_getcmdline(); char *arch_cmdline = pic32_getcmdline();
int baud = -1; int baud, port;
uart_base = ioremap(PIC32_BASE_UART, 0xc00); uart_base = ioremap(PIC32_BASE_UART, 0xc00);
baud = get_baud_from_cmdline(arch_cmdline); baud = get_baud_from_cmdline(arch_cmdline);
if (port == -1) port = get_port_from_cmdline(arch_cmdline);
port = get_port_from_cmdline(arch_cmdline);
if (port == -1) if (port == -1)
port = EARLY_CONSOLE_PORT; port = EARLY_CONSOLE_PORT;
......
...@@ -47,7 +47,7 @@ void __init plat_mem_setup(void) ...@@ -47,7 +47,7 @@ void __init plat_mem_setup(void)
strscpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE); strscpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE);
#ifdef CONFIG_EARLY_PRINTK #ifdef CONFIG_EARLY_PRINTK
fw_init_early_console(-1); fw_init_early_console();
#endif #endif
pic32_config_init(); pic32_config_init();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment