Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-x86
Linus Torvalds [Fri, 19 Oct 2007 22:06:00 +0000 (15:06 -0700)]
* ssh://master.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-x86: (33 commits)
  x86: convert cpuinfo_x86 array to a per_cpu array
  x86: introduce frame_pointer() and stack_pointer()
  x86 & generic: change to __builtin_prefetch()
  i386: do not BUG_ON() when MSR is unknown
  x86: acpi use cpu_physical_id
  x86: convert cpu_llc_id to be a per cpu variable
  x86: convert cpu_to_apicid to be a per cpu variable
  i386: introduce "used_vectors" bitmap which can be used to reserve vectors.
  x86: use raw locks during oopses
  x86: honor _PAGE_PSE bit on page walks
  i386: do cpuid_device_create() in CPU_UP_PREPARE instead of CPU_ONLINE.
  x86: implement missing x86_64 function smp_call_function_mask()
  x86: use descriptor's functions instead of inline assembly
  i386: consolidate show_regs and show_registers for i386
  i386: make callgraph use dump_trace() on i386/x86_64
  x86: enable iommu_merge by default
  i386: i386 add AMD64 Barcelona PMU MSR definitions to msr.h
  x86: Unify i386 and x86-64 early quirks
  x86: enable HPET on ICH3 and ICH4
  x86: force enable HPET on VT8235/8237 chipsets
  ...

Manually fix trivial conflict with task pid container helper changes in
arch/x86/kernel/process_32.c

12 files changed:
1  2 
Documentation/kernel-parameters.txt
arch/i386/Kconfig
arch/x86/kernel/process_32.c
arch/x86/kernel/setup_32.c
arch/x86/kernel/setup_64.c
arch/x86/kernel/traps_32.c
arch/x86/mm/fault_32.c
arch/x86/mm/fault_64.c
arch/x86_64/Kconfig
drivers/acpi/processor_core.c
include/asm-x86/smp_32.h
include/asm-x86/topology_64.h

Simple merge
@@@ -1080,10 -1080,8 +1080,10 @@@ config APM_REAL_MODE_POWER_OF
  
  endif # APM
  
- source "arch/x86/kernel/cpu/cpufreq/Kconfig"
+ source "arch/x86/kernel/cpu/cpufreq/Kconfig_32"
  
 +source "drivers/cpuidle/Kconfig"
 +
  endmenu
  
  menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
