10 Dec, 2013

4 commits

  • Currently blocking in an RCU callback function will result in
    "scheduling while atomic", which could be triggered for any number
    of reasons. To aid debugging, this patch introduces a rcu_callback_map
    that is used to tie the inappropriate voluntary context switch back
    to the fact that the function is being invoked from within a callback.

    Signed-off-by: Paul E. McKenney

    Paul E. McKenney
     
  • This commit documents the memory-barrier guarantees provided by
    synchronize_srcu() and call_srcu().

    Signed-off-by: Paul E. McKenney

    Paul E. McKenney
     
  • Each element of the rcu_state structure's ->levelspread[] array
    is intended to contain the per-level fanout, where the zero-th
    element corresponds to the root of the rcu_node tree, and the last
    element corresponds to the leaves. In the CONFIG_RCU_FANOUT_EXACT
    case, this means that the last element should be filled in
    from CONFIG_RCU_FANOUT_LEAF (or from the rcu_fanout_leaf boot
    parameter, if provided) and that the remaining elements should
    be filled in from CONFIG_RCU_FANOUT. Unfortunately, the current
    code in rcu_init_levelspread() takes the opposite approach, placing
    CONFIG_RCU_FANOUT_LEAF in the zero-th element and CONFIG_RCU_FANOUT in
    the remaining elements.

    For typical power-of-two values, this generates odd but functional
    rcu_node trees. However, other values, for example CONFIG_RCU_FANOUT=3
    and CONFIG_RCU_FANOUT_LEAF=2, generate trees that can leave some CPUs
    out of the grace-period computation, resulting in too-short grace periods
    and therefore a broken RCU implementation.

    This commit therefore fixes rcu_init_levelspread() to set the last
    ->levelspread[] array element from CONFIG_RCU_FANOUT_LEAF and the
    remaining elements from CONFIG_RCU_FANOUT, thus generating the
    intended rcu_node trees.

    Signed-off-by: Paul E. McKenney

    Paul E. McKenney
     
  • This commit fixes the following coccinelle warning:

    kernel/rcu/tree.c:712:9-10: WARNING: return of 0/1 in function
    'rcu_lockdep_current_cpu_online' with return type bool

    Return statements in functions returning bool should use
    true/false instead of 1/0.
    Generated by: coccinelle/misc/boolreturn.cocci

    Signed-off-by: Fengguang Wu
    Signed-off-by: Paul E. McKenney

    Fengguang Wu
     

04 Dec, 2013

