09 Jan, 2015

1 commit

  • This is a static checker fix. We write some binary settings to the
    sysfs file. One of the settings is the "->startup_profile". There
    isn't any checking to make sure it fits into the
    pyra->profile_settings[] array in the profile_activated() function.

    I added a check to pyra_sysfs_write_settings() in both places because
    I wasn't positive that the other callers were correct.

    Cc:
    Signed-off-by: Dan Carpenter
    Signed-off-by: Jiri Kosina

    Dan Carpenter
     

29 Dec, 2014

1 commit

  • New Genius MousePen i608X devices have a new id 0x501a instead of the
    old 0x5011 so add a new #define with "_2" appended and change required
    places.

    The remaining two checkpatch warnings about line length
    being over 80 characters are present in the original files too and this
    patch was made in the same style (no line break).

    Just adding a new id and changing the required places should make the
    new device work without any issues according to the bug report in the
    following url.

    This patch was made according to and fixes:
    https://bugzilla.kernel.org/show_bug.cgi?id=67111

    Signed-off-by: Giedrius Statkevičius
    Signed-off-by: Jiri Kosina

    Giedrius Statkevičius
     

19 Dec, 2014

2 commits


18 Dec, 2014

1 commit


17 Dec, 2014

4 commits

  • When a hid driver that uses i2c-hid as transport is unloaded, the hid core
    will call i2c_hid_stop() which releases all the buffers associated with the
    device. This includes also the command buffer.

    Now, when the i2c-hid driver itself is unloaded it tries to power down the
    device by sending it PWR_SLEEP command. Since the command buffer is already
    released we get following crash:

    [ 79.691459] BUG: unable to handle kernel NULL pointer dereference at (null)
    [ 79.691532] IP: [] __i2c_hid_command+0x49/0x310 [i2c_hid]
    ...
    [ 79.693467] Call Trace:
    [ 79.693494] [] ? __unmask_ioapic+0x21/0x30
    [ 79.693537] [] ? unmask_ioapic+0x25/0x40
    [ 79.693581] [] ? i2c_hid_set_power+0x4b/0xa0 [i2c_hid]
    [ 79.693632] [] ? i2c_hid_runtime_resume+0x1f/0x30 [i2c_hid]
    [ 79.693689] [] ? __rpm_callback+0x2b/0x70
    [ 79.693733] [] ? rpm_callback+0x21/0x90
    [ 79.693776] [] ? rpm_resume+0x41c/0x600
    [ 79.693820] [] ? __pm_runtime_resume+0x4c/0x80
    [ 79.693868] [] ? __device_release_driver+0x28/0x100
    [ 79.693917] [] ? driver_detach+0xa0/0xb0
    [ 79.693959] [] ? bus_remove_driver+0x4c/0xb0
    [ 79.694006] [] ? SyS_delete_module+0x11d/0x1d0
    [ 79.694054] [] ? int_signal+0x12/0x17
    [ 79.694095] [] ? system_call_fastpath+0x12/0x17

    Fix this so that we only free buffers when the i2c-hid driver itself is
    removed.

    Fixes: 34f439e4afcd ("HID: i2c-hid: add runtime PM support")
    Reported-by: Gabriele Mazzotta
    Signed-off-by: Mika Westerberg
    Reviewed-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Mika Westerberg
     
  • Apple bluetooth wireless keyboard (sold in UK) has always reported zero
    for battery strength no matter what condition the batteries are actually
    in. With this patch applied (applying same quirk as other Apple
    keyboards), the battery strength is now correctly reported.

    Signed-off-by: Karl Relton
    Signed-off-by: Jiri Kosina

    Karl Relton
     
  • Malicious USB devices can send bogus reports smaller than the expected
    buffer size. Ensure that the length for WTP reports is valid to avoid
    reading out of bounds.

    Signed-off-by: Peter Wu
    Reviewed-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Peter Wu
     
  • Malicious USB devices can send bogus reports smaller than the expected
    buffer size. Ensure that the length is valid to avoid reading out of
    bounds.

    Signed-off-by: Peter Wu
    Reviewed-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Peter Wu
     

13 Dec, 2014

