diff options
author | David S. Miller <davem@davemloft.net> | 2013-07-03 17:50:41 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-07-03 17:55:13 -0400 |
commit | 0c1072ae0242fbdffd9a0bba36e7a7033d287f9c (patch) | |
tree | e0f4dbdbf5078d4a707911177e7bdc17a70bdce5 /arch/mn10300 | |
parent | c50cd357887acf9fd7af3a5d492911bd825555a2 (diff) | |
parent | 8bb495e3f02401ee6f76d1b1d77f3ac9f079e376 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/ethernet/freescale/fec_main.c
drivers/net/ethernet/renesas/sh_eth.c
net/ipv4/gre.c
The GRE conflict is between a bug fix (kfree_skb --> kfree_skb_list)
and the splitting of the gre.c code into seperate files.
The FEC conflict was two sets of changes adding ethtool support code
in an "!CONFIG_M5272" CPP protected block.
Finally the sh_eth.c conflict was between one commit add bits set
in the .eesr_err_check mask whilst another commit removed the
.tx_error_check member and assignments.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/mn10300')
-rw-r--r-- | arch/mn10300/include/asm/irqflags.h | 5 | ||||
-rw-r--r-- | arch/mn10300/include/asm/smp.h | 4 | ||||
-rw-r--r-- | arch/mn10300/include/asm/uaccess.h | 2 | ||||
-rw-r--r-- | arch/mn10300/kernel/setup.c | 54 |
4 files changed, 27 insertions, 38 deletions
diff --git a/arch/mn10300/include/asm/irqflags.h b/arch/mn10300/include/asm/irqflags.h index 678f68d5f37b..8730c0a3c37d 100644 --- a/arch/mn10300/include/asm/irqflags.h +++ b/arch/mn10300/include/asm/irqflags.h | |||
@@ -13,9 +13,8 @@ | |||
13 | #define _ASM_IRQFLAGS_H | 13 | #define _ASM_IRQFLAGS_H |
14 | 14 | ||
15 | #include <asm/cpu-regs.h> | 15 | #include <asm/cpu-regs.h> |
16 | #ifndef __ASSEMBLY__ | 16 | /* linux/smp.h <- linux/irqflags.h needs asm/smp.h first */ |
17 | #include <linux/smp.h> | 17 | #include <asm/smp.h> |
18 | #endif | ||
19 | 18 | ||
20 | /* | 19 | /* |
21 | * interrupt control | 20 | * interrupt control |
diff --git a/arch/mn10300/include/asm/smp.h b/arch/mn10300/include/asm/smp.h index 6745dbe64944..56c42417d428 100644 --- a/arch/mn10300/include/asm/smp.h +++ b/arch/mn10300/include/asm/smp.h | |||
@@ -24,6 +24,7 @@ | |||
24 | #ifndef __ASSEMBLY__ | 24 | #ifndef __ASSEMBLY__ |
25 | #include <linux/threads.h> | 25 | #include <linux/threads.h> |
26 | #include <linux/cpumask.h> | 26 | #include <linux/cpumask.h> |
27 | #include <linux/thread_info.h> | ||
27 | #endif | 28 | #endif |
28 | 29 | ||
29 | #ifdef CONFIG_SMP | 30 | #ifdef CONFIG_SMP |
@@ -85,7 +86,7 @@ extern cpumask_t cpu_boot_map; | |||
85 | extern void smp_init_cpus(void); | 86 | extern void smp_init_cpus(void); |
86 | extern void smp_cache_interrupt(void); | 87 | extern void smp_cache_interrupt(void); |
87 | extern void send_IPI_allbutself(int irq); | 88 | extern void send_IPI_allbutself(int irq); |
88 | extern int smp_nmi_call_function(smp_call_func_t func, void *info, int wait); | 89 | extern int smp_nmi_call_function(void (*func)(void *), void *info, int wait); |
89 | 90 | ||
90 | extern void arch_send_call_function_single_ipi(int cpu); | 91 | extern void arch_send_call_function_single_ipi(int cpu); |
91 | extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); | 92 | extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); |
@@ -100,6 +101,7 @@ extern void __cpu_die(unsigned int cpu); | |||
100 | #ifndef __ASSEMBLY__ | 101 | #ifndef __ASSEMBLY__ |
101 | 102 | ||
102 | static inline void smp_init_cpus(void) {} | 103 | static inline void smp_init_cpus(void) {} |
104 | #define raw_smp_processor_id() 0 | ||
103 | 105 | ||
104 | #endif /* __ASSEMBLY__ */ | 106 | #endif /* __ASSEMBLY__ */ |
105 | #endif /* CONFIG_SMP */ | 107 | #endif /* CONFIG_SMP */ |
diff --git a/arch/mn10300/include/asm/uaccess.h b/arch/mn10300/include/asm/uaccess.h index 780560b330d9..d7966e0f7698 100644 --- a/arch/mn10300/include/asm/uaccess.h +++ b/arch/mn10300/include/asm/uaccess.h | |||
@@ -161,7 +161,7 @@ struct __large_struct { unsigned long buf[100]; }; | |||
161 | 161 | ||
162 | #define __get_user_check(x, ptr, size) \ | 162 | #define __get_user_check(x, ptr, size) \ |
163 | ({ \ | 163 | ({ \ |
164 | const __typeof__(ptr) __guc_ptr = (ptr); \ | 164 | const __typeof__(*(ptr))* __guc_ptr = (ptr); \ |
165 | int _e; \ | 165 | int _e; \ |
166 | if (likely(__access_ok((unsigned long) __guc_ptr, (size)))) \ | 166 | if (likely(__access_ok((unsigned long) __guc_ptr, (size)))) \ |
167 | _e = __get_user_nocheck((x), __guc_ptr, (size)); \ | 167 | _e = __get_user_nocheck((x), __guc_ptr, (size)); \ |
diff --git a/arch/mn10300/kernel/setup.c b/arch/mn10300/kernel/setup.c index 33c3bd1e5c6d..ebac9c11f796 100644 --- a/arch/mn10300/kernel/setup.c +++ b/arch/mn10300/kernel/setup.c | |||
@@ -38,6 +38,7 @@ struct mn10300_cpuinfo boot_cpu_data; | |||
38 | /* For PCI or other memory-mapped resources */ | 38 | /* For PCI or other memory-mapped resources */ |
39 | unsigned long pci_mem_start = 0x18000000; | 39 | unsigned long pci_mem_start = 0x18000000; |
40 | 40 | ||
41 | static char __initdata cmd_line[COMMAND_LINE_SIZE]; | ||
41 | char redboot_command_line[COMMAND_LINE_SIZE] = | 42 | char redboot_command_line[COMMAND_LINE_SIZE] = |
42 | "console=ttyS0,115200 root=/dev/mtdblock3 rw"; | 43 | "console=ttyS0,115200 root=/dev/mtdblock3 rw"; |
43 | 44 | ||
@@ -74,45 +75,19 @@ static const char *const mn10300_cputypes[] = { | |||
74 | }; | 75 | }; |
75 | 76 | ||
76 | /* | 77 | /* |
77 | * | 78 | * Pick out the memory size. We look for mem=size, |
79 | * where size is "size[KkMm]" | ||
78 | */ | 80 | */ |
79 | static void __init parse_mem_cmdline(char **cmdline_p) | 81 | static int __init early_mem(char *p) |
80 | { | 82 | { |
81 | char *from, *to, c; | 83 | memory_size = memparse(p, &p); |
82 | |||
83 | /* save unparsed command line copy for /proc/cmdline */ | ||
84 | strcpy(boot_command_line, redboot_command_line); | ||
85 | |||
86 | /* see if there's an explicit memory size option */ | ||
87 | from = redboot_command_line; | ||
88 | to = redboot_command_line; | ||
89 | c = ' '; | ||
90 | |||
91 | for (;;) { | ||
92 | if (c == ' ' && !memcmp(from, "mem=", 4)) { | ||
93 | if (to != redboot_command_line) | ||
94 | to--; | ||
95 | memory_size = memparse(from + 4, &from); | ||
96 | } | ||
97 | |||
98 | c = *(from++); | ||
99 | if (!c) | ||
100 | break; | ||
101 | |||
102 | *(to++) = c; | ||
103 | } | ||
104 | |||
105 | *to = '\0'; | ||
106 | *cmdline_p = redboot_command_line; | ||
107 | 84 | ||
108 | if (memory_size == 0) | 85 | if (memory_size == 0) |
109 | panic("Memory size not known\n"); | 86 | panic("Memory size not known\n"); |
110 | 87 | ||
111 | memory_end = (unsigned long) CONFIG_KERNEL_RAM_BASE_ADDRESS + | 88 | return 0; |
112 | memory_size; | ||
113 | if (memory_end > phys_memory_end) | ||
114 | memory_end = phys_memory_end; | ||
115 | } | 89 | } |
90 | early_param("mem", early_mem); | ||
116 | 91 | ||
117 | /* | 92 | /* |
118 | * architecture specific setup | 93 | * architecture specific setup |
@@ -125,7 +100,20 @@ void __init setup_arch(char **cmdline_p) | |||
125 | cpu_init(); | 100 | cpu_init(); |
126 | unit_setup(); | 101 | unit_setup(); |
127 | smp_init_cpus(); | 102 | smp_init_cpus(); |
128 | parse_mem_cmdline(cmdline_p); | 103 | |
104 | /* save unparsed command line copy for /proc/cmdline */ | ||
105 | strlcpy(boot_command_line, redboot_command_line, COMMAND_LINE_SIZE); | ||
106 | |||
107 | /* populate cmd_line too for later use, preserving boot_command_line */ | ||
108 | strlcpy(cmd_line, boot_command_line, COMMAND_LINE_SIZE); | ||
109 | *cmdline_p = cmd_line; | ||
110 | |||
111 | parse_early_param(); | ||
112 | |||
113 | memory_end = (unsigned long) CONFIG_KERNEL_RAM_BASE_ADDRESS + | ||
114 | memory_size; | ||
115 | if (memory_end > phys_memory_end) | ||
116 | memory_end = phys_memory_end; | ||
129 | 117 | ||
130 | init_mm.start_code = (unsigned long)&_text; | 118 | init_mm.start_code = (unsigned long)&_text; |
131 | init_mm.end_code = (unsigned long) &_etext; | 119 | init_mm.end_code = (unsigned long) &_etext; |