6 commits

  • Some RCU bugs have been specific to the layout of the rcu_node tree,
    but RCU will silently adjust the tree at boot time if appropriate.
    This obscures valuable debugging information, so print a message when
    this happens.

    Signed-off-by: Paul E. McKenney

    Paul E. McKenney
     
  • The srcu_barrier() docbook header left out the "sp" argument, so this
    commit adds that argument's docbook text.

    Signed-off-by: Paul E. McKenney

    Paul E. McKenney
     
  • The current task-level idle entry/exit code forces an entry/exit on
    each call, regardless of the nesting level. This commit therefore
    properly accounts for nesting.

    Signed-off-by: Paul E. McKenney
    Reviewed-by: Frederic Weisbecker

    Paul E. McKenney
     
  • Dave Jones got the following lockdep splat:

    > ======================================================
    > [ INFO: possible circular locking dependency detected ]
    > 3.12.0-rc3+ #92 Not tainted
    > -------------------------------------------------------
    > trinity-child2/15191 is trying to acquire lock:
    > (&rdp->nocb_wq){......}, at: [] __wake_up+0x23/0x50
    >
    > but task is already holding lock:
    > (&ctx->lock){-.-...}, at: [] perf_event_exit_task+0x109/0x230
    >
    > which lock already depends on the new lock.
    >
    >
    > the existing dependency chain (in reverse order) is:
    >
    > -> #3 (&ctx->lock){-.-...}:
    > [] lock_acquire+0x93/0x200
    > [] _raw_spin_lock+0x40/0x80
    > [] __perf_event_task_sched_out+0x2df/0x5e0
    > [] perf_event_task_sched_out+0x93/0xa0
    > [] __schedule+0x1d2/0xa20
    > [] preempt_schedule_irq+0x50/0xb0
    > [] retint_kernel+0x26/0x30
    > [] tty_flip_buffer_push+0x34/0x50
    > [] pty_write+0x54/0x60
    > [] n_tty_write+0x32d/0x4e0
    > [] tty_write+0x158/0x2d0
    > [] vfs_write+0xc0/0x1f0
    > [] SyS_write+0x4c/0xa0
    > [] tracesys+0xdd/0xe2
    >
    > -> #2 (&rq->lock){-.-.-.}:
    > [] lock_acquire+0x93/0x200
    > [] _raw_spin_lock+0x40/0x80
    > [] wake_up_new_task+0xc2/0x2e0
    > [] do_fork+0x126/0x460
    > [] kernel_thread+0x26/0x30
    > [] rest_init+0x23/0x140
    > [] start_kernel+0x3f6/0x403
    > [] x86_64_start_reservations+0x2a/0x2c
    > [] x86_64_start_kernel+0xf1/0xf4
    >
    > -> #1 (&p->pi_lock){-.-.-.}:
    > [] lock_acquire+0x93/0x200
    > [] _raw_spin_lock_irqsave+0x4b/0x90
    > [] try_to_wake_up+0x31/0x350
    > [] default_wake_function+0x12/0x20
    > [] autoremove_wake_function+0x18/0x40
    > [] __wake_up_common+0x58/0x90
    > [] __wake_up+0x39/0x50
    > [] __call_rcu_nocb_enqueue+0xa8/0xc0
    > [] __call_rcu+0x140/0x820
    > [] call_rcu+0x1d/0x20
    > [] cpu_attach_domain+0x287/0x360
    > [] build_sched_domains+0xe5e/0x10a0
    > [] sched_init_smp+0x3b7/0x47a
    > [] kernel_init_freeable+0xf6/0x202
    > [] kernel_init+0xe/0x190
    > [] ret_from_fork+0x7c/0xb0
    >
    > -> #0 (&rdp->nocb_wq){......}:
    > [] __lock_acquire+0x191a/0x1be0
    > [] lock_acquire+0x93/0x200
    > [] _raw_spin_lock_irqsave+0x4b/0x90
    > [] __wake_up+0x23/0x50
    > [] __call_rcu_nocb_enqueue+0xa8/0xc0
    > [] __call_rcu+0x140/0x820
    > [] kfree_call_rcu+0x20/0x30
    > [] put_ctx+0x4f/0x70
    > [] perf_event_exit_task+0x12e/0x230
    > [] do_exit+0x30d/0xcc0
    > [] do_group_exit+0x4c/0xc0
    > [] SyS_exit_group+0x14/0x20
    > [] tracesys+0xdd/0xe2
    >
    > other info that might help us debug this:
    >
    > Chain exists of:
    > &rdp->nocb_wq --> &rq->lock --> &ctx->lock
    >
    > Possible unsafe locking scenario:
    >
    > CPU0 CPU1
    > ---- ----
    > lock(&ctx->lock);
    > lock(&rq->lock);
    > lock(&ctx->lock);
    > lock(&rdp->nocb_wq);
    >
    > *** DEADLOCK ***
    >
    > 1 lock held by trinity-child2/15191:
    > #0: (&ctx->lock){-.-...}, at: [] perf_event_exit_task+0x109/0x230
    >
    > stack backtrace:
    > CPU: 2 PID: 15191 Comm: trinity-child2 Not tainted 3.12.0-rc3+ #92
    > ffffffff82565b70 ffff880070c2dbf8 ffffffff8172a363 ffffffff824edf40
    > ffff880070c2dc38 ffffffff81726741 ffff880070c2dc90 ffff88022383b1c0
    > ffff88022383aac0 0000000000000000 ffff88022383b188 ffff88022383b1c0
    > Call Trace:
    > [] dump_stack+0x4e/0x82
    > [] print_circular_bug+0x200/0x20f
    > [] __lock_acquire+0x191a/0x1be0
    > [] ? get_lock_stats+0x19/0x60
    > [] ? native_sched_clock+0x24/0x80
    > [] lock_acquire+0x93/0x200
    > [] ? __wake_up+0x23/0x50
    > [] _raw_spin_lock_irqsave+0x4b/0x90
    > [] ? __wake_up+0x23/0x50
    > [] __wake_up+0x23/0x50
    > [] __call_rcu_nocb_enqueue+0xa8/0xc0
    > [] __call_rcu+0x140/0x820
    > [] ? local_clock+0x3f/0x50
    > [] kfree_call_rcu+0x20/0x30
    > [] put_ctx+0x4f/0x70
    > [] perf_event_exit_task+0x12e/0x230
    > [] do_exit+0x30d/0xcc0
    > [] ? trace_hardirqs_on_caller+0x115/0x1e0
    > [] ? trace_hardirqs_on+0xd/0x10
    > [] do_group_exit+0x4c/0xc0
    > [] SyS_exit_group+0x14/0x20
    > [] tracesys+0xdd/0xe2

    The underlying problem is that perf is invoking call_rcu() with the
    scheduler locks held, but in NOCB mode, call_rcu() will with high
    probability invoke the scheduler -- which just might want to use its
    locks. The reason that call_rcu() needs to invoke the scheduler is
    to wake up the corresponding rcuo callback-offload kthread, which
    does the job of starting up a grace period and invoking the callbacks
    afterwards.

    One solution (championed on a related problem by Lai Jiangshan) is to
    simply defer the wakeup to some point where scheduler locks are no longer
    held. Since we don't want to unnecessarily incur the cost of such
    deferral, the task before us is threefold:

    1. Determine when it is likely that a relevant scheduler lock is held.

    2. Defer the wakeup in such cases.

    3. Ensure that all deferred wakeups eventually happen, preferably
    sooner rather than later.

    We use irqs_disabled_flags() as a proxy for relevant scheduler locks
    being held. This works because the relevant locks are always acquired
    with interrupts disabled. We may defer more often than needed, but that
    is at least safe.

    The wakeup deferral is tracked via a new field in the per-CPU and
    per-RCU-flavor rcu_data structure, namely ->nocb_defer_wakeup.

    This flag is checked by the RCU core processing. The __rcu_pending()
    function now checks this flag, which causes rcu_check_callbacks()
    to initiate RCU core processing at each scheduling-clock interrupt
    where this flag is set. Of course this is not sufficient because
    scheduling-clock interrupts are often turned off (the things we used to
    be able to count on!). So the flags are also checked on entry to any
    state that RCU considers to be idle, which includes both NO_HZ_IDLE idle
    state and NO_HZ_FULL user-mode-execution state.

    This approach should allow call_rcu() to be invoked regardless of what
    locks you might be holding, the key word being "should".

    Reported-by: Dave Jones
    Signed-off-by: Paul E. McKenney
    Cc: Peter Zijlstra

    Paul E. McKenney
     
  • It is all too easy to forget that wait_event() does not necessarily
    imply a full memory barrier. The case where it does not is where the
    condition transitions to true just as wait_event() starts execution.
    This is actually a feature: The standard use of wait_event() involves
    locking, in which case the locks provide the needed ordering (you hold a
    lock across the wake_up() and acquire that same lock after wait_event()
    returns).

    Given that I did forget that wait_event() does not necessarily imply a
    full memory barrier in one case, this commit fixes that case. This commit
    also adds comments calling out the placement of existing memory barriers
    relied on by wait_event() calls.

    Signed-off-by: Paul E. McKenney

    Paul E. McKenney
     
  • When an RCU CPU stall warning occurs, the CPU invokes resched_cpu() on
    itself. This can help move the grace period forward in some situations,
    but it would be even better to do this -before- the RCU CPU stall warning.
    This commit therefore causes resched_cpu() to be called every five jiffies
    once the system is halfway to an RCU CPU stall warning.

    Signed-off-by: Paul E. McKenney

    Paul E. McKenney
     