5 commits

  • Pull HID updates from Jiri Kosina:
    - i2c-hid race condition fix from Jean-Baptiste Maneyrol
    - Logitech driver now supports vendor-specific HID++ protocol, allowing
    us to deliver a full multitouch support on wider range of Logitech
    touchpads. Written by Benjamin Tissoires
    - MS Surface Pro 3 Type Cover support added by Alan Wu
    - RMI touchpad support improvements from Andrew Duggan
    - a lot of updates to Wacom driver from Jason Gerecke and Ping Cheng
    - various small fixes all over the place

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (56 commits)
    HID: rmi: The address of query8 must be calculated based on which query registers are present
    HID: rmi: Check for additional ACM registers appended to F11 data report
    HID: i2c-hid: prevent buffer overflow in early IRQ
    HID: logitech-hidpp: disable io in probe error path
    HID: logitech-hidpp: add boundary check for name retrieval
    HID: logitech-hidpp: check name retrieval return code
    HID: logitech-hidpp: do not return the name length
    HID: wacom: Report input events for each finger on generic devices
    HID: wacom: Initialize MT slots for generic devices at post_parse_hid
    HID: wacom: Update maximum X/Y accounding to outbound offset
    HID: wacom: Add support for DTU-1031X
    HID: wacom: add defines for new Cintiq and DTU outbound tracking
    HID: wacom: fix freeze on open when autosuspend is on
    HID: wacom: re-add accidentally dropped Lenovo PID
    HID: make hid_report_len as a static inline function in hid.h
    HID: wacom: Consult the application usage when determining field type
    HID: wacom: PAD is independent with pen/touch
    HID: multitouch: Add quirk for VTL touch panels
    HID: i2c-hid: fix race condition reading reports
    HID: wacom: Add angular resolution data to some ABS axes
    ...

    Linus Torvalds
     
  • Pull trivial tree update from Jiri Kosina:
    "Usual stuff: documentation updates, printk() fixes, etc"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (24 commits)
    intel_ips: fix a type in error message
    cpufreq: cpufreq-dt: Move newline to end of error message
    ps3rom: fix error return code
    treewide: fix typo in printk and Kconfig
    ARM: dts: bcm63138: change "interupts" to "interrupts"
    Replace mentions of "list_struct" to "list_head"
    kernel: trace: fix printk message
    scsi: mpt2sas: fix ioctl in comment
    zbud, zswap: change module author email
    clocksource: Fix 'clcoksource' typo in comment
    arm: fix wording of "Crotex" in CONFIG_ARCH_EXYNOS3 help
    gpio: msm-v1: make boolean argument more obvious
    usb: Fix typo in usb-serial-simple.c
    PCI: Fix comment typo 'COMFIG_PM_OPS'
    powerpc: Fix comment typo 'CONIFG_8xx'
    powerpc: Fix comment typos 'CONFiG_ALTIVEC'
    clk: st: Spelling s/stucture/structure/
    isci: Spelling s/stucture/structure/
    usb: gadget: zero: Spelling s/infrastucture/infrastructure/
    treewide: Fix company name in module descriptions
    ...

    Linus Torvalds
     
  • Pull UBI/UBIFS updates from Artem Bityutskiy:
    "This includes the following UBI/UBIFS changes:
    - UBI debug messages now include the UBI device number. This change
    is responsible for the big diffstat since it touched every
    debugging print statement.
    - An Xattr bug-fix which fixes SELinux support
    - Several error path fixes in UBI/UBIFS"

    * tag 'upstream-3.19-rc1' of git://git.infradead.org/linux-ubifs:
    UBI: Fix invalid vfree()
    UBI: Fix double free after do_sync_erase()
    UBIFS: fix a couple bugs in UBIFS xattr length calculation
    UBI: vtbl: Use ubi_eba_atomic_leb_change()
    UBI: Extend UBI layer debug/messaging capabilities
    UBIFS: fix budget leak in error path

    Linus Torvalds
     
  • Pull xfs update from Dave Chinner:
    "There's relatively little change in this update; it is mainly bug
    fixes, cleanups and more of the on-going libxfs restructuring and
    on-disk format header consolidation work.

    Details:
    - more on-disk format header consolidation
    - move some structures shared with userspace to libxfs
    - new per-mount workqueue to fix for deadlocks between nested loop
    mounted filesystems
    - various bug fixes for ENOSPC, stats, quota off and preallocation
    - a bunch of compiler warning fixes for set-but-unused variables
    - various code cleanups"

    * tag 'xfs-for-linus-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs: (24 commits)
    xfs: split metadata and log buffer completion to separate workqueues
    xfs: fix set-but-unused warnings
    xfs: move type conversion functions to xfs_dir.h
    xfs: move ftype conversion functions to libxfs
    xfs: lobotomise xfs_trans_read_buf_map()
    xfs: active inodes stat is broken
    xfs: cleanup xfs_bmse_merge returns
    xfs: cleanup xfs_bmse_shift_one goto mess
    xfs: fix premature enospc on inode allocation
    xfs: overflow in xfs_iomap_eof_align_last_fsb
    xfs: fix simple_return.cocci warning in xfs_bmse_shift_one
    xfs: fix simple_return.cocci warning in xfs_file_readdir
    libxfs: fix simple_return.cocci warnings
    xfs: remove unnecessary null checks
    xfs: merge xfs_inum.h into xfs_format.h
    xfs: move most of xfs_sb.h to xfs_format.h
    xfs: merge xfs_ag.h into xfs_format.h
    xfs: move acl structures to xfs_format.h
    xfs: merge xfs_dinode.h into xfs_format.h
    xfs: catch invalid negative blknos in _xfs_buf_find()
    ...

    Linus Torvalds
     
  • Pull ext4 updates from Ted Ts'o:
    "Lots of bugs fixes, including Zheng and Jan's extent status shrinker
    fixes, which should improve CPU utilization and potential soft lockups
    under heavy memory pressure, and Eric Whitney's bigalloc fixes"

    * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (26 commits)
    ext4: ext4_da_convert_inline_data_to_extent drop locked page after error
    ext4: fix suboptimal seek_{data,hole} extents traversial
    ext4: ext4_inline_data_fiemap should respect callers argument
    ext4: prevent fsreentrance deadlock for inline_data
    ext4: forbid journal_async_commit in data=ordered mode
    jbd2: remove unnecessary NULL check before iput()
    ext4: Remove an unnecessary check for NULL before iput()
    ext4: remove unneeded code in ext4_unlink
    ext4: don't count external journal blocks as overhead
    ext4: remove never taken branch from ext4_ext_shift_path_extents()
    ext4: create nojournal_checksum mount option
    ext4: update comments regarding ext4_delete_inode()
    ext4: cleanup GFP flags inside resize path
    ext4: introduce aging to extent status tree
    ext4: cleanup flag definitions for extent status tree
    ext4: limit number of scanned extents in status tree shrinker
    ext4: move handling of list of shrinkable inodes into extent status code
    ext4: change LRU to round-robin in extent status tree shrinker
    ext4: cache extent hole in extent status tree for ext4_da_map_blocks()
    ext4: fix block reservation for bigalloc filesystems
    ...

    Linus Torvalds
     

