03 Nov, 2017

5 commits


12 Oct, 2017

2 commits


07 Oct, 2017

2 commits

  • If the algorithm we're parallelizing is asynchronous we might change
    CPUs between padata_do_parallel() and padata_do_serial(). However, we
    don't expect this to happen as we need to enqueue the padata object into
    the per-cpu reorder queue we took it from, i.e. the same-cpu's parallel
    queue.

    Ensure we're not switching CPUs for a given padata object by tracking
    the CPU within the padata object. If the serial callback gets called on
    the wrong CPU, defer invoking padata_reorder() via a kernel worker on
    the CPU we're expected to run on.

    Signed-off-by: Mathias Krause
    Signed-off-by: Herbert Xu

    Mathias Krause
     
  • The reorder timer function runs on the CPU where the timer interrupt was
    handled which is not necessarily one of the CPUs of the 'pcpu' CPU mask
    set.

    Ensure the padata_reorder() callback runs on the correct CPU, which is
    one in the 'pcpu' CPU mask set and, preferrably, the next expected one.
    Do so by comparing the current CPU with the expected target CPU. If they
    match, call padata_reorder() right away. If they differ, schedule a work
    item on the target CPU that does the padata_reorder() call for us.

    Signed-off-by: Mathias Krause
    Signed-off-by: Herbert Xu

    Mathias Krause
     

02 Oct, 2017

3 commits

  • Pull timer fixes from Thomas Gleixner:
    "This adds a new timer wheel function which is required for the
    conversion of the timer callback function from the 'unsigned long
    data' argument to 'struct timer_list *timer'. This conversion has two
    benefits:

    1) It makes struct timer_list smaller

    2) Many callers hand in a pointer to the timer or to the structure
    containing the timer, which happens via type casting both at setup
    and in the callback. This change gets rid of the typecasts.

    Once the conversion is complete, which is planned for 4.15, the old
    setup function and the intermediate typecast in the new setup function
    go away along with the data field in struct timer_list.

    Merging this now into mainline allows a smooth queueing of the actual
    conversion in the affected maintainer trees without creating
    dependencies"

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    um/time: Fixup namespace collision
    timer: Prepare to change timer callback argument type

    Linus Torvalds
     
  • Pull smp/hotplug fixes from Thomas Gleixner:
    "This addresses the fallout of the new lockdep mechanism which covers
    completions in the CPU hotplug code.

    The lockdep splats are false positives, but there is no way to
    annotate that reliably. The solution is to split the completions for
    CPU up and down, which requires some reshuffling of the failure
    rollback handling as well"

    * 'smp-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    smp/hotplug: Hotplug state fail injection
    smp/hotplug: Differentiate the AP completion between up and down
    smp/hotplug: Differentiate the AP-work lockdep class between up and down
    smp/hotplug: Callback vs state-machine consistency
    smp/hotplug: Rewrite AP state machine core
    smp/hotplug: Allow external multi-instance rollback
    smp/hotplug: Add state diagram

    Linus Torvalds
     
  • Pull scheduler fixes from Thomas Gleixner:
    "The scheduler pull request comes with the following updates:

    - Prevent a divide by zero issue by validating the input value of
    sysctl_sched_time_avg

    - Make task state printing consistent all over the place and have
    explicit state characters for IDLE and PARKED so they wont be
    displayed as 'D' state which confuses tools"

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/sysctl: Check user input value of sysctl_sched_time_avg
    sched/debug: Add explicit TASK_PARKED printing
    sched/debug: Ignore TASK_IDLE for SysRq-W
    sched/debug: Add explicit TASK_IDLE printing
    sched/tracing: Use common task-state helpers
    sched/tracing: Fix trace_sched_switch task-state printing
    sched/debug: Remove unused variable
    sched/debug: Convert TASK_state to hex
    sched/debug: Implement consistent task-state printing

    Linus Torvalds
     

30 Sep, 2017

