From: NIIBE Y. <gn...@m1...> - 2002-04-12 02:38:09
|
2002-04-12 NIIBE Yutaka <gn...@m1...> Follow up to 2.5.8-pre3. * include/asm-sh/tlbflush.h (flush_tlb_kernel_range): New API. * arch/sh/mm/fault.c (flush_tlb_kernel_range): New function. * arch/sh/kernel/entry.S (sys_sched_setaffinity, sys_sched_getaffinity): New syscall entries. * include/asm-sh/unistd.h (__NR_sched_setaffinity, __NR_sched_getaffinity): New macros. 2002-04-11 NIIBE Yutaka <gn...@m1...> Follow up to 2.5.8-pre2. * arch/sh/kernel/process.c: Include <linux/platform.h>. (default_idle): New function. (cpu_idle): Call default_idle. * arch/sh/kernel/signal.c: Include <linux/binfmt.h>. * include/asm-sh/pgalloc.h: Inline functions move to real functions. * arch/sh/mm/init.c (pgd_alloc, pgd_free, pte_alloc_one_kernel, pte_alloc_one): Moved to here. * include/asm-sh/thread_info.h (PREEMPT_ACTIVE): Defined. * include/asm-sh/cacheflush.h, include/asm-sh/tlbflush.h: New files. * include/asm-sh/mmu_context.h: Include asm/tlbflush.h. * arch/sh/kernel/signal.c: Include asm/cacheflush.h. * arch/sh/mm/cache-sh3.c: Likewise. * arch/sh/mm/cache-sh4.c: Likewise. * arch/sh/mm/fault.c: Likewise. * arch/sh/kernel/sh_ksyms.c: Include asm/tlbflush.h, asm/cacheflush.h. * arch/sh/mm/ioremap.c: Likewise. Index: arch/sh/kernel/entry.S =================================================================== RCS file: /cvsroot/linuxsh/linux/arch/sh/kernel/entry.S,v retrieving revision 1.12 diff -u -3 -p -r1.12 entry.S --- arch/sh/kernel/entry.S 29 Mar 2002 00:02:04 -0000 1.12 +++ arch/sh/kernel/entry.S 12 Apr 2002 02:34:32 -0000 @@ -1105,6 +1105,8 @@ ENTRY(sys_call_table) .long SYMBOL_NAME(sys_tkill) .long SYMBOL_NAME(sys_sendfile64) .long SYMBOL_NAME(sys_futex) /* 240 */ + .long SYMBOL_NAME(sys_sched_setaffinity) + .long SYMBOL_NAME(sys_sched_getaffinity) .rept NR_syscalls-(.-sys_call_table)/4 .long SYMBOL_NAME(sys_ni_syscall) Index: arch/sh/kernel/process.c =================================================================== RCS file: /cvsroot/linuxsh/linux/arch/sh/kernel/process.c,v retrieving revision 1.9 diff -u -3 -p -r1.9 process.c --- arch/sh/kernel/process.c 29 Mar 2002 00:02:04 -0000 1.9 +++ arch/sh/kernel/process.c 12 Apr 2002 02:34:32 -0000 @@ -15,6 +15,7 @@ #include <linux/mm.h> #include <linux/slab.h> #include <linux/a.out.h> +#include <linux/platform.h> #include <asm/io.h> #include <asm/uaccess.h> @@ -35,10 +36,7 @@ void enable_hlt(void) hlt_counter--; } -/* - * The idle loop on a uniprocessor i386.. - */ -void cpu_idle(void *unused) +void default_idle(void) { /* endless idle loop with no priority at all */ while (1) { @@ -57,6 +55,14 @@ void cpu_idle(void *unused) } schedule(); } +} + +/* + * The idle loop on a uniprocessor i386.. + */ +void cpu_idle(void *unused) +{ + default_idle(); } void machine_restart(char * __unused) Index: arch/sh/kernel/sh_ksyms.c =================================================================== RCS file: /cvsroot/linuxsh/linux/arch/sh/kernel/sh_ksyms.c,v retrieving revision 1.3 diff -u -3 -p -r1.3 sh_ksyms.c --- arch/sh/kernel/sh_ksyms.c 4 Apr 2002 09:03:54 -0000 1.3 +++ arch/sh/kernel/sh_ksyms.c 12 Apr 2002 02:34:32 -0000 @@ -10,6 +10,7 @@ #include <linux/smp_lock.h> #include <linux/vmalloc.h> #include <linux/pci.h> +#include <linux/irq.h> #include <asm/semaphore.h> #include <asm/processor.h> @@ -19,7 +20,8 @@ #include <asm/hardirq.h> #include <asm/delay.h> #include <asm/pgalloc.h> -#include <linux/irq.h> +#include <asm/tlbflush.h> +#include <asm/cacheflush.h> extern void dump_thread(struct pt_regs *, struct user *); extern int dump_fpu(elf_fpregset_t *); Index: arch/sh/kernel/signal.c =================================================================== RCS file: /cvsroot/linuxsh/linux/arch/sh/kernel/signal.c,v retrieving revision 1.8 diff -u -3 -p -r1.8 signal.c --- arch/sh/kernel/signal.c 29 Mar 2002 00:02:04 -0000 1.8 +++ arch/sh/kernel/signal.c 12 Apr 2002 02:34:33 -0000 @@ -23,10 +23,12 @@ #include <linux/stddef.h> #include <linux/personality.h> #include <linux/tty.h> +#include <linux/binfmts.h> #include <asm/ucontext.h> #include <asm/uaccess.h> #include <asm/pgtable.h> +#include <asm/cacheflush.h> #define DEBUG_SIG 0 Index: arch/sh/mm/cache-sh3.c =================================================================== RCS file: /cvsroot/linuxsh/linux/arch/sh/mm/cache-sh3.c,v retrieving revision 1.1.1.1 diff -u -3 -p -r1.1.1.1 cache-sh3.c --- arch/sh/mm/cache-sh3.c 15 Oct 2001 20:44:53 -0000 1.1.1.1 +++ arch/sh/mm/cache-sh3.c 12 Apr 2002 02:34:33 -0000 @@ -19,6 +19,7 @@ #include <asm/uaccess.h> #include <asm/pgalloc.h> #include <asm/mmu_context.h> +#include <asm/cacheflush.h> #define CCR 0xffffffec /* Address of Cache Control Register */ Index: arch/sh/mm/cache-sh4.c =================================================================== RCS file: /cvsroot/linuxsh/linux/arch/sh/mm/cache-sh4.c,v retrieving revision 1.11 diff -u -3 -p -r1.11 cache-sh4.c --- arch/sh/mm/cache-sh4.c 3 Apr 2002 02:38:34 -0000 1.11 +++ arch/sh/mm/cache-sh4.c 12 Apr 2002 02:34:33 -0000 @@ -20,6 +20,7 @@ #include <asm/uaccess.h> #include <asm/pgalloc.h> #include <asm/mmu_context.h> +#include <asm/cacheflush.h> #define CCR 0xff00001c /* Address of Cache Control Register */ Index: arch/sh/mm/fault.c =================================================================== RCS file: /cvsroot/linuxsh/linux/arch/sh/mm/fault.c,v retrieving revision 1.5 diff -u -3 -p -r1.5 fault.c --- arch/sh/mm/fault.c 22 Mar 2002 12:57:10 -0000 1.5 +++ arch/sh/mm/fault.c 12 Apr 2002 02:34:33 -0000 @@ -26,6 +26,7 @@ #include <asm/pgalloc.h> #include <asm/hardirq.h> #include <asm/mmu_context.h> +#include <asm/cacheflush.h> extern void die(const char *,struct pt_regs *,long); @@ -410,6 +411,32 @@ void flush_tlb_range(struct vm_area_stru } restore_flags(flags); } +} + +void flush_tlb_kernel_range(unsigned long start, unsigned long end) +{ + unsigned long flags; + int size; + + save_and_cli(flags); + size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT; + if (size > (MMU_NTLB_ENTRIES/4)) { /* Too many TLB to flush */ + flush_tlb_all(); + } else { + unsigned long asid = init_mm.context&MMU_CONTEXT_ASID_MASK; + unsigned long saved_asid = get_asid(); + + start &= PAGE_MASK; + end += (PAGE_SIZE - 1); + end &= PAGE_MASK; + set_asid(asid); + while (start < end) { + __flush_tlb_page(asid, start); + start += PAGE_SIZE; + } + set_asid(saved_asid); + } + restore_flags(flags); } void flush_tlb_mm(struct mm_struct *mm) Index: arch/sh/mm/init.c =================================================================== RCS file: /cvsroot/linuxsh/linux/arch/sh/mm/init.c,v retrieving revision 1.1.1.1 diff -u -3 -p -r1.1.1.1 init.c --- arch/sh/mm/init.c 15 Oct 2001 20:44:54 -0000 1.1.1.1 +++ arch/sh/mm/init.c 12 Apr 2002 02:34:33 -0000 @@ -35,6 +35,7 @@ #include <asm/mmu_context.h> #include <asm/io.h> #include <asm/tlb.h> +#include <asm/cacheflush.h> mmu_gather_t mmu_gathers[NR_CPUS]; @@ -214,4 +215,54 @@ void si_meminfo(struct sysinfo *val) val->freehigh = nr_free_highpages(); val->mem_unit = PAGE_SIZE; return; +} + +pgd_t *pgd_alloc(struct mm_struct *mm) +{ + unsigned int pgd_size = (USER_PTRS_PER_PGD * sizeof(pgd_t)); + pgd_t *pgd = (pgd_t *)kmalloc(pgd_size, GFP_KERNEL); + + if (pgd) + memset(pgd, 0, pgd_size); + + return pgd; +} + +void pgd_free(pgd_t *pgd) +{ + kfree(pgd); +} + +pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) +{ + int count = 0; + pte_t *pte; + + do { + pte = (pte_t *) __get_free_page(GFP_KERNEL); + if (pte) + clear_page(pte); + else { + current->state = TASK_UNINTERRUPTIBLE; + schedule_timeout(HZ); + } + } while (!pte && (count++ < 10)); + return pte; +} + +struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address) +{ + int count = 0; + struct page *pte; + + do { + pte = alloc_pages(GFP_KERNEL, 0); + if (pte) + clear_page(page_address(pte)); + else { + current->state = TASK_UNINTERRUPTIBLE; + schedule_timeout(HZ); + } + } while (!pte && (count++ < 10)); + return pte; } Index: arch/sh/mm/ioremap.c =================================================================== RCS file: /cvsroot/linuxsh/linux/arch/sh/mm/ioremap.c,v retrieving revision 1.2 diff -u -3 -p -r1.2 ioremap.c --- arch/sh/mm/ioremap.c 22 Mar 2002 03:58:40 -0000 1.2 +++ arch/sh/mm/ioremap.c 12 Apr 2002 02:34:33 -0000 @@ -12,6 +12,8 @@ #include <linux/vmalloc.h> #include <asm/io.h> #include <asm/pgalloc.h> +#include <asm/cacheflush.h> +#include <asm/tlbflush.h> static inline void remap_area_pte(pte_t * pte, unsigned long address, unsigned long size, unsigned long phys_addr, unsigned long flags) Index: include/asm-sh/cacheflush.h =================================================================== RCS file: include/asm-sh/cacheflush.h diff -N include/asm-sh/cacheflush.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ include/asm-sh/cacheflush.h 12 Apr 2002 02:34:33 -0000 @@ -0,0 +1,72 @@ +#ifndef __ASM_SH_CACHEFLUSH_H +#define __ASM_SH_CACHEFLUSH_H + +#if defined(__sh3__) +/* Cache flushing: + * + * - flush_cache_all() flushes entire cache + * - flush_cache_mm(mm) flushes the specified mm context's cache lines + * - flush_cache_page(mm, vmaddr) flushes a single page + * - flush_cache_range(vma, start, end) flushes a range of pages + * + * - flush_dcache_page(pg) flushes(wback&invalidates) a page for dcache + * - flush_page_to_ram(page) write back kernel page to ram + * - flush_icache_range(start, end) flushes(invalidates) a range for icache + * - flush_icache_page(vma, pg) flushes(invalidates) a page for icache + * + * Caches are indexed (effectively) by physical address on SH-3, so + * we don't need them. + */ +#define flush_cache_all() do { } while (0) +#define flush_cache_mm(mm) do { } while (0) +#define flush_cache_range(vma, start, end) do { } while (0) +#define flush_cache_page(vma, vmaddr) do { } while (0) +#define flush_page_to_ram(page) do { } while (0) +#define flush_dcache_page(page) do { } while (0) +#define flush_icache_range(start, end) do { } while (0) +#define flush_icache_page(vma,pg) do { } while (0) +#define flush_icache_user_range(vma,pg,adr,len) do { } while (0) +#define flush_cache_sigtramp(vaddr) do { } while (0) + +#define p3_cache_init() do { } while (0) + +#elif defined(__SH4__) +/* + * Caches are broken on SH-4, so we need them. + */ + +/* Page is 4K, OC size is 16K, there are four lines. */ +#define CACHE_ALIAS 0x00003000 + +extern void flush_cache_all(void); +extern void flush_cache_mm(struct mm_struct *mm); +extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start, + unsigned long end); +extern void flush_cache_page(struct vm_area_struct *vma, unsigned long addr); +extern void flush_dcache_page(struct page *pg); +extern void flush_icache_range(unsigned long start, unsigned long end); +extern void flush_cache_sigtramp(unsigned long addr); +extern void flush_icache_user_range(struct vm_area_struct *vma, + struct page *page, unsigned long addr, + int len); + +#define flush_page_to_ram(page) do { } while (0) +#define flush_icache_page(vma,pg) do { } while (0) + +/* Initialization of P3 area for copy_user_page */ +extern void p3_cache_init(void); + +#define PG_mapped PG_arch_1 + +/* We provide our own get_unmapped_area to avoid cache alias issue */ +#define HAVE_ARCH_UNMAPPED_AREA +#endif + +/* Flush (write-back only) a region (smaller than a page) */ +extern void __flush_wback_region(void *start, int size); +/* Flush (write-back & invalidate) a region (smaller than a page) */ +extern void __flush_purge_region(void *start, int size); +/* Flush (invalidate only) a region (smaller than a page) */ +extern void __flush_invalidate_region(void *start, int size); + +#endif /* __ASM_SH_CACHEFLUSH_H */ Index: include/asm-sh/mmu_context.h =================================================================== RCS file: /cvsroot/linuxsh/linux/include/asm-sh/mmu_context.h,v retrieving revision 1.7 diff -u -3 -p -r1.7 mmu_context.h --- include/asm-sh/mmu_context.h 27 Mar 2002 00:07:19 -0000 1.7 +++ include/asm-sh/mmu_context.h 12 Apr 2002 02:34:33 -0000 @@ -6,6 +6,8 @@ #ifndef __ASM_SH_MMU_CONTEXT_H #define __ASM_SH_MMU_CONTEXT_H +#include <asm/tlbflush.h> + /* * The MMU "context" consists of two things: * (a) TLB cache version (or round, cycle whatever expression you like) Index: include/asm-sh/pgalloc.h =================================================================== RCS file: /cvsroot/linuxsh/linux/include/asm-sh/pgalloc.h,v retrieving revision 1.6 diff -u -3 -p -r1.6 pgalloc.h --- include/asm-sh/pgalloc.h 22 Mar 2002 12:57:10 -0000 1.6 +++ include/asm-sh/pgalloc.h 12 Apr 2002 02:34:33 -0000 @@ -22,56 +22,11 @@ static inline void pmd_populate(struct m /* * Allocate and free page tables. */ +extern pgd_t *pgd_alloc(struct mm_struct *); +extern void pgd_free(pgd_t *pgd); -static inline pgd_t *pgd_alloc(struct mm_struct *mm) -{ - unsigned int pgd_size = (USER_PTRS_PER_PGD * sizeof(pgd_t)); - pgd_t *pgd = (pgd_t *)kmalloc(pgd_size, GFP_KERNEL); - - if (pgd) - memset(pgd, 0, pgd_size); - - return pgd; -} - -static inline void pgd_free(pgd_t *pgd) -{ - kfree(pgd); -} - -static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) -{ - int count = 0; - pte_t *pte; - - do { - pte = (pte_t *) __get_free_page(GFP_KERNEL); - if (pte) - clear_page(pte); - else { - current->state = TASK_UNINTERRUPTIBLE; - schedule_timeout(HZ); - } - } while (!pte && (count++ < 10)); - return pte; -} - -static inline struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address) -{ - int count = 0; - struct page *pte; - - do { - pte = alloc_pages(GFP_KERNEL, 0); - if (pte) - clear_page(page_address(pte)); - else { - current->state = TASK_UNINTERRUPTIBLE; - schedule_timeout(HZ); - } - } while (!pte && (count++ < 10)); - return pte; -} +extern pte_t *pte_alloc_one_kernel(struct mm_struct *, unsigned long); +extern struct page *pte_alloc_one(struct mm_struct *, unsigned long); static inline void pte_free_kernel(pte_t *pte) { @@ -92,31 +47,9 @@ static inline void pte_free(struct page #define pmd_free(x) do { } while (0) #define pgd_populate(mm, pmd, pte) BUG() -/* - * TLB flushing: - * - * - flush_tlb() flushes the current mm struct TLBs - * - flush_tlb_all() flushes all processes TLBs - * - flush_tlb_mm(mm) flushes the specified mm context TLB's - * - flush_tlb_page(vma, vmaddr) flushes one page - * - flush_tlb_range(vma, start, end) flushes a range of pages - * - flush_tlb_pgtables(mm, start, end) flushes a range of page tables - */ - -extern void flush_tlb(void); -extern void flush_tlb_all(void); -extern void flush_tlb_mm(struct mm_struct *mm); -extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, - unsigned long end); -extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long page); -extern void __flush_tlb_page(unsigned long asid, unsigned long page); - -static inline void flush_tlb_pgtables(struct mm_struct *mm, - unsigned long start, unsigned long end) -{ /* Nothing to do */ -} - #if defined(__SH4__) +#define PG_mapped PG_arch_1 + /* * For SH-4, we have our own implementation for ptep_get_and_clear */ Index: include/asm-sh/pgtable.h =================================================================== RCS file: /cvsroot/linuxsh/linux/include/asm-sh/pgtable.h,v retrieving revision 1.7 diff -u -3 -p -r1.7 pgtable.h --- include/asm-sh/pgtable.h 22 Mar 2002 12:57:10 -0000 1.7 +++ include/asm-sh/pgtable.h 12 Apr 2002 02:34:33 -0000 @@ -17,75 +17,6 @@ extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; extern void paging_init(void); -#if defined(__sh3__) -/* Cache flushing: - * - * - flush_cache_all() flushes entire cache - * - flush_cache_mm(mm) flushes the specified mm context's cache lines - * - flush_cache_page(mm, vmaddr) flushes a single page - * - flush_cache_range(vma, start, end) flushes a range of pages - * - * - flush_dcache_page(pg) flushes(wback&invalidates) a page for dcache - * - flush_page_to_ram(page) write back kernel page to ram - * - flush_icache_range(start, end) flushes(invalidates) a range for icache - * - flush_icache_page(vma, pg) flushes(invalidates) a page for icache - * - * Caches are indexed (effectively) by physical address on SH-3, so - * we don't need them. - */ -#define flush_cache_all() do { } while (0) -#define flush_cache_mm(mm) do { } while (0) -#define flush_cache_range(vma, start, end) do { } while (0) -#define flush_cache_page(vma, vmaddr) do { } while (0) -#define flush_page_to_ram(page) do { } while (0) -#define flush_dcache_page(page) do { } while (0) -#define flush_icache_range(start, end) do { } while (0) -#define flush_icache_page(vma,pg) do { } while (0) -#define flush_icache_user_range(vma,pg,adr,len) do { } while (0) -#define flush_cache_sigtramp(vaddr) do { } while (0) - -#define p3_cache_init() do { } while (0) - -#elif defined(__SH4__) -/* - * Caches are broken on SH-4, so we need them. - */ - -/* Page is 4K, OC size is 16K, there are four lines. */ -#define CACHE_ALIAS 0x00003000 - -extern void flush_cache_all(void); -extern void flush_cache_mm(struct mm_struct *mm); -extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start, - unsigned long end); -extern void flush_cache_page(struct vm_area_struct *vma, unsigned long addr); -extern void flush_dcache_page(struct page *pg); -extern void flush_icache_range(unsigned long start, unsigned long end); -extern void flush_cache_sigtramp(unsigned long addr); -extern void flush_icache_user_range(struct vm_area_struct *vma, - struct page *page, unsigned long addr, - int len); - -#define flush_page_to_ram(page) do { } while (0) -#define flush_icache_page(vma,pg) do { } while (0) - -/* Initialization of P3 area for copy_user_page */ -extern void p3_cache_init(void); - -#define PG_mapped PG_arch_1 - -/* We provide our own get_unmapped_area to avoid cache alias issue */ -#define HAVE_ARCH_UNMAPPED_AREA -#endif - -/* Flush (write-back only) a region (smaller than a page) */ -extern void __flush_wback_region(void *start, int size); -/* Flush (write-back & invalidate) a region (smaller than a page) */ -extern void __flush_purge_region(void *start, int size); -/* Flush (invalidate only) a region (smaller than a page) */ -extern void __flush_invalidate_region(void *start, int size); - - /* * Basically we have the same two-level (which is the logical three level * Linux page table layout folded) page tables as the i386. Index: include/asm-sh/thread_info.h =================================================================== RCS file: /cvsroot/linuxsh/linux/include/asm-sh/thread_info.h,v retrieving revision 1.4 diff -u -3 -p -r1.4 thread_info.h --- include/asm-sh/thread_info.h 26 Mar 2002 01:56:39 -0000 1.4 +++ include/asm-sh/thread_info.h 12 Apr 2002 02:34:33 -0000 @@ -43,6 +43,8 @@ struct thread_info { #endif +#define PREEMPT_ACTIVE 0x4000 + /* * macros/functions for gaining access to the thread information structure */ Index: include/asm-sh/tlbflush.h =================================================================== RCS file: include/asm-sh/tlbflush.h diff -N include/asm-sh/tlbflush.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ include/asm-sh/tlbflush.h 12 Apr 2002 02:34:33 -0000 @@ -0,0 +1,31 @@ +#ifndef __ASM_SH_TLBFLUSH_H +#define __ASM_SH_TLBFLUSH_H + +/* + * TLB flushing: + * + * - flush_tlb() flushes the current mm struct TLBs + * - flush_tlb_all() flushes all processes TLBs + * - flush_tlb_mm(mm) flushes the specified mm context TLB's + * - flush_tlb_page(vma, vmaddr) flushes one page + * - flush_tlb_range(vma, start, end) flushes a range of pages + * - flush_tlb_kernel_range(start, end) flushes a range of kernel pages + * - flush_tlb_pgtables(mm, start, end) flushes a range of page tables + */ + +extern void flush_tlb(void); +extern void flush_tlb_all(void); +extern void flush_tlb_mm(struct mm_struct *mm); +extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, + unsigned long end); +extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long page); +extern void __flush_tlb_page(unsigned long asid, unsigned long page); + +static inline void flush_tlb_pgtables(struct mm_struct *mm, + unsigned long start, unsigned long end) +{ /* Nothing to do */ +} + +extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); + +#endif /* __ASM_SH_TLBFLUSH_H */ Index: include/asm-sh/unistd.h =================================================================== RCS file: /cvsroot/linuxsh/linux/include/asm-sh/unistd.h,v retrieving revision 1.5 diff -u -3 -p -r1.5 unistd.h --- include/asm-sh/unistd.h 10 Apr 2002 11:09:40 -0000 1.5 +++ include/asm-sh/unistd.h 12 Apr 2002 02:34:33 -0000 @@ -248,6 +248,8 @@ #define __NR_tkill 238 #define __NR_sendfile64 239 #define __NR_futex 240 +#define __NR_sched_setaffinity 241 +#define __NR_sched_getaffinity 242 /* user-visible error numbers are in the range -1 - -125: see <asm-sh/errno.h> */ |
From: Robert L. <rm...@te...> - 2002-04-12 03:17:38
|
On Thu, 2002-04-11 at 22:38, NIIBE Yutaka wrote: > * include/asm-sh/thread_info.h (PREEMPT_ACTIVE): Defined. Hrm, did I put this in arch-dependent headers? Eh, I did ... This should go in include/linux/sched.h ... I will send Linus a patch to remove it from include/asm and put it there. It is arch-independent. Robert Love |
From: Robert L. <rm...@te...> - 2002-04-12 03:26:06
|
On Thu, 2002-04-11 at 23:17, Robert Love wrote: > Hrm, did I put this in arch-dependent headers? Eh, I did ... Er, disregard that. Pulling sched.h into entry.S is probably not a good idea ... include/asm/thread_info.h it is, then. sorry, Robert Love |