Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 1 Oct 2012 18:07:31 +0000 (11:07 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 1 Oct 2012 18:07:31 +0000 (11:07 -0700)
Pull x86 debug update from Ingo Molnar:
 "Various small enhancements"

* 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/debug: Dump family, model, stepping of the boot CPU
  x86/iommu: Use NULL instead of plain 0 for __IOMMU_INIT
  x86/iommu: Drop duplicate const in __IOMMU_INIT
  x86/fpu/xsave: Keep __user annotation in casts
  x86/pci/probe_roms: Add missing __iomem annotation to pci_map_biosrom()
  x86/signals: ia32_signal.c: add __user casts to fix sparse warnings
  x86/vdso: Add __user annotation to VDSO32_SYMBOL
  x86: Fix __user annotations in asm/sys_ia32.h

arch/x86/ia32/ia32_signal.c
arch/x86/ia32/sys_ia32.c
arch/x86/include/asm/iommu_table.h
arch/x86/include/asm/sys_ia32.h
arch/x86/include/asm/vdso.h
arch/x86/kernel/cpu/common.c
arch/x86/kernel/probe_roms.c
arch/x86/kernel/xsave.c

index 673ac9b..452d4dd 100644 (file)
@@ -162,7 +162,8 @@ asmlinkage long sys32_sigaltstack(const stack_ia32_t __user *uss_ptr,
        }
        seg = get_fs();
        set_fs(KERNEL_DS);
-       ret = do_sigaltstack(uss_ptr ? &uss : NULL, &uoss, regs->sp);
+       ret = do_sigaltstack((stack_t __force __user *) (uss_ptr ? &uss : NULL),
+                            (stack_t __force __user *) &uoss, regs->sp);
        set_fs(seg);
        if (ret >= 0 && uoss_ptr)  {
                if (!access_ok(VERIFY_WRITE, uoss_ptr, sizeof(stack_ia32_t)))
@@ -361,7 +362,7 @@ static int ia32_setup_sigcontext(struct sigcontext_ia32 __user *sc,
  */
 static void __user *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
                                 size_t frame_size,
-                                void **fpstate)
+                                void __user **fpstate)
 {
        unsigned long sp;
 
@@ -382,7 +383,7 @@ static void __user *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
 
        if (used_math()) {
                sp = sp - sig_xstate_ia32_size;
-               *fpstate = (struct _fpstate_ia32 *) sp;
+               *fpstate = (struct _fpstate_ia32 __user *) sp;
                if (save_i387_xstate_ia32(*fpstate) < 0)
                        return (void __user *) -1L;
        }
@@ -448,7 +449,7 @@ int ia32_setup_frame(int sig, struct k_sigaction *ka,
                 * These are actually not used anymore, but left because some
                 * gdb versions depend on them as a marker.
                 */
-               put_user_ex(*((u64 *)&code), (u64 *)frame->retcode);
+               put_user_ex(*((u64 *)&code), (u64 __user *)frame->retcode);
        } put_user_catch(err);
 
        if (err)
@@ -529,7 +530,7 @@ int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
                 * Not actually used anymore, but left because some gdb
                 * versions need it.
                 */
-               put_user_ex(*((u64 *)&code), (u64 *)frame->retcode);
+               put_user_ex(*((u64 *)&code), (u64 __user *)frame->retcode);
        } put_user_catch(err);
 
        if (err)
index 4540bec..c5b938d 100644 (file)
@@ -287,7 +287,7 @@ asmlinkage long sys32_sigaction(int sig, struct old_sigaction32 __user *act,
        return ret;
 }
 
-asmlinkage long sys32_waitpid(compat_pid_t pid, unsigned int *stat_addr,
+asmlinkage long sys32_waitpid(compat_pid_t pid, unsigned int __user *stat_addr,
                              int options)
 {
        return compat_sys_wait4(pid, stat_addr, options, NULL);
index f229b13..f42a047 100644 (file)
@@ -48,7 +48,7 @@ struct iommu_table_entry {
 
 
 #define __IOMMU_INIT(_detect, _depend, _early_init, _late_init, _finish)\
-       static const struct iommu_table_entry const                     \
+       static const struct iommu_table_entry                           \
                __iommu_entry_##_detect __used                          \
        __attribute__ ((unused, __section__(".iommu_table"),            \
                        aligned((sizeof(void *)))))     \
@@ -63,10 +63,10 @@ struct iommu_table_entry {
  * to stop detecting the other IOMMUs after yours has been detected.
  */
 #define IOMMU_INIT_POST(_detect)                                       \
-       __IOMMU_INIT(_detect, pci_swiotlb_detect_4gb,  0, 0, 0)
+       __IOMMU_INIT(_detect, pci_swiotlb_detect_4gb,  NULL, NULL, 0)
 
 #define IOMMU_INIT_POST_FINISH(detect)                                 \
-       __IOMMU_INIT(_detect, pci_swiotlb_detect_4gb,  0, 0, 1)
+       __IOMMU_INIT(_detect, pci_swiotlb_detect_4gb,  NULL, NULL, 1)
 
 /*
  * A more sophisticated version of IOMMU_INIT. This variant requires:
index 3fda9db..4ca1c61 100644 (file)
@@ -40,7 +40,7 @@ asmlinkage long sys32_sigaction(int, struct old_sigaction32 __user *,
                                struct old_sigaction32 __user *);
 asmlinkage long sys32_alarm(unsigned int);
 
-asmlinkage long sys32_waitpid(compat_pid_t, unsigned int *, int);
+asmlinkage long sys32_waitpid(compat_pid_t, unsigned int __user *, int);
 asmlinkage long sys32_sysfs(int, u32, u32);
 
 asmlinkage long sys32_sched_rr_get_interval(compat_pid_t,
index bb05228..fddb53d 100644 (file)
@@ -11,7 +11,8 @@ extern const char VDSO32_PRELINK[];
 #define VDSO32_SYMBOL(base, name)                                      \
 ({                                                                     \
        extern const char VDSO32_##name[];                              \
-       (void *)(VDSO32_##name - VDSO32_PRELINK + (unsigned long)(base)); \
+       (void __user *)(VDSO32_##name - VDSO32_PRELINK +                \
+                       (unsigned long)(base));                         \
 })
 #endif
 
index 9961e2e..134505e 100644 (file)
@@ -1023,14 +1023,16 @@ void __cpuinit print_cpu_info(struct cpuinfo_x86 *c)
                printk(KERN_CONT "%s ", vendor);
 
        if (c->x86_model_id[0])
-               printk(KERN_CONT "%s", c->x86_model_id);
+               printk(KERN_CONT "%s", strim(c->x86_model_id));
        else
                printk(KERN_CONT "%d86", c->x86);
 
+       printk(KERN_CONT " (fam: %02x, model: %02x", c->x86, c->x86_model);
+
        if (c->x86_mask || c->cpuid_level >= 0)
-               printk(KERN_CONT " stepping %02x\n", c->x86_mask);
+               printk(KERN_CONT ", stepping: %02x)\n", c->x86_mask);
        else
-               printk(KERN_CONT "\n");
+               printk(KERN_CONT ")\n");
 
        print_cpu_msr(c);
 }
index 0bc72e2..d5f15c3 100644 (file)
@@ -150,7 +150,7 @@ static struct resource *find_oprom(struct pci_dev *pdev)
        return oprom;
 }
 
-void *pci_map_biosrom(struct pci_dev *pdev)
+void __iomem *pci_map_biosrom(struct pci_dev *pdev)
 {
        struct resource *oprom = find_oprom(pdev);
 
index 3d3e207..9e1a8a7 100644 (file)
@@ -132,9 +132,9 @@ int check_for_xstate(struct i387_fxsave_struct __user *buf,
            fx_sw_user->xstate_size > fx_sw_user->extended_size)
                return -EINVAL;
 
-       err = __get_user(magic2, (__u32 *) (((void *)fpstate) +
-                                           fx_sw_user->extended_size -
-                                           FP_XSTATE_MAGIC2_SIZE));
+       err = __get_user(magic2, (__u32 __user *) (fpstate +
+                                                  fx_sw_user->extended_size -
+                                                  FP_XSTATE_MAGIC2_SIZE));
        if (err)
                return err;
        /*