1. 16 May, 2012 1 commit
    • Chris Metcalf's avatar
      arch/tile: fix up some issues in calling do_work_pending() · fc327e26
      Chris Metcalf authored
      First, we were at risk of handling thread-info flags, in particular
      do_signal(), when returning from kernel space.  This could happen
      after a failed kernel_execve(), or when forking a kernel thread.
      The fix is to test in do_work_pending() for user_mode() and return
      immediately if so; we already had this test for one of the flags,
      so I just hoisted it to the top of the function.
      
      Second, if a ptraced process updated the callee-saved registers
      in the ptregs struct and then processed another thread-info flag, we
      would overwrite the modifications with the original callee-saved
      registers.  To fix this, we add a register to note if we've already
      saved the registers once, and skip doing it on additional passes
      through the loop.  To avoid a performance hit from the couple of
      extra instructions involved, I modified the GET_THREAD_INFO() macro
      to be guaranteed to be one instruction, then bundled it with adjacent
      instructions, yielding an overall net savings.
      Reported-By: default avatarAl Viro <viro@ZenIV.linux.org.uk>
      Signed-off-by: default avatarChris Metcalf <cmetcalf@tilera.com>
      fc327e26
  2. 13 May, 2012 3 commits
    • Linus Torvalds's avatar
      Linux 3.4-rc7 · 36be5051
      Linus Torvalds authored
      .. and this should hopefully be the last -rc before final 3.4 release.
      36be5051
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 5889fc32
      Linus Torvalds authored
      Pull ARM: SoC fixes from Olof Johansson:
       "I was hoping to be done with fixes for 3.4 but we got two branches
        from subarch maintainers the last couple of days.  So here is one
        last(?) pull request for arm-soc containing 7 patches:
      
         - Five of them are for shmobile dealing with SMP setup and compile
           failures
         - The remaining two are for regressions on the Samsung platforms"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: EXYNOS: fix ctrlbit for exynos5_clk_pdma1
        ARM: EXYNOS: use s5p-timer for UniversalC210 board
        ARM / mach-shmobile: Invalidate caches when booting secondary cores
        ARM / mach-shmobile: sh73a0 SMP TWD boot regression fix
        ARM / mach-shmobile: r8a7779 SMP TWD boot regression fix
        ARM: mach-shmobile: convert ag5evm to use the generic MMC GPIO hotplug helper
        ARM: mach-shmobile: convert mackerel to use the generic MMC GPIO hotplug helper
      5889fc32
    • Linus Torvalds's avatar
      Merge tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux-2.6 · 1bc4a5be
      Linus Torvalds authored
      Pull a few more GPIO bug fixes from Grant Likely:
       "Oops, missed a couple.  Here's an updated pull req for GPIO"
      
      A set of PCH bug fixes, and one patch to fix up compile warnings
      
      * tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux-2.6:
        gpio/exynos: Fix compiler warnings when non-exynos machines are selected
        gpio: pch9: Use proper flow type handlers
      1bc4a5be
  3. 12 May, 2012 19 commits
    • Olof Johansson's avatar
      Merge branch 'v3.4-samsung-fixes-5' of... · 85d5c4a3
      Olof Johansson authored
      Merge branch 'v3.4-samsung-fixes-5' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into fixes
      
      * 'v3.4-samsung-fixes-5' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
        ARM: EXYNOS: fix ctrlbit for exynos5_clk_pdma1
        ARM: EXYNOS: use s5p-timer for UniversalC210 board
      85d5c4a3
    • Kukjin Kim's avatar
      ARM: EXYNOS: fix ctrlbit for exynos5_clk_pdma1 · 28b874a8
      Kukjin Kim authored
      It should be (1 << 2) for ctrlbit of exynos5_clk_pdma1.
      Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
      28b874a8
    • Marek Szyprowski's avatar
      ARM: EXYNOS: use s5p-timer for UniversalC210 board · fd717cd7
      Marek Szyprowski authored
      Commit 069d4e74 ("ARM: EXYNOS4: Remove clock event timers using
      ARM private timers") removed support for local timers and forced
      to use MCT as event source. However MCT is not operating properly
      on early revision of EXYNOS4 SoCs. All UniversalC210 boards are
      based on it, so that commit broke support for it. This patch
      provides a workaround that enables UniversalC210 boards to boot
      again. s5p-timer is used as an event source, it works only for
      non-SMP builds.
      Signed-off-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
      Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
      fd717cd7
    • Olof Johansson's avatar
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/renesas into fixes · d2919c65
      Olof Johansson authored
      By Guennadi Liakhovetski (2) and others via Rafael J. Wysocki:
      "[...] urgent fixes for Renesas ARM-based platforms.  Four of these
      commits are fixes of regressions new in 3.4-rc and the last one is
      necessary for SMP to work on those systems in general."
      
      * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/renesas:
        ARM / mach-shmobile: Invalidate caches when booting secondary cores
        ARM / mach-shmobile: sh73a0 SMP TWD boot regression fix
        ARM / mach-shmobile: r8a7779 SMP TWD boot regression fix
        ARM: mach-shmobile: convert ag5evm to use the generic MMC GPIO hotplug helper
        ARM: mach-shmobile: convert mackerel to use the generic MMC GPIO hotplug helper
      d2919c65
    • Magnus Damm's avatar
      ARM / mach-shmobile: Invalidate caches when booting secondary cores · e994d5eb
      Magnus Damm authored
      Make sure L1 caches are invalidated when booting secondary
      cores. Needed to boot all mach-shmobile SMP systems that
      are using Cortex-A9 including sh73a0, r8a7779 and EMEV2.
      
      Thanks to imx and tegra guys for actual code.
      Signed-off-by: default avatarMagnus Damm <damm@opensource.se>
      Tested-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      e994d5eb
    • Kuninori Morimoto's avatar
      ARM / mach-shmobile: sh73a0 SMP TWD boot regression fix · d6720003
      Kuninori Morimoto authored
      Fix SMP TWD boot regression on sh73a0 based platforms caused by:
      
      4200b16d ARM: shmobile: convert to twd_local_timer_register() interface
      
      After the merge of the above commit it has been impossible to boot
      sh73a0 based SoCs with SMP enabled and CONFIG_HAVE_ARM_TWD=y. The
      kernel crashes at smp_init_cpus() timing which is before the console
      has been initialized, so to the user this looks like a kernel lock up
      without any particular error message.
      
      This patch fixes the regression on sh73a0 by moving the TWD
      registration code from smp_init_cpus() to sys_timer->init() time.
      
      This patch removed shmobile_twd_init() which is no longer needed
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: default avatarMagnus Damm <damm@opensource.se>
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      d6720003
    • Magnus Damm's avatar
      ARM / mach-shmobile: r8a7779 SMP TWD boot regression fix · b759bd11
      Magnus Damm authored
      Fix SMP TWD boot regression on r8a7779 based platforms caused by:
      
      4200b16d ARM: shmobile: convert to twd_local_timer_register() interface
      
      After the merge of the above commit it has been impossible to boot
      r8a7779 based SoCs with SMP enabled and CONFIG_HAVE_ARM_TWD=y. The
      kernel crashes at smp_init_cpus() timing which is before the console
      has been initialized, so to the user this looks like a kernel lock up
      without any particular error message.
      
      This patch fixes the regression on r8a7779 by moving the TWD
      registration code from smp_init_cpus() to sys_timer->init() time.
      Signed-off-by: default avatarMagnus Damm <damm@opensource.se>
      Acked-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      b759bd11
    • Guennadi Liakhovetski's avatar
      ARM: mach-shmobile: convert ag5evm to use the generic MMC GPIO hotplug helper · 173e2fec
      Guennadi Liakhovetski authored
      This also fixes the following modular mmc build failure:
      
      arch/arm/mach-shmobile/built-in.o: In function `mackerel_sdhi0_gpio_cd':
      pfc-sh7372.c:(.text+0x1138): undefined reference to `mmc_detect_change'
      
      on this platform by eliminating the use of an inline function, which
      calls into the mmc core.
      Signed-off-by: default avatarGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Reviewed-by: default avatarSimon Horman <horms@verge.net.au>
      Acked-by: default avatarMagnus Damm <damm@opensource.se>
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      173e2fec
    • Guennadi Liakhovetski's avatar
      ARM: mach-shmobile: convert mackerel to use the generic MMC GPIO hotplug helper · 2b3e38c4
      Guennadi Liakhovetski authored
      This also fixes the following modular mmc build failure:
      
      arch/arm/mach-shmobile/built-in.o: In function `ag5evm_sdhi0_gpio_cd':
      pfc-sh73a0.c:(.text+0x7c0): undefined reference to `mmc_detect_change'
      
      on this platform by eliminating the use of an inline function, which
      calls into the mmc core.
      Signed-off-by: default avatarGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Tested-by: default avatarSimon Horman <horms@verge.net.au>
      Acked-by: default avatarMagnus Damm <damm@opensource.se>
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      2b3e38c4
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · cf00c55e
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "This is a set of minor qla and virto fixes plus one major regression
        fix (oops in all legacy host drivers)."
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        [SCSI] virtio_scsi: fix TMF use-after-free
        [SCSI] fix oops in all legacy host adapters caused by 6f381fa3
        [SCSI] qla2xxx: Update version number to 8.04.00.03-k.
        [SCSI] qla2xxx: Properly check for current state after the fabric-login request.
        [SCSI] qla2xxx: Proper completion to scsi-ml for scsi status task_set_full and busy.
        [SCSI] qla2xxx: Block flash access from application when device is initialized for ISP82xx.
        [SCSI] qla2xxx: Fix reset time out as qla2xxx not ack to reset request.
      cf00c55e
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 4a873f53
      Linus Torvalds authored
      Pull networking fixes from David S. Miller:
      
       1) Since we do RCU lookups on ipv4 FIB entries, we have to test if the
          entry is dead before returning it to our caller.
      
       2) openvswitch locking and packet validation fixes from Ansis Atteka,
          Jesse Gross, and Pravin B Shelar.
      
       3) Fix PM resume locking in IGB driver, from Benjamin Poirier.
      
       4) Fix VLAN header handling in vhost-net and macvtap, from Basil Gor.
      
       5) Revert a bogus network namespace isolation change that was causing
          regressions on S390 networking devices.
      
       6) If bonding decides to process and handle a LACPDU frame, we
          shouldn't bump the rx_dropped counter.  From Jiri Bohac.
      
       7) Fix mis-calculation of available TX space in r8169 driver when doing
          TSO, which can lead to crashes and/or hung device.  From Julien
          Ducourthial.
      
       8) SCTP does not validate cached routes properly in all cases, from
          Nicolas Dichtel.
      
       9) Link status interrupt needs to be handled in ks8851 driver, from
          Stephen Boyd.
      
      10) Use capable(), not cap_raised(), in connector/userns netlink code.
          From Eric W. Biederman via Andrew Morton.
      
      11) Fix pktgen OOPS on module unload, from Eric Dumazet.
      
      12) iwlwifi under-estimates SKB truesizes, also from Eric Dumazet.
      
      13) Cure division by zero in SFC driver, from Ben Hutchings.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (26 commits)
        ks8851: Update link status during link change interrupt
        macvtap: restore vlan header on user read
        vhost-net: fix handle_rx buffer size
        bonding: don't increase rx_dropped after processing LACPDUs
        connector/userns: replace netlink uses of cap_raised() with capable()
        sctp: check cached dst before using it
        pktgen: fix crash at module unload
        Revert "net: maintain namespace isolation between vlan and real device"
        ehea: fix losing of NEQ events when one event occurred early
        igb: fix rtnl race in PM resume path
        ipv4: Do not use dead fib_info entries.
        r8169: fix unsigned int wraparound with TSO
        sfc: Fix division by zero when using one RX channel and no SR-IOV
        openvswitch: Validation of IPv6 set port action uses IPv4 header
        net: compare_ether_addr[_64bits]() has no ordering
        cdc_ether: Ignore bogus union descriptor for RNDIS devices
        bnx2x: bug fix when loading after SAN boot
        e1000: Silence sparse warnings by correcting type
        igb, ixgbe: netdev_tx_reset_queue incorrectly called from tx init path
        openvswitch: Release rtnl_lock if ovs_vport_cmd_build_info() failed.
        ...
      4a873f53
    • Linus Torvalds's avatar
      Merge tag 'dm-3.4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm · 2eb42967
      Linus Torvalds authored
      Pull device-mapper fixes from Alasdair G Kergon:
       "Fix a couple of serious memory leaks in device-mapper thin
        provisioning and tidy its MODULE_DESCRIPTION.
      
        Mitigate occasional reported hangs associated with multipath scsi_dh
        module loading."
      
      * tag 'dm-3.4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm:
        dm mpath: check if scsi_dh module already loaded before trying to load
        dm thin: correct module description
        dm thin: fix unprotected use of prepared_discards list
        dm thin: reinstate missing mempool_free in cell_release_singleton
      2eb42967
    • Rafael J. Wysocki's avatar
      MAINTAINERS: Add myself as the cpufreq maintainer · a6c072c7
      Rafael J. Wysocki authored
      Since cpufreq has no official maintainer at the moment, I'm willing
      to maintain it along some other power management core code I've been
      maintaining already.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a6c072c7
    • Mike Snitzer's avatar
      dm mpath: check if scsi_dh module already loaded before trying to load · 510193a2
      Mike Snitzer authored
      If the requested scsi_dh module is already loaded then skip
      request_module().
      
      Multipath table loads can hang in an unnecessary __request_module.
      Reported-by: default avatarBen Marzinski <bmarzins@redhat.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      510193a2
    • Alasdair G Kergon's avatar
      dm thin: correct module description · 7cab8bf1
      Alasdair G Kergon authored
      Remove duplicate copy of string "device-mapper" (DM_NAME) from
      MODULE_DESCRIPTION.
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      7cab8bf1
    • Mike Snitzer's avatar
      dm thin: fix unprotected use of prepared_discards list · c3a0ce2e
      Mike Snitzer authored
      Fix two places in commit 104655fd ("dm thin: support discards") that
      didn't use pool->lock to protect against concurrent changes to the
      prepared_discards list.
      
      Without this fix, thin_endio() can race with process_discard(), leading
      to concurrent list_add()s that result in the processes locking up with
      an error like the following:
      
      WARNING: at lib/list_debug.c:32 __list_add+0x8f/0xa0()
      ...
      list_add corruption. next->prev should be prev (ffff880323b96140), but was ffff8801d2c48440. (next=ffff8801d2c485c0).
      ...
      Pid: 17205, comm: kworker/u:1 Tainted: G        W  O 3.4.0-rc3.snitm+ #1
      Call Trace:
       [<ffffffff8103ca1f>] warn_slowpath_common+0x7f/0xc0
       [<ffffffff8103cb16>] warn_slowpath_fmt+0x46/0x50
       [<ffffffffa04f6ce6>] ? bio_detain+0xc6/0x210 [dm_thin_pool]
       [<ffffffff8124ff3f>] __list_add+0x8f/0xa0
       [<ffffffffa04f70d2>] process_discard+0x2a2/0x2d0 [dm_thin_pool]
       [<ffffffffa04f6a78>] ? remap_and_issue+0x38/0x50 [dm_thin_pool]
       [<ffffffffa04f7c3b>] process_deferred_bios+0x7b/0x230 [dm_thin_pool]
       [<ffffffffa04f7df0>] ? process_deferred_bios+0x230/0x230 [dm_thin_pool]
       [<ffffffffa04f7e42>] do_worker+0x52/0x60 [dm_thin_pool]
       [<ffffffff81056fa9>] process_one_work+0x129/0x450
       [<ffffffff81059b9c>] worker_thread+0x17c/0x3c0
       [<ffffffff81059a20>] ? manage_workers+0x120/0x120
       [<ffffffff8105eabe>] kthread+0x9e/0xb0
       [<ffffffff814ceda4>] kernel_thread_helper+0x4/0x10
       [<ffffffff8105ea20>] ? kthread_freezable_should_stop+0x70/0x70
       [<ffffffff814ceda0>] ? gs_change+0x13/0x13
      ---[ end trace 7e0a523bc5e52692 ]---
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      c3a0ce2e
    • Mike Snitzer's avatar
      dm thin: reinstate missing mempool_free in cell_release_singleton · 03aaae7c
      Mike Snitzer authored
      Fix a significant memory leak inadvertently introduced during
      simplification of cell_release_singleton() in commit
      6f94a4c4 ("dm thin: fix stacked bi_next
      usage").
      
      A cell's hlist_del() must be accompanied by a mempool_free().
      Use __cell_release() to do this, like before.
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      03aaae7c
    • Sachin Kamat's avatar
      gpio/exynos: Fix compiler warnings when non-exynos machines are selected · 2760f7ad
      Sachin Kamat authored
      Fixes the following compiler warnings:
      
      drivers/gpio/gpio-samsung.c: In function ‘samsung_gpiolib_init’:
      drivers/gpio/gpio-samsung.c:2980:1: warning: label ‘err_ioremap1’ defined but not used [-Wunused-label]
      drivers/gpio/gpio-samsung.c:2978:1: warning: label ‘err_ioremap2’ defined but not used [-Wunused-label]
      drivers/gpio/gpio-samsung.c:2976:1: warning: label ‘err_ioremap3’ defined but not used [-Wunused-label]
      drivers/gpio/gpio-samsung.c:2974:1: warning: label ‘err_ioremap4’ defined but not used [-Wunused-label]
      drivers/gpio/gpio-samsung.c:2722:55: warning: unused variable ‘gpio_base4’ [-Wunused-variable]
      
      drivers/gpio/gpio-samsung.c:455:32: warning: ‘exynos_gpio_cfg’ defined but not used [-Wunused-variable]
      drivers/gpio/gpio-samsung.c:2126:33: warning: ‘exynos4_gpios_1’ defined but not used [-Wunused-variable]
      drivers/gpio/gpio-samsung.c:2228:33: warning: ‘exynos4_gpios_2’ defined but not used [-Wunused-variable]
      drivers/gpio/gpio-samsung.c:2373:33: warning: ‘exynos4_gpios_3’ defined but not used [-Wunused-variable]
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
      2760f7ad
    • Thomas Gleixner's avatar
      gpio: pch9: Use proper flow type handlers · df9541a6
      Thomas Gleixner authored
      Jean-Francois Dagenais reported:
      
       Configuring a gpio pin with the gpio-pch driver with
       "IRQF_TRIGGER_LOW | IRQF_ONESHOT" generates an interrupt storm for
       threaded ISR until the ISR thread actually gets to physically clear
       the interrupt on the triggering chip!! The immediate observable
       symptom is the high CPU usage for my ISR thread task and the
       interrupt count in /proc/interrupts incrementing radically.
      
      The driver is wrong in several ways:
      
      1) Using handle_simple_irq() does not provide proper flow control
         handling. In the case of oneshot threaded handlers for the
         demultiplexed interrupts this results in an interrupt storm because
         the simple handler does not deal with masking/unmasking.  Even
         without threaded oneshot handlers an interrupt storm for level type
         interrupts can easily be triggered when the interrupt is disabled
         and the interrupt line is activated from the device.
      
      2) Acknowlegding the demultiplexed interrupt before calling the
         handler is wrong for level type interrupts.
      
      3) The set_type function unconditionally enables the interrupt. It's
         supposed to set the type and nothing else. The unmasking is done by
         the core code.
      
      Move the acknowledge code into a separate function and add it to the
      demux irqchip callbacks.
      
      Remove the unconditional enabling from the set_type() callback and set
      the proper flow handlers depending on the selected type (level/edge).
      Reported-and-tested-by: default avatarJean-Francois Dagenais <jeff.dagenais@gmail.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
      df9541a6
  4. 11 May, 2012 17 commits