Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'mips_fixes_5.11.1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux

Pull MIPS fixes from Thomas Bogendoerfer:

- fix coredumps on 64bit kernels

- fix for alignment bugs preventing booting

- fix checking for failed irq_alloc_desc calls

* tag 'mips_fixes_5.11.1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
MIPS: OCTEON: fix unreachable code in octeon_irq_init_ciu
MIPS: relocatable: fix possible boot hangup with KASLR enabled
MIPS: Fix malformed NT_FILE and NT_SIGINFO in 32bit coredumps
MIPS: boot: Fix unaligned access with CONFIG_MIPS_RAW_APPENDED_DTB

+25 -4
+2 -1
arch/mips/boot/compressed/decompress.c
··· 13 13 #include <linux/libfdt.h> 14 14 15 15 #include <asm/addrspace.h> 16 + #include <asm/unaligned.h> 16 17 17 18 /* 18 19 * These two variables specify the free mem region ··· 118 117 dtb_size = fdt_totalsize((void *)&__appended_dtb); 119 118 120 119 /* last four bytes is always image size in little endian */ 121 - image_size = le32_to_cpup((void *)&__image_end - 4); 120 + image_size = get_unaligned_le32((void *)&__image_end - 4); 122 121 123 122 /* copy dtb to where the booted kernel will expect it */ 124 123 memcpy((void *)VMLINUX_LOAD_ADDRESS_ULL + image_size,
+1 -1
arch/mips/cavium-octeon/octeon-irq.c
··· 1444 1444 static int __init octeon_irq_init_ciu( 1445 1445 struct device_node *ciu_node, struct device_node *parent) 1446 1446 { 1447 - unsigned int i, r; 1447 + int i, r; 1448 1448 struct irq_chip *chip; 1449 1449 struct irq_chip *chip_edge; 1450 1450 struct irq_chip *chip_mbox;
+7
arch/mips/kernel/binfmt_elfn32.c
··· 103 103 #undef ns_to_kernel_old_timeval 104 104 #define ns_to_kernel_old_timeval ns_to_old_timeval32 105 105 106 + /* 107 + * Some data types as stored in coredump. 108 + */ 109 + #define user_long_t compat_long_t 110 + #define user_siginfo_t compat_siginfo_t 111 + #define copy_siginfo_to_external copy_siginfo_to_external32 112 + 106 113 #include "../../../fs/binfmt_elf.c"
+7
arch/mips/kernel/binfmt_elfo32.c
··· 106 106 #undef ns_to_kernel_old_timeval 107 107 #define ns_to_kernel_old_timeval ns_to_old_timeval32 108 108 109 + /* 110 + * Some data types as stored in coredump. 111 + */ 112 + #define user_long_t compat_long_t 113 + #define user_siginfo_t compat_siginfo_t 114 + #define copy_siginfo_to_external copy_siginfo_to_external32 115 + 109 116 #include "../../../fs/binfmt_elf.c"
+8 -2
arch/mips/kernel/relocate.c
··· 187 187 static inline __init unsigned long rotate_xor(unsigned long hash, 188 188 const void *area, size_t size) 189 189 { 190 - size_t i; 191 - unsigned long *ptr = (unsigned long *)area; 190 + const typeof(hash) *ptr = PTR_ALIGN(area, sizeof(hash)); 191 + size_t diff, i; 192 + 193 + diff = (void *)ptr - area; 194 + if (unlikely(size < diff + sizeof(hash))) 195 + return hash; 196 + 197 + size = ALIGN_DOWN(size - diff, sizeof(hash)); 192 198 193 199 for (i = 0; i < size / sizeof(hash); i++) { 194 200 /* Rotate by odd number of bits and XOR. */