mirror of https://gitee.com/openkylin/linux.git
A small batch of MIPS fixes for 5.1:
- An interrupt masking fix for Loongson-based Lemote 2F systems (fixing a regression from v3.19). - A relocation fix for configurations in which the devicetree is stored in an ELF section (fixing a regression from v4.7). - Fix jump labels for MIPSr6 kernels where they previously could inadvertently place a control transfer instruction in a forbidden slot & take unexpected exceptions (fixing MIPSr6 support added in v4.0). - Extend an existing USB power workaround for the Netgear WNDR3400 to v2 boards in addition to the v3 ones that already used it. - Remove the custom MIPS32 definition of __kernel_fsid_t to make it consistent with MIPS64 & every other architecture, in particular resolving issues for code which tries to print the val field whose type previously differed (though had identical memory layout). -----BEGIN PGP SIGNATURE----- iIsEABYIADMWIQRgLjeFAZEXQzy86/s+p5+stXUA3QUCXJARJxUccGF1bC5idXJ0 b25AbWlwcy5jb20ACgkQPqefrLV1AN0qJAEAg6i9PnkuHZFXjlaUsvBWyVJRrpgR Y9vLYXTGJZdb1BwA/i17C6xD7i41Ef2/TtOuPc5fJ6IfEbt74nKJEeBxNTUO =V6Ds -----END PGP SIGNATURE----- Merge tag 'mips_fixes_5.1_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux Pull MIPS fixes from Paul Burton: "A small batch of MIPS fixes for 5.1: - An interrupt masking fix for Loongson-based Lemote 2F systems (fixing a regression from v3.19) - A relocation fix for configurations in which the devicetree is stored in an ELF section (fixing a regression from v4.7) - Fix jump labels for MIPSr6 kernels where they previously could inadvertently place a control transfer instruction in a forbidden slot & take unexpected exceptions (fixing MIPSr6 support added in v4.0) - Extend an existing USB power workaround for the Netgear WNDR3400 to v2 boards in addition to the v3 ones that already used it - Remove the custom MIPS32 definition of __kernel_fsid_t to make it consistent with MIPS64 & every other architecture, in particular resolving issues for code which tries to print the val field whose type previously differed (though had identical memory layout)" * tag 'mips_fixes_5.1_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: MIPS: Remove custom MIPS32 __kernel_fsid_t type mips: bcm47xx: Enable USB power on Netgear WNDR3400v2 MIPS: Fix kernel crash for R6 in jump label branch function MIPS: Ensure ELF appended dtb is relocated mips: loongson64: lemote-2f: Add IRQF_NO_SUSPEND to "cascade" irqaction.
This commit is contained in:
commit
b7a42146dc
|
@ -24,6 +24,7 @@ void __init bcm47xx_workarounds(void)
|
||||||
case BCM47XX_BOARD_NETGEAR_WNR3500L:
|
case BCM47XX_BOARD_NETGEAR_WNR3500L:
|
||||||
bcm47xx_workarounds_enable_usb_power(12);
|
bcm47xx_workarounds_enable_usb_power(12);
|
||||||
break;
|
break;
|
||||||
|
case BCM47XX_BOARD_NETGEAR_WNDR3400V2:
|
||||||
case BCM47XX_BOARD_NETGEAR_WNDR3400_V3:
|
case BCM47XX_BOARD_NETGEAR_WNDR3400_V3:
|
||||||
bcm47xx_workarounds_enable_usb_power(21);
|
bcm47xx_workarounds_enable_usb_power(21);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -21,15 +21,15 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_CPU_MICROMIPS
|
#ifdef CONFIG_CPU_MICROMIPS
|
||||||
#define NOP_INSN "nop32"
|
#define B_INSN "b32"
|
||||||
#else
|
#else
|
||||||
#define NOP_INSN "nop"
|
#define B_INSN "b"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
|
static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
|
||||||
{
|
{
|
||||||
asm_volatile_goto("1:\t" NOP_INSN "\n\t"
|
asm_volatile_goto("1:\t" B_INSN " 2f\n\t"
|
||||||
"nop\n\t"
|
"2:\tnop\n\t"
|
||||||
".pushsection __jump_table, \"aw\"\n\t"
|
".pushsection __jump_table, \"aw\"\n\t"
|
||||||
WORD_INSN " 1b, %l[l_yes], %0\n\t"
|
WORD_INSN " 1b, %l[l_yes], %0\n\t"
|
||||||
".popsection\n\t"
|
".popsection\n\t"
|
||||||
|
|
|
@ -21,13 +21,6 @@
|
||||||
typedef long __kernel_daddr_t;
|
typedef long __kernel_daddr_t;
|
||||||
#define __kernel_daddr_t __kernel_daddr_t
|
#define __kernel_daddr_t __kernel_daddr_t
|
||||||
|
|
||||||
#if (_MIPS_SZLONG == 32)
|
|
||||||
typedef struct {
|
|
||||||
long val[2];
|
|
||||||
} __kernel_fsid_t;
|
|
||||||
#define __kernel_fsid_t __kernel_fsid_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <asm-generic/posix_types.h>
|
#include <asm-generic/posix_types.h>
|
||||||
|
|
||||||
#endif /* _ASM_POSIX_TYPES_H */
|
#endif /* _ASM_POSIX_TYPES_H */
|
||||||
|
|
|
@ -140,6 +140,13 @@ SECTIONS
|
||||||
PERCPU_SECTION(1 << CONFIG_MIPS_L1_CACHE_SHIFT)
|
PERCPU_SECTION(1 << CONFIG_MIPS_L1_CACHE_SHIFT)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_MIPS_ELF_APPENDED_DTB
|
||||||
|
.appended_dtb : AT(ADDR(.appended_dtb) - LOAD_OFFSET) {
|
||||||
|
*(.appended_dtb)
|
||||||
|
KEEP(*(.appended_dtb))
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_RELOCATABLE
|
#ifdef CONFIG_RELOCATABLE
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
|
||||||
|
@ -164,11 +171,6 @@ SECTIONS
|
||||||
__appended_dtb = .;
|
__appended_dtb = .;
|
||||||
/* leave space for appended DTB */
|
/* leave space for appended DTB */
|
||||||
. += 0x100000;
|
. += 0x100000;
|
||||||
#elif defined(CONFIG_MIPS_ELF_APPENDED_DTB)
|
|
||||||
.appended_dtb : AT(ADDR(.appended_dtb) - LOAD_OFFSET) {
|
|
||||||
*(.appended_dtb)
|
|
||||||
KEEP(*(.appended_dtb))
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
/*
|
/*
|
||||||
* Align to 64K in attempt to eliminate holes before the
|
* Align to 64K in attempt to eliminate holes before the
|
||||||
|
|
|
@ -103,7 +103,7 @@ static struct irqaction ip6_irqaction = {
|
||||||
static struct irqaction cascade_irqaction = {
|
static struct irqaction cascade_irqaction = {
|
||||||
.handler = no_action,
|
.handler = no_action,
|
||||||
.name = "cascade",
|
.name = "cascade",
|
||||||
.flags = IRQF_NO_THREAD,
|
.flags = IRQF_NO_THREAD | IRQF_NO_SUSPEND,
|
||||||
};
|
};
|
||||||
|
|
||||||
void __init mach_init_irq(void)
|
void __init mach_init_irq(void)
|
||||||
|
|
Loading…
Reference in New Issue