Commit 6977c6fc authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'fixes-for-3.9-latest' of...

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
parents 8fd5e7a2 cf8e18ea
...@@ -5,6 +5,7 @@ config PARISC ...@@ -5,6 +5,7 @@ config PARISC
select HAVE_FUNCTION_TRACER if 64BIT select HAVE_FUNCTION_TRACER if 64BIT
select HAVE_FUNCTION_GRAPH_TRACER if 64BIT select HAVE_FUNCTION_GRAPH_TRACER if 64BIT
select HAVE_FUNCTION_TRACE_MCOUNT_TEST if 64BIT select HAVE_FUNCTION_TRACE_MCOUNT_TEST if 64BIT
select ARCH_WANT_FRAME_POINTERS
select RTC_CLASS select RTC_CLASS
select RTC_DRV_GENERIC select RTC_DRV_GENERIC
select INIT_ALL_POSSIBLE select INIT_ALL_POSSIBLE
......
...@@ -113,12 +113,10 @@ palo: vmlinux ...@@ -113,12 +113,10 @@ palo: vmlinux
# Shorthands for known targets not supported by parisc, use vmlinux as default # Shorthands for known targets not supported by parisc, use vmlinux as default
Image zImage bzImage: vmlinux Image zImage bzImage: vmlinux
kernel_install: vmlinux install: vmlinux
sh $(src)/arch/parisc/install.sh \ sh $(src)/arch/parisc/install.sh \
$(KERNELRELEASE) $< System.map "$(INSTALL_PATH)" $(KERNELRELEASE) $< System.map "$(INSTALL_PATH)"
install: kernel_install modules_install
CLEAN_FILES += lifimage CLEAN_FILES += lifimage
MRPROPER_FILES += palo.conf MRPROPER_FILES += palo.conf
......
...@@ -115,8 +115,8 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) ...@@ -115,8 +115,8 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
} }
#define atomic_add(i,v) ((void)(__atomic_add_return( (i),(v)))) #define atomic_add(i,v) ((void)(__atomic_add_return( (i),(v))))
#define atomic_sub(i,v) ((void)(__atomic_add_return(-(i),(v)))) #define atomic_sub(i,v) ((void)(__atomic_add_return(-((int) (i)),(v))))
#define atomic_inc(v) ((void)(__atomic_add_return( 1,(v)))) #define atomic_inc(v) ((void)(__atomic_add_return( 1,(v))))
#define atomic_dec(v) ((void)(__atomic_add_return( -1,(v)))) #define atomic_dec(v) ((void)(__atomic_add_return( -1,(v))))
......
...@@ -85,6 +85,7 @@ struct elf_prpsinfo32 ...@@ -85,6 +85,7 @@ struct elf_prpsinfo32
* could set a processor dependent flag in the thread_struct. * could set a processor dependent flag in the thread_struct.
*/ */
#undef SET_PERSONALITY
#define SET_PERSONALITY(ex) \ #define SET_PERSONALITY(ex) \
set_thread_flag(TIF_32BIT); \ set_thread_flag(TIF_32BIT); \
current->thread.map_base = DEFAULT_MAP_BASE32; \ current->thread.map_base = DEFAULT_MAP_BASE32; \
......
...@@ -242,7 +242,6 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, ...@@ -242,7 +242,6 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
unsigned long haddr, sigframe_size; unsigned long haddr, sigframe_size;
int err = 0; int err = 0;
#ifdef CONFIG_64BIT #ifdef CONFIG_64BIT
compat_int_t compat_val;
struct compat_rt_sigframe __user * compat_frame; struct compat_rt_sigframe __user * compat_frame;
compat_sigset_t compat_set; compat_sigset_t compat_set;
#endif #endif
......
...@@ -310,10 +310,10 @@ ...@@ -310,10 +310,10 @@
ENTRY_COMP(sched_getaffinity) ENTRY_COMP(sched_getaffinity)
ENTRY_SAME(ni_syscall) /* set_thread_area */ ENTRY_SAME(ni_syscall) /* set_thread_area */
ENTRY_SAME(ni_syscall) /* get_thread_area */ ENTRY_SAME(ni_syscall) /* get_thread_area */
ENTRY_SAME(io_setup) /* 215 */ ENTRY_COMP(io_setup) /* 215 */
ENTRY_SAME(io_destroy) ENTRY_SAME(io_destroy)
ENTRY_SAME(io_getevents) ENTRY_COMP(io_getevents)
ENTRY_SAME(io_submit) ENTRY_COMP(io_submit)
ENTRY_SAME(io_cancel) ENTRY_SAME(io_cancel)
ENTRY_SAME(alloc_hugepages) /* 220 */ ENTRY_SAME(alloc_hugepages) /* 220 */
ENTRY_SAME(free_hugepages) ENTRY_SAME(free_hugepages)
......
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
DECLARE_PER_CPU(struct exception_data, exception_data); DECLARE_PER_CPU(struct exception_data, exception_data);
#define preserve_branch(label) do { \ #define preserve_branch(label) do { \
volatile int dummy; \ volatile int dummy = 0; \
/* The following branch is never taken, it's just here to */ \ /* The following branch is never taken, it's just here to */ \
/* prevent gcc from optimizing away our exception code. */ \ /* prevent gcc from optimizing away our exception code. */ \
if (unlikely(dummy != dummy)) \ if (unlikely(dummy != dummy)) \
......
...@@ -109,7 +109,9 @@ static int hp_sdc_rtc_do_read_bbrtc (struct rtc_time *rtctm) ...@@ -109,7 +109,9 @@ static int hp_sdc_rtc_do_read_bbrtc (struct rtc_time *rtctm)
if (hp_sdc_enqueue_transaction(&t)) return -1; if (hp_sdc_enqueue_transaction(&t)) return -1;
down_interruptible(&tsem); /* Put ourselves to sleep for results. */ /* Put ourselves to sleep for results. */
if (WARN_ON(down_interruptible(&tsem)))
return -1;
/* Check for nonpresence of BBRTC */ /* Check for nonpresence of BBRTC */
if (!((tseq[83] | tseq[90] | tseq[69] | tseq[76] | 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,11 +178,16 @@ static int64_t hp_sdc_rtc_read_i8042timer (uint8_t loadcmd, int numreg)
t.seq = tseq; t.seq = tseq;
t.act.semaphore = &i8042tregs; t.act.semaphore = &i8042tregs;
down_interruptible(&i8042tregs); /* Sleep if output regs in use. */ /* Sleep if output regs in use. */
if (WARN_ON(down_interruptible(&i8042tregs)))
return -1;
if (hp_sdc_enqueue_transaction(&t)) return -1; if (hp_sdc_enqueue_transaction(&t)) return -1;
down_interruptible(&i8042tregs); /* Sleep until results come back. */ /* Sleep until results come back. */
if (WARN_ON(down_interruptible(&i8042tregs)))
return -1;
up(&i8042tregs); up(&i8042tregs);
return (tseq[5] | return (tseq[5] |
...@@ -276,6 +283,7 @@ static inline int hp_sdc_rtc_read_ct(struct timeval *res) { ...@@ -276,6 +283,7 @@ static inline int hp_sdc_rtc_read_ct(struct timeval *res) {
} }
#if 0 /* not used yet */
/* Set the i8042 real-time clock */ /* Set the i8042 real-time clock */
static int hp_sdc_rtc_set_rt (struct timeval *setto) static int hp_sdc_rtc_set_rt (struct timeval *setto)
{ {
...@@ -386,6 +394,7 @@ static int hp_sdc_rtc_set_i8042timer (struct timeval *setto, uint8_t setcmd) ...@@ -386,6 +394,7 @@ static int hp_sdc_rtc_set_i8042timer (struct timeval *setto, uint8_t setcmd)
} }
return 0; return 0;
} }
#endif
static ssize_t hp_sdc_rtc_read(struct file *file, char __user *buf, static ssize_t hp_sdc_rtc_read(struct file *file, char __user *buf,
size_t count, loff_t *ppos) { size_t count, loff_t *ppos) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment