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 'frv-fixes-20121102' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-frv

Pull FRV fixes from David Howells:
"A collection of small fixes for the FRV architecture."

* tag 'frv-fixes-20121102' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-frv:
frv: fix the broken preempt
frv: switch to saner kernel_execve() semantics
FRV: Fix the new-style kernel_thread() stuff
FRV: Fix the preemption handling
FRV: gcc-4.1.2 also inlines weak functions
FRV: Don't objcopy the GNU build_id note
FRV: Add missing linux/export.h #inclusions

+16 -32
+1
arch/frv/Kconfig
··· 13 13 select GENERIC_CPU_DEVICES 14 14 select ARCH_WANT_IPC_PARSE_VERSION 15 15 select GENERIC_KERNEL_THREAD 16 + select GENERIC_KERNEL_EXECVE 16 17 17 18 config ZONE_DMA 18 19 bool
+6 -4
arch/frv/boot/Makefile
··· 17 17 INITRD_PHYS = 0x02180000 18 18 INITRD_VIRT = 0x02180000 19 19 20 + OBJCOPYFLAGS :=-O binary -R .note -R .note.gnu.build-id -R .comment 21 + 20 22 # 21 23 # If you don't define ZRELADDR above, 22 24 # then it defaults to ZTEXTADDR ··· 34 32 targets: $(obj)/Image 35 33 36 34 $(obj)/Image: vmlinux FORCE 37 - $(OBJCOPY) -O binary -R .note -R .comment -S vmlinux $@ 35 + $(OBJCOPY) $(OBJCOPYFLAGS) -S vmlinux $@ 38 36 39 37 #$(obj)/Image: $(CONFIGURE) $(SYSTEM) 40 - # $(OBJCOPY) -O binary -R .note -R .comment -g -S $(SYSTEM) $@ 38 + # $(OBJCOPY) $(OBJCOPYFLAGS) -g -S $(SYSTEM) $@ 41 39 42 40 bzImage: zImage 43 41 44 42 zImage: $(CONFIGURE) compressed/$(LINUX) 45 - $(OBJCOPY) -O binary -R .note -R .comment -S compressed/$(LINUX) $@ 43 + $(OBJCOPY) $(OBJCOPYFLAGS) -S compressed/$(LINUX) $@ 46 44 47 45 bootpImage: bootp/bootp 48 - $(OBJCOPY) -O binary -R .note -R .comment -S bootp/bootp $@ 46 + $(OBJCOPY) $(OBJCOPYFLAGS) -S bootp/bootp $@ 49 47 50 48 compressed/$(LINUX): $(LINUX) dep 51 49 @$(MAKE) -C compressed $(LINUX)
-1
arch/frv/include/asm/unistd.h
··· 30 30 #define __ARCH_WANT_SYS_RT_SIGACTION 31 31 #define __ARCH_WANT_SYS_RT_SIGSUSPEND 32 32 #define __ARCH_WANT_SYS_EXECVE 33 - #define __ARCH_WANT_KERNEL_EXECVE 34 33 35 34 /* 36 35 * "Conditional" syscalls
+3 -25
arch/frv/kernel/entry.S
··· 869 869 call schedule_tail 870 870 calll.p @(gr21,gr0) 871 871 or gr20,gr20,gr8 872 - bra sys_exit 873 - 874 - .globl ret_from_kernel_execve 875 - ret_from_kernel_execve: 876 - ori gr28,0,sp 877 872 bra __syscall_exit 878 873 879 874 ################################################################################################### ··· 1075 1080 subicc gr5,#0,gr0,icc0 1076 1081 beq icc0,#0,__entry_return_direct 1077 1082 1078 - __entry_preempt_need_resched: 1079 - ldi @(gr15,#TI_FLAGS),gr4 1080 - andicc gr4,#_TIF_NEED_RESCHED,gr0,icc0 1081 - beq icc0,#1,__entry_return_direct 1082 - 1083 - setlos #PREEMPT_ACTIVE,gr5 1084 - sti gr5,@(gr15,#TI_FLAGS) 1085 - 1086 - andi gr23,#~PSR_PIL,gr23 1087 - movgs gr23,psr 1088 - 1089 - call schedule 1090 - sti gr0,@(gr15,#TI_PRE_COUNT) 1091 - 1092 - movsg psr,gr23 1093 - ori gr23,#PSR_PIL_14,gr23 1094 - movgs gr23,psr 1095 - bra __entry_preempt_need_resched 1096 - #else 1097 - bra __entry_return_direct 1083 + subcc gr0,gr0,gr0,icc2 /* set Z and clear C */ 1084 + call preempt_schedule_irq 1098 1085 #endif 1086 + bra __entry_return_direct 1099 1087 1100 1088 1101 1089 ###############################################################################
+3 -2
arch/frv/kernel/process.c
··· 181 181 childregs = (struct pt_regs *) 182 182 (task_stack_page(p) + THREAD_SIZE - FRV_FRAME0_SIZE); 183 183 184 + /* set up the userspace frame (the only place that the USP is stored) */ 185 + *childregs = *__kernel_frame0_ptr; 186 + 184 187 p->set_child_tid = p->clear_child_tid = NULL; 185 188 186 189 p->thread.frame = childregs; ··· 194 191 p->thread.frame0 = childregs; 195 192 196 193 if (unlikely(!regs)) { 197 - memset(childregs, 0, sizeof(struct pt_regs)); 198 194 childregs->gr9 = usp; /* function */ 199 195 childregs->gr8 = arg; 200 - childregs->psr = PSR_S; 201 196 p->thread.pc = (unsigned long) ret_from_kernel_thread; 202 197 save_user_regs(p->thread.user); 203 198 return 0;
+1
arch/frv/mb93090-mb00/pci-dma-nommu.c
··· 11 11 12 12 #include <linux/types.h> 13 13 #include <linux/slab.h> 14 + #include <linux/export.h> 14 15 #include <linux/dma-mapping.h> 15 16 #include <linux/list.h> 16 17 #include <linux/pci.h>
+2
init/main.c
··· 442 442 { 443 443 } 444 444 445 + # if THREAD_SIZE >= PAGE_SIZE 445 446 void __init __weak thread_info_cache_init(void) 446 447 { 447 448 } 449 + #endif 448 450 449 451 /* 450 452 * Set up kernel memory allocators