12 Dec, 2014

26 commits

  • … 'for-3.19/logitech', 'for-3.19/microsoft', 'for-3.19/plantronics', 'for-3.19/rmi', 'for-3.19/sony' and 'for-3.19/wacom' into for-linus

    Jiri Kosina
     
  • If a touchpad does not report relative data then query 6 will not be present and the address
    of query 8 will be one less. This patches calculates the location of query 8 instead of
    hardcoding the offset.

    Signed-off-by: Andrew Duggan
    Signed-off-by: Jiri Kosina

    Andrew Duggan
     
  • If a touchpad reports the F11 data40 register then this indicates that the touchpad reports
    additional ACM (Accidental Contact Mitigation) data after the F11 data in the HID attention
    report. These additional bytes shift the position of the F30 button data causing the driver
    to incorrectly report button state when this functionality is present. This patch accounts
    for the additional data in the report.

    Fixes:
    https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1398533

    Signed-off-by: Andrew Duggan
    Signed-off-by: Jiri Kosina

    Andrew Duggan
     
  • Conflicts:
    drivers/hid/hid-input.c

    Jiri Kosina
     
  • Before ->start() is called, bufsize size is set to HID_MIN_BUFFER_SIZE,
    64 bytes. While processing the IRQ, we were asking to receive up to
    wMaxInputLength bytes, which can be bigger than 64 bytes.

    Later, when ->start is run, a proper bufsize will be calculated.

    Given wMaxInputLength is said to be unreliable in other part of the
    code, set to receive only what we can even if it results in truncated
    reports.

    Signed-off-by: Gwendal Grignou
    Reviewed-by: Benjamin Tissoires
    Cc: stable@vger.kernel.org
    Signed-off-by: Jiri Kosina

    Gwendal Grignou
     
  • Pull cgroup update from Tejun Heo:
    "cpuset got simplified a bit. cgroup core got a fix on unified
    hierarchy and grew some effective css related interfaces which will be
    used for blkio support for writeback IO traffic which is currently
    being worked on"

    * 'for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
    cgroup: implement cgroup_get_e_css()
    cgroup: add cgroup_subsys->css_e_css_changed()
    cgroup: add cgroup_subsys->css_released()
    cgroup: fix the async css offline wait logic in cgroup_subtree_control_write()
    cgroup: restructure child_subsys_mask handling in cgroup_subtree_control_write()
    cgroup: separate out cgroup_calc_child_subsys_mask() from cgroup_refresh_child_subsys_mask()
    cpuset: lock vs unlock typo
    cpuset: simplify cpuset_node_allowed API
    cpuset: convert callback_mutex to a spinlock

    Linus Torvalds
     
  • Pull libata changes from Tejun Heo:
    "The only interesting piece is the support for shingled drives. The
    changes in libata layer are minimal. All it does is identifying the
    new class of device and report upwards accordingly"

    * 'for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
    libata: Remove FIXME comment in atapi_request_sense()
    sata_rcar: Document deprecated "renesas,rcar-sata"
    sata_rcar: Add clocks to sata_rcar bindings
    ahci_sunxi: Make AHCI_HFLAG_NO_PMP flag configurable with a module option
    libata-scsi: Update SATL for ZAC drives
    libata: Implement ATA_DEV_ZAC
    libsas: use ata_dev_classify()

    Linus Torvalds
     
  • Pull workqueue update from Tejun Heo:
    "Work items which may be involved in memory reclaim path may be
    executed by the rescuer under memory pressure. When a rescuer gets
    activated, it processes whatever are on the pending list and then goes
    back to sleep until the manager kicks it again which involves 100ms
    delay.

    This is problematic for self-requeueing work items or the ones running
    on ordered workqueues as there always is only one work item on the
    pending list when the rescuer kicks in. The execution of that work
    item produces more to execute but the rescuer won't see them until
    after the said 100ms has passed, so such workqueues would only execute
    one work item every 100ms under prolonged memory pressure, which BTW
    may be being prolonged due to the slow execution.

    Neil wrote up a patch which fixes this issue by keeping the rescuer
    working as long as the target workqueue is busy but doesn't have
    enough workers"

    * 'for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    workqueue: allow rescuer thread to do more work.
    workqueue: invert the order between pool->lock and wq_mayday_lock
    workqueue: cosmetic update in rescuer_thread()

    Linus Torvalds
     
  • Pull percpu updates from Tejun Heo:
    "Nothing interesting. A patch to convert the remaining __get_cpu_var()
    users, another to fix non-critical off-by-one in an assertion and a
    cosmetic conversion to lockless_dereference() in percpu-ref.

    The back-merge from mainline is to receive lockless_dereference()"

    * 'for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
    percpu: Replace smp_read_barrier_depends() with lockless_dereference()
    percpu: Convert remaining __get_cpu_var uses in 3.18-rcX
    percpu: off by one in BUG_ON()

    Linus Torvalds
     
  • Pull xen features and fixes from David Vrabel:

    - Fully support non-coherent devices on ARM by introducing the
    mechanisms to request the hypervisor to perform the required cache
    maintainance operations.

    - A number of pciback bug fixes and cleanups. Notably a deadlock fix
    if a PCI device was manually uunbound and a fix for incorrectly
    restoring state after a function reset.

    - In x86 PVHVM guests, use the APIC for interrupts if this has been
    virtualized by the hardware. This reduces the number of interrupt-
    related VM exits on such hardware.

    * tag 'stable/for-linus-3.19-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: (26 commits)
    Revert "swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single"
    xen/pci: Use APIC directly when APIC virtualization hardware is available
    xen/pci: Defer initialization of MSI ops on HVM guests
    xen-pciback: drop SR-IOV VFs when PF driver unloads
    xen/pciback: Restore configuration space when detaching from a guest.
    PCI: Expose pci_load_saved_state for public consumption.
    xen/pciback: Remove tons of dereferences
    xen/pciback: Print out the domain owning the device.
    xen/pciback: Include the domain id if removing the device whilst still in use
    driver core: Provide an wrapper around the mutex to do lockdep warnings
    xen/pciback: Don't deadlock when unbinding.
    swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single
    swiotlb-xen: call xen_dma_sync_single_for_device when appropriate
    swiotlb-xen: remove BUG_ON in xen_bus_to_phys
    swiotlb-xen: pass dev_addr to xen_dma_unmap_page and xen_dma_sync_single_for_cpu
    xen/arm: introduce GNTTABOP_cache_flush
    xen/arm/arm64: introduce xen_arch_need_swiotlb
    xen/arm/arm64: merge xen/mm32.c into xen/mm.c
    xen/arm: use hypercall to flush caches in map_page
    xen: add a dma_addr_t dev_addr argument to xen_dma_map_page
    ...

    Linus Torvalds
     
  • Pull MIPS updates from Ralf Baechle:
    "This is an unusually large pull request for MIPS - in parts because
    lots of patches missed the 3.18 deadline but primarily because some
    folks opened the flood gates.

    - Retire the MIPS-specific phys_t with the generic phys_addr_t.
    - Improvments for the backtrace code used by oprofile.
    - Better backtraces on SMP systems.
    - Cleanups for the Octeon platform code.
    - Cleanups and fixes for the Loongson platform code.
    - Cleanups and fixes to the firmware library.
    - Switch ATH79 platform to use the firmware library.
    - Grand overhault to the SEAD3 and Malta interrupt code.
    - Move the GIC interrupt code to drivers/irqchip
    - Lots of GIC cleanups and updates to the GIC code to use modern IRQ
    infrastructures and features of the kernel.
    - OF documentation updates for the GIC bindings
    - Move GIC clocksource driver to drivers/clocksource
    - Merge GIC clocksource driver with clockevent driver.
    - Further updates to bring the GIC clocksource driver up to date.
    - R3000 TLB code cleanups
    - Improvments to the Loongson 3 platform code.
    - Convert pr_warning to pr_warn.
    - Merge a bunch of small lantiq and ralink fixes that have been
    staged/lingering inside the openwrt tree for a while.
    - Update archhelp for IP22/IP32
    - Fix a number of issues for Loongson 1B.
    - New clocksource and clockevent driver for Loongson 1B.
    - Further work on clk handling for Loongson 1B.
    - Platform work for Broadcom BMIPS.
    - Error handling cleanups for TurboChannel.
    - Fixes and optimization to the microMIPS support.
    - Option to disable the FTLB.
    - Dump more relevant information on machine check exception
    - Change binfmt to allow arch to examine PT_*PROC headers
    - Support for new style FPU register model in O32
    - VDSO randomization.
    - BCM47xx cleanups
    - BCM47xx reimplement the way the kernel accesses NVRAM information.
    - Random cleanups
    - Add support for ATH25 platforms
    - Remove pointless locking code in some PCI platforms.
    - Some improvments to EVA support
    - Minor Alchemy cleanup"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (185 commits)
    MIPS: Add MFHC0 and MTHC0 instructions to uasm.
    MIPS: Cosmetic cleanups of page table headers.
    MIPS: Add CP0 macros for extended EntryLo registers
    MIPS: Remove now unused definition of phys_t.
    MIPS: Replace use of phys_t with phys_addr_t.
    MIPS: Replace MIPS-specific 64BIT_PHYS_ADDR with generic PHYS_ADDR_T_64BIT
    PCMCIA: Alchemy Don't select 64BIT_PHYS_ADDR in Kconfig.
    MIPS: lib: memset: Clean up some MIPS{EL,EB} ifdefery
    MIPS: iomap: Use __mem_{read,write}{b,w,l} for MMIO
    MIPS: fix indentation.
    MAINTAINERS: Add entry for BMIPS multiplatform kernel
    MIPS: Enable VDSO randomization
    MIPS: Remove a temporary hack for debugging cache flushes in SMTC configuration
    MIPS: Remove declaration of obsolete arch_init_clk_ops()
    MIPS: atomic.h: Reformat to fit in 79 columns
    MIPS: Apply `.insn' to fixup labels throughout
    MIPS: Fix microMIPS LL/SC immediate offsets
    MIPS: Kconfig: Only allow 32-bit microMIPS builds
    MIPS: signal.c: Fix an invalid cast in ISA mode bit handling
    MIPS: mm: Only build one microassembler that is suitable
    ...

    Linus Torvalds
     
  • Pull powerpc updates from Michael Ellerman:
    "Some nice cleanups like removing bootmem, and removal of
    __get_cpu_var().

    There is one patch to mm/gup.c. This is the generic GUP
    implementation, but is only used by us and arm(64). We have an ack
    from Steve Capper, and although we didn't get an ack from Andrew he
    told us to take the patch through the powerpc tree.

    There's one cxl patch. This is in drivers/misc, but Greg said he was
    happy for us to manage fixes for it.

    There is an infrastructure patch to support an IPMI driver for OPAL.

    There is also an RTC driver for OPAL. We weren't able to get any
    response from the RTC maintainer, Alessandro Zummo, so in the end we
    just merged the driver.

    The usual batch of Freescale updates from Scott"

    * tag 'powerpc-3.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux: (101 commits)
    powerpc/powernv: Return to cpu offline loop when finished in KVM guest
    powerpc/book3s: Fix partial invalidation of TLBs in MCE code.
    powerpc/mm: don't do tlbie for updatepp request with NO HPTE fault
    powerpc/xmon: Cleanup the breakpoint flags
    powerpc/xmon: Enable HW instruction breakpoint on POWER8
    powerpc/mm/thp: Use tlbiel if possible
    powerpc/mm/thp: Remove code duplication
    powerpc/mm/hugetlb: Sanity check gigantic hugepage count
    powerpc/oprofile: Disable pagefaults during user stack read
    powerpc/mm: Check for matching hpte without taking hpte lock
    powerpc: Drop useless warning in eeh_init()
    powerpc/powernv: Cleanup unused MCE definitions/declarations.
    powerpc/eeh: Dump PHB diag-data early
    powerpc/eeh: Recover EEH error on ownership change for BCM5719
    powerpc/eeh: Set EEH_PE_RESET on PE reset
    powerpc/eeh: Refactor eeh_reset_pe()
    powerpc: Remove more traces of bootmem
    powerpc/pseries: Initialise nvram_pstore_info's buf_lock
    cxl: Name interrupts in /proc/interrupt
    cxl: Return error to PSL if IRQ demultiplexing fails & print clearer warning
    ...

    Linus Torvalds
     
  • Pull s390 updates from Martin Schwidefsky:
    "The most notable change for this pull request is the ftrace rework
    from Heiko. It brings a small performance improvement and the ground
    work to support a new gcc option to replace the mcount blocks with a
    single nop.

    Two new s390 specific system calls are added to emulate user space
    mmio for PCI, an artifact of the how PCI memory is accessed.

    Two patches for the memory management with changes to common code.
    For KVM mm_forbids_zeropage is added which disables the empty zero
    page for an mm that is used by a KVM process. And an optimization,
    pmdp_get_and_clear_full is added analog to ptep_get_and_clear_full.

    Some micro optimization for the cmpxchg and the spinlock code.

    And as usual bug fixes and cleanups"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (46 commits)
    s390/cputime: fix 31-bit compile
    s390/scm_block: make the number of reqs per HW req configurable
    s390/scm_block: handle multiple requests in one HW request
    s390/scm_block: allocate aidaw pages only when necessary
    s390/scm_block: use mempool to manage aidaw requests
    s390/eadm: change timeout value
    s390/mm: fix memory leak of ptlock in pmd_free_tlb
    s390: use local symbol names in entry[64].S
    s390/ptrace: always include vector registers in core files
    s390/simd: clear vector register pointer on fork/clone
    s390: translate cputime magic constants to macros
    s390/idle: convert open coded idle time seqcount
    s390/idle: add missing irq off lockdep annotation
    s390/debug: avoid function call for debug_sprintf_*
    s390/kprobes: fix instruction copy for out of line execution
    s390: remove diag 44 calls from cpu_relax()
    s390/dasd: retry partition detection
    s390/dasd: fix list corruption for sleep_on requests
    s390/dasd: fix infinite term I/O loop
    s390/dasd: remove unused code
    ...

    Linus Torvalds
     
  • Pull networking updates from David Miller:

    1) New offloading infrastructure and example 'rocker' driver for
    offloading of switching and routing to hardware.

    This work was done by a large group of dedicated individuals, not
    limited to: Scott Feldman, Jiri Pirko, Thomas Graf, John Fastabend,
    Jamal Hadi Salim, Andy Gospodarek, Florian Fainelli, Roopa Prabhu

    2) Start making the networking operate on IOV iterators instead of
    modifying iov objects in-situ during transfers. Thanks to Al Viro
    and Herbert Xu.

    3) A set of new netlink interfaces for the TIPC stack, from Richard
    Alpe.

    4) Remove unnecessary looping during ipv6 routing lookups, from Martin
    KaFai Lau.

    5) Add PAUSE frame generation support to gianfar driver, from Matei
    Pavaluca.

    6) Allow for larger reordering levels in TCP, which are easily
    achievable in the real world right now, from Eric Dumazet.

    7) Add a variable of napi_schedule that doesn't need to disable cpu
    interrupts, from Eric Dumazet.

    8) Use a doubly linked list to optimize neigh_parms_release(), from
    Nicolas Dichtel.

    9) Various enhancements to the kernel BPF verifier, and allow eBPF
    programs to actually be attached to sockets. From Alexei
    Starovoitov.

    10) Support TSO/LSO in sunvnet driver, from David L Stevens.

    11) Allow controlling ECN usage via routing metrics, from Florian
    Westphal.

    12) Remote checksum offload, from Tom Herbert.

    13) Add split-header receive, BQL, and xmit_more support to amd-xgbe
    driver, from Thomas Lendacky.

    14) Add MPLS support to openvswitch, from Simon Horman.

    15) Support wildcard tunnel endpoints in ipv6 tunnels, from Steffen
    Klassert.

    16) Do gro flushes on a per-device basis using a timer, from Eric
    Dumazet. This tries to resolve the conflicting goals between the
    desired handling of bulk vs. RPC-like traffic.

    17) Allow userspace to ask for the CPU upon what a packet was
    received/steered, via SO_INCOMING_CPU. From Eric Dumazet.

    18) Limit GSO packets to half the current congestion window, from Eric
    Dumazet.

    19) Add a generic helper so that all drivers set their RSS keys in a
    consistent way, from Eric Dumazet.

    20) Add xmit_more support to enic driver, from Govindarajulu
    Varadarajan.

    21) Add VLAN packet scheduler action, from Jiri Pirko.

    22) Support configurable RSS hash functions via ethtool, from Eyal
    Perry.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1820 commits)
    Fix race condition between vxlan_sock_add and vxlan_sock_release
    net/macb: fix compilation warning for print_hex_dump() called with skb->mac_header
    net/mlx4: Add support for A0 steering
    net/mlx4: Refactor QUERY_PORT
    net/mlx4_core: Add explicit error message when rule doesn't meet configuration
    net/mlx4: Add A0 hybrid steering
    net/mlx4: Add mlx4_bitmap zone allocator
    net/mlx4: Add a check if there are too many reserved QPs
    net/mlx4: Change QP allocation scheme
    net/mlx4_core: Use tasklet for user-space CQ completion events
    net/mlx4_core: Mask out host side virtualization features for guests
    net/mlx4_en: Set csum level for encapsulated packets
    be2net: Export tunnel offloads only when a VxLAN tunnel is created
    gianfar: Fix dma check map error when DMA_API_DEBUG is enabled
    cxgb4/csiostor: Don't use MASTER_MUST for fw_hello call
    net: fec: only enable mdio interrupt before phy device link up
    net: fec: clear all interrupt events to support i.MX6SX
    net: fec: reset fep link status in suspend function
    net: sock: fix access via invalid file descriptor
    net: introduce helper macro for_each_cmsghdr
    ...

    Linus Torvalds
     
  • Balance a hid_device_io_start() call with hid_device_io_stop() in the
    error path. This avoids processing of HID reports when the probe fails
    which possibly leads to invalid memory access in hid_device_probe() as
    report_enum->report_id_hash might already be freed via
    hid_close_report().

    hid_set_drvdata() is called before wtp_allocate, be consistent and clear
    drvdata too on the error path of wtp_allocate.

    Signed-off-by: Peter Wu
    Reviewed-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Peter Wu
     
  • The HID response has a limited size. Do not trust the value returned by
    hardware, check that it really fits in the message.

    Signed-off-by: Peter Wu
    Reviewed-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Peter Wu
     
  • hidpp_devicenametype_get_device_name() may return a negative value on
    protocol errors (for example, when the device is powered off).
    Explicitly check this condition to avoid a long-running loop.

    (0 cannot be returned as __name_length - index > 0, but check for it
    anyway as it would otherwise result in an infinite loop.)

    Signed-off-by: Peter Wu
    Reviewed-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Peter Wu
     
  • We do not make any use of the actual name length get through
    hidpp_get_device_name(). Original patch by Benjamin Tissoires, this
    patch also replaces a (now) unnecessary goto by return NULL.

    Signed-off-by: Peter Wu
    Signed-off-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Peter Wu
     
  • The existing generic touch code only reports events after reading an
    entire HID report, which practically means that only data about the last
    contact in a report will ever be provided to userspace. This patch uses
    a trick from hid-multitouch.c to discover what type of field is at the
    end of each contact; when such a field is encountered all the stored
    contact data will be reported.

    Signed-off-by: Jason Gerecke
    Reviewed-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Jason Gerecke
     
  • Pull sound updates from Takashi Iwai:
    "This became a fairly large pull request. In addition to the usual
    driver updates / fixes, there have been a high amount of cleanups in
    ASoC area, as well as control API helpers and kernel documentations
    fixes touching through the whole tree.

    In the driver side, the biggest changes are the support for new Intel
    SoC found on new x86 machines, and the updates of FireWire dice and
    oxfw drivers.

    Some remarkable items are below:

    ALSA core:
    - PCM mmap code cleanup, removal of arch-dependent codes
    - PCM xrun injection support
    - PCM hwptr tracepoint support
    - Refactoring of snd_pcm_action(), simplification of PCM locking
    - Robustified sequecner auto-load functionality
    - New control API helpers and lots of cleanups along with them
    - Lots of kerneldoc fixes and cleanups

    USB-audio:
    - The mixer resume code was largely rewritten, and the devices with
    quirks are resumed properly.
    - New hardware support: Focusrite Scarlett, Digidesign Mbox1,
    Denon/Marantz DACs, Zoom R16/24

    FireWire:
    - DICE driver updates with better duplex and sync support, including
    MIDI support
    - New OXFW driver for Oxford Semiconductor FW970/971 chipset,
    including the previous LaCie Speakers device. Fullduplex and MIDI
    support included as well as DICE driver.

    HD-audio:
    - Refactoring the driver-caps quirk handling in snd-hda-intel
    - More consistent control names representing the topology better
    - Fixups: HP mute LED with ALC268 codec, Ideapad S210 built-in mic
    fix, ASUS Z99He laptop EAPD

    ASoC:
    - Conversion of AC'97 drivers to use regmap, bringing us closer to
    the removal of the ASoC level I/O code
    - Clean up a lot of old drivers that were open coding things that
    have subsequently been implemented in the core
    - Some DAPM performance improvements
    - Removal of the now seldom used CODEC mutex
    - Lots of updates for the newer Intel SoC support, including support
    for the DSP and some Cherrytrail and Braswell machine drivers
    - Support for Samsung boards using rt5631 as the CODEC
    - Removal of the obsolete AFEB9260 machine driver
    - Driver support for the TI TS3A227E headset driver used in some
    Chrombeooks

    Others:
    - ASIHPI driver update and cleanups
    - Lots of dev_*() printk conversions
    - Lots of trivial cleanups for the codes spotted by Coccinelle"

    * tag 'sound-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (594 commits)
    ALSA: pcxhr: NULL dereference on probe failure
    ALSA: lola: NULL dereference on probe failure
    ALSA: hda - Add "eapd" model string for AD1986A codec
    ALSA: hda - Add EAPD fixup for ASUS Z99He laptop
    ALSA: oxfw: Add hwdep interface
    ALSA: oxfw: Add support for capture/playback MIDI messages
    ALSA: oxfw: add support for capturing PCM samples
    ALSA: oxfw: Add support AMDTP in-stream
    ALSA: oxfw: Add support for Behringer/Mackie devices
    ALSA: oxfw: Change the way to start stream
    ALSA: oxfw: Add proc interface for debugging purpose
    ALSA: oxfw: Change the way to make PCM rules/constraints
    ALSA: oxfw: Add support for AV/C stream format command to get/set supported stream formation
    ALSA: oxfw: Change the way to name card
    ALSA: dice: Add support for MIDI capture/playback
    ALSA: dice: Add support for capturing PCM samples
    ALSA: dice: Support for non SYT-Match sampling clock source mode
    ALSA: dice: Add support for duplex streams with synchronization
    ALSA: dice: Change the way to start stream
    ALSA: jack: Add dummy snd_jack_set_key() definition
    ...

    Linus Torvalds
     
  • Pull devicetree changes from Grant Likely:
    "Lots of activity in the devicetree code for v3.18. Most of it is
    related to getting all of the overlay support code in place, but there
    are other important things in there.

    Highlights:

    - OF_RECONFIG notifiers for SPI, I2C and Platform devices. Those
    subsystems can now respond to live changes to the device tree.

    - CONFIG_OF_OVERLAY method for applying live changes to the device
    tree

    - Removal of the of_allnodes list. This used to be used to iterate
    over all the nodes in the device tree, but it is unnecessary
    because the same thing can be done by iterating over the list of
    child pointers. Getting rid of of_allnodes saves some memory and
    avoids the possibility of of_allnodes being sorted differently from
    the child lists.

    - Support for retrieving original DTB blob via sysfs. Needed by
    kexec.

    - More unittests

    - Documentation and minor bug fixes"

    * tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux: (42 commits)
    of: Delete unnecessary check before calling "of_node_put()"
    of: Drop ->next pointer from struct device_node
    spi: Check for spi_of_notifier when CONFIG_OF_DYNAMIC=y
    of: support passing console options with stdout-path
    of: add optional options parameter to of_find_node_by_path()
    of: Add bindings for chosen node, stdout-path
    of: Remove unneeded and incorrect MODULE_DEVICE_TABLE
    ARM: dt: fix up PL011 device tree bindings
    of: base, fix of_property_read_string_helper kernel-doc
    of: remove select of non-existant OF_DEVICE config symbol
    spi/of: Add OF notifier handler
    spi/of: Create new device registration method and accessors
    i2c/of: Add OF_RECONFIG notifier handler
    i2c/of: Factor out Devicetree registration code
    of/overlay: Add overlay unittests
    of/overlay: Introduce DT overlay support
    of/reconfig: Add OF_DYNAMIC notifier for platform_bus_type
    of/reconfig: Always use the same structure for notifiers
    of/reconfig: Add debug output for OF_RECONFIG notifiers
    of/reconfig: Add empty stubs for the of_reconfig methods
    ...

    Linus Torvalds
     
  • Pull fbdev updates from Tomi Valkeinen:
    - support for mx6sl and mx6sx
    - OMAP HDMI audio rewrite to make it finally work
    - OMAP video PLL work to prepare for new DRA7xx SoCs
    - simplefb DT related improvements

    * tag 'fbdev-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (81 commits)
    video: uvesafb: Deletion of an unnecessary check before the function call "platform_device_put"
    video: fbdev-VIA: Deletion of an unnecessary check before the function call "framebuffer_release"
    video: fbdev-MMP: Deletion of an unnecessary check before the function call "mmp_unregister_path"
    video: mx3fb: Deletion of an unnecessary check before the function call "backlight_device_unregister"
    video: fbdev-OMAP2: Deletion of unnecessary checks before the function call "i2c_put_adapter"
    video: fbdev-SIS: Deletion of unnecessary checks before the function call "pci_dev_put"
    video: smscufx: Deletion of unnecessary checks before the function call "vfree"
    video: udlfb: Deletion of unnecessary checks before the function call "vfree"
    video: uvesafb: Deletion of an unnecessary check before the function call "uvesafb_free"
    video: fbdev-LCDC: Deletion of an unnecessary check before the function call "vfree"
    video: fbdev: arkfb: suppress build warning
    video: fbdev: s3fb: suppress build warning
    video: fbdev: vt8623fb: suppress build warning
    OMAPDSS: hdmi5: Fix bit field for IEC958_AES2_CON_SOURCE
    OMAPDSS: hdmi: Remove __exit qualifier from hdmi_uninit_output()
    OMAPDSS: hdmi5: Change hdmi_wp idlemode to to no_idle for audio playback
    OMAPDSS: Remove all references to obsolete HDMI audio callbacks
    ASoC: omap: Remove obsolete HDMI audio code and Kconfig options
    OMAPDSS: hdmi5: Register ASoC platform device for omap hdmi audio
    OMAPDSS: hdmi5: Remove callbacks for the old ASoC DAI driver
    ...

    Linus Torvalds
     
  • Pull virtio updates from Michael Tsirkin:
    "virtio: virtio 1.0 support, misc patches

    This adds a lot of infrastructure for virtio 1.0 support. Notable
    missing pieces: virtio pci, virtio balloon (needs spec extension),
    vhost scsi.

    Plus, there are some minor fixes in a couple of places.

    Note: some net drivers are affected by these patches. David said he's
    fine with merging these patches through my tree.

    Rusty's on vacation, he acked using my tree for these, too"

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (70 commits)
    virtio_ccw: finalize_features error handling
    virtio_ccw: future-proof finalize_features
    virtio_pci: rename virtio_pci -> virtio_pci_common
    virtio_pci: update file descriptions and copyright
    virtio_pci: split out legacy device support
    virtio_pci: setup config vector indirectly
    virtio_pci: setup vqs indirectly
    virtio_pci: delete vqs indirectly
    virtio_pci: use priv for vq notification
    virtio_pci: free up vq->priv
    virtio_pci: fix coding style for structs
    virtio_pci: add isr field
    virtio: drop legacy_only driver flag
    virtio_balloon: drop legacy_only driver flag
    virtio_ccw: rev 1 devices set VIRTIO_F_VERSION_1
    virtio: allow finalize_features to fail
    virtio_ccw: legacy: don't negotiate rev 1/features
    virtio: add API to detect legacy devices
    virtio_console: fix sparse warnings
    vhost: remove unnecessary forward declarations in vhost.h
    ...

    Linus Torvalds
     
  • Pull mailbox framework updates from Jassi Brar.

    * 'mailbox-devel' of git://git.linaro.org/landing-teams/working/fujitsu/integration:
    Mailbox: Add support for Platform Communication Channel
    mailbox/omap: adapt to the new mailbox framework
    mailbox: add tx_prepare client callback
    mailbox: Don't unnecessarily re-arm the polling timer

    Linus Torvalds
     
  • Pull spi updates from Mark Brown:
    "Not a huge amount going on this release, mainly new drivers (there's a
    couple more waiting that didn't quite make the cut for this release
    too):

    - An interface for querying if the current transfer is the last in a
    message, allowing controllers that need special handling for the
    final transfer to use the core message parsing.
    - Support for Amlogic Meson SPIFC, Imagination Technologies SFPI,
    Intel Quark X1000 and Samsung Exynos 7 controllers"

    * tag 'spi-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (38 commits)
    spi/s3c64xx: Remove redundant runtime PM management
    spi: fsl-spi: remove unused variable assignment
    spi: spi-fsl-spi: Return an error code in fsl_spi_do_one_msg()
    spi: core: Do not mangle error code from kthread_run()
    spi: fsl-espi: add (un)prepare_transfer_hardware calls to save power if SPI is not in use
    spi: fsl-(e)spi: migrate to generic master queueing
    spi/txx9: Deletion of an unnecessary check before the function call "clk_disable"
    spi: cadence: Fix 3-to-8 mux mode
    spi: cadence: Init HW after reading devicetree attributes
    spi: meson: Select REGMAP_MMIO
    spi: s3c64xx: add support for exynos7 SPI controller
    spi: spi-pxa2xx: SPI support for Intel Quark X1000
    spi: meson: meson_spifc_setup_speed() can be static
    spi: spi-pxa2xx: Add helpers for regiseters' accessing
    spi: spi-mxs: Fix mapping from vmalloc-ed buffer to scatter list
    spi: atmel: introduce probe deferring
    spi: atmel: remove compat for non DT board when requesting dma chan
    spi: meson: Add support for Amlogic Meson SPIFC
    spi: meson: Add device tree bindings documentation for SPIFC
    spi: core: Add spi_transfer_is_last() helper
    ...

    Linus Torvalds
     
  • Pull edac updates from Mauro Carvalho Chehab:
    - Broadwell-DE support on sb-edac driver
    - Some fixes at sb-edac driver

    * tag 'edac/v3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac:
    sb_edac: Fix typo computing number of banks
    sb_edac: Add support for Broadwell-DE processor
    sb_edac: Fix discovery of top-of-low-memory for Haswell
    sb_edac: Fix erroneous bytes->gigabytes conversion
    sb_edac: Fix off-by-one error in number of channels

    Linus Torvalds