Skip to content
Commits on Sep 15, 2012
  1. Merge branch 'fixes-for-3.6' of git://git.linaro.org/people/mszyprows…

    committed
    …ki/linux-dma-mapping
    
    Pull one more DMA-mapping fix from Marek Szyprowski:
     "This patch fixes very subtle bug (typical off-by-one error) which
      might appear in very rare circumstances."
    
    * 'fixes-for-3.6' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping:
      arm: mm: fix DMA pool affiliation check
  2. Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/…

    committed
    …linux/kernel/git/tip/tip
    
    Pull perf fixes from Ingo Molnar:
     "This tree includes various fixes"
    
    Ingo really needs to improve on the whole "explain git pull" part.
    "Various fixes" indeed.
    
    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      perf/hwpb: Invoke __perf_event_disable() if interrupts are already disabled
      perf/x86: Enable Intel Cedarview Atom suppport
      perf_event: Switch to internal refcount, fix race with close()
      oprofile, s390: Fix uninitialized memory access when writing to oprofilefs
      perf/x86: Fix microcode revision check for SNB-PEBS
Commits on Sep 13, 2012
  1. Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/ker…

    committed
    …nel/git/arm/arm-soc
    
    Pull arm-soc bug fixes from Olof Johansson:
    
     - A set of OMAP fixes, about half of them PM/clock related, the rest
       scattered over the platform code but all small and targeted to real
       bugs.
     - Two small i.MX fixes for SSI device clock setup.
    
    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
      ARM: clk-imx35: Fix SSI clock registration
      ARM: clk-imx25: Fix SSI clock registration
      ARM: OMAP4: Fix array size for irq_target_cpu
      ARM: OMAP4: hwmod data: temporarily comment out data for the sl2if IP block
      ARM: OMAP: hwmod code: Disable module when hwmod enable fails
      ARM: OMAP3: hwmod data: fix iva2 reset info
      ARM: OMAP3xxx: clockdomain: fix software supervised wakeup/sleep
      ARM: OMAP2+: am33xx: Fix the timer fck clock naming convention
      ARM: OMAP: Config fix for omap3-touchbook board
      ARM: OMAP: sram: skip the first 16K on OMAP3 HS
      ARM: OMAP: sram: fix OMAP4 errata handling
      ARM: OMAP: timer: obey the !CONFIG_OMAP_32K_TIMER
  2. @olofj

    Merge tag 'imx-fixes' of git://git.pengutronix.de/git/imx/linux-2.6 i…

    olofj committed
    …nto fixes
    
    ARM: i.MX: Fix SSI clock associations for i.MX25/i.MX35
    
    * tag 'imx-fixes' of git://git.pengutronix.de/git/imx/linux-2.6:
      ARM: clk-imx35: Fix SSI clock registration
      ARM: clk-imx25: Fix SSI clock registration
      + Linux 3.6-rc5
  3. Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm

    committed
    Pull ARM fixes from Russell King:
     "It's been a while...  so there's a little more here than normal.
    
      Mostly updates from Will for the breakpoint stuff, and plugging a few
      holes in the user access functions which crept in when domain support
      was disabled for ARMv7 CPUs."
    
    * 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
      ARM: 7529/1: delay: set loops_per_jiffy when moving to timer-based loop
      ARM: 7528/1: uaccess: annotate [__]{get,put}_user functions with might_fault()
      ARM: 7527/1: uaccess: explicitly check __user pointer when !CPU_USE_DOMAINS
      ARM: 7526/1: traps: send SIGILL if get_user fails on undef handling path
      ARM: 7521/1: Fix semihosting Kconfig text
      ARM: 7513/1: Make sure dtc is built before running it
      ARM: 7512/1: Fix XIP build due to PHYS_OFFSET definition moving
      ARM: 7499/1: mm: Fix vmalloc overlap check for !HIGHMEM
      ARM: 7503/1: mm: only flush both pmd entries for classic MMU
      ARM: 7502/1: contextidr: avoid using bfi instruction during notifier
      ARM: 7501/1: decompressor: reset ttbcr for VMSA ARMv7 cores
      ARM: 7497/1: hw_breakpoint: allow single-byte watchpoints on all addresses
      ARM: 7496/1: hw_breakpoint: don't rely on dfsr to show watchpoint access type
      ARM: Fix ioremap() of address zero
