diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-09-24 16:22:33 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-09-24 16:22:33 -0400 |
commit | baea7b946f00a291b166ccae7fcfed6c01530cc6 (patch) | |
tree | 4aa275fbdbec9c7b9b4629e8bee2bbecd3c6a6af /arch/mips | |
parent | ae19ffbadc1b2100285a5b5b3d0a4e0a11390904 (diff) | |
parent | 94e0fb086fc5663c38bbc0fe86d698be8314f82f (diff) |
Merge branch 'origin' into for-linus
Conflicts:
MAINTAINERS
Diffstat (limited to 'arch/mips')
37 files changed, 125 insertions, 107 deletions
diff --git a/arch/mips/Makefile b/arch/mips/Makefile index c825b14b4ed0..77f5021218d3 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile | |||
@@ -627,16 +627,6 @@ endif | |||
627 | cflags-y += -I$(srctree)/arch/mips/include/asm/mach-generic | 627 | cflags-y += -I$(srctree)/arch/mips/include/asm/mach-generic |
628 | drivers-$(CONFIG_PCI) += arch/mips/pci/ | 628 | drivers-$(CONFIG_PCI) += arch/mips/pci/ |
629 | 629 | ||
630 | ifdef CONFIG_32BIT | ||
631 | ifdef CONFIG_CPU_LITTLE_ENDIAN | ||
632 | JIFFIES = jiffies_64 | ||
633 | else | ||
634 | JIFFIES = jiffies_64 + 4 | ||
635 | endif | ||
636 | else | ||
637 | JIFFIES = jiffies_64 | ||
638 | endif | ||
639 | |||
640 | # | 630 | # |
641 | # Automatically detect the build format. By default we choose | 631 | # Automatically detect the build format. By default we choose |
642 | # the elf format according to the load address. | 632 | # the elf format according to the load address. |
@@ -660,8 +650,9 @@ ifdef CONFIG_64BIT | |||
660 | endif | 650 | endif |
661 | 651 | ||
662 | KBUILD_AFLAGS += $(cflags-y) | 652 | KBUILD_AFLAGS += $(cflags-y) |
663 | KBUILD_CFLAGS += $(cflags-y) \ | 653 | KBUILD_CFLAGS += $(cflags-y) |
664 | -D"VMLINUX_LOAD_ADDRESS=$(load-y)" | 654 | KBUILD_CPPFLAGS += -D"VMLINUX_LOAD_ADDRESS=$(load-y)" |
655 | KBUILD_CPPFLAGS += -D"DATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0)" | ||
665 | 656 | ||
666 | LDFLAGS += -m $(ld-emul) | 657 | LDFLAGS += -m $(ld-emul) |
667 | 658 | ||
@@ -676,18 +667,6 @@ endif | |||
676 | 667 | ||
677 | OBJCOPYFLAGS += --remove-section=.reginfo | 668 | OBJCOPYFLAGS += --remove-section=.reginfo |
678 | 669 | ||
679 | # | ||
680 | # Choosing incompatible machines durings configuration will result in | ||
681 | # error messages during linking. Select a default linkscript if | ||
682 | # none has been choosen above. | ||
683 | # | ||
684 | |||
685 | CPPFLAGS_vmlinux.lds := \ | ||
686 | $(KBUILD_CFLAGS) \ | ||
687 | -D"LOADADDR=$(load-y)" \ | ||
688 | -D"JIFFIES=$(JIFFIES)" \ | ||
689 | -D"DATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0)" | ||
690 | |||
691 | head-y := arch/mips/kernel/head.o arch/mips/kernel/init_task.o | 670 | head-y := arch/mips/kernel/head.o arch/mips/kernel/init_task.o |
692 | 671 | ||
693 | libs-y += arch/mips/lib/ | 672 | libs-y += arch/mips/lib/ |
diff --git a/arch/mips/alchemy/common/time.c b/arch/mips/alchemy/common/time.c index f34ff8601942..379a664809b0 100644 --- a/arch/mips/alchemy/common/time.c +++ b/arch/mips/alchemy/common/time.c | |||
@@ -88,7 +88,7 @@ static struct clock_event_device au1x_rtcmatch2_clockdev = { | |||
88 | .irq = AU1000_RTC_MATCH2_INT, | 88 | .irq = AU1000_RTC_MATCH2_INT, |
89 | .set_next_event = au1x_rtcmatch2_set_next_event, | 89 | .set_next_event = au1x_rtcmatch2_set_next_event, |
90 | .set_mode = au1x_rtcmatch2_set_mode, | 90 | .set_mode = au1x_rtcmatch2_set_mode, |
91 | .cpumask = CPU_MASK_ALL_PTR, | 91 | .cpumask = cpu_all_mask, |
92 | }; | 92 | }; |
93 | 93 | ||
94 | static struct irqaction au1x_rtcmatch2_irqaction = { | 94 | static struct irqaction au1x_rtcmatch2_irqaction = { |
diff --git a/arch/mips/dec/time.c b/arch/mips/dec/time.c index 463136e6685a..02f505f23c32 100644 --- a/arch/mips/dec/time.c +++ b/arch/mips/dec/time.c | |||
@@ -18,7 +18,7 @@ | |||
18 | #include <asm/dec/ioasic.h> | 18 | #include <asm/dec/ioasic.h> |
19 | #include <asm/dec/machtype.h> | 19 | #include <asm/dec/machtype.h> |
20 | 20 | ||
21 | unsigned long read_persistent_clock(void) | 21 | void read_persistent_clock(struct timespec *ts) |
22 | { | 22 | { |
23 | unsigned int year, mon, day, hour, min, sec, real_year; | 23 | unsigned int year, mon, day, hour, min, sec, real_year; |
24 | unsigned long flags; | 24 | unsigned long flags; |
@@ -53,7 +53,8 @@ unsigned long read_persistent_clock(void) | |||
53 | 53 | ||
54 | year += real_year - 72 + 2000; | 54 | year += real_year - 72 + 2000; |
55 | 55 | ||
56 | return mktime(year, mon, day, hour, min, sec); | 56 | ts->tv_sec = mktime(year, mon, day, hour, min, sec); |
57 | ts->tv_nsec = 0; | ||
57 | } | 58 | } |
58 | 59 | ||
59 | /* | 60 | /* |
diff --git a/arch/mips/include/asm/mach-ip27/topology.h b/arch/mips/include/asm/mach-ip27/topology.h index 230591707005..f6837422fe65 100644 --- a/arch/mips/include/asm/mach-ip27/topology.h +++ b/arch/mips/include/asm/mach-ip27/topology.h | |||
@@ -24,12 +24,10 @@ extern struct cpuinfo_ip27 sn_cpu_info[NR_CPUS]; | |||
24 | 24 | ||
25 | #define cpu_to_node(cpu) (sn_cpu_info[(cpu)].p_nodeid) | 25 | #define cpu_to_node(cpu) (sn_cpu_info[(cpu)].p_nodeid) |
26 | #define parent_node(node) (node) | 26 | #define parent_node(node) (node) |
27 | #define node_to_cpumask(node) (hub_data(node)->h_cpus) | ||
28 | #define cpumask_of_node(node) (&hub_data(node)->h_cpus) | 27 | #define cpumask_of_node(node) (&hub_data(node)->h_cpus) |
29 | struct pci_bus; | 28 | struct pci_bus; |
30 | extern int pcibus_to_node(struct pci_bus *); | 29 | extern int pcibus_to_node(struct pci_bus *); |
31 | 30 | ||
32 | #define pcibus_to_cpumask(bus) (cpu_online_map) | ||
33 | #define cpumask_of_pcibus(bus) (cpu_online_mask) | 31 | #define cpumask_of_pcibus(bus) (cpu_online_mask) |
34 | 32 | ||
35 | extern unsigned char __node_distances[MAX_COMPACT_NODES][MAX_COMPACT_NODES]; | 33 | extern unsigned char __node_distances[MAX_COMPACT_NODES][MAX_COMPACT_NODES]; |
diff --git a/arch/mips/include/asm/mman.h b/arch/mips/include/asm/mman.h index e4d6f1fb1cf7..a2250f390a29 100644 --- a/arch/mips/include/asm/mman.h +++ b/arch/mips/include/asm/mman.h | |||
@@ -46,6 +46,8 @@ | |||
46 | #define MAP_LOCKED 0x8000 /* pages are locked */ | 46 | #define MAP_LOCKED 0x8000 /* pages are locked */ |
47 | #define MAP_POPULATE 0x10000 /* populate (prefault) pagetables */ | 47 | #define MAP_POPULATE 0x10000 /* populate (prefault) pagetables */ |
48 | #define MAP_NONBLOCK 0x20000 /* do not block on IO */ | 48 | #define MAP_NONBLOCK 0x20000 /* do not block on IO */ |
49 | #define MAP_STACK 0x40000 /* give out an address that is best suited for process/thread stacks */ | ||
50 | #define MAP_HUGETLB 0x80000 /* create a huge page mapping */ | ||
49 | 51 | ||
50 | /* | 52 | /* |
51 | * Flags for msync | 53 | * Flags for msync |
@@ -71,6 +73,9 @@ | |||
71 | #define MADV_DONTFORK 10 /* don't inherit across fork */ | 73 | #define MADV_DONTFORK 10 /* don't inherit across fork */ |
72 | #define MADV_DOFORK 11 /* do inherit across fork */ | 74 | #define MADV_DOFORK 11 /* do inherit across fork */ |
73 | 75 | ||
76 | #define MADV_MERGEABLE 12 /* KSM may merge identical pages */ | ||
77 | #define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages */ | ||
78 | |||
74 | /* compatibility flags */ | 79 | /* compatibility flags */ |
75 | #define MAP_FILE 0 | 80 | #define MAP_FILE 0 |
76 | 81 | ||
diff --git a/arch/mips/include/asm/mmu_context.h b/arch/mips/include/asm/mmu_context.h index d3bea88d8744..d9743536a621 100644 --- a/arch/mips/include/asm/mmu_context.h +++ b/arch/mips/include/asm/mmu_context.h | |||
@@ -178,8 +178,8 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, | |||
178 | * Mark current->active_mm as not "active" anymore. | 178 | * Mark current->active_mm as not "active" anymore. |
179 | * We don't want to mislead possible IPI tlb flush routines. | 179 | * We don't want to mislead possible IPI tlb flush routines. |
180 | */ | 180 | */ |
181 | cpu_clear(cpu, prev->cpu_vm_mask); | 181 | cpumask_clear_cpu(cpu, mm_cpumask(prev)); |
182 | cpu_set(cpu, next->cpu_vm_mask); | 182 | cpumask_set_cpu(cpu, mm_cpumask(next)); |
183 | 183 | ||
184 | local_irq_restore(flags); | 184 | local_irq_restore(flags); |
185 | } | 185 | } |
@@ -235,8 +235,8 @@ activate_mm(struct mm_struct *prev, struct mm_struct *next) | |||
235 | TLBMISS_HANDLER_SETUP_PGD(next->pgd); | 235 | TLBMISS_HANDLER_SETUP_PGD(next->pgd); |
236 | 236 | ||
237 | /* mark mmu ownership change */ | 237 | /* mark mmu ownership change */ |
238 | cpu_clear(cpu, prev->cpu_vm_mask); | 238 | cpumask_clear_cpu(cpu, mm_cpumask(prev)); |
239 | cpu_set(cpu, next->cpu_vm_mask); | 239 | cpumask_set_cpu(cpu, mm_cpumask(next)); |
240 | 240 | ||
241 | local_irq_restore(flags); | 241 | local_irq_restore(flags); |
242 | } | 242 | } |
@@ -258,7 +258,7 @@ drop_mmu_context(struct mm_struct *mm, unsigned cpu) | |||
258 | 258 | ||
259 | local_irq_save(flags); | 259 | local_irq_save(flags); |
260 | 260 | ||
261 | if (cpu_isset(cpu, mm->cpu_vm_mask)) { | 261 | if (cpumask_test_cpu(cpu, mm_cpumask(mm))) { |
262 | get_new_mmu_context(mm, cpu); | 262 | get_new_mmu_context(mm, cpu); |
263 | #ifdef CONFIG_MIPS_MT_SMTC | 263 | #ifdef CONFIG_MIPS_MT_SMTC |
264 | /* See comments for similar code above */ | 264 | /* See comments for similar code above */ |
diff --git a/arch/mips/include/asm/pgtable.h b/arch/mips/include/asm/pgtable.h index 1a9f9b257551..d6eb6134abec 100644 --- a/arch/mips/include/asm/pgtable.h +++ b/arch/mips/include/asm/pgtable.h | |||
@@ -76,6 +76,16 @@ extern unsigned long zero_page_mask; | |||
76 | #define ZERO_PAGE(vaddr) \ | 76 | #define ZERO_PAGE(vaddr) \ |
77 | (virt_to_page((void *)(empty_zero_page + (((unsigned long)(vaddr)) & zero_page_mask)))) | 77 | (virt_to_page((void *)(empty_zero_page + (((unsigned long)(vaddr)) & zero_page_mask)))) |
78 | 78 | ||
79 | #define is_zero_pfn is_zero_pfn | ||
80 | static inline int is_zero_pfn(unsigned long pfn) | ||
81 | { | ||
82 | extern unsigned long zero_pfn; | ||
83 | unsigned long offset_from_zero_pfn = pfn - zero_pfn; | ||
84 | return offset_from_zero_pfn <= (zero_page_mask >> PAGE_SHIFT); | ||
85 | } | ||
86 | |||
87 | #define my_zero_pfn(addr) page_to_pfn(ZERO_PAGE(addr)) | ||
88 | |||
79 | extern void paging_init(void); | 89 | extern void paging_init(void); |
80 | 90 | ||
81 | /* | 91 | /* |
diff --git a/arch/mips/include/asm/smp-ops.h b/arch/mips/include/asm/smp-ops.h index fd545547b8aa..9e09af34c8a8 100644 --- a/arch/mips/include/asm/smp-ops.h +++ b/arch/mips/include/asm/smp-ops.h | |||
@@ -19,7 +19,7 @@ struct task_struct; | |||
19 | 19 | ||
20 | struct plat_smp_ops { | 20 | struct plat_smp_ops { |
21 | void (*send_ipi_single)(int cpu, unsigned int action); | 21 | void (*send_ipi_single)(int cpu, unsigned int action); |
22 | void (*send_ipi_mask)(cpumask_t mask, unsigned int action); | 22 | void (*send_ipi_mask)(const struct cpumask *mask, unsigned int action); |
23 | void (*init_secondary)(void); | 23 | void (*init_secondary)(void); |
24 | void (*smp_finish)(void); | 24 | void (*smp_finish)(void); |
25 | void (*cpus_done)(void); | 25 | void (*cpus_done)(void); |
diff --git a/arch/mips/include/asm/smp.h b/arch/mips/include/asm/smp.h index aaa2d4ab26dc..e15f11a09311 100644 --- a/arch/mips/include/asm/smp.h +++ b/arch/mips/include/asm/smp.h | |||
@@ -78,6 +78,6 @@ extern void play_dead(void); | |||
78 | extern asmlinkage void smp_call_function_interrupt(void); | 78 | extern asmlinkage void smp_call_function_interrupt(void); |
79 | 79 | ||
80 | extern void arch_send_call_function_single_ipi(int cpu); | 80 | extern void arch_send_call_function_single_ipi(int cpu); |
81 | extern void arch_send_call_function_ipi(cpumask_t mask); | 81 | extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); |
82 | 82 | ||
83 | #endif /* __ASM_SMP_H */ | 83 | #endif /* __ASM_SMP_H */ |
diff --git a/arch/mips/include/asm/unistd.h b/arch/mips/include/asm/unistd.h index e753a777949b..8c9dfa9e9018 100644 --- a/arch/mips/include/asm/unistd.h +++ b/arch/mips/include/asm/unistd.h | |||
@@ -353,7 +353,7 @@ | |||
353 | #define __NR_preadv (__NR_Linux + 330) | 353 | #define __NR_preadv (__NR_Linux + 330) |
354 | #define __NR_pwritev (__NR_Linux + 331) | 354 | #define __NR_pwritev (__NR_Linux + 331) |
355 | #define __NR_rt_tgsigqueueinfo (__NR_Linux + 332) | 355 | #define __NR_rt_tgsigqueueinfo (__NR_Linux + 332) |
356 | #define __NR_perf_counter_open (__NR_Linux + 333) | 356 | #define __NR_perf_event_open (__NR_Linux + 333) |
357 | #define __NR_accept4 (__NR_Linux + 334) | 357 | #define __NR_accept4 (__NR_Linux + 334) |
358 | 358 | ||
359 | /* | 359 | /* |
@@ -664,7 +664,7 @@ | |||
664 | #define __NR_preadv (__NR_Linux + 289) | 664 | #define __NR_preadv (__NR_Linux + 289) |
665 | #define __NR_pwritev (__NR_Linux + 290) | 665 | #define __NR_pwritev (__NR_Linux + 290) |
666 | #define __NR_rt_tgsigqueueinfo (__NR_Linux + 291) | 666 | #define __NR_rt_tgsigqueueinfo (__NR_Linux + 291) |
667 | #define __NR_perf_counter_open (__NR_Linux + 292) | 667 | #define __NR_perf_event_open (__NR_Linux + 292) |
668 | #define __NR_accept4 (__NR_Linux + 293) | 668 | #define __NR_accept4 (__NR_Linux + 293) |
669 | 669 | ||
670 | /* | 670 | /* |
@@ -979,7 +979,7 @@ | |||
979 | #define __NR_preadv (__NR_Linux + 293) | 979 | #define __NR_preadv (__NR_Linux + 293) |
980 | #define __NR_pwritev (__NR_Linux + 294) | 980 | #define __NR_pwritev (__NR_Linux + 294) |
981 | #define __NR_rt_tgsigqueueinfo (__NR_Linux + 295) | 981 | #define __NR_rt_tgsigqueueinfo (__NR_Linux + 295) |
982 | #define __NR_perf_counter_open (__NR_Linux + 296) | 982 | #define __NR_perf_event_open (__NR_Linux + 296) |
983 | #define __NR_accept4 (__NR_Linux + 297) | 983 | #define __NR_accept4 (__NR_Linux + 297) |
984 | 984 | ||
985 | /* | 985 | /* |
diff --git a/arch/mips/kernel/init_task.c b/arch/mips/kernel/init_task.c index 5b457a40c784..6d6ca5305895 100644 --- a/arch/mips/kernel/init_task.c +++ b/arch/mips/kernel/init_task.c | |||
@@ -21,9 +21,8 @@ static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); | |||
21 | * | 21 | * |
22 | * The things we do for performance.. | 22 | * The things we do for performance.. |
23 | */ | 23 | */ |
24 | union thread_union init_thread_union | 24 | union thread_union init_thread_union __init_task_data |
25 | __attribute__((__section__(".data.init_task"), | 25 | __attribute__((__aligned__(THREAD_SIZE))) = |
26 | __aligned__(THREAD_SIZE))) = | ||
27 | { INIT_THREAD_INFO(init_task) }; | 26 | { INIT_THREAD_INFO(init_task) }; |
28 | 27 | ||
29 | /* | 28 | /* |
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S index 7c2de4f091c4..fd2a9bb620d6 100644 --- a/arch/mips/kernel/scall32-o32.S +++ b/arch/mips/kernel/scall32-o32.S | |||
@@ -581,7 +581,7 @@ einval: li v0, -ENOSYS | |||
581 | sys sys_preadv 6 /* 4330 */ | 581 | sys sys_preadv 6 /* 4330 */ |
582 | sys sys_pwritev 6 | 582 | sys sys_pwritev 6 |
583 | sys sys_rt_tgsigqueueinfo 4 | 583 | sys sys_rt_tgsigqueueinfo 4 |
584 | sys sys_perf_counter_open 5 | 584 | sys sys_perf_event_open 5 |
585 | sys sys_accept4 4 | 585 | sys sys_accept4 4 |
586 | .endm | 586 | .endm |
587 | 587 | ||
diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S index b97b993846d6..18bf7f32c5e4 100644 --- a/arch/mips/kernel/scall64-64.S +++ b/arch/mips/kernel/scall64-64.S | |||
@@ -418,6 +418,6 @@ sys_call_table: | |||
418 | PTR sys_preadv | 418 | PTR sys_preadv |
419 | PTR sys_pwritev /* 5390 */ | 419 | PTR sys_pwritev /* 5390 */ |
420 | PTR sys_rt_tgsigqueueinfo | 420 | PTR sys_rt_tgsigqueueinfo |
421 | PTR sys_perf_counter_open | 421 | PTR sys_perf_event_open |
422 | PTR sys_accept4 | 422 | PTR sys_accept4 |
423 | .size sys_call_table,.-sys_call_table | 423 | .size sys_call_table,.-sys_call_table |
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S index 1a6ae124635b..6ebc07976694 100644 --- a/arch/mips/kernel/scall64-n32.S +++ b/arch/mips/kernel/scall64-n32.S | |||
@@ -416,6 +416,6 @@ EXPORT(sysn32_call_table) | |||
416 | PTR sys_preadv | 416 | PTR sys_preadv |
417 | PTR sys_pwritev | 417 | PTR sys_pwritev |
418 | PTR compat_sys_rt_tgsigqueueinfo /* 5295 */ | 418 | PTR compat_sys_rt_tgsigqueueinfo /* 5295 */ |
419 | PTR sys_perf_counter_open | 419 | PTR sys_perf_event_open |
420 | PTR sys_accept4 | 420 | PTR sys_accept4 |
421 | .size sysn32_call_table,.-sysn32_call_table | 421 | .size sysn32_call_table,.-sysn32_call_table |
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S index cd31087a651f..9bbf9775e0bd 100644 --- a/arch/mips/kernel/scall64-o32.S +++ b/arch/mips/kernel/scall64-o32.S | |||
@@ -536,6 +536,6 @@ sys_call_table: | |||
536 | PTR compat_sys_preadv /* 4330 */ | 536 | PTR compat_sys_preadv /* 4330 */ |
537 | PTR compat_sys_pwritev | 537 | PTR compat_sys_pwritev |
538 | PTR compat_sys_rt_tgsigqueueinfo | 538 | PTR compat_sys_rt_tgsigqueueinfo |
539 | PTR sys_perf_counter_open | 539 | PTR sys_perf_event_open |
540 | PTR sys_accept4 | 540 | PTR sys_accept4 |
541 | .size sys_call_table,.-sys_call_table | 541 | .size sys_call_table,.-sys_call_table |
diff --git a/arch/mips/kernel/smp-cmp.c b/arch/mips/kernel/smp-cmp.c index ad0ff5dc4d59..cc81771b882c 100644 --- a/arch/mips/kernel/smp-cmp.c +++ b/arch/mips/kernel/smp-cmp.c | |||
@@ -80,11 +80,11 @@ void cmp_send_ipi_single(int cpu, unsigned int action) | |||
80 | local_irq_restore(flags); | 80 | local_irq_restore(flags); |
81 | } | 81 | } |
82 | 82 | ||
83 | static void cmp_send_ipi_mask(cpumask_t mask, unsigned int action) | 83 | static void cmp_send_ipi_mask(const struct cpumask *mask, unsigned int action) |
84 | { | 84 | { |
85 | unsigned int i; | 85 | unsigned int i; |
86 | 86 | ||
87 | for_each_cpu_mask(i, mask) | 87 | for_each_cpu(i, mask) |
88 | cmp_send_ipi_single(i, action); | 88 | cmp_send_ipi_single(i, action); |
89 | } | 89 | } |
90 | 90 | ||
@@ -171,7 +171,7 @@ void __init cmp_smp_setup(void) | |||
171 | 171 | ||
172 | for (i = 1; i < NR_CPUS; i++) { | 172 | for (i = 1; i < NR_CPUS; i++) { |
173 | if (amon_cpu_avail(i)) { | 173 | if (amon_cpu_avail(i)) { |
174 | cpu_set(i, cpu_possible_map); | 174 | set_cpu_possible(i, true); |
175 | __cpu_number_map[i] = ++ncpu; | 175 | __cpu_number_map[i] = ++ncpu; |
176 | __cpu_logical_map[ncpu] = i; | 176 | __cpu_logical_map[ncpu] = i; |
177 | } | 177 | } |
diff --git a/arch/mips/kernel/smp-mt.c b/arch/mips/kernel/smp-mt.c index 6f7ee5ac46ee..43e7cdc5ded2 100644 --- a/arch/mips/kernel/smp-mt.c +++ b/arch/mips/kernel/smp-mt.c | |||
@@ -70,7 +70,7 @@ static unsigned int __init smvp_vpe_init(unsigned int tc, unsigned int mvpconf0, | |||
70 | write_vpe_c0_vpeconf0(tmp); | 70 | write_vpe_c0_vpeconf0(tmp); |
71 | 71 | ||
72 | /* Record this as available CPU */ | 72 | /* Record this as available CPU */ |
73 | cpu_set(tc, cpu_possible_map); | 73 | set_cpu_possible(tc, true); |
74 | __cpu_number_map[tc] = ++ncpu; | 74 | __cpu_number_map[tc] = ++ncpu; |
75 | __cpu_logical_map[ncpu] = tc; | 75 | __cpu_logical_map[ncpu] = tc; |
76 | } | 76 | } |
@@ -141,11 +141,11 @@ static void vsmp_send_ipi_single(int cpu, unsigned int action) | |||
141 | local_irq_restore(flags); | 141 | local_irq_restore(flags); |
142 | } | 142 | } |
143 | 143 | ||
144 | static void vsmp_send_ipi_mask(cpumask_t mask, unsigned int action) | 144 | static void vsmp_send_ipi_mask(const struct cpumask *mask, unsigned int action) |
145 | { | 145 | { |
146 | unsigned int i; | 146 | unsigned int i; |
147 | 147 | ||
148 | for_each_cpu_mask(i, mask) | 148 | for_each_cpu(i, mask) |
149 | vsmp_send_ipi_single(i, action); | 149 | vsmp_send_ipi_single(i, action); |
150 | } | 150 | } |
151 | 151 | ||
diff --git a/arch/mips/kernel/smp-up.c b/arch/mips/kernel/smp-up.c index 2508d55d68fd..00500fea2750 100644 --- a/arch/mips/kernel/smp-up.c +++ b/arch/mips/kernel/smp-up.c | |||
@@ -18,7 +18,8 @@ static void up_send_ipi_single(int cpu, unsigned int action) | |||
18 | panic(KERN_ERR "%s called", __func__); | 18 | panic(KERN_ERR "%s called", __func__); |
19 | } | 19 | } |
20 | 20 | ||
21 | static inline void up_send_ipi_mask(cpumask_t mask, unsigned int action) | 21 | static inline void up_send_ipi_mask(const struct cpumask *mask, |
22 | unsigned int action) | ||
22 | { | 23 | { |
23 | panic(KERN_ERR "%s called", __func__); | 24 | panic(KERN_ERR "%s called", __func__); |
24 | } | 25 | } |
diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c index 64668a93248b..4eb106c6a3ec 100644 --- a/arch/mips/kernel/smp.c +++ b/arch/mips/kernel/smp.c | |||
@@ -128,7 +128,7 @@ asmlinkage __cpuinit void start_secondary(void) | |||
128 | cpu_idle(); | 128 | cpu_idle(); |
129 | } | 129 | } |
130 | 130 | ||
131 | void arch_send_call_function_ipi(cpumask_t mask) | 131 | void arch_send_call_function_ipi_mask(const struct cpumask *mask) |
132 | { | 132 | { |
133 | mp_ops->send_ipi_mask(mask, SMP_CALL_FUNCTION); | 133 | mp_ops->send_ipi_mask(mask, SMP_CALL_FUNCTION); |
134 | } | 134 | } |
@@ -183,15 +183,15 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
183 | mp_ops->prepare_cpus(max_cpus); | 183 | mp_ops->prepare_cpus(max_cpus); |
184 | set_cpu_sibling_map(0); | 184 | set_cpu_sibling_map(0); |
185 | #ifndef CONFIG_HOTPLUG_CPU | 185 | #ifndef CONFIG_HOTPLUG_CPU |
186 | cpu_present_map = cpu_possible_map; | 186 | init_cpu_present(&cpu_possible_map); |
187 | #endif | 187 | #endif |
188 | } | 188 | } |
189 | 189 | ||
190 | /* preload SMP state for boot cpu */ | 190 | /* preload SMP state for boot cpu */ |
191 | void __devinit smp_prepare_boot_cpu(void) | 191 | void __devinit smp_prepare_boot_cpu(void) |
192 | { | 192 | { |
193 | cpu_set(0, cpu_possible_map); | 193 | set_cpu_possible(0, true); |
194 | cpu_set(0, cpu_online_map); | 194 | set_cpu_online(0, true); |
195 | cpu_set(0, cpu_callin_map); | 195 | cpu_set(0, cpu_callin_map); |
196 | } | 196 | } |
197 | 197 | ||
diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c index 1a466baf0edf..67153a0dc267 100644 --- a/arch/mips/kernel/smtc.c +++ b/arch/mips/kernel/smtc.c | |||
@@ -305,7 +305,7 @@ int __init smtc_build_cpu_map(int start_cpu_slot) | |||
305 | */ | 305 | */ |
306 | ntcs = ((read_c0_mvpconf0() & MVPCONF0_PTC) >> MVPCONF0_PTC_SHIFT) + 1; | 306 | ntcs = ((read_c0_mvpconf0() & MVPCONF0_PTC) >> MVPCONF0_PTC_SHIFT) + 1; |
307 | for (i=start_cpu_slot; i<NR_CPUS && i<ntcs; i++) { | 307 | for (i=start_cpu_slot; i<NR_CPUS && i<ntcs; i++) { |
308 | cpu_set(i, cpu_possible_map); | 308 | set_cpu_possible(i, true); |
309 | __cpu_number_map[i] = i; | 309 | __cpu_number_map[i] = i; |
310 | __cpu_logical_map[i] = i; | 310 | __cpu_logical_map[i] = i; |
311 | } | 311 | } |
@@ -525,8 +525,8 @@ void smtc_prepare_cpus(int cpus) | |||
525 | * Pull any physically present but unused TCs out of circulation. | 525 | * Pull any physically present but unused TCs out of circulation. |
526 | */ | 526 | */ |
527 | while (tc < (((val & MVPCONF0_PTC) >> MVPCONF0_PTC_SHIFT) + 1)) { | 527 | while (tc < (((val & MVPCONF0_PTC) >> MVPCONF0_PTC_SHIFT) + 1)) { |
528 | cpu_clear(tc, cpu_possible_map); | 528 | set_cpu_possible(tc, false); |
529 | cpu_clear(tc, cpu_present_map); | 529 | set_cpu_present(tc, false); |
530 | tc++; | 530 | tc++; |
531 | } | 531 | } |
532 | 532 | ||
diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S index 2769bed3d2af..9bf0e3df7c5a 100644 --- a/arch/mips/kernel/vmlinux.lds.S +++ b/arch/mips/kernel/vmlinux.lds.S | |||
@@ -10,7 +10,16 @@ PHDRS { | |||
10 | text PT_LOAD FLAGS(7); /* RWX */ | 10 | text PT_LOAD FLAGS(7); /* RWX */ |
11 | note PT_NOTE FLAGS(4); /* R__ */ | 11 | note PT_NOTE FLAGS(4); /* R__ */ |
12 | } | 12 | } |
13 | jiffies = JIFFIES; | 13 | |
14 | ifdef CONFIG_32BIT | ||
15 | ifdef CONFIG_CPU_LITTLE_ENDIAN | ||
16 | jiffies = jiffies_64; | ||
17 | else | ||
18 | jiffies = jiffies_64 + 4; | ||
19 | endif | ||
20 | else | ||
21 | jiffies = jiffies_64; | ||
22 | endif | ||
14 | 23 | ||
15 | SECTIONS | 24 | SECTIONS |
16 | { | 25 | { |
@@ -29,7 +38,7 @@ SECTIONS | |||
29 | /* . = 0xa800000000300000; */ | 38 | /* . = 0xa800000000300000; */ |
30 | . = 0xffffffff80300000; | 39 | . = 0xffffffff80300000; |
31 | #endif | 40 | #endif |
32 | . = LOADADDR; | 41 | . = VMLINUX_LOAD_ADDRESS; |
33 | /* read-only */ | 42 | /* read-only */ |
34 | _text = .; /* Text and read-only data */ | 43 | _text = .; /* Text and read-only data */ |
35 | .text : { | 44 | .text : { |
diff --git a/arch/mips/lasat/ds1603.c b/arch/mips/lasat/ds1603.c index 52cb1436a12a..c6fd96ff118d 100644 --- a/arch/mips/lasat/ds1603.c +++ b/arch/mips/lasat/ds1603.c | |||
@@ -135,7 +135,7 @@ static void rtc_end_op(void) | |||
135 | lasat_ndelay(1000); | 135 | lasat_ndelay(1000); |
136 | } | 136 | } |
137 | 137 | ||
138 | unsigned long read_persistent_clock(void) | 138 | void read_persistent_clock(struct timespec *ts) |
139 | { | 139 | { |
140 | unsigned long word; | 140 | unsigned long word; |
141 | unsigned long flags; | 141 | unsigned long flags; |
@@ -147,7 +147,8 @@ unsigned long read_persistent_clock(void) | |||
147 | rtc_end_op(); | 147 | rtc_end_op(); |
148 | spin_unlock_irqrestore(&rtc_lock, flags); | 148 | spin_unlock_irqrestore(&rtc_lock, flags); |
149 | 149 | ||
150 | return word; | 150 | ts->tv_sec = word; |
151 | ts->tv_nsec = 0; | ||
151 | } | 152 | } |
152 | 153 | ||
153 | int rtc_mips_set_mmss(unsigned long time) | 154 | int rtc_mips_set_mmss(unsigned long time) |
diff --git a/arch/mips/lasat/sysctl.c b/arch/mips/lasat/sysctl.c index 8f88886feb12..b3deed8db619 100644 --- a/arch/mips/lasat/sysctl.c +++ b/arch/mips/lasat/sysctl.c | |||
@@ -56,12 +56,12 @@ int sysctl_lasatstring(ctl_table *table, | |||
56 | 56 | ||
57 | 57 | ||
58 | /* And the same for proc */ | 58 | /* And the same for proc */ |
59 | int proc_dolasatstring(ctl_table *table, int write, struct file *filp, | 59 | int proc_dolasatstring(ctl_table *table, int write, |
60 | void *buffer, size_t *lenp, loff_t *ppos) | 60 | void *buffer, size_t *lenp, loff_t *ppos) |
61 | { | 61 | { |
62 | int r; | 62 | int r; |
63 | 63 | ||
64 | r = proc_dostring(table, write, filp, buffer, lenp, ppos); | 64 | r = proc_dostring(table, write, buffer, lenp, ppos); |
65 | if ((!write) || r) | 65 | if ((!write) || r) |
66 | return r; | 66 | return r; |
67 | 67 | ||
@@ -71,12 +71,12 @@ int proc_dolasatstring(ctl_table *table, int write, struct file *filp, | |||
71 | } | 71 | } |
72 | 72 | ||
73 | /* proc function to write EEPROM after changing int entry */ | 73 | /* proc function to write EEPROM after changing int entry */ |
74 | int proc_dolasatint(ctl_table *table, int write, struct file *filp, | 74 | int proc_dolasatint(ctl_table *table, int write, |
75 | void *buffer, size_t *lenp, loff_t *ppos) | 75 | void *buffer, size_t *lenp, loff_t *ppos) |
76 | { | 76 | { |
77 | int r; | 77 | int r; |
78 | 78 | ||
79 | r = proc_dointvec(table, write, filp, buffer, lenp, ppos); | 79 | r = proc_dointvec(table, write, buffer, lenp, ppos); |
80 | if ((!write) || r) | 80 | if ((!write) || r) |
81 | return r; | 81 | return r; |
82 | 82 | ||
@@ -89,18 +89,20 @@ int proc_dolasatint(ctl_table *table, int write, struct file *filp, | |||
89 | static int rtctmp; | 89 | static int rtctmp; |
90 | 90 | ||
91 | /* proc function to read/write RealTime Clock */ | 91 | /* proc function to read/write RealTime Clock */ |
92 | int proc_dolasatrtc(ctl_table *table, int write, struct file *filp, | 92 | int proc_dolasatrtc(ctl_table *table, int write, |
93 | void *buffer, size_t *lenp, loff_t *ppos) | 93 | void *buffer, size_t *lenp, loff_t *ppos) |
94 | { | 94 | { |
95 | struct timespec ts; | ||
95 | int r; | 96 | int r; |
96 | 97 | ||
97 | if (!write) { | 98 | if (!write) { |
98 | rtctmp = read_persistent_clock(); | 99 | read_persistent_clock(&ts); |
100 | rtctmp = ts.tv_sec; | ||
99 | /* check for time < 0 and set to 0 */ | 101 | /* check for time < 0 and set to 0 */ |
100 | if (rtctmp < 0) | 102 | if (rtctmp < 0) |
101 | rtctmp = 0; | 103 | rtctmp = 0; |
102 | } | 104 | } |
103 | r = proc_dointvec(table, write, filp, buffer, lenp, ppos); | 105 | r = proc_dointvec(table, write, buffer, lenp, ppos); |
104 | if (r) | 106 | if (r) |
105 | return r; | 107 | return r; |
106 | 108 | ||
@@ -134,9 +136,11 @@ int sysctl_lasat_rtc(ctl_table *table, | |||
134 | void *oldval, size_t *oldlenp, | 136 | void *oldval, size_t *oldlenp, |
135 | void *newval, size_t newlen) | 137 | void *newval, size_t newlen) |
136 | { | 138 | { |
139 | struct timespec ts; | ||
137 | int r; | 140 | int r; |
138 | 141 | ||
139 | rtctmp = read_persistent_clock(); | 142 | read_persistent_clock(&ts); |
143 | rtctmp = ts.tv_sec; | ||
140 | if (rtctmp < 0) | 144 | if (rtctmp < 0) |
141 | rtctmp = 0; | 145 | rtctmp = 0; |
142 | r = sysctl_intvec(table, oldval, oldlenp, newval, newlen); | 146 | r = sysctl_intvec(table, oldval, oldlenp, newval, newlen); |
@@ -150,7 +154,7 @@ int sysctl_lasat_rtc(ctl_table *table, | |||
150 | #endif | 154 | #endif |
151 | 155 | ||
152 | #ifdef CONFIG_INET | 156 | #ifdef CONFIG_INET |
153 | int proc_lasat_ip(ctl_table *table, int write, struct file *filp, | 157 | int proc_lasat_ip(ctl_table *table, int write, |
154 | void *buffer, size_t *lenp, loff_t *ppos) | 158 | void *buffer, size_t *lenp, loff_t *ppos) |
155 | { | 159 | { |
156 | unsigned int ip; | 160 | unsigned int ip; |
@@ -227,12 +231,12 @@ static int sysctl_lasat_prid(ctl_table *table, | |||
227 | return 0; | 231 | return 0; |
228 | } | 232 | } |
229 | 233 | ||
230 | int proc_lasat_prid(ctl_table *table, int write, struct file *filp, | 234 | int proc_lasat_prid(ctl_table *table, int write, |
231 | void *buffer, size_t *lenp, loff_t *ppos) | 235 | void *buffer, size_t *lenp, loff_t *ppos) |
232 | { | 236 | { |
233 | int r; | 237 | int r; |
234 | 238 | ||
235 | r = proc_dointvec(table, write, filp, buffer, lenp, ppos); | 239 | r = proc_dointvec(table, write, buffer, lenp, ppos); |
236 | if (r < 0) | 240 | if (r < 0) |
237 | return r; | 241 | return r; |
238 | if (write) { | 242 | if (write) { |
diff --git a/arch/mips/loongson/common/time.c b/arch/mips/loongson/common/time.c index b13d17174654..6e08c8270abe 100644 --- a/arch/mips/loongson/common/time.c +++ b/arch/mips/loongson/common/time.c | |||
@@ -21,7 +21,8 @@ void __init plat_time_init(void) | |||
21 | mips_hpt_frequency = cpu_clock_freq / 2; | 21 | mips_hpt_frequency = cpu_clock_freq / 2; |
22 | } | 22 | } |
23 | 23 | ||
24 | unsigned long read_persistent_clock(void) | 24 | void read_persistent_clock(struct timespec *ts) |
25 | { | 25 | { |
26 | return mc146818_get_cmos_time(); | 26 | ts->tv_sec = mc146818_get_cmos_time(); |
27 | ts->tv_nsec = 0; | ||
27 | } | 28 | } |
diff --git a/arch/mips/mipssim/sim_smtc.c b/arch/mips/mipssim/sim_smtc.c index d6e4f656ad14..5da30b6a65b7 100644 --- a/arch/mips/mipssim/sim_smtc.c +++ b/arch/mips/mipssim/sim_smtc.c | |||
@@ -43,11 +43,12 @@ static void ssmtc_send_ipi_single(int cpu, unsigned int action) | |||
43 | /* "CPU" may be TC of same VPE, VPE of same CPU, or different CPU */ | 43 | /* "CPU" may be TC of same VPE, VPE of same CPU, or different CPU */ |
44 | } | 44 | } |
45 | 45 | ||
46 | static inline void ssmtc_send_ipi_mask(cpumask_t mask, unsigned int action) | 46 | static inline void ssmtc_send_ipi_mask(const struct cpumask *mask, |
47 | unsigned int action) | ||
47 | { | 48 | { |
48 | unsigned int i; | 49 | unsigned int i; |
49 | 50 | ||
50 | for_each_cpu_mask(i, mask) | 51 | for_each_cpu(i, mask) |
51 | ssmtc_send_ipi_single(i, action); | 52 | ssmtc_send_ipi_single(i, action); |
52 | } | 53 | } |
53 | 54 | ||
diff --git a/arch/mips/mm/c-octeon.c b/arch/mips/mm/c-octeon.c index 10ab69f7183f..94e05e5733c1 100644 --- a/arch/mips/mm/c-octeon.c +++ b/arch/mips/mm/c-octeon.c | |||
@@ -79,7 +79,7 @@ static void octeon_flush_icache_all_cores(struct vm_area_struct *vma) | |||
79 | * cores it has been used on | 79 | * cores it has been used on |
80 | */ | 80 | */ |
81 | if (vma) | 81 | if (vma) |
82 | mask = vma->vm_mm->cpu_vm_mask; | 82 | mask = *mm_cpumask(vma->vm_mm); |
83 | else | 83 | else |
84 | mask = cpu_online_map; | 84 | mask = cpu_online_map; |
85 | cpu_clear(cpu, mask); | 85 | cpu_clear(cpu, mask); |
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c index 38c79c55b060..15aa1902a788 100644 --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c | |||
@@ -352,7 +352,6 @@ void __init paging_init(void) | |||
352 | free_area_init_nodes(max_zone_pfns); | 352 | free_area_init_nodes(max_zone_pfns); |
353 | } | 353 | } |
354 | 354 | ||
355 | static struct kcore_list kcore_mem, kcore_vmalloc; | ||
356 | #ifdef CONFIG_64BIT | 355 | #ifdef CONFIG_64BIT |
357 | static struct kcore_list kcore_kseg0; | 356 | static struct kcore_list kcore_kseg0; |
358 | #endif | 357 | #endif |
@@ -409,15 +408,13 @@ void __init mem_init(void) | |||
409 | if ((unsigned long) &_text > (unsigned long) CKSEG0) | 408 | if ((unsigned long) &_text > (unsigned long) CKSEG0) |
410 | /* The -4 is a hack so that user tools don't have to handle | 409 | /* The -4 is a hack so that user tools don't have to handle |
411 | the overflow. */ | 410 | the overflow. */ |
412 | kclist_add(&kcore_kseg0, (void *) CKSEG0, 0x80000000 - 4); | 411 | kclist_add(&kcore_kseg0, (void *) CKSEG0, |
412 | 0x80000000 - 4, KCORE_TEXT); | ||
413 | #endif | 413 | #endif |
414 | kclist_add(&kcore_mem, __va(0), max_low_pfn << PAGE_SHIFT); | ||
415 | kclist_add(&kcore_vmalloc, (void *)VMALLOC_START, | ||
416 | VMALLOC_END-VMALLOC_START); | ||
417 | 414 | ||
418 | printk(KERN_INFO "Memory: %luk/%luk available (%ldk kernel code, " | 415 | printk(KERN_INFO "Memory: %luk/%luk available (%ldk kernel code, " |
419 | "%ldk reserved, %ldk data, %ldk init, %ldk highmem)\n", | 416 | "%ldk reserved, %ldk data, %ldk init, %ldk highmem)\n", |
420 | (unsigned long) nr_free_pages() << (PAGE_SHIFT-10), | 417 | nr_free_pages() << (PAGE_SHIFT-10), |
421 | ram << (PAGE_SHIFT-10), | 418 | ram << (PAGE_SHIFT-10), |
422 | codesize >> 10, | 419 | codesize >> 10, |
423 | reservedpages << (PAGE_SHIFT-10), | 420 | reservedpages << (PAGE_SHIFT-10), |
diff --git a/arch/mips/mti-malta/malta-smtc.c b/arch/mips/mti-malta/malta-smtc.c index 499ffe5475df..192cfd2a539c 100644 --- a/arch/mips/mti-malta/malta-smtc.c +++ b/arch/mips/mti-malta/malta-smtc.c | |||
@@ -21,11 +21,11 @@ static void msmtc_send_ipi_single(int cpu, unsigned int action) | |||
21 | smtc_send_ipi(cpu, LINUX_SMP_IPI, action); | 21 | smtc_send_ipi(cpu, LINUX_SMP_IPI, action); |
22 | } | 22 | } |
23 | 23 | ||
24 | static void msmtc_send_ipi_mask(cpumask_t mask, unsigned int action) | 24 | static void msmtc_send_ipi_mask(const struct cpumask *mask, unsigned int action) |
25 | { | 25 | { |
26 | unsigned int i; | 26 | unsigned int i; |
27 | 27 | ||
28 | for_each_cpu_mask(i, mask) | 28 | for_each_cpu(i, mask) |
29 | msmtc_send_ipi_single(i, action); | 29 | msmtc_send_ipi_single(i, action); |
30 | } | 30 | } |
31 | 31 | ||
diff --git a/arch/mips/mti-malta/malta-time.c b/arch/mips/mti-malta/malta-time.c index 0b97d47691fc..3c6f190aa61c 100644 --- a/arch/mips/mti-malta/malta-time.c +++ b/arch/mips/mti-malta/malta-time.c | |||
@@ -100,9 +100,10 @@ static unsigned int __init estimate_cpu_frequency(void) | |||
100 | return count; | 100 | return count; |
101 | } | 101 | } |
102 | 102 | ||
103 | unsigned long read_persistent_clock(void) | 103 | void read_persistent_clock(struct timespec *ts) |
104 | { | 104 | { |
105 | return mc146818_get_cmos_time(); | 105 | ts->tv_sec = mc146818_get_cmos_time(); |
106 | ts->tv_nsec = 0; | ||
106 | } | 107 | } |
107 | 108 | ||
108 | static void __init plat_perf_setup(void) | 109 | static void __init plat_perf_setup(void) |
diff --git a/arch/mips/pmc-sierra/yosemite/setup.c b/arch/mips/pmc-sierra/yosemite/setup.c index 2d3c0dca275d..3498ac9c35af 100644 --- a/arch/mips/pmc-sierra/yosemite/setup.c +++ b/arch/mips/pmc-sierra/yosemite/setup.c | |||
@@ -70,7 +70,7 @@ void __init bus_error_init(void) | |||
70 | } | 70 | } |
71 | 71 | ||
72 | 72 | ||
73 | unsigned long read_persistent_clock(void) | 73 | void read_persistent_clock(struct timespec *ts) |
74 | { | 74 | { |
75 | unsigned int year, month, day, hour, min, sec; | 75 | unsigned int year, month, day, hour, min, sec; |
76 | unsigned long flags; | 76 | unsigned long flags; |
@@ -92,7 +92,8 @@ unsigned long read_persistent_clock(void) | |||
92 | m48t37_base->control = 0x00; | 92 | m48t37_base->control = 0x00; |
93 | spin_unlock_irqrestore(&rtc_lock, flags); | 93 | spin_unlock_irqrestore(&rtc_lock, flags); |
94 | 94 | ||
95 | return mktime(year, month, day, hour, min, sec); | 95 | ts->tv_sec = mktime(year, month, day, hour, min, sec); |
96 | ts->tv_nsec = 0; | ||
96 | } | 97 | } |
97 | 98 | ||
98 | int rtc_mips_set_time(unsigned long tim) | 99 | int rtc_mips_set_time(unsigned long tim) |
diff --git a/arch/mips/pmc-sierra/yosemite/smp.c b/arch/mips/pmc-sierra/yosemite/smp.c index 8ace27716232..326fe7a392e8 100644 --- a/arch/mips/pmc-sierra/yosemite/smp.c +++ b/arch/mips/pmc-sierra/yosemite/smp.c | |||
@@ -97,11 +97,11 @@ static void yos_send_ipi_single(int cpu, unsigned int action) | |||
97 | } | 97 | } |
98 | } | 98 | } |
99 | 99 | ||
100 | static void yos_send_ipi_mask(cpumask_t mask, unsigned int action) | 100 | static void yos_send_ipi_mask(const struct cpumask *mask, unsigned int action) |
101 | { | 101 | { |
102 | unsigned int i; | 102 | unsigned int i; |
103 | 103 | ||
104 | for_each_cpu_mask(i, mask) | 104 | for_each_cpu(i, mask) |
105 | yos_send_ipi_single(i, action); | 105 | yos_send_ipi_single(i, action); |
106 | } | 106 | } |
107 | 107 | ||
diff --git a/arch/mips/sgi-ip27/ip27-memory.c b/arch/mips/sgi-ip27/ip27-memory.c index 060d853d7b35..f61c164d1e67 100644 --- a/arch/mips/sgi-ip27/ip27-memory.c +++ b/arch/mips/sgi-ip27/ip27-memory.c | |||
@@ -421,7 +421,7 @@ static void __init node_mem_init(cnodeid_t node) | |||
421 | 421 | ||
422 | /* | 422 | /* |
423 | * A node with nothing. We use it to avoid any special casing in | 423 | * A node with nothing. We use it to avoid any special casing in |
424 | * node_to_cpumask | 424 | * cpumask_of_node |
425 | */ | 425 | */ |
426 | static struct node_data null_node = { | 426 | static struct node_data null_node = { |
427 | .hub = { | 427 | .hub = { |
diff --git a/arch/mips/sgi-ip27/ip27-smp.c b/arch/mips/sgi-ip27/ip27-smp.c index cbcd7eb83bd1..9aa8f2951df6 100644 --- a/arch/mips/sgi-ip27/ip27-smp.c +++ b/arch/mips/sgi-ip27/ip27-smp.c | |||
@@ -165,11 +165,11 @@ static void ip27_send_ipi_single(int destid, unsigned int action) | |||
165 | REMOTE_HUB_SEND_INTR(COMPACT_TO_NASID_NODEID(cpu_to_node(destid)), irq); | 165 | REMOTE_HUB_SEND_INTR(COMPACT_TO_NASID_NODEID(cpu_to_node(destid)), irq); |
166 | } | 166 | } |
167 | 167 | ||
168 | static void ip27_send_ipi_mask(cpumask_t mask, unsigned int action) | 168 | static void ip27_send_ipi(const struct cpumask *mask, unsigned int action) |
169 | { | 169 | { |
170 | unsigned int i; | 170 | unsigned int i; |
171 | 171 | ||
172 | for_each_cpu_mask(i, mask) | 172 | for_each_cpu(i, mask) |
173 | ip27_send_ipi_single(i, action); | 173 | ip27_send_ipi_single(i, action); |
174 | } | 174 | } |
175 | 175 | ||
diff --git a/arch/mips/sibyte/bcm1480/smp.c b/arch/mips/sibyte/bcm1480/smp.c index 314691648c97..47b347c992ea 100644 --- a/arch/mips/sibyte/bcm1480/smp.c +++ b/arch/mips/sibyte/bcm1480/smp.c | |||
@@ -82,11 +82,12 @@ static void bcm1480_send_ipi_single(int cpu, unsigned int action) | |||
82 | __raw_writeq((((u64)action)<< 48), mailbox_0_set_regs[cpu]); | 82 | __raw_writeq((((u64)action)<< 48), mailbox_0_set_regs[cpu]); |
83 | } | 83 | } |
84 | 84 | ||
85 | static void bcm1480_send_ipi_mask(cpumask_t mask, unsigned int action) | 85 | static void bcm1480_send_ipi_mask(const struct cpumask *mask, |
86 | unsigned int action) | ||
86 | { | 87 | { |
87 | unsigned int i; | 88 | unsigned int i; |
88 | 89 | ||
89 | for_each_cpu_mask(i, mask) | 90 | for_each_cpu(i, mask) |
90 | bcm1480_send_ipi_single(i, action); | 91 | bcm1480_send_ipi_single(i, action); |
91 | } | 92 | } |
92 | 93 | ||
diff --git a/arch/mips/sibyte/sb1250/smp.c b/arch/mips/sibyte/sb1250/smp.c index cad14003b84f..c00a5cb1128d 100644 --- a/arch/mips/sibyte/sb1250/smp.c +++ b/arch/mips/sibyte/sb1250/smp.c | |||
@@ -70,11 +70,12 @@ static void sb1250_send_ipi_single(int cpu, unsigned int action) | |||
70 | __raw_writeq((((u64)action) << 48), mailbox_set_regs[cpu]); | 70 | __raw_writeq((((u64)action) << 48), mailbox_set_regs[cpu]); |
71 | } | 71 | } |
72 | 72 | ||
73 | static inline void sb1250_send_ipi_mask(cpumask_t mask, unsigned int action) | 73 | static inline void sb1250_send_ipi_mask(const struct cpumask *mask, |
74 | unsigned int action) | ||
74 | { | 75 | { |
75 | unsigned int i; | 76 | unsigned int i; |
76 | 77 | ||
77 | for_each_cpu_mask(i, mask) | 78 | for_each_cpu(i, mask) |
78 | sb1250_send_ipi_single(i, action); | 79 | sb1250_send_ipi_single(i, action); |
79 | } | 80 | } |
80 | 81 | ||
diff --git a/arch/mips/sibyte/swarm/setup.c b/arch/mips/sibyte/swarm/setup.c index 672e45d495a9..623ffc933c4c 100644 --- a/arch/mips/sibyte/swarm/setup.c +++ b/arch/mips/sibyte/swarm/setup.c | |||
@@ -87,19 +87,26 @@ enum swarm_rtc_type { | |||
87 | 87 | ||
88 | enum swarm_rtc_type swarm_rtc_type; | 88 | enum swarm_rtc_type swarm_rtc_type; |
89 | 89 | ||
90 | unsigned long read_persistent_clock(void) | 90 | void read_persistent_clock(struct timespec *ts) |
91 | { | 91 | { |
92 | unsigned long sec; | ||
93 | |||
92 | switch (swarm_rtc_type) { | 94 | switch (swarm_rtc_type) { |
93 | case RTC_XICOR: | 95 | case RTC_XICOR: |
94 | return xicor_get_time(); | 96 | sec = xicor_get_time(); |
97 | break; | ||
95 | 98 | ||
96 | case RTC_M4LT81: | 99 | case RTC_M4LT81: |
97 | return m41t81_get_time(); | 100 | sec = m41t81_get_time(); |
101 | break; | ||
98 | 102 | ||
99 | case RTC_NONE: | 103 | case RTC_NONE: |
100 | default: | 104 | default: |
101 | return mktime(2000, 1, 1, 0, 0, 0); | 105 | sec = mktime(2000, 1, 1, 0, 0, 0); |
106 | break; | ||
102 | } | 107 | } |
108 | ts->tv_sec = sec; | ||
109 | tv->tv_nsec = 0; | ||
103 | } | 110 | } |
104 | 111 | ||
105 | int rtc_mips_set_time(unsigned long sec) | 112 | int rtc_mips_set_time(unsigned long sec) |
diff --git a/arch/mips/sni/time.c b/arch/mips/sni/time.c index 0d9ec1a5c24a..62df6a598e0a 100644 --- a/arch/mips/sni/time.c +++ b/arch/mips/sni/time.c | |||
@@ -182,7 +182,8 @@ void __init plat_time_init(void) | |||
182 | setup_pit_timer(); | 182 | setup_pit_timer(); |
183 | } | 183 | } |
184 | 184 | ||
185 | unsigned long read_persistent_clock(void) | 185 | void read_persistent_clock(struct timespec *ts) |
186 | { | 186 | { |
187 | return -1; | 187 | ts->tv_sec = -1; |
188 | ts->tv_nsec = 0; | ||
188 | } | 189 | } |