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_6.3_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux

Pull MIPS fix from Thomas Bogendoerfer:
"Fix to avoid crash on BCM6358 platforms"

* tag 'mips-fixes_6.3_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
mips: bmips: BCM6358: disable RAC flush for TP1

+13
+5
arch/mips/bmips/dma.c
··· 5 5 #include <asm/bmips.h> 6 6 #include <asm/io.h> 7 7 8 + bool bmips_rac_flush_disable; 9 + 8 10 void arch_sync_dma_for_cpu_all(void) 9 11 { 10 12 void __iomem *cbr = BMIPS_GET_CBR(); ··· 15 13 if (boot_cpu_type() != CPU_BMIPS3300 && 16 14 boot_cpu_type() != CPU_BMIPS4350 && 17 15 boot_cpu_type() != CPU_BMIPS4380) 16 + return; 17 + 18 + if (unlikely(bmips_rac_flush_disable)) 18 19 return; 19 20 20 21 /* Flush stale data out of the readahead cache */
+8
arch/mips/bmips/setup.c
··· 35 35 #define REG_BCM6328_OTP ((void __iomem *)CKSEG1ADDR(0x1000062c)) 36 36 #define BCM6328_TP1_DISABLED BIT(9) 37 37 38 + extern bool bmips_rac_flush_disable; 39 + 38 40 static const unsigned long kbase = VMLINUX_LOAD_ADDRESS & 0xfff00000; 39 41 40 42 struct bmips_quirk { ··· 106 104 * disable SMP for now 107 105 */ 108 106 bmips_smp_enabled = 0; 107 + 108 + /* 109 + * RAC flush causes kernel panics on BCM6358 when booting from TP1 110 + * because the bootloader is not initializing it properly. 111 + */ 112 + bmips_rac_flush_disable = !!(read_c0_brcm_cmt_local() & (1 << 31)); 109 113 } 110 114 111 115 static void bcm6368_quirks(void)