aboutsummaryrefslogtreecommitdiffstats
path: root/arch/xtensa
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2010-02-21 14:17:22 -0500
committerThomas Gleixner <tglx@linutronix.de>2010-02-21 14:17:22 -0500
commit5f854cfc024622e4aae14d7cf422f6ff86278688 (patch)
tree426e77c6f6e4939c80440bf1fabcb020e3ee145b /arch/xtensa
parentcc24da0742870f152ddf1002aa39dfcd83f7cf9c (diff)
parent4ec62b2b2e6bd7ddef7b6cea6e5db7b5578a6532 (diff)
Forward to 2.6.33-rc8
Merge branch 'linus' into rt/head with a pile of conflicts. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/xtensa')
-rw-r--r--arch/xtensa/include/asm/asm-offsets.h1
-rw-r--r--arch/xtensa/include/asm/cacheflush.h1
-rw-r--r--arch/xtensa/include/asm/elf.h1
-rw-r--r--arch/xtensa/include/asm/mman.h5
-rw-r--r--arch/xtensa/include/asm/socket.h5
-rw-r--r--arch/xtensa/include/asm/syscall.h3
-rw-r--r--arch/xtensa/include/asm/unistd.h8
-rw-r--r--arch/xtensa/kernel/Makefile3
-rw-r--r--arch/xtensa/kernel/head.S2
-rw-r--r--arch/xtensa/kernel/init_task.c5
-rw-r--r--arch/xtensa/kernel/irq.c4
-rw-r--r--arch/xtensa/kernel/syscall.c43
-rw-r--r--arch/xtensa/kernel/time.c10
-rw-r--r--arch/xtensa/kernel/vmlinux.lds.S88
-rw-r--r--arch/xtensa/mm/init.c2
-rw-r--r--arch/xtensa/platforms/iss/console.c2
-rw-r--r--arch/xtensa/platforms/iss/network.c2
17 files changed, 50 insertions, 135 deletions
diff --git a/arch/xtensa/include/asm/asm-offsets.h b/arch/xtensa/include/asm/asm-offsets.h
new file mode 100644
index 000000000000..d370ee36a182
--- /dev/null
+++ b/arch/xtensa/include/asm/asm-offsets.h
@@ -0,0 +1 @@
#include <generated/asm-offsets.h>
diff --git a/arch/xtensa/include/asm/cacheflush.h b/arch/xtensa/include/asm/cacheflush.h
index b7b8fbe47c77..a508f2f73bd7 100644
--- a/arch/xtensa/include/asm/cacheflush.h
+++ b/arch/xtensa/include/asm/cacheflush.h
@@ -101,6 +101,7 @@ static inline void __invalidate_icache_page_alias(unsigned long virt,
101#define flush_cache_vmap(start,end) flush_cache_all() 101#define flush_cache_vmap(start,end) flush_cache_all()
102#define flush_cache_vunmap(start,end) flush_cache_all() 102#define flush_cache_vunmap(start,end) flush_cache_all()
103 103
104#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
104extern void flush_dcache_page(struct page*); 105extern void flush_dcache_page(struct page*);
105extern void flush_cache_range(struct vm_area_struct*, ulong, ulong); 106extern void flush_cache_range(struct vm_area_struct*, ulong, ulong);
106extern void flush_cache_page(struct vm_area_struct*, unsigned long, unsigned long); 107extern void flush_cache_page(struct vm_area_struct*, unsigned long, unsigned long);
diff --git a/arch/xtensa/include/asm/elf.h b/arch/xtensa/include/asm/elf.h
index c3f53e755ca5..5eb6d695e987 100644
--- a/arch/xtensa/include/asm/elf.h
+++ b/arch/xtensa/include/asm/elf.h
@@ -123,7 +123,6 @@ extern void xtensa_elf_core_copy_regs (xtensa_gregset_t *, struct pt_regs *);
123#define ELF_CLASS ELFCLASS32 123#define ELF_CLASS ELFCLASS32
124#define ELF_ARCH EM_XTENSA 124#define ELF_ARCH EM_XTENSA
125 125
126#define USE_ELF_CORE_DUMP
127#define ELF_EXEC_PAGESIZE PAGE_SIZE 126#define ELF_EXEC_PAGESIZE PAGE_SIZE
128 127
129/* 128/*
diff --git a/arch/xtensa/include/asm/mman.h b/arch/xtensa/include/asm/mman.h
index 9b92620c8a1e..fca4db425f6e 100644
--- a/arch/xtensa/include/asm/mman.h
+++ b/arch/xtensa/include/asm/mman.h
@@ -53,6 +53,8 @@
53#define MAP_LOCKED 0x8000 /* pages are locked */ 53#define MAP_LOCKED 0x8000 /* pages are locked */
54#define MAP_POPULATE 0x10000 /* populate (prefault) pagetables */ 54#define MAP_POPULATE 0x10000 /* populate (prefault) pagetables */
55#define MAP_NONBLOCK 0x20000 /* do not block on IO */ 55#define MAP_NONBLOCK 0x20000 /* do not block on IO */
56#define MAP_STACK 0x40000 /* give out an address that is best suited for process/thread stacks */
57#define MAP_HUGETLB 0x80000 /* create a huge page mapping */
56 58
57/* 59/*
58 * Flags for msync 60 * Flags for msync
@@ -78,6 +80,9 @@
78#define MADV_DONTFORK 10 /* don't inherit across fork */ 80#define MADV_DONTFORK 10 /* don't inherit across fork */
79#define MADV_DOFORK 11 /* do inherit across fork */ 81#define MADV_DOFORK 11 /* do inherit across fork */
80 82
83#define MADV_MERGEABLE 12 /* KSM may merge identical pages */
84#define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages */
85
81/* compatibility flags */ 86/* compatibility flags */
82#define MAP_FILE 0 87#define MAP_FILE 0
83 88
diff --git a/arch/xtensa/include/asm/socket.h b/arch/xtensa/include/asm/socket.h
index dd1a7a4a1cea..cbdf2ffaacff 100644
--- a/arch/xtensa/include/asm/socket.h
+++ b/arch/xtensa/include/asm/socket.h
@@ -68,4 +68,9 @@
68#define SO_TIMESTAMPING 37 68#define SO_TIMESTAMPING 37
69#define SCM_TIMESTAMPING SO_TIMESTAMPING 69#define SCM_TIMESTAMPING SO_TIMESTAMPING
70 70
71#define SO_PROTOCOL 38
72#define SO_DOMAIN 39
73
74#define SO_RXQ_OVFL 40
75
71#endif /* _XTENSA_SOCKET_H */ 76#endif /* _XTENSA_SOCKET_H */
diff --git a/arch/xtensa/include/asm/syscall.h b/arch/xtensa/include/asm/syscall.h
index 05cebf8f62b1..efcf33b92e4c 100644
--- a/arch/xtensa/include/asm/syscall.h
+++ b/arch/xtensa/include/asm/syscall.h
@@ -12,9 +12,6 @@ struct pt_regs;
12struct sigaction; 12struct sigaction;
13asmlinkage long xtensa_execve(char*, char**, char**, struct pt_regs*); 13asmlinkage long xtensa_execve(char*, char**, char**, struct pt_regs*);
14asmlinkage long xtensa_clone(unsigned long, unsigned long, struct pt_regs*); 14asmlinkage long xtensa_clone(unsigned long, unsigned long, struct pt_regs*);
15asmlinkage long xtensa_pipe(int __user *);
16asmlinkage long xtensa_mmap2(unsigned long, unsigned long, unsigned long,
17 unsigned long, unsigned long, unsigned long);
18asmlinkage long xtensa_ptrace(long, long, long, long); 15asmlinkage long xtensa_ptrace(long, long, long, long);
19asmlinkage long xtensa_sigreturn(struct pt_regs*); 16asmlinkage long xtensa_sigreturn(struct pt_regs*);
20asmlinkage long xtensa_rt_sigreturn(struct pt_regs*); 17asmlinkage long xtensa_rt_sigreturn(struct pt_regs*);
diff --git a/arch/xtensa/include/asm/unistd.h b/arch/xtensa/include/asm/unistd.h
index c092c8fbb2cf..528042c2951e 100644
--- a/arch/xtensa/include/asm/unistd.h
+++ b/arch/xtensa/include/asm/unistd.h
@@ -94,7 +94,7 @@ __SYSCALL( 35, sys_readlink, 3)
94#define __NR_mknod 36 94#define __NR_mknod 36
95__SYSCALL( 36, sys_mknod, 3) 95__SYSCALL( 36, sys_mknod, 3)
96#define __NR_pipe 37 96#define __NR_pipe 37
97__SYSCALL( 37, xtensa_pipe, 1) 97__SYSCALL( 37, sys_pipe, 1)
98#define __NR_unlink 38 98#define __NR_unlink 38
99__SYSCALL( 38, sys_unlink, 1) 99__SYSCALL( 38, sys_unlink, 1)
100#define __NR_rmdir 39 100#define __NR_rmdir 39
@@ -189,7 +189,7 @@ __SYSCALL( 79, sys_fremovexattr, 2)
189/* File Map / Shared Memory Operations */ 189/* File Map / Shared Memory Operations */
190 190
191#define __NR_mmap2 80 191#define __NR_mmap2 80
192__SYSCALL( 80, xtensa_mmap2, 6) 192__SYSCALL( 80, sys_mmap_pgoff, 6)
193#define __NR_munmap 81 193#define __NR_munmap 81
194__SYSCALL( 81, sys_munmap, 2) 194__SYSCALL( 81, sys_munmap, 2)
195#define __NR_mprotect 82 195#define __NR_mprotect 82
@@ -681,8 +681,10 @@ __SYSCALL(304, sys_signalfd, 3)
681__SYSCALL(305, sys_ni_syscall, 0) 681__SYSCALL(305, sys_ni_syscall, 0)
682#define __NR_eventfd 306 682#define __NR_eventfd 306
683__SYSCALL(306, sys_eventfd, 1) 683__SYSCALL(306, sys_eventfd, 1)
684#define __NR_recvmmsg 307
685__SYSCALL(307, sys_recvmmsg, 5)
684 686
685#define __NR_syscall_count 307 687#define __NR_syscall_count 308
686 688
687/* 689/*
688 * sysxtensa syscall handler 690 * sysxtensa syscall handler
diff --git a/arch/xtensa/kernel/Makefile b/arch/xtensa/kernel/Makefile
index fe3186de6a33..6f56d95f2c1e 100644
--- a/arch/xtensa/kernel/Makefile
+++ b/arch/xtensa/kernel/Makefile
@@ -27,7 +27,8 @@ sed-y = -e 's/(\(\.[a-z]*it\|\.ref\|\)\.text)/(\1.literal \1.text)/g' \
27 -e 's/(\(\.text\.[a-z]*\))/(\1.literal \1)/g' 27 -e 's/(\(\.text\.[a-z]*\))/(\1.literal \1)/g'
28 28
29quiet_cmd__cpp_lds_S = LDS $@ 29quiet_cmd__cpp_lds_S = LDS $@
30 cmd__cpp_lds_S = $(CPP) $(cpp_flags) -D__ASSEMBLY__ $< | sed $(sed-y) >$@ 30 cmd__cpp_lds_S = $(CPP) $(cpp_flags) -P -C -Uxtensa -D__ASSEMBLY__ $< \
31 | sed $(sed-y) >$@
31 32
32$(obj)/vmlinux.lds: $(src)/vmlinux.lds.S FORCE 33$(obj)/vmlinux.lds: $(src)/vmlinux.lds.S FORCE
33 $(call if_changed_dep,_cpp_lds_S) 34 $(call if_changed_dep,_cpp_lds_S)
diff --git a/arch/xtensa/kernel/head.S b/arch/xtensa/kernel/head.S
index d9ddc1ba761c..d215adcfd4ea 100644
--- a/arch/xtensa/kernel/head.S
+++ b/arch/xtensa/kernel/head.S
@@ -235,7 +235,7 @@ should_never_return:
235 * BSS section 235 * BSS section
236 */ 236 */
237 237
238.section ".bss.page_aligned", "w" 238__PAGE_ALIGNED_BSS
239#ifdef CONFIG_MMU 239#ifdef CONFIG_MMU
240ENTRY(swapper_pg_dir) 240ENTRY(swapper_pg_dir)
241 .fill PAGE_SIZE, 1, 0 241 .fill PAGE_SIZE, 1, 0
diff --git a/arch/xtensa/kernel/init_task.c b/arch/xtensa/kernel/init_task.c
index c4302f0e4ba0..cd122fb7e48a 100644
--- a/arch/xtensa/kernel/init_task.c
+++ b/arch/xtensa/kernel/init_task.c
@@ -23,9 +23,8 @@
23 23
24static struct signal_struct init_signals = INIT_SIGNALS(init_signals); 24static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
25static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); 25static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
26union thread_union init_thread_union 26union thread_union init_thread_union __init_task_data =
27 __attribute__((__section__(".data.init_task"))) = 27 { INIT_THREAD_INFO(init_task) };
28{ INIT_THREAD_INFO(init_task) };
29 28
30struct task_struct init_task = INIT_TASK(init_task); 29struct task_struct init_task = INIT_TASK(init_task);
31 30
diff --git a/arch/xtensa/kernel/irq.c b/arch/xtensa/kernel/irq.c
index bb599c305033..8cd38484e130 100644
--- a/arch/xtensa/kernel/irq.c
+++ b/arch/xtensa/kernel/irq.c
@@ -90,7 +90,7 @@ int show_interrupts(struct seq_file *p, void *v)
90 } 90 }
91 91
92 if (i < NR_IRQS) { 92 if (i < NR_IRQS) {
93 atomic_spin_lock_irqsave(&irq_desc[i].lock, flags); 93 raw_spin_lock_irqsave(&irq_desc[i].lock, flags);
94 action = irq_desc[i].action; 94 action = irq_desc[i].action;
95 if (!action) 95 if (!action)
96 goto skip; 96 goto skip;
@@ -109,7 +109,7 @@ int show_interrupts(struct seq_file *p, void *v)
109 109
110 seq_putc(p, '\n'); 110 seq_putc(p, '\n');
111skip: 111skip:
112 atomic_spin_unlock_irqrestore(&irq_desc[i].lock, flags); 112 raw_spin_unlock_irqrestore(&irq_desc[i].lock, flags);
113 } else if (i == NR_IRQS) { 113 } else if (i == NR_IRQS) {
114 seq_printf(p, "NMI: "); 114 seq_printf(p, "NMI: ");
115 for_each_online_cpu(j) 115 for_each_online_cpu(j)
diff --git a/arch/xtensa/kernel/syscall.c b/arch/xtensa/kernel/syscall.c
index ac15ecbdf919..816e6d0d686c 100644
--- a/arch/xtensa/kernel/syscall.c
+++ b/arch/xtensa/kernel/syscall.c
@@ -39,49 +39,6 @@ syscall_t sys_call_table[__NR_syscall_count] /* FIXME __cacheline_aligned */= {
39#include <asm/unistd.h> 39#include <asm/unistd.h>
40}; 40};
41 41
42/*
43 * xtensa_pipe() is the normal C calling standard for creating a pipe. It's not
44 * the way unix traditional does this, though.
45 */
46
47asmlinkage long xtensa_pipe(int __user *userfds)
48{
49 int fd[2];
50 int error;
51
52 error = do_pipe_flags(fd, 0);
53 if (!error) {
54 if (copy_to_user(userfds, fd, 2 * sizeof(int)))
55 error = -EFAULT;
56 }
57 return error;
58}
59
60
61asmlinkage long xtensa_mmap2(unsigned long addr, unsigned long len,
62 unsigned long prot, unsigned long flags,
63 unsigned long fd, unsigned long pgoff)
64{
65 int error = -EBADF;
66 struct file * file = NULL;
67
68 flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
69 if (!(flags & MAP_ANONYMOUS)) {
70 file = fget(fd);
71 if (!file)
72 goto out;
73 }
74
75 down_write(&current->mm->mmap_sem);
76 error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff);
77 up_write(&current->mm->mmap_sem);
78
79 if (file)
80 fput(file);
81out:
82 return error;
83}
84
85asmlinkage long xtensa_shmat(int shmid, char __user *shmaddr, int shmflg) 42asmlinkage long xtensa_shmat(int shmid, char __user *shmaddr, int shmflg)
86{ 43{
87 unsigned long ret; 44 unsigned long ret;
diff --git a/arch/xtensa/kernel/time.c b/arch/xtensa/kernel/time.c
index 8848120d291b..e8184d5aeedb 100644
--- a/arch/xtensa/kernel/time.c
+++ b/arch/xtensa/kernel/time.c
@@ -13,6 +13,7 @@
13 */ 13 */
14 14
15#include <linux/errno.h> 15#include <linux/errno.h>
16#include <linux/sched.h>
16#include <linux/time.h> 17#include <linux/time.h>
17#include <linux/clocksource.h> 18#include <linux/clocksource.h>
18#include <linux/interrupt.h> 19#include <linux/interrupt.h>
@@ -59,9 +60,8 @@ static struct irqaction timer_irqaction = {
59 60
60void __init time_init(void) 61void __init time_init(void)
61{ 62{
62 xtime.tv_nsec = 0; 63 /* FIXME: xtime&wall_to_monotonic are set in timekeeping_init. */
63 xtime.tv_sec = read_persistent_clock(); 64 read_persistent_clock(&xtime);
64
65 set_normalized_timespec(&wall_to_monotonic, 65 set_normalized_timespec(&wall_to_monotonic,
66 -xtime.tv_sec, -xtime.tv_nsec); 66 -xtime.tv_sec, -xtime.tv_nsec);
67 67
@@ -101,7 +101,7 @@ again:
101 update_process_times(user_mode(get_irq_regs())); 101 update_process_times(user_mode(get_irq_regs()));
102#endif 102#endif
103 103
104 write_seqlock(&xtime_lock); 104 write_raw_seqlock(&xtime_lock);
105 105
106 do_timer(1); /* Linux handler in kernel/timer.c */ 106 do_timer(1); /* Linux handler in kernel/timer.c */
107 107
@@ -110,7 +110,7 @@ again:
110 next += CCOUNT_PER_JIFFY; 110 next += CCOUNT_PER_JIFFY;
111 set_linux_timer(next); 111 set_linux_timer(next);
112 112
113 write_sequnlock(&xtime_lock); 113 write_raw_sequnlock(&xtime_lock);
114 } 114 }
115 115
116 /* Allow platform to do something useful (Wdog). */ 116 /* Allow platform to do something useful (Wdog). */
diff --git a/arch/xtensa/kernel/vmlinux.lds.S b/arch/xtensa/kernel/vmlinux.lds.S
index 41c159cd872f..9b526154c9ba 100644
--- a/arch/xtensa/kernel/vmlinux.lds.S
+++ b/arch/xtensa/kernel/vmlinux.lds.S
@@ -15,6 +15,8 @@
15 */ 15 */
16 16
17#include <asm-generic/vmlinux.lds.h> 17#include <asm-generic/vmlinux.lds.h>
18#include <asm/page.h>
19#include <asm/thread_info.h>
18 20
19#include <variant/core.h> 21#include <variant/core.h>
20#include <platform/hardware.h> 22#include <platform/hardware.h>
@@ -107,41 +109,18 @@ SECTIONS
107 109
108 .fixup : { *(.fixup) } 110 .fixup : { *(.fixup) }
109 111
110 . = ALIGN(16); 112 EXCEPTION_TABLE(16)
111
112 __ex_table : {
113 __start___ex_table = .;
114 *(__ex_table)
115 __stop___ex_table = .;
116 }
117
118 /* Data section */ 113 /* Data section */
119 114
120 . = ALIGN(XCHAL_ICACHE_LINESIZE);
121 _fdata = .; 115 _fdata = .;
122 .data : 116 RW_DATA_SECTION(XCHAL_ICACHE_LINESIZE, PAGE_SIZE, THREAD_SIZE)
123 {
124 DATA_DATA
125 CONSTRUCTORS
126 . = ALIGN(XCHAL_ICACHE_LINESIZE);
127 *(.data.cacheline_aligned)
128 }
129
130 _edata = .; 117 _edata = .;
131 118
132 /* The initial task */
133 . = ALIGN(8192);
134 .data.init_task : { *(.data.init_task) }
135
136 /* Initialization code and data: */ 119 /* Initialization code and data: */
137 120
138 . = ALIGN(1 << 12); 121 . = ALIGN(PAGE_SIZE);
139 __init_begin = .; 122 __init_begin = .;
140 .init.text : { 123 INIT_TEXT_SECTION(PAGE_SIZE)
141 _sinittext = .;
142 INIT_TEXT
143 _einittext = .;
144 }
145 124
146 .init.data : 125 .init.data :
147 { 126 {
@@ -168,36 +147,15 @@ SECTIONS
168 .DebugInterruptVector.text); 147 .DebugInterruptVector.text);
169 148
170 __boot_reloc_table_end = ABSOLUTE(.) ; 149 __boot_reloc_table_end = ABSOLUTE(.) ;
171 }
172 150
173 . = ALIGN(XCHAL_ICACHE_LINESIZE); 151 INIT_SETUP(XCHAL_ICACHE_LINESIZE)
174 152 INIT_CALLS
175 __setup_start = .; 153 CON_INITCALL
176 .init.setup : { *(.init.setup) } 154 SECURITY_INITCALL
177 __setup_end = .; 155 INIT_RAM_FS
178
179 __initcall_start = .;
180 .initcall.init : {
181 INITCALLS
182 } 156 }
183 __initcall_end = .;
184
185 __con_initcall_start = .;
186 .con_initcall.init : { *(.con_initcall.init) }
187 __con_initcall_end = .;
188
189 SECURITY_INIT
190
191
192#ifdef CONFIG_BLK_DEV_INITRD
193 . = ALIGN(4096);
194 __initramfs_start =.;
195 .init.ramfs : { *(.init.ramfs) }
196 __initramfs_end = .;
197#endif
198
199 PERCPU(4096)
200 157
158 PERCPU(PAGE_SIZE)
201 159
202 /* We need this dummy segment here */ 160 /* We need this dummy segment here */
203 161
@@ -252,16 +210,11 @@ SECTIONS
252 .DoubleExceptionVector.literal) 210 .DoubleExceptionVector.literal)
253 211
254 . = (LOADADDR( .DoubleExceptionVector.text ) + SIZEOF( .DoubleExceptionVector.text ) + 3) & ~ 3; 212 . = (LOADADDR( .DoubleExceptionVector.text ) + SIZEOF( .DoubleExceptionVector.text ) + 3) & ~ 3;
255 . = ALIGN(1 << 12); 213 . = ALIGN(PAGE_SIZE);
256 214
257 __init_end = .; 215 __init_end = .;
258 216
259 . = ALIGN(8192); 217 BSS_SECTION(0, 8192, 0)
260
261 /* BSS section */
262 _bss_start = .;
263 .bss : { *(.bss.page_aligned) *(.bss) }
264 _bss_end = .;
265 218
266 _end = .; 219 _end = .;
267 220
@@ -280,15 +233,6 @@ SECTIONS
280 *(.ResetVector.text) 233 *(.ResetVector.text)
281 } 234 }
282 235
283 /* Sections to be discarded */
284 /DISCARD/ :
285 {
286 *(.exit.literal)
287 EXIT_TEXT
288 EXIT_DATA
289 *(.exitcall.exit)
290 }
291
292 .xt.lit : { *(.xt.lit) } 236 .xt.lit : { *(.xt.lit) }
293 .xt.prop : { *(.xt.prop) } 237 .xt.prop : { *(.xt.prop) }
294 238
@@ -321,4 +265,8 @@ SECTIONS
321 *(.xt.lit) 265 *(.xt.lit)
322 *(.gnu.linkonce.p*) 266 *(.gnu.linkonce.p*)
323 } 267 }
268
269 /* Sections to be discarded */
270 DISCARDS
271 /DISCARD/ : { *(.exit.literal) }
324} 272}
diff --git a/arch/xtensa/mm/init.c b/arch/xtensa/mm/init.c
index 427e14fa43c5..cdbc27ca9665 100644
--- a/arch/xtensa/mm/init.c
+++ b/arch/xtensa/mm/init.c
@@ -203,7 +203,7 @@ void __init mem_init(void)
203 203
204 printk("Memory: %luk/%luk available (%ldk kernel code, %ldk reserved, " 204 printk("Memory: %luk/%luk available (%ldk kernel code, %ldk reserved, "
205 "%ldk data, %ldk init %ldk highmem)\n", 205 "%ldk data, %ldk init %ldk highmem)\n",
206 (unsigned long) nr_free_pages() << (PAGE_SHIFT-10), 206 nr_free_pages() << (PAGE_SHIFT-10),
207 ram << (PAGE_SHIFT-10), 207 ram << (PAGE_SHIFT-10),
208 codesize >> 10, 208 codesize >> 10,
209 reservedpages << (PAGE_SHIFT-10), 209 reservedpages << (PAGE_SHIFT-10),
diff --git a/arch/xtensa/platforms/iss/console.c b/arch/xtensa/platforms/iss/console.c
index 4c559cf7da2d..e60a1f57022f 100644
--- a/arch/xtensa/platforms/iss/console.c
+++ b/arch/xtensa/platforms/iss/console.c
@@ -196,7 +196,7 @@ static const struct file_operations rs_proc_fops = {
196 .release = single_release, 196 .release = single_release,
197}; 197};
198 198
199static struct tty_operations serial_ops = { 199static const struct tty_operations serial_ops = {
200 .open = rs_open, 200 .open = rs_open,
201 .close = rs_close, 201 .close = rs_close,
202 .write = rs_write, 202 .write = rs_write,
diff --git a/arch/xtensa/platforms/iss/network.c b/arch/xtensa/platforms/iss/network.c
index edad4156d89a..2f0b86b37cf9 100644
--- a/arch/xtensa/platforms/iss/network.c
+++ b/arch/xtensa/platforms/iss/network.c
@@ -545,7 +545,7 @@ static int iss_net_start_xmit(struct sk_buff *skb, struct net_device *dev)
545 spin_unlock_irqrestore(&lp->lock, flags); 545 spin_unlock_irqrestore(&lp->lock, flags);
546 546
547 dev_kfree_skb(skb); 547 dev_kfree_skb(skb);
548 return 0; 548 return NETDEV_TX_OK;
549} 549}
550 550
551 551