1. 24 Dec, 2014 2 commits
    • Johan Hedberg's avatar
      Bluetooth: Fix accepting connections when not using mgmt · 6a8fc95c
      Johan Hedberg authored
      When connectable mode is enabled (page scan on) through some non-mgmt
      method the HCI_CONNECTABLE flag will not be set. For backwards
      compatibility with user space versions not using mgmt we should not
      require HCI_CONNECTABLE to be set if HCI_MGMT is not set.
      Reported-by: default avatarPali Rohár <pali.rohar@gmail.com>
      Tested-by: default avatarPali Rohár <pali.rohar@gmail.com>
      Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      Cc: stable@vger.kernel.org # 3.17+
      6a8fc95c
    • Marcel Holtmann's avatar
      Bluetooth: Fix controller configuration with HCI_QUIRK_INVALID_BDADDR · 8bfe8442
      Marcel Holtmann authored
      When controllers set the HCI_QUIRK_INVALID_BDADDR flag, it is required
      by userspace to program a valid public Bluetooth device address into
      the controller before it can be used.
      
      After successful address configuration, the internal state changes and
      the controller runs the complete initialization procedure. However one
      small difference is that this is no longer the HCI_SETUP stage. The
      HCI_SETUP stage is only valid during initial controller setup. In this
      case the stack runs the initialization as part of the HCI_CONFIG stage.
      
      The controller version information, default name and supported commands
      are only stored during HCI_SETUP. While these information are static,
      they are not read initially when HCI_QUIRK_INVALID_BDADDR is set. So
      when running in HCI_CONFIG state, these information need to be updated
      as well.
      
      This especially impacts Bluetooth 4.1 and later controllers using
      extended feature pages and second event mask page.
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
      Cc: stable@vger.kernel.org # 3.17+
      8bfe8442
  2. 19 Dec, 2014 10 commits
  3. 18 Dec, 2014 17 commits
  4. 17 Dec, 2014 11 commits
    • Anton Blanchard's avatar
      KVM: PPC: Book3S: Enable in-kernel XICS emulation by default · 476ce5ef
      Anton Blanchard authored
      The in-kernel XICS emulation is faster than doing it all in QEMU
      and it has got a lot of testing, so enable it by default.
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
      476ce5ef
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · 87c31b39
      Linus Torvalds authored
      Pull user namespace related fixes from Eric Biederman:
       "As these are bug fixes almost all of thes changes are marked for
        backporting to stable.
      
        The first change (implicitly adding MNT_NODEV on remount) addresses a
        regression that was created when security issues with unprivileged
        remount were closed.  I go on to update the remount test to make it
        easy to detect if this issue reoccurs.
      
        Then there are a handful of mount and umount related fixes.
      
        Then half of the changes deal with the a recently discovered design
        bug in the permission checks of gid_map.  Unix since the beginning has
        allowed setting group permissions on files to less than the user and
        other permissions (aka ---rwx---rwx).  As the unix permission checks
        stop as soon as a group matches, and setgroups allows setting groups
        that can not later be dropped, results in a situtation where it is
        possible to legitimately use a group to assign fewer privileges to a
        process.  Which means dropping a group can increase a processes
        privileges.
      
        The fix I have adopted is that gid_map is now no longer writable
        without privilege unless the new file /proc/self/setgroups has been
        set to permanently disable setgroups.
      
        The bulk of user namespace using applications even the applications
        using applications using user namespaces without privilege remain
        unaffected by this change.  Unfortunately this ix breaks a couple user
        space applications, that were relying on the problematic behavior (one
        of which was tools/selftests/mount/unprivileged-remount-test.c).
      
        To hopefully prevent needing a regression fix on top of my security
        fix I rounded folks who work with the container implementations mostly
        like to be affected and encouraged them to test the changes.
      
          > So far nothing broke on my libvirt-lxc test bed. :-)
          > Tested with openSUSE 13.2 and libvirt 1.2.9.
          > Tested-by: Richard Weinberger <richard@nod.at>
      
          > Tested on Fedora20 with libvirt 1.2.11, works fine.
          > Tested-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
      
          > Ok, thanks - yes, unprivileged lxc is working fine with your kernels.
          > Just to be sure I was testing the right thing I also tested using
          > my unprivileged nsexec testcases, and they failed on setgroup/setgid
          > as now expected, and succeeded there without your patches.
          > Tested-by: Serge Hallyn <serge.hallyn@ubuntu.com>
      
          > I tested this with Sandstorm.  It breaks as is and it works if I add
          > the setgroups thing.
          > Tested-by: Andy Lutomirski <luto@amacapital.net> # breaks things as designed :("
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        userns: Unbreak the unprivileged remount tests
        userns; Correct the comment in map_write
        userns: Allow setting gid_maps without privilege when setgroups is disabled
        userns: Add a knob to disable setgroups on a per user namespace basis
        userns: Rename id_map_mutex to userns_state_mutex
        userns: Only allow the creator of the userns unprivileged mappings
        userns: Check euid no fsuid when establishing an unprivileged uid mapping
        userns: Don't allow unprivileged creation of gid mappings
        userns: Don't allow setgroups until a gid mapping has been setablished
        userns: Document what the invariant required for safe unprivileged mappings.
        groups: Consolidate the setgroups permission checks
        mnt: Clear mnt_expire during pivot_root
        mnt: Carefully set CL_UNPRIVILEGED in clone_mnt
        mnt: Move the clear of MNT_LOCKED from copy_tree to it's callers.
        umount: Do not allow unmounting rootfs.
        umount: Disallow unprivileged mount force
        mnt: Update unprivileged remount test
        mnt: Implicitly add MNT_NODEV on remount when it was implicitly added by mount
      87c31b39
    • Marcel Holtmann's avatar
      Bluetooth: Fix bug with filter in service discovery optimization · ea8ae251
      Marcel Holtmann authored
      The optimization for filtering out extended inquiry results, advertising
      reports or scan response data based on provided UUID list has a logic
      bug. In case no match is found in the advertising data, the scan
      response is ignored and not checked against the filter. This will lead
      to events being filtered wrongly.
      
      Change the code to actually only drop the events when the scan response
      data is not present. If it is present, it needs to be checked against
      the provided filter.
      
      The patch is a bit more complex than it needs to be. That is because
      it also fixes this compiler warning that some gcc versions produce.
      
        CC      net/bluetooth/mgmt.o
      net/bluetooth/mgmt.c: In function ‘mgmt_device_found’:
      net/bluetooth/mgmt.c:7028:7: warning: ‘match’ may be used uninitialized in this function [-Wmaybe-uninitialized]
        bool match;
             ^
      
      It seems that gcc can not clearly figure out the context of the match
      variable. So just change the branches for the extended inquiry response
      and advertising data around so that it is clear.
      Reported-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
      ea8ae251
    • Linus Torvalds's avatar
      mmu_gather: fix over-eager tlb_flush_mmu_free() calling · f045bbb9
      Linus Torvalds authored
      Dave Hansen reports that commit fb7332a9 ("mmu_gather: move minimal
      range calculations into generic code") caused a performance problem:
      
        "tlb_finish_mmu() goes up about 9x in the profiles (~0.4%->3.6%) and
         tlb_flush_mmu_free() takes about 3.1% of CPU time with the patch
         applied, but does not show up at all on the commit before"
      
      and the reason is that Will moved the test for whether we need to flush
      from tlb_flush_mmu() into tlb_flush_mmu_tlbonly().  But that meant that
      tlb_flush_mmu_free() basically lost that check.
      
      Move it back into tlb_flush_mmu() where it belongs, so that it covers
      both tlb_flush_mmu_tlbonly() _and_ tlb_flush_mmu_free().
      Reported-and-tested-by: default avatarDave Hansen <dave@sr71.net>
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f045bbb9
    • Linus Torvalds's avatar
      x86: mm: fix VM_FAULT_RETRY handling · cf3c0a15
      Linus Torvalds authored
      My commit 26178ec1 ("x86: mm: consolidate VM_FAULT_RETRY handling")
      had a really stupid typo: the FAULT_FLAG_USER bit is in the 'flags'
      variable, not the 'fault' variable. Duh,
      
      The one silver lining in this is that Dave finding this at least
      confirms that trinity actually triggers this special path easily, in a
      way normal use does not.
      Reported-by: default avatarDave Jones <davej@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cf3c0a15
    • Linus Torvalds's avatar
      Merge tag 'vfio-v3.19-rc1' of git://github.com/awilliam/linux-vfio · cc669743
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
       - s390 support (Frank Blaschka)
       - Enable iommu-type1 for ARM SMMU (Will Deacon)
      
      * tag 'vfio-v3.19-rc1' of git://github.com/awilliam/linux-vfio:
        drivers/vfio: allow type-1 IOMMU instantiation on top of an ARM SMMU
        vfio: make vfio run on s390
      cc669743
    • Linus Torvalds's avatar
      Merge tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux · 9f3e1512
      Linus Torvalds authored
      Pull virtio updates from Rusty Russell:
       "A balloon enhancement, and a minor race-on-module-unload theoretical
        bug which doesn't merit cc: stable.
      
        All the exciting stuff went via MST this cycle"
      
      * tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
        virtio_balloon: free some memory from balloon on OOM
        virtio_balloon: return the amount of freed memory from leak_balloon()
        virtio_blk: fix race at module removal
        virtio: Fix comment typo 'CONFIG_S_FAILED'
      9f3e1512
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · 2efda904
      Linus Torvalds authored
      Pull thermal management update from Zhang Rui:
       "Summary:
      
         - of-thermal extension to allow drivers to register and use its
           functionality in a better way, without exploiting thermal core.
           From Lukasz Majewski.
      
         - Fix a bug in intel_soc_dts_thermal driver which calls a sleep
           function in interrupt handler.  From Maurice Petallo.
      
         - add a thermal UAPI header file for exporting the thermal generic
           netlink information to user-space.  From Florian Fainelli.
      
         - First round of refactoring in Exynos driver.  Bartlomiej and Lukasz
           are attempting to make it lean and easier to understand.
      
         - New thermal driver for Rockchip (rk3288), with support for DT
           thermal.  From Caesar Wang.
      
         - New thermal driver for Nvidia, Tegra124 SOCTHERM driver, with
           support for DT thermal.  From Mikko Perttunen.
      
         - New cooling device, based on common clock framework.  From Eduardo
           Valentin.
      
         - a couple of small fixes in thermal core framework.  From Srinivas
           Pandruvada, Javi Merino, Luis Henriques.
      
         - Dropping Armada A375-Z1 SoC thermal support as the chip is not in
           the market, armada folks decided to drop its support.
      
         - a couple of small fixes and cleanups in int340x thermal driver"
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (58 commits)
        thermal: provide an UAPI header file
        Thermal/int340x: Clear the error value of the last acpi_bus_get_device() call
        thermal/powerclamp: add id for braswell cpu
        thermal: Intel SoC DTS: Don't do thermal zone update inside spin_lock
        Thermal: fix platform_no_drv_owner.cocci warnings
        Thermal/int340x: avoid unnecessary pointer casting
        thermal: int3403: Delete a check before thermal_zone_device_unregister()
        thermal/int3400: export uuids
        thermal: of: Extend current of-thermal.c code to allow setting emulated temp
        thermal: of: Extend of-thermal to export table of trip points
        thermal: of: Rename struct __thermal_trip to struct thermal_trip
        thermal: of: Extend of-thermal.c to provide check if trip point is valid
        thermal: of: Extend of-thermal.c to provide number of trip points
        thermal: Fix error path in thermal_init()
        thermal: lock the thermal zone when switching governors
        thermal: core: ignore invalid trip temperature
        thermal: armada: Remove support for A375-Z1 SoC
        thermal: rockchip: add driver for thermal
        dt-bindings: document Rockchip thermal
        thermal: exynos: remove exynos_tmu_data.h include
        ...
      2efda904
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-3.19-rc1' of... · 0b4954c4
      Linus Torvalds authored
      Merge tag 'pwm/for-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm updates from Thierry Reding:
       "There are two new drivers, one for the BCM2835 (Raspberry Pi) and one
        used in conjunction with the LCD controller on various Atmel SoCs.
        The Samsung PWM driver can now be built for 64-bit ARM (Exynos7).
      
        A couple of fixes have been applied to the FTM PWM driver and system
        sleep support was added"
      
      * tag 'pwm/for-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm:
        pwm: atmel-hlcdc: add at91sam9x5 and sama5d3 errata handling
        pwm: ftm: Add Power Management support for FTM PWM
        pwm: ftm: Add regmap rbtree type cache support
        pwm: ftm: Correctly track usage count
        pwm: samsung: Allow Samsung PWM driver to be enabled on Exynos7
        pwm: add DT bindings documentation for atmel-hlcdc-pwm driver
        pwm: add support for atmel-hlcdc-pwm device
        pwm: Add BCM2835 PWM driver
      0b4954c4
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · d797da41
      Linus Torvalds authored
      Pull input subsystem updates from Dmitry Torokhov:
       "Two new drivers for Elan hardware (for I2C touchpad and touchscreen
        found in several Chromebooks and other devices), a driver for Goodix
        touch panel, and small fixes to Cypress I2C trackpad and other input
        drivers.
      
        Also we switched to use __maybe_unused instead of gating suspend/
        resume code with #ifdef guards to get better compile coverage"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (27 commits)
        Input: gpio_keys - fix warning regarding uninitialized 'button' variable
        Input: add support for Elan eKTH I2C touchscreens
        Input: gpio_keys - fix warning regarding uninitialized  'irq' variable
        Input: cyapa - use 'error' for error codes
        Input: cyapa - fix resuming the device
        Input: gpio_keys - add device tree support for interrupt only keys
        Input: amikbd - allocate temporary keymap buffer on the stack
        Input: amikbd - fix build if !CONFIG_HW_CONSOLE
        Input: lm8323 - missing error check in lm8323_set_disable()
        Input: initialize device counter variables with -1
        Input: initialize input_no to -1 to avoid subtraction
        Input: i8042 - do not try to load on Intel NUC D54250WYK
        Input: atkbd - correct MSC_SCAN events for force_release keys
        Input: cyapa - switch to using managed resources
        Input: lifebook - use "static inline" instead of "inline" in lifebook.h
        Input: touchscreen - use __maybe_unused instead of ifdef around suspend/resume
        Input: mouse - use __maybe_unused instead of ifdef around suspend/resume
        Input: misc - use __maybe_unused instead of ifdef around suspend/resume
        Input: cap11xx - support for irq-active-high option
        Input: cap11xx - add support for various cap11xx devices
        ...
      d797da41
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20141215' of git://git.infradead.org/linux-mtd · d6666be6
      Linus Torvalds authored
      Pull MTD updates from Brian Norris:
       "Summary:
         - Add device tree support for DoC3
      
         - SPI NOR:
              Refactoring, for better layering between spi-nor.c and its
              driver users (e.g., m25p80.c)
      
              New flash device support
      
              Support 6-byte ID strings
      
         - NAND:
              New NAND driver for Allwinner SoC's (sunxi)
      
              GPMI NAND: add support for raw (no ECC) access, for testing
              purposes
      
              Add ATO manufacturer ID
      
              A few odd driver fixes
      
         - MTD tests:
              Allow testers to compensate for OOB bitflips in oobtest
      
              Fix a torturetest regression
      
         - nandsim: Support longer ID byte strings
      
        And more"
      
      * tag 'for-linus-20141215' of git://git.infradead.org/linux-mtd: (63 commits)
        mtd: tests: abort torturetest on erase errors
        mtd: physmap_of: fix potential NULL dereference
        mtd: spi-nor: allow NULL as chip name and try to auto detect it
        mtd: nand: gpmi: add raw oob access functions
        mtd: nand: gpmi: add proper raw access support
        mtd: nand: gpmi: add gpmi_copy_bits function
        mtd: spi-nor: factor out write_enable() for erase commands
        mtd: spi-nor: add support for s25fl128s
        mtd: spi-nor: remove the jedec_id/ext_id
        mtd: spi-nor: add id/id_len for flash_info{}
        mtd: nand: correct the comment of function nand_block_isreserved()
        jffs2: Drop bogus if in comment
        mtd: atmel_nand: replace memcpy32_toio/memcpy32_fromio with memcpy
        mtd: cafe_nand: drop duplicate .write_page implementation
        mtd: m25p80: Add support for serial flash Spansion S25FL132K
        MTD: m25p80: fix inconsistency in m25p_ids compared to spi_nor_ids
        mtd: spi-nor: improve wait-till-ready timeout loop
        mtd: delete unnecessary checks before two function calls
        mtd: nand: omap: Fix NAND enumeration on 3430 LDP
        mtd: nand: add ATO manufacturer info
        ...
      d6666be6