30 Nov, 2013

10 commits

  • Linus Torvalds
     
  • Pull ARM64 fixes from Catalin Marinas:
    - Remove preempt_count modifications in the arm64 IRQ handling code
    since that's already dealt with in generic irq_enter/irq_exit
    - PTE_PROT_NONE bit moved higher up to avoid overlapping with the
    hardware bits (for PROT_NONE mappings which are pte_present)
    - Big-endian fixes for ptrace support
    - Asynchronous aborts unmasking while in the kernel
    - pgprot_writecombine() change to create Normal NonCacheable memory
    rather than Device GRE

    * tag 'arm64-stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64:
    arm64: Move PTE_PROT_NONE higher up
    arm64: Use Normal NonCacheable memory for writecombine
    arm64: debug: make aarch32 bkpt checking endian clean
    arm64: ptrace: fix compat registes get/set to be endian clean
    arm64: Unmask asynchronous aborts when in kernel mode
    arm64: dts: Reserve the memory used for secondary CPU release address
    arm64: let the core code deal with preempt_count

    Linus Torvalds
     
  • Pull s390 updates from Martin Schwidefsky:
    "One performance improvement and a few bug fixes. Two of the fixes
    deal with the clock related problems we have seen on recent kernels"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/mm: handle asce-type exceptions as normal page fault
    s390,time: revert direct ktime path for s390 clockevent device
    s390/time,vdso: convert to the new update_vsyscall interface
    s390/uaccess: add missing page table walk range check
    s390/mm: optimize copy_page
    s390/dasd: validate request size before building CCW/TCW request
    s390/signal: always restore saved runtime instrumentation psw bit

    Linus Torvalds
     
  • Pull i2c fixes from Wolfram Sang:
    "Some easy but needed fixes for i2c drivers since rc1"

    * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    i2c: bcm2835: Linking platform nodes to adapter nodes
    i2c: omap: raw read and write endian fix
    i2c: i2c-bcm-kona: Fix module build
    i2c: i2c-diolan-u2c: different usb endpoints for DLN-2-U2C
    i2c: bcm-kona: remove duplicated include
    i2c: davinci: raw read and write endian fix

    Linus Torvalds
     
  • Pull workqueue fixes from Tejun Heo:
    "This contains one important fix. The NUMA support added a while back
    broke ordering guarantees on ordered workqueues. It was enforced by
    having single frontend interface with @max_active == 1 but the NUMA
    support puts multiple interfaces on unbound workqueues on NUMA
    machines thus breaking the ordered guarantee. This is fixed by
    disabling NUMA support on ordered workqueues.

    The above and a couple other patches were sitting in for-3.12-fixes
    but I forgot to push that out, so they ended up waiting a bit too
    long. My aplogies.

    Other fixes are minor"

    * 'for-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    workqueue: fix pool ID allocation leakage and remove BUILD_BUG_ON() in init_workqueues
    workqueue: fix comment typo for __queue_work()
    workqueue: fix ordered workqueues in NUMA setups
    workqueue: swap set_cpus_allowed_ptr() and PF_NO_SETAFFINITY

    Linus Torvalds
     
  • Pull libata fixes from Tejun Heo:
    "libata device removal path was removing parent device node before its
    child, which is mostly harmless but triggers warning after recent
    sysfs changes. Rafael's patch fixes the order.

    Other than that, minor controller-specific fixes and device ID
    additions"

    * 'for-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
    ATA: Fix port removal ordering
    ahci: add Marvell 9230 to the AHCI PCI device list
    ata: fix acpi_bus_get_device() return value check
    pata_arasan_cf: add missing clk_disable_unprepare() on error path
    ahci: add support for IBM Akebono platform device

    Linus Torvalds
     
  • Pull cgroup fixes from Tejun Heo:
    "Fixes for three issues.

    - cgroup destruction path could swamp system_wq possibly leading to
    deadlock. This actually seems to happen in the wild with memcg
    because memcg destruction path adds nested dependency on system_wq.

    Resolved by isolating cgroup destruction work items on its
    dedicated workqueue.

    - Possible locking context deadlock through seqcount reported by
    lockdep

    - Memory leak under certain conditions"

    * 'for-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
    cgroup: fix cgroup_subsys_state leak for seq_files
    cpuset: Fix memory allocator deadlock
    cgroup: use a dedicated workqueue for cgroup destruction

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "Quite a few HD-Audio fixes, a WUSB audio fix and a fix for FireWire
    audio. The HD-audio part contains a couple of fixes for the generic
    parser, and these are the only intrusive fixes. The rest are mostly
    device-specific fixes"

    * tag 'sound-3.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: hda - Add LFE chmap to ASUS ET2700
    ALSA: hda - Initialize missing bass speaker pin for ASUS AIO ET2700
    ALSA: hda - limit mic boost on Asus UX31[A,E]
    ALSA: hda - Check leaf nodes to find aamix amps
    ALSA: hda - Fix hp-mic mode without VREF bits
    ALSA: hda - Create Headhpone Mic Jack Mode when really needed
    ALSA: usb: use multiple packets per urb for Wireless USB inbound audio
    ALSA: hda - Enable mute/mic-mute LEDs for more Thinkpads with Conexant codec
    ALSA: hda - Drop bus->avoid_link_reset flag
    ALSA: hda/realtek - Set pcbeep amp for ALC668
    ALSA: hda/realtek - Add support of ALC231 codec
    ALSA: firewire-lib: fix wrong value for FDF field as an empty packet

    Linus Torvalds
     
  • Pull vfs dentry reference count fix from Al Viro.

    This fixes a possible inode_permission NULL pointer dereference (and
    other problems) that were due to the root dentry count being decremented
    too much. In commit 48a066e72d97 ("RCU'd vfsmounts") the placement of
    clearing the LOOKUP_RCU bit changed, and we then returned failure of
    incrementing the lockref on the parent dentry with LOOKUP_RCU cleared.

    But that meant we needed to go through the same cleanup routines that
    the later failures did wrt LOOKUP_ROOT and nd->root.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    fix bogus path_put() of nd->root after some unlazy_walk() failures

    Linus Torvalds
     
  • Pull drm qxl leak fix from Dave Airlie:
    "As usual 5 mins after I send a trivial pull fix I find a real bug!

    This fixes a memory leak and I'd like to get it into stable queue
    asap"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm/qxl: fix memory leak in release list handling

    Linus Torvalds
     

