aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-03-03 15:57:38 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-03-03 15:57:38 -0500
commit6977c6fc77b864dc1851e100c8528c2f3ed5bd9b (patch)
treed43b5e8e33a01ebf7a4f356342c700e4f46ec8e3
parent8fd5e7a2d9574b3cac1c9264ad1aed3b613ed6fe (diff)
parentcf8e18ea2f8be26e8f9e44ed677d25f558ca301a (diff)
Merge branch 'fixes-for-3.9-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
Pull second round of PARISC updates from Helge Deller: "The most important fix in this branch is the switch of io_setup, io_getevents and io_submit syscalls to use the available compat syscalls when running 32bit userspace on 64bit kernel. Other than that it's mostly removal of compile warnings." * 'fixes-for-3.9-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: parisc: fix redefinition of SET_PERSONALITY parisc: do not install modules when installing kernel parisc: fix compile warnings triggered by atomic_sub(sizeof(),v) parisc: check return value of down_interruptible() in hp_sdc_rtc.c parisc: avoid unitialized variable warning in pa_memcpy() parisc: remove unused variable 'compat_val' parisc: switch to compat_functions of io_setup, io_getevents and io_submit parisc: select ARCH_WANT_FRAME_POINTERS
-rw-r--r--arch/parisc/Kconfig1
-rw-r--r--arch/parisc/Makefile4
-rw-r--r--arch/parisc/include/asm/atomic.h4
-rw-r--r--arch/parisc/kernel/binfmt_elf32.c1
-rw-r--r--arch/parisc/kernel/signal.c1
-rw-r--r--arch/parisc/kernel/syscall_table.S6
-rw-r--r--arch/parisc/lib/memcpy.c2
-rw-r--r--drivers/input/misc/hp_sdc_rtc.c15
8 files changed, 21 insertions, 13 deletions
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index a2a47d9d6a22..a9ff712a2864 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -5,6 +5,7 @@ config PARISC
5 select HAVE_FUNCTION_TRACER if 64BIT 5 select HAVE_FUNCTION_TRACER if 64BIT
6 select HAVE_FUNCTION_GRAPH_TRACER if 64BIT 6 select HAVE_FUNCTION_GRAPH_TRACER if 64BIT
7 select HAVE_FUNCTION_TRACE_MCOUNT_TEST if 64BIT 7 select HAVE_FUNCTION_TRACE_MCOUNT_TEST if 64BIT
8 select ARCH_WANT_FRAME_POINTERS
8 select RTC_CLASS 9 select RTC_CLASS
9 select RTC_DRV_GENERIC 10 select RTC_DRV_GENERIC
10 select INIT_ALL_POSSIBLE 11 select INIT_ALL_POSSIBLE
diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile
index ed9a14ccd066..01d95e2f0581 100644
--- a/arch/parisc/Makefile
+++ b/arch/parisc/Makefile
@@ -113,12 +113,10 @@ palo: vmlinux
113# Shorthands for known targets not supported by parisc, use vmlinux as default 113# Shorthands for known targets not supported by parisc, use vmlinux as default
114Image zImage bzImage: vmlinux 114Image zImage bzImage: vmlinux
115 115
116kernel_install: vmlinux 116install: vmlinux
117 sh $(src)/arch/parisc/install.sh \ 117 sh $(src)/arch/parisc/install.sh \
118 $(KERNELRELEASE) $< System.map "$(INSTALL_PATH)" 118 $(KERNELRELEASE) $< System.map "$(INSTALL_PATH)"
119 119
120install: kernel_install modules_install
121
122CLEAN_FILES += lifimage 120CLEAN_FILES += lifimage
123MRPROPER_FILES += palo.conf 121MRPROPER_FILES += palo.conf
124 122
diff --git a/arch/parisc/include/asm/atomic.h b/arch/parisc/include/asm/atomic.h
index af9cf30ed474..f38e1984b242 100644
--- a/arch/parisc/include/asm/atomic.h
+++ b/arch/parisc/include/asm/atomic.h
@@ -115,8 +115,8 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
115} 115}
116 116
117 117
118#define atomic_add(i,v) ((void)(__atomic_add_return( (i),(v)))) 118#define atomic_add(i,v) ((void)(__atomic_add_return( (i),(v))))
119#define atomic_sub(i,v) ((void)(__atomic_add_return(-(i),(v)))) 119#define atomic_sub(i,v) ((void)(__atomic_add_return(-((int) (i)),(v))))
120#define atomic_inc(v) ((void)(__atomic_add_return( 1,(v)))) 120#define atomic_inc(v) ((void)(__atomic_add_return( 1,(v))))
121#define atomic_dec(v) ((void)(__atomic_add_return( -1,(v)))) 121#define atomic_dec(v) ((void)(__atomic_add_return( -1,(v))))
122 122
diff --git a/arch/parisc/kernel/binfmt_elf32.c b/arch/parisc/kernel/binfmt_elf32.c
index f61692d2b557..00dc66f9c2ba 100644
--- a/arch/parisc/kernel/binfmt_elf32.c
+++ b/arch/parisc/kernel/binfmt_elf32.c
@@ -85,6 +85,7 @@ struct elf_prpsinfo32
85 * could set a processor dependent flag in the thread_struct. 85 * could set a processor dependent flag in the thread_struct.
86 */ 86 */
87 87
88#undef SET_PERSONALITY
88#define SET_PERSONALITY(ex) \ 89#define SET_PERSONALITY(ex) \
89 set_thread_flag(TIF_32BIT); \ 90 set_thread_flag(TIF_32BIT); \
90 current->thread.map_base = DEFAULT_MAP_BASE32; \ 91 current->thread.map_base = DEFAULT_MAP_BASE32; \
diff --git a/arch/parisc/kernel/signal.c b/arch/parisc/kernel/signal.c
index 98e9e7126565..940188d1942c 100644
--- a/arch/parisc/kernel/signal.c
+++ b/arch/parisc/kernel/signal.c
@@ -242,7 +242,6 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
242 unsigned long haddr, sigframe_size; 242 unsigned long haddr, sigframe_size;
243 int err = 0; 243 int err = 0;
244#ifdef CONFIG_64BIT 244#ifdef CONFIG_64BIT
245 compat_int_t compat_val;
246 struct compat_rt_sigframe __user * compat_frame; 245 struct compat_rt_sigframe __user * compat_frame;
247 compat_sigset_t compat_set; 246 compat_sigset_t compat_set;
248#endif 247#endif
diff --git a/arch/parisc/kernel/syscall_table.S b/arch/parisc/kernel/syscall_table.S
index 884b91b028f0..f57dc137b8dd 100644
--- a/arch/parisc/kernel/syscall_table.S
+++ b/arch/parisc/kernel/syscall_table.S
@@ -310,10 +310,10 @@
310 ENTRY_COMP(sched_getaffinity) 310 ENTRY_COMP(sched_getaffinity)
311 ENTRY_SAME(ni_syscall) /* set_thread_area */ 311 ENTRY_SAME(ni_syscall) /* set_thread_area */
312 ENTRY_SAME(ni_syscall) /* get_thread_area */ 312 ENTRY_SAME(ni_syscall) /* get_thread_area */
313 ENTRY_SAME(io_setup) /* 215 */ 313 ENTRY_COMP(io_setup) /* 215 */
314 ENTRY_SAME(io_destroy) 314 ENTRY_SAME(io_destroy)
315 ENTRY_SAME(io_getevents) 315 ENTRY_COMP(io_getevents)
316 ENTRY_SAME(io_submit) 316 ENTRY_COMP(io_submit)
317 ENTRY_SAME(io_cancel) 317 ENTRY_SAME(io_cancel)
318 ENTRY_SAME(alloc_hugepages) /* 220 */ 318 ENTRY_SAME(alloc_hugepages) /* 220 */
319 ENTRY_SAME(free_hugepages) 319 ENTRY_SAME(free_hugepages)
diff --git a/arch/parisc/lib/memcpy.c b/arch/parisc/lib/memcpy.c
index 1dbca5c31b3c..a49cc812df8a 100644
--- a/arch/parisc/lib/memcpy.c
+++ b/arch/parisc/lib/memcpy.c
@@ -68,7 +68,7 @@
68DECLARE_PER_CPU(struct exception_data, exception_data); 68DECLARE_PER_CPU(struct exception_data, exception_data);
69 69
70#define preserve_branch(label) do { \ 70#define preserve_branch(label) do { \
71 volatile int dummy; \ 71 volatile int dummy = 0; \
72 /* The following branch is never taken, it's just here to */ \ 72 /* The following branch is never taken, it's just here to */ \
73 /* prevent gcc from optimizing away our exception code. */ \ 73 /* prevent gcc from optimizing away our exception code. */ \
74 if (unlikely(dummy != dummy)) \ 74 if (unlikely(dummy != dummy)) \
diff --git a/drivers/input/misc/hp_sdc_rtc.c b/drivers/input/misc/hp_sdc_rtc.c
index 0b4f54265f62..2e3334b8f82d 100644
--- a/drivers/input/misc/hp_sdc_rtc.c
+++ b/drivers/input/misc/hp_sdc_rtc.c
@@ -109,7 +109,9 @@ static int hp_sdc_rtc_do_read_bbrtc (struct rtc_time *rtctm)
109 109
110 if (hp_sdc_enqueue_transaction(&t)) return -1; 110 if (hp_sdc_enqueue_transaction(&t)) return -1;
111 111
112 down_interruptible(&tsem); /* Put ourselves to sleep for results. */ 112 /* Put ourselves to sleep for results. */
113 if (WARN_ON(down_interruptible(&tsem)))
114 return -1;
113 115
114 /* Check for nonpresence of BBRTC */ 116 /* Check for nonpresence of BBRTC */
115 if (!((tseq[83] | tseq[90] | tseq[69] | tseq[76] | 117 if (!((tseq[83] | tseq[90] | tseq[69] | tseq[76] |
@@ -176,11 +178,16 @@ static int64_t hp_sdc_rtc_read_i8042timer (uint8_t loadcmd, int numreg)
176 t.seq = tseq; 178 t.seq = tseq;
177 t.act.semaphore = &i8042tregs; 179 t.act.semaphore = &i8042tregs;
178 180
179 down_interruptible(&i8042tregs); /* Sleep if output regs in use. */ 181 /* Sleep if output regs in use. */
182 if (WARN_ON(down_interruptible(&i8042tregs)))
183 return -1;
180 184
181 if (hp_sdc_enqueue_transaction(&t)) return -1; 185 if (hp_sdc_enqueue_transaction(&t)) return -1;
182 186
183 down_interruptible(&i8042tregs); /* Sleep until results come back. */ 187 /* Sleep until results come back. */
188 if (WARN_ON(down_interruptible(&i8042tregs)))
189 return -1;
190
184 up(&i8042tregs); 191 up(&i8042tregs);
185 192
186 return (tseq[5] | 193 return (tseq[5] |
@@ -276,6 +283,7 @@ static inline int hp_sdc_rtc_read_ct(struct timeval *res) {
276} 283}
277 284
278 285
286#if 0 /* not used yet */
279/* Set the i8042 real-time clock */ 287/* Set the i8042 real-time clock */
280static int hp_sdc_rtc_set_rt (struct timeval *setto) 288static int hp_sdc_rtc_set_rt (struct timeval *setto)
281{ 289{
@@ -386,6 +394,7 @@ static int hp_sdc_rtc_set_i8042timer (struct timeval *setto, uint8_t setcmd)
386 } 394 }
387 return 0; 395 return 0;
388} 396}
397#endif
389 398
390static ssize_t hp_sdc_rtc_read(struct file *file, char __user *buf, 399static ssize_t hp_sdc_rtc_read(struct file *file, char __user *buf,
391 size_t count, loff_t *ppos) { 400 size_t count, loff_t *ppos) {