1. 04 Dec, 2013 6 commits
    • Linus Torvalds's avatar
      Merge tag 'gpio-v3.13-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 8ecffd79
      Linus Torvalds authored
      Pull GPIO fixes from Linus Walleij:
       "Here are a few more GPIO patches, we're a bit noisy for being the GPIO
        subsystem, mostly due to the new descriptor API, but all is getting
        into shape.
      
         - Fix compile warnings
      
         - Fix overly talkative diagnostic messages from usual use cases wrt
           GPIO descriptors
      
         - Add a documentation 00-INDEX
      
         - Use platform GPIOs as fallback when ACPI or device tree is used as
           the primary means to get GPIO lines
      
         - A bug fix for the MPC8572/MPC8536 fixing erroneous input data"
      
      * tag 'gpio-v3.13-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
        gpiolib: change a warning to debug message when failing to get gpio
        powerpc/gpio: Fix the wrong GPIO input data on MPC8572/MPC8536
        gpiolib: use platform GPIO mappings as fallback
        Documentation: gpiolib: add 00-INDEX file
        gpiolib: fix lookup of platform-mapped GPIOs
        gpiolib: add missing declarations
      8ecffd79
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 36059ee2
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "Another batch of fixes for ARM SoCs for 3.13.  The diffstat is large,
        mostly because of:
      
         - Another set of fixes to fix regressions caused by moving OMAP from
           board files to DT.  Tony thinks this was the last major set of
           fixes, with maybe just a few small patches to follow.
         - More fixes for Marvell platforms, most dealing with misdescribed
           PCIe hardware, i.e.  incorrect number of busses on some SoCs, etc.
           The line delta adds up due to various ranges moving around when
           this is fixed.
      
        But there's also:
      
         - Some smaller tweaks to defconfigs to make more boards bootable in
           my test setup for better coverage.
         - There are also a few other smaller fixes, a short series for at91,
           a couple of reverts for ux500, etc"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (39 commits)
        arm: dts: socfpga: Change some clocks of gate-clk type to perip-clk
        arm: socfpga: Enable ARM_TWD for socfpga
        ARM: multi_v7_defconfig: enable SDHCI_BCM_KONA and MMC_BLOCK_MINORS=16
        ARM: sunxi_defconfig: enable NFS, TMPFS, PRINTK_TIME and nfsroot support
        ARM: multi_v7_defconfig: enable network for BeagleBone Black
        ARM: dts: Fix the name of supplies for smsc911x shared by OMAP
        ARM: OMAP2+: Powerdomain: Fix unchecked dereference of arch_pwrdm
        ARM: dts: omap3-beagle: Add omap-twl4030 audio support
        ARM: dts: omap4-sdp: Fix pin muxing for wl12xx
        ARM: dts: omap4-panda-common: Fix pin muxing for wl12xx
        ARM: at91: fixed unresolved symbol "at91_pm_set_standby" when built without CONFIG_PM
        ARM: at91: add usart3 alias to dtsi
        ARM: at91: sama5d3: reduce TWI internal clock frequency
        mmc: omap: Fix I2C dependency and make driver usable with device tree
        mmc: omap: Fix DMA configuration to not rely on device id
        ARM: dts: omap3-beagle: Fix USB host on beagle boards (for 3.13)
        ARM: dts: omap3-igep0020: name twl4030 VPLL2 regulator as vdds_dsi
        ARM: dts: AM33XX IGEP0033: add USB support
        ARM: dts: AM33XX BASE0033: add 32KBit EEPROM support
        ARM: dts: AM33XX BASE0033: add pinmux and user led support
        ...
      36059ee2
    • Linus Torvalds's avatar
      Merge branch 'parisc-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 8aa9c367
      Linus Torvalds authored
      Pull parsic updates from Helge Deller:
       - a fix for the mmap(MAP_FIXED|MAP_SHARED) syscall to the same address
         which was already given in a previous call (fixes locale-gen on
         debian)
       - change the memory layout of the kernel to avoid the need for the
         -mlong-calls compiler option (depends on commit 5ecbe3c3 -
         "kernel/extable: fix address-checks for core_kernel and init areas")
       - defconfig updates, e.g.  use the SIL680 driver instead of the SIIMAGE
         driver
       - add more parisc machine names to the machine database
      
      * 'parisc-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: update 64bit defconfigs and use SIL680 instead of SIIMAGE driver
        parisc: remove CONFIG_MLONGCALLS=y from defconfigs
        parisc: fix kernel memory layout in vmlinux.ld.S
        parisc: use kernel_text_address() in unwind functions
        parisc: remove empty SERIAL_PORT_DFNS in serial.h
        parisc: add some more machine names to hardware database
        parisc: fix mmap(MAP_FIXED|MAP_SHARED) to already mmapped address
      8aa9c367
    • Linus Torvalds's avatar
      Merge tag 'squashfs-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-next · 27871790
      Linus Torvalds authored
      Pull squashfs bugfix from Phillip Lougher:
       "Just a single bug fix to the new "directly decompress into the page
        cache" code"
      
      * tag 'squashfs-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-next:
        Squashfs: fix failure to unlock pages on decompress error
      27871790
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · d644c026
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
       "This push fixes a number of crashes triggered by a previous crypto
        self-test update.  It also fixes a build problem in the caam driver,
        as well as a concurrency issue in s390.
      
        Finally there is a pair of fixes to bugs in the crypto scatterwalk
        code and authenc that may lead to crashes"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: testmgr - fix sglen in test_aead for case 'dst != src'
        crypto: talitos - fix aead sglen for case 'dst != src'
        crypto: caam - fix aead sglen for case 'dst != src'
        crypto: ccm - Fix handling of zero plaintext when computing mac
        crypto: s390 - Fix aes-xts parameter corruption
        crypto: talitos - corrrectly handle zero-length assoc data
        crypto: scatterwalk - Set the chain pointer indication bit
        crypto: authenc - Find proper IV address in ablkcipher callback
        crypto: caam - Add missing Job Ring include
      d644c026
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1ab231b2
      Linus Torvalds authored
      Pull timer fixes from Thomas Gleixner:
      
       - timekeeping: Cure a subtle drift issue on GENERIC_TIME_VSYSCALL_OLD
      
       - nohz: Make CONFIG_NO_HZ=n and nohz=off command line option behave the
         same way.  Fixes a long standing load accounting wreckage.
      
       - clocksource/ARM: Kconfig update to avoid ARM=n wreckage
      
       - clocksource/ARM: Fixlets for the AT91 and SH clocksource/clockevents
      
       - Trivial documentation update and kzalloc conversion from akpms pile
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        nohz: Fix another inconsistency between CONFIG_NO_HZ=n and nohz=off
        time: Fix 1ns/tick drift w/ GENERIC_TIME_VSYSCALL_OLD
        clocksource: arm_arch_timer: Hide eventstream Kconfig on non-ARM
        clocksource: sh_tmu: Add clk_prepare/unprepare support
        clocksource: sh_tmu: Release clock when sh_tmu_register() fails
        clocksource: sh_mtu2: Add clk_prepare/unprepare support
        clocksource: sh_mtu2: Release clock when sh_mtu2_register() fails
        ARM: at91: rm9200: switch back to clockevents_config_and_register
        tick: Document tick_do_timer_cpu
        timer: Convert kmalloc_node(...GFP_ZERO...) to kzalloc_node(...)
        NOHZ: Check for nohz active instead of nohz enabled
      1ab231b2
  2. 03 Dec, 2013 16 commits
  3. 02 Dec, 2013 18 commits
    • Linus Torvalds's avatar
      Merge branch 'leds-fixes-for-3.13' of... · dea4f48a
      Linus Torvalds authored
      Merge branch 'leds-fixes-for-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds
      
      Pull LED subsystem bugfix from Bryan Wu.
      
      * 'leds-fixes-for-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:
        leds: pwm: Fix for deferred probe in DT booted mode
      dea4f48a
    • Peter Ujfalusi's avatar
      leds: pwm: Fix for deferred probe in DT booted mode · aa1a6d6d
      Peter Ujfalusi authored
      We need to make sure that the error code from devm_of_pwm_get() is the one
      the module returns in case of failure.
      Restructure the code to make this possible for DT booted case.
      With this patch the driver can ask for deferred probing when the board is
      booted with DT.
      Fixes for example omap4-sdp board's keyboard backlight led.
      Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@ti.com>
      Signed-off-by: default avatarBryan Wu <cooloney@gmail.com>
      aa1a6d6d
    • Linus Torvalds's avatar
      uio: we cannot mmap unaligned page contents · b6550287
      Linus Torvalds authored
      In commit 7314e613 ("Fix a few incorrectly checked
      [io_]remap_pfn_range() calls") the uio driver started more properly
      checking the passed-in user mapping arguments against the size of the
      actual uio driver data.
      
      That in turn exposed that some driver authors apparently didn't realize
      that mmap can only work on a page granularity, and had tried to use it
      with smaller mappings, with the new size check catching that out.
      
      So since it's not just the user mmap() arguments that can be confused,
      make the uio mmap code also verify that the uio driver has the memory
      allocated at page boundaries in order for mmap to work.  If the device
      memory isn't properly aligned, we return
      
        [ENODEV]
          The fildes argument refers to a file whose type is not supported by mmap().
      
      as per the open group documentation on mmap.
      Reported-by: default avatarHolger Brunck <holger.brunck@keymile.com>
      Acked-by: default avatarGreg KH <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b6550287
    • Florian Vaussard's avatar
      ARM: dts: Fix the name of supplies for smsc911x shared by OMAP · ac46bf39
      Florian Vaussard authored
      drivers/net/ethernet/smsc/smsc911x.c is expecting supplies named
      "vdd33a" and "vddvario". Currently the shared DTS file provides
      "vmmc" and "vmmc_aux", and the supply lookup will fail:
      
      smsc911x 2c000000.ethernet: Looking up vdd33a-supply from device tree
      smsc911x 2c000000.ethernet: Looking up vdd33a-supply property in node /ocp/gpmc@6e000000/ethernet@gpmc failed
      smsc911x 2c000000.ethernet: Looking up vddvario-supply from device tree
      smsc911x 2c000000.ethernet: Looking up vddvario-supply property in node /ocp/gpmc@6e000000/ethernet@gpmc failed
      
      Fix it!
      
      Looks like commmit 6b2978ac (ARM: dts: Shared file for omap GPMC
      connected smsc911x) made the problem more visible by moving the smc911x
      configuration from the omap3-igep0020.dts file to the generic file.
      But it seems we've had this problem since commit d72b4415
      (ARM: dts: omap3-igep0020: Add SMSC911x LAN chip support).
      
      Tested on OMAP3 Overo platform.
      Signed-off-by: default avatarFlorian Vaussard <florian.vaussard@epfl.ch>
      [tony@atomide.com: updated comments for the commits causing the problem]
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      ac46bf39
    • Rajendra Nayak's avatar
      ARM: OMAP2+: Powerdomain: Fix unchecked dereference of arch_pwrdm · 1cfc4bdd
      Rajendra Nayak authored
      Commit 'cd8abed1' "ARM: OMAP2+: Powerdomain: Remove the need to
      always have a voltdm associated to a pwrdm" leads to the following
      Smatch complaint:
      
      arch/arm/mach-omap2/powerdomain.c:131 _pwrdm_register()
      	 error: we previously assumed 'arch_pwrdm' could be null (see line 105)
      
      So, fix the unchecked dereference of arch_pwrdm.
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Acked-by: default avatarNishanth Menon <nm@ti.com>
      Signed-off-by: default avatarRajendra Nayak <rnayak@ti.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      1cfc4bdd
    • Jarkko Nikula's avatar
      ARM: dts: omap3-beagle: Add omap-twl4030 audio support · 33e9c392
      Jarkko Nikula authored
      This adds typical McBSP2-TWL4030 audio description to the legacy
      Beagle Board.
      Signed-off-by: default avatarJarkko Nikula <jarkko.nikula@bitmer.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      33e9c392
    • Balaji T K's avatar
      ARM: dts: omap4-sdp: Fix pin muxing for wl12xx · 2562f528
      Balaji T K authored
      Mux mode for wlan/sdmmc5 should be MODE0 in pinmux_wl12xx_pins and
      Enable Pull up on sdmmc5_clk to detect SDIO card.
      
      This fixes WLAN on omap4-sdp that got broken in v3.10 when we
      moved omap4 to boot using device tree only as I did not have
      the WL12XX card in my omap4 SDP to test with. The commit that
      attempted to make WL12XX working on omap4 SDP was 775d2418
      (ARM: dts: Fix muxing and regulator for wl12xx on the SDIO
      bus for blaze).
      Signed-off-by: default avatarBalaji T K <balajitk@ti.com>
      [tony@atomide.com: updated comments for the regression]
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      2562f528
    • Balaji T K's avatar
      ARM: dts: omap4-panda-common: Fix pin muxing for wl12xx · 2ba2866f
      Balaji T K authored
      pin mux wl12xx_gpio and wl12xx_pins should be part of omap4_pmx_core
      and not omap4_pmx_wkup. So, move wl12xx_* to omap4_pmx_core.
      
      Fix the following error message:
      pinctrl-single 4a31e040.pinmux: mux offset out of range: 0x38 (0x38)
      pinctrl-single 4a31e040.pinmux: could not add functions for pinmux_wl12xx_pins 56x
      
      SDIO card is not detected after moving pin mux to omap4_pmx_core since
      sdmmc5_clk pull is disabled. Enable Pull up on sdmmc5_clk to detect SDIO card.
      
      This fixes a regression where WLAN did not work after a warm reset
      or after one up/down cycle that happened when we move omap4 to boot
      using device tree only. For reference, the kernel bug is described at:
      
      https://bugzilla.kernel.org/show_bug.cgi?id=63821
      
      Cc: stable@vger.kernel.org # v3.10+
      Signed-off-by: default avatarBalaji T K <balajitk@ti.com>
      [tony@atomide.com: update comments to describe the regression]
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      2ba2866f
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a45299e7
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       - Correction of fuzzy and fragile IRQ_RETVAL macro
       - IRQ related resume fix affecting only XEN
       - ARM/GIC fix for chained GIC controllers
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip: Gic: fix boot for chained gics
        irq: Enable all irqs unconditionally in irq_resume
        genirq: Correct fuzzy and fragile IRQ_RETVAL() definition
      a45299e7
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a0b57ca3
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
       "Various smaller fixlets, all over the place"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/doc: Fix generation of device-drivers
        sched: Expose preempt_schedule_irq()
        sched: Fix a trivial typo in comments
        sched: Remove unused variable in 'struct sched_domain'
        sched: Avoid NULL dereference on sd_busy
        sched: Check sched_domain before computing group power
        MAINTAINERS: Update file patterns in the lockdep and scheduler entries
      a0b57ca3
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e321ae4c
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Misc kernel and tooling fixes"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        tools lib traceevent: Fix conversion of pointer to integer of different size
        perf/trace: Properly use u64 to hold event_id
        perf: Remove fragile swevent hlist optimization
        ftrace, perf: Avoid infinite event generation loop
        tools lib traceevent: Fix use of multiple options in processing field
        perf header: Fix possible memory leaks in process_group_desc()
        perf header: Fix bogus group name
        perf tools: Tag thread comm as overriden
      e321ae4c
    • Linus Torvalds's avatar
      Merge tag 'stable/for-linus-3.13-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · bcc2f9b7
      Linus Torvalds authored
      Pull Xen bug-fixes from Konrad Rzeszutek Wilk:
       "Fixes to patches that went in this merge window along with a latent
        bug:
         - Fix lazy flushing in case m2p override fails.
         - Fix module compile issues with ARM/Xen
         - Add missing call to DMA map page for Xen SWIOTLB for ARM"
      
      * tag 'stable/for-linus-3.13-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen/gnttab: leave lazy MMU mode in the case of a m2p override failure
        xen/arm: p2m_init and p2m_lock should be static
        arm/xen: Export phys_to_mach to fix Xen module link errors
        swiotlb-xen: add missing xen_dma_map_page call
      bcc2f9b7
    • Linus Torvalds's avatar
      Merge tag 'spi-v3.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · aeac8103
      Linus Torvalds authored
      Pull spi fixes from Mark Brown:
       "A smattering of driver specific fixes here, including a bunch for a
        long standing common pattern in the error handling paths, and a fix
        for an embarrassing thinko in the new devm master registration code"
      
      * tag 'spi-v3.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi/pxa2xx: Restore private register bits.
        spi/qspi: Fix qspi remove path.
        spi/qspi: cleanup pm_runtime error check.
        spi/qspi: set correct platform drvdata in ti_qspi_probe()
        spi/pxa2xx: add new ACPI IDs
        spi: core: invert success test in devm_spi_register_master
        spi: spi-mxs: fix reference leak to master in mxs_spi_remove()
        spi: bcm63xx: fix reference leak to master in bcm63xx_spi_remove()
        spi: txx9: fix reference leak to master in txx9spi_remove()
        spi: mpc512x: fix reference leak to master in mpc512x_psc_spi_do_remove()
        spi: rspi: use platform drvdata correctly in rspi_remove()
        spi: bcm2835: fix reference leak to master in bcm2835_spi_remove()
      aeac8103
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 5fc92de3
      Linus Torvalds authored
      Pull networking updates from David Miller:
       "Here is a pile of bug fixes that accumulated while I was in Europe"
      
       1) In fixing kernel leaks to userspace during copying of socket
          addresses, we broke a case that used to work, namely the user
          providing a buffer larger than the in-kernel generic socket address
          structure.  This broke Ruby amongst other things.  Fix from Dan
          Carpenter.
      
       2) Fix regression added by byte queue limit support in 8139cp driver,
          from Yang Yingliang.
      
       3) The addition of MSG_SENDPAGE_NOTLAST buggered up a few sendpage
          implementations, they should just treat it the same as MSG_MORE.
          Fix from Richard Weinberger and Shawn Landden.
      
       4) Handle icmpv4 errors received on ipv6 SIT tunnels correctly, from
          Oussama Ghorbel.  In particular we should send an ICMPv6 unreachable
          in such situations.
      
       5) Fix some regressions in the recent genetlink fixes, in particular
          get the pmcraid driver to use the new safer interfaces correctly.
          From Johannes Berg.
      
       6) macvtap was converted to use a per-cpu set of statistics, but some
          code was still bumping tx_dropped elsewhere.  From Jason Wang.
      
       7) Fix build failure of xen-netback due to missing include on some
          architectures, from Andy Whitecroft.
      
       8) macvtap double counts received packets in statistics, fix from Vlad
          Yasevich.
      
       9) Fix various cases of using *_STATS_BH() when *_STATS() is more
          appropriate.  From Eric Dumazet and Hannes Frederic Sowa.
      
      10) Pktgen ipsec mode doesn't update the ipv4 header length and checksum
          properly after encapsulation.  Fix from Fan Du.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (61 commits)
        net/mlx4_en: Remove selftest TX queues empty condition
        {pktgen, xfrm} Update IPv4 header total len and checksum after tranformation
        virtio_net: make all RX paths handle erors consistently
        virtio_net: fix error handling for mergeable buffers
        virtio_net: Fixed a trivial typo (fitler --> filter)
        netem: fix gemodel loss generator
        netem: fix loss 4 state model
        netem: missing break in ge loss generator
        net/hsr: Support iproute print_opt ('ip -details ...')
        net/hsr: Very small fix of comment style.
        MAINTAINERS: Added net/hsr/ maintainer
        ipv6: fix possible seqlock deadlock in ip6_finish_output2
        ixgbe: Make ixgbe_identify_qsfp_module_generic static
        ixgbe: turn NETIF_F_HW_L2FW_DOFFLOAD off by default
        ixgbe: ixgbe_fwd_ring_down needs to be static
        e1000: fix possible reset_task running after adapter down
        e1000: fix lockdep warning in e1000_reset_task
        e1000: prevent oops when adapter is being closed and reset simultaneously
        igb: Fixed Wake On LAN support
        inet: fix possible seqlock deadlocks
        ...
      5fc92de3
    • Linus Torvalds's avatar
      vfs: fix subtle use-after-free of pipe_inode_info · b0d8d229
      Linus Torvalds authored
      The pipe code was trying (and failing) to be very careful about freeing
      the pipe info only after the last access, with a pattern like:
      
              spin_lock(&inode->i_lock);
              if (!--pipe->files) {
                      inode->i_pipe = NULL;
                      kill = 1;
              }
              spin_unlock(&inode->i_lock);
              __pipe_unlock(pipe);
              if (kill)
                      free_pipe_info(pipe);
      
      where the final freeing is done last.
      
      HOWEVER.  The above is actually broken, because while the freeing is
      done at the end, if we have two racing processes releasing the pipe
      inode info, the one that *doesn't* free it will decrement the ->files
      count, and unlock the inode i_lock, but then still use the
      "pipe_inode_info" afterwards when it does the "__pipe_unlock(pipe)".
      
      This is *very* hard to trigger in practice, since the race window is
      very small, and adding debug options seems to just hide it by slowing
      things down.
      
      Simon originally reported this way back in July as an Oops in
      kmem_cache_allocate due to a single bit corruption (due to the final
      "spin_unlock(pipe->mutex.wait_lock)" incrementing a field in a different
      allocation that had re-used the free'd pipe-info), it's taken this long
      to figure out.
      
      Since the 'pipe->files' accesses aren't even protected by the pipe lock
      (we very much use the inode lock for that), the simple solution is to
      just drop the pipe lock early.  And since there were two users of this
      pattern, create a helper function for it.
      
      Introduced commit ba5bb147 ("pipe: take allocation and freeing of
      pipe_inode_info out of ->i_mutex").
      Reported-by: default avatarSimon Kirby <sim@hostway.ca>
      Reported-by: default avatarIan Applegate <ia@cloudflare.com>
      Acked-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Cc: stable@kernel.org   # v3.10+
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b0d8d229
    • Brent Taylor's avatar
      ARM: at91: fixed unresolved symbol "at91_pm_set_standby" when built without CONFIG_PM · 7093bf2b
      Brent Taylor authored
      If CONFIG_PM is not defined, then arch/arm/mach-at91/pm.c is not
      compiled in.  This patch creates an inline function that does nothing
      if CONFIG_PM is not defined.
      Signed-off-by: default avatarBrent Taylor <motobud@gmail.com>
      Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
      7093bf2b
    • Nicolas Ferre's avatar
      ARM: at91: add usart3 alias to dtsi · d2607c3b
      Nicolas Ferre authored
      Alias was missing for SoC of the at91sam9x5 familly that embed USART3.
      Reported-by: default avatarJiri Prchal <jiri.prchal@aksignal.cz>
      [b.brezillon@overkiz.com: advised to place changes in at91sam9x5_usart3.dtsi]
      Acked-by: default avatarBoris BREZILLON <b.brezillon@overkiz.com>
      Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
      d2607c3b
    • Ludovic Desroches's avatar
      ARM: at91: sama5d3: reduce TWI internal clock frequency · 58e7b1d5
      Ludovic Desroches authored
      With some devices, transfer hangs during I2C frame transmission. This issue
      disappears when reducing the internal frequency of the TWI IP. Even if it is
      indicated that internal clock max frequency is 66MHz, it seems we have
      oversampling on I2C signals making TWI believe that a transfer in progress
      is done.
      
      This fix has no impact on the I2C bus frequency.
      
      Cc: <stable@vger.kernel.org> #3.10+
      Signed-off-by: default avatarLudovic Desroches <ludovic.desroches@atmel.com>
      Acked-by: default avatarWolfram Sang <wsa@the-dreams.de>
      Acked-by: default avatarJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
      Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
      58e7b1d5