28 Sep, 2014

2 commits

  • Pull vfs fixes from Al Viro:
    "Assorted fixes + unifying __d_move() and __d_materialise_dentry() +
    minimal regression fix for d_path() of victims of overwriting rename()
    ported on top of that"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    vfs: Don't exchange "short" filenames unconditionally.
    fold swapping ->d_name.hash into switch_names()
    fold unlocking the children into dentry_unlock_parents_for_move()
    kill __d_materialise_dentry()
    __d_materialise_dentry(): flip the order of arguments
    __d_move(): fold manipulations with ->d_child/->d_subdirs
    don't open-code d_rehash() in d_materialise_unique()
    pull rehashing and unlocking the target dentry into __d_materialise_dentry()
    ufs: deal with nfsd/iget races
    fuse: honour max_read and max_write in direct_io mode
    shmem: fix nlink for rename overwrite directory

    Linus Torvalds
     
  • Pull cgroup fixes from Tejun Heo:
    "This is quite late but these need to be backported anyway.

    This is the fix for a long-standing cpuset bug which existed from
    2009. cpuset makes use of PF_SPREAD_{PAGE|SLAB} flags to modify the
    task's memory allocation behavior according to the settings of the
    cpuset it belongs to; unfortunately, when those flags have to be
    changed, cpuset did so directly even whlie the target task is running,
    which is obviously racy as task->flags may be modified by the task
    itself at any time. This obscure bug manifested as corrupt
    PF_USED_MATH flag leading to a weird crash.

    The bug is fixed by moving the flag to task->atomic_flags. The first
    two are prepatory ones to help defining atomic_flags accessors and the
    third one is the actual fix"

    * 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
    cpuset: PF_SPREAD_PAGE and PF_SPREAD_SLAB should be atomic flags
    sched: add macros to define bitops for task atomic flags
    sched: fix confusing PFA_NO_NEW_PRIVS constant

    Linus Torvalds
     

27 Sep, 2014

1 commit

  • The third argument of fuse_get_user_pages() "nbytesp" refers to the number of
    bytes a caller asked to pack into fuse request. This value may be lesser
    than capacity of fuse request or iov_iter. So fuse_get_user_pages() must
    ensure that *nbytesp won't grow.

    Now, when helper iov_iter_get_pages() performs all hard work of extracting
    pages from iov_iter, it can be done by passing properly calculated
    "maxsize" to the helper.

    The other caller of iov_iter_get_pages() (dio_refill_pages()) doesn't need
    this capability, so pass LONG_MAX as the maxsize argument here.

    Fixes: c9c37e2e6378 ("fuse: switch to iov_iter_get_pages()")
    Reported-by: Werner Baumann
    Tested-by: Maxim Patlasov
    Signed-off-by: Miklos Szeredi
    Signed-off-by: Al Viro

    Miklos Szeredi
     

26 Sep, 2014

