1. 09 Jul, 2013 7 commits
    • Helge Deller's avatar
      parisc: Fix gcc miscompilation in pa_memcpy() · 5b879d78
      Helge Deller authored
      When running the LTP testsuite one may hit this kernel BUG() with the
      write06 testcase:
      
      kernel BUG at mm/filemap.c:2023!
      CPU: 1 PID: 8614 Comm: writev01 Not tainted 3.10.0-rc7-64bit-c3000+ #6
      IASQ: 0000000000000000 0000000000000000 IAOQ: 00000000401e6e84 00000000401e6e88
       IIR: 03ffe01f    ISR: 0000000010340000  IOR: 000001fbe0380820
       CPU:        1   CR30: 00000000bef80000 CR31: ffffffffffffffff
       ORIG_R28: 00000000bdc192c0
       IAOQ[0]: iov_iter_advance+0x3c/0xc0
       IAOQ[1]: iov_iter_advance+0x40/0xc0
       RP(r2): generic_file_buffered_write+0x204/0x3f0
      Backtrace:
       [<00000000401e764c>] generic_file_buffered_write+0x204/0x3f0
       [<00000000401eab24>] __generic_file_aio_write+0x244/0x448
       [<00000000401eadc0>] generic_file_aio_write+0x98/0x150
       [<000000004024f460>] do_sync_readv_writev+0xc0/0x130
       [<000000004025037c>] compat_do_readv_writev+0x12c/0x340
       [<00000000402505f8>] compat_writev+0x68/0xa0
       [<0000000040251d88>] compat_SyS_writev+0x98/0xf8
      
      Reason for this crash is a gcc miscompilation in the fault handlers of
      pa_memcpy() which return the fault address instead of the copied bytes.
      Since this seems to be a generic problem with gcc-4.7.x (and below), it's
      better to simplify the fault handlers in pa_memcpy to avoid this problem.
      
      Here is a simple reproducer for the problem:
      
      int main(int argc, char **argv)
      {
      	int fd, nbytes;
      	struct iovec wr_iovec[] = {
      		{ "TEST STRING                     ",32},
      		{ (char*)0x40005000,32} }; // random memory.
      	fd = open(DATA_FILE, O_RDWR | O_CREAT, 0666);
      	nbytes = writev(fd, wr_iovec, 2);
      	printf("return value = %d, errno %d (%s)\n",
      		nbytes, errno, strerror(errno));
      	return 0;
      }
      
      In addition, John David Anglin wrote:
      There is no gcc PR as pa_memcpy is not legitimate C code. There is an
      implicit assumption that certain variables will contain correct values
      when an exception occurs and the code randomly jumps to one of the
      exception blocks.  There is no guarantee of this.  If a PR was filed, it
      would likely be marked as invalid.
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      Signed-off-by: default avatarJohn David Anglin <dave.anglin@bell.net>
      Cc: <stable@vger.kernel.org> # 3.8+
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      5b879d78
    • John David Anglin's avatar
      parisc: Ensure volatile space register %sr1 is not clobbered · e8d8fc21
      John David Anglin authored
      I still see the occasional random segv on rp3440.  Looking at one of
      these (a code 15), it appeared the problem must be with the cache
      handling of anonymous pages.  Reviewing this, I noticed that the space
      register %sr1 might be being clobbered when we flush an anonymous page.
      
      Register %sr1 is used for TLB purges in a couple of places.  These
      purges are needed on PA8800 and PA8900 processors to ensure cache
      consistency of flushed cache lines.
      
      The solution here is simply to move the %sr1 load into the TLB lock
      region needed to ensure that one purge executes at a time on SMP
      systems.  This was already the case for one use.  After a few days of
      operation, I haven't had a random segv on my rp3440.
      Signed-off-by: default avatarJohn David Anglin <dave.anglin@bell.net>
      Cc: <stable@vger.kernel.org> # 3.10
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      e8d8fc21
    • Helge Deller's avatar
      parisc: optimize mtsp(0,sr) inline assembly · 92b59929
      Helge Deller authored
      If the value which should be moved into a space register is zero, we can
      optimize the inline assembly to become "mtsp %r0,%srX".
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      Cc: <stable@vger.kernel.org> # 3.10
      92b59929
    • Helge Deller's avatar
      parisc: switch to gzip-compressed vmlinuz kernel · 594174d8
      Helge Deller authored
      The latest PA-RISC Boot Loader (palo) allows loading of gzip compressed
      vmlinuz kernels. So let's now switch to build a vmlinuz file when we
      build a palo boot image.
      
      PALO version 1.9 (or higher) is required for this which is available at
      git://git.kernel.org/pub/scm/linux/kernel/git/deller/palo.gitSigned-off-by: default avatarHelge Deller <deller@gmx.de>
      Cc: <stable@vger.kernel.org> # 3.10
      594174d8
    • Helge Deller's avatar
      parisc: document the shadow registers · a83f58bc
      Helge Deller authored
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      Cc: <stable@vger.kernel.org> # 3.10
      a83f58bc
    • Helge Deller's avatar
      parisc: more capabilities info in /proc/cpuinfo · 30a9f0b2
      Helge Deller authored
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      Cc: <stable@vger.kernel.org> # 3.10
      30a9f0b2
    • Helge Deller's avatar
      parisc: fix LMMIO mismatch between PAT length and MASK register · dac76f1b
      Helge Deller authored
      The LMMIO length reported by PAT and the length given by the LBA MASK
      register are not consistent. This leads e.g. to a not-working ATI FireGL
      card with the radeon DRM driver since the memory can't be mapped.
      
      Fix this by correctly adjusting the resource sizes.
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      Cc: <stable@vger.kernel.org> # 3.10
      dac76f1b
  2. 07 Jul, 2013 2 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma · d2b4a646
      Linus Torvalds authored
      Pull slave-dmaengine updates from Vinod Koul:
       "Once you have some time from extended weekend celebrations please
        consider pulling the following to get:
         - Various fixes and PCI driver for dw_dmac by Andy
         - DT binding for imx-dma by Markus & imx-sdma by Shawn
         - DT fixes for dmaengine by Lars
         - jz4740 dmac driver by Lars
         - and various fixes across the drivers"
      
      What "extended weekend celebrations"?  I'm in the merge window, who has
      time for extended celebrations..
      
      * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (40 commits)
        DMA: shdma: add DT support
        DMA: shdma: shdma_chan_filter() has to be in shdma-base.h
        DMA: shdma: (cosmetic) don't re-calculate a pointer
        dmaengine: at_hdmac: prepare clk before calling enable
        dmaengine/trivial: at_hdmac: add curly brackets to if/else expressions
        dmaengine: at_hdmac: remove unsuded atc_cleanup_descriptors()
        dmaengine: at_hdmac: add FIFO configuration parameter to DMA DT binding
        ARM: at91: dt: add header to define at_hdmac configuration
        MIPS: jz4740: Correct clock gate bit for DMA controller
        MIPS: jz4740: Remove custom DMA API
        MIPS: jz4740: Register jz4740 DMA device
        dma: Add a jz4740 dmaengine driver
        MIPS: jz4740: Acquire and enable DMA controller clock
        dma: mmp_tdma: disable irq when disabling dma channel
        dmaengine: PL08x: Avoid collisions with get_signal() macro
        dmaengine: dw: select DW_DMAC_BIG_ENDIAN_IO automagically
        dma: dw: add PCI part of the driver
        dma: dw: split driver to library part and platform code
        dma: move dw_dmac driver to an own directory
        dw_dmac: don't check resource with devm_ioremap_resource
        ...
      d2b4a646
    • Linus Torvalds's avatar
      Merge branch 'cpuinit-delete' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux · 8dce5f3d
      Linus Torvalds authored
      Pull first stage of __cpuinit removal from Paul Gortmaker:
       "The two commits here 1) dummy out all the __cpuinit macros so that we
        no longer generate such sections, and then 2) remove all the section
        processing that we used to do for those sections.
      
        This makes all the __cpuinit and friends no-ops, so that we can remove
        the use cases of it at our leisure.  Expect stage 2, which does the
        tree wide removal sweep at the end of the merge window."
      
      * 'cpuinit-delete' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
        modpost: remove all traces of cpuinit/cpuexit sections
        init.h: remove __cpuinit sections from the kernel
      8dce5f3d
  3. 06 Jul, 2013 6 commits
    • Linus Torvalds's avatar
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 21884a83
      Linus Torvalds authored
      Pull timer core updates from Thomas Gleixner:
       "The timer changes contain:
      
         - posix timer code consolidation and fixes for odd corner cases
      
         - sched_clock implementation moved from ARM to core code to avoid
           duplication by other architectures
      
         - alarm timer updates
      
         - clocksource and clockevents unregistration facilities
      
         - clocksource/events support for new hardware
      
         - precise nanoseconds RTC readout (Xen feature)
      
         - generic support for Xen suspend/resume oddities
      
         - the usual lot of fixes and cleanups all over the place
      
        The parts which touch other areas (ARM/XEN) have been coordinated with
        the relevant maintainers.  Though this results in an handful of
        trivial to solve merge conflicts, which we preferred over nasty cross
        tree merge dependencies.
      
        The patches which have been committed in the last few days are bug
        fixes plus the posix timer lot.  The latter was in akpms queue and
        next for quite some time; they just got forgotten and Frederic
        collected them last minute."
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (59 commits)
        hrtimer: Remove unused variable
        hrtimers: Move SMP function call to thread context
        clocksource: Reselect clocksource when watchdog validated high-res capability
        posix-cpu-timers: don't account cpu timer after stopped thread runtime accounting
        posix_timers: fix racy timer delta caching on task exit
        posix-timers: correctly get dying task time sample in posix_cpu_timer_schedule()
        selftests: add basic posix timers selftests
        posix_cpu_timers: consolidate expired timers check
        posix_cpu_timers: consolidate timer list cleanups
        posix_cpu_timer: consolidate expiry time type
        tick: Sanitize broadcast control logic
        tick: Prevent uncontrolled switch to oneshot mode
        tick: Make oneshot broadcast robust vs. CPU offlining
        x86: xen: Sync the CMOS RTC as well as the Xen wallclock
        x86: xen: Sync the wallclock when the system time is set
        timekeeping: Indicate that clock was set in the pvclock gtod notifier
        timekeeping: Pass flags instead of multiple bools to timekeeping_update()
        xen: Remove clock_was_set() call in the resume path
        hrtimers: Support resuming with two or more CPUs online (but stopped)
        timer: Fix jiffies wrap behavior of round_jiffies_common()
        ...
      21884a83
    • Linus Torvalds's avatar
      Merge branch 'for-v3.11' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping · 8b70a90c
      Linus Torvalds authored
      Pull ARM DMA mapping updates from Marek Szyprowski:
       "This contains important bugfixes and an update for IOMMU integration
        support for ARM architecture"
      
      * 'for-v3.11' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping:
        ARM: dma: Drop __GFP_COMP for iommu dma memory allocations
        ARM: DMA-mapping: mark all !DMA_TO_DEVICE pages in unmapping as clean
        ARM: dma-mapping: NULLify dev->archdata.mapping pointer on detach
        ARM: dma-mapping: convert DMA direction into IOMMU protection attributes
        ARM: dma-mapping: Get pages if the cpu_addr is out of atomic_pool
      8b70a90c
    • Linus Torvalds's avatar
      Merge tag 'metag-for-v3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag · 7644a448
      Linus Torvalds authored
      Pull Metag architecture changes from James Hogan:
       - Infrastructure and DT files for TZ1090 SoC (pin control drivers
         already merged via pinctrl tree).
       - Panic on boot instead of just warning if cache aliasing possible.
       - Various SMP/hotplug fixes.
       - Various other randconfig/sparse fixes.
      
      * tag 'metag-for-v3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag: (24 commits)
        metag: move EXPORT_SYMBOL(csum_partial) to metag_ksyms.c
        metag: cpu hotplug: route_irq: preserve irq mask
        metag: kick: add missing irq_enter/exit to kick_handler()
        metag: smp: don't spin waiting for CPU to start
        metag: smp: enable irqs after set_cpu_online
        metag: use clear_tasks_mm_cpumask()
        metag: tz1090: select and instantiate pinctrl-tz1090-pdc
        metag: tz1090: select and instantiate pinctrl-tz1090
        metag: don't check for cache aliasing on smp cpu boot
        metag: panic if cache aliasing possible
        metag: *.dts: include using preprocessor
        metag: add <dt-bindings/> symlink
        metag/.gitignore: Extend the *.dtb pattern to match the dtb.S files
        metag/traps: include setup.h for the per_cpu_trap_init declaration
        metag/traps: Mark die() as __noreturn to match the declaration.
        metag/processor.h: Add missing cpuinfo_op declaration.
        metag/setup: Restrict scope for the capabilities variable
        metag/mm/cache: Restrict scope for metag_lnkget_probe
        metag/asm/irq.h: Declare init_IRQ
        metag/kernel/irq.c: Declare root_domain as static
        ...
      7644a448
    • Linus Torvalds's avatar
      Merge tag 'xenarm-for-3.11-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/sstabellini/xen · 16984ce1
      Linus Torvalds authored
      Pull Xen ARM update rom Stefano Stabellini:
       "Just one commit this time: the implementation of the tmem hypercall
        for arm and arm64"
      
      * tag 'xenarm-for-3.11-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/sstabellini/xen:
        xen/arm and xen/arm64: implement HYPERVISOR_tmem_op
      16984ce1
    • Linus Torvalds's avatar
      Merge tag 'irqdomain-for-linus' of git://git.secretlab.ca/git/linux · 2cb7b5a3
      Linus Torvalds authored
      Pull irqdomain refactoring from Grant Likely:
       "This is the long awaited simplification of irqdomain.  It gets rid of
        the different types of irq domains and instead both linear and tree
        mappings can be supported in a single domain.  Doing this removes a
        lot of special case code and makes irq domains simpler to understand
        overall"
      
      * tag 'irqdomain-for-linus' of git://git.secretlab.ca/git/linux:
        irq: fix checkpatch error
        irqdomain: Include hwirq number in /proc/interrupts
        irqdomain: make irq_linear_revmap() a fast path again
        irqdomain: remove irq_domain_generate_simple()
        irqdomain: Refactor irq_domain_associate_many()
        irqdomain: Beef up debugfs output
        irqdomain: Clean up aftermath of irq_domain refactoring
        irqdomain: Eliminate revmap type
        irqdomain: merge linear and tree reverse mappings.
        irqdomain: Add a name field
        irqdomain: Replace LEGACY mapping with LINEAR
        irqdomain: Relax failure path on setting up mappings
      2cb7b5a3
    • Thomas Gleixner's avatar
      hrtimer: Remove unused variable · 73b0cd67
      Thomas Gleixner authored
      Sigh, should have noticed myself.
      
      Reported-by: fengguang.wu@intel.com
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      73b0cd67
  4. 05 Jul, 2013 25 commits