20 Jun, 2015

1 commit

  • wake_futex_pi() wakes the task before releasing the hash bucket lock
    (HB). The first thing the woken up task usually does is to acquire the
    lock which requires the HB lock. On SMP Systems this leads to blocking
    on the HB lock which is released by the owner shortly after.
    This patch rearranges the unlock path by first releasing the HB lock and
    then waking up the task.

    [ tglx: Fixed up the rtmutex unlock path ]

    Originally-from: Thomas Gleixner
    Signed-off-by: Sebastian Andrzej Siewior
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: Mike Galbraith
    Cc: Paul E. McKenney
    Cc: Davidlohr Bueso
    Link: http://lkml.kernel.org/r/20150617083350.GA2433@linutronix.de
    Signed-off-by: Thomas Gleixner

    Sebastian Andrzej Siewior
     

19 Jun, 2015

1 commit

  • Mark the task for later wakeup after the wait_lock has been released.
    This way, once the next task is awoken, it will have a better chance
    to of finding the wait_lock free when continuing executing in
    __rt_mutex_slowlock() when trying to acquire the rtmutex, calling
    try_to_take_rt_mutex(). Upon contended scenarios, other tasks attempting
    take the lock may acquire it first, right after the wait_lock is released,
    but (a) this can also occur with the current code, as it relies on the
    spinlock fairness, and (b) we are dealing with the top-waiter anyway,
    so it will always take the lock next.

    Signed-off-by: Davidlohr Bueso
    Cc: Steven Rostedt
    Cc: Mike Galbraith
    Cc: Paul E. McKenney
    Cc: Sebastian Andrzej Siewior
    Cc: Davidlohr Bueso
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1432056298-18738-2-git-send-email-dave@stgolabs.net
    Signed-off-by: Thomas Gleixner

    Davidlohr Bueso
     

07 Jun, 2015

