1. 11 6月, 2016 22 次提交
    • Z
      arm64: bpf: implement bpf_tail_call() helper · ddb55992
      Zi Shen Lim 提交于
      Add support for JMP_CALL_X (tail call) introduced by commit 04fd61ab
      ("bpf: allow bpf programs to tail-call other bpf programs").
      
      bpf_tail_call() arguments:
        ctx   - context pointer passed to next program
        array - pointer to map which type is BPF_MAP_TYPE_PROG_ARRAY
        index - index inside array that selects specific program to run
      
      In this implementation arm64 JIT jumps into callee program after prologue,
      so callee program reuses the same stack. For tail_call_cnt, we use the
      callee-saved R26 (which was already saved/restored but previously unused
      by JIT).
      
      With this patch a tail call generates the following code on arm64:
      
        if (index >= array->map.max_entries)
            goto out;
      
        34:   mov     x10, #0x10                      // #16
        38:   ldr     w10, [x1,x10]
        3c:   cmp     w2, w10
        40:   b.ge    0x0000000000000074
      
        if (tail_call_cnt > MAX_TAIL_CALL_CNT)
            goto out;
        tail_call_cnt++;
      
        44:   mov     x10, #0x20                      // #32
        48:   cmp     x26, x10
        4c:   b.gt    0x0000000000000074
        50:   add     x26, x26, #0x1
      
        prog = array->ptrs[index];
        if (prog == NULL)
            goto out;
      
        54:   mov     x10, #0x68                      // #104
        58:   ldr     x10, [x1,x10]
        5c:   ldr     x11, [x10,x2]
        60:   cbz     x11, 0x0000000000000074
      
        goto *(prog->bpf_func + prologue_size);
      
        64:   mov     x10, #0x20                      // #32
        68:   ldr     x10, [x11,x10]
        6c:   add     x10, x10, #0x20
        70:   br      x10
        74:
      Signed-off-by: NZi Shen Lim <zlim.lnx@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ddb55992
    • Z
      bpf: fix missing header inclusion · 002245cc
      Zi Shen Lim 提交于
      Commit 0fc174de ("ebpf: make internal bpf API independent of
      CONFIG_BPF_SYSCALL ifdefs") introduced usage of ERR_PTR() in
      bpf_prog_get(), however did not include linux/err.h.
      
      Without this patch, when compiling arm64 BPF without CONFIG_BPF_SYSCALL:
      ...
      In file included from arch/arm64/net/bpf_jit_comp.c:21:0:
      include/linux/bpf.h: In function 'bpf_prog_get':
      include/linux/bpf.h:235:9: error: implicit declaration of function 'ERR_PTR' [-Werror=implicit-function-declaration]
        return ERR_PTR(-EOPNOTSUPP);
               ^
      include/linux/bpf.h:235:9: warning: return makes pointer from integer without a cast [-Wint-conversion]
      In file included from include/linux/rwsem.h:17:0,
                       from include/linux/mm_types.h:10,
                       from include/linux/sched.h:27,
                       from arch/arm64/include/asm/compat.h:25,
                       from arch/arm64/include/asm/stat.h:23,
                       from include/linux/stat.h:5,
                       from include/linux/compat.h:12,
                       from include/linux/filter.h:10,
                       from arch/arm64/net/bpf_jit_comp.c:22:
      include/linux/err.h: At top level:
      include/linux/err.h:23:35: error: conflicting types for 'ERR_PTR'
       static inline void * __must_check ERR_PTR(long error)
                                         ^
      In file included from arch/arm64/net/bpf_jit_comp.c:21:0:
      include/linux/bpf.h:235:9: note: previous implicit declaration of 'ERR_PTR' was here
        return ERR_PTR(-EOPNOTSUPP);
               ^
      ...
      
      Fixes: 0fc174de ("ebpf: make internal bpf API independent of CONFIG_BPF_SYSCALL ifdefs")
      Suggested-by: NDaniel Borkmann <daniel@iogearbox.net>
      Signed-off-by: NZi Shen Lim <zlim.lnx@gmail.com>
      Acked-by: NDaniel Borkmann <daniel@iogearbox.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      002245cc
    • D
      Merge branch 'tcp_nv' · f6664f1f
      David S. Miller 提交于
      Lawrence Brakmo says:
      
      ====================
      tcp: add NV congestion control
      
      Removed most of the module parameters
      
      Tested in a rack using between 1 and 380 active TCP-NV flows.
      
      Consists of the following patches:
      [PATCH net-next v2 1/2] tcp: add in_flight to tcp_skb_cb
      [PATCH net-next v2 2/2] tcp: add NV congestion control
      ====================
      Signed-off-by: NLawrence Brakmo <brakmo@fb.com>
      f6664f1f
    • L
      tcp: add NV congestion control · 699fafaf
      Lawrence Brakmo 提交于
      TCP-NV (New Vegas) is a major update to TCP-Vegas.
      An earlier version of NV was presented at 2010's LPC.
      It is a delayed based congestion avoidance for the
      data center. This version has been tested within a
      10G rack where the HW RTTs are 20-50us and with
      1 to 400 flows.
      
      A description of TCP-NV, including implementation
      details as well as experimental results, can be found at:
      http://www.brakmo.org/networking/tcp-nv/TCPNV.htmlSigned-off-by: NLawrence Brakmo <brakmo@fb.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      699fafaf
    • L
      tcp: add in_flight to tcp_skb_cb · 6f094b9e
      Lawrence Brakmo 提交于
      Add in_flight (bytes in flight when packet was sent) field
      to tx component of tcp_skb_cb and make it available to
      congestion modules' pkts_acked() function through the
      ack_sample function argument.
      Signed-off-by: NLawrence Brakmo <brakmo@fb.com>
      Acked-by: NYuchung Cheng <ycheng@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6f094b9e
    • D
      Merge branch 'virtio_net-GSO-helpers' · 3e7fb80b
      David S. Miller 提交于
      Mike Rapoport says:
      
      ====================
      virtio_net: use common code for virtio_net_hdr and skb GSO conversion
      
      This patches introduce virtio_net_hdr_{from,to}_skb functions for
      conversion of GSO information between skb and virtio_net_hdr.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3e7fb80b
    • M
      packet: use common code for virtio_net_hdr and skb GSO conversion · 1276f24e
      Mike Rapoport 提交于
      Replace open coded conversion between virtio_net_hdr to skb GSO info with
      virtio_net_hdr_from_skb
      Signed-off-by: NMike Rapoport <rppt@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1276f24e
    • M
      virtio_net: use common code for virtio_net_hdr and skb GSO conversion · e858fae2
      Mike Rapoport 提交于
      Replace open coded conversion between virtio_net_hdr to skb GSO info with
      virtio_net_hdr_{from,to}_skb
      Signed-off-by: NMike Rapoport <rppt@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e858fae2
    • M
      tuntap: use common code for virtio_net_hdr and skb GSO conversion · 34166093
      Mike Rapoport 提交于
      Replace open coded conversion between virtio_net_hdr to skb GSO info with
      virtio_net_hdr_{from,to}_skb
      Signed-off-by: NMike Rapoport <rppt@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      34166093
    • M
      macvtap: use common code for virtio_net_hdr and skb GSO conversion · fd88d68b
      Mike Rapoport 提交于
      Replace open coded conversion between virtio_net_hdr to skb GSO info with
      virtio_net_hdr_{from,to}_skb
      Signed-off-by: NMike Rapoport <rppt@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fd88d68b
    • M
      virtio_net: introduce virtio_net_hdr_{from,to}_skb · fd2a0437
      Mike Rapoport 提交于
      The code for conversion between virtio_net_hdr and skb GSO info is
      duplicated at several places. Let's put it to a common place to allow
      reuse.
      Signed-off-by: NMike Rapoport <rppt@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fd2a0437
    • M
      virtio_net: add _UAPI prefix to virtio_net header guards · 678ece30
      Mike Rapoport 提交于
      This gives better namespacing and prevents conflicts with no-uapi version
      of virtio_net header that will be introduced in the following patch.
      Signed-off-by: NMike Rapoport <rppt@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      678ece30
    • B
      RDS: IB: Remove deprecated create_workqueue · 231edca9
      Bhaktipriya Shridhar 提交于
      alloc_workqueue replaces deprecated create_workqueue().
      
      Since the driver is infiniband which can be used as block device and the
      workqueue seems involved in regular operation of the device, so a
      dedicated workqueue has been used  with WQ_MEM_RECLAIM set to guarantee
      forward progress under memory pressure.
      Since there are only a fixed number of work items, explicit concurrency
      limit is unnecessary here.
      Signed-off-by: NBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Acked-by: NSantosh Shilimkar <santosh.shilimkar@oracle.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      231edca9
    • H
      NET: PHY: adds driver for Intel XWAY PHY · 112b558d
      Hauke Mehrtens 提交于
      This adds support for the Intel (former Lantiq) XWAY 11G and 22E PHYs.
      These PHYs are also named PEF 7061, PEF 7071, PEF 7072.
      Signed-off-by: NJohn Crispin <john@phrozen.org>
      Signed-off-by: NHauke Mehrtens <hauke@hauke-m.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      112b558d
    • D
      rxrpc: Limit the listening backlog · 0e119b41
      David Howells 提交于
      Limit the socket incoming call backlog queue size so that a remote client
      can't pump in sufficient new calls that the server runs out of memory.  Note
      that this is partially theoretical at the moment since whilst the number of
      calls is limited, the number of packets trying to set up new calls is not.
      This will be addressed in a later patch.
      
      If the caller of listen() specifies a backlog INT_MAX, then they get the
      current maximum; anything else greater than max_backlog or anything
      negative incurs EINVAL.
      
      The limit on the maximum queue size can be set by:
      
      	echo N >/proc/sys/net/rxrpc/max_backlog
      
      where 4<=N<=32.
      
      Further, set the default backlog to 0, requiring listen() to be called
      before we start actually queueing new calls.  Whilst this kind of is a
      change in the UAPI, the caller can't actually *accept* new calls anyway
      unless they've first called listen() to put the socket into the LISTENING
      state - thus the aforementioned new calls would otherwise just sit there,
      eating up kernel memory.  (Note that sockets that don't have a non-zero
      service ID bound don't get incoming calls anyway.)
      
      Given that the default backlog is now 0, make the AFS filesystem call
      kernel_listen() to set the maximum backlog for itself.
      
      Possible improvements include:
      
       (1) Trimming a too-large backlog to max_backlog when listen is called.
      
       (2) Trimming the backlog value whenever the value is used so that changes
           to max_backlog are applied to an open socket automatically.  Note that
           the AFS filesystem opens one socket and keeps it open for extended
           periods, so would miss out on changes to max_backlog.
      
       (3) Having a separate setting for the AFS filesystem.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0e119b41
    • D
      rxrpc: Trim line-terminal whitespace · bc6e1ea3
      David Howells 提交于
      Trim line-terminal whitespace in net/rxrpc/
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bc6e1ea3
    • D
      net, cls: allow for deleting all filters for given parent · ea7f8277
      Daniel Borkmann 提交于
      Add a possibility where the user can just specify the parent and
      all filters under that parent are then being purged. Currently,
      for example for scripting, one needs to specify pref/prio to have
      a well-defined number for 'tc filter del' command for addressing
      the previously created instance or additionally filter handle in
      case of priorities being the same. Improve usage by allowing the
      option for tc to specify the parent and removing the whole chain
      for that given parent.
      
      Example usage after patch, no tc changes required:
      
        # tc qdisc replace dev foo clsact
        # tc filter add dev foo egress bpf da obj ./bpf.o
        # tc filter add dev foo egress bpf da obj ./bpf.o
        # tc filter show dev foo egress
        filter protocol all pref 49151 bpf
        filter protocol all pref 49151 bpf handle 0x1 bpf.o:[classifier] direct-action
        filter protocol all pref 49152 bpf
        filter protocol all pref 49152 bpf handle 0x1 bpf.o:[classifier] direct-action
        # tc filter del dev foo egress
        # tc filter show dev foo egress
        #
      
      Previously, RTM_DELTFILTER requests with invalid prio of 0 were
      rejected, so only netlink requests with RTM_NEWTFILTER and NLM_F_CREATE
      flag were allowed where the kernel would auto-generate a pref/prio.
      We can piggyback on that and use prio of 0 as a wildcard for
      requests of RTM_DELTFILTER.
      
      For notifying tc netlink monitoring users (e.g. libnl uses this
      for caching), there are two options, that is, sending individual
      tfilter_notify() notifications for each tcf_proto, or sending a
      single one indicating wildcard removal. I tried both and there
      are pros and cons for each, eventually I decided for sending
      individual tfilter_notify(), so that user space can support this
      seamlessly and there won't be a mess of changing each and every
      application to make sure expectations from the kernel won't break
      when they don't understand single notification. Since linear chains
      don't really scale, I expect only a handful of classifiers to be
      attached at max for a given parent anyway.
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      Acked-by: NJamal Hadi Salim <jhs@mojatatu.com>
      Acked-by: NAlexei Starovoitov <ast@kernel.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ea7f8277
    • D
      Merge branch 'bpf-fixes' · 92595aea
      David S. Miller 提交于
      Daniel Borkmann says:
      
      ====================
      bpf: couple of fixes
      
      These are two fixes for BPF, one to introduce xmit recursion limiter for
      tc bpf programs and the other one to reject filters a bit earlier. For
      more details please see individual patches. I have no strong opinion
      to which tree they should go, they apply to both, but I think net-next
      seems okay to me.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      92595aea
    • D
      bpf: reject wrong sized filters earlier · f7bd9e36
      Daniel Borkmann 提交于
      Add a bpf_check_basics_ok() and reject filters that are of invalid
      size much earlier, so we don't do any useless work such as invoking
      bpf_prog_alloc(). Currently, rejection happens in bpf_check_classic()
      only, but it's really unnecessarily late and they should be rejected
      at earliest point. While at it, also clean up one bpf_prog_size() to
      make it consistent with the remaining invocations.
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      Acked-by: NAlexei Starovoitov <ast@kernel.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f7bd9e36
    • D
      bpf: enforce recursion limit on redirects · a70b506e
      Daniel Borkmann 提交于
      Respect the stack's xmit_recursion limit for calls into dev_queue_xmit().
      Currently, they are not handeled by the limiter when attached to clsact's
      egress parent, for example, and a buggy program redirecting it to the
      same device again could run into stack overflow eventually. It would be
      good if we could notify an admin to give him a chance to react. We reuse
      xmit_recursion instead of having one private to eBPF, so that the stack's
      current recursion depth will be taken into account as well. Follow-up to
      commit 3896d655 ("bpf: introduce bpf_clone_redirect() helper") and
      27b29f63 ("bpf: add bpf_redirect() helper").
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      Acked-by: NAlexei Starovoitov <ast@kernel.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a70b506e
    • W
      openvswitch: Add packet truncation support. · f2a4d086
      William Tu 提交于
      The patch adds a new OVS action, OVS_ACTION_ATTR_TRUNC, in order to
      truncate packets. A 'max_len' is added for setting up the maximum
      packet size, and a 'cutlen' field is to record the number of bytes
      to trim the packet when the packet is outputting to a port, or when
      the packet is sent to userspace.
      Signed-off-by: NWilliam Tu <u9012063@gmail.com>
      Cc: Pravin Shelar <pshelar@nicira.com>
      Acked-by: NPravin B Shelar <pshelar@ovn.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f2a4d086
    • D
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 1578b0a5
      David S. Miller 提交于
      Conflicts:
      	net/sched/act_police.c
      	net/sched/sch_drr.c
      	net/sched/sch_hfsc.c
      	net/sched/sch_prio.c
      	net/sched/sch_red.c
      	net/sched/sch_tbf.c
      
      In net-next the drop methods of the packet schedulers got removed, so
      the bug fixes to them in 'net' are irrelevant.
      
      A packet action unload crash fix conflicts with the addition of the
      new firstuse timestamp.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1578b0a5
  2. 10 6月, 2016 18 次提交
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 698ea54d
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) nfnetlink timestamp taken from wrong skb, fix from Florian Westphal.
      
       2) Revert some msleep conversions in rtlwifi as these spots are in
          atomic context, from Larry Finger.
      
       3) Validate that NFTA_SET_TABLE attribute is actually specified when we
          call nf_tables_getset().  From Phil Turnbull.
      
       4) Don't do mdio_reset in stmmac driver with spinlock held as that can
          sleep, from Vincent Palatin.
      
       5) sk_filter() does things other than run a BPF filter, so we should
          not elide it's call just because sk->sk_filter is NULL.  Fix from
          Eric Dumazet.
      
       6) Fix missing backlog updates in several packet schedulers, from Cong
          Wang.
      
       7) bnx2x driver should allow VLAN add/remove while the interface is
          down, from Michal Schmidt.
      
       8) Several RDS/TCP race fixes from Sowmini Varadhan.
      
       9) fq_codel scheduler doesn't return correct queue length in dumps,
          from Eric Dumazet.
      
      10) Fix TCP stats for tail loss probe and early retransmit in ipv6, from
          Yuchung Cheng.
      
      11) Properly initialize udp_tunnel_socket_cfg in l2tp_tunnel_create(),
          from Guillaume Nault.
      
      12) qfq scheduler leaks SKBs if a kzalloc fails, fix from Florian
          Westphal.
      
      13) sock_fprog passed into PACKET_FANOUT_DATA needs compat handling,
          from Willem de Bruijn.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (85 commits)
        vmxnet3: segCnt can be 1 for LRO packets
        packet: compat support for sock_fprog
        stmmac: fix parameter to dwmac4_set_umac_addr()
        net/mlx5e: Fix blue flame quota logic
        net/mlx5e: Use ndo_stop explicitly at shutdown flow
        net/mlx5: E-Switch, always set mc_promisc for allmulti vports
        net/mlx5: E-Switch, Modify node guid on vf set MAC
        net/mlx5: E-Switch, Fix vport enable flow
        net/mlx5: E-Switch, Use the correct error check on returned pointers
        net/mlx5: E-Switch, Use the correct free() function
        net/mlx5: Fix E-Switch flow steering capabilities check
        net/mlx5: Fix flow steering NIC capabilities check
        net/mlx5: Fix root flow table update
        net/mlx5: Fix MLX5_CMD_OP_MAX to be defined correctly
        net/mlx5: Fix masking of reserved bits in XRCD number
        net/mlx5: Fix the size of modify QP mailbox
        mlxsw: spectrum: Don't sleep during ndo_get_phys_port_name()
        mlxsw: spectrum: Make split flow match firmware requirements
        wext: Fix 32 bit iwpriv compatibility issue with 64 bit Kernel
        cfg80211: remove get/set antenna and tx power warnings
        ...
      698ea54d
    • L
      Merge tag 'sound-4.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 729d3784
      Linus Torvalds 提交于
      Pull sound fixes from Takashi Iwai:
       "We have only few, mainly HD-audio device-specific fixes.  Realtek
        codec driver got a slightly more LOC, but they are all for the new
        codec chip, and won't affect others at all"
      
      * tag 'sound-4.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - Add PCI ID for Kabylake
        ALSA: hda/realtek: Add T560 docking unit fixup
        ALSA: hda - Fix headset mic detection problem for Dell machine
        ALSA: uapi: Add three missing header files to Kbuild file
        ALSA: hda/realtek - Add support for new codecs ALC700/ALC701/ALC703
        ALSA: hda/realtek - ALC256 speaker noise issue
      729d3784
    • L
      Merge tag 'drm-fixes-for-v4.7-rc3' of git://people.freedesktop.org/~airlied/linux · 00da9008
      Linus Torvalds 提交于
      Pull drm fixes from Dave Airlie:
       "This weeks instalment of fixes:
      
        amdgpu:
           Lots of memory leak and firmware leak fixes
      
        nouveau:
           Collection of display fixes, KASAN fixes
      
        vc4:
           vblank/pageflipping fixes
      
        fsl-dcu:
           Regmap cache fix
      
        omap:
           Unused variable warning fix.
      
        Nothing too surprising so far"
      
      * tag 'drm-fixes-for-v4.7-rc3' of git://people.freedesktop.org/~airlied/linux: (46 commits)
        drm/amdgpu: fix warning with powerplay disabled.
        drm/amd/powerplay: delete useless code as pptable changed in vbios.
        drm/amd/powerplay: fix bug visit array out of bounds
        drm/amdgpu: fix smu ucode memleak (v2)
        drm/amdgpu: add release firmware for cgs
        drm/amdgpu: fix tonga smu_fini mem leak
        drm/amdgpu: fix fiji smu fini mem leak
        drm/amdgpu: fix cik sdma ucode memleak
        drm/amdgpu: fix sdma24 ucode mem leak
        drm/amdgpu: fix sdma3 ucode mem leak
        drm/amdgpu: fix uvd fini mem leak
        drm/amdgpu: fix gfx 7 ucode mem leak
        drm/amdgpu: fix gfx8 ucode mem leak
        drm/amdgpu: fix missing free wb for cond_exec
        drm/amdgpu: fix memleak in pptable_init
        drm/amdgpu: fix mem leak in atombios
        drm/amdgpu: fix mem leak in pplib/hwmgr
        drm/amdgpu: fix mem leak in smumgr
        drm/amdgpu: add pipeline sync while vmid switch in same ctx
        drm/amdgpu: vBIOS post only call when mem_size zero
        ...
      00da9008
    • L
      Merge tag 'acpi-4.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · f758bbd4
      Linus Torvalds 提交于
      Pull ACPI fix from Rafael Wysocki:
       "A recently introduced boot regression related to the ACPI EC
        initialization is addressed by restoring the previous behavior (Lv
        Zheng)"
      
      * tag 'acpi-4.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / EC: Fix a boot EC regresion by restoring boot EC support for the DSDT EC
      f758bbd4
    • L
      Merge tag 'pm-4.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 524a3f2c
      Linus Torvalds 提交于
      Pull power management fixes from Rafael Wysocki:
       "Stable-candidate fixes for the intel_pstate driver and the cpuidle
        core.
      
        Specifics:
      
         - Fix two intel_pstate initialization issues, one of which was
           introduced during the 4.4 cycle (Srinivas Pandruvada)
      
         - Fix kernel build with CONFIG_UBSAN set and CONFIG_CPU_IDLE unset
           (Catalin Marinas)"
      
      * tag 'pm-4.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpufreq: intel_pstate: Fix ->set_policy() interface for no_turbo
        cpufreq: intel_pstate: Fix code ordering in intel_pstate_set_policy()
        cpuidle: Do not access cpuidle_devices when !CONFIG_CPU_IDLE
      524a3f2c
    • L
      Merge branch 'akpm' (patches from Andrew) · 9557c3cf
      Linus Torvalds 提交于
      Merge misc fixes from Andrew Morton:
       "7 fixes"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        mm/fadvise.c: do not discard partial pages with POSIX_FADV_DONTNEED
        mm: introduce dedicated WQ_MEM_RECLAIM workqueue to do lru_add_drain_all
        kernel/relay.c: fix potential memory leak
        mm: thp: broken page count after commit aa88b68c
        revert "mm: memcontrol: fix possible css ref leak on oom"
        kasan: change memory hot-add error messages to info messages
        mm/hugetlb: fix huge page reserve accounting for private mappings
      9557c3cf
    • S
      vmxnet3: segCnt can be 1 for LRO packets · 50219538
      Shrikrishna Khare 提交于
      The device emulation may send segCnt of 1 for LRO packets.
      Signed-off-by: NShrikrishna Khare <skhare@vmware.com>
      Signed-off-by: NJin Heo <heoj@vmware.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      50219538
    • B
      mlxsw: core: Remove deprecated create_workqueue · 3d5479e9
      Bhaktipriya Shridhar 提交于
      alloc_workqueue replaces deprecated create_workqueue().
      
      A dedicated workqueue has been used since the workqueue
      mlxsw_wq is used for FDB notif. processing with workitems that are
      involved in normal device operation && because it's a network device
      which can be depended upon during memory reclaim.
      
      Workitems &trans->timeout_dw and &mlxsw_sp->fdb_notify.dw,
      map to mlxsw_sp_fdb_notify_work (processes FDB notifications from the
      underlying device and resolves the netdev to which the entry points to
      and notifies the bridge using the switchdev notifier) and
      mlxsw_emad_trans_timeout_work (provides async EMAD register access)
      respectively. They require forward progress under memory pressure and
      hence, WQ_MEM_RECLAIM has been set.
      
      Since there are only a fixed number of work items, explicit concurrency
      limit is unnecessary here.
      Signed-off-by: NBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Tested-by: NIdo Schimmel <idosch@mellanox.com>
      Acked-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3d5479e9
    • B
      net: cavium: liquidio: Remove deprecated create_workqueue · 292b9dab
      Bhaktipriya Shridhar 提交于
      alloc_workqueue replaces deprecated create_workqueue().
      
      A dedicated workqueue has been used since the workitem viz
      (&lio->txq_status_wq.wk.work which maps to octnet_poll_check_txq_status)
      is involved in a brief poll routine for checking transmit queue status
      and is an intergral part of normal device operation.
      WQ_MEM_RECLAIM has been set to guarantee forward progress under memory
      pressure, which is a requirement here.
      Since there are only a fixed number of work items, explicit concurrency
      limit is unnecessary.
      
      flush_workqueue is unnecessary since destroy_workqueue() itself calls
      drain_workqueue() which flushes repeatedly till the workqueue
      becomes empty.
      Signed-off-by: NBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      292b9dab
    • W
      packet: compat support for sock_fprog · 719c44d3
      Willem de Bruijn 提交于
      Socket option PACKET_FANOUT_DATA takes a struct sock_fprog as argument
      if PACKET_FANOUT has mode PACKET_FANOUT_CBPF. This structure contains
      a pointer into user memory. If userland is 32-bit and kernel is 64-bit
      the two disagree about the layout of struct sock_fprog.
      
      Add compat setsockopt support to convert a 32-bit compat_sock_fprog to
      a 64-bit sock_fprog. This is analogous to compat_sock_fprog support for
      SO_REUSEPORT added in commit 19575988 ("soreuseport: add compat
      case for setsockopt SO_ATTACH_REUSEPORT_CBPF").
      Reported-by: NDaniel Borkmann <daniel@iogearbox.net>
      Signed-off-by: NWillem de Bruijn <willemb@google.com>
      Acked-by: NDaniel Borkmann <daniel@iogearbox.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      719c44d3
    • E
      net/mlx4_en: fix ethtool -x · f7d3c1cb
      Eric Dumazet 提交于
      mlx4 RSS is limited to spread incoming packets to a power of two number
      of queues.
      
      An uniformly distibuted traffic would be split on queues 0 to N-1, N
      being a power of two, each queue having a 1/N weight.
      
      If number of RX queues is not a power of two, upper RX queues do not
      receive traffic.
      
      ethtool -x is lying, because it pretends some queues have higher weight.
      
      Before patch:
      
      lpaa24:~# ethtool -L eth1 rx 24
      lpaa24:~# ethtool -x eth1
      RX flow hash indirection table for eth1 with 24 RX ring(s):
          0:      0     1     2     3     4     5     6     7
          8:      8     9    10    11    12    13    14    15
         16:      0     1     2     3     4     5     6     7
      RSS hash key:
      e0:7c:3a:89:07:55:b6:58:69:cc:f4:e5:24:62:e3:25:88:6c:42:5b:d2:cb:9a:d2:e0:06:e1:dc:f9:09:a1:89:0f:a0:30:43:73:6f:0c:b6
      
      If this information was correct, user space tools could expect queues 0
      to 7 to receive twice more traffic than queues 8 to 15
      
      After patch :
      
      lpaa24:~# ethtool -L eth1 rx 24
      lpaa24:~# ethtool -x eth1
      RX flow hash indirection table for eth1 with 24 RX ring(s):
          0:      0     1     2     3     4     5     6     7
          8:      8     9    10    11    12    13    14    15
      RSS hash key:
      da:7b:09:60:f1:ac:67:b4:d0:72:d4:ec:a2:e5:80:0a:ad:50:22:1a:f8:f9:66:54:5f:22:45:c3:88:f4:57:82:c1:c1:90:ed:70:cb:40:ce
      lpaa24:~# ethtool -X eth1 equal 8
      lpaa24:~# ethtool -x eth1
      RX flow hash indirection table for eth1 with 24 RX ring(s):
          0:      0     1     2     3     4     5     6     7
          8:      0     1     2     3     4     5     6     7
      RSS hash key:
      da:7b:09:60:f1:ac:67:b4:d0:72:d4:ec:a2:e5:80:0a:ad:50:22:1a:f8:f9:66:54:5f:22:45:c3:88:f4:57:82:c1:c1:90:ed:70:cb:40:ce
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Reported-by: NMaciej Żenczykowski <maze@google.com>
      Cc: Eugenia Emantayev <eugenia@mellanox.com>
      Cc: Wei Wang <weiwan@google.com>
      Cc: Willem de Bruijn <willemb@google.com>
      Reviewed-by: NTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f7d3c1cb
    • B
      stmmac: fix parameter to dwmac4_set_umac_addr() · ca8bdaf1
      Ben Dooks 提交于
      The dwmac4_set_umac_addr() takes a struct mac_device_info as
      the first parameter, but is being passed a ioaddr instead from
      dwmac4_set_filter(). Fix the warning/bug by changing the first
      parameter.
      
      drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c:159:46: warning: incorrect type in argument 1 (different address spaces)
      drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c:159:46:    expected struct mac_device_info *hw
      drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c:159:46:    got void [noderef] <asn:2>*ioaddr
      
      Note, only compile tested this as do not have any
      hardware with it in.
      Signed-off-by: NBen Dooks <ben.dooks@codethink.co.uk>
      Acked-by: NGiuseppe Cavallaro <peppe.cavallaro@st.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ca8bdaf1
    • H
      r8152: replace netdev_alloc_skb_ip_align with napi_alloc_skb · c8d83963
      hayeswang 提交于
      Replace netdev_alloc_skb_ip_align() with napi_alloc_skb() which can save
      several CPU cycles by avoiding having to disable and re-enable IRQs.
      Signed-off-by: NHayes Wang <hayeswang@realtek.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c8d83963
    • D
      Merge branch 'bgmac-stats' · cef8a464
      David S. Miller 提交于
      Florian Fainelli says:
      
      ====================
      net: bgmac: Misc improvements
      
      This patch series add minor changes to the bgmac driver:
      
      - properly bind net_device with its backing device structure such that
        we can locate the device using common helper functions
      
      - add support for ethtool statistics reading the HW MIB counters which
        is useful for debugging
      
      - add netdev statistics throughout the TX/RX path to know what is going on
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cef8a464
    • F
      bgmac: Maintain some netdev statistics · 6d490f62
      Florian Fainelli 提交于
      Add a few netdev statistics to report transmitted and received bytes and
      packets and a few obvious errors.
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6d490f62
    • F
      bgmac: Add support for ethtool statistics · f6613d4f
      Florian Fainelli 提交于
      Read the statistics from the BGMAC's builtin MAC and return them to
      user-space using the standard ethtool helpers.
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f6613d4f
    • F
      bgmac: Bind net_device with backing device structure · 2022e9d5
      Florian Fainelli 提交于
      In preparation for allowing different helpers to be utilized against
      network devices created by the bgmac driver, make sure that we bind the
      net_device with core->dev.
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2022e9d5
    • A
      virtio_net: Update the feature bit to comply with spec · 7d84e37e
      Aaron Conole 提交于
      A draft version of the MTU Advice feature bit was specified as 25.  This
      bit is not within the allowed range for network device feature bits, and
      should be changed to be feature bit 3 to fully comply with the spec.
      
      Fixes 14de9d11 ('virtio-net: Add initial MTU advice feature')
      Signed-off-by: NAaron Conole <aconole@redhat.com>
      Suggested-by: N"Michael S. Tsirkin" <mst@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7d84e37e