1. 03 Jun, 2013 20 commits
    • David Herrmann's avatar
      HID: wiimote: add sysfs extension/device-type attrs · c7da0867
      David Herrmann authored
      Two new attributes, "extension" and "devtype" now allow user-space to read
      the extension type and device type. As device detection is asynchronous,
      we send a CHANGED event after it is done. This also allows user-space to
      wait for a device to settle before opening its input event devices.
      
      The "extension" device is compatible with the old "extension" sysfs field
      (which was registered by the static extension support code).
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      c7da0867
    • David Herrmann's avatar
      HID: wiimote: lock DRM mode during debugfs overwrite · d76f89e1
      David Herrmann authored
      If we write a DRM mode via debugfs, we shouldn't allow normal operations
      to overwrite this DRM mode. This is important if we want to debug
      3rd-party devices and we want to see what data is sent on each mode.
      
      If we write NULL/0 as DRM, the lock is removed again so the best matching
      DRM is chosen by wiimote core.
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      d76f89e1
    • David Herrmann's avatar
      HID: wiimote: fix ctx pointer in debugfs DRM-write · 51103c70
      David Herrmann authored
      single_open() stores the seq_file pointer in file->private_data. It stores
      our ctx pointer in seq_file->private.
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      51103c70
    • David Herrmann's avatar
      HID: wiimote: add Motion Plus extension module · 34472d37
      David Herrmann authored
      Add parsers for motion plus data so we can hotplug motion plus extensions
      and make use of them. This is mostly the same as the old static motion
      plus parser.
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      34472d37
    • David Herrmann's avatar
      HID: wiimote: add Classic Controller extension · 9d6f9ecb
      David Herrmann authored
      Add a new extension module for the classic controller so we get hotplug
      support for this device. It is mostly the same as the old static classic
      controller parser.
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      9d6f9ecb
    • David Herrmann's avatar
      HID: wiimote: add Nunchuk support · b6ee67b3
      David Herrmann authored
      This moves the nunchuk parser over to an extension module. This allows to
      make use of hotplugged Nunchuks instead of the old static parser.
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      b6ee67b3
    • David Herrmann's avatar
      HID: wiimote: add Balance Board support · f1d4bed4
      David Herrmann authored
      This adds Nintendo Wii Balance Board support to the new HOTPLUG capable
      wiimote core. It is mostly copied from the old extension.
      
      This also adds Balance Board device detection. Whenever we find a device
      that supports the balance-board extension, we assume that it is a real
      balance board and disable unsupported hardward like accelerometer, IR,
      rumble and more.
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      f1d4bed4
    • David Herrmann's avatar
      HID: wiimote: add extension hotplug support · 4148b6bf
      David Herrmann authored
      The Wii Remote has several extension ports. The first port (EXT) provides
      hotplug events whenever an extension is plugged. The second port (MP)
      does not provide hotplug events by default. Instead, we have to map MP
      into EXT to get events for it.
      
      This patch introduces hotplug support for extensions. It is fairly
      complicated to get this right because the Wii Remote sends a lot of
      noise-hotplug events while activating extension ports. We need to filter
      the events and only handle the events that are real hotplug events.
      
      Mapping MP into EXT is easy. But if we want both, MP _and_ EXT at the same
      time, we need to map MP into EXT and enable a passthrough-mode. This will
      then send real EXT events through the mapped MP interleaved with real MP
      events. But once MP is mapped, we no longer have access to the real EXT
      registers so we need to perform setup _before_ mapping MP. Furthermore, we
      no longer can read EXT IDs so we cannot verify if EXT is still the same
      extension that we expect it to be.
      We deal with this by unmapping MP whenever we got into a situation where
      EXT might have changed. We then re-read EXT and MP and remap everything.
      
      The real Wii Console takes a fairly easy approach: It simply reconnects to
      the device on hotplug events that it didn't expect. So if a program wants
      MP events, but MP is disconnected, it fails and reconnects so it can wait
      for MP hotplug events again.
      This simplifies hotplugging a lot because we just react on PLUG events and
      ignore UNPLUG events.
      The more sophisticated Wii applications avoid reconnection (well, they
      still reconnect during many weird events, but at least not during UNPLUG)
      but they start polling the device. This allows them to disable the device,
      poll for the extension ports to settle and then initialize them again.
      Unfortunately, this approach fails whenever an extension is replugged
      while it is initialized. We would loose UNPLUG events and polling the
      device later will give unreliable results because the extension port might
      be in some weird state, even though it's actually unplugged.
      
      Our approach is a real HOTPLUG approch. We keep track of the EXT and
      mapped MP hotplug events whenever they occur. We then re-evaluate the
      device state and initialize any possible new extension or deinitialize any
      gone extension. Only during initialization, we set an extension port
      ACTIVE. However, during an unplug event we mark them as INACTIVE. This
      guarantess that a fast UNPLUG -> PLUG event sequence doesn't keep them
      marked as PLUGGED+ACTIVE but only PLUGGED.
      To deal with annoying noise-hotplug events during extension mapping, we
      simply rescan the device before performing any mapping. This allows us to
      ignore all the noise events as long as the device is in the correct state.
      
      Long story short: EXT and MP registers are sparsely known and we need to
      jump through hoops to get reliable HOTPLUG working. But while Nintendo
      needs *FOUR* Bluetooth reconnections for the shortest imaginable
      boot->menu->game->menu->shutdown sequence, we now need *ZERO*.
      
      As always, 3rd party devices tend to break whenever we behave differently
      than the original Wii. So there are also devices which _expect_ a
      disconnect after UNPLUG. Obviously, these devices won't benefit from this
      patch. But all official devices were tested extensively and work great
      during any hotplug sequence. Yay!
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      4148b6bf
    • David Herrmann's avatar
      HID: wiimote: convert IR to module · 3b5f03c4
      David Herrmann authored
      IR is the last piece that still is handled natively. This patch converts
      it into a sub-device module like all other sub-devices. It mainly moves
      code and doesn't change semantics.
      
      We also implicitly sync IR data on ir_to_input3 now so the explicit
      input_sync() calls are no longer needed.
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      3b5f03c4
    • David Herrmann's avatar
      HID: wiimote: convert ACCEL to module · 0ea16757
      David Herrmann authored
      Accelerometer data is very similar to KEYS handling. Therefore, convert
      all ACCEL related handling into a sub-device module similar to KEYS.
      
      This doesn't change any semantics but only moves code over to
      wiimote-modules.
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      0ea16757
    • David Herrmann's avatar
      HID: wiimote: convert LEDS to modules · 6c5ae018
      David Herrmann authored
      Each of the 4 LEDs may be supported individually by devices. Therefore,
      we need one module for each device. To avoid code-duplication, we simply
      pass the LED ID as "arg" argument to the module loading code.
      
      This just moves the code over to wiimote-module. The semantics stay the
      same as before.
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      6c5ae018
    • David Herrmann's avatar
      HID: wiimote: convert BATTERY to module · dcf39231
      David Herrmann authored
      This introduces a new sub-device module for the BATTERY handlers. It
      moves the whole power_supply battery handling over to wiimote-modules.
      
      This doesn't change any semantics or ABI but only converts the battery
      handling into a sub-device module.
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      dcf39231
    • David Herrmann's avatar
      HID: wiimote: convert KEYS and RUMBLE to modules · 20cef813
      David Herrmann authored
      This introduces the first sub-device modules by converting the KEYS and
      RUMBLE sub-devices into wiimote modules. Both must be converted at once
      because they depend on the built-in shared input device.
      
      This mostly moves code from wiimote-core to wiimote-modules and doesn't
      change any semantics or ABI.
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      20cef813
    • David Herrmann's avatar
      HID: wiimote: add sub-device module infrastructure · 27f06942
      David Herrmann authored
      To avoid loading all sub-device drivers for every Wii Remote, even though
      the required hardware might not be available, we introduce a module layer.
      
      The module layer specifies which sub-devices are available on each
      device-type. After device detection, we only load the modules for the
      detected device. If module loading fails, we unload everything and mark
      the device as WIIMOTE_DEV_UNKNOWN. As long as a device is marked as
      "unknown", no sub-devices will be used and the device is considered
      unsupported.
      
      All the different sub-devices, including KEYS, RUMBLE, BATTERY, LEDS,
      ACCELEROMETER, IR and more will be ported in follow-up patches to the new
      module layer.
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      27f06942
    • David Herrmann's avatar
      HID: wiimote: wake up if output queue failed · d758b1f0
      David Herrmann authored
      Our output queue is asynchronous but synchronous reports may wait for a
      response to their request. Therefore, wake them up unconditionally if an
      output report couldn't be sent. But keep the report ID intact so we don't
      incorrectly assume our request succeeded.
      
      Note that the underlying connection is required to be reliable and does
      retransmission itself. So it is safe to assume that if the transmission
      fails, the device is in inconsistent state. Hence, we abort every request
      if any output report fails. No need to verify which report failed.
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      d758b1f0
    • David Herrmann's avatar
      HID: wiimote: use cached battery values on I/O failure · 6b80bb94
      David Herrmann authored
      Battery reports are sent along every status report of the Wii Remote.
      So chances are pretty high that we have an up-to-date battery
      cache at any time. Therefore, initialize the battery-cache to 100% and
      then return battery values from the cache if the query fails.
      
      This works around a power_supply limitation in that it requires us to be
      able to query the device during power_supply registration and
      removal. Otherwise, "add" or "remove" udev events are not sent. If
      we answer these requests from our cache instead, we avoid dropping these
      events and no longer cause warnings printed.
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      6b80bb94
    • David Herrmann's avatar
      HID: wiimote: add device detection · c57ff761
      David Herrmann authored
      Nintendo produced many different devices that are internally based on the
      Wii Remote protocol but provide different peripherals. To support these
      devices, we need to schedule a device detection during initialization.
      
      Device detection includes requesting a status report, reading extension
      information and then evaluating which device we may be dealing with.
      
      We currently detect gen1 and gen2 Wii Remote devices. All other devices
      are marked as generic devices. More detections will be added later.
      
      In followup patches we will be using these device IDs to control which
      peripherals to initialize. For instance if a device is known to have no IR
      camera, there is no need to provide the IR input device nor trying to
      access IR registers. In fact, there are 3rd party devices that break if we
      try things like this (hurray!).
      
      The init_worker will be scheduled whenever we get hotplug events. This
      isn't implemented, yet and will be added later. However, we need to make
      sure that this worker can be called multiple times.
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      c57ff761
    • David Herrmann's avatar
      HID: wiimote: keep HID device open · 5682b1a8
      David Herrmann authored
      We need constant I/O to keep the state up-to-date and not miss any
      packets. Hence, call hid_hw_open() during setup and hid_hw_close() during
      destruction.
      
      These are no-ops for Bluetooth HIDP, but lets be safe.
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      5682b1a8
    • David Herrmann's avatar
      HID: wiimote: move queue handling into separate struct · 13938538
      David Herrmann authored
      The output queue is independent of the other wiimote modules and can run
      on its own. Therefore, move its members into a separate struct so we don't
      run into name collisions with other modules.
      
      This is only a syntactic change that renames all queue members to queue.*.
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      13938538
    • David Herrmann's avatar
      HID: wiimote: extend driver description · 92eda7e4
      David Herrmann authored
      The hid-wiimote driver supports more than the Wii Remote. Nintendo
      produced many devices based on the Wii Remote, which have extension
      devices built-in. It is not clear to many users, that these devices have
      anything in common with the Wii Remote, so fix the driver description.
      
      This also updates the copyright information for the coming hotplugging
      rework.
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      92eda7e4
  2. 10 May, 2013 9 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · f755407d
      Linus Torvalds authored
      Pull HID fixes from Jiri Kosina:
      
       - fix usage of sleeping lock in atomic context from Jiri Kosina
      
       - build fix for hid-steelseries under certain .config setups by Simon Wood
      
       - simple mismerge fix from Fernando Luis Vázquez Cao
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
        HID: debug: fix RCU preemption issue
        HID: hid-steelseries fix led class build issue
        HID: reintroduce fix-up for certain Sony RF receivers
      f755407d
    • Linus Torvalds's avatar
      Merge tag 'sound-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 05a88a43
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "This contains small fixes since the previous pull request:
      
         - A few regression fixes and small updates of HD-audio
      
         - Yet another fix for Haswell HDMI audio
      
         - A copule of trivial fixes in ASoC McASP, DPAM and WM8994"
      
      * tag 'sound-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        Revert "ALSA: hda - Don't set up active streams twice"
        ALSA: Add comment for control TLV API
        ALSA: hda - Apply pin-enablement workaround to all Haswell HDMI codecs
        ALSA: HDA: Fix Oops caused by dereference NULL pointer
        ALSA: mips/sgio2audio: Remove redundant platform_set_drvdata()
        ALSA: mips/hal2: Remove redundant platform_set_drvdata()
        ALSA: hda - Fix 3.9 regression of EAPD init on Conexant codecs
        sound: Fix make allmodconfig on MIPS
        ALSA: hda - Fix system panic when DMA > 40 bits for Nvidia audio controllers
        ALSA: atmel: Remove redundant platform_set_drvdata()
        ASoC: McASP: Fix receive clock polarity in DAIFMT_NB_NF mode.
        ASoC: wm8994: missing break in wm8994_aif3_hw_params()
        ASoC: McASP: Add pins output direction for rx clocks when configured in CBS_CFS format
        ASoC: dapm: use clk_prepare_enable and clk_disable_unprepare
      05a88a43
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · daf799cc
      Linus Torvalds authored
      Pull MIPS updates from Ralf Baechle:
      
       - More work on DT support for various platforms
      
       - Various fixes that were to late to make it straight into 3.9
      
       - Improved platform support, in particular the Netlogic XLR and
         BCM63xx, and the SEAD3 and Malta eval boards.
      
       - Support for several Ralink SOC families.
      
       - Complete support for the microMIPS ASE which basically reencodes the
         existing MIPS32/MIPS64 ISA to use non-constant size instructions.
      
       - Some fallout from LTO work which remove old cruft and will generally
         make the MIPS kernel easier to maintain and resistant to compiler
         optimization, even in absence of LTO.
      
       - KVM support.  While MIPS has announced hardware virtualization
         extensions this KVM extension uses trap and emulate mode for
         virtualization of MIPS32.  More KVM work to add support for VZ
         hardware virtualizaiton extensions and MIPS64 will probably already
         be merged for 3.11.
      
      Most of this has been sitting in -next for a long time.  All defconfigs
      have been build or run time tested except three for which fixes are being
      sent by other maintainers.
      
      Semantic conflict with kvm updates done as per Ralf
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (118 commits)
        MIPS: Add new GIC clockevent driver.
        MIPS: Formatting clean-ups for clocksources.
        MIPS: Refactor GIC clocksource code.
        MIPS: Move 'gic_frequency' to common location.
        MIPS: Move 'gic_present' to common location.
        MIPS: MIPS16e: Add unaligned access support.
        MIPS: MIPS16e: Support handling of delay slots.
        MIPS: MIPS16e: Add instruction formats.
        MIPS: microMIPS: Optimise 'strnlen' core library function.
        MIPS: microMIPS: Optimise 'strlen' core library function.
        MIPS: microMIPS: Optimise 'strncpy' core library function.
        MIPS: microMIPS: Optimise 'memset' core library function.
        MIPS: microMIPS: Add configuration option for microMIPS kernel.
        MIPS: microMIPS: Disable LL/SC and fix linker bug.
        MIPS: microMIPS: Add vdso support.
        MIPS: microMIPS: Add unaligned access support.
        MIPS: microMIPS: Support handling of delay slots.
        MIPS: microMIPS: Add support for exception handling.
        MIPS: microMIPS: Floating point support.
        MIPS: microMIPS: Fix macro naming in micro-assembler.
        ...
      daf799cc
    • Linus Torvalds's avatar
      Merge tag 'arc-v3.10-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · 6019958d
      Linus Torvalds authored
      Pull second set of arc arch updates from Vineet Gupta:
       "Aliasing VIPT dcache support for ARC
      
        I'm satisified with testing, specially with fuse which has
        historically given grief to VIPT arches (ARM/PARISC...)"
      
      * tag 'arc-v3.10-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        ARC: [TB10x] Remove GENERIC_GPIO
        ARC: [mm] Aliasing VIPT dcache support 4/4
        ARC: [mm] Aliasing VIPT dcache support 3/4
        ARC: [mm] Aliasing VIPT dcache support 2/4
        ARC: [mm] Aliasing VIPT dcache support 1/4
        ARC: [mm] refactor the core (i|d)cache line ops loops
        ARC: [mm] serious bug in vaddr based icache flush
      6019958d
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 977b58e1
      Linus Torvalds authored
      Pull m68knommu updates from Greg Ungerer:
       "The bulk of the changes are generalizing the ColdFire v3 core support
        and adding in 537x CPU support.  Also a couple of other bug fixes, one
        to fix a reintroduction of a past bug in the romfs filesystem nommu
        support."
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        m68knommu: enable Timer on coldfire 532x
        m68knommu: fix ColdFire 5373/5329 QSPI base address
        m68knommu: add support for configuring a Freescale M5373EVB board
        m68knommu: add support for the ColdFire 537x family of CPUs
        m68knommu: make ColdFire M532x platform support more v3 generic
        m68knommu: create and use a common M53xx ColdFire class of CPUs
        m68k: remove unused asm/dbg.h
        m68k: Set ColdFire ACR1 cache mode depending on kernel configuration
        romfs: fix nommu map length to keep inside filesystem
        m68k: clean up unused "config ROMVECSIZE"
      977b58e1
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://github.com/realmz/blackfin-linux · f5b8fcb4
      Linus Torvalds authored
      Pull blackfin updates from Steven Miao.
      
      * tag 'for-linus' of git://github.com/realmz/blackfin-linux:
        bfin cache: dcplb map: add 16M dcplb map for BF60x
        blackfin: smp: fix smp build after drop asm/system.h
        blackfin: fix bootup core clock and system clock display
        Platform Nand: Set the GPIO for NAND read as input
        blackfin: rename vmImage to uImage after we move to buildroot
        blackfin: twi: Remove bogus #endif
        bf609: rsi: Add bf609 rsi MMR macro and board platform data.
        blackfin: dmc: Improve DDR2 write through in DMC effict controller.
      f5b8fcb4
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.monstr.eu/linux-2.6-microblaze · a1f0bccc
      Linus Torvalds authored
      Pull microblaze updates from Michal Simek.
      
      * 'next' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze: Enable IRQ in arch_cpu_idle
        microblaze: Fix uaccess_ok macro
        microblaze: Add support for new cpu versions and target architecture
        microblaze: Do not select OPT_LIB_ASM by default
        microblaze: Fix initrd support
        microblaze: Do not use r6 in head.S
        microblaze: pci: Remove duplicated header
        microblaze: Set the default irq_domain
        microblaze: pci: Remove duplicated include from pci-common.c
      a1f0bccc
    • Takashi Iwai's avatar
      Revert "ALSA: hda - Don't set up active streams twice" · 6c35ae3c
      Takashi Iwai authored
      This reverts commit affdb62b.
      
      The commit introduced a regression with AD codecs where the stream is
      always clean up.  Since the patch is just a minor optimization and
      reverting the commit fixes the issue, let's just revert it.
      Reported-and-tested-by: default avatarMichael Burian <michael.burian@sbg.at>
      Cc: <stable@vger.kernel.org> [v3.9+]
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      6c35ae3c
    • Vineet Gupta's avatar
      ARC: [TB10x] Remove GENERIC_GPIO · e7d5bab5
      Vineet Gupta authored
      This tracks Alexandre Courbot's mainline GPIO rework
      Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
      Acked-by: default avatarAlexandre Courbot <acourbot@nvidia.com>
      e7d5bab5
  3. 09 May, 2013 11 commits
    • Linus Torvalds's avatar
      Merge tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux · 70eba422
      Linus Torvalds authored
      Pull trivial pstore update from Tony Luck:
       "Couple of pstore cleanups"
      
      It turns out that the kmemdup() conversion ends up being undone by the
      fact that the memory block also needed the ecc information (see commit
      bd08ec33: "pstore/ram: Restore ecc information block"), so all that
      remains after merging is the error return code change.
      
      * tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
        pstore/ram: fix error return code in ramoops_probe()
        fs: pstore: Replaced calls to kmalloc and memcpy with kmemdup
      70eba422
    • Linus Torvalds's avatar
      Merge git://git.infradead.org/users/willy/linux-nvme · 2d4fe278
      Linus Torvalds authored
      Pull NVMe driver update from Matthew Wilcox:
       "Lots of exciting new features in the NVM Express driver this time,
        including support for emulating SCSI commands, discard support and the
        ability to submit per-sector metadata with I/Os.
      
        It's still mostly bugfixes though!"
      
      * git://git.infradead.org/users/willy/linux-nvme: (27 commits)
        NVMe: Use user defined admin ioctl timeout
        NVMe: Simplify Firmware Activate code slightly
        NVMe: Only clear the enable bit when disabling controller
        NVMe: Wait for device to acknowledge shutdown
        NVMe: Schedule timeout for sync commands
        NVMe: Meta-data support in NVME_IOCTL_SUBMIT_IO
        NVMe: Device specific stripe size handling
        NVMe: Split non-mergeable bio requests
        NVMe: Remove dead code in nvme_dev_add
        NVMe: Check for NULL memory in nvme_dev_add
        NVMe: Fix error clean-up on nvme_alloc_queue
        NVMe: Free admin queue on request_irq error
        NVMe: Add scsi unmap to SG_IO
        NVMe: queue usage fixes in nvme-scsi
        NVMe: Set TASK_INTERRUPTIBLE before processing queues
        NVMe: Add a character device for each nvme device
        NVMe: Fix endian-related problems in user I/O submission path
        NVMe: Fix I/O cancellation status on big-endian machines
        NVMe: Fix sparse warnings in scsi emulation
        NVMe: Don't fail initialisation unnecessarily
        ...
      2d4fe278
    • Linus Torvalds's avatar
      Merge tag 'acpi-fixes-3.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 2e99f3a1
      Linus Torvalds authored
      Pull ACPICA fixes from Rafael Wysocki:
      
       - _INI regression fix from Tomasz Nowicki.
      
       - Fix for a possible memory leak in _OSI support routine from Jung-uk
         Kim.
      
       - Fix for a possible buffer overflow during field unit read operation
         from Bob Moore.
      
      * tag 'acpi-fixes-3.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPICA: ACPICA: Fix for _INI regression
        ACPICA: _OSI support: Fix possible memory leak
        ACPICA: Fix possible buffer overflow during a field unit read operation
      2e99f3a1
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · fc72053b
      Linus Torvalds authored
      Pull ARM SoC fixes and straggler patches from Olof Johansson:
       "A collection of fixes for fall out from 3.10 merge window, some build
        fixes and warning cleanups and a small handful of patches that were
        small and contained and made sense to still include in 3.10 (some of
        these have also been in -next since the merge window opened).
      
        Largest continous series is for OMAP, but there's a handful for other
        platforms.
      
        For i.MX, one of the patches are framebuffer fixups due to fallout
        during the merge window, and the other removes some stale and broken
        code."
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (34 commits)
        ARM: exynos: dts: Fixed vbus-gpios
        ARM: EXYNOS5: Fix kernel dump in AFTR idle mode
        ARM: ux500: Rid ignored return value of regulator_enable() compiler warning
        ARM: ux500: read the correct soc_id number
        ARM: exynos: dts: cros5250: add cyapa trackpad
        video: mxsfb: Adapt to new videomode API
        ARM: imx: Select GENERIC_ALLOCATOR
        ARM: imx: compile fix for hotplug.c
        ARM: dts: don't assume boards are using twl4030 for omap3
        ARM: OMAP2+: Remove bogus IS_ERR_OR_NULL checking from id.c
        ARM: dts: Configure and fix the McSPI pins for 4430sdp
        ARM: dts: AM33XX: Add GPMC node
        ARM: dts: OMAP4460: Fix CPU OPP voltages
        ARM: dts: OMAP36xx: Fix CPU OPP voltages
        ARM: OMAP4+: omap2plus_defconfig: Enable audio via TWL6040 as module
        ARM: OMAP2: AM33XX: id: Add support for new AM335x PG2.1 Si
        omap: mux: add AM/DM37x gpios
        ARM: OMAP1: DMA: fix error handling in omap1_system_dma_init()
        ARM: OMAP2+: omap_device: use late_initcall_sync
        ARM: OMAP: RX-51: change probe order of touchscreen and panel SPI devices
        ...
      fc72053b
    • Linus Torvalds's avatar
      Merge tag 'xtensa-next-20130508' of git://github.com/czankel/xtensa-linux · c61c48df
      Linus Torvalds authored
      Pull xtensa updates from Chris Zankel:
       "Support for the latest MMU architecture that allows for a larger
        accessible memory region, and various bug-fixes"
      
      * tag 'xtensa-next-20130508' of git://github.com/czankel/xtensa-linux:
        xtensa: Switch to asm-generic/linkage.h
        xtensa: fix redboot load address
        xtensa: ISS: fix timer_lock usage in rs_open
        xtensa: disable IRQs while IRQ handler is running
        xtensa: enable lockdep support
        xtensa: fix arch_irqs_disabled_flags implementation
        xtensa: add irq flags trace support
        xtensa: provide custom CALLER_ADDR* implementations
        xtensa: add stacktrace support
        xtensa: clean up stpill_registers
        xtensa: don't use a7 in simcalls
        xtensa: don't attempt to use unconfigured timers
        xtensa: provide default platform_pcibios_init implementation
        xtensa: remove KCORE_ELF again
        xtensa: document MMUv3 setup sequence
        xtensa: add MMU v3 support
        xtensa: fix ibreakenable register update
        xtensa: fix oprofile building as module
      c61c48df
    • Linus Torvalds's avatar
      Merge tag 'arc-v3.10-rc1-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · e30f4192
      Linus Torvalds authored
      Pull ARC port updates from Vineet Gupta:
       "Support for two new platforms based on ARC700:
         - Abilis TB10x SoC [Chritisian/Pierrick]
         - Simulator only System-C Model [Mischa]
      
        ARC specific MM improvements:
         - Avoid full TLB flush (ASID increment) on munmap (even single page)
         - VIPT Cache Flushing improvements
           + Delayed dcache flush for non-aliasing dcache (big performance boost)
           + icache flush aliasing agnostic (no need to kill all possible aliases)
      
        Others:
         - Avoid needless rebuild of DTB files for every kernel build
         - Remove builtin cmdline as that is already provided by DeviceTree/bootargs
         - Fixing unaligned access emulation corner case
         - checkpatch fixes [Sachin]
         - Various fixlets [Noam]
         - Minor build failures/cleanups"
      
      * tag 'arc-v3.10-rc1-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: (35 commits)
        ARC: [mm] Lazy D-cache flush (non aliasing VIPT)
        ARC: [mm] micro-optimize page size icache invalidate
        ARC: [mm] remove the pessimistic all-alias-invalidate icache helpers
        ARC: [mm] consolidate icache/dcache sync code
        ARC: [mm] optimise icache flush for kernel mappings
        ARC: [mm] optimise icache flush for user mappings
        ARC: [mm] optimize needless full mm TLB flush on munmap
        ARC: Add support for nSIM OSCI System C model
        ARC: [TB10x] Adapt device tree to new compatible string
        ARC: [TB10x] Add support for TB10x platform
        ARC: [TB10x] Device tree of TB100 and TB101 Development Kits
        ARC: Prepare interrupt code for external controllers
        ARC: Allow embedded arc-intc to be properly placed in DT intc hierarchy
        ARC: [cmdline] Don't overwrite u-boot provided bootargs
        ARC: [cmdline] Remove CONFIG_CMDLINE
        ARC: [plat-arcfpga] defconfig update
        ARC: unaligned access emulation broken if callee-reg dest of LD/ST
        ARC: unaligned access emulation error handling consolidation
        ARC: Debug/crash-printing Improvements
        ARC: fix typo with clock speed
        ...
      e30f4192
    • Linus Torvalds's avatar
      Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile · b32729b1
      Linus Torvalds authored
      Pull tile update from Chris Metcalf:
       "The interesting bug fix is support for the upcoming "4.2" release of
        the Tilera hypervisor, which by default launches Linux at privilege
        level 2 instead of 1.  The fix lets new and old hypervisors and
        Linuxes interoperate more smoothly, so I've tagged it for
        stable@kernel.org so that older Linuxes will be able to boot under the
        newer hypervisor."
      
      * 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
        usb: tilegx: fix memleak when create hcd fail
        arch/tile: remove inline marking of EXPORT_SYMBOL functions
        rtc: rtc-tile: add missing platform_device_unregister() when module exit
        tile: support new Tilera hypervisor
      b32729b1
    • Li Zefan's avatar
      shm: fix null pointer deref when userspace specifies invalid hugepage size · 091d0d55
      Li Zefan authored
      Dave reported an oops triggered by trinity:
      
        BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
        IP: newseg+0x10d/0x390
        PGD cf8c1067 PUD cf8c2067 PMD 0
        Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
        CPU: 2 PID: 7636 Comm: trinity-child2 Not tainted 3.9.0+#67
        ...
        Call Trace:
          ipcget+0x182/0x380
          SyS_shmget+0x5a/0x60
          tracesys+0xdd/0xe2
      
      This bug was introduced by commit af73e4d9 ("hugetlbfs: fix mmap
      failure in unaligned size request").
      Reported-by: default avatarDave Jones <davej@redhat.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarLi Zefan <lizfan@huawei.com>
      Reviewed-by: default avatarNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Acked-by: default avatarRik van Riel <riel@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      091d0d55
    • Rik van Riel's avatar
      ipc,sem: fix semctl(..., GETNCNT) · de2657f9
      Rik van Riel authored
      The semctl GETNCNT returns the number of semops waiting for the
      specified semaphore to become nonzero.  After commit 9f1bc2c9
      ("ipc,sem: have only one list in struct sem_queue"), the semops waiting
      on just one semaphore are waiting on that semaphore's list.
      
      In order to return the correct count, we have to walk that list too, in
      addition to the sem_array's list for complex operations.
      Signed-off-by: default avatarRik van Riel <riel@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      de2657f9
    • Rik van Riel's avatar
      ipc,sem: fix semctl(..., GETZCNT) · ebc2e5e6
      Rik van Riel authored
      The semctl GETZCNT returns the number of semops waiting for the
      specified semaphore to become zero.  After commit 9f1bc2c9
      ("ipc,sem: have only one list in struct sem_queue"), the semops waiting
      on just one semaphore are waiting on that semaphore's list.
      
      In order to return the correct count, we have to walk that list too, in
      addition to the sem_array's list for complex operations.
      
      This bug broke dbench; it works again with this patch applied.
      Signed-off-by: default avatarRik van Riel <riel@redhat.com>
      Reported-by: default avatarKent Overstreet <koverstreet@google.com>
      Tested-by: default avatarKent Overstreet <koverstreet@google.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ebc2e5e6
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 07e07450
      Linus Torvalds authored
      Pull more vfs fixes from Al Viro:
       "Regression fix from Geert + yet another open-coded kernel_read()"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        ecryptfs: don't open-code kernel_read()
        xtensa simdisk: Fix proc_create_data() conversion fallout
      07e07450