4 commits

  • Pull scheduler fixes from Ingo Molnar:
    "A CONFIG_STACK_GROWSUP=y fix, and a hotplug llc CPU mask fix"

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched: Fix unreleased llc_shared_mask bit during CPU hotplug
    sched: Fix end_of_stack() and location of stack canary for architectures using CONFIG_STACK_GROWSUP

    Linus Torvalds
     
  • Pull ACPI and power management fixes from Rafael Wysocki:
    "These are regression fixes (ACPI hotplug, cpufreq, hibernation, ACPI
    LPSS driver), fixes for stuff that never worked correctly (ACPI GPIO
    support in some cases and a wrong sign of an error code in the ACPI
    core in one place), and one blacklist item for ACPI backlight
    handling.

    Specifics:

    - Revert of a recent hibernation core commit that introduced a NULL
    pointer dereference during resume for at least one user (Rafael J
    Wysocki).

    - Fix for the ACPI LPSS (Low-Power Subsystem) driver to disable
    asynchronous PM callback execution for LPSS devices during system
    suspend/resume (introduced in 3.16) which turns out to break
    ordering expectations on some systems. From Fu Zhonghui.

    - cpufreq core fix related to the handling of sysfs nodes during
    system suspend/resume that has been broken for intel_pstate since
    3.15 from Lan Tianyu.

    - Restore the generation of "online" uevents for ACPI container
    devices that was removed in 3.14, but some user space utilities
    turn out to need them (Rafael J Wysocki).

    - The cpufreq core fails to release a lock in an error code path
    after changes made in 3.14. Fix from Prarit Bhargava.

    - ACPICA and ACPI/GPIO fixes to make the handling of ACPI GPIO
    operation regions (which means AML using GPIOs) work correctly in
    all cases from Bob Moore and Srinivas Pandruvada.

    - Fix for a wrong sign of the ACPI core's create_modalias() return
    value in case of an error from Mika Westerberg.

    - ACPI backlight blacklist entry for ThinkPad X201s from Aaron Lu"

    * tag 'pm+acpi-3.17-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    Revert "PM / Hibernate: Iterate over set bits instead of PFNs in swsusp_free()"
    gpio / ACPI: Use pin index and bit length
    ACPICA: Update to GPIO region handler interface.
    ACPI / platform / LPSS: disable async suspend/resume of LPSS devices
    cpufreq: release policy->rwsem on error
    cpufreq: fix cpufreq suspend/resume for intel_pstate
    ACPI / scan: Correct error return value of create_modalias()
    ACPI / video: disable native backlight for ThinkPad X201s
    ACPI / hotplug: Generate online uevents for ACPI containers

    Linus Torvalds
     
  • Pull i2c fixes from Wolfram Sang:
    "This is probably not the kind of pull request you want to see that
    late in the cycle. Yet, the ACPI refactorization was problematic
    again and caused another two issues which need fixing. My holidays
    with limited internet (plus travelling) and the developer's illness
    didn't help either :(

    The details:

    - ACPI code was refactored out into a seperate file and as a
    side-effect, the i2c-core module got renamed. Jean Delvare
    rightfully complained about the rename being problematic for
    distributions. So, Mika and I thought the least problematic way to
    deal with it is to move all the code back into the main i2c core
    source file. This is mainly a huge code move with some #ifdeffery
    applied. No functional code changes. Our personal tests and the
    testbots did not find problems. (I was thinking about reverting,
    too, yet that would also have ~800 lines changed)

    - The new ACPI code also had a NULL pointer exception, thanks to
    Peter for finding and fixing it.

    - Mikko fixed a locking problem by decoupling clock_prepare and
    clock_enable.

    - Addy learnt that the datasheet was wrong and reimplemented the
    frequency setup according to the new algorithm.

    - Fan fixed an off-by-one error when copying data

    - Janusz fixed a copy'n'paste bug which gave a wrong error message

    - Sergei made sure that "don't touch" bits are not accessed"

    * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    i2c: acpi: Fix NULL Pointer dereference
    i2c: move acpi code back into the core
    i2c: rk3x: fix divisor calculation for SCL frequency
    i2c: mxs: fix error message in pio transfer
    i2c: ismt: use correct length when copy buffer
    i2c: rcar: fix RCAR_IRQ_ACK_{RECV|SEND}
    i2c: tegra: Move clk_prepare/clk_set_rate to probe

    Linus Torvalds
     
  • * acpi-hotplug:
    ACPI / hotplug: Generate online uevents for ACPI containers

    * acpi-scan:
    ACPI / scan: Correct error return value of create_modalias()

    * acpi-lpss:
    ACPI / platform / LPSS: disable async suspend/resume of LPSS devices

    * acpi-gpio:
    gpio / ACPI: Use pin index and bit length
    ACPICA: Update to GPIO region handler interface.

    * acpi-video:
    ACPI / video: disable native backlight for ThinkPad X201s

    Rafael J. Wysocki
     

25 Sep, 2014

