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 'csky-for-linus-5.15-rc6' of git://github.com/c-sky/csky-linux

Pull csky fixes from Guo Ren:
"Only 5 fixups:

- Make HAVE_TCM depend on !COMPILE_TEST

- bitops: Remove duplicate __clear_bit define

- Select ARCH_WANT_FRAME_POINTERS only if compiler supports it

- Fixup regs.sr broken in ptrace

- don't let sigreturn play with priveleged bits of status register"

* tag 'csky-for-linus-5.15-rc6' of git://github.com/c-sky/csky-linux:
csky: Make HAVE_TCM depend on !COMPILE_TEST
csky: bitops: Remove duplicate __clear_bit define
csky: Select ARCH_WANT_FRAME_POINTERS only if compiler supports it
csky: Fixup regs.sr broken in ptrace
csky: don't let sigreturn play with priveleged bits of status register

+8 -3
+2 -1
arch/csky/Kconfig
··· 8 8 select ARCH_HAS_SYNC_DMA_FOR_DEVICE 9 9 select ARCH_USE_BUILTIN_BSWAP 10 10 select ARCH_USE_QUEUED_RWLOCKS 11 - select ARCH_WANT_FRAME_POINTERS if !CPU_CK610 11 + select ARCH_WANT_FRAME_POINTERS if !CPU_CK610 && $(cc-option,-mbacktrace) 12 12 select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT 13 13 select COMMON_CLK 14 14 select CLKSRC_MMIO ··· 241 241 242 242 menuconfig HAVE_TCM 243 243 bool "Tightly-Coupled/Sram Memory" 244 + depends on !COMPILE_TEST 244 245 help 245 246 The implementation are not only used by TCM (Tightly-Coupled Meory) 246 247 but also used by sram on SOC bus. It follow existed linux tcm
-1
arch/csky/include/asm/bitops.h
··· 74 74 * bug fix, why only could use atomic!!!! 75 75 */ 76 76 #include <asm-generic/bitops/non-atomic.h> 77 - #define __clear_bit(nr, vaddr) clear_bit(nr, vaddr) 78 77 79 78 #include <asm-generic/bitops/le.h> 80 79 #include <asm-generic/bitops/ext2-atomic.h>
+2 -1
arch/csky/kernel/ptrace.c
··· 99 99 if (ret) 100 100 return ret; 101 101 102 - regs.sr = task_pt_regs(target)->sr; 102 + /* BIT(0) of regs.sr is Condition Code/Carry bit */ 103 + regs.sr = (regs.sr & BIT(0)) | (task_pt_regs(target)->sr & ~BIT(0)); 103 104 #ifdef CONFIG_CPU_HAS_HILO 104 105 regs.dcsr = task_pt_regs(target)->dcsr; 105 106 #endif
+4
arch/csky/kernel/signal.c
··· 52 52 struct sigcontext __user *sc) 53 53 { 54 54 int err = 0; 55 + unsigned long sr = regs->sr; 55 56 56 57 /* sc_pt_regs is structured the same as the start of pt_regs */ 57 58 err |= __copy_from_user(regs, &sc->sc_pt_regs, sizeof(struct pt_regs)); 59 + 60 + /* BIT(0) of regs->sr is Condition Code/Carry bit */ 61 + regs->sr = (sr & ~1) | (regs->sr & 1); 58 62 59 63 /* Restore the floating-point state. */ 60 64 err |= restore_fpu_state(sc);