1. 10 Apr, 2014 8 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · dd76a786
      Linus Torvalds authored
      Pull block layer fixes from Jens Axboe:
       "A small collection of fixes that should go in before -rc1.  The pull
        request contains:
      
         - A two patch fix for a regression with block enabled tagging caused
           by a commit in the initial pull request.  One patch is from Martin
           and ensures that SCSI doesn't truncate 64-bit block flags, the
           other one is from me and prevents us from double using struct
           request queuelist for both completion and busy tags.  This caused
           anything from a boot crash for some, to crashes under load.
      
         - A blk-mq fix for a potential soft stall when hot unplugging CPUs
           with busy IO.
      
         - percpu_counter fix is listed in here, that caused a suspend issue
           with virtio-blk due to percpu counters having an inconsistent state
           during CPU removal.  Andrew sent this in separately a few days ago,
           but it's here.  JFYI.
      
         - A few fixes for block integrity from Martin.
      
         - A ratelimit fix for loop from Mike Galbraith, to avoid spewing too
           much in error cases"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        block: fix regression with block enabled tagging
        scsi: Make sure cmd_flags are 64-bit
        block: Ensure we only enable integrity metadata for reads and writes
        block: Fix integrity verification
        block: Fix for_each_bvec()
        drivers/block/loop.c: ratelimit error messages
        blk-mq: fix potential stall during CPU unplug with IO pending
        percpu_counter: fix bad counter state during suspend
      dd76a786
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · e7990d45
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Here is a bunch of small fixes that have been collected since the
        previous pull request.  In addition to various misc fixes, the
        following are included:
      
         - HD-audio quirks for Dell, HP, Chromebook, and ALC28x codecs
         - HD-audio AMD HDMI regression fix
         - Continued PM support/fixes for ice1712 driver
         - Multiplatform fixes for ASoC samsung drivers
         - Addition of device id tables to a few ASoC drivers
         - Bit clock polarity config and error flag fixes in ASoC fsl_sai"
      
      * tag 'sound-fix-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (32 commits)
        ALSA: usb-audio: Suppress repetitive debug messages from retire_playback_urb()
        ALSA: hda - Make full_reset boolean
        ALSA: hda - add headset mic detect quirk for a Dell laptop
        sound: dmasound: use module_platform_driver_probe()
        ALSA: au1x00: use module_platform_driver()
        ALSA: hda - Use runtime helper to check active state.
        ALSA: ice1712: Fix boundary checks in PCM pointer ops
        ASoC: davinci-mcasp: Fix bit clock polarity settings
        ASoC: samsung: Fix build on multiplatform
        ASoC: fsl_sai: Fix Bit Clock Polarity configurations
        ALSA: hda - Do not assign streams in reverse order
        ALSA: hda/realtek - Add eapd shutup to ALC283
        ALSA: hda/realtek - Change model name alias for ChromeOS
        ASoC: da732x: Print correct major id
        ALSA: hda/realtek - Improve HP depop when system change power state on Chromebook
        ASoC: cs42l52: Fix mask for REVID
        sound/oss: Remove uncompilable DBG macro use
        ALSA: ice1712: Save/restore routing and rate registers
        ALSA: ice1712: restore AK4xxx volumes on resume
        ASoC: alc56(23|32): fix undefined return value of probing code
        ...
      e7990d45
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · 190a3998
      Linus Torvalds authored
      Pull thermal management updates from Zhang Rui:
       "We only have a couple of fixes/cleanups for platform thermal drivers
        this time.
      
        Specifics:
      
         - rcar thermal driver: avoid updating the thermal zone in case an IRQ
           was triggered but the temperature didn't effectively change.  From
           Patrick Titiano.
      
         - update the imx thermal driver' formula of converting thermal
           sensor' raw date to real temperature in degree C.  From Anson
           Huang.
      
         - trivial code cleanups of ti soc thermal and rcar thermal driver
           from Jingoo Han and Patrick Titiano"
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
        thermal: rcar-thermal: update thermal zone only when temperature changes
        thermal: rcar-thermal: fix same mask applied twice
        thermal: ti-soc-thermal: Use SIMPLE_DEV_PM_OPS macro
        thermal: imx: update formula for thermal sensor
      190a3998
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds · 4162877d
      Linus Torvalds authored
      Pull LED updates from Bryan Wu:
       "This cycle we got:
         - new driver for leds-mc13783
         - bug fixes
         - code cleanup"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:
        leds: make sure we unregister a trigger only once
        leds: leds-pwm: properly clean up after probe failure
        leds: clevo-mail: Make probe function __init
        leds-ot200: Fix dependencies
        leds-gpio: of: introduce MODULE_DEVICE_TABLE for module autoloading
        leds: clevo-mail: remove __initdata marker
        leds: leds-ss4200: remove __initdata marker
        leds: blinkm: remove unnecessary spaces
        leds: lp5562: remove unnecessary parentheses
        leds: leds-ss4200: remove DEFINE_PCI_DEVICE_TABLE macro
        leds: leds-s3c24xx: Trivial cleanup in header file
        drivers/leds: delete non-required instances of include <linux/init.h>
        leds: leds-gpio: add retain-state-suspended property
        leds: leds-mc13783: Add devicetree support
        leds: leds-mc13783: Remove unnecessary cleaning of registers on exit
        leds: leds-mc13783: Use proper "max_brightness" value fo LEDs
        leds: leds-mc13783: Use LED core PM functions
        leds: leds-mc13783: Add MC34708 LED support
        leds: Turn off led if blinking is disabled
        ledtrig-cpu: Handle CPU hot(un)plugging
      4162877d
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma · 6c61403a
      Linus Torvalds authored
      Pull slave-dmaengine updates from Vinod Koul:
       - New driver for Qcom bam dma
       - New driver for RCAR peri-peri
       - New driver for FSL eDMA
       - Various odd fixes and updates thru the subsystem
      
      * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (29 commits)
        dmaengine: add Qualcomm BAM dma driver
        shdma: add R-Car Audio DMAC peri peri driver
        dmaengine: sirf: enable generic dt binding for dma channels
        dma: omap-dma: Implement device_slave_caps callback
        dmaengine: qcom_bam_dma: Add device tree binding
        dma: dw: Add suspend and resume handling for PCI mode DW_DMAC.
        dma: dw: allocate memory in two stages in probe
        Add new line to test result strings produced in verbose mode
        dmaengine: pch_dma: use tasklet_kill in teardown
        dmaengine: at_hdmac: use tasklet_kill in teardown
        dma: cppi41: start tear down only if channel is busy
        usb: musb: musb_cppi41: Dont reprogram DMA if tear down is initiated
        dmaengine: s3c24xx-dma: make phy->irq signed for error handling
        dma: imx-dma: Add missing module owner field
        dma: imx-dma: Replace printk with dev_*
        dma: fsl-edma: fix static checker warning of NULL dereference
        dma: Remove comment about embedding dma_slave_config into custom structs
        dma: mmp_tdma: move to generic device tree binding
        dma: mmp_pdma: add IRQF_SHARED when request irq
        dma: edma: Fix memory leak in edma_prep_dma_cyclic()
        ...
      6c61403a
    • Linus Torvalds's avatar
      Merge tag 'backlight-for-linus-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · edf2377c
      Linus Torvalds authored
      Pull backlight changes from Lee Jones:
       - core: call put_device() instead of kfree()
       - gpio-backlight: add DT support
       - lm3639_bl driver: use managed resources
      
      * tag 'backlight-for-linus-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
        backlight: lm3639: Use devm_backlight_device_register()
        backlight: gpio-backlight: Add DT support
        backlight: core: Replace kfree with put_device
      edf2377c
    • Jens Axboe's avatar
      block: fix regression with block enabled tagging · 360f92c2
      Jens Axboe authored
      Martin reported that his test system would not boot with
      current git, it oopsed with this:
      
      BUG: unable to handle kernel paging request at ffff88046c6c9e80
      IP: [<ffffffff812971e0>] blk_queue_start_tag+0x90/0x150
      PGD 1ddf067 PUD 1de2067 PMD 47fc7d067 PTE 800000046c6c9060
      Oops: 0002 [#1] SMP DEBUG_PAGEALLOC
      Modules linked in: sd_mod lpfc(+) scsi_transport_fc scsi_tgt oracleasm
      rpcsec_gss_krb5 ipv6 igb dca i2c_algo_bit i2c_core hwmon
      CPU: 3 PID: 87 Comm: kworker/u17:1 Not tainted 3.14.0+ #246
      Hardware name: Supermicro X9DRX+-F/X9DRX+-F, BIOS 3.00 07/09/2013
      Workqueue: events_unbound async_run_entry_fn
      task: ffff8802743c2150 ti: ffff880273d02000 task.ti: ffff880273d02000
      RIP: 0010:[<ffffffff812971e0>]  [<ffffffff812971e0>]
      blk_queue_start_tag+0x90/0x150
      RSP: 0018:ffff880273d03a58  EFLAGS: 00010092
      RAX: ffff88046c6c9e78 RBX: ffff880077208e78 RCX: 00000000fffc8da6
      RDX: 00000000fffc186d RSI: 0000000000000009 RDI: 00000000fffc8d9d
      RBP: ffff880273d03a88 R08: 0000000000000001 R09: ffff8800021c2410
      R10: 0000000000000005 R11: 0000000000015b30 R12: ffff88046c5bb8a0
      R13: ffff88046c5c0890 R14: 000000000000001e R15: 000000000000001e
      FS:  0000000000000000(0000) GS:ffff880277b00000(0000)
      knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: ffff88046c6c9e80 CR3: 00000000018f6000 CR4: 00000000000407e0
      Stack:
       ffff880273d03a98 ffff880474b18800 0000000000000000 ffff880474157000
       ffff88046c5c0890 ffff880077208e78 ffff880273d03ae8 ffffffff813b9e62
       ffff880200000010 ffff880474b18968 ffff880474b18848 ffff88046c5c0cd8
      Call Trace:
       [<ffffffff813b9e62>] scsi_request_fn+0xf2/0x510
       [<ffffffff81293167>] __blk_run_queue+0x37/0x50
       [<ffffffff8129ac43>] blk_execute_rq_nowait+0xb3/0x130
       [<ffffffff8129ad24>] blk_execute_rq+0x64/0xf0
       [<ffffffff8108d2b0>] ? bit_waitqueue+0xd0/0xd0
       [<ffffffff813bba35>] scsi_execute+0xe5/0x180
       [<ffffffff813bbe4a>] scsi_execute_req_flags+0x9a/0x110
       [<ffffffffa01b1304>] sd_spinup_disk+0x94/0x460 [sd_mod]
       [<ffffffff81160000>] ? __unmap_hugepage_range+0x200/0x2f0
       [<ffffffffa01b2b9a>] sd_revalidate_disk+0xaa/0x3f0 [sd_mod]
       [<ffffffffa01b2fb8>] sd_probe_async+0xd8/0x200 [sd_mod]
       [<ffffffff8107703f>] async_run_entry_fn+0x3f/0x140
       [<ffffffff8106a1c5>] process_one_work+0x175/0x410
       [<ffffffff8106b373>] worker_thread+0x123/0x400
       [<ffffffff8106b250>] ? manage_workers+0x160/0x160
       [<ffffffff8107104e>] kthread+0xce/0xf0
       [<ffffffff81070f80>] ? kthread_freezable_should_stop+0x70/0x70
       [<ffffffff815f0bac>] ret_from_fork+0x7c/0xb0
       [<ffffffff81070f80>] ? kthread_freezable_should_stop+0x70/0x70
      Code: 48 0f ab 11 72 db 48 81 4b 40 00 00 10 00 89 83 08 01 00 00 48 89
      df 49 8b 04 24 48 89 1c d0 e8 f7 a8 ff ff 49 8b 85 28 05 00 00 <48> 89
      58 08 48 89 03 49 8d 85 28 05 00 00 48 89 43 08 49 89 9d
      RIP  [<ffffffff812971e0>] blk_queue_start_tag+0x90/0x150
       RSP <ffff880273d03a58>
      CR2: ffff88046c6c9e80
      
      Martin bisected and found this to be the problem patch;
      
      	commit 6d113398
      	Author: Jan Kara <jack@suse.cz>
      	Date:   Mon Feb 24 16:39:54 2014 +0100
      
      	    block: Stop abusing rq->csd.list in blk-softirq
      
      and the problem was immediately apparent. The patch states that
      it is safe to reuse queuelist at completion time, since it is
      no longer used. However, that is not true if a device is using
      block enabled tagging. If that is the case, then the queuelist
      is reused to keep track of busy tags. If a device also ended
      up using softirq completions, we'd reuse ->queuelist for the
      IPI handling while block tagging was still using it. Boom.
      
      Fix this by adding a new ipi_list list head, and share the
      memory used with the request hash table. The hash table is
      never used after the request is moved to the dispatch list,
      which happens long before any potential completion of the
      request. Add a new request bit for this, so we don't have
      cases that check rq->hash while it could potentially have
      been reused for the IPI completion.
      Reported-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Tested-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      360f92c2
    • Martin K. Petersen's avatar
      scsi: Make sure cmd_flags are 64-bit · 2bfad21e
      Martin K. Petersen authored
      cmd_flags in struct request is now 64 bits wide but the scsi_execute
      functions truncated arguments passed to int leading to errors. Make sure
      the flags parameters are u64.
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Cc: Jens Axboe <axboe@fb.com>
      CC: Jan Kara <jack@suse.cz>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      2bfad21e
  2. 09 Apr, 2014 30 commits
    • Tim Gardner's avatar
      ALSA: usb-audio: Suppress repetitive debug messages from retire_playback_urb() · a5065eb6
      Tim Gardner authored
      BugLink: http://bugs.launchpad.net/bugs/1305133
      
      Malfunctioning or slow devices can cause a flood of dmesg SPAM.
      
      I've ignored checkpatch.pl complaints about the use of printk_ratelimit() in favour
      of prior art in sound/usb/pcm.c.
      
      WARNING: Prefer printk_ratelimited or pr_<level>_ratelimited to printk_ratelimit
      +	if (printk_ratelimit() &&
      
      Cc: Jaroslav Kysela <perex@perex.cz>
      Cc: Takashi Iwai <tiwai@suse.de>
      Cc: Eldad Zack <eldad@fogrefinery.com>
      Cc: Daniel Mack <zonque@gmail.com>
      Cc: Clemens Ladisch <clemens@ladisch.de>
      Signed-off-by: default avatarTim Gardner <tim.gardner@canonical.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      a5065eb6
    • Takashi Iwai's avatar
      Merge tag 'asoc-v3.15-5' of... · 50487c3a
      Takashi Iwai authored
      Merge tag 'asoc-v3.15-5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
      
      ASoC: Fixes for v3.15
      
      A smattering of device specific fixes, nothing stands out here except
      for the multiplatform fixes for Samsung and the device IDs being added
      by Stephen Warren - there's no real code changes from those and they
      give better robustness to the enumeration with DT.
      50487c3a
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 39de65aa
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
       "Here is the pull request from the i2c subsystem.  It got a little
        delayed because I needed to wait for a dependency to be included
        (commit b424080a: "reset: Add optional resets and stubs").  Plus,
        I had some email problems.  All done now, the highlights are:
      
         - drivers can now deprecate their use of i2c classes.  That shouldn't
           be used on embedded platforms anyhow and was often blindly
           copy&pasted.  This mechanism gives users time to switch away and
           ultimately boot faster once the use of classes for those drivers is
           gone for good.
      
         - new drivers for QUP, Cadence, efm32
      
         - tracepoint support for I2C and SMBus
      
         - bigger cleanups for the mv64xxx, nomadik, and designware drivers
      
        And the usual bugfixes, cleanups, feature additions.  Most stuff has
        been in linux-next for a while.  Just some hot fixes and new drivers
        were added a bit more recently."
      
      * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (63 commits)
        i2c: cadence: fix Kconfig dependency
        i2c: Add driver for Cadence I2C controller
        i2c: cadence: Document device tree bindings
        Documentation: i2c: improve section about flags mangling the protocol
        i2c: qup: use proper type fro clk_freq
        i2c: qup: off by ones in qup_i2c_probe()
        i2c: efm32: fix binding doc
        MAINTAINERS: update I2C web resources
        i2c: qup: New bus driver for the Qualcomm QUP I2C controller
        i2c: qup: Add device tree bindings information
        i2c: i2c-xiic: deprecate class based instantiation
        i2c: i2c-sirf: deprecate class based instantiation
        i2c: i2c-mv64xxx: deprecate class based instantiation
        i2c: i2c-designware-platdrv: deprecate class based instantiation
        i2c: i2c-davinci: deprecate class based instantiation
        i2c: i2c-bcm2835: deprecate class based instantiation
        i2c: mv64xxx: Fix reset controller handling
        i2c: omap: fix usage of IS_ERR_VALUE with pm_runtime_get_sync
        i2c: efm32: new bus driver
        i2c: exynos5: remove unnecessary cast of void pointer
        ...
      39de65aa
    • Linus Torvalds's avatar
      Merge tag 'mmc-updates-for-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc · 97e18dc0
      Linus Torvalds authored
      Pull MMC updates from Chris Ball:
       "MMC highlights for 3.15:
      
        Core:
         - CONFIG_MMC_UNSAFE_RESUME=y is now default behavior
         - DT bindings for SDHCI UHS, eMMC HS200, high-speed DDR, at 1.8/1.2V
         - Add GPIO descriptor based slot-gpio card detect API
      
        Drivers:
         - dw_mmc: Refactor SOCFPGA support as a variant inside dw_mmc-pltfm.c
         - mmci: Support HW busy detection on ux500
         - omap: Support MMC_ERASE
         - omap_hsmmc: Support MMC_PM_KEEP_POWER, MMC_PM_WAKE_SDIO_IRQ, (a)cmd23
         - rtsx: Support pre-req/post-req async
         - sdhci: Add support for Realtek RTS5250 controllers
         - sdhci-acpi: Add support for 80860F16, fix 80860F14/SDIO card detect
         - sdhci-msm: Add new driver for Qualcomm SDHCI chipset support
         - sdhci-pxav3: Add support for Marvell Armada 380 and 385 SoCs"
      
      * tag 'mmc-updates-for-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (102 commits)
        mmc: sdhci-acpi: Intel SDIO has broken card detect
        mmc: sdhci-pxav3: add support for the Armada 38x SDHCI controller
        mmc: sdhci-msm: Add platform_execute_tuning implementation
        mmc: sdhci-msm: Initial support for Qualcomm chipsets
        mmc: sdhci-msm: Qualcomm SDHCI binding documentation
        sdhci: only reprogram retuning timer when flag is set
        mmc: rename ARCH_BCM to ARCH_BCM_MOBILE
        mmc: sdhci: Allow for irq being shared
        mmc: sdhci-acpi: Add device id 80860F16
        mmc: sdhci-acpi: Fix broken card detect for ACPI HID 80860F14
        mmc: slot-gpio: Add GPIO descriptor based CD GPIO API
        mmc: slot-gpio: Split out CD IRQ request into a separate function
        mmc: slot-gpio: Record GPIO descriptors instead of GPIO numbers
        Revert "dts: socfpga: Add support for SD/MMC on the SOCFPGA platform"
        mmc: sdhci-spear: use generic card detection gpio support
        mmc: sdhci-spear: remove support for power gpio
        mmc: sdhci-spear: simplify resource handling
        mmc: sdhci-spear: fix platform_data usage
        mmc: sdhci-spear: fix error handling paths for DT
        mmc: sdhci-bcm-kona: fix build errors when built-in
        ...
      97e18dc0
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 042f7b7c
      Linus Torvalds authored
      Pull more powerpc updates from Ben Herrenschmidt:
       "Here are a few more powerpc things for you.
      
        So you'll find here the conversion of the two new firmware sysfs
        interfaces to the new API for self-removing files that Greg and Tejun
        introduced, so they can finally remove the old one.
      
        I'm also reverting the hwmon driver for powernv.  I shouldn't have
        merged it, I got a bit carried away here.  I hadn't realized it was
        never CCed to the relevant maintainer(s) and list(s), and happens to
        have some issues so I'm taking it out and it will come back via the
        proper channels.
      
        The rest is a bunch of LE fixes (argh, some of the new stuff was
        broken on LE, I really need to start testing LE myself !) and various
        random fixes here and there.
      
        Finally one bit that's not strictly a fix, which is the HVC OPAL
        change to "kick" the HVC thread when the firmware tells us there is
        new incoming data.  I don't feel like waiting for this one, it's
        simple enough, and it makes a big difference in console responsiveness
        which is good for my nerves"
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (26 commits)
        powerpc/powernv Adapt opal-elog and opal-dump to new sysfs_remove_file_self
        Revert "powerpc/powernv: hwmon driver for power values, fan rpm and temperature"
        power, sched: stop updating inside arch_update_cpu_topology() when nothing to be update
        powerpc/le: Avoid creatng R_PPC64_TOCSAVE relocations for modules.
        arch/powerpc: Use RCU_INIT_POINTER(x, NULL) in platforms/cell/spu_syscalls.c
        powerpc/opal: Add missing include
        powerpc: Convert last uses of __FUNCTION__ to __func__
        powerpc: Add lq/stq emulation
        powerpc/powernv: Add invalid OPAL call
        powerpc/powernv: Add OPAL message log interface
        powerpc/book3s: Fix mc_recoverable_range buffer overrun issue.
        powerpc: Remove dead code in sycall entry
        powerpc: Use of_node_init() for the fakenode in msi_bitmap.c
        powerpc/mm: NUMA pte should be handled via slow path in get_user_pages_fast()
        powerpc/powernv: Fix endian issues with sensor code
        powerpc/powernv: Fix endian issues with OPAL async code
        tty/hvc_opal: Kick the HVC thread on OPAL console events
        powerpc/powernv: Add opal_notifier_unregister() and export to modules
        powerpc/ppc64: Do not turn AIL (reloc-on interrupts) too early
        powerpc/ppc64: Gracefully handle early interrupts
        ...
      042f7b7c
    • Linus Torvalds's avatar
      futex: avoid race between requeue and wake · 69cd9eba
      Linus Torvalds authored
      Jan Stancek reported:
       "pthread_cond_broadcast/4-1.c testcase from openposix testsuite (LTP)
        occasionally fails, because some threads fail to wake up.
      
        Testcase creates 5 threads, which are all waiting on same condition.
        Main thread then calls pthread_cond_broadcast() without holding mutex,
        which calls:
      
            futex(uaddr1, FUTEX_CMP_REQUEUE_PRIVATE, 1, 2147483647, uaddr2, ..)
      
        This immediately wakes up single thread A, which unlocks mutex and
        tries to wake up another thread:
      
            futex(uaddr2, FUTEX_WAKE_PRIVATE, 1)
      
        If thread A manages to call futex_wake() before any waiters are
        requeued for uaddr2, no other thread is woken up"
      
      The ordering constraints for the hash bucket waiter counting are that
      the waiter counts have to be incremented _before_ getting the spinlock
      (because the spinlock acts as part of the memory barrier), but the
      "requeue" operation didn't honor those rules, and nobody had even
      thought about that case.
      
      This fairly simple patch just increments the waiter count for the target
      hash bucket (hb2) when requeing a futex before taking the locks.  It
      then decrements them again after releasing the lock - the code that
      actually moves the futex(es) between hash buckets will do the additional
      required waiter count housekeeping.
      Reported-and-tested-by: default avatarJan Stancek <jstancek@redhat.com>
      Acked-by: default avatarDavidlohr Bueso <davidlohr@hp.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: stable@vger.kernel.org # 3.14
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      69cd9eba
    • Martin K. Petersen's avatar
      block: Ensure we only enable integrity metadata for reads and writes · e69f18f0
      Martin K. Petersen authored
      We'd occasionally attempt to generate protection information for flushes
      and other requests with a zero payload. Make sure we only attempt to
      enable integrity for reads and writes.
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      e69f18f0
    • Martin K. Petersen's avatar
      block: Fix integrity verification · 0bc69973
      Martin K. Petersen authored
      Commit bf36f9cf caused a regression by effectively reverting Nic's
      fix from 5837c80e that ensures we traverse the full bio_vec list
      upon completion.
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Cc: Nicholas Bellinger <nab@linux-iscsi.org>
      Cc: Gu Zheng <guz.fnst@cn.fujitsu.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      0bc69973
    • Martin K. Petersen's avatar
      block: Fix for_each_bvec() · b7aa84d9
      Martin K. Petersen authored
      Commit 4550dd6c introduced for_each_bvec() which iterates over each
      bvec attached to a bio or bip. However, the macro fails to check bi_size
      before dereferencing which can lead to crashes while counting/mapping
      integrity scatterlist segments.
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Cc: Kent Overstreet <kmo@daterainc.com>
      Cc: Nicholas Bellinger <nab@linux-iscsi.org>
      Cc: <stable@vger.kernel.org> # v3.14+
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      b7aa84d9
    • Thierry Reding's avatar
      ALSA: hda - Make full_reset boolean · 17c3ad03
      Thierry Reding authored
      The full_reset argument to azx_init_chip() carries boolean rather than
      numerical information, so update the type to reflect that.
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      17c3ad03
    • Hui Wang's avatar
      ALSA: hda - add headset mic detect quirk for a Dell laptop · 137bcc33
      Hui Wang authored
      When we plug a 3-ring headset on the Dell machine (VID: 0x10ec0283,
      SID: 0x10280667), the headset mic can't be detected, after apply this
      patch, the headset mic can work well.
      
      BugLink: https://bugs.launchpad.net/bugs/1297581
      Cc: David Henningsson <david.henningsson@canonical.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarHui Wang <hui.wang@canonical.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      137bcc33
    • Christoph Jaeger's avatar
      sound: dmasound: use module_platform_driver_probe() · 292ab81d
      Christoph Jaeger authored
      Eliminate boilerplate code by using module_platform_driver_probe().
      Signed-off-by: default avatarChristoph Jaeger <christophjaeger@linux.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      292ab81d
    • Christoph Jaeger's avatar
      ALSA: au1x00: use module_platform_driver() · 34f98063
      Christoph Jaeger authored
      Eliminate boilerplate code by using module_platform_driver().
      Signed-off-by: default avatarChristoph Jaeger <christophjaeger@linux.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      34f98063
    • Dylan Reid's avatar
      ALSA: hda - Use runtime helper to check active state. · 7b0a48f3
      Dylan Reid authored
      From azx_interrupt, use the helper to check if the device is active
      instead of checking the state.  This will do the right thing if
      runtime pm is disabled in addition to if the device is suspended.
      Signed-off-by: default avatarDylan Reid <dgreid@chromium.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      7b0a48f3
    • Stewart Smith's avatar
      powerpc/powernv Adapt opal-elog and opal-dump to new sysfs_remove_file_self · cc4f265a
      Stewart Smith authored
      We are currently using sysfs_schedule_callback() which is deprecated
      and about to be removed. Switch to the new interface instead.
      Signed-off-by: default avatarStewart Smith <stewart@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      cc4f265a
    • Benjamin Herrenschmidt's avatar
      Revert "powerpc/powernv: hwmon driver for power values, fan rpm and temperature" · 4952ef9a
      Benjamin Herrenschmidt authored
      This reverts commit 0de7f8a9.
      
      This driver wasn't merged via the proper maintainers (my fault ... ooops !)
      and has serious issues so let's take it out for now and have a new better
      one be merged the right way
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      ---
      4952ef9a
    • Michael Wang's avatar
      power, sched: stop updating inside arch_update_cpu_topology() when nothing to be update · 9a013361
      Michael Wang authored
      Since v1:
      	Edited the comment according to Srivatsa's suggestion.
      
      During the testing, we encounter below WARN followed by Oops:
      
      	WARNING: at kernel/sched/core.c:6218
      	...
      	NIP [c000000000101660] .build_sched_domains+0x11d0/0x1200
      	LR [c000000000101358] .build_sched_domains+0xec8/0x1200
      	PACATMSCRATCH [800000000000f032]
      	Call Trace:
      	[c00000001b103850] [c000000000101358] .build_sched_domains+0xec8/0x1200
      	[c00000001b1039a0] [c00000000010aad4] .partition_sched_domains+0x484/0x510
      	[c00000001b103aa0] [c00000000016d0a8] .rebuild_sched_domains+0x68/0xa0
      	[c00000001b103b30] [c00000000005cbf0] .topology_work_fn+0x10/0x30
      	...
      	Oops: Kernel access of bad area, sig: 11 [#1]
      	...
      	NIP [c00000000045c000] .__bitmap_weight+0x60/0xf0
      	LR [c00000000010132c] .build_sched_domains+0xe9c/0x1200
      	PACATMSCRATCH [8000000000029032]
      	Call Trace:
      	[c00000001b1037a0] [c000000000288ff4] .kmem_cache_alloc_node_trace+0x184/0x3a0
      	[c00000001b103850] [c00000000010132c] .build_sched_domains+0xe9c/0x1200
      	[c00000001b1039a0] [c00000000010aad4] .partition_sched_domains+0x484/0x510
      	[c00000001b103aa0] [c00000000016d0a8] .rebuild_sched_domains+0x68/0xa0
      	[c00000001b103b30] [c00000000005cbf0] .topology_work_fn+0x10/0x30
      	...
      
      This was caused by that 'sd->groups == NULL' after building groups, which
      was caused by the empty 'sd->span'.
      
      The cpu's domain contained nothing because the cpu was assigned to a wrong
      node, due to the following unfortunate sequence of events:
      
      1. The hypervisor sent a topology update to the guest OS, to notify changes
         to the cpu-node mapping. However, the update was actually redundant - i.e.,
         the "new" mapping was exactly the same as the old one.
      
      2. Due to this, the 'updated_cpus' mask turned out to be empty after exiting
         the 'for-loop' in arch_update_cpu_topology().
      
      3. So we ended up calling stop-machine() with an empty cpumask list, which made
         stop-machine internally elect cpumask_first(cpu_online_mask), i.e., CPU0 as
         the cpu to run the payload (the update_cpu_topology() function).
      
      4. This causes update_cpu_topology() to be run by CPU0. And since 'updates'
         is kzalloc()'ed inside arch_update_cpu_topology(), update_cpu_topology()
         finds update->cpu as well as update->new_nid to be 0. In other words, we
         end up assigning CPU0 (and eventually its siblings) to node 0, incorrectly.
      
      Along with the following wrong updating, it causes the sched-domain rebuild
      code to break and crash the system.
      
      Fix this by skipping the topology update in cases where we find that
      the topology has not actually changed in reality (ie., spurious updates).
      
      CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      CC: Paul Mackerras <paulus@samba.org>
      CC: Nathan Fontenot <nfont@linux.vnet.ibm.com>
      CC: Stephen Rothwell <sfr@canb.auug.org.au>
      CC: Andrew Morton <akpm@linux-foundation.org>
      CC: Robert Jennings <rcj@linux.vnet.ibm.com>
      CC: Jesse Larrew <jlarrew@linux.vnet.ibm.com>
      CC: "Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>
      CC: Alistair Popple <alistair@popple.id.au>
      Suggested-by: default avatar"Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Wang <wangyun@linux.vnet.ibm.com>
      Reviewed-by: default avatarSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      9a013361
    • Tony Breeds's avatar
      powerpc/le: Avoid creatng R_PPC64_TOCSAVE relocations for modules. · d3d35d95
      Tony Breeds authored
      When building modules with a native le toolchain the linker will
      generate R_PPC64_TOCSAVE relocations when it's safe to omit saving r2 on
      a plt call.  This isn't helpful in the conext of a kernel module and the
      kernel will fail to load those modules with an error like:
      	nf_conntrack: Unknown ADD relocation: 109
      
      This patch tells the linker to avoid createing R_PPC64_TOCSAVE
      relocations allowing modules to load.
      Signed-off-by: default avatarTony Breeds <tony@bakeyournoodle.com>
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      d3d35d95
    • Monam Agarwal's avatar
      arch/powerpc: Use RCU_INIT_POINTER(x, NULL) in platforms/cell/spu_syscalls.c · 282efb70
      Monam Agarwal authored
      Here rcu_assign_pointer() is ensuring that the
      initialization of a structure is carried out before storing a pointer
      to that structure.
      So, rcu_assign_pointer(p, NULL) can always safely be converted to
      RCU_INIT_POINTER(p, NULL).
      Signed-off-by: default avatarMonam Agarwal <monamagarwal123@gmail.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      282efb70
    • Michael Neuling's avatar
      powerpc/opal: Add missing include · bfd25d72
      Michael Neuling authored
      next-20140324 currently fails compiling celleb_defconfig with:
      
      arch/powerpc/include/asm/opal.h:894:42: error: 'struct notifier_block' declared inside parameter list [-Werror]
      arch/powerpc/include/asm/opal.h:894:42: error: its scope is only this definition or declaration, which is probably not what you want [-Werror]
      arch/powerpc/include/asm/opal.h:896:14: error: 'struct notifier_block' declared inside parameter list [-Werror]
      
      This is due to a missing include which is added here.
      Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      bfd25d72
    • Joe Perches's avatar
      powerpc: Convert last uses of __FUNCTION__ to __func__ · aba6f4f2
      Joe Perches authored
      Just about all of these have been converted to __func__,
      so convert the last uses.
      Signed-off-by: default avatarJoe Perches <joe@perches.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      aba6f4f2
    • Anton Blanchard's avatar
      powerpc: Add lq/stq emulation · f83319d7
      Anton Blanchard authored
      Recent CPUs support quad word load and store instructions. Add
      support to the alignment handler for them.
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      f83319d7
    • Joel Stanley's avatar
      powerpc/powernv: Add invalid OPAL call · e28b05e7
      Joel Stanley authored
      This call will not be understood by OPAL, and cause it to add an error
      to it's log. Among other things, this is useful for testing the
      behaviour of the log as it fills up.
      Signed-off-by: default avatarJoel Stanley <joel@jms.id.au>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      e28b05e7
    • Joel Stanley's avatar
      powerpc/powernv: Add OPAL message log interface · bfc36894
      Joel Stanley authored
      OPAL provides an in-memory circular buffer containing a message log
      populated with various runtime messages produced by the firmware.
      
      Provide a sysfs interface /sys/firmware/opal/msglog for userspace to
      view the messages.
      Signed-off-by: default avatarJoel Stanley <joel@jms.id.au>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      bfc36894
    • Mahesh Salgaonkar's avatar
      powerpc/book3s: Fix mc_recoverable_range buffer overrun issue. · 6e556b47
      Mahesh Salgaonkar authored
      Currently we wrongly allocate mc_recoverable_range buffer (to hold
      recoverable ranges) based on size of the property "mcheck-recoverable-ranges".
      This results in allocating less memory to hold available recoverable range
      entries from /proc/device-tree/ibm,opal/mcheck-recoverable-ranges.
      
      This patch fixes this issue by allocating mc_recoverable_range buffer based
      on number of entries of recoverable ranges instead of device property size.
      Without this change we end up allocating less memory and run into memory
      corruption issue.
      Signed-off-by: default avatarMahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      6e556b47
    • Michael Neuling's avatar
      powerpc: Remove dead code in sycall entry · fa5c11b7
      Michael Neuling authored
      In:
        commit 742415d6
        Author: Michael Neuling <mikey@neuling.org>
        powerpc: Turn syscall handler into macros
      
      We converted the syscall entry code onto macros, but in doing this we
      introduced some cruft that's never run and should never have been added.
      
      This removes that code.
      Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      fa5c11b7
    • Li Zhong's avatar
      powerpc: Use of_node_init() for the fakenode in msi_bitmap.c · e47ff70a
      Li Zhong authored
      This patch uses of_node_init() to initialize the kobject in the fake
      node used in test_of_node(), to avoid following kobject warning.
      
      [    0.897654] kobject: '(null)' (c0000007ca183a08): is not initialized, yet kobject_put() is being called.
      [    0.897682] ------------[ cut here ]------------
      [    0.897688] WARNING: at lib/kobject.c:670
      [    0.897692] Modules linked in:
      [    0.897701] CPU: 4 PID: 1 Comm: swapper/0 Not tainted 3.14.0+ #1
      [    0.897708] task: c0000007ca100000 ti: c0000007ca180000 task.ti: c0000007ca180000
      [    0.897715] NIP: c00000000046a1f0 LR: c00000000046a1ec CTR: 0000000001704660
      [    0.897721] REGS: c0000007ca1835c0 TRAP: 0700   Not tainted  (3.14.0+)
      [    0.897727] MSR: 8000000000029032 <SF,EE,ME,IR,DR,RI>  CR: 28000024  XER: 0000000d
      [    0.897749] CFAR: c0000000008ef4ec SOFTE: 1
      GPR00: c00000000046a1ec c0000007ca183840 c0000000014c59b8 000000000000005c
      GPR04: 0000000000000001 c000000000129770 0000000000000000 0000000000000001
      GPR08: 0000000000000000 0000000000000000 0000000000000000 0000000000003fef
      GPR12: 0000000000000000 c00000000f221200 c00000000000c350 0000000000000000
      GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
      GPR20: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
      GPR24: 0000000000000000 c00000000144e808 c000000000c56f20 00000000000000d8
      GPR28: c000000000cd5058 0000000000000000 c000000001454ca8 c0000007ca183a08
      [    0.897856] NIP [c00000000046a1f0] .kobject_put+0xa0/0xb0
      [    0.897863] LR [c00000000046a1ec] .kobject_put+0x9c/0xb0
      [    0.897868] Call Trace:
      [    0.897874] [c0000007ca183840] [c00000000046a1ec] .kobject_put+0x9c/0xb0 (unreliable)
      [    0.897885] [c0000007ca1838c0] [c000000000743f9c] .of_node_put+0x2c/0x50
      [    0.897894] [c0000007ca183940] [c000000000c83954] .test_of_node+0x1dc/0x208
      [    0.897902] [c0000007ca183b80] [c000000000c839a4] .msi_bitmap_selftest+0x24/0x38
      [    0.897913] [c0000007ca183bf0] [c00000000000bb34] .do_one_initcall+0x144/0x200
      [    0.897922] [c0000007ca183ce0] [c000000000c748e4] .kernel_init_freeable+0x2b4/0x394
      [    0.897931] [c0000007ca183db0] [c00000000000c374] .kernel_init+0x24/0x130
      [    0.897940] [c0000007ca183e30] [c00000000000a2f4] .ret_from_kernel_thread+0x5c/0x68
      [    0.897947] Instruction dump:
      [    0.897952] 7fe3fb78 38210080 e8010010 ebe1fff8 7c0803a6 4800014c e89f0000 3c62ff6e
      [    0.897971] 7fe5fb78 3863a950 48485279 60000000 <0fe00000> 39000000 393f0038 4bffff80
      [    0.897992] ---[ end trace 1eeffdb9f825a556 ]---
      Signed-off-by: default avatarLi Zhong <zhong@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      e47ff70a
    • Aneesh Kumar K.V's avatar
      1dc954bd
    • Anton Blanchard's avatar
      powerpc/powernv: Fix endian issues with sensor code · 9000c17d
      Anton Blanchard authored
      One OPAL call and one device tree property needed byte swapping.
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      9000c17d
    • Linus Torvalds's avatar
      Merge branch 'for-3.15' of git://linux-nfs.org/~bfields/linux · 75ff24fa
      Linus Torvalds authored
      Pull nfsd updates from Bruce Fields:
       "Highlights:
         - server-side nfs/rdma fixes from Jeff Layton and Tom Tucker
         - xdr fixes (a larger xdr rewrite has been posted but I decided it
           would be better to queue it up for 3.16).
         - miscellaneous fixes and cleanup from all over (thanks especially to
           Kinglong Mee)"
      
      * 'for-3.15' of git://linux-nfs.org/~bfields/linux: (36 commits)
        nfsd4: don't create unnecessary mask acl
        nfsd: revert v2 half of "nfsd: don't return high mode bits"
        nfsd4: fix memory leak in nfsd4_encode_fattr()
        nfsd: check passed socket's net matches NFSd superblock's one
        SUNRPC: Clear xpt_bc_xprt if xs_setup_bc_tcp failed
        NFSD/SUNRPC: Check rpc_xprt out of xs_setup_bc_tcp
        SUNRPC: New helper for creating client with rpc_xprt
        NFSD: Free backchannel xprt in bc_destroy
        NFSD: Clear wcc data between compound ops
        nfsd: Don't return NFS4ERR_STALE_STATEID for NFSv4.1+
        nfsd4: fix nfs4err_resource in 4.1 case
        nfsd4: fix setclientid encode size
        nfsd4: remove redundant check from nfsd4_check_resp_size
        nfsd4: use more generous NFS4_ACL_MAX
        nfsd4: minor nfsd4_replay_cache_entry cleanup
        nfsd4: nfsd4_replay_cache_entry should be static
        nfsd4: update comments with obsolete function name
        rpc: Allow xdr_buf_subsegment to operate in-place
        NFSD: Using free_conn free connection
        SUNRPC: fix memory leak of peer addresses in XPRT
        ...
      75ff24fa
  3. 08 Apr, 2014 2 commits