1. 11 Feb, 2009 1 commit
    • Alok Kataria's avatar
      x86, apic: fix initialization of wakeup_cpu · 0e81cb59
      Alok Kataria authored
      With refactoring of wake_cpu macros the 32bit code in tip doesn't
      execute generic_apic_probe if CONFIG_X86_32_NON_STANDARD is not set.
      
      Even on a x86 STANDARD cpu we need to execute the generic_apic_probe
      function, as we rely on this function to execute the update_genapic
      quirk which initilizes apic->wakeup_cpu.
      
      Failing to do so results in we making a call to a null function in do_boot_cpu.
      
      The stack trace without the patch goes like this.
      
      Booting processor 1 APIC 0x1 ip 0x6000
      BUG: unable to handle kernel NULL pointer dereference at (null)
      IP: [<(null)>] (null)
      *pdpt = 0000000000839001 *pde = 0000000000c97067 *pte = 0000000000000163
      Oops: 0000 [#1] SMP
      last sysfs file:
      Modules linked in:
      
      Pid: 1, comm: swapper Not tainted (2.6.29-rc4-tip #18) VMware Virtual Platform
      EIP: 0062:[<00000000>] EFLAGS: 00010293 CPU: 0
      EIP is at 0x0
      EAX: 00000001 EBX: 00006000 ECX: c077ed00 EDX: 00006000
      ESI: 00000001 EDI: 00000001 EBP: ef04cf40 ESP: ef04cf1c
       DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 006a
      Process swapper (pid: 1, ti=ef04c000 task=ef050000 task.ti=ef04c000)
      Stack:
       c0644e52 00000000 ef04cf24 ef04cf24 c064468d c0886dc0 00000000 c0702aea
       ef055480 00000001 00000101 dead4ead ffffffff ffffffff c08af530 00000000
       c0709715 ef04cf60 ef04cf60 00000001 00000000 00000000 dead4ead ffffffff
      Call Trace:
       [<c0644e52>] ? native_cpu_up+0x2de/0x45b
       [<c064468d>] ? do_fork_idle+0x0/0x19
       [<c0645c5e>] ? _cpu_up+0x88/0xe8
       [<c0645d20>] ? cpu_up+0x42/0x4e
       [<c07e7462>] ? kernel_init+0x99/0x14b
       [<c07e73c9>] ? kernel_init+0x0/0x14b
       [<c040375f>] ? kernel_thread_helper+0x7/0x10
      Code:  Bad EIP value.
      EIP: [<00000000>] 0x0 SS:ESP 006a:ef04cf1c
      
      I think we should call generic_apic_probe unconditionally for 32 bit now.
      Signed-off-by: default avatarAlok N Kataria <akataria@vmware.com>
      Acked-by: default avatarYinghai Lu <yinghai@kernel.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      0e81cb59
  2. 09 Feb, 2009 13 commits
  3. 05 Feb, 2009 15 commits
  4. 04 Feb, 2009 6 commits
  5. 03 Feb, 2009 5 commits
    • H. Peter Anvin's avatar
      x86: add x86@kernel.org to MAINTAINERS · bcde563c
      H. Peter Anvin authored
      Impact: Documentation only
      
      There is an email alias as well to reach the x86 maintainers: x86@kernel.org.
      Document it.
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      bcde563c
    • Martin Hicks's avatar
      x86: push old stack address on irqstack for unwinder · a67798cd
      Martin Hicks authored
      Impact: Fixes dumpstack and KDB on 64 bits
      
      This re-adds the old stack pointer to the top of the irqstack to help
      with unwinding.  It was removed in commit d99015b1
      as part of the save_args out-of-line work.
      
      Both dumpstack and KDB require this information.
      Signed-off-by: default avatarMartin Hicks <mort@sgi.com>
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      a67798cd
    • Yinghai Lu's avatar
      x86, percpu: fix kexec with vmlinux · ef3892bd
      Yinghai Lu authored
      Impact: fix regression with kexec with vmlinux
      
      Split data.init into data.init, percpu, data.init2 sections
      instead of let data.init wrap percpu secion.
      
      Thus kexec loading will be happy, because sections will not
      overlap.
      
      Before the patch we have:
      
      Elf file type is EXEC (Executable file)
      Entry point 0x200000
      There are 6 program headers, starting at offset 64
      
      Program Headers:
        Type           Offset             VirtAddr           PhysAddr
                       FileSiz            MemSiz              Flags  Align
        LOAD           0x0000000000200000 0xffffffff80200000 0x0000000000200000
                       0x0000000000ca6000 0x0000000000ca6000  R E    200000
        LOAD           0x0000000000ea6000 0xffffffff80ea6000 0x0000000000ea6000
                       0x000000000014dfe0 0x000000000014dfe0  RWE    200000
        LOAD           0x0000000001000000 0xffffffffff600000 0x0000000000ff4000
                       0x0000000000000888 0x0000000000000888  RWE    200000
        LOAD           0x00000000011f6000 0xffffffff80ff6000 0x0000000000ff6000
                       0x0000000000073086 0x0000000000a2d938  RWE    200000
        LOAD           0x0000000001400000 0x0000000000000000 0x000000000106a000
                       0x00000000001d2ce0 0x00000000001d2ce0  RWE    200000
        NOTE           0x00000000009e2c1c 0xffffffff809e2c1c 0x00000000009e2c1c
                       0x0000000000000024 0x0000000000000024         4
      
       Section to Segment mapping:
        Segment Sections...
         00     .text .notes __ex_table .rodata __bug_table .pci_fixup .builtin_fw __ksymtab __ksymtab_gpl __ksymtab_strings __init_rodata __param
         01     .data .init.rodata .data.cacheline_aligned .data.read_mostly
         02     .vsyscall_0 .vsyscall_fn .vsyscall_gtod_data .vsyscall_1 .vsyscall_2 .vgetcpu_mode .jiffies
         03     .data.init_task .smp_locks .init.text .init.data .init.setup .initcall.init .con_initcall.init .x86_cpu_dev.init .altinstructions .altinstr_replacement .exit.text .init.ramfs .bss
         04     .data.percpu
         05     .notes
      
      After patch we've got:
      
      Elf file type is EXEC (Executable file)
      Entry point 0x200000
      There are 7 program headers, starting at offset 64
      
      Program Headers:
        Type           Offset             VirtAddr           PhysAddr
                       FileSiz            MemSiz              Flags  Align
        LOAD           0x0000000000200000 0xffffffff80200000 0x0000000000200000
                       0x0000000000ca6000 0x0000000000ca6000  R E    200000
        LOAD           0x0000000000ea6000 0xffffffff80ea6000 0x0000000000ea6000
                       0x000000000014dfe0 0x000000000014dfe0  RWE    200000
        LOAD           0x0000000001000000 0xffffffffff600000 0x0000000000ff4000
                       0x0000000000000888 0x0000000000000888  RWE    200000
        LOAD           0x00000000011f6000 0xffffffff80ff6000 0x0000000000ff6000
                       0x0000000000073086 0x0000000000073086  RWE    200000
        LOAD           0x0000000001400000 0x0000000000000000 0x000000000106a000
                       0x00000000001d2ce0 0x00000000001d2ce0  RWE    200000
        LOAD           0x000000000163d000 0xffffffff8123d000 0x000000000123d000
                       0x0000000000000000 0x00000000007e6938  RWE    200000
        NOTE           0x00000000009e2c1c 0xffffffff809e2c1c 0x00000000009e2c1c
                       0x0000000000000024 0x0000000000000024         4
      
       Section to Segment mapping:
        Segment Sections...
         00     .text .notes __ex_table .rodata __bug_table .pci_fixup .builtin_fw __ksymtab __ksymtab_gpl __ksymtab_strings __init_rodata __param
         01     .data .init.rodata .data.cacheline_aligned .data.read_mostly
         02     .vsyscall_0 .vsyscall_fn .vsyscall_gtod_data .vsyscall_1 .vsyscall_2 .vgetcpu_mode .jiffies
         03     .data.init_task .smp_locks .init.text .init.data .init.setup .initcall.init .con_initcall.init .x86_cpu_dev.init .altinstructions .altinstr_replacement .exit.text .init.ramfs
         04     .data.percpu
         05     .bss
         06     .notes
      Signed-off-by: default avatarYinghai Lu <yinghai@kernel.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      ef3892bd
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 · b1792e36
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
        PCI hotplug: Change link order of pciehp & acpiphp
        PCI hotplug: fakephp: Allocate PCI resources before adding the device
        PCI MSI: Fix undefined shift by 32
        PCI PM: Do not wait for buses in B2 or B3 during resume
        PCI PM: Power up devices before restoring their state
        PCI PM: Fix hibernation breakage on EeePC 701
        PCI: irq and pci_ids patch for Intel Tigerpoint DeviceIDs
        PCI PM: Fix suspend error paths and testing facility breakage
      b1792e36
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6 · 859281ff
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:
        slub: fix per cpu kmem_cache_cpu array memory leak
        kmalloc: return NULL instead of link failure
      859281ff