@@@ -299,24 -299,41 +299,41 @@@ void __show_registers(struct pt_regs *r
  {
        unsigned long cr0 = 0L, cr2 = 0L, cr3 = 0L, cr4 = 0L;
        unsigned long d0, d1, d2, d3, d6, d7;
+       unsigned long esp;
+       unsigned short ss, gs;
+       if (user_mode_vm(regs)) {
+               esp = regs->esp;
+               ss = regs->xss & 0xffff;
+               savesegment(gs, gs);
+       } else {
+               esp = (unsigned long) (&regs->esp);
+               savesegment(ss, ss);
+               savesegment(gs, gs);
+       }
  
        printk("\n");
-       printk("Pid: %d, comm: %20s\n", task_pid_nr(current), current->comm);
-       printk("EIP: %04x:[<%08lx>] CPU: %d\n",0xffff & regs->xcs,regs->eip, smp_processor_id());
 -      printk("Pid: %d, comm: %.*s %s (%s %.*s)\n",
 -                      current->pid, TASK_COMM_LEN, current->comm,
++      printk("Pid: %d, comm: %s %s (%s %.*s)\n",
++                      task_pid_nr(current), current->comm,
+                       print_tainted(), init_utsname()->release,
+                       (int)strcspn(init_utsname()->version, " "),
+                       init_utsname()->version);
+       printk("EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n",
+                       0xffff & regs->xcs, regs->eip, regs->eflags,
+                       smp_processor_id());
        print_symbol("EIP is at %s\n", regs->eip);
  
-       if (user_mode_vm(regs))
-               printk(" ESP: %04x:%08lx",0xffff & regs->xss,regs->esp);
-       printk(" EFLAGS: %08lx    %s  (%s %.*s)\n",
-              regs->eflags, print_tainted(), init_utsname()->release,
-              (int)strcspn(init_utsname()->version, " "),
-              init_utsname()->version);
        printk("EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n",
-               regs->eax,regs->ebx,regs->ecx,regs->edx);
-       printk("ESI: %08lx EDI: %08lx EBP: %08lx",
-               regs->esi, regs->edi, regs->ebp);
-       printk(" DS: %04x ES: %04x FS: %04x\n",
-              0xffff & regs->xds,0xffff & regs->xes, 0xffff & regs->xfs);
+               regs->eax, regs->ebx, regs->ecx, regs->edx);
+       printk("ESI: %08lx EDI: %08lx EBP: %08lx ESP: %08lx\n",
+               regs->esi, regs->edi, regs->ebp, esp);
+       printk(" DS: %04x ES: %04x FS: %04x GS: %04x SS: %04x\n",
+              regs->xds & 0xffff, regs->xes & 0xffff,
+              regs->xfs & 0xffff, gs, ss);
+       if (!all)
+               return;
  
        cr0 = read_cr0();
        cr2 = read_cr2();
Simple merge
Simple merge
@@@ -288,35 -291,11 +291,11 @@@ EXPORT_SYMBOL(dump_stack)
  void show_registers(struct pt_regs *regs)
  {
        int i;
-       int in_kernel = 1;
-       unsigned long esp;
-       unsigned short ss, gs;
-       esp = (unsigned long) (&regs->esp);
-       savesegment(ss, ss);
-       savesegment(gs, gs);
-       if (user_mode_vm(regs)) {
-               in_kernel = 0;
-               esp = regs->esp;
-               ss = regs->xss & 0xffff;
-       }
        print_modules();
-       printk(KERN_EMERG "CPU:    %d\n"
-               KERN_EMERG "EIP:    %04x:[<%08lx>]    %s VLI\n"
-               KERN_EMERG "EFLAGS: %08lx   (%s %.*s)\n",
-               smp_processor_id(), 0xffff & regs->xcs, regs->eip,
-               print_tainted(), regs->eflags, init_utsname()->release,
-               (int)strcspn(init_utsname()->version, " "),
-               init_utsname()->version);
-       print_symbol(KERN_EMERG "EIP is at %s\n", regs->eip);
-       printk(KERN_EMERG "eax: %08lx   ebx: %08lx   ecx: %08lx   edx: %08lx\n",
-               regs->eax, regs->ebx, regs->ecx, regs->edx);
-       printk(KERN_EMERG "esi: %08lx   edi: %08lx   ebp: %08lx   esp: %08lx\n",
-               regs->esi, regs->edi, regs->ebp, esp);
-       printk(KERN_EMERG "ds: %04x   es: %04x   fs: %04x  gs: %04x  ss: %04x\n",
-              regs->xds & 0xffff, regs->xes & 0xffff, regs->xfs & 0xffff, gs, ss);
+       __show_registers(regs, 0);
        printk(KERN_EMERG "Process %.*s (pid: %d, ti=%p task=%p task.ti=%p)",
 -              TASK_COMM_LEN, current->comm, current->pid,
 +              TASK_COMM_LEN, current->comm, task_pid_nr(current),
                current_thread_info(), current, task_thread_info(current));
        /*
         * When in-kernel, we also print out the stack and code at the
Simple merge
Simple merge
@@@ -723,10 -723,8 +723,10 @@@ config ARCH_HIBERNATION_HEADE
  
  source "drivers/acpi/Kconfig"
  
- source "arch/x86/kernel/cpufreq/Kconfig"
+ source "arch/x86/kernel/cpu/cpufreq/Kconfig_64"
  
 +source "drivers/cpuidle/Kconfig"
 +
  endmenu
  
  menu "Bus options (PCI etc.)"
Simple merge
Simple merge
Simple merge