1. 11 Jul, 2012 10 commits
  2. 10 Jul, 2012 12 commits
    • Jerry Snitselaar's avatar
      gpio/gpio-tps65910: gpio_chip.of_node referenced without CONFIG_OF_GPIO defined · bb39b655
      Jerry Snitselaar authored
      commit 626f9914 added code to initialize gpio_chip.of_node, but if
      CONFIG_OF_GPIO is not defined gps-tps65910 fails to build with an
      error complaining gpio_chip has no member of_node. I ran into this
      while doing a allyesconfig build on linux-next.
      Signed-off-by: default avatarGerard Snitselaar <dev@snitselaar.org>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      bb39b655
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-v3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 055c9fa8
      Linus Torvalds authored
      Pull GPIO fixes from Linus Walleij:
       "Yes, this is a *LATE* GPIO pull request with fixes for v3.5.
      
        Grant moved across the planet and accidentally fell off the grid, so
        he asked me to take over the GPIO merges for a while 10 days ago.
      
        Since then I went over the archives and collected this pile of fixes,
        and pulled two of them from the TI maintainer Kevin Hilman.  Then
        waited for them to at least hit linux-next once or twice."
      
      GPIO fixes for v3.5:
       - Invalid context restore on bank 0 for OMAP driver in runtime
         suspend/resume cycle
       - Check for NULL platform data in sta-2x11 driver
       - Constrain selection of the V1 MSM GPIO driver to applicable platforms
         (Kconfig issue)
       - Make sure the correct output value is set in the wm8994 driver
       - Export devm_gpio_request_one() so it can be used in modules.
         Apparently some in-kernel modules can be configured to use this
         leading to breakage.
       - Check that the GPIO is valid in the lantiq driver
       - Fix the flag bits introduced for v3.5, so they don't overlap
       - Fix a device tree intialization bug for imx21-compatible devices
       - Carry over the OF node to the TPS65910 GPIO chip struct
      
      * tag 'fixes-for-v3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
        gpio: tps65910: initialize of_node of gpio_chip
        gpio/mxc: make irqs work for fsl,imx21-gpio devices
        gpio: fix bits conflict for gpio flags
        mips: pci-lantiq: Fix check for valid gpio
        gpio: export devm_gpio_request_one
        gpiolib: wm8994: Pay attention to the value set when enabling as output
        gpio/msm_v1: CONFIG_GPIO_MSM_V1 is only available on three SoCs
        gpio-sta2x11: don't use pdata if null
        gpio/omap: fix invalid context restore of gpio bank-0
        gpio/omap: fix irq loss while in idle with debounce on
      055c9fa8
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 310959e8
      Linus Torvalds authored
      Pull powerpc fixes from Benjamin Herrenschmidt:
       "It looks like my rewrite of our lazy irq scheme is still exposing
        "interesting" issues left and right.  The previous fixes are now
        causing an occasional BUG_ON to trigger (which this patch turns into a
        WARN_ON while at it), due to another issue of disconnect of the lazy
        irq state vs the processor state in the idle loop on pseries and
        cell.
      
        This should fix it properly once for all moving the nasty code to a
        common helper function.
      
        There's also couple more fixes for some debug stuff that didn't build
        (and helped resolving those problems so it's worth having), along with
        a compile fix for newer gcc's."
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        tty/hvc_opal: Fix debug function name
        powerpc/numa: Avoid stupid uninitialized warning from gcc
        powerpc: Fix build of some debug irq code
        powerpc: More fixes for lazy IRQ vs. idle
      310959e8
    • Jonathan Nieder's avatar
      ACPI / PM: Leave Bus Master Arbitration enabled for suspend/resume · dc332fdf
      Jonathan Nieder authored
      This is an old suspend/resume lockup fix:
      
      	commit 2780cc46
      	Author: Len Brown <len.brown@intel.com>
      	Date:   Thu Dec 23 13:43:30 2004 -0500
      
      	    [ACPI] Fix suspend/resume lockup issue
      	    by leaving Bus Master Arbitration enabled.
      	    The ACPI spec mandates it be disabled only for C3.
      
      	    http://bugzilla.kernel.org/show_bug.cgi?id=3599Signed-off-by: default avatarDavid Shaohua Li <shaohua.li@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      The bug snuck back in in commit 2feec47d (ACPICA: ACPI 5: Support
      for new FADT SleepStatus, SleepControl registers, 2012-02-14),
      presumably by copy/pasting a copy of the code without that fix for the
      legacy case.
      
      On affected machines, after that commit, the machine locks up hard on
      resume from suspend.  The same fix as seven years ago still works.
      
      Addresses <https://bugzilla.kernel.org/show_bug.cgi?id=43641>.
      Reported-bisected-and-tested-by: default avatarOctavio Alvarez <alvarezp@alvarezp.com>
      Reported-by: default avatarAdrian Knoth <adi@drcomp.erfurt.thur.de>
      Signed-off-by: default avatarJonathan Nieder <jrnieder@gmail.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      dc332fdf
    • Linus Torvalds's avatar
      Revert "of: match by compatible property first" · bc51b0c2
      Linus Torvalds authored
      This reverts commit 107a84e6.
      
      Meelis Roos reports a regression since 3.5-rc5 that stops Sun Fire V100
      and Sun Netra X1 sparc64 machines from booting, hanging after enabling
      serial console.  He bisected it to commit 107a84e6.
      
      Rob Herring explains:
       "The problem is match combinations of compatible plus name and/or type
        fail to match correctly.  I have a fix for this, but given how late it
        is for 3.5 I think it is best to revert this for now.  There could be
        other cases that rely on the current although wrong behavior.  I will
        post an updated version for 3.6."
      Bisected-and-reported-by: default avatarMeelis Roos <mroos@linux.ee>
      Requested-by: default avatarRob Herring <rob.herring@calxeda.com>
      Cc: Thierry Reding <thierry.reding@avionic-design.de>
      Cc: Grant Likely <grant.likely@secretlab.ca>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bc51b0c2
    • Tomas Winkler's avatar
      mei: pci_resume: set IRQF_ONESHOT for msi request_threaded_irq · 16a50b12
      Tomas Winkler authored
      when the default irq quick handler is used then IRQF_ONESHOT must be set
      otherwise the request fails and following error is displayed:
      
      mei 0000:00:16.0: irq 48 for MSI/MSI-X
      genirq: Threaded irq requested with handler=NULL and !ONESHOT for irq 48
      mei 0000:00:16.0: request_threaded_irq failed: irq = 48.
      dpm_run_callback(): pci_pm_resume+0x0/0x140 returns -22
      PM: Device 0000:00:16.0 failed to resume async: error -22
      Reported-by: default avatarPeter Wu <lekensteyn@gmail.com>
      Signed-off-by: default avatarTomas Winkler <tomas.winkler@intel.com>
      Tested-by: default avatarPeter Wu <lekensteyn@gmail.com>
      Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
      Cc: stable <stable@vger.kernel.org> # 3.5
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      16a50b12
    • Alan Stern's avatar
      PCI: EHCI: fix crash during suspend on ASUS computers · dbf0e4c7
      Alan Stern authored
      Quite a few ASUS computers experience a nasty problem, related to the
      EHCI controllers, when going into system suspend.  It was observed
      that the problem didn't occur if the controllers were not put into the
      D3 power state before starting the suspend, and commit
      151b6128 (USB: EHCI: fix crash during
      suspend on ASUS computers) was created to do this.
      
      It turned out this approach messed up other computers that didn't have
      the problem -- it prevented USB wakeup from working.  Consequently
      commit c2fb8a3f (USB: add
      NO_D3_DURING_SLEEP flag and revert 151b6128) was merged; it
      reverted the earlier commit and added a whitelist of known good board
      names.
      
      Now we know the actual cause of the problem.  Thanks to AceLan Kao for
      tracking it down.
      
      According to him, an engineer at ASUS explained that some of their
      BIOSes contain a bug that was added in an attempt to work around a
      problem in early versions of Windows.  When the computer goes into S3
      suspend, the BIOS tries to verify that the EHCI controllers were first
      quiesced by the OS.  Nothing's wrong with this, but the BIOS does it
      by checking that the PCI COMMAND registers contain 0 without checking
      the controllers' power state.  If the register isn't 0, the BIOS
      assumes the controller needs to be quiesced and tries to do so.  This
      involves making various MMIO accesses to the controller, which don't
      work very well if the controller is already in D3.  The end result is
      a system hang or memory corruption.
      
      Since the value in the PCI COMMAND register doesn't matter once the
      controller has been suspended, and since the value will be restored
      anyway when the controller is resumed, we can work around the BIOS bug
      simply by setting the register to 0 during system suspend.  This patch
      (as1590) does so and also reverts the second commit mentioned above,
      which is now unnecessary.
      
      In theory we could do this for every PCI device.  However to avoid
      introducing new problems, the patch restricts itself to EHCI host
      controllers.
      
      Finally the affected systems can suspend with USB wakeup working
      properly.
      
      Reference: https://bugzilla.kernel.org/show_bug.cgi?id=37632
      Reference: https://bugzilla.kernel.org/show_bug.cgi?id=42728Based-on-patch-by: default avatarAceLan Kao <acelan.kao@canonical.com>
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Tested-by: default avatarDâniel Fraga <fragabr@gmail.com>
      Tested-by: default avatarJavier Marcet <jmarcet@gmail.com>
      Tested-by: default avatarAndrey Rahmatullin <wrar@wrar.name>
      Tested-by: default avatarOleksij Rempel <bug-track@fisher-privat.net>
      Tested-by: default avatarPavel Pisa <pisa@cmp.felk.cvut.cz>
      Cc: stable <stable@vger.kernel.org>
      Acked-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      dbf0e4c7
    • Arnd Bergmann's avatar
      Merge tag 'omap-fixes-for-v3.5-rc6' of... · 9861e955
      Arnd Bergmann authored
      Merge tag 'omap-fixes-for-v3.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
      
      From Tony Lindgren <tony@atomide.com>:
      Here is one PM regression fix and a defconfig change to disable
      echi-omap because the driver currently causes issues with PM.
      This annoys Kevin as it makes it harder for him to validate that
      PM is working. The proper fixes for the echi-omap are being
      discussed, but looks like it will not be properly working with PM
      until in v3.7.
      
      * tag 'omap-fixes-for-v3.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
        ARM: OMAP2+: omap2plus_defconfig: EHCI driver is not stable, disable it
        ARM: OMAP2+: hwmod code/clockdomain data: fix 32K sync timer
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      9861e955
    • Benjamin Herrenschmidt's avatar
      tty/hvc_opal: Fix debug function name · 50fb31cf
      Benjamin Herrenschmidt authored
      udbg_init_debug_opal() should be udbg_init_debug_opal_raw() as
      the caller in arch/powerpc/kernel/udbg.c expects
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      50fb31cf
    • Benjamin Herrenschmidt's avatar
      powerpc/numa: Avoid stupid uninitialized warning from gcc · aa709f3b
      Benjamin Herrenschmidt authored
      Newer gcc are being a bit blind here (it's pretty obvious we don't
      reach the code path using the array if we haven't initialized the
      pointer) but none of that is performance critical so let's just
      silence it.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      aa709f3b
    • Benjamin Herrenschmidt's avatar
      powerpc: Fix build of some debug irq code · 21b2de34
      Benjamin Herrenschmidt authored
      There was a typo, checking for CONFIG_TRACE_IRQFLAG instead of
      CONFIG_TRACE_IRQFLAGS causing some useful debug code to not be
      built
      
      This in turns causes a build error on BookE 64-bit due to incorrect
      semicolons at the end of a couple of macros, so let's fix that too
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      CC: stable@vger.kernel.org [v3.4]
      21b2de34
    • Benjamin Herrenschmidt's avatar
      powerpc: More fixes for lazy IRQ vs. idle · be2cf20a
      Benjamin Herrenschmidt authored
      Looks like we still have issues with pSeries and Cell idle code
      vs. the lazy irq state. In fact, the reset fixes that went upstream
      are exposing the problem more by causing BUG_ON() to trigger (which
      this patch turns into a WARN_ON instead).
      
      We need to be careful when using a variant of low power state that
      has the side effect of turning interrupts back on, to properly set
      all the SW & lazy state to look as if everything is enabled before
      we enter the low power state with MSR:EE off as we will return with
      MSR:EE on. If not, we have a discrepancy of state which can cause
      things to go very wrong later on.
      
      This patch moves the logic into a helper and uses it from the
      pseries and cell idle code. The power4/970 idle code already got
      things right (in assembly even !) so I'm not touching it. The power7
      "bare metal" idle code is subtly different and correct. Remains PA6T
      and some hypervisor based Cell platforms which have questionable
      code in there, but they are mostly dead platforms so I'll fix them
      when I manage to get final answers from the respective maintainers
      about how the low power state actually works on them.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      CC: stable@vger.kernel.org [v3.4]
      be2cf20a
  3. 09 Jul, 2012 11 commits
  4. 08 Jul, 2012 7 commits
    • Michael S. Tsirkin's avatar
      virtio-balloon: fix add/get API use · 9c378abc
      Michael S. Tsirkin authored
      Since ee7cd898 'virtio: expose added
      descriptors immediately.', in virtio balloon virtqueue_get_buf might
      now run concurrently with virtqueue_kick.  I audited both and this
      seems safe in practice but this is not guaranteed by the API.
      Additionally, a spurious interrupt might in theory make
      virtqueue_get_buf run in parallel with virtqueue_add_buf, which is
      racy.
      
      While we might try to protect against spurious callbacks it's
      easier to fix the driver: balloon seems to be the only one
      (mis)using the API like this, so let's just fix balloon.
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (removed unused var)
      9c378abc
    • Linus Torvalds's avatar
      Merge branch 'for-3.5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 8c84bf41
      Linus Torvalds authored
      Pull cgroup fixes from Tejun Heo:
       "The previous cgroup pull request contained a patch to fix a race
        condition during cgroup hierarchy umount.  Unfortunately, while the
        patch reduced the race window such that the test case I and Sasha were
        using didn't trigger it anymore, it wasn't complete - Shyju and Li
        could reliably trigger the race condition using a different test case.
      
        The problem wasn't the gap between dentry deletion and release which
        the previous patch tried to fix.  The window was between the last
        dput() of a root's child and the resulting dput() of the root.  For
        cgroup dentries, the deletion and release always happen synchronously.
        As this releases the s_active ref, the refcnt of the root dentry,
        which doesn't hold s_active, stays above zero without the
        corresponding s_active.  If umount was in progress, the last
        deactivate_super() proceeds to destory the superblock and triggers
        BUG() on the non-zero root dentry refcnt after shrinking.
      
        This issue surfaced because cgroup dentries are now allowed to linger
        after rmdir(2) since 3.5-rc1.  Before, rmdir synchronously drained the
        dentry refcnt and the s_active acquired by rmdir from vfs layer
        protected the whole thing.  After 3.5-rc1, cgroup may internally hold
        and put dentry refs after rmdir finishes and the delayed dput()
        doesn't have surrounding s_active ref exposing this issue.
      
        This pull request contains two patches - one reverting the previous
        incorrect fix and the other adding the surrounding s_active ref around
        the delayed dput().
      
        This is quite late in the release cycle but the change is on the safer
        side and fixes the test cases reliably, so I don't think it's too
        crazy."
      
      * 'for-3.5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup: fix cgroup hierarchy umount race
        Revert "cgroup: superblock can't be released with active dentries"
      8c84bf41
    • Eddie Wai's avatar
      [SCSI] bnx2i: Removed the reference to the netdev->base_addr · a7717180
      Eddie Wai authored
      The netdev->base_addr parameter has been deprecated in the L2 bnx2
      driver.  This is used by bnx2i for the BARn iomapping.
      
      This patch will directly reference the pci_resource_start instead
      of using the deprecated netdev->base_addr.
      
      This patch is actually a critical bug fix as the 1G bnx2 driver no
      longer supports the netdev->base_addr in the current kernel of the scsi
      tree.  This means that Broadcom's 1G Linux iSCSI offload solution would
      not work at all without this patch. 
      Signed-off-by: default avatarEddie Wai <eddie.wai@broadcom.com>
      Reviewed-by: default avatarMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      a7717180
    • Dan Williams's avatar
      [SCSI] libsas: fix taskfile corruption in sas_ata_qc_fill_rtf · 6ef1b512
      Dan Williams authored
      fill_result_tf() grabs the taskfile flags from the originating qc which
      sas_ata_qc_fill_rtf() promptly overwrites.  The presence of an
      ata_taskfile in the sata_device makes it tempting to just copy the full
      contents in sas_ata_qc_fill_rtf().  However, libata really only wants
      the fis contents and expects the other portions of the taskfile to not
      be touched by ->qc_fill_rtf.  To that end store a fis buffer in the
      sata_device and use ata_tf_from_fis() like every other ->qc_fill_rtf()
      implementation.
      
      Cc: <stable@vger.kernel.org>
      Reported-by: default avatarPraveen Murali <pmurali@logicube.com>
      Tested-by: default avatarPraveen Murali <pmurali@logicube.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      6ef1b512
    • Mark Rustad's avatar
      [SCSI] Fix NULL dereferences in scsi_cmd_to_driver · 222a806a
      Mark Rustad authored
      Avoid crashing if the private_data pointer happens to be NULL. This has
      been seen sometimes when a host reset happens, notably when there are
      many LUNs:
      
      host3: Assigned Port ID 0c1601
      scsi host3: libfc: Host reset succeeded on port (0c1601)
      BUG: unable to handle kernel NULL pointer dereference at 0000000000000350
      IP: [<ffffffff81352bb8>] scsi_send_eh_cmnd+0x58/0x3a0
      <snip>
      Process scsi_eh_3 (pid: 4144, threadinfo ffff88030920c000, task ffff880326b160c0)
      Stack:
       000000010372e6ba 0000000000000282 000027100920dca0 ffffffffa0038ee0
       0000000000000000 0000000000030003 ffff88030920dc80 ffff88030920dc80
       00000002000e0000 0000000a00004000 ffff8803242f7760 ffff88031326ed80
      Call Trace:
       [<ffffffff8105b590>] ? lock_timer_base+0x70/0x70
       [<ffffffff81352fbe>] scsi_eh_tur+0x3e/0xc0
       [<ffffffff81353a36>] scsi_eh_test_devices+0x76/0x170
       [<ffffffff81354125>] scsi_eh_host_reset+0x85/0x160
       [<ffffffff81354291>] scsi_eh_ready_devs+0x91/0x110
       [<ffffffff813543fd>] scsi_unjam_host+0xed/0x1f0
       [<ffffffff813546a8>] scsi_error_handler+0x1a8/0x200
       [<ffffffff81354500>] ? scsi_unjam_host+0x1f0/0x1f0
       [<ffffffff8106ec3e>] kthread+0x9e/0xb0
       [<ffffffff81509264>] kernel_thread_helper+0x4/0x10
       [<ffffffff8106eba0>] ? kthread_freezable_should_stop+0x70/0x70
       [<ffffffff81509260>] ? gs_change+0x13/0x13
      Code: 25 28 00 00 00 48 89 45 c8 31 c0 48 8b 87 80 00 00 00 48 8d b5 60 ff ff ff 89 d1 48 89 fb 41 89 d6 4c 89 fa 48 8b 80 b8 00 00 00
       <48> 8b 80 50 03 00 00 48 8b 00 48 89 85 38 ff ff ff 48 8b 07 4c
      RIP  [<ffffffff81352bb8>] scsi_send_eh_cmnd+0x58/0x3a0
       RSP <ffff88030920dc50>
      CR2: 0000000000000350
      Signed-off-by: default avatarMark Rustad <mark.d.rustad@intel.com>
      Tested-by: default avatarMarcus Dennis <marcusx.e.dennis@intel.com>
      Cc: <stable@kernel.org>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      222a806a
    • Linus Torvalds's avatar
      Linux 3.5-rc6 · bd0a521e
      Linus Torvalds authored
      bd0a521e
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · a0127afb
      Linus Torvalds authored
      Pull security docs update from James Morris.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        security: Minor improvements to no_new_privs documentation
      a0127afb