27 Jan, 2011

12 commits


22 Jan, 2011

6 commits

  • * 'fixes-2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
    x86,percpu: Move out of place 64 bit ops into X86_64 section

    Linus Torvalds
     
  • …l/git/tip/linux-2.6-tip

    * 'irq-cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (37 commits)
    um: Use generic irq Kconfig
    tile: Use generic irq Kconfig
    sparc: Use generic irq Kconfig
    score: Use generic irq Kconfig
    powerpc: Use generic irq Kconfig
    parisc: Use generic irq Kconfig
    mn10300: Use generic irq Kconfig
    microblaze: Use generic irq Kconfig
    m68knommu: Use generic irq Kconfig
    ia64: Use generic irq Kconfig
    frv: Use generic irq Kconfig
    blackfin: Use generic irq Kconfig
    alpha: Use generic irq Kconfig
    genirq: Remove __do_IRQ
    m32r: Convert to generic irq Kconfig
    m32r: Convert usrv platform irq handling
    m32r: Convert opsput_lcdpld irq chip
    m32r: Convert opsput lanpld irq chip
    m32r: Convert opsput pld irq chip
    m32r: Convert opsput irq chip
    ...

    Linus Torvalds
     
  • * 'stable/bug-fixes-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen: p2m: correctly initialize partial p2m leaf
    xen: fix non-ANSI function warning in irq.c

    Linus Torvalds
     
  • * 'devicetree/merge' of git://git.secretlab.ca/git/linux-2.6:
    powerpc/83xx: fix build failures on dt compatible list.

    Linus Torvalds
     
  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (34 commits)
    powerpc/mpic: Fix mask/unmask timeout message
    powerpc/pseries: Add BNX2=m to defconfig
    powerpc: Enable 64kB pages and 1024 threads in pseries config
    powerpc: Disable mcount tracers in pseries defconfig
    powerpc/boot/dts: Install dts from the right directory
    powerpc: machine_check_generic is wrong on 64bit
    powerpc: Check RTAS extended log flag before checking length
    powerpc: Fix corruption when grabbing FWNMI data
    powerpc: Rework pseries machine check handler
    powerpc: Don't silently handle machine checks from userspace
    powerpc: Remove duplicate debugger hook in machine_check_exception
    powerpc: Never halt RTAS error logging after receiving an unrecoverable machine check
    powerpc: Don't force MSR_RI in machine_check_exception
    powerpc: Print 32 bits of DSISR in show_regs
    powerpc/kdump: Disable ftrace during kexec
    powerpc/kdump: Move crash_kexec_stop_spus to kdump crash handler
    powerpc/kexec: Remove empty ppc_md.machine_kexec_prepare
    powerpc/kexec: Don't initialise kexec hooks to default handlers
    powerpc/kdump: Remove ppc_md.machine_crash_shutdown
    powerpc/kexec: Remove ppc_md.machine_kexec
    ...

    Linus Torvalds
     
  • After changing the p2m mapping to a tree by

    commit 58e05027b530ff081ecea68e38de8d59db8f87e0
    xen: convert p2m to a 3 level tree

    and trying to boot a DomU with 615MB of memory, the following crash was
    observed in the dump:

    kernel direct mapping tables up to 26f00000 @ 1ec4000-1fff000
    BUG: unable to handle kernel NULL pointer dereference at (null)
    IP: [] xen_set_pte+0x27/0x60
    *pdpt = 0000000000000000 *pde = 0000000000000000

    Adding further debug statements showed that when trying to set up
    pfn=0x26700 the returned mapping was invalid.

    pfn=0x266ff calling set_pte(0xc1fe77f8, 0x6b3003)
    pfn=0x26700 calling set_pte(0xc1fe7800, 0x3)

    Although the last_pfn obtained from the startup info is 0x26700, which
    should in turn not be hit, the additional 8MB which are added as extra
    memory normally seem to be ok. This lead to looking into the initial
    p2m tree construction, which uses the smaller value and assuming that
    there is other code handling the extra memory.

    When the p2m tree is set up, the leaves are directly pointed to the
    array which the domain builder set up. But if the mapping is not on a
    boundary that fits into one p2m page, this will result in the last leaf
    being only partially valid. And as the invalid entries are not
    initialized in that case, things go badly wrong.

    I am trying to fix that by checking whether the current leaf is a
    complete map and if not, allocate a completely new page and copy only
    the valid pointers there. This may not be the most efficient or elegant
    solution, but at least it seems to allow me booting DomUs with memory
    assignments all over the range.

    BugLink: http://bugs.launchpad.net/bugs/686692
    [v2: Redid a bit of commit wording and fixed a compile warning]

    Signed-off-by: Stefan Bader
    Signed-off-by: Konrad Rzeszutek Wilk

    Stefan Bader
     

21 Jan, 2011

22 commits