7 commits

  • Commit 5d98e61d337c ("I2C/ACPI: Add i2c ACPI operation region support")
    renamed the i2c-core module. This may cause regressions for
    distributions, so put the ACPI code back into the core.

    Reported-by: Jean Delvare
    Signed-off-by: Wolfram Sang
    Tested-by: Lan Tianyu
    Tested-by: Mika Westerberg

    Wolfram Sang
     
  • When we change cpuset.memory_spread_{page,slab}, cpuset will flip
    PF_SPREAD_{PAGE,SLAB} bit of tsk->flags for each task in that cpuset.
    This should be done using atomic bitops, but currently we don't,
    which is broken.

    Tetsuo reported a hard-to-reproduce kernel crash on RHEL6, which happened
    when one thread tried to clear PF_USED_MATH while at the same time another
    thread tried to flip PF_SPREAD_PAGE/PF_SPREAD_SLAB. They both operate on
    the same task.

    Here's the full report:
    https://lkml.org/lkml/2014/9/19/230

    To fix this, we make PF_SPREAD_PAGE and PF_SPREAD_SLAB atomic flags.

    v4:
    - updated mm/slab.c. (Fengguang Wu)
    - updated Documentation.

    Cc: Peter Zijlstra
    Cc: Ingo Molnar
    Cc: Miao Xie
    Cc: Kees Cook
    Fixes: 950592f7b991 ("cpusets: update tasks' page/slab spread flags in time")
    Cc: # 2.6.31+
    Reported-by: Tetsuo Handa
    Signed-off-by: Zefan Li
    Signed-off-by: Tejun Heo

    Zefan Li
     
  • This will simplify code when we add new flags.

    v3:
    - Kees pointed out that no_new_privs should never be cleared, so we
    shouldn't define task_clear_no_new_privs(). we define 3 macros instead
    of a single one.

    v2:
    - updated scripts/tags.sh, suggested by Peter

    Cc: Ingo Molnar
    Cc: Miao Xie
    Cc: Tetsuo Handa
    Acked-by: Peter Zijlstra (Intel)
    Acked-by: Kees Cook
    Signed-off-by: Zefan Li
    Signed-off-by: Tejun Heo

    Zefan Li
     
  • Commit 1d4457f99928 ("sched: move no_new_privs into new atomic flags")
    defined PFA_NO_NEW_PRIVS as hexadecimal value, but it is confusing
    because it is used as bit number. Redefine it as decimal bit number.

    Note this changes the bit position of PFA_NOW_NEW_PRIVS from 1 to 0.

    Cc: Peter Zijlstra
    Cc: Ingo Molnar
    Cc: Miao Xie
    Signed-off-by: Tetsuo Handa
    Acked-by: Kees Cook
    [ lizf: slightly modified subject and changelog ]
    Signed-off-by: Zefan Li
    Signed-off-by: Tejun Heo

    Zefan Li
     
  • Pull one last block fix from Jens Axboe:
    "We've had an issue with scsi-mq where probing takes forever. This was
    bisected down to the percpu changes for blk_mq_queue_enter(), and the
    fact we now suffer an RCU grace period when killing a queue. SCSI
    creates and destroys tons of queues, so this let to 10s of seconds of
    stalls at boot for some.

    Tejun has a real fix for this, but it's too involved for 3.17. So
    this is a temporary workaround to expedite the queue killing until we
    can fold in the real fix for 3.18 when that merge window opens"

    * 'for-linus' of git://git.kernel.dk/linux-block:
    blk-mq, percpu_ref: implement a kludge for SCSI blk-mq stall during probe

    Linus Torvalds
     
  • Pull crypto fixes from Herbert Xu:
    "This fixes three issues:

    - if ccp is loaded on a machine without ccp, it will incorrectly
    activate causing all requests to fail. Fixed by preventing ccp
    from loading if hardware isn't available.

    - not all IRQs were enabled for the qat driver, leading to potential
    stalls when it is used

    - disabled buggy AVX CTR implementation in aesni"

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    crypto: aesni - disable "by8" AVX CTR optimization
    crypto: ccp - Check for CCP before registering crypto algs
    crypto: qat - Enable all 32 IRQs

    Linus Torvalds
     
  • Pull media fixes from Mauro Carvalho Chehab:
    "For some last time fixes:
    - a regression detected on Kernel 3.16 related to VBI Teletext
    application breakage on drivers using videobuf2 (see
    https://bugzilla.kernel.org/show_bug.cgi?id=84401). The bug was
    noticed on saa7134 (migrated to VB2 on 3.16), but also affects
    em28xx (migrated on 3.9 to VB2);
    - two additional sanity checks at videobuf2;
    - two fixups to restore proper VBI support at the em28xx driver;
    - two Kernel oops fixups (at cx24123 and cx2341x drivers);
    - a bug at adv7604 where an if was doing just the opposite as it
    would be expected;
    - some documentation fixups to match the behavior defined at the
    Kernel"

    * tag 'media/v3.17-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
    [media] em28xx-v4l: get rid of field "users" in struct em28xx_v4l2"
    [media] em28xx: fix VBI handling logic
    [media] DocBook media: improve the poll() documentation
    [media] DocBook media: fix the poll() 'no QBUF' documentation
    [media] vb2: fix VBI/poll regression
    [media] cx2341x: fix kernel oops
    [media] cx24123: fix kernel oops due to missing parent pointer
    [media] adv7604: fix inverted condition
    [media] media/radio: fix radio-miropcm20.c build with io.h header file
    [media] vb2: fix plane index sanity check in vb2_plane_cookie()
    [media] DocBook media: update version number and V4L2 changes
    [media] DocBook media: fix fieldname in struct v4l2_subdev_selection
    [media] vb2: fix vb2 state check when start_streaming fails
    [media] videobuf2-core.h: fix comment
    [media] videobuf2-core: add comments before the WARN_ON
    [media] videobuf2-dma-sg: fix for wrong GFP mask to sg_alloc_table_from_pages

    Linus Torvalds
     

24 Sep, 2014

3 commits

  • blk-mq uses percpu_ref for its usage counter which tracks the number
    of in-flight commands and used to synchronously drain the queue on
    freeze. percpu_ref shutdown takes measureable wallclock time as it
    involves a sched RCU grace period. This means that draining a blk-mq
    takes measureable wallclock time. One would think that this shouldn't
    matter as queue shutdown should be a rare event which takes place
    asynchronously w.r.t. userland.

    Unfortunately, SCSI probing involves synchronously setting up and then
    tearing down a lot of request_queues back-to-back for non-existent
    LUNs. This means that SCSI probing may take more than ten seconds
    when scsi-mq is used.

    This will be properly fixed by implementing a mechanism to keep
    q->mq_usage_counter in atomic mode till genhd registration; however,
    that involves rather big updates to percpu_ref which is difficult to
    apply late in the devel cycle (v3.17-rc6 at the moment). As a
    stop-gap measure till the proper fix can be implemented in the next
    cycle, this patch introduces __percpu_ref_kill_expedited() and makes
    blk_mq_freeze_queue() use it. This is heavy-handed but should work
    for testing the experimental SCSI blk-mq implementation.

    Signed-off-by: Tejun Heo
    Reported-by: Christoph Hellwig
    Link: http://lkml.kernel.org/g/20140919113815.GA10791@lst.de
    Fixes: add703fda981 ("blk-mq: use percpu_ref for mq usage count")
    Cc: Kent Overstreet
    Cc: Jens Axboe
    Tested-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Tejun Heo
     
  • If the ccp is built as a built-in module, then ccp-crypto (whether
    built as a module or a built-in module) will be able to load and
    it will register its crypto algorithms. If the system does not have
    a CCP this will result in -ENODEV being returned whenever a command
    is attempted to be queued by the registered crypto algorithms.

    Add an API, ccp_present(), that checks for the presence of a CCP
    on the system. The ccp-crypto module can use this to determine if it
    should register it's crypto alogorithms.

    Cc: stable@vger.kernel.org
    Reported-by: Scot Doyle
    Signed-off-by: Tom Lendacky
    Tested-by: Scot Doyle
    Signed-off-by: Herbert Xu

    Tom Lendacky
     
  • Pull infiniband/rdma fixes from Roland Dreier:
    "Last late set of InfiniBand/RDMA fixes for 3.17:

    - fixes for the new memory region re-registration support
    - iSER initiator error path fixes
    - grab bag of small fixes for the qib and ocrdma hardware drivers
    - larger set of fixes for mlx4, especially in RoCE mode"

    * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (26 commits)
    IB/mlx4: Fix VF mac handling in RoCE
    IB/mlx4: Do not allow APM under RoCE
    IB/mlx4: Don't update QP1 in native mode
    IB/mlx4: Avoid accessing netdevice when building RoCE qp1 header
    mlx4: Fix mlx4 reg/unreg mac to work properly with 0-mac addresses
    IB/core: When marshaling uverbs path, clear unused fields
    IB/mlx4: Avoid executing gid task when device is being removed
    IB/mlx4: Fix lockdep splat for the iboe lock
    IB/mlx4: Get upper dev addresses as RoCE GIDs when port comes up
    IB/mlx4: Reorder steps in RoCE GID table initialization
    IB/mlx4: Don't duplicate the default RoCE GID
    IB/mlx4: Avoid null pointer dereference in mlx4_ib_scan_netdevs()
    IB/iser: Bump version to 1.4.1
    IB/iser: Allow bind only when connection state is UP
    IB/iser: Fix RX/TX CQ resource leak on error flow
    RDMA/ocrdma: Use right macro in query AH
    RDMA/ocrdma: Resolve L2 address when creating user AH
    mlx4: Correct error flows in rereg_mr
    IB/qib: Correct reference counting in debugfs qp_stats
    IPoIB: Remove unnecessary port query
    ...

    Linus Torvalds
     

23 Sep, 2014

3 commits

  • Pull networking fixes from David Miller:

    1) If the user gives us a msg_namelen of 0, don't try to interpret
    anything pointed to by msg_name. From Ani Sinha.

    2) Fix some bnx2i/bnx2fc randconfig compilation errors.

    The gist of the issue is that we firstly have drivers that span both
    SCSI and networking. And at the top of that chain of dependencies
    we have things like SCSI_FC_ATTRS and SCSI_NETLINK which are
    selected.

    But since select is a sledgehammer and ignores dependencies,
    everything to select's SCSI_FC_ATTRS and/or SCSI_NETLINK has to also
    explicitly select their dependencies and so on and so forth.

    Generally speaking 'select' is supposed to only be used for child
    nodes, those which have no dependencies of their own. And this
    whole chain of dependencies in the scsi layer violates that rather
    strongly.

    So just make SCSI_NETLINK depend upon it's dependencies, and so on
    and so forth for the things selecting it (either directly or
    indirectly).

    From Anish Bhatt and Randy Dunlap.

    3) Fix generation of blackhole routes in IPSEC, from Steffen Klassert.

    4) Actually notice netdev feature changes in rtl_open() code, from
    Hayes Wang.

    5) Fix divide by zero in bond enslaving, from Nikolay Aleksandrov.

    6) Missing memory barrier in sunvnet driver, from David Stevens.

    7) Don't leave anycast addresses around when ipv6 interface is
    destroyed, from Sabrina Dubroca.

    8) Don't call efx_{arch}_filter_sync_rx_mode before addr_list_lock is
    initialized in SFC driver, from Edward Cree.

    9) Fix missing DMA error checking in 3c59x, from Neal Horman.

    10) Openvswitch doesn't emit OVS_FLOW_CMD_NEW notifications accidently,
    fix from Samuel Gauthier.

    11) pch_gbe needs to select NET_PTP_CLASSIFY otherwise we can get a
    build error.

    12) Fix macvlan regression wherein we stopped emitting
    broadcast/multicast frames over software devices. From Nicolas
    Dichtel.

    13) Fix infiniband bug due to unintended overflow of skb->cb[], from
    Eric Dumazet. And add an assertion so this doesn't happen again.

    14) dm9000_parse_dt() should return error pointers, not NULL. From
    Tobias Klauser.

    15) IP tunneling code uses this_cpu_ptr() in preemptible contexts, fix
    from Eric Dumazet.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (87 commits)
    net: bcmgenet: call bcmgenet_dma_teardown in bcmgenet_fini_dma
    net: bcmgenet: fix TX reclaim accounting for fragments
    ipv4: do not use this_cpu_ptr() in preemptible context
    dm9000: Return an ERR_PTR() in all error conditions of dm9000_parse_dt()
    r8169: fix an if condition
    r8152: disable ALDPS
    ipoib: validate struct ipoib_cb size
    net: sched: shrink struct qdisc_skb_cb to 28 bytes
    tg3: Work around HW/FW limitations with vlan encapsulated frames
    macvlan: allow to enqueue broadcast pkt on virtual device
    pch_gbe: 'select' NET_PTP_CLASSIFY.
    scsi: Use 'depends' with LIBFC instead of 'select'.
    openvswitch: restore OVS_FLOW_CMD_NEW notifications
    genetlink: add function genl_has_listeners()
    lib: rhashtable: remove second linux/log2.h inclusion
    net: allow macvlans to move to net namespace
    3c59x: Fix bad offset spec in skb_frag_dma_map
    3c59x: Add dma error checking and recovery
    sparc: bpf_jit: fix support for ldx/stx mem and SKF_AD_VLAN_TAG
    can: at91_can: add missing prepare and unprepare of the clock
    ...

    Linus Torvalds
     
  • Steffen Klassert says:

    ====================
    pull request (net): ipsec 2014-09-22

    We generate a blackhole or queueing route if a packet
    matches an IPsec policy but a state can't be resolved.
    Here we assume that dst_output() is called to kill
    these packets. Unfortunately this assumption is not
    true in all cases, so it is possible that these packets
    leave the system without the necessary transformations.

    This pull request contains two patches to fix this issue:

    1) Fix for blackhole routed packets.

    2) Fix for queue routed packets.

    Both patches are serious stable candidates.

    Please pull or let me know if there are problems.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • We cannot make struct qdisc_skb_cb bigger without impacting IPoIB,
    or increasing skb->cb[] size.

    Commit e0f31d849867 ("flow_keys: Record IP layer protocol in
    skb_flow_dissect()") broke IPoIB.

    Only current offender is sch_choke, and this one do not need an
    absolutely precise flow key.

    If we store 17 bytes of flow key, its more than enough. (Its the actual
    size of flow_keys if it was a packed structure, but we might add new
    fields at the end of it later)

    Signed-off-by: Eric Dumazet
    Fixes: e0f31d849867 ("flow_keys: Record IP layer protocol in skb_flow_dissect()")
    Signed-off-by: David S. Miller

    Eric Dumazet
     

22 Sep, 2014

3 commits

  • Pull workqueue fix from Tejun Heo:
    "create_singlethread_workqueue() is the old interface which is kept
    around for backward compatibility - each should be reviewed to
    determine whether singlethread usage was to save worker threads or for
    ordering guarantee and whether it's depended upon by memory reclaim
    path.

    While adding NUMA support for unbound workqueues during v3.10, I
    forgot to update it breaking the singlethread and ordering properties
    on NUMA setups. The breakage was unfortunately rather subtle and went
    without being reported until now.

    The only missing piece is __WQ_ORDERED flag which makes the unbounded
    workqueue use a single backend queue across different NUMA nodes.
    It's fixed by making create_singlethread_workqueue() wrap
    alloc_ordered_workqueue() so that possible future updates are
    inherited automatically"

    * 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    workqueue: apply __WQ_ORDERED to create_singlethread_workqueue()

    Linus Torvalds
     
  • The recent conversion of saa7134 to vb2 unconvered a poll() bug that
    broke the teletext applications alevt and mtt. These applications
    expect that calling poll() without having called VIDIOC_STREAMON will
    cause poll() to return POLLERR. That did not happen in vb2.

    This patch fixes that behavior. It also fixes what should happen when
    poll() is called when STREAMON is called but no buffers have been
    queued. In that case poll() will also return POLLERR, but only for
    capture queues since output queues will always return POLLOUT
    anyway in that situation.

    This brings the vb2 behavior in line with the old videobuf behavior.

    Signed-off-by: Hans Verkuil
    Acked-by: Laurent Pinchart
    Signed-off-by: Mauro Carvalho Chehab

    Hans Verkuil
     
  • The comment for start_streaming that tells the developer with which vb2 state
    buffers should be returned to vb2 gave the wrong state. Very confusing.

    Signed-off-by: Hans Verkuil
    Acked-by: Laurent Pinchart
    Signed-off-by: Mauro Carvalho Chehab

    Hans Verkuil
     

21 Sep, 2014

4 commits

  • Commit 46394fd01 (ACPI / hotplug: Move container-specific code out of
    the core) removed the generation of "online" uevents for containers,
    because "add" uevents are now generated for them automatically when
    container system devices are registered. However, there are user
    space tools that need to be notified when the container and all of
    its children have been enumerated, which doesn't happen any more.

    For this reason, add a mechanism allowing "online" uevents to be
    generated for ACPI containers after enumerating the container along
    with all of its children.

    Fixes: 46394fd01 (ACPI / hotplug: Move container-specific code out of the core)
    Reported-and-tested-by: Yasuaki Ishimatsu
    Cc: 3.14+ # 3.14+
    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     
  • Aaron Tomlin recently posted patches [1] to enable checking the
    stack canary on every task switch. Looking at the canary code, I
    realized that every arch (except ia64, which adds some space for
    register spill above the stack) shares a definition of
    end_of_stack() that makes it the first long after the
    threadinfo.

    For stacks that grow down, this low address is correct because
    the stack starts at the end of the thread area and grows toward
    lower addresses. However, for stacks that grow up, toward higher
    addresses, this is wrong. (The stack actually grows away from
    the canary.) On these archs end_of_stack() should return the
    address of the last long, at the highest possible address for the stack.

    [1] http://lkml.org/lkml/2014/9/12/293

    Signed-off-by: Chuck Ebbert
    Link: http://lkml.kernel.org/r/20140920101751.6c5166b6@as
    Signed-off-by: Ingo Molnar
    Tested-by: James Hogan [metag]
    Acked-by: James Hogan
    Acked-by: Aaron Tomlin

    Chuck Ebbert
     
  • Pull staging / IIO fixes from Greg KH:
    "Here are some IIO and Staging driver fixes for 3.17-rc6. They are all
    pretty simple, and resolve reported issues"

    * tag 'staging-3.17-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    staging: vt6655: buffer overflow in ioctl
    iio:magnetometer: bugfix magnetometers gain values
    iio: adc: at91: don't use the last converted data register
    iio: adc: xilinx-xadc: assign auxiliary channels address correctly
    iio: meter: ade7758: Fix indio_dev->trig assignment
    iio: inv_mpu6050: Fix indio_dev->trig assignment
    iio: gyro: itg3200: Fix indio_dev->trig assignment
    iio: st_sensors: Fix indio_dev->trig assignment
    iio: hid_sensor_hub: Fix indio_dev->trig assignment
    iio: adc: ad_sigma_delta: Fix indio_dev->trig assignment
    iio: accel: bma180: Fix indio_dev->trig assignment
    iio:trigger: modify return value for iio_trigger_get
    iio:inkern: fix overwritten -EPROBE_DEFER in of_iio_channel_get_by_name

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "A bunch of radeon fixes for oops on module unload, and problems with
    resetting the dma engine, one nouveau fix for black boxes in rendering
    on my mbp retina, one sti fix, and a couple of intel fixes"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm/nouveau: ltc/gf100-: fix cbc issues on certain boards
    drm/bochs: add missing drm_connector_register call
    drm/cirrus: add missing drm_connector_register call
    drm/radeon: Fix typo 'addr' -> 'entry' in rs400_gart_set_page
    drm/nouveau/runpm: fix module unload
    drm/radeon/px: fix module unload
    vgaswitcheroo: add vga_switcheroo_fini_domain_pm_ops
    drm/radeon: don't reset dma on r6xx-evergreen init
    drm/radeon: don't reset sdma on CIK init
    drm/radeon: don't reset dma on NI/SI init
    drm/radeon/dpm: fix resume on mullins
    drm/radeon: Disable HDP flush before every CS again for < r600
    drm/radeon: delete unused PTE_* defines
    drm/i915: Add limited color range readout for HDMI/DP ports on g4x/vlv/chv
    drm: sti: do not iterate over the info frame array
    drm/i915: Fix SRC_COPY width on 830/845g

    Linus Torvalds
     

20 Sep, 2014

4 commits

  • …23/iio into staging-linus

    Jonathan writes:

    First round of IIO fixes for the 3.17 cycle.

    * Fix an overwritten error return that can prevent deferred probing when
    using of_iio_channel_get_by_name
    * A series that deals with an incorrect reference count when the default
    trigger is set within the main probe routine for a driver. Can result
    in a double free if the trigger is changed.
    * Fix a buglet with xilinx-xadc concerning setup of the address for an
    aux channel.
    * At91 adc driver could sometimes get a touchscreen reading rather than
    the intended adc channel. This is fixed by using the channel data register
    instead.
    * Fix some ST magnetometer gain values that differ in production parts from
    the prerelease ones used for driver development.

    Greg Kroah-Hartman
     
  • This function is the counterpart of the function netlink_has_listeners().

    Signed-off-by: Nicolas Dichtel
    Acked-by: Pravin B Shelar
    Signed-off-by: David S. Miller

    Nicolas Dichtel
     
  • Pull PCI fixes from Bjorn Helgaas:
    "These fix:

    - Boot video device detection on dual-GPU Apple systems
    - Hotplug fiascos on VGA switcheroo with radeon & nouveau drivers
    - Boot hang on Freescale i.MX6 systems
    - Excessive "no hotplug settings from platform" warnings

    In particular:

    Enumeration
    - Don't default exclusively to first video device (Bruno Prémont)

    PCI device hotplug
    - Remove "no hotplug settings from platform" warning (Bjorn Helgaas)
    - Add pci_ignore_hotplug() for VGA switcheroo (Bjorn Helgaas)

    Freescale i.MX6
    - Put LTSSM in "Detect" state before disabling (Lucas Stach)"

    * tag 'pci-v3.17-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    vgaarb: Drop obsolete #ifndef
    vgaarb: Don't default exclusively to first video device with mem+io
    ACPIPHP / radeon / nouveau: Remove acpi_bus_no_hotplug()
    PCI: Remove "no hotplug settings from platform" warning
    PCI: Add pci_ignore_hotplug() to ignore hotplug events for a device
    PCI: imx6: Put LTSSM in "Detect" state before disabling it
    MAINTAINERS: Add Lucas Stach as co-maintainer for i.MX6 PCI driver

    Linus Torvalds
     
  • In debugging an application that receives -ENOMEM from ib_reg_mr(), I
    found that ib_umem_get() can fail because the pinned_vm count has
    wrapped causing it to always be larger than the lock limit even with
    RLIMIT_MEMLOCK set to RLIM_INFINITY.

    The wrapping of pinned_vm occurs because the process that calls
    ib_reg_mr() will have its mm->pinned_vm count incremented. Later a
    different process with a different mm_struct than the one that
    allocated the ib_umem struct ends up releasing it which results in
    decrementing the new processes mm->pinned_vm count past zero and
    wrapping.

    I'm not entirely sure what circumstances cause a different process to
    release the ib_umem than the one that allocated it but the kernel
    stack trace of the freeing process from my situation looks like the
    following:

    Call Trace:
    [] dump_stack+0x19/0x1b
    [] ib_umem_release+0x1f5/0x200 [ib_core]
    [] mlx4_ib_destroy_qp+0x241/0x440 [mlx4_ib]
    [] ib_destroy_qp+0x12c/0x170 [ib_core]
    [] ib_uverbs_close+0x259/0x4e0 [ib_uverbs]
    [] __fput+0xba/0x240
    [] ____fput+0xe/0x10
    [] task_work_run+0xc4/0xe0
    [] do_notify_resume+0x95/0xa0
    [] int_signal+0x12/0x17

    The following patch fixes the issue by storing the pid struct of the
    process that calls ib_umem_get() so that ib_umem_release and/or
    ib_umem_account() can properly decrement the pinned_vm count of the
    correct mm_struct.

    Signed-off-by: Shawn Bohrer
    Reviewed-by: Shachar Raindel
    Signed-off-by: Roland Dreier

    Shawn Bohrer
     

19 Sep, 2014

4 commits


17 Sep, 2014

1 commit

  • Commit 20cde694027e ("x86, ia64: Move EFI_FB vga_default_device()
    initialization to pci_vga_fixup()") moved boot video device detection from
    efifb to x86 and ia64 pci/fixup.c.

    Remove the left-over #ifndef check that will always match since the
    corresponding arch-specific define is gone with above patch.

    Signed-off-by: Bruno Prémont
    Signed-off-by: Bjorn Helgaas
    CC: Matthew Garrett

    Bruno Prémont
     

16 Sep, 2014

3 commits

  • Currently we genarate a queueing route if we have matching policies
    but can not resolve the states and the sysctl xfrm_larval_drop is
    disabled. Here we assume that dst_output() is called to kill the
    queued packets. Unfortunately this assumption is not true in all
    cases, so it is possible that these packets leave the system unwanted.

    We fix this by generating queueing routes only from the
    route lookup functions, here we can guarantee a call to
    dst_output() afterwards.

    Fixes: a0073fe18e71 ("xfrm: Add a state resolution packet queue")
    Reported-by: Konstantinos Kolelis
    Signed-off-by: Steffen Klassert

    Steffen Klassert
     
  • Currently we genarate a blackhole route route whenever we have
    matching policies but can not resolve the states. Here we assume
    that dst_output() is called to kill the balckholed packets.
    Unfortunately this assumption is not true in all cases, so
    it is possible that these packets leave the system unwanted.

    We fix this by generating blackhole routes only from the
    route lookup functions, here we can guarantee a call to
    dst_output() afterwards.

    Fixes: 2774c131b1d ("xfrm: Handle blackhole route creation via afinfo.")
    Reported-by: Konstantinos Kolelis
    Signed-off-by: Steffen Klassert

    Steffen Klassert
     
  • Revert parts of f244d8b623da ("ACPIPHP / radeon / nouveau: Fix VGA
    switcheroo problem related to hotplug").

    A previous commit 5493b31f0b55 ("PCI: Add pci_ignore_hotplug() to ignore
    hotplug events for a device") added equivalent functionality implemented in
    a different way for both acpiphp and pciehp.

    Signed-off-by: Bjorn Helgaas
    Acked-by: Alex Deucher
    Acked-by: Rafael J. Wysocki
    Acked-by: Dave Airlie
    Acked-by: Rajat Jain

    Bjorn Helgaas
     

15 Sep, 2014

1 commit

  • Pull crypto fixes from Herbert Xu:
    "This fixes the newly added drbg generator so that it actually works on
    32-bit machines. Previously the code was only tested on 64-bit and on
    32-bit it overflowed and simply doesn't work"

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    crypto: drbg - remove check for uninitialized DRBG handle
    crypto: drbg - backport "fix maximum value checks on 32 bit systems"

    Linus Torvalds