Commits on Sep 11, 2012
  1. Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    committed
    …/git/lliubbo/blackfin
    
    Pull blackfin updates from Bob Liu:
     "One kbuild and a smp build fix."
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lliubbo/blackfin:
      kbuild: add symbol prefix arg to kallsyms
      blackfin: smp: adapt to generic smp helpers
  2. ARM: clk-imx35: Fix SSI clock registration

    Fabio Estevam committed with Sascha Hauer
    SSI block has two types of clock:
    
    ipg: bus clock, the clock needed for accessing registers.
    per: peripheral clock, the clock needed for generating the bit rate.
    
    Currently SSI driver only supports slave mode and only need to handle
    the ipg clock, because the peripheral clock comes from the master codec.
    
    Only register the ipg clock and do not register the peripheral clock for ssi.
    
    Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
    Tested-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    Cc: stable@vger.kernel.org
  3. ARM: clk-imx25: Fix SSI clock registration

    Fabio Estevam committed with Sascha Hauer
    SSI block has two types of clock:
    
    ipg: bus clock, the clock needed for accessing registers.
    per: peripheral clock, the clock needed for generating the bit rate.
    
    Currently SSI driver only supports slave mode and only need to handle
    the ipg clock, because the peripheral clock comes from the master codec.
    
    Only register the ipg clock and do not register the peripheral clock for ssi.
    
    Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    Cc: stable@vger.kernel.org
  4. @amalon @lliubbo

    kbuild: add symbol prefix arg to kallsyms

    amalon committed with lliubbo
    Commit 1f2bfbd ("kbuild: link of
    vmlinux moved to a script") introduced in v3.5-rc1 broke kallsyms on
    architectures which have symbol prefixes.
    
    The --symbol-prefix argument used to be added to the KALLSYMS command
    line from the architecture Makefile, however this isn't picked up by the
    new scripts/link-vmlinux.sh. This resulted in symbols like
    kallsyms_addresses being added which weren't correctly overriding the
    weak symbols such as _kallsyms_addresses. These could then trigger
    BUG_ONs in kallsyms code.
    
    This is fixed by removing the KALLSYMS addition from the architecture
    Makefile, and using CONFIG_SYMBOL_PREFIX in the link-vmlinux.sh script
    to determine whether to add the --symbol-prefix argument.
    
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Signed-off-by: Bob Liu <lliubbo@gmail.com>
  5. Merge tag 'kvm-3.6-2' of git://git.kernel.org/pub/scm/virt/kvm/kvm

    committed
    Pull KVM updates from Avi Kivity:
     "A trio of KVM fixes: incorrect lookup of guest cpuid, an uninitialized
      variable fix, and error path cleanup fix."
    
    * tag 'kvm-3.6-2' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
      KVM: fix error paths for failed gfn_to_page() calls
      KVM: x86: Check INVPCID feature bit in EBX of leaf 7
      KVM: PIC: fix use of uninitialised variable.
Commits on Sep 10, 2012
  1. @tpetazzoni

    arm: mm: fix DMA pool affiliation check

    tpetazzoni committed with Marek Szyprowski
    The __free_from_pool() function was changed in
    e9da6e9. Unfortunately, the test that
    checks whether the provided (start,size) is within the DMA pool has
    been improperly modified. It used to be:
    
      if (start < coherent_head.vm_start || end > coherent_head.vm_end)
    
    Where coherent_head.vm_end was non-inclusive (i.e, it did not include
    the first byte after the pool). The test has been changed to:
    
      if (start < pool->vaddr || start > pool->vaddr + pool->size)
    
    So now pool->vaddr + pool->size is inclusive (i.e, it includes the
    first byte after the pool), so the test should be >= instead of >.
    
    This bug causes the following message when freeing the *first* DMA
    coherent buffer that has been allocated, because its virtual address
    is exactly equal to pool->vaddr + pool->size :
    
    WARNING: at /home/thomas/projets/linux-2.6/arch/arm/mm/dma-mapping.c:463 __free_from_pool+0xa4/0xc0()
    freeing wrong coherent size from pool
    
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Cc: Marek Szyprowski <m.szyprowski@samsung.com>
    Cc: Russell King <linux@arm.linux.org.uk>
    Cc: Lior Amsalem <alior@marvell.com>
    Cc: Maen Suleiman <maen@marvell.com>
    Cc: Tawfik Bayouk <tawfik@marvell.com>
    Cc: Shadi Ammouri <shadi@marvell.com>
    Cc: Eran Ben-Avi <benavi@marvell.com>
    Cc: Yehuda Yitschak <yehuday@marvell.com>
    Cc: Nadav Haklai <nadavh@marvell.com>
    [m.szyprowski: rebased onto v3.6-rc5 and resolved conflict]
    Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
  2. KVM: fix error paths for failed gfn_to_page() calls

    Xiao Guangrong committed with Avi Kivity
    This bug was triggered:
    [ 4220.198458] BUG: unable to handle kernel paging request at fffffffffffffffe
    [ 4220.203907] IP: [<ffffffff81104d85>] put_page+0xf/0x34
    ......
    [ 4220.237326] Call Trace:
    [ 4220.237361]  [<ffffffffa03830d0>] kvm_arch_destroy_vm+0xf9/0x101 [kvm]
    [ 4220.237382]  [<ffffffffa036fe53>] kvm_put_kvm+0xcc/0x127 [kvm]
    [ 4220.237401]  [<ffffffffa03702bc>] kvm_vcpu_release+0x18/0x1c [kvm]
    [ 4220.237407]  [<ffffffff81145425>] __fput+0x111/0x1ed
    [ 4220.237411]  [<ffffffff8114550f>] ____fput+0xe/0x10
    [ 4220.237418]  [<ffffffff81063511>] task_work_run+0x5d/0x88
    [ 4220.237424]  [<ffffffff8104c3f7>] do_exit+0x2bf/0x7ca
    
    The test case:
    
    	printf(fmt, ##args);		\
    	exit(-1);} while (0)
    
    static int create_vm(void)
    {
    	int sys_fd, vm_fd;
    
    	sys_fd = open("/dev/kvm", O_RDWR);
    	if (sys_fd < 0)
    		die("open /dev/kvm fail.\n");
    
    	vm_fd = ioctl(sys_fd, KVM_CREATE_VM, 0);
    	if (vm_fd < 0)
    		die("KVM_CREATE_VM fail.\n");
    
    	return vm_fd;
    }
    
    static int create_vcpu(int vm_fd)
    {
    	int vcpu_fd;
    
    	vcpu_fd = ioctl(vm_fd, KVM_CREATE_VCPU, 0);
    	if (vcpu_fd < 0)
    		die("KVM_CREATE_VCPU ioctl.\n");
    	printf("Create vcpu.\n");
    	return vcpu_fd;
    }
    
    static void *vcpu_thread(void *arg)
    {
    	int vm_fd = (int)(long)arg;
    
    	create_vcpu(vm_fd);
    	return NULL;
    }
    
    int main(int argc, char *argv[])
    {
    	pthread_t thread;
    	int vm_fd;
    
    	(void)argc;
    	(void)argv;
    
    	vm_fd = create_vm();
    	pthread_create(&thread, NULL, vcpu_thread, (void *)(long)vm_fd);
    	printf("Exit.\n");
    	return 0;
    }
    
    It caused by release kvm->arch.ept_identity_map_addr which is the
    error page.
    
    The parent thread can send KILL signal to the vcpu thread when it was
    exiting which stops faulting pages and potentially allocating memory.
    So gfn_to_pfn/gfn_to_page may fail at this time
    
    Fixed by checking the page before it is used
    
    Signed-off-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
    Signed-off-by: Avi Kivity <avi@redhat.com>
Commits on Sep 9, 2012
  1. @wildea01

    ARM: 7529/1: delay: set loops_per_jiffy when moving to timer-based loop

    wildea01 committed with Russell King
    The delay functions may be called by some platforms between switching to
    the timer-based delay loop but before calibration. In this case, the
    initial loops_per_jiffy may not be suitable for the timer (although a
    compromise may be achievable) and delay times may be considered too
    inaccurate.
    
    This patch updates loops_per_jiffy when switching to the timer-based
    delay loop so that delays are consistent prior to calibration.
    
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  2. @wildea01

    ARM: 7528/1: uaccess: annotate [__]{get,put}_user functions with migh…

    wildea01 committed with Russell King
    …t_fault()
    
    The user access functions may generate a fault, resulting in invocation
    of a handler that may sleep.
    
    This patch annotates the accessors with might_fault() so that we print a
    warning if they are invoked from atomic context and help lockdep keep
    track of mmap_sem.
    
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  3. ARM: 7527/1: uaccess: explicitly check __user pointer when !CPU_USE_D…

    Russell King committed
    …OMAINS
    
    The {get,put}_user macros don't perform range checking on the provided
    __user address when !CPU_HAS_DOMAINS.
    
    This patch reworks the out-of-line assembly accessors to check the user
    address against a specified limit, returning -EFAULT if is is out of
    range.
    
    [will: changed get_user register allocation to match put_user]
    [rmk: fixed building on older ARM architectures]
    
    Reported-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  4. KVM: x86: Check INVPCID feature bit in EBX of leaf 7

    Ren, Yongjie committed with Avi Kivity
    Checks and operations on the INVPCID feature bit should use EBX
    of CPUID leaf 7 instead of ECX.
    
    Signed-off-by: Junjie Mao <junjie.mao@intel.com>
    Signed-off-by: Yongjie Ren <yongjien.ren@intel.com>
    Signed-off-by: Avi Kivity <avi@redhat.com>
Commits on Sep 8, 2012
  1. Merge branch 'fixes-for-3.6' of git://git.linaro.org/people/mszyprows…

    committed
    …ki/linux-dma-mapping
    
    Pull DMA-mapping fixes from Marek Szyprowski:
     "Another set of fixes for ARM dma-mapping subsystem.
    
      Commit e9da6e9 replaced custom consistent buffer remapping code
      with generic vmalloc areas.  It however introduced some regressions
      caused by limited support for allocations in atomic context.  This
      series contains fixes for those regressions.
    
      For some subplatforms the default, pre-allocated pool for atomic
      allocations turned out to be too small, so a function for setting its
      size has been added.
    
      Another set of patches adds support for atomic allocations to
      IOMMU-aware DMA-mapping implementation.
    
      The last part of this pull request contains two fixes for Contiguous
      Memory Allocator, which relax too strict requirements."
    
    * 'fixes-for-3.6' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping:
      ARM: dma-mapping: IOMMU allocates pages from atomic_pool with GFP_ATOMIC
      ARM: dma-mapping: Introduce __atomic_get_pages() for __iommu_get_pages()
      ARM: dma-mapping: Refactor out to introduce __in_atomic_pool
      ARM: dma-mapping: atomic_pool with struct page **pages
      ARM: Kirkwood: increase atomic coherent pool size
      ARM: DMA-Mapping: print warning when atomic coherent allocation fails
      ARM: DMA-Mapping: add function for setting coherent pool size from platform code
      ARM: relax conditions required for enabling Contiguous Memory Allocator
      mm: cma: fix alignment requirements for contiguous regions
Commits on Sep 7, 2012
  1. @olofj

    Merge tag 'omap-fixes-for-v3.6-rc4' of git://git.kernel.org/pub/scm/l…

    olofj committed
    …inux/kernel/git/tmlind/linux-omap into fixes
    
    Fixes for timer, sram, memory corruption, and one board file that affect
    booting on various omaps. Then some PM related fixes for reset, sleep
    and wakeup.
    
    * tag 'omap-fixes-for-v3.6-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
      ARM: OMAP4: Fix array size for irq_target_cpu
      ARM: OMAP4: hwmod data: temporarily comment out data for the sl2if IP block
      ARM: OMAP: hwmod code: Disable module when hwmod enable fails
      ARM: OMAP3: hwmod data: fix iva2 reset info
      ARM: OMAP3xxx: clockdomain: fix software supervised wakeup/sleep
      ARM: OMAP2+: am33xx: Fix the timer fck clock naming convention
      ARM: OMAP: Config fix for omap3-touchbook board
      ARM: OMAP: sram: skip the first 16K on OMAP3 HS
      ARM: OMAP: sram: fix OMAP4 errata handling
      ARM: OMAP: timer: obey the !CONFIG_OMAP_32K_TIMER
  2. @wildea01

    ARM: 7526/1: traps: send SIGILL if get_user fails on undef handling path

    wildea01 committed with Russell King
    get_user may fail to load from the provided __user address due to an
    unhandled fault generated by the access.
    
    In the case of the undefined instruction trap, this results in failure
    to load the faulting instruction, in which case we should send SIGILL to
    the task rather than continue with potentially uninitialised data.
    
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  3. @bebarino

    ARM: 7521/1: Fix semihosting Kconfig text

    bebarino committed with Russell King
    It seems we were missing some text in the title for the
    semihosting DEBUG_LL option. Add in the "/O" and fix up some
    minor typos in the help text.
    
    Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  4. ARM: 7513/1: Make sure dtc is built before running it

    David Brown committed with Russell King
    'make dtbs' in a clean tree will try running the dtc before actually
    building it.  Make these rules depend upon the scripts to build it.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: David Brown <davidb@codeaurora.org>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  5. @bebarino

    ARM: 7512/1: Fix XIP build due to PHYS_OFFSET definition moving

    bebarino committed with Russell King
    During the p2v changes, the PHYS_OFFSET #define moved into a
    !__ASSEMBLY__ section. This causes a XIP build to fail with
    
     arch/arm/kernel/head.o: In function 'stext':
     arch/arm/kernel/head.S:146: undefined reference to 'PHYS_OFFSET'
    
    Momentarily leave the #ifndef __ASSEMBLY__ section so we can
    define PHYS_OFFSET for all compilation units.
    
    Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  6. @realmz @lliubbo

    blackfin: smp: adapt to generic smp helpers

    realmz committed with lliubbo
    Replace blackfin ipi message queue with generic smp helper function.
    
    Signed-off-by: Steven Miao <realmz6@gmail.com>
    Signed-off-by: Bob Liu <lliubbo@gmail.com>
  7. Merge tag 'stable/for-linus-3.6-rc4-tag' of git://git.kernel.org/pub/…

    committed
    …scm/linux/kernel/git/konrad/xen
    
    Pull Xen bug-fixes from Konrad Rzeszutek Wilk:
     * Fix for TLB flushing introduced in v3.6
     * Fix Xen-SWIOTLB not using proper DMA mask - device had 64bit but
       in a 32-bit kernel we need to allocate for coherent pages from a
       32-bit pool.
     * When trying to re-use P2M nodes we had a one-off error and triggered
       a BUG_ON check with specific CONFIG_ option.
     * When doing FLR in Xen-PCI-backend we would first do FLR then save the
       PCI configuration space. We needed to do it the other way around.
    
    * tag 'stable/for-linus-3.6-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
      xen/pciback: Fix proper FLR steps.
      xen: Use correct masking in xen_swiotlb_alloc_coherent.
      xen: fix logical error in tlb flushing
      xen/p2m: Fix one-off error in checking the P2M tree directory.
Commits on Sep 6, 2012
  1. Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/ker…

    committed
    …nel/git/arm/arm-soc
    
    Pull ARM SoC bug fixes from Olof Johansson:
     "Mostly Renesas and Atmel bugfixes this time, targeting boot and build
      problems.  A couple of patches for gemini and kirkwood as well.  On a
      whole nothing very controversial."
    
    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
      ARM: gemini: fix the gemini build
      ARM: shmobile: armadillo800eva: enable rw rootfs mount
      ARM: Kirkwood: Fix 'SZ_1M' undeclared here for db88f6281-bp-setup.c
      ARM: shmobile: mackerel: fixup usb module order
      ARM: shmobile: armadillo800eva: fixup: sound card detection order
      ARM: shmobile: marzen: fixup smsc911x id for regulator
      ARM: at91/feature-removal-schedule: delay at91_mci removal
      ARM: mach-shmobile: armadillo800eva: Enable power button as wakeup source
      ARM: mach-shmobile: armadillo800eva: Fix GPIO buttons descriptions
      ARM: at91/dts: remove partial parameter in at91sam9g25ek.dts
      ARM: at91/clock: fix PLLA overclock warning
      ARM: at91: fix rtc-at91sam9 irq issue due to sparse irq support
      ARM: at91: fix system timer irq issue due to sparse irq support
      ARM: shmobile: sh73a0: fixup RELOC_BASE of intca_irq_pins_desc
  2. uml: fix compile error in deliver_alarm()

    Miklos Szeredi committed with
    Fix the following compile error on UML.
    
      arch/um/os-Linux/time.c: In function 'deliver_alarm':
      arch/um/os-Linux/time.c:117:3: error: too few arguments to function 'alarm_handler'
      arch/um/os-Linux/internal.h:1:6: note: declared here
    
    The error was introduced by commit d3c1cfc ("um: pass siginfo to guest
    process") in 3.6-rc1.
    
    Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
    CC: Martin Pärtel <martin.partel@gmail.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Commits on Sep 5, 2012
  1. @tmlind

    Merge tag 'omap-fixes-a-for-3.6rc' of git://git.kernel.org/pub/scm/li…

    tmlind committed
    …nux/kernel/git/pjw/omap-pending into fixes
    
    Some hwmod, clockdomain, am335x fixes against v3.6-rc4.
    
    Test logs can be found here:
    
       http://www.pwsan.com/omap/testlogs/omap_fixes_a_3.6rc/20120904110254/
  2. @tmlind
  3. xen: fix logical error in tlb flushing

    Alex Shi committed with Konrad Rzeszutek Wilk
    While TLB_FLUSH_ALL gets passed as 'end' argument to
    flush_tlb_others(), the Xen code was made to check its 'start'
    parameter. That may give a incorrect op.cmd to MMUEXT_INVLPG_MULTI
    instead of MMUEXT_TLB_FLUSH_MULTI. Then it causes some page can not
    be flushed from TLB.
    
    This patch fixed this issue.
    
    Reported-by: Jan Beulich <jbeulich@suse.com>
    Signed-off-by: Alex Shi <alex.shi@intel.com>
    Acked-by: Jan Beulich <jbeulich@suse.com>
    Tested-by: Yongjie Ren <yongjie.ren@intel.com>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
  4. Merge commit '4cb38750d49010ae72e718d46605ac9ba5a851b4' into stable/f…

    Konrad Rzeszutek Wilk committed
    …or-linus-3.6
    
    * commit '4cb38750d49010ae72e718d46605ac9ba5a851b4': (6849 commits)
      bcma: fix invalid PMU chip control masks
      [libata] pata_cmd64x: whitespace cleanup
      libata-acpi: fix up for acpi_pm_device_sleep_state API
      sata_dwc_460ex: device tree may specify dma_channel
      ahci, trivial: fixed coding style issues related to braces
      ahci_platform: add hibernation callbacks
      libata-eh.c: local functions should not be exposed globally
      libata-transport.c: local functions should not be exposed globally
      sata_dwc_460ex: support hardreset
      ata: use module_pci_driver
      drivers/ata/pata_pcmcia.c: adjust suspicious bit operation
      pata_imx: Convert to clk_prepare_enable/clk_disable_unprepare
      ahci: Enable SB600 64bit DMA on MSI K9AGM2 (MS-7327) v2
      [libata] Prevent interface errors with Seagate FreeAgent GoFlex
      drivers/acpi/glue: revert accidental license-related 6b66d95 bits
      libata-acpi: add missing inlines in libata.h
      i2c-omap: Add support for I2C_M_STOP message flag
      i2c: Fall back to emulated SMBus if the operation isn't supported natively
      i2c: Add SCCB support
      i2c-tiny-usb: Add support for the Robofuzz OSIF USB/I2C converter
      ...
  5. xen/p2m: Fix one-off error in checking the P2M tree directory.

    Konrad Rzeszutek Wilk committed
    We would traverse the full P2M top directory (from 0->MAX_DOMAIN_PAGES
    inclusive) when trying to figure out whether we can re-use some of the
    P2M middle leafs.
    
    Which meant that if the kernel was compiled with MAX_DOMAIN_PAGES=512
    we would try to use the 512th entry. Fortunately for us the p2m_top_index
    has a check for this:
    
     BUG_ON(pfn >= MAX_P2M_PFN);
    
    which we hit and saw this:
    
    (XEN) domain_crash_sync called from entry.S
    (XEN) Domain 0 (vcpu#0) crashed on cpu#0:
    (XEN) ----[ Xen-4.1.2-OVM  x86_64  debug=n  Tainted:    C ]----
    (XEN) CPU:    0
    (XEN) RIP:    e033:[<ffffffff819cadeb>]
    (XEN) RFLAGS: 0000000000000212   EM: 1   CONTEXT: pv guest
    (XEN) rax: ffffffff81db5000   rbx: ffffffff81db4000   rcx: 0000000000000000
    (XEN) rdx: 0000000000480211   rsi: 0000000000000000   rdi: ffffffff81db4000
    (XEN) rbp: ffffffff81793db8   rsp: ffffffff81793d38   r8:  0000000008000000
    (XEN) r9:  4000000000000000   r10: 0000000000000000   r11: ffffffff81db7000
    (XEN) r12: 0000000000000ff8   r13: ffffffff81df1ff8   r14: ffffffff81db6000
    (XEN) r15: 0000000000000ff8   cr0: 000000008005003b   cr4: 00000000000026f0
    (XEN) cr3: 0000000661795000   cr2: 0000000000000000
    
    Fixes-Oracle-Bug: 14570662
    CC: stable@vger.kernel.org # only for v3.5
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
  6. Merge branch 'urgent' of git://git.kernel.org/pub/scm/linux/kernel/gi…

    Ingo Molnar committed
    …t/rric/oprofile into perf/urgent
    
    Pull s390 oprofile fix from Robert Richter.
    
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
  7. @ozbenh

    powerpc: Don't use __put_user() in patch_instruction

    ozbenh committed
    patch_instruction() can be called very early on ppc32, when the kernel
    isn't yet running at it's linked address. That can cause the !
    is_kernel_addr() test in __put_user() to trip and call might_sleep()
    which is very bad at that point during boot.
    
    Use a lower level function instead for now, at least until we get to
    rework ppc32 boot process to do the code patching later, like ppc64
    does.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
  8. @paulusmack @ozbenh

    powerpc: Make sure IPI handlers see data written by IPI senders

    paulusmack committed with ozbenh
    We have been observing hangs, both of KVM guest vcpu tasks and more
    generally, where a process that is woken doesn't properly wake up and
    continue to run, but instead sticks in TASK_WAKING state.  This
    happens because the update of rq->wake_list in ttwu_queue_remote()
    is not ordered with the update of ipi_message in
    smp_muxed_ipi_message_pass(), and the reading of rq->wake_list in
    scheduler_ipi() is not ordered with the reading of ipi_message in
    smp_ipi_demux().  Thus it is possible for the IPI receiver not to see
    the updated rq->wake_list and therefore conclude that there is nothing
    for it to do.
    
    In order to make sure that anything done before smp_send_reschedule()
    is ordered before anything done in the resulting call to scheduler_ipi(),
    this adds barriers in smp_muxed_message_pass() and smp_ipi_demux().
    The barrier in smp_muxed_message_pass() is a full barrier to ensure that
    there is a full ordering between the smp_send_reschedule() caller and
    scheduler_ipi().  In smp_ipi_demux(), we use xchg() rather than
    xchg_local() because xchg() includes release and acquire barriers.
    Using xchg() rather than xchg_local() makes sense given that
    ipi_message is not just accessed locally.
    
    This moves the barrier between setting the message and calling the
    cause_ipi() function into the individual cause_ipi implementations.
    Most of them -- those that used outb, out_8 or similar -- already had
    a full barrier because out_8 etc. include a sync before the MMIO
    store.  This adds an explicit barrier in the two remaining cases.
    
    These changes made no measurable difference to the speed of IPIs as
    measured using a simple ping-pong latency test across two CPUs on
    different cores of a POWER7 machine.
    
    The analysis of the reason why processes were not waking up properly
    is due to Milton Miller.
    
    Cc: stable@vger.kernel.org # v3.0+
    Reported-by: Milton Miller <miltonm@bga.com>
    Signed-off-by: Paul Mackerras <paulus@samba.org>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
  9. @antonblanchard @ozbenh

    powerpc: Restore correct DSCR in context switch

    antonblanchard committed with ozbenh
    During a context switch we always restore the per thread DSCR value.
    If we aren't doing explicit DSCR management
    (ie thread.dscr_inherit == 0) and the default DSCR changed while
    the process has been sleeping we end up with the wrong value.
    
    Check thread.dscr_inherit and select the default DSCR or per thread
    DSCR as required.
    
    This was found with the following test case, when running with
    more threads than CPUs (ie forcing context switching):
    
    http://ozlabs.org/~anton/junkcode/dscr_default_test.c
    
    With the four patches applied I can run a combination of all
    test cases successfully at the same time:
    
    http://ozlabs.org/~anton/junkcode/dscr_default_test.c
    http://ozlabs.org/~anton/junkcode/dscr_explicit_test.c
    http://ozlabs.org/~anton/junkcode/dscr_inherit_test.c
    
    Signed-off-by: Anton Blanchard <anton@samba.org>
    Cc: <stable@kernel.org> # 3.0+
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Something went wrong with that request. Please try again.