3 commits

  • Pull PCI fixes from Bjorn Helgaas:

    - fix CONFIG_PCI=n build error (introduced in v4.14-rc1) (Geert
    Uytterhoeven)

    - fix a race in sysfs driver_override store/show (Nicolai Stange)

    * tag 'pci-v4.14-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    PCI: Fix race condition with driver_override
    PCI: Add dummy pci_acs_enabled() for CONFIG_PCI=n build

    Linus Torvalds
     
  • Pull IOMMU fixes from Joerg Roedel:

    - A comment fix for 'struct iommu_ops'

    - Format string fixes for AMD IOMMU, unfortunatly I missed that during
    review.

    - Limit mediatek physical addresses to 32 bit for v7s to fix a warning
    triggered in io-page-table code.

    - Fix dma-sync in io-pgtable-arm-v7s code

    * tag 'iommu-fixes-v4.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
    iommu: Fix comment for iommu_ops.map_sg
    iommu/amd: pr_err() strings should end with newlines
    iommu/mediatek: Limit the physical address in 32bit for v7s
    iommu/io-pgtable-arm-v7s: Need dma-sync while there is no QUIRK_NO_DMA

    Linus Torvalds
     
  • …jmorris/linux-security

    Pull keys fixes from James Morris:
    "Notable here is a rewrite of big_key crypto by Jason Donenfeld to
    address some issues in the original code.

    From Jason's commit log:
    "This started out as just replacing the use of crypto/rng with
    get_random_bytes_wait, so that we wouldn't use bad randomness at
    boot time. But, upon looking further, it appears that there were
    even deeper underlying cryptographic problems, and that this seems
    to have been committed with very little crypto review. So, I rewrote
    the whole thing, trying to keep to the conventions introduced by the
    previous author, to fix these cryptographic flaws."

    There has been positive review of the new code by Eric Biggers and
    Herbert Xu, and it passes basic testing via the keyutils test suite.
    Eric also manually tested it.

    Generally speaking, we likely need to improve the amount of crypto
    review for kernel crypto users including keys (I'll post a note
    separately to ksummit-discuss)"

    * 'fixes-v4.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
    security/keys: rewrite all of big_key crypto
    security/keys: properly zero out sensitive key material in big_key
    KEYS: use kmemdup() in request_key_auth_new()
    KEYS: restrict /proc/keys by credentials at open time
    KEYS: reset parent each time before searching key_user_tree
    KEYS: prevent KEYCTL_READ on negative key
    KEYS: prevent creating a different user's keyrings
    KEYS: fix writing past end of user-supplied buffer in keyring_read()
    KEYS: fix key refcount leak in keyctl_read_key()
    KEYS: fix key refcount leak in keyctl_assume_authority()
    KEYS: don't revoke uninstantiated key in request_key_auth_new()
    KEYS: fix cred refcount leak in request_key_auth_new()

    Linus Torvalds
     

29 Sep, 2017

7 commits

  • Currently TASK_PARKED is masqueraded as TASK_INTERRUPTIBLE, give it
    its own print state because it will not in fact get woken by regular
    wakeups and is a long-term state.

    This requires moving TASK_PARKED into the TASK_REPORT mask, and since
    that latter needs to be a contiguous bitmask, we need to shuffle the
    bits around a bit.

    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Markus reported that kthreads that idle using TASK_IDLE instead of
    TASK_INTERRUPTIBLE are reported in as TASK_UNINTERRUPTIBLE and things
    like htop mark those red.

    This is undesirable, so add an explicit state for TASK_IDLE.

    Reported-by: Markus Trippelsdorf
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Remove yet another task-state char instance.

    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Convert trace_sched_switch to use the common task-state helpers and
    fix the "X" and "Z" order, possibly they ended up in the wrong order
    because TASK_REPORT has them in the wrong order too.

    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Bit patterns are easier in hex.

    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Currently get_task_state() and task_state_to_char() report different
    states, create a number of common helpers and unify the reported state
    space.

    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Pull rdma fixes from Doug Ledford:
    "Second -rc update for 4.14.

    Both Mellanox and Intel had a series of -rc fixes that landed this
    week. The Mellanox bunch is spread throughout the stack and not just
    in their driver, where as the Intel bunch was mostly in the hfi1
    driver. And, several of the fixes in the hfi1 driver were more than
    just simple 5 line fixes. As a result, the hfi1 driver fixes has a
    sizable LOC count.

    Everything else is as one would expect in an RC cycle in terms of LOC
    count. One item that might jump out and make you think "That's not an
    rc item" is the fix that corrects a typo. But, that change fixes a
    typo in a user visible API that was just added in this merge window,
    so if we fix it now, we can fix it. If we don't, the typo is in the
    API forever. Another that might not appear to be a fix at first glance
    is the Simplify mlx5_ib_cont_pages patch, but the simplification
    allows them to fix a bug in the existing function whenever the length
    of an SGE exceeded page size. We also had to revert one patch from the
    merge window that was wrong.

    Summary:

    - a few core fixes
    - a few ipoib fixes
    - a few mlx5 fixes
    - a 7-patch hfi1 related series"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma:
    IB/hfi1: Unsuccessful PCIe caps tuning should not fail driver load
    IB/hfi1: On error, fix use after free during user context setup
    Revert "IB/ipoib: Update broadcast object if PKey value was changed in index 0"
    IB/hfi1: Return correct value in general interrupt handler
    IB/hfi1: Check eeprom config partition validity
    IB/hfi1: Only reset QSFP after link up and turn off AOC TX
    IB/hfi1: Turn off AOC TX after offline substates
    IB/mlx5: Fix NULL deference on mlx5_ib_update_xlt failure
    IB/mlx5: Simplify mlx5_ib_cont_pages
    IB/ipoib: Fix inconsistency with free_netdev and free_rdma_netdev
    IB/ipoib: Fix sysfs Pkey createremove possible deadlock
    IB: Correct MR length field to be 64-bit
    IB/core: Fix qp_sec use after free access
    IB/core: Fix typo in the name of the tag-matching cap struct

    Linus Torvalds
     

