diff options
Diffstat (limited to 'arch/frv')
-rw-r--r-- | arch/frv/include/asm/pgtable.h | 29 | ||||
-rw-r--r-- | arch/frv/include/asm/string.h | 1 | ||||
-rw-r--r-- | arch/frv/include/asm/thread_info.h | 4 | ||||
-rw-r--r-- | arch/frv/kernel/asm-offsets.c | 1 | ||||
-rw-r--r-- | arch/frv/kernel/signal.c | 2 | ||||
-rw-r--r-- | arch/frv/mb93090-mb00/pci-frv.c | 2 | ||||
-rw-r--r-- | arch/frv/mb93090-mb00/pci-vdk.c | 4 | ||||
-rw-r--r-- | arch/frv/mm/extable.c | 23 | ||||
-rw-r--r-- | arch/frv/mm/fault.c | 2 |
9 files changed, 12 insertions, 56 deletions
diff --git a/arch/frv/include/asm/pgtable.h b/arch/frv/include/asm/pgtable.h index eb0110acd19b..93bcf2abd1a1 100644 --- a/arch/frv/include/asm/pgtable.h +++ b/arch/frv/include/asm/pgtable.h | |||
@@ -62,10 +62,6 @@ typedef pte_t *pte_addr_t; | |||
62 | #define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) }) | 62 | #define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) }) |
63 | #define __swp_entry_to_pte(x) ((pte_t) { (x).val }) | 63 | #define __swp_entry_to_pte(x) ((pte_t) { (x).val }) |
64 | 64 | ||
65 | #ifndef __ASSEMBLY__ | ||
66 | static inline int pte_file(pte_t pte) { return 0; } | ||
67 | #endif | ||
68 | |||
69 | #define ZERO_PAGE(vaddr) ({ BUG(); NULL; }) | 65 | #define ZERO_PAGE(vaddr) ({ BUG(); NULL; }) |
70 | 66 | ||
71 | #define swapper_pg_dir ((pgd_t *) NULL) | 67 | #define swapper_pg_dir ((pgd_t *) NULL) |
@@ -144,7 +140,7 @@ extern unsigned long empty_zero_page; | |||
144 | #define PTRS_PER_PTE 4096 | 140 | #define PTRS_PER_PTE 4096 |
145 | 141 | ||
146 | #define USER_PGDS_IN_LAST_PML4 (TASK_SIZE / PGDIR_SIZE) | 142 | #define USER_PGDS_IN_LAST_PML4 (TASK_SIZE / PGDIR_SIZE) |
147 | #define FIRST_USER_ADDRESS 0 | 143 | #define FIRST_USER_ADDRESS 0UL |
148 | 144 | ||
149 | #define USER_PGD_PTRS (PAGE_OFFSET >> PGDIR_SHIFT) | 145 | #define USER_PGD_PTRS (PAGE_OFFSET >> PGDIR_SHIFT) |
150 | #define KERNEL_PGD_PTRS (PTRS_PER_PGD - USER_PGD_PTRS) | 146 | #define KERNEL_PGD_PTRS (PTRS_PER_PGD - USER_PGD_PTRS) |
@@ -298,7 +294,6 @@ static inline pmd_t *pmd_offset(pud_t *dir, unsigned long address) | |||
298 | 294 | ||
299 | #define _PAGE_RESERVED_MASK (xAMPRx_RESERVED8 | xAMPRx_RESERVED13) | 295 | #define _PAGE_RESERVED_MASK (xAMPRx_RESERVED8 | xAMPRx_RESERVED13) |
300 | 296 | ||
301 | #define _PAGE_FILE 0x002 /* set:pagecache unset:swap */ | ||
302 | #define _PAGE_PROTNONE 0x000 /* If not present */ | 297 | #define _PAGE_PROTNONE 0x000 /* If not present */ |
303 | 298 | ||
304 | #define _PAGE_CHG_MASK (PTE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY) | 299 | #define _PAGE_CHG_MASK (PTE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY) |
@@ -463,27 +458,15 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) | |||
463 | * Handle swap and file entries | 458 | * Handle swap and file entries |
464 | * - the PTE is encoded in the following format: | 459 | * - the PTE is encoded in the following format: |
465 | * bit 0: Must be 0 (!_PAGE_PRESENT) | 460 | * bit 0: Must be 0 (!_PAGE_PRESENT) |
466 | * bit 1: Type: 0 for swap, 1 for file (_PAGE_FILE) | 461 | * bits 1-6: Swap type |
467 | * bits 2-7: Swap type | 462 | * bits 7-31: Swap offset |
468 | * bits 8-31: Swap offset | ||
469 | * bits 2-31: File pgoff | ||
470 | */ | 463 | */ |
471 | #define __swp_type(x) (((x).val >> 2) & 0x1f) | 464 | #define __swp_type(x) (((x).val >> 1) & 0x1f) |
472 | #define __swp_offset(x) ((x).val >> 8) | 465 | #define __swp_offset(x) ((x).val >> 7) |
473 | #define __swp_entry(type, offset) ((swp_entry_t) { ((type) << 2) | ((offset) << 8) }) | 466 | #define __swp_entry(type, offset) ((swp_entry_t) { ((type) << 1) | ((offset) << 7) }) |
474 | #define __pte_to_swp_entry(_pte) ((swp_entry_t) { (_pte).pte }) | 467 | #define __pte_to_swp_entry(_pte) ((swp_entry_t) { (_pte).pte }) |
475 | #define __swp_entry_to_pte(x) ((pte_t) { (x).val }) | 468 | #define __swp_entry_to_pte(x) ((pte_t) { (x).val }) |
476 | 469 | ||
477 | static inline int pte_file(pte_t pte) | ||
478 | { | ||
479 | return pte.pte & _PAGE_FILE; | ||
480 | } | ||
481 | |||
482 | #define PTE_FILE_MAX_BITS 29 | ||
483 | |||
484 | #define pte_to_pgoff(PTE) ((PTE).pte >> 2) | ||
485 | #define pgoff_to_pte(off) __pte((off) << 2 | _PAGE_FILE) | ||
486 | |||
487 | /* Needs to be defined here and not in linux/mm.h, as it is arch dependent */ | 470 | /* Needs to be defined here and not in linux/mm.h, as it is arch dependent */ |
488 | #define PageSkip(page) (0) | 471 | #define PageSkip(page) (0) |
489 | #define kern_addr_valid(addr) (1) | 472 | #define kern_addr_valid(addr) (1) |
diff --git a/arch/frv/include/asm/string.h b/arch/frv/include/asm/string.h index 5ed310f64b7e..1f6c35990439 100644 --- a/arch/frv/include/asm/string.h +++ b/arch/frv/include/asm/string.h | |||
@@ -33,7 +33,6 @@ extern void *memcpy(void *, const void *, __kernel_size_t); | |||
33 | #define __HAVE_ARCH_STRNCAT 1 | 33 | #define __HAVE_ARCH_STRNCAT 1 |
34 | #define __HAVE_ARCH_STRCMP 1 | 34 | #define __HAVE_ARCH_STRCMP 1 |
35 | #define __HAVE_ARCH_STRNCMP 1 | 35 | #define __HAVE_ARCH_STRNCMP 1 |
36 | #define __HAVE_ARCH_STRNICMP 1 | ||
37 | #define __HAVE_ARCH_STRCHR 1 | 36 | #define __HAVE_ARCH_STRCHR 1 |
38 | #define __HAVE_ARCH_STRRCHR 1 | 37 | #define __HAVE_ARCH_STRRCHR 1 |
39 | #define __HAVE_ARCH_STRSTR 1 | 38 | #define __HAVE_ARCH_STRSTR 1 |
diff --git a/arch/frv/include/asm/thread_info.h b/arch/frv/include/asm/thread_info.h index af29e17c0181..6b917f1c2955 100644 --- a/arch/frv/include/asm/thread_info.h +++ b/arch/frv/include/asm/thread_info.h | |||
@@ -41,7 +41,6 @@ struct thread_info { | |||
41 | * 0-0xBFFFFFFF for user-thead | 41 | * 0-0xBFFFFFFF for user-thead |
42 | * 0-0xFFFFFFFF for kernel-thread | 42 | * 0-0xFFFFFFFF for kernel-thread |
43 | */ | 43 | */ |
44 | struct restart_block restart_block; | ||
45 | 44 | ||
46 | __u8 supervisor_stack[0]; | 45 | __u8 supervisor_stack[0]; |
47 | }; | 46 | }; |
@@ -65,9 +64,6 @@ struct thread_info { | |||
65 | .cpu = 0, \ | 64 | .cpu = 0, \ |
66 | .preempt_count = INIT_PREEMPT_COUNT, \ | 65 | .preempt_count = INIT_PREEMPT_COUNT, \ |
67 | .addr_limit = KERNEL_DS, \ | 66 | .addr_limit = KERNEL_DS, \ |
68 | .restart_block = { \ | ||
69 | .fn = do_no_restart_syscall, \ | ||
70 | }, \ | ||
71 | } | 67 | } |
72 | 68 | ||
73 | #define init_thread_info (init_thread_union.thread_info) | 69 | #define init_thread_info (init_thread_union.thread_info) |
diff --git a/arch/frv/kernel/asm-offsets.c b/arch/frv/kernel/asm-offsets.c index 9de96843a278..446e89d500cc 100644 --- a/arch/frv/kernel/asm-offsets.c +++ b/arch/frv/kernel/asm-offsets.c | |||
@@ -40,7 +40,6 @@ void foo(void) | |||
40 | OFFSET(TI_CPU, thread_info, cpu); | 40 | OFFSET(TI_CPU, thread_info, cpu); |
41 | OFFSET(TI_PREEMPT_COUNT, thread_info, preempt_count); | 41 | OFFSET(TI_PREEMPT_COUNT, thread_info, preempt_count); |
42 | OFFSET(TI_ADDR_LIMIT, thread_info, addr_limit); | 42 | OFFSET(TI_ADDR_LIMIT, thread_info, addr_limit); |
43 | OFFSET(TI_RESTART_BLOCK, thread_info, restart_block); | ||
44 | BLANK(); | 43 | BLANK(); |
45 | 44 | ||
46 | /* offsets into register file storage */ | 45 | /* offsets into register file storage */ |
diff --git a/arch/frv/kernel/signal.c b/arch/frv/kernel/signal.c index dc3d59de0870..336713ab4745 100644 --- a/arch/frv/kernel/signal.c +++ b/arch/frv/kernel/signal.c | |||
@@ -62,7 +62,7 @@ static int restore_sigcontext(struct sigcontext __user *sc, int *_gr8) | |||
62 | unsigned long tbr, psr; | 62 | unsigned long tbr, psr; |
63 | 63 | ||
64 | /* Always make any pending restarted system calls return -EINTR */ | 64 | /* Always make any pending restarted system calls return -EINTR */ |
65 | current_thread_info()->restart_block.fn = do_no_restart_syscall; | 65 | current->restart_block.fn = do_no_restart_syscall; |
66 | 66 | ||
67 | tbr = user->i.tbr; | 67 | tbr = user->i.tbr; |
68 | psr = user->i.psr; | 68 | psr = user->i.psr; |
diff --git a/arch/frv/mb93090-mb00/pci-frv.c b/arch/frv/mb93090-mb00/pci-frv.c index 67b1d1685759..0635bd6c2af3 100644 --- a/arch/frv/mb93090-mb00/pci-frv.c +++ b/arch/frv/mb93090-mb00/pci-frv.c | |||
@@ -94,7 +94,7 @@ static void __init pcibios_allocate_bus_resources(struct list_head *bus_list) | |||
94 | r = &dev->resource[idx]; | 94 | r = &dev->resource[idx]; |
95 | if (!r->start) | 95 | if (!r->start) |
96 | continue; | 96 | continue; |
97 | pci_claim_resource(dev, idx); | 97 | pci_claim_bridge_resource(dev, idx); |
98 | } | 98 | } |
99 | } | 99 | } |
100 | pcibios_allocate_bus_resources(&bus->children); | 100 | pcibios_allocate_bus_resources(&bus->children); |
diff --git a/arch/frv/mb93090-mb00/pci-vdk.c b/arch/frv/mb93090-mb00/pci-vdk.c index efa5d65b0007..b073f4d771a5 100644 --- a/arch/frv/mb93090-mb00/pci-vdk.c +++ b/arch/frv/mb93090-mb00/pci-vdk.c | |||
@@ -168,8 +168,8 @@ static int pci_frv_write_config(struct pci_bus *bus, unsigned int devfn, int whe | |||
168 | } | 168 | } |
169 | 169 | ||
170 | static struct pci_ops pci_direct_frv = { | 170 | static struct pci_ops pci_direct_frv = { |
171 | pci_frv_read_config, | 171 | .read = pci_frv_read_config, |
172 | pci_frv_write_config, | 172 | .write = pci_frv_write_config, |
173 | }; | 173 | }; |
174 | 174 | ||
175 | /* | 175 | /* |
diff --git a/arch/frv/mm/extable.c b/arch/frv/mm/extable.c index 2fb9b3ab57b9..8863d6c1df6e 100644 --- a/arch/frv/mm/extable.c +++ b/arch/frv/mm/extable.c | |||
@@ -10,29 +10,6 @@ extern const void __memset_end, __memset_user_error_lr, __memset_user_error_hand | |||
10 | extern const void __memcpy_end, __memcpy_user_error_lr, __memcpy_user_error_handler; | 10 | extern const void __memcpy_end, __memcpy_user_error_lr, __memcpy_user_error_handler; |
11 | extern spinlock_t modlist_lock; | 11 | extern spinlock_t modlist_lock; |
12 | 12 | ||
13 | /*****************************************************************************/ | ||
14 | /* | ||
15 | * | ||
16 | */ | ||
17 | static inline unsigned long search_one_table(const struct exception_table_entry *first, | ||
18 | const struct exception_table_entry *last, | ||
19 | unsigned long value) | ||
20 | { | ||
21 | while (first <= last) { | ||
22 | const struct exception_table_entry __attribute__((aligned(8))) *mid; | ||
23 | long diff; | ||
24 | |||
25 | mid = (last - first) / 2 + first; | ||
26 | diff = mid->insn - value; | ||
27 | if (diff == 0) | ||
28 | return mid->fixup; | ||
29 | else if (diff < 0) | ||
30 | first = mid + 1; | ||
31 | else | ||
32 | last = mid - 1; | ||
33 | } | ||
34 | return 0; | ||
35 | } /* end search_one_table() */ | ||
36 | 13 | ||
37 | /*****************************************************************************/ | 14 | /*****************************************************************************/ |
38 | /* | 15 | /* |
diff --git a/arch/frv/mm/fault.c b/arch/frv/mm/fault.c index 9a66372fc7c7..ec4917ddf678 100644 --- a/arch/frv/mm/fault.c +++ b/arch/frv/mm/fault.c | |||
@@ -168,6 +168,8 @@ asmlinkage void do_page_fault(int datammu, unsigned long esr0, unsigned long ear | |||
168 | if (unlikely(fault & VM_FAULT_ERROR)) { | 168 | if (unlikely(fault & VM_FAULT_ERROR)) { |
169 | if (fault & VM_FAULT_OOM) | 169 | if (fault & VM_FAULT_OOM) |
170 | goto out_of_memory; | 170 | goto out_of_memory; |
171 | else if (fault & VM_FAULT_SIGSEGV) | ||
172 | goto bad_area; | ||
171 | else if (fault & VM_FAULT_SIGBUS) | 173 | else if (fault & VM_FAULT_SIGBUS) |
172 | goto do_sigbus; | 174 | goto do_sigbus; |
173 | BUG(); | 175 | BUG(); |