diff options
Diffstat (limited to 'arch/um/include')
| -rw-r--r-- | arch/um/include/asm/Kbuild | 31 | ||||
| -rw-r--r-- | arch/um/include/asm/fixmap.h | 40 | ||||
| -rw-r--r-- | arch/um/include/asm/processor-generic.h | 5 | ||||
| -rw-r--r-- | arch/um/include/asm/thread_info.h | 2 | ||||
| -rw-r--r-- | arch/um/include/asm/tlb.h | 16 | ||||
| -rw-r--r-- | arch/um/include/shared/as-layout.h | 3 | ||||
| -rw-r--r-- | arch/um/include/shared/os.h | 2 | 
7 files changed, 45 insertions, 54 deletions
diff --git a/arch/um/include/asm/Kbuild b/arch/um/include/asm/Kbuild index b30f34a7988..a5e4b606821 100644 --- a/arch/um/include/asm/Kbuild +++ b/arch/um/include/asm/Kbuild @@ -1,5 +1,28 @@ -generic-y += bug.h cputime.h device.h emergency-restart.h futex.h hardirq.h -generic-y += hw_irq.h irq_regs.h kdebug.h percpu.h sections.h topology.h xor.h -generic-y += ftrace.h pci.h io.h param.h delay.h mutex.h current.h exec.h -generic-y += switch_to.h clkdev.h +generic-y += barrier.h +generic-y += bug.h +generic-y += clkdev.h +generic-y += cputime.h +generic-y += current.h +generic-y += delay.h +generic-y += device.h +generic-y += emergency-restart.h +generic-y += exec.h +generic-y += ftrace.h +generic-y += futex.h +generic-y += hardirq.h +generic-y += hash.h +generic-y += hw_irq.h +generic-y += io.h +generic-y += irq_regs.h +generic-y += kdebug.h +generic-y += mcs_spinlock.h +generic-y += mutex.h +generic-y += param.h +generic-y += pci.h +generic-y += percpu.h +generic-y += preempt.h +generic-y += sections.h +generic-y += switch_to.h +generic-y += topology.h  generic-y += trace_clock.h +generic-y += xor.h diff --git a/arch/um/include/asm/fixmap.h b/arch/um/include/asm/fixmap.h index 21a423bae5e..3094ea3c73b 100644 --- a/arch/um/include/asm/fixmap.h +++ b/arch/um/include/asm/fixmap.h @@ -43,13 +43,6 @@ enum fixed_addresses {  extern void __set_fixmap (enum fixed_addresses idx,  			  unsigned long phys, pgprot_t flags); -#define set_fixmap(idx, phys) \ -		__set_fixmap(idx, phys, PAGE_KERNEL) -/* - * Some hardware wants to get fixmapped without caching. - */ -#define set_fixmap_nocache(idx, phys) \ -		__set_fixmap(idx, phys, PAGE_KERNEL_NOCACHE)  /*   * used by vmalloc.c.   * @@ -62,37 +55,6 @@ extern void __set_fixmap (enum fixed_addresses idx,  #define FIXADDR_SIZE	(__end_of_fixed_addresses << PAGE_SHIFT)  #define FIXADDR_START	(FIXADDR_TOP - FIXADDR_SIZE) -#define __fix_to_virt(x)	(FIXADDR_TOP - ((x) << PAGE_SHIFT)) -#define __virt_to_fix(x)      ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT) - -extern void __this_fixmap_does_not_exist(void); - -/* - * 'index to address' translation. If anyone tries to use the idx - * directly without tranlation, we catch the bug with a NULL-deference - * kernel oops. Illegal ranges of incoming indices are caught too. - */ -static inline unsigned long fix_to_virt(const unsigned int idx) -{ -	/* -	 * this branch gets completely eliminated after inlining, -	 * except when someone tries to use fixaddr indices in an -	 * illegal way. (such as mixing up address types or using -	 * out-of-range indices). -	 * -	 * If it doesn't get removed, the linker will complain -	 * loudly with a reasonably clear error message.. -	 */ -	if (idx >= __end_of_fixed_addresses) -		__this_fixmap_does_not_exist(); - -        return __fix_to_virt(idx); -} - -static inline unsigned long virt_to_fix(const unsigned long vaddr) -{ -      BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START); -      return __virt_to_fix(vaddr); -} +#include <asm-generic/fixmap.h>  #endif diff --git a/arch/um/include/asm/processor-generic.h b/arch/um/include/asm/processor-generic.h index c03cd5a0236..cbc5edd5a90 100644 --- a/arch/um/include/asm/processor-generic.h +++ b/arch/um/include/asm/processor-generic.h @@ -19,16 +19,14 @@ struct task_struct;  struct mm_struct;  struct thread_struct { -	struct task_struct *saved_task;  	struct pt_regs regs; +	struct pt_regs *segv_regs;  	int singlestep_syscall;  	void *fault_addr;  	jmp_buf *fault_catcher;  	struct task_struct *prev_sched; -	unsigned long temp_stack;  	struct arch_thread arch;  	jmp_buf switch_buf; -	int mm_count;  	struct {  		int op;  		union { @@ -52,7 +50,6 @@ struct thread_struct {  	.regs		   	= EMPTY_REGS,	\  	.fault_addr		= NULL, \  	.prev_sched		= NULL, \ -	.temp_stack		= 0, \  	.arch			= INIT_ARCH_THREAD, \  	.request		= { 0 } \  } diff --git a/arch/um/include/asm/thread_info.h b/arch/um/include/asm/thread_info.h index 2c8eeb2df8b..1c5b2a83046 100644 --- a/arch/um/include/asm/thread_info.h +++ b/arch/um/include/asm/thread_info.h @@ -60,8 +60,6 @@ static inline struct thread_info *current_thread_info(void)  #endif -#define PREEMPT_ACTIVE		0x10000000 -  #define TIF_SYSCALL_TRACE	0	/* syscall trace active */  #define TIF_SIGPENDING		1	/* signal pending */  #define TIF_NEED_RESCHED	2	/* rescheduling necessary */ diff --git a/arch/um/include/asm/tlb.h b/arch/um/include/asm/tlb.h index 29b0301c18a..16eb63fac57 100644 --- a/arch/um/include/asm/tlb.h +++ b/arch/um/include/asm/tlb.h @@ -59,13 +59,25 @@ extern void flush_tlb_mm_range(struct mm_struct *mm, unsigned long start,  			       unsigned long end);  static inline void +tlb_flush_mmu_tlbonly(struct mmu_gather *tlb) +{ +	flush_tlb_mm_range(tlb->mm, tlb->start, tlb->end); +} + +static inline void +tlb_flush_mmu_free(struct mmu_gather *tlb) +{ +	init_tlb_gather(tlb); +} + +static inline void  tlb_flush_mmu(struct mmu_gather *tlb)  {  	if (!tlb->need_flush)  		return; -	flush_tlb_mm_range(tlb->mm, tlb->start, tlb->end); -	init_tlb_gather(tlb); +	tlb_flush_mmu_tlbonly(tlb); +	tlb_flush_mmu_free(tlb);  }  /* tlb_finish_mmu diff --git a/arch/um/include/shared/as-layout.h b/arch/um/include/shared/as-layout.h index 694c792bab4..41c8c774ec1 100644 --- a/arch/um/include/shared/as-layout.h +++ b/arch/um/include/shared/as-layout.h @@ -44,7 +44,6 @@ struct cpu_task {  extern struct cpu_task cpu_tasks[]; -extern unsigned long low_physmem;  extern unsigned long high_physmem;  extern unsigned long uml_physmem;  extern unsigned long uml_reserved; @@ -52,8 +51,6 @@ extern unsigned long end_vm;  extern unsigned long start_vm;  extern unsigned long long highmem; -extern unsigned long _stext, _etext, _sdata, _edata, __bss_start, _end; -extern unsigned long _unprotected_end;  extern unsigned long brk_start;  extern unsigned long host_task_size; diff --git a/arch/um/include/shared/os.h b/arch/um/include/shared/os.h index 021104d98cb..08eec0b691b 100644 --- a/arch/um/include/shared/os.h +++ b/arch/um/include/shared/os.h @@ -136,6 +136,7 @@ extern int os_ioctl_generic(int fd, unsigned int cmd, unsigned long arg);  extern int os_get_ifname(int fd, char *namebuf);  extern int os_set_slip(int fd);  extern int os_mode_fd(int fd, int mode); +extern int os_fsync_file(int fd);  extern int os_seek_file(int fd, unsigned long long offset);  extern int os_open_file(const char *file, struct openflags flags, int mode); @@ -227,6 +228,7 @@ extern void block_signals(void);  extern void unblock_signals(void);  extern int get_signals(void);  extern int set_signals(int enable); +extern int os_is_signal_stack(void);  /* util.c */  extern void stack_protections(unsigned long address);  | 