6 commits

  • Changeset a43455a1d572 ("sched/numa: Ensure task_numa_migrate() checks
    the preferred node") fixes an issue where workloads would never
    converge on a fully loaded (or overloaded) system.

    However, it introduces a regression on less than fully loaded systems,
    where workloads converge on a few NUMA nodes, instead of properly
    staying spread out across the whole system. This leads to a reduction
    in available memory bandwidth, and usable CPU cache, with predictable
    performance problems.

    The root cause appears to be an interaction between the load balancer
    and NUMA balancing, where the short term load represented by the load
    balancer differs from the long term load the NUMA balancing code would
    like to base its decisions on.

    Simply reverting a43455a1d572 would re-introduce the non-convergence
    of workloads on fully loaded systems, so that is not a good option. As
    an aside, the check done before a43455a1d572 only applied to a task's
    preferred node, not to other candidate nodes in the system, so the
    converge-on-too-few-nodes problem still happens, just to a lesser
    degree.

    Instead, try to compensate for the impedance mismatch between the load
    balancer and NUMA balancing by only ever considering a lesser loaded
    node as a destination for NUMA balancing, regardless of whether the
    task is trying to move to the preferred node, or to another node.

    This patch also addresses the issue that a system with a single
    runnable thread would never migrate that thread to near its memory,
    introduced by 095bebf61a46 ("sched/numa: Do not move past the balance
    point if unbalanced").

    A test where the main thread creates a large memory area, and spawns a
    worker thread to iterate over the memory (placed on another node by
    select_task_rq_fair), after which the main thread goes to sleep and
    waits for the worker thread to loop over all the memory now sees the
    worker thread migrated to where the memory is, instead of having all
    the memory migrated over like before.

    Jirka has run a number of performance tests on several systems: single
    instance SpecJBB 2005 performance is 7-15% higher on a 4 node system,
    with higher gains on systems with more cores per socket.
    Multi-instance SpecJBB 2005 (one per node), linpack, and stream see
    little or no changes with the revert of 095bebf61a46 and this patch.

    Reported-by: Artem Bityutski
    Reported-by: Jirka Hladky
    Tested-by: Jirka Hladky
    Tested-by: Artem Bityutskiy
    Signed-off-by: Rik van Riel
    Signed-off-by: Peter Zijlstra (Intel)
    Acked-by: Mel Gorman
    Cc: Andrew Morton
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Srikar Dronamraju
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/20150528095249.3083ade0@annuminas.surriel.com
    Signed-off-by: Ingo Molnar

    Rik van Riel
     
  • Commit 095bebf61a46 ("sched/numa: Do not move past the balance point
    if unbalanced") broke convergence of workloads with just one runnable
    thread, by making it impossible for the one runnable thread on the
    system to move from one NUMA node to another.

    Instead, the thread would remain where it was, and pull all the memory
    across to its location, which is much slower than just migrating the
    thread to where the memory is.

    The next patch has a better fix for the issue that 095bebf61a46 tried
    to address.

    Reported-by: Jirka Hladky
    Signed-off-by: Rik van Riel
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Andrew Morton
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: dedekind1@gmail.com
    Cc: mgorman@suse.de
    Link: http://lkml.kernel.org/r/1432753468-7785-2-git-send-email-riel@redhat.com
    Signed-off-by: Ingo Molnar

    Rik van Riel
     
  • The optimized task selection logic optimistically selects a new task
    to run without first doing a full put_prev_task(). This is so that we
    can avoid a put/set on the common ancestors of the old and new task.

    Similarly, we should only call check_cfs_rq_runtime() to throttle
    eligible groups if they're part of the common ancestry, otherwise it
    is possible to end up with no eligible task in the simple task
    selection.

    Imagine:
    /root
    /prev /next
    /A /B

    If our optimistic selection ends up throttling /next, we goto simple
    and our put_prev_task() ends up throttling /prev, after which we're
    going to bug out in set_next_entity() because there aren't any tasks
    left.

    Avoid this scenario by only throttling common ancestors.

    Reported-by: Mohammed Naser
    Reported-by: Konstantin Khlebnikov
    Signed-off-by: Ben Segall
    [ munged Changelog ]
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Andrew Morton
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Roman Gushchin
    Cc: Thomas Gleixner
    Cc: pjt@google.com
    Fixes: 678d5718d8d0 ("sched/fair: Optimize cgroup pick_next_task_fair()")
    Link: http://lkml.kernel.org/r/xm26wq1oswoq.fsf@sword-of-the-dawn.mtv.corp.google.com
    Signed-off-by: Ingo Molnar

    Ben Segall
     
  • preempt.h has two seperate "#ifdef CONFIG_PREEMPT" sections: one to
    define preempt_enable() and another to define preempt_enable_notrace().

    Lets gather both.

    Signed-off-by: Frederic Weisbecker
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Andrew Morton
    Cc: Fengguang Wu
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/1433432349-1021-4-git-send-email-fweisbec@gmail.com
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     
  • preempt_schedule_context() is a tracing safe preemption point but it's
    only used when CONFIG_CONTEXT_TRACKING=y. Other configs have tracing
    recursion issues since commit:

    b30f0e3ffedf ("sched/preempt: Optimize preemption operations on __schedule() callers")

    introduced function based preemp_count_*() ops.

    Lets make it available on all configs and give it a more appropriate
    name for its new position.

    Reported-by: Fengguang Wu
    Signed-off-by: Frederic Weisbecker
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Andrew Morton
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/1433432349-1021-3-git-send-email-fweisbec@gmail.com
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     
  • Since function tracing disables preemption, it needs a safe preemption
    point to use when preemption is re-enabled without worrying about tracing
    recursion. Ie: to avoid tracing recursion, that preemption point can't
    be traced (use of notrace qualifier) and it can't call any traceable
    function before that preemption point disables preemption itself, which
    disarms the recursion.

    preempt_schedule() was fine until commit:

    b30f0e3ffedf ("sched/preempt: Optimize preemption operations on __schedule() callers")

    because PREEMPT_ACTIVE (which has the property to disable preemption
    and this disarm tracing preemption recursion) was set before calling
    any further function.

    But that commit introduced the use of preempt_count_add/sub() functions
    to set PREEMPT_ACTIVE and because these functions are called before
    preemption gets a chance to be disabled, we have a tracing recursion.

    preempt_schedule_context() is one of the possible preemption functions
    used by tracing. Its special purpose is to avoid tracing recursion
    against context tracking. Lets enhance this function to become more
    generally tracing safe by disabling preemption with raw accessors, such
    that no function is called before preemption gets disabled and disarm
    the tracing recursion.

    This function is going to become the specific tracing-safe preemption
    point in further commit.

    Reported-by: Fengguang Wu
    Signed-off-by: Frederic Weisbecker
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Andrew Morton
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/1433432349-1021-2-git-send-email-fweisbec@gmail.com
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     

02 Jun, 2015

12 commits

  • Conflicts:
    arch/sparc/include/asm/topology_64.h

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Pull networking fixes from David Miller:

    1) Various VTI tunnel (mark handling, PMTU) bug fixes from Alexander
    Duyck and Steffen Klassert.

    2) Revert ethtool PHY query change, it wasn't correct. The PHY address
    selected by the driver running the PHY to MAC connection decides
    what PHY address GET ethtool operations return information from.

    3) Fix handling of sequence number bits for encryption IV generation in
    ESP driver, from Herbert Xu.

    4) UDP can return -EAGAIN when we hit a bad checksum on receive, even
    when there are other packets in the receive queue which is wrong.
    Just respect the error returned from the generic socket recv
    datagram helper. From Eric Dumazet.

    5) Fix BNA driver firmware loading on big-endian systems, from Ivan
    Vecera.

    6) Fix regression in that we were inheriting the congestion control of
    the listening socket for new connections, the intended behavior
    always was to use the default in this case. From Neal Cardwell.

    7) Fix NULL deref in brcmfmac driver, from Arend van Spriel.

    8) OTP parsing fix in iwlwifi from Liad Kaufman.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (26 commits)
    vti6: Add pmtu handling to vti6_xmit.
    Revert "net: core: 'ethtool' issue with querying phy settings"
    bnx2x: Move statistics implementation into semaphores
    xen: netback: read hotplug script once at start of day.
    xen: netback: fix printf format string warning
    Revert "netfilter: ensure number of counters is >0 in do_replace()"
    net: dsa: Properly propagate errors from dsa_switch_setup_one
    tcp: fix child sockets to use system default congestion control if not set
    udp: fix behavior of wrong checksums
    sfc: free multiple Rx buffers when required
    bna: fix soft lock-up during firmware initialization failure
    bna: remove unreasonable iocpf timer start
    bna: fix firmware loading on big-endian machines
    bridge: fix br_multicast_query_expired() bug
    via-rhine: Resigning as maintainer
    brcmfmac: avoid null pointer access when brcmf_msgbuf_get_pktid() fails
    mac80211: Fix mac80211.h docbook comments
    iwlwifi: nvm: fix otp parsing in 8000 hw family
    iwlwifi: pcie: fix tracking of cmd_in_flight
    ip_vti/ip6_vti: Preserve skb->mark after rcv_cb call
    ...

    Linus Torvalds
     
  • Pull Sparc fixes from David Miller:

    1) Setup the core/threads/sockets bitmaps correctly so that 'lscpus'
    and friends operate properly. Frtom Chris Hyser.

    2) The bit that normally means "Cached Virtually" on sun4v systems,
    actually changes meaning in M7 and later chips. Fix from Khalid
    Aziz.

    3) One some PCI-E systems we need to probe different OF properties to
    fill in the PCI slot information properly, from Eric Snowberg.

    4) Kill an extraneous memset after kzalloc(), from Christophe Jaillet.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    sparc: Resolve conflict between sparc v9 and M7 on usage of bit 9 of TTE
    sparc64: pci slots information is not populated in sysfs
    sparc: kernel: GRPCI2: Remove a useless memset
    sparc64: Setup sysfs to mark LDOM sockets, cores and threads correctly

    Linus Torvalds
     
  • Pull virtio fix from Michael Tsirkin:
    "Last-minute virtio fix for 4.1

    This tweaks an exported user-space header to fix build breakage for
    userspace using it"

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
    include/uapi/linux/virtio_balloon.h: include linux/virtio_types.h

    Linus Torvalds
     
  • Pablo Neira Ayuso says:

    ====================
    Netfilter fix for net

    The following patch reverts the ebtables chunk that enforces counters that was
    introduced in the recently applied d26e2c9ffa38 ('Revert "netfilter: ensure
    number of counters is >0 in do_replace()"') since this breaks ebtables.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • …m/linux/kernel/git/kvalo/wireless-drivers

    Kalle Valo says:

    ====================
    iwlwifi:

    * fix OTP parsing 8260
    * fix powersave handling for 8260

    brcmfmac:

    * fix null pointer crash
    ====================

    Signed-off-by: David S. Miller <davem@davemloft.net>

    David S. Miller
     
  • We currently rely on the PMTU discovery of xfrm.
    However if a packet is localy sent, the PMTU mechanism
    of xfrm tries to to local socket notification what
    might not work for applications like ping that don't
    check for this. So add pmtu handling to vti6_xmit to
    report MTU changes immediately.

    Signed-off-by: Steffen Klassert
    Signed-off-by: Alexander Duyck
    Signed-off-by: David S. Miller

    Steffen Klassert
     
  • This reverts commit f96dee13b8e10f00840124255bed1d8b4c6afd6f.

    It isn't right, ethtool is meant to manage one PHY instance
    per netdevice at a time, and this is selected by the SET
    command. Therefore by definition the GET command must only
    return the settings for the configured and selected PHY.

    Reported-by: Ben Hutchings
    Signed-off-by: David S. Miller

    David S. Miller
     
  • Commit dff173de84958 ("bnx2x: Fix statistics locking scheme") changed the
    bnx2x locking around statistics state into using a mutex - but the lock
    is being accessed via a timer which is forbidden.

    [If compiled with CONFIG_DEBUG_MUTEXES, logs show a warning about
    accessing the mutex in interrupt context]

    This moves the implementation into using a semaphore [with size '1']
    instead.

    Signed-off-by: Yuval Mintz
    Signed-off-by: Ariel Elior
    Signed-off-by: David S. Miller

    Yuval Mintz
     
  • When we come to tear things down in netback_remove() and generate the
    uevent it is possible that the xenstore directory has already been
    removed (details below).

    In such cases netback_uevent() won't be able to read the hotplug
    script and will write a xenstore error node.

    A recent change to the hypervisor exposed this race such that we now
    sometimes lose it (where apparently we didn't ever before).

    Instead read the hotplug script configuration during setup and use it
    for the lifetime of the backend device.

    The apparently more obvious fix of moving the transition to
    state=Closed in netback_remove() to after the uevent does not work
    because it is possible that we are already in state=Closed (in
    reaction to the guest having disconnected as it shutdown). Being
    already in Closed means the toolstack is at liberty to start tearing
    down the xenstore directories. In principal it might be possible to
    arrange to unregister the device sooner (e.g on transition to Closing)
    such that xenstore would still be there but this state machine is
    fragile and prone to anger...

    A modern Xen system only relies on the hotplug uevent for driver
    domains, when the backend is in the same domain as the toolstack it
    will run the necessary setup/teardown directly in the correct sequence
    wrt xenstore changes.

    Signed-off-by: Ian Campbell
    Acked-by: Wei Liu
    Signed-off-by: David S. Miller

    Ian Campbell
     
  • drivers/net/xen-netback/netback.c: In function ‘xenvif_tx_build_gops’:
    drivers/net/xen-netback/netback.c:1253:8: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘int’ [-Wformat=]
    (txreq.offset&~PAGE_MASK) + txreq.size);
    ^

    PAGE_MASK's type can vary by arch, so a cast is needed.

    Signed-off-by: Ian Campbell
    ----
    v2: Cast to unsigned long, since PAGE_MASK can vary by arch.
    Acked-by: Wei Liu
    Signed-off-by: David S. Miller

    Ian Campbell
     
  • This partially reverts commit 1086bbe97a07 ("netfilter: ensure number of
    counters is >0 in do_replace()") in net/bridge/netfilter/ebtables.c.

    Setting rules with ebtables does not work any more with 1086bbe97a07 place.

    There is an error message and no rules set in the end.

    e.g.

    ~# ebtables -t nat -A POSTROUTING --src 12:34:56:78:9a:bc -j DROP
    Unable to update the kernel. Two possible causes:
    1. Multiple ebtables programs were executing simultaneously. The ebtables
    userspace tool doesn't by default support multiple ebtables programs
    running

    Reverting the ebtables part of 1086bbe97a07 makes this work again.

    Signed-off-by: Bernhard Thaler
    Signed-off-by: Pablo Neira Ayuso

    Bernhard Thaler
     

01 Jun, 2015

15 commits

  • Fixes userspace compilation error:

    error: unknown type name ‘__virtio16’
    __virtio16 tag;

    Signed-off-by: Mikko Rapeli

    Signed-off-by: Michael S. Tsirkin

    Mikko Rapeli
     
  • sparc: Resolve conflict between sparc v9 and M7 on usage of bit 9 of TTE

    Bit 9 of TTE is CV (Cacheable in V-cache) on sparc v9 processor while
    the same bit 9 is MCDE (Memory Corruption Detection Enable) on M7
    processor. This creates a conflicting usage of the same bit. Kernel
    sets TTE.cv bit on all pages for sun4v architecture which works well
    for sparc v9 but enables memory corruption detection on M7 processor
    which is not the intent. This patch adds code to determine if kernel
    is running on M7 processor and takes steps to not enable memory
    corruption detection in TTE erroneously.

    Signed-off-by: Khalid Aziz
    Signed-off-by: David S. Miller

    Khalid Aziz
     
  • Add PCI slot numbers within sysfs for PCIe hardware. Larger
    PCIe systems with nested PCI bridges and slots further
    down on these bridges were not being populated within sysfs.
    This will add ACPI style PCI slot numbers for these systems
    since the OF 'slot-names' information is not available on
    all PCIe platforms.

    Signed-off-by: Eric Snowberg
    Reviewed-by: Bob Picco
    Signed-off-by: David S. Miller

    Eric Snowberg
     
  • grpci2priv is allocated using kzalloc, so there is no need to memset it.

    Signed-off-by: Christophe Jaillet
    Signed-off-by: David S. Miller

    Christophe Jaillet
     
  • While shuffling some code around, dsa_switch_setup_one() was introduced,
    and it was modified to return either an error code using ERR_PTR() or a
    NULL pointer when running out of memory or failing to setup a switch.

    This is a problem for its caler: dsa_switch_setup() which uses IS_ERR()
    and expects to find an error code, not a NULL pointer, so we still try
    to proceed with dsa_switch_setup() and operate on invalid memory
    addresses. This can be easily reproduced by having e.g: the bcm_sf2
    driver built-in, but having no such switch, such that drv->setup will
    fail.

    Fix this by using PTR_ERR() consistently which is both more informative
    and avoids for the caller to use IS_ERR_OR_NULL().

    Fixes: df197195a5248 ("net: dsa: split dsa_switch_setup into two functions")
    Reported-by: Andrew Lunn
    Signed-off-by: Florian Fainelli
    Tested-by: Andrew Lunn
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • Linux 3.17 and earlier are explicitly engineered so that if the app
    doesn't specifically request a CC module on a listener before the SYN
    arrives, then the child gets the system default CC when the connection
    is established. See tcp_init_congestion_control() in 3.17 or earlier,
    which says "if no choice made yet assign the current value set as
    default". The change ("net: tcp: assign tcp cong_ops when tcp sk is
    created") altered these semantics, so that children got their parent
    listener's congestion control even if the system default had changed
    after the listener was created.

    This commit returns to those original semantics from 3.17 and earlier,
    since they are the original semantics from 2007 in 4d4d3d1e8 ("[TCP]:
    Congestion control initialization."), and some Linux congestion
    control workflows depend on that.

    In summary, if a listener socket specifically sets TCP_CONGESTION to
    "x", or the route locks the CC module to "x", then the child gets
    "x". Otherwise the child gets current system default from
    net.ipv4.tcp_congestion_control. That's the behavior in 3.17 and
    earlier, and this commit restores that.

    Fixes: 55d8694fa82c ("net: tcp: assign tcp cong_ops when tcp sk is created")
    Cc: Florian Westphal
    Cc: Daniel Borkmann
    Cc: Glenn Judd
    Cc: Stephen Hemminger
    Signed-off-by: Neal Cardwell
    Signed-off-by: Eric Dumazet
    Signed-off-by: Yuchung Cheng
    Acked-by: Daniel Borkmann
    Signed-off-by: David S. Miller

    Neal Cardwell
     
  • We have two problems in UDP stack related to bogus checksums :

    1) We return -EAGAIN to application even if receive queue is not empty.
    This breaks applications using edge trigger epoll()

    2) Under UDP flood, we can loop forever without yielding to other
    processes, potentially hanging the host, especially on non SMP.

    This patch is an attempt to make things better.

    We might in the future add extra support for rt applications
    wanting to better control time spent doing a recv() in a hostile
    environment. For example we could validate checksums before queuing
    packets in socket receive queue.

    Signed-off-by: Eric Dumazet
    Cc: Willem de Bruijn
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Linus Torvalds
     
  • When Rx packet data must be dropped, all the buffers
    associated with that Rx packet must be freed. Extend
    and rename efx_free_rx_buffer() to efx_free_rx_buffers()
    and loop through all the fragments.
    By doing so this patch fixes a possible memory leak.

    Signed-off-by: Shradha Shah
    Signed-off-by: David S. Miller

    Daniel Pieczko
     
  • Pull vfs fix from Al Viro:
    "Off-by-one in d_walk()/__dentry_kill() race fix.

    It's very hard to hit; possible in the same conditions as the original
    bug, except that you need the skipped branch to contain all the
    remaining evictables, so that the d_walk()-calling loop in
    d_invalidate() decides there's nothing more to do and doesn't go for
    another pass - otherwise that next pass will sweep the sucker.

    So it's not too urgent, but seeing that the fix is obvious and the
    original commit has spread into all -stable branches..."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    d_walk() might skip too much

    Linus Torvalds
     
  • Pull ARM fixes from Russell King:
    "Three fixes this time around:

    - fix a memory leak which occurs when probing performance monitoring
    unit interrupts

    - fix handling of non-PMD aligned end of RAM causing boot failures

    - fix missing syscall trace exit path with syscall tracing enabled
    causing a kernel oops in the audit code"

    * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
    ARM: 8357/1: perf: fix memory leak when probing PMU PPIs
    ARM: fix missing syscall trace exit
    ARM: 8356/1: mm: handle non-pmd-aligned end of RAM

    Linus Torvalds
     
  • Pull MIPS fixes from Ralf Baechle:
    "MIPS fixes for 4.1 all across the tree"

    * 'upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/ralf/linux:
    MIPS: strnlen_user.S: Fix a CPU_DADDI_WORKAROUNDS regression
    MIPS: BMIPS: Fix bmips_wr_vec()
    MIPS: ath79: fix build problem if CONFIG_BLK_DEV_INITRD is not set
    MIPS: Fuloong 2E: Replace CONFIG_USB_ISP1760_HCD by CONFIG_USB_ISP1760
    MIPS: irq: Use DECLARE_BITMAP
    ttyFDC: Fix to use native endian MMIO reads
    MIPS: Fix CDMM to use native endian MMIO reads

    Linus Torvalds
     
  • Pull turbostat tool fixes from Len Brown:
    "Just one minor kernel dependency in this batch -- added a #define to
    msr-index.h"

    * 'turbostat' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
    tools/power turbostat: update version number to 4.7
    tools/power turbostat: allow running without cpu0
    tools/power turbostat: correctly decode of ENERGY_PERFORMANCE_BIAS
    tools/power turbostat: enable turbostat to support Knights Landing (KNL)
    tools/power turbostat: correctly display more than 2 threads/core

    Linus Torvalds
     
  • Pull SCSI target fixes from Nicholas Bellinger:
    "These are mostly minor fixes, with the exception of the following that
    address fall-out from recent v4.1-rc1 changes:

    - regression fix related to the big fabric API registration changes
    and configfs_depend_item() usage, that required cherry-picking one
    of HCH's patches from for-next to address the issue for v4.1 code.

    - remaining TCM-USER -v2 related changes to enforce full CDB
    passthrough from Andy + Ilias.

    Also included is a target_core_pscsi driver fix from Andy that
    addresses a long standing issue with a Scsi_Host reference being
    leaked on PSCSI device shutdown"

    * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
    iser-target: Fix error path in isert_create_pi_ctx()
    target: Use a PASSTHROUGH flag instead of transport_types
    target: Move passthrough CDB parsing into a common function
    target/user: Only support full command pass-through
    target/user: Update example code for new ABI requirements
    target/pscsi: Don't leak scsi_host if hba is VIRTUAL_HOST
    target: Fix se_tpg_tfo->tf_subsys regression + remove tf_subsystem
    target: Drop signal_pending checks after interruptible lock acquire
    target: Add missing parentheses
    target: Fix bidi command handling
    target/user: Disallow full passthrough (pass_level=0)
    ISCSI: fix minor memory leak

    Linus Torvalds
     
  • …l/git/groeck/linux-staging

    Pull hwmon fixes from Guenter Roeck:
    "Some late hwmon patches, all headed for -stable

    - fix sysfs attribute initialization in nct6775 and nct6683 drivers

    - do not attempt to auto-detect tmp435 on I2C address 0x37

    - ensure iio channel is of type IIO_VOLTAGE in ntc_thermistor driver"

    * tag 'hwmon-for-linus-v4.1-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
    hwmon: (nct6683) Add missing sysfs attribute initialization
    hwmon: (nct6775) Add missing sysfs attribute initialization
    hwmon: (tmp401) Do not auto-detect chip on I2C address 0x37
    hwmon: (ntc_thermistor) Ensure iio channel is of type IIO_VOLTAGE

    Linus Torvalds
     

31 May, 2015

5 commits

  • Ivan Vecera says:

    ====================
    bna: misc bugfixes

    These patches fix several bugs found during device initialization debugging.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Bug in the driver initialization causes soft-lockup if firmware
    initialization timeout is reached. Polling function bfa_ioc_poll_fwinit()
    incorrectly calls bfa_nw_iocpf_timeout() when the timeout is reached.
    The problem is that bfa_nw_iocpf_timeout() calls again
    bfa_ioc_poll_fwinit()... etc. The bfa_ioc_poll_fwinit() should directly
    send timeout event for iocpf and the same should be done if firmware
    download into HW fails.

    Cc: Rasesh Mody
    Signed-off-by: Ivan Vecera
    Signed-off-by: David S. Miller

    Ivan Vecera
     
  • Driver starts iocpf timer prior bnad_ioceth_enable() call and this is
    unreasonable. This piece of code probably originates from Brocade/Qlogic
    out-of-box driver during initial import into upstream. This driver uses
    only one timer and queue to implement multiple timers and this timer is
    started at this place. The upstream driver uses multiple timers instead
    of this.

    Cc: Rasesh Mody
    Signed-off-by: Ivan Vecera
    Signed-off-by: David S. Miller

    Ivan Vecera
     
  • Firmware required by bna is stored in appropriate files as sequence
    of LE32 integers. After loading by request_firmware() they need to be
    byte-swapped on big-endian arches. Without this conversion the NIC
    is unusable on big-endian machines.

    Cc: Rasesh Mody
    Signed-off-by: Ivan Vecera
    Signed-off-by: David S. Miller

    Ivan Vecera
     
  • …kernel/git/jberg/mac80211

    Johannes Berg says:

    ====================
    This just has a single docbook build fix. In my confusion
    I'd already sent the same fix for -next, but Ben Hutchings
    noted it's necessary in 4.1.
    ====================

    Signed-off-by: David S. Miller <davem@davemloft.net>

    David S. Miller