1. 04 May, 2015 7 commits
    • Thomas Graf's avatar
      f54e84b6
    • David S. Miller's avatar
      Merge branch 'eth_type_trans' · 7a852021
      David S. Miller authored
      Alexander Duyck says:
      
      ====================
      A few minor clean-ups to eth_type_trans
      
      This series addresses a few minor issues I found in eth_type_trans that
      that allow us to gain back something like 3 or more cycles per packet.
      
      The first change is to drop the byte swap since it isn't necessary.  On x86
      we could just check the first byte and compare that against the upper 8
      bits of the Ethertype to determine if we are dealing with a size value or
      not.
      
      The second makes it so that the value we read in to test for multicast can
      be used for the address comparison.  This allows us to avoid a second read
      of the destination address.
      
      The final change is to avoid some unneeded instructions in computing the
      Ethernet header pointer.  When we start the call the Ethernet header is at
      skb->data, so we just use that rather than computing mac_header, and then
      adding that back to skb->head.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7a852021
    • Alexander Duyck's avatar
      etherdev: Use skb->data to retrieve Ethernet header instead of eth_hdr · 610986e7
      Alexander Duyck authored
      Avoid recomputing the Ethernet header location and instead just use the
      pointer provided by skb->data.  The problem with using eth_hdr is that the
      compiler wasn't smart enough to realize that skb->head + skb->mac_header
      was the same thing as skb->data before it added ETH_HLEN.  By just caching
      it off before calling skb_pull_inline we can avoid a few unnecessary
      instructions.
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      610986e7
    • Alexander Duyck's avatar
      etherdev: Process is_multicast_ether_addr at same size as other operations · d54385ce
      Alexander Duyck authored
      This change makes it so that we process the address in
      is_multicast_ether_addr at the same size as the other calls.  This allows
      us to avoid duplicate reads when used with other calls such as
      is_zero_ether_addr or eth_addr_copy.  In addition I have added a 64 bit
      version of the function so in eth_type_trans we can process the destination
      address as a 64 bit value throughout.
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d54385ce
    • Alexander Duyck's avatar
      etherdev: Avoid unnecessary byte swap in check for Ethertype · 849b920e
      Alexander Duyck authored
      This change takes advantage of the fact that ETH_P_802_3_MIN is aligned to
      512 so as a result we can actually ignore the lower 8b when comparing the
      Ethertype to ETH_P_802_3_MIN.  This allows us to avoid a byte swap by simply
      masking the value and comparing it to the byte swapped value for
      ETH_P_802_3_MIN.
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      849b920e
    • Tom Herbert's avatar
      ipv6: Flow label state ranges · 82a584b7
      Tom Herbert authored
      This patch divides the IPv6 flow label space into two ranges:
      0-7ffff is reserved for flow label manager, 80000-fffff will be
      used for creating auto flow labels (per RFC6438). This only affects how
      labels are set on transmit, it does not affect receive. This range split
      can be disbaled by systcl.
      
      Background:
      
      IPv6 flow labels have been an unmitigated disappointment thus far
      in the lifetime of IPv6. Support in HW devices to use them for ECMP
      is lacking, and OSes don't turn them on by default. If we had these
      we could get much better hashing in IPv6 networks without resorting
      to DPI, possibly eliminating some of the motivations to to define new
      encaps in UDP just for getting ECMP.
      
      Unfortunately, the initial specfications of IPv6 did not clarify
      how they are to be used. There has always been a vague concept that
      these can be used for ECMP, flow hashing, etc. and we do now have a
      good standard how to this in RFC6438. The problem is that flow labels
      can be either stateful or stateless (as in RFC6438), and we are
      presented with the possibility that a stateless label may collide
      with a stateful one.  Attempts to split the flow label space were
      rejected in IETF. When we added support in Linux for RFC6438, we
      could not turn on flow labels by default due to this conflict.
      
      This patch splits the flow label space and should give us
      a path to enabling auto flow labels by default for all IPv6 packets.
      This is an API change so we need to consider compatibility with
      existing deployment. The stateful range is chosen to be the lower
      values in hopes that most uses would have chosen small numbers.
      
      Once we resolve the stateless/stateful issue, we can proceed to
      look at enabling RFC6438 flow labels by default (starting with
      scaled testing).
      Signed-off-by: default avatarTom Herbert <tom@herbertland.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      82a584b7
    • Martin KaFai Lau's avatar
      ipv6: Check RTF_LOCAL on rt->rt6i_flags instead of rt->dst.flags · 7035870d
      Martin KaFai Lau authored
      In my earlier commit:
      653437d0 ("ipv6: Stop /128 route from disappearing after pmtu update"),
      there was a horrible typo.  Instead of checking RTF_LOCAL on
      rt->rt6i_flags, it was checked on rt->dst.flags.  This patch fixes
      it.
      Signed-off-by: default avatarMartin KaFai Lau <kafai@fb.com>
      Cc: Hajime Tazaki <tazaki@sfc.wide.ad.jp>
      Cc: David S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7035870d
  2. 03 May, 2015 3 commits
  3. 02 May, 2015 12 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 6c3c1eb3
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Receive packet length needs to be adjust by 2 on RX to accomodate
          the two padding bytes in altera_tse driver.  From Vlastimil Setka.
      
       2) If rx frame is dropped due to out of memory in macb driver, we leave
          the receive ring descriptors in an undefined state.  From Punnaiah
          Choudary Kalluri
      
       3) Some netlink subsystems erroneously signal NLM_F_MULTI.  That is
          only for dumps.  Fix from Nicolas Dichtel.
      
       4) Fix mis-use of raw rt->rt_pmtu value in ipv4, one must always go via
          the ipv4_mtu() helper.  From Herbert Xu.
      
       5) Fix null deref in bridge netfilter, and miscalculated lengths in
          jump/goto nf_tables verdicts.  From Florian Westphal.
      
       6) Unhash ping sockets properly.
      
       7) Software implementation of BPF divide did 64/32 rather than 64/64
          bit divide.  The JITs got it right.  Fix from Alexei Starovoitov.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (30 commits)
        ipv4: Missing sk_nulls_node_init() in ping_unhash().
        net: fec: Fix RGMII-ID mode
        net/mlx4_en: Schedule napi when RX buffers allocation fails
        netxen_nic: use spin_[un]lock_bh around tx_clean_lock
        net/mlx4_core: Fix unaligned accesses
        mlx4_en: Use correct loop cursor in error path.
        cxgb4: Fix MC1 memory offset calculation
        bnx2x: Delay during kdump load
        net: Fix Kernel Panic in bonding driver debugfs file: rlb_hash_table
        net: dsa: Fix scope of eeprom-length property
        net: macb: Fix race condition in driver when Rx frame is dropped
        hv_netvsc: Fix a bug in netvsc_start_xmit()
        altera_tse: Correct rx packet length
        mlx4: Fix tx ring affinity_mask creation
        tipc: fix problem with parallel link synchronization mechanism
        tipc: remove wrong use of NLM_F_MULTI
        bridge/nl: remove wrong use of NLM_F_MULTI
        bridge/mdb: remove wrong use of NLM_F_MULTI
        net: sched: act_connmark: don't zap skb->nfct
        trivial: net: systemport: bcmsysport.h: fix 0x0x prefix
        ...
      6c3c1eb3
    • Stefan Hajnoczi's avatar
      virtio: fix typo in vring_need_event() doc comment · e412d3a3
      Stefan Hajnoczi authored
      Here the "other side" refers to the guest or host.
      Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e412d3a3
    • Rusty Russell's avatar
      virtio: pass baton to Michael Tsirkin · feda5f93
      Rusty Russell authored
      With my job change kernel work will be "own time"; I'm keeping lguest
      and modules (and the virtio standards work), but virtio kernel has to
      go.
      
      This makes it clear that Michael is in charge.  He's good, but having
      me watch over his shoulder won't help.
      
      Good luck Michael!
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      feda5f93
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · 6fa72720
      Linus Torvalds authored
      Pull Ceph RBD fix from Sage Weil.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
        rbd: end I/O the entire obj_request on error
      6fa72720
    • David S. Miller's avatar
      ipv4: Missing sk_nulls_node_init() in ping_unhash(). · a134f083
      David S. Miller authored
      If we don't do that, then the poison value is left in the ->pprev
      backlink.
      
      This can cause crashes if we do a disconnect, followed by a connect().
      Tested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Reported-by: default avatarWen Xu <hotdog3645@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a134f083
    • Simon Horman's avatar
      net: rocker: Use ether_addr_equal · 629161f6
      Simon Horman authored
      A small cleanup to make use of the ether_addr_equal helper.
      Signed-off-by: default avatarSimon Horman <simon.horman@netronome.com>
      Acked-by: default avatarScott Feldman <sfeldma@gmail.com>
      Acked-by: default avatarJiri Pirko <jiri@resnulli.us>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      629161f6
    • David S. Miller's avatar
      Merge branch 'rt6_pmtu' · 36c82963
      David S. Miller authored
      Martin KaFai Lau says:
      
      ====================
      ipv6: Stop /128 route from disappearing after pmtu update
      
      The series is separated from another patch series,
      'ipv6: Only create RTF_CACHE route after encountering pmtu exception',
      which can be found here:
      http://thread.gmane.org/gmane.linux.network/359140
      
      This series focus on fixing the /128 route issues.  It is currently targeted
      for net-next due to the number of code churn but it is also applicable
      to net (should be without conflict).  The original reported problem can be
      found here:
      http://thread.gmane.org/gmane.linux.network/348138
      
      Patch 01 and 02 are to prepare the fib6 search to expect both the
      RTF_CACHE clone and its original route exist at the same fib6_node.
      
      Patch 03 fixes the /128 route disappearing bug.
      
      Patch 04 and 05 stop rt6_info from using the inet_peer's metrics to
      avoid the /128 routes (like the /128 clone and its original route)
      from stepping on each others' metrics.
      
      The second patch is by 'Steffen Klassert <steffen.klassert@secunet.com>'
      which I pulled off from netdev.  The third patch is also mostly by
      Steffen with one minor optimization.
      
      Many thanks to Hannes Frederic Sowa <hannes@stressinduktion.org> on
      reviewing the patches and giving advice.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      36c82963
    • Martin KaFai Lau's avatar
      ipv6: Remove DST_METRICS_FORCE_OVERWRITE and _rt6i_peer · afc4eef8
      Martin KaFai Lau authored
      _rt6i_peer is no longer needed after the last patch,
      'ipv6: Stop rt6_info from using inet_peer's metrics'.
      
      DST_METRICS_FORCE_OVERWRITE is added by
      commit e5fd387a ("ipv6: do not overwrite inetpeer metrics prematurely").
      Since inetpeer is no longer used for metrics, this bit is also not needed.
      Signed-off-by: default avatarMartin KaFai Lau <kafai@fb.com>
      Reviewed-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
      Cc: Michal Kubeček <mkubecek@suse.cz>
      Cc: Steffen Klassert <steffen.klassert@secunet.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      afc4eef8
    • Martin KaFai Lau's avatar
      ipv6: Stop rt6_info from using inet_peer's metrics · 4b32b5ad
      Martin KaFai Lau authored
      inet_peer is indexed by the dst address alone.  However, the fib6 tree
      could have multiple routing entries (rt6_info) for the same dst. For
      example,
      1. A /128 dst via multiple gateways.
      2. A RTF_CACHE route cloned from a /128 route.
      
      In the above cases, all of them will share the same metrics and
      step on each other.
      
      This patch will steer away from inet_peer's metrics and use
      dst_cow_metrics_generic() for everything.
      
      Change Highlights:
      1. Remove rt6_cow_metrics() which currently acquires metrics from
         inet_peer for DST_HOST route (i.e. /128 route).
      2. Add rt6i_pmtu to take care of the pmtu update to avoid creating a
         full size metrics just to override the RTAX_MTU.
      3. After (2), the RTF_CACHE route can also share the metrics with its
         dst.from route, by:
         dst_init_metrics(&cache_rt->dst, dst_metrics_ptr(cache_rt->dst.from), true);
      4. Stop creating RTF_CACHE route by cloning another RTF_CACHE route.  Instead,
         directly clone from rt->dst.
      
         [ Currently, cloning from another RTF_CACHE is only possible during
           rt6_do_redirect().  Also, the old clone is removed from the tree
           immediately after the new clone is added. ]
      
         In case of cloning from an older redirect RTF_CACHE, it should work as
         before.
      
         In case of cloning from an older pmtu RTF_CACHE, this patch will forget
         the pmtu and re-learn it (if there is any) from the redirected route.
      
      The _rt6i_peer and DST_METRICS_FORCE_OVERWRITE will be removed
      in the next cleanup patch.
      Signed-off-by: default avatarMartin KaFai Lau <kafai@fb.com>
      Reviewed-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
      Cc: Steffen Klassert <steffen.klassert@secunet.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4b32b5ad
    • Martin KaFai Lau's avatar
      ipv6: Stop /128 route from disappearing after pmtu update · 653437d0
      Martin KaFai Lau authored
      This patch is mostly from Steffen Klassert <steffen.klassert@secunet.com>.
      I only removed the (rt6->rt6i_dst.plen == 128) check from
      ip6_rt_update_pmtu() because the (rt6->rt6i_flags & RTF_CACHE) test
      has already implied it.
      
      This patch:
      1. Create RTF_CACHE route for /128 non local route
      2. After (1), all routes that allow pmtu update should have a RTF_CACHE
         clone.  Hence, stop updating MTU for any non RTF_CACHE route.
      Signed-off-by: default avatarMartin KaFai Lau <kafai@fb.com>
      Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
      Reviewed-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      653437d0
    • Steffen Klassert's avatar
      ipv6: Extend the route lookups to low priority metrics. · 9fbdcfaf
      Steffen Klassert authored
      We search only for routes with highest priority metric in
      find_rr_leaf(). However if one of these routes is marked
      as invalid, we may fail to find a route even if there is
      a appropriate route with lower priority. Then we loose
      connectivity until the garbage collector deletes the
      invalid route. This typically happens if a host route
      expires afer a pmtu event. Fix this by searching also
      for routes with a lower priority metric.
      Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
      Signed-off-by: default avatarMartin KaFai Lau <kafai@fb.com>
      Reviewed-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9fbdcfaf
    • Martin KaFai Lau's avatar
      ipv6: Consider RTF_CACHE when searching the fib6 tree · 1f56a01f
      Martin KaFai Lau authored
      It is a prep work for the later bug-fix patch which will stop /128 route
      from disappearing after pmtu update.
      
      The later bug-fix patch will allow a /128 route and its RTF_CACHE clone
      both exist at the same fib6_node.  To do this, we need to prepare the
      existing fib6 tree search to expect RTF_CACHE for /128 route.
      
      Note that the fn->leaf is sorted by rt6i_metric.  Hence,
      RTF_CACHE (if there is any) is always at the front.  This property
      leads to the following:
      
      1. When doing ip6_route_del(), it should honor the RTF_CACHE flag which
         the caller is used to ask for deleting clone or non-clone.
         The rtm_to_fib6_config() should also check the RTM_F_CLONED and
         then set RTF_CACHE accordingly so that:
         - 'ip -6 r del...' will make ip6_route_del() to delete a route
           and all its clones. Note that its clones is flushed by fib6_del()
         - 'ip -6 r flush table cache' will make ip6_route_del() to
            only delete clone(s).
      
      2. Exclude RTF_CACHE from addrconf_get_prefix_route() which
         should not configure on a cloned route.
      
      3. No change is need for rt6_device_match() since it currently could
         return a RTF_CACHE clone route, so the later bug-fix patch will not
         affect it.
      Signed-off-by: default avatarMartin KaFai Lau <kafai@fb.com>
      Reviewed-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
      Cc: Steffen Klassert <steffen.klassert@secunet.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1f56a01f
  4. 01 May, 2015 5 commits
    • Ilya Dryomov's avatar
      rbd: end I/O the entire obj_request on error · 082a75da
      Ilya Dryomov authored
      When we end I/O struct request with error, we need to pass
      obj_request->length as @nr_bytes so that the entire obj_request worth
      of bytes is completed.  Otherwise block layer ends up confused and we
      trip on
      
          rbd_assert(more ^ (which == img_request->obj_request_count));
      
      in rbd_img_obj_callback() due to more being true no matter what.  We
      already do it in most cases but we are missing some, in particular
      those where we don't even get a chance to submit any obj_requests, due
      to an early -ENOMEM for example.
      
      A number of obj_request->xferred assignments seem to be redundant but
      I haven't touched any of obj_request->xferred stuff to keep this small
      and isolated.
      
      Cc: Alex Elder <elder@linaro.org>
      Cc: stable@vger.kernel.org # 3.10+
      Reported-by: default avatarShawn Edwards <lesser.evil@gmail.com>
      Reviewed-by: default avatarSage Weil <sage@redhat.com>
      Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
      082a75da
    • Eric Dumazet's avatar
      ipv4: speedup ip_idents_reserve() · 355b590c
      Eric Dumazet authored
      Under stress, ip_idents_reserve() is accessing a contended
      cache line twice, with non optimal MESI transactions.
      
      If we place timestamps in separate location, we reduce this
      pressure by ~50% and allow atomic_add_return() to issue
      a Request for Ownership.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      355b590c
    • Linus Torvalds's avatar
      Merge branch 'for-linus-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 64887b68
      Linus Torvalds authored
      Pull btrfs fixes from Chris Mason:
       "A few more btrfs fixes.
      
        These range from corners Filipe found in the new free space cache
        writeback to a grab bag of fixes from the list"
      
      * 'for-linus-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        Btrfs: btrfs_release_extent_buffer_page didn't free pages of dummy extent
        Btrfs: fill ->last_trans for delayed inode in btrfs_fill_inode.
        btrfs: unlock i_mutex after attempting to delete subvolume during send
        btrfs: check io_ctl_prepare_pages return in __btrfs_write_out_cache
        btrfs: fix race on ENOMEM in alloc_extent_buffer
        btrfs: handle ENOMEM in btrfs_alloc_tree_block
        Btrfs: fix find_free_dev_extent() malfunction in case device tree has hole
        Btrfs: don't check for delalloc_bytes in cache_save_setup
        Btrfs: fix deadlock when starting writeback of bg caches
        Btrfs: fix race between start dirty bg cache writeout and bg deletion
      64887b68
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 036f351e
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "Not too much here, but we've addressed a couple of nasty issues in the
        dma-mapping code as well as adding the halfword and byte variants of
        load_acquire/store_release following on from the CSD locking bug that
        you fixed in the core.
      
         - fix perf devicetree warnings at probe time
      
         - fix memory leak in __dma_free()
      
         - ensure DMA buffers are always zeroed
      
         - show IRQ trigger in /proc/interrupts (for parity with ARM)
      
         - implement byte and halfword access for smp_{load_acquire,store_release}"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: perf: Fix the pmu node name in warning message
        arm64: perf: don't warn about missing interrupt-affinity property for PPIs
        arm64: add missing PAGE_ALIGN() to __dma_free()
        arm64: dma-mapping: always clear allocated buffers
        ARM64: Enable CONFIG_GENERIC_IRQ_SHOW_LEVEL
        arm64: add missing data types in smp_load_acquire/smp_store_release
      036f351e
    • Iyappan Subramanian's avatar
      drivers: net: xgene: fix kbuild warnings · 9dd3c797
      Iyappan Subramanian authored
      Fixed the following kbuild warnings:
      1. unused variable 'of_id'
      2. buffer overflow 'ring_cfg' 5 <= 5
      Signed-off-by: default avatarIyappan Subramanian <isubramanian@apm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9dd3c797
  5. 30 Apr, 2015 13 commits
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-4.1-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 4a152c39
      Linus Torvalds authored
      Pull power management and ACPI fixes from Rafael Wysocki:
       "Three regression fixes this time, one for a recent regression in the
        cpuidle core affecting multiple systems, one for an inadvertently
        added duplicate typedef in ACPICA that breaks compilation with GCC 4.5
        and one for an ACPI Smart Battery Subsystem driver regression
        introduced during the 3.18 cycle (stable-candidate).
      
        Specifics:
      
         - Fix for a regression in the cpuidle core introduced by one of the
           recent commits in the clockevents_notify() removal series that put
           a call to a function which had to be executed with disabled
           interrupts into a code path running with enabled interrupts (Rafael
           J Wysocki)
      
         - Fix for a build problem in ACPICA (with GCC 4.5) introduced by one
           of the recent ACPICA tools commits that added a duplicate typedef
           to one of the ACPICA's header files by mistake (Olaf Hering)
      
         - Fix for a regression in the ACPI SBS (Smart Battery Subsystem)
           driver introduced during the 3.18 development cycle causing the
           smart battery manager to be marked as not present when it should be
           marked as present (Chris Bainbridge)"
      
      * tag 'pm+acpi-4.1-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpuidle: Run tick_broadcast_exit() with disabled interrupts
        ACPI / SBS: Enable battery manager when present
        ACPICA: remove duplicate u8 typedef
      4a152c39
    • Linus Torvalds's avatar
      Merge tag 'sound-4.1-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 5a2e73b2
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "One nice fix is Peter's patch to make the old good SB Audigy PCI to
        work with 32bit DMA instead of 31bit.  This allows the MIDI synth
        running on modern machines again.  Along with it, a few fixes for
        emu10k1 have merged.
      
        In ASoC side, there is one fix in the common code, but it's just
        trivial additions of static inline functions for CONFIG_PM=n.  The
        rest are various device-specific small fixes.
      
        Last but not least, a few HD-audio fixes are included, as usual, too"
      
      * tag 'sound-4.1-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (23 commits)
        ASoC: rt5677: fixed wrong DMIC ref clock
        ALSA: emu10k1: Emu10k2 32 bit DMA mode
        ALSA: emux: Fix mutex deadlock in OSS emulation
        ASoC: Update email-id of Rajeev Kumar
        ASoC: rt5645: Fix mask for setting RT5645_DMIC_2_DP_GPIO12 bit
        ALSA: hda - Fix missing va_end() call in snd_hda_codec_pcm_new()
        ALSA: emux: Fix mutex deadlock at unloading
        ALSA: emu10k1: Fix card shortname string buffer overflow
        ALSA: hda - Add mute-LED mode control to Thinkpad
        ALSA: hda - Fix mute-LED fixed mode
        ALSA: hda - Fix click noise at start on Dell XPS13
        ASoC: rt5645: Add ACPI match ID
        ASoC: rt5677: add register patch for PLL
        ASoC: Intel: fix the makefile for atom code
        ASoC: dapm: Enable autodisable on SOC_DAPM_SINGLE_TLV_AUTODISABLE
        ASoC: add static inline funcs to fix a compiling issue
        ASoC: Intel: sst_byt: remove kfree for memory allocated with devm_kzalloc
        ASoC: samsung: s3c24xx-i2s: Fix return value check in s3c24xx_iis_dev_probe()
        ASoC: tfa9879: Fix return value check in tfa9879_i2c_probe()
        ASoC: fsl_ssi: Fix platform_get_irq() error handling
        ...
      5a2e73b2
    • Markus Pargmann's avatar
      net: fec: Fix RGMII-ID mode · e813bb2b
      Markus Pargmann authored
      RGMII-ID uses an internal delay within the transmitter or receiver. This
      feature is phy specific. The rest of the communication is normal RGMII.
      
      So the fec driver has to check for all RGMII modes, not only
      'PHY_INTERFACE_MODE_RGMII'.
      Signed-off-by: default avatarMarkus Pargmann <mpa@pengutronix.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e813bb2b
    • Ido Shamay's avatar
      net/mlx4_en: Schedule napi when RX buffers allocation fails · 07841f9d
      Ido Shamay authored
      When system is out of memory, refilling of RX buffers fails while
      the driver continue to pass the received packets to the kernel stack.
      At some point, when all RX buffers deplete, driver may fall into a
      sleep, and not recover when memory for new RX buffers is once again
      availible. This is because hardware does not have valid descriptors,
      so no interrupt will be generated for the driver to return to work
      in napi context. Fix it by schedule the napi poll function from
      stats_task delayed workqueue, as long as the allocations fail.
      Signed-off-by: default avatarIdo Shamay <idos@mellanox.com>
      Signed-off-by: default avatarAmir Vadai <amirv@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      07841f9d
    • Daniel Borkmann's avatar
      test_bpf: indicate whether bpf prog got jited in test suite · 327941f8
      Daniel Borkmann authored
      I think this is useful to verify whether a filter could be JITed or
      not in case of bpf_prog_enable >= 1, which otherwise the test suite
      doesn't tell besides taking a good peek at the performance numbers.
      
      Nicolas Schichan reported a bug in the ARM JIT compiler that rejected
      and waved the filter to the interpreter although it shouldn't have.
      Nevertheless, the test passes as expected, but such information is
      not visible.
      
      It's i.e. useful for the remaining classic JITs, but also for
      implementing remaining opcodes that are not yet present in eBPF JITs
      (e.g. ARM64 waves some of them to the interpreter). This minor patch
      allows to grep through dmesg to find those accordingly, but also
      provides a total summary, i.e.: [<X>/53 JIT'ed]
      
        # echo 1 > /proc/sys/net/core/bpf_jit_enable
        # insmod lib/test_bpf.ko
        # dmesg | grep "jited:0"
      
      dmesg example on the ARM issue with JIT rejection:
      
      [...]
      [   67.925387] test_bpf: #2 ADD_SUB_MUL_K jited:1 24 PASS
      [   67.930889] test_bpf: #3 DIV_MOD_KX jited:0 794 PASS
      [   67.943940] test_bpf: #4 AND_OR_LSH_K jited:1 20 20 PASS
      [...]
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Cc: Nicolas Schichan <nschichan@freebox.fr>
      Cc: Alexei Starovoitov <ast@plumgrid.com>
      Acked-by: default avatarAlexei Starovoitov <ast@plumgrid.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      327941f8
    • Tony Camuso's avatar
      netxen_nic: use spin_[un]lock_bh around tx_clean_lock · c232d8a8
      Tony Camuso authored
      While testing this driver with DEBUG_LOCKDEP and DEBUG_SPINLOCK
      enabled did not produce any traces, it would be more prudent in the
      case of tx_clean_lock to use spin_[un]lock_bh, since this lock is
      manipulated in both the process and softirq contexts.
      
      This patch was tested for functionality and regressions with netperf
      and DEBUG_LOCKDEP and DEBUG_SPINLOCK enabled.
      Signed-off-by: default avatarTony Camuso <tcamuso@redhat.com>
      Acked-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c232d8a8
    • Ivan Vecera's avatar
      be2net: log link status · 18824894
      Ivan Vecera authored
      The driver unlike other drivers does not log link state changes. It's
      better for an user when asynchronous link states are logged to the system
      log.
      
      v3: Changes from v2 discarded as "not necessary"
      
      Cc: Sathya Perla <sathya.perla@emulex.com>
      Cc: Subbu Seetharaman <subbu.seetharaman@emulex.com>
      Cc: Ajit Khaparde <ajit.khaparde@emulex.com>
      Signed-off-by: default avatarIvan Vecera <ivecera@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      18824894
    • Thomas Falcon's avatar
      ibmveth: Add support for Large Receive Offload · 9c7e8bc5
      Thomas Falcon authored
      Enables receiving large packets from other LPARs. These packets
      have a -1 IP header checksum, so we must recalculate to have
      a valid checksum.
      Signed-off-by: default avatarBrian King <brking@linux.vnet.ibm.com>
      Signed-off-by: default avatarThomas Falcon <tlfalcon@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9c7e8bc5
    • Thomas Falcon's avatar
      ibmveth: Add GRO support · 92ec8279
      Thomas Falcon authored
      Cc: Brian King <brking@linux.vnet.ibm.com>
      Signed-off-by: default avatarThomas Falcon <tlfalcon@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      92ec8279
    • Thomas Falcon's avatar
      ibmveth: Add support for TSO · 8641dd85
      Thomas Falcon authored
      Add support for TSO.  TSO is turned off by default and
      must be enabled and configured by the user.  The driver
      version number is increased so that users can be sure
      that they are using ibmveth with TSO support.
      
      Cc: Brian King <brking@linux.vnet.ibm.com>
      Signed-off-by: default avatarThomas Falcon <tlfalcon@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8641dd85
    • Thomas Falcon's avatar
      ibmveth: change rx buffer default allocation for CMO · cd7c7ec3
      Thomas Falcon authored
      This patch enables 64k rx buffer pools by default.  If Cooperative
      Memory Overcommitment (CMO) is enabled, the number of 64k buffers
      is reduced to save memory.
      
      Cc: Brian King <brking@linux.vnet.ibm.com>
      Signed-off-by: default avatarThomas Falcon <tlfalcon@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cd7c7ec3
    • David Ahern's avatar
      net/mlx4_core: Fix unaligned accesses · 17d5ceb6
      David Ahern authored
      Addresses the following kernel logs seen during boot:
      
      Kernel unaligned access at TPC[100ee150] mlx4_QUERY_HCA+0x80/0x248 [mlx4_core]
      Kernel unaligned access at TPC[100f071c] mlx4_QUERY_ADAPTER+0x100/0x12c [mlx4_core]
      Kernel unaligned access at TPC[100f071c] mlx4_QUERY_ADAPTER+0x100/0x12c [mlx4_core]
      Kernel unaligned access at TPC[100f071c] mlx4_QUERY_ADAPTER+0x100/0x12c [mlx4_core]
      Kernel unaligned access at TPC[100f071c] mlx4_QUERY_ADAPTER+0x100/0x12c [mlx4_core]
      Signed-off-by: default avatarDavid Ahern <david.ahern@oracle.com>
      Acked-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      17d5ceb6
    • Benjamin Poirier's avatar
      mlx4_en: Use correct loop cursor in error path. · f94813f3
      Benjamin Poirier authored
      Signed-off-by: default avatarBenjamin Poirier <bpoirier@suse.de>
      Fixes: 9e311e77 ("net/mlx4_en: Use affinity hint")
      Acked-by: default avatarAmir Vadai <amirv@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f94813f3