29 Nov, 2013

10 commits

  • PTE_PROT_NONE means that a pte is present but does not have any
    read/write attributes. However, setting the memory type like
    pgprot_writecombine() is allowed and such bits overlap with
    PTE_PROT_NONE. This causes mmap/munmap issues in drivers that change the
    vma->vm_pg_prot on PROT_NONE mappings.

    This patch reverts the PTE_FILE/PTE_PROT_NONE shift in commit
    59911ca4325d (ARM64: mm: Move PTE_PROT_NONE bit) and moves PTE_PROT_NONE
    together with the other software bits.

    Signed-off-by: Steve Capper
    Signed-off-by: Catalin Marinas
    Tested-by: Steve Capper
    Cc: # 3.11+

    Catalin Marinas
     
  • This provides better performance compared to Device GRE and also allows
    unaligned accesses. Such memory is intended to be used with standard RAM
    (e.g. framebuffers) and not I/O.

    Signed-off-by: Catalin Marinas

    Catalin Marinas
     
  • Failure to grab reference to parent dentry should go through the
    same cleanup as nd->seq mismatch. As it is, we might end up with
    caller thinking it needs to path_put() nd->root, with obvious
    nasty results once we'd hit that bug enough times to drive the
    refcount of root dentry all the way to zero...

    Signed-off-by: Al Viro

    Al Viro
     
  • wow no idea how I got this far without seeing this,
    leaking the entries in the list makes kmalloc-64 slab grow.

    References: https://bugzilla.kernel.org/show_bug.cgi?id=65121
    Cc: stable@vger.kernel.org
    Reported-by: Matthew Stapleton
    Signed-off-by: Dave Airlie

    Dave Airlie
     
  • The current breakpoint instruction checking code for A32 is not endian
    clean. Fix this with appropriate byte-swapping when retrieving
    instructions.

    Signed-off-by: Matthew Leach
    Reviewed-by: Will Deacon
    Signed-off-by: Catalin Marinas

    Matthew Leach
     
  • On a BE system the wrong half of the X registers is retrieved/written
    when attempting to get/set the value of aarch32 registers through
    ptrace.

    Ensure that types are the correct width so that the relevant
    casting occurs.

    Signed-off-by: Matthew Leach
    Reviewed-by: Will Deacon
    Signed-off-by: Catalin Marinas

    Matthew Leach
     
  • Pull GPIO fixes from Linus Walleij:
    "Here us a bunch of patches for the v3.13 series. Most important stuff
    is related to fixes and documentation for the new GPIO descriptor API.
    If the diffstat is scary you'll notice most of it is to
    Documentation/*:

    - A big slew of documentation for the gpiod transition that happened
    in the merge window, no semantic effect, but we should provide
    proper documentation with the new API.

    - Fix flags related to the new API.

    - Fix to the find_chip_by_name() lookup function related to the new
    API.

    - Fix of_find_gpio() when not using device tree.

    - Bug fix for the TB10x direction setting.

    - Error path fixes from Dan Carpenter.

    - Nasty IRQdomain bug relating to taking an unitialized spinlock.

    - Minor fixes here and there"

    * tag 'gpio-v3.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
    gpio: bcm281xx: Fix return value of bcm_kona_gpio_get()
    gpio: pl061: move irqdomain initialization
    gpio: ucb1400: Add MODULE_ALIAS
    gpiolib: fix of_find_gpio() when OF not defined
    gpio: fix memory leak in error path
    gpio: rcar: NULL dereference on error in probe()
    gpio: msm: make msm_gpio.summary_irq signed for error handling
    gpio: mvebu: make mvchip->irqbase signed for error handling
    gpiolib: use dedicated flags for GPIO properties
    gpiolib: fix find_chip_by_name()
    Documentation: gpiolib: document new interface
    gpio: tb10x: Set output value before setting direction to output

    Linus Torvalds
     
  • Pull md fixes from Neil Brown:
    "Three bug fixes for md in 3.13-rc

    All recent regressions, one in 3.12 so marked for -stable"

    * tag 'md/3.13-fixes' of git://neil.brown.name/md:
    md/raid5: fix newly-broken locking in get_active_stripe.
    md: test mddev->flags more safely in md_check_recovery.
    md/raid5: fix new memory-reference bug in alloc_thread_groups.

    Linus Torvalds
     
  • Pull cifs fixes from Steve French:
    "SMB3 "validate negotiate" is needed to prevent certain types of
    downgrade attacks.

    Also changes SMB2/SMB3 copy offload from using the BTRFS copy ioctl
    (BTRFS_IOC_CLONE) to a cifs specific ioctl (CIFS_IOC_COPYCHUNK_FILE)
    to address Christoph's comment that there are semantic differences
    between requesting copy offload in which copy-on-write is mandatory
    (as in the BTRFS ioctl) and optional in the SMB2/SMB3 case. Also
    fixes SMB2/SMB3 copychunk for large files"

    * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
    [CIFS] Do not use btrfs refcopy ioctl for SMB2 copy offload
    Check SMB3 dialects against downgrade attacks
    Removed duplicated (and unneeded) goto
    CIFS: Fix SMB2/SMB3 Copy offload support (refcopy) for large files

    Linus Torvalds
     
  • The init_kernel_text() and core_kernel_text() functions should not
    include the labels _einittext and _etext when checking if an address is
    inside the .text or .init sections.

    Signed-off-by: Helge Deller
    Signed-off-by: Linus Torvalds

    Helge Deller
     

28 Nov, 2013

10 commits

  • As the previous commit 1f0bbf03cb82 added the pin config for the bass
    speaker, this patch adds the corresponding LFE-only channel map on
    ASUS ET2700.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=65961
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Add a fixup entry for the missing bass speaker pin 0x16 on ASUS ET2700
    AiO desktop. The channel map will be added in the next patch, so that
    this can be backported easily to stable kernels.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=65961
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • This both devices need limit for internal dmic.

    [cosmetic change; renamed fixup name by tiwai]

    Signed-off-by: Oleksij Rempel
    Signed-off-by: Takashi Iwai

    Oleksij Rempel
     
  • The current generic parser assumes blindly that the volume and mute
    amps are found in the aamix node itself. But on some codecs,
    typically Analog Devices ones, the aamix amps are separately
    implemented in each leaf node of the aamix node, and the current
    driver can't establish the correct amp controls. This is a regression
    compared with the previous static quirks.

    This patch extends the search for the amps to the leaf nodes for
    allowing the aamix controls again on such codecs.
    In this implementation, I didn't code to loop through the whole paths,
    since usually one depth should suffice, and we can't search too
    deeply, as it may result in the conflicting control assignments.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=65641
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • In order to find I2C devices in the device tree, the platform nodes
    have to be known by the I2C core. This requires setting the
    dev.of_node parameter of the adapter.

    Signed-off-by: Florian Meier
    Tested-by: Stephen Warren
    Signed-off-by: Wolfram Sang

    Florian Meier
     
  • Pull drm fixes from Dave Airlie:
    "Just two minor fixes as people keep resending since they are so low
    hanging"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm/nouveau/hwmon: fix compilation without CONFIG_HWMON
    drm/sysfs: fix OOM verification

    Linus Torvalds
     
  • Pull tty/serial fixes from Greg KH:
    "Here are some tty/serial driver fixes for reported issues in 3.13-rc2.

    The n_gsm "fix" was reverted as it was found to not be correct.
    Hopefully this will be resolved in a future pull request, but as
    there's really only one user of this line setting, it's not a big
    deal..."

    * tag 'tty-3.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
    Revert "n_gsm: race between ld close and gsmtty open"
    n_tty: Protect minimum_to_wake reset for concurrent readers
    tty: Reset hupped state on open
    TTY: amiserial, add missing platform check
    TTY: pmac_zilog, check existence of ports in pmz_console_init()
    n_gsm: race between ld close and gsmtty open
    tty/serial/8250: fix typo in help text
    n_tty: Fix 4096-byte canonical reads
    n_tty: Fix echo overrun tail computation
    n_tty: Ensure reader restarts worker for next reader

    Linus Torvalds
     
  • Pull staging fixes from Greg KH:
    "Here are a number of staging, and IIO driver, fixes for 3.13-rc2 that
    resolve issues that have been reported for 3.13-rc1. All of these
    have been in linux-next for a bit this week"

    * tag 'staging-3.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (25 commits)
    Staging: tidspbridge: disable driver
    staging: zsmalloc: Ensure handle is never 0 on success
    staging/lustre/ptlrpc: fix ptlrpc_stop_pinger logic
    staging: r8188eu: Fix AP mode
    Staging: btmtk_usb: Add hdev parameter to hdev->send driver callback
    Staging: go7007: fix up some remaining go->dev issues
    staging: imx-drm: Fix modular build of DRM_IMX_IPUV3
    staging: ft1000: fix use of potentially uninitialized variable
    Revert "staging:media: Use dev_dbg() instead of pr_debug()"
    Staging: zram: Fix memory leak by refcount mismatch
    staging: vt6656: [BUG] Fix for TX USB resets from vendors driver.
    staging: nvec: potential NULL dereference on error path
    Staging: vt6655-6: potential NULL dereference in hostap_disable_hostapd()
    staging: comedi: s626: fix value written by s626_set_dac()
    Staging: comedi: pcl730: fix some bitwise vs logical AND bugs
    staging: comedi: fix potentially uninitialised variable
    iio:accel:kxsd9 fix missing mutex unlock
    iio: adc: ti_am335x_adc: avoid double free of buffer.
    staging:iio: Fix hmc5843 Kconfig dependencies
    iio: Fix tcs3472 Kconfig dependencies
    ...

    Linus Torvalds
     
  • Pull driver core fixes from Greg KH:
    "Here are 3 patches for sysfs issues that have been reported. Well, 1
    patch really, the first one is reverted as it's not really needed (the
    correct fix is coming in through the different driver subsystems
    instead)

    But that 1 sysfs fix is needed, so this is still a good thing to pull
    in now"

    Signed-off-by: Greg Kroah-Hartman

    * tag 'driver-core-3.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    Revert "sysfs: handle duplicate removal attempts in sysfs_remove_group()"
    sysfs: use a separate locking class for open files depending on mmap
    sysfs: handle duplicate removal attempts in sysfs_remove_group()

    Linus Torvalds
     
  • Pull HID fixes from Jiri Kosina:
    - fix compat ioctl leak in uhid, by David Herrmann
    - fix scheduling in atomic context (causing actual lockups in real
    world) in hid-sony driver, by Sven Eckelmann
    - revert patch introducing VID/PID conflict, by Jiri Kosina
    - support from various new device IDs by Benjamin Tissoires and
    KaiChung Cheng

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
    HID: uhid: fix leak for 64/32 UHID_CREATE
    HID: kye: fix unresponsive keyboard
    HID: kye: Add report fixup for Genius Manticore Keyboard
    HID: multicouh: add PID VID to support 1 new Wistron optical touch device
    HID: appleir: force input to be set
    Revert "HID: wiimote: add LEGO-wiimote VID"
    HID: sony: Send FF commands in non-atomic context

    Linus Torvalds