28 Sep, 2017

2 commits

  • Modern kernel callback systems pass the structure associated with a
    given callback to the callback function. The timer callback remains one
    of the legacy cases where an arbitrary unsigned long argument continues
    to be passed as the callback argument. This has several problems:

    - This bloats the timer_list structure with a normally redundant
    .data field.

    - No type checking is being performed, forcing callbacks to do
    explicit type casts of the unsigned long argument into the object
    that was passed, rather than using container_of(), as done in most
    of the other callback infrastructure.

    - Neighboring buffer overflows can overwrite both the .function and
    the .data field, providing attackers with a way to elevate from a buffer
    overflow into a simplistic ROP-like mechanism that allows calling
    arbitrary functions with a controlled first argument.

    - For future Control Flow Integrity work, this creates a unique function
    prototype for timer callbacks, instead of allowing them to continue to
    be clustered with other void functions that take a single unsigned long
    argument.

    This adds a new timer initialization API, which will ultimately replace
    the existing setup_timer(), setup_{deferrable,pinned,etc}_timer() family,
    named timer_setup() (to mirror hrtimer_setup(), making instances of its
    use much easier to grep for).

    In order to support the migration of existing timers into the new
    callback arguments, timer_setup() casts its arguments to the existing
    legacy types, and explicitly passes the timer pointer as the legacy
    data argument. Once all setup_*timer() callers have been replaced with
    timer_setup(), the casts can be removed, and the data argument can be
    dropped with the timer expiration code changed to just pass the timer
    to the callback directly.

    Since the regular pattern of using container_of() during local variable
    declaration repeats the need for the variable type declaration
    to be included, this adds a helper modeled after other from_*()
    helpers that wrap container_of(), named from_timer(). This helper uses
    typeof(*variable), removing the type redundancy and minimizing the need
    for line wraps in forthcoming conversions from "unsigned data long" to
    "struct timer_list *" in the timer callbacks:

    -void callback(unsigned long data)
    +void callback(struct timer_list *t)
    {
    - struct some_data_structure *local = (struct some_data_structure *)data;
    + struct some_data_structure *local = from_timer(local, t, timer);

    Finally, in order to support the handful of timer users that perform
    open-coded assignments of the .function (and .data) fields, provide
    cast macros (TIMER_FUNC_TYPE and TIMER_DATA_TYPE) that can be used
    temporarily. Once conversion has been completed, these can be globally
    trivially removed.

    Signed-off-by: Kees Cook
    Signed-off-by: Thomas Gleixner
    Link: https://lkml.kernel.org/r/20170928133817.GA113410@beast

    Kees Cook
     
  • From David Howells:

    "There are two sets of patches here:
    (1) A bunch of core keyrings bug fixes from Eric Biggers.

    (2) Fixing big_key to use safe crypto from Jason A. Donenfeld."

    James Morris
     

27 Sep, 2017

1 commit


26 Sep, 2017

5 commits

  • Pull block fixes from Jens Axboe:

    - Two sets of NVMe pull requests from Christoph:
    - Fixes for the Fibre Channel host/target to fix spec compliance
    - Allow a zero keep alive timeout
    - Make the debug printk for broken SGLs work better
    - Fix queue zeroing during initialization
    - Set of RDMA and FC fixes
    - Target div-by-zero fix

    - bsg double-free fix.

    - ndb unknown ioctl fix from Josef.

    - Buffered vs O_DIRECT page cache inconsistency fix. Has been floating
    around for a long time, well reviewed. From Lukas.

    - brd overflow fix from Mikulas.

    - Fix for a loop regression in this merge window, where using a union
    for two members of the loop_cmd turned out to be a really bad idea.
    From Omar.

    - Fix for an iostat regression fix in this series, using the wrong API
    to get at the block queue. From Shaohua.

    - Fix for a potential blktrace delection deadlock. From Waiman.

    * 'for-linus' of git://git.kernel.dk/linux-block: (30 commits)
    nvme-fcloop: fix port deletes and callbacks
    nvmet-fc: sync header templates with comments
    nvmet-fc: ensure target queue id within range.
    nvmet-fc: on port remove call put outside lock
    nvme-rdma: don't fully stop the controller in error recovery
    nvme-rdma: give up reconnect if state change fails
    nvme-core: Use nvme_wq to queue async events and fw activation
    nvme: fix sqhd reference when admin queue connect fails
    block: fix a crash caused by wrong API
    fs: Fix page cache inconsistency when mixing buffered and AIO DIO
    nvmet: implement valid sqhd values in completions
    nvme-fabrics: Allow 0 as KATO value
    nvme: allow timed-out ios to retry
    nvme: stop aer posting if controller state not live
    nvme-pci: Print invalid SGL only once
    nvme-pci: initialize queue memory before interrupts
    nvmet-fc: fix failing max io queue connections
    nvme-fc: use transport-specific sgl format
    nvme: add transport SGL definitions
    nvme.h: remove FC transport-specific error values
    ...

    Linus Torvalds
     
  • Add a sysfs file to one-time fail a specific state. This can be used
    to test the state rollback code paths.

    Something like this (hotplug-up.sh):

    #!/bin/bash

    echo 0 > /debug/sched_debug
    echo 1 > /debug/tracing/events/cpuhp/enable

    ALL_STATES=`cat /sys/devices/system/cpu/hotplug/states | cut -d':' -f1`
    STATES=${1:-$ALL_STATES}

    for state in $STATES
    do
    echo 0 > /sys/devices/system/cpu/cpu1/online
    echo 0 > /debug/tracing/trace
    echo Fail state: $state
    echo $state > /sys/devices/system/cpu/cpu1/hotplug/fail
    cat /sys/devices/system/cpu/cpu1/hotplug/fail
    echo 1 > /sys/devices/system/cpu/cpu1/online

    cat /debug/tracing/trace > hotfail-${state}.trace

    sleep 1
    done

    Can be used to test for all possible rollback (barring multi-instance)
    scenarios on CPU-up, CPU-down is a trivial modification of the above.

    Signed-off-by: Peter Zijlstra (Intel)
    Signed-off-by: Thomas Gleixner
    Cc: bigeasy@linutronix.de
    Cc: efault@gmx.de
    Cc: rostedt@goodmis.org
    Cc: max.byungchul.park@gmail.com
    Link: https://lkml.kernel.org/r/20170920170546.972581715@infradead.org

    Peter Zijlstra
     
  • Add a state diagram to clarify when which states are ran where.

    Signed-off-by: Peter Zijlstra (Intel)
    Signed-off-by: Thomas Gleixner
    Cc: bigeasy@linutronix.de
    Cc: efault@gmx.de
    Cc: rostedt@goodmis.org
    Cc: max.byungchul.park@gmail.com
    Link: https://lkml.kernel.org/r/20170920170546.661598270@infradead.org

    Peter Zijlstra
     
  • Comments were incorrect:
    - defer_rcv was in host port template. moved to target port template
    - Added Mandatory statements for target port template items

    Signed-off-by: James Smart
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    James Smart
     
  • If CONFIG_PCI=n and gcc (e.g. 4.1.2) decides not to inline
    get_pci_function_alias_group(), the build fails with:

    drivers/iommu/iommu.o: In function `get_pci_function_alias_group':
    iommu.c:(.text+0xfdc): undefined reference to `pci_acs_enabled'

    Due to the various dummies for PCI calls in the CONFIG_PCI=n case,
    pci_acs_enabled() never called, but not all versions of gcc are smart
    enough to realize that.

    While explicitly marking get_pci_function_alias_group() inline would fix
    the build, this would inflate the code for the CONFIG_PCI=y case, as
    get_pci_function_alias_group() is a not-so-small function called from two
    places.

    Hence fix the issue by introducing a dummy for pci_acs_enabled() instead.

    Fixes: 0ae349a0f33f ("iommu/qcom: Add qcom_iommu")
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Alex Williamson

    Geert Uytterhoeven
     

25 Sep, 2017

9 commits

  • The ib_mr->length represents the length of the MR in bytes as per
    the IBTA spec 1.3 section 11.2.10.3 (REGISTER PHYSICAL MEMORY REGION).

    Currently ib_mr->length field is defined as only 32-bits field.
    This might result into truncation and failed WRs of consumers who
    registers more than 4GB bytes memory regions and whose WRs accessing
    such MRs.

    This patch makes the length 64-bit to avoid such truncation.

    Cc: Sagi Grimberg
    Cc: Chuck Lever
    Cc: Faisal Latif
    Fixes: 4c67e2bfc8b7 ("IB/core: Introduce new fast registration API")
    Signed-off-by: Ilya Lesokhin
    Signed-off-by: Parav Pandit
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Doug Ledford

    Parav Pandit
     
  • The tag matching functionality is implemented by mlx5 driver
    by extending XRQ, however this internal kernel information was
    exposed to user space applications with *xrq* name instead of *tm*.

    This patch renames *xrq* to *tm* to handle that.

    Fixes: 8d50505ada72 ("IB/uverbs: Expose XRQ capabilities")
    Signed-off-by: Leon Romanovsky
    Reviewed-by: Yishai Hadas
    Signed-off-by: Doug Ledford

    Leon Romanovsky
     
  • Add transport SGL defintions from NVMe TP 4008, required for
    the final NVMe-FC standard.

    Signed-off-by: James Smart
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    James Smart
     
  • The NVM express group recinded the reserved range for the transport.
    Remove the FC-centric values that had been defined.

    Signed-off-by: James Smart
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    James Smart
     
  • The lockdep code had reported the following unsafe locking scenario:

    CPU0 CPU1
    ---- ----
    lock(s_active#228);
    lock(&bdev->bd_mutex/1);
    lock(s_active#228);
    lock(&bdev->bd_mutex);

    *** DEADLOCK ***

    The deadlock may happen when one task (CPU1) is trying to delete a
    partition in a block device and another task (CPU0) is accessing
    tracing sysfs file (e.g. /sys/block/dm-1/trace/act_mask) in that
    partition.

    The s_active isn't an actual lock. It is a reference count (kn->count)
    on the sysfs (kernfs) file. Removal of a sysfs file, however, require
    a wait until all the references are gone. The reference count is
    treated like a rwsem using lockdep instrumentation code.

    The fact that a thread is in the sysfs callback method or in the
    ioctl call means there is a reference to the opended sysfs or device
    file. That should prevent the underlying block structure from being
    removed.

    Instead of using bd_mutex in the block_device structure, a new
    blk_trace_mutex is now added to the request_queue structure to protect
    access to the blk_trace structure.

    Suggested-by: Christoph Hellwig
    Signed-off-by: Waiman Long
    Acked-by: Steven Rostedt (VMware)

    Fix typo in patch subject line, and prune a comment detailing how
    the code used to work.

    Signed-off-by: Jens Axboe

    Waiman Long
     
  • It was possible for an unprivileged user to create the user and user
    session keyrings for another user. For example:

    sudo -u '#3000' sh -c 'keyctl add keyring _uid.4000 "" @u
    keyctl add keyring _uid_ses.4000 "" @u
    sleep 15' &
    sleep 1
    sudo -u '#4000' keyctl describe @u
    sudo -u '#4000' keyctl describe @us

    This is problematic because these "fake" keyrings won't have the right
    permissions. In particular, the user who created them first will own
    them and will have full access to them via the possessor permissions,
    which can be used to compromise the security of a user's keys:

    -4: alswrv-----v------------ 3000 0 keyring: _uid.4000
    -5: alswrv-----v------------ 3000 0 keyring: _uid_ses.4000

    Fix it by marking user and user session keyrings with a flag
    KEY_FLAG_UID_KEYRING. Then, when searching for a user or user session
    keyring by name, skip all keyrings that don't have the flag set.

    Fixes: 69664cf16af4 ("keys: don't generate user and user session keyrings unless they're accessed")
    Cc: [v2.6.26+]
    Signed-off-by: Eric Biggers
    Signed-off-by: David Howells

    Eric Biggers
     
  • Pull DeviceTree fixes from Rob Herring:

    - fix build for !OF providing empty of_find_device_by_node

    - fix Abracon vendor prefix

    - sync dtx_diff include paths (again)

    - a stm32h7 clock binding doc fix

    * tag 'devicetree-fixes-for-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
    dt-bindings: clk: stm32h7: fix clock-cell size
    scripts/dtc: dtx_diff - 2nd update of include dts paths to match build
    dt-bindings: fix vendor prefix for Abracon
    of: provide inline helper for of_find_device_by_node

    Linus Torvalds
     
  • Pull irq fixes from Ingo Molnar:
    "Three irqchip driver fixes, and an affinity mask helper function bug
    fix affecting x86"

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    Revert "genirq: Restrict effective affinity to interrupts actually using it"
    irqchip.mips-gic: Fix shared interrupt mask writes
    irqchip/gic-v4: Fix building with ancient gcc
    irqchip/gic-v3: Iterate over possible CPUs by for_each_possible_cpu()

    Linus Torvalds
     
  • Pull address-limit checking fixes from Ingo Molnar:
    "This fixes a number of bugs in the address-limit (USER_DS) checks that
    got introduced in the merge window, (mostly) affecting the ARM and
    ARM64 platforms"

    * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    arm64/syscalls: Move address limit check in loop
    arm/syscalls: Optimize address limit check
    Revert "arm/syscalls: Check address limit on user-mode return"
    syscalls: Use CHECK_DATA_CORRUPTION for addr_limit_user_check

    Linus Torvalds
     

23 Sep, 2017

1 commit

  • Pull networking fixes from David Miller:

    1) Fix NAPI poll list corruption in enic driver, from Christian
    Lamparter.

    2) Fix route use after free, from Eric Dumazet.

    3) Fix regression in reuseaddr handling, from Josef Bacik.

    4) Assert the size of control messages in compat handling since we copy
    it in from userspace twice. From Meng Xu.

    5) SMC layer bug fixes (missing RCU locking, bad refcounting, etc.)
    from Ursula Braun.

    6) Fix races in AF_PACKET fanout handling, from Willem de Bruijn.

    7) Don't use ARRAY_SIZE on spinlock array which might have zero
    entries, from Geert Uytterhoeven.

    8) Fix miscomputation of checksum in ipv6 udp code, from Subash Abhinov
    Kasiviswanathan.

    9) Push the ipv6 header properly in ipv6 GRE tunnel driver, from Xin
    Long.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (75 commits)
    inet: fix improper empty comparison
    net: use inet6_rcv_saddr to compare sockets
    net: set tb->fast_sk_family
    net: orphan frags on stand-alone ptype in dev_queue_xmit_nit
    MAINTAINERS: update git tree locations for ieee802154 subsystem
    net: prevent dst uses after free
    net: phy: Fix truncation of large IRQ numbers in phy_attached_print()
    net/smc: no close wait in case of process shut down
    net/smc: introduce a delay
    net/smc: terminate link group if out-of-sync is received
    net/smc: longer delay for client link group removal
    net/smc: adapt send request completion notification
    net/smc: adjust net_device refcount
    net/smc: take RCU read lock for routing cache lookup
    net/smc: add receive timeout check
    net/smc: add missing dev_put
    net: stmmac: Cocci spatch "of_table"
    lan78xx: Use default values loaded from EEPROM/OTP after reset
    lan78xx: Allow EEPROM write for less than MAX_EEPROM_SIZE
    lan78xx: Fix for eeprom read/write when device auto suspend
    ...

    Linus Torvalds