1. 30 1月, 2019 27 次提交
    • X
      sctp: use SCTP_FUTURE_ASSOC for SCTP_LOCAL_AUTH_CHUNKS sockopt · 48c07217
      Xin Long 提交于
      Check with SCTP_FUTURE_ASSOC instead in
      sctp_getsockopt_local_auth_chunks, it's compatible with 0.
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      48c07217
    • X
      sctp: use SCTP_FUTURE_ASSOC for SCTP_MAXSEG sockopt · 6fd769be
      Xin Long 提交于
      Check with SCTP_FUTURE_ASSOC instead in
      sctp_set/getsockopt_maxseg, it's compatible with 0.
      Also check asoc_id early as other sctp setsockopts does.
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6fd769be
    • X
      sctp: use SCTP_FUTURE_ASSOC for SCTP_ASSOCINFO sockopt · 8889394d
      Xin Long 提交于
      Check with SCTP_FUTURE_ASSOC instead in
      sctp_set/getsockopt_associnfo, it's compatible with 0.
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8889394d
    • X
      sctp: use SCTP_FUTURE_ASSOC for SCTP_RTOINFO sockopt · 7adb5ed5
      Xin Long 提交于
      Check with SCTP_FUTURE_ASSOC instead in
      sctp_set/getsockopt_rtoinfo, it's compatible with 0.
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7adb5ed5
    • X
      sctp: use SCTP_FUTURE_ASSOC for SCTP_PEER_ADDR_PARAMS sockopt · b99e5e02
      Xin Long 提交于
      Check with SCTP_FUTURE_ASSOC instead in
      sctp_/setgetsockopt_peer_addr_params, it's compatible with 0.
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b99e5e02
    • X
      sctp: introduce SCTP_FUTURE/CURRENT/ALL_ASSOC · 80df2704
      Xin Long 提交于
      This patch is to add 3 constants SCTP_FUTURE_ASSOC,
      SCTP_CURRENT_ASSOC and SCTP_ALL_ASSOC for reserved
      assoc_ids, as defined in rfc6458#section-7.2.
      
      And add the process for them when doing lookup and
      inserting in sctp_id2assoc and sctp_assoc_set_id.
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      80df2704
    • D
      Merge branch 'devlink-port' · bde52726
      David S. Miller 提交于
      Vasundhara Volam says:
      
      ====================
      devlink: Add configuration parameters support for devlink_port
      
      This patchset adds support for configuration parameters setting through
      devlink_port.  Each device registers supported configuration parameters
      table.
      
      The user can retrieve data on these parameters by
      "devlink port param show" command and can set new value to a
      parameter by "devlink port param set" command.
      All configuration modes supported by devlink_dev are supported
      by devlink_port also.
      
      Command examples and output:
      
      pci/0000:3b:00.0/0:
        name wake-on-lan type generic
          values:
            cmode permanent value false
      
      pci/0000:3b:00.1/1:
        name wake-on-lan type generic
          values:
            cmode permanent value false
      
      pci/0000:af:00.0/0:
        name wake-on-lan type generic
          values:
            cmode permanent value true
      
      pci/0000:3b:00.0/0:
        name wake-on-lan type generic
          values:
            cmode permanent value false
      
      There is difference of opinion on adding WOL parameter to devlink, between
      Jakub Kicinski and Michael Chan.
      
      Quote from Jakud Kicinski:
      ********
      As explained previously I think it's a very bad idea to add existing
      configuration options to devlink, just because devlink has the ability
      to persist the setting in NVM.  Especially that for WoL you have to get
      the link up so you potentially have all link config stuff as well.  And
      that n-tuple filters are one of the WoL options, meaning we'd need the
      ability to persist n-tuple filters via devlink.
      
      The effort would be far better spent helping with migrating ethtool to
      netlink, and allowing persisting there.
      
      I have not heard any reason why devlink is a better fit.  I can imagine
      you're just doing it here because it's less effort for you since
      ethtool is not yet migrated.
      ********
      
      Quote from Michael Chan:
      ********
      The devlink's WoL parameter is a persistent WoL parameter stored in the
      NIC's NVRAM. It is different from ethtool's WoL parameter in a number of
      ways. ethtool WoL is not persistent over AC power cycle and is considered
      OS-present WoL. As such, ethtool WoL can use a more sophisticated pattern
      including n-tuple with IP address in addition to the more basic types
      (e.g. magic packet). Whereas OS-absent power up WoL should only include
      magic packet and other simple types. The devlink WoL setting does not have
      to match the ethtool WoL setting. The card will autoneg up to the speed
      supported by Vaux so no special devlink link setting is needed.
      ********
      
      Future expansion of WOL parameter to devlink:
      ********
      Add an additional flag to support additional setting to address link settings.
      This will allow attributes to support both runtime and persistent
      configuration.
      ********
      
      v7->v8:
      * Re-ordered function definitions.
      * Append with "Acked-by: Jiri Pirko <jiri@mellanox.com>" to first 3 patches.
      * Add missing devlink_port_param_driverinit_value_get() declaration.
      
      v6->v7:
      * Remove RFC tag from the patch-set.
      
      v5->v6:
      * Replace '-' with '*' in cover letter to avoid cutoff by git.
      
      v4->v5:
      * Added quotes from Jakub Kicinski and Michael chan on devlink's WOL
        parameter in the cover letter.
      
      v3->v4:
      * Update changes done from v2 to v3 version in individual patch
        descriptions.
      
      v2->v3:
      Make following changes as per suggestions from Jiri Pirko and
      Michal Kubecek.
      * Add a helper __devlink_params_register() with common code used by
        both devlink_params_register() and devlink_port_params_register().
      * Define only WOL types used now and define them as bitfield, so that
        mutliple WOL types can be enabled upon power on.
      * Modify "wake-on-lan" name to "wake_on_lan" to be symmetric with
        previous definitions.
      * Rename DEVLINK_PARAM_WOL_XXX to DEVLINK_PARAM_WAKE_XXX to be
        symmetrical with ethtool WOL definitions.
      * Modify bnxt_dl_wol_validate(), to throw error message when user gives
        value other than DEVLINK_PARAM_WAKE_MAGIC or to disable WOL.
      * Use netdev_err() instead of netdev_warn(), when devlink_port_register()
        and devlink_port_params_register() returns error. Also, don't log rc
        in this message.
      
      v1->v2:
      Make following changes as per suggestions from Jiri Pirko.
      * Remove separate enum devlink_port_param_generic_id for port params.
        Instead club it with existing device params. Accordingly refactor
        remaining patchset.
      * Move INIT_LIST_HEAD of port param_list to devlink_port_register()
      * Add a helper devlink_param_verify() to be used for both
        devlink_params_register() and devlink_port_params_register().
      * Add a helper __devlink_params_unregister() for common code in
        devlink_params_unregister() and devlink_port_params_unregister().
      * Move DEVLINK_CMD_PORT_PARAM_XXX definitions to the end of the enum.
      * Split the patches for devlink_port_param_driverinit_value_get() and
        devlink_port_param_driverinit_value_set() into separate patches.
      * define DEVLINK_PARAM_GENERIC_ID_WOL type as u8 and define enum for
        different types of WOL. Accordingly modify bnxt_en patch to validate
        wol type.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bde52726
    • V
      bnxt_en: Add bnxt_en initial port params table and register it · 782a624d
      Vasundhara Volam 提交于
      Register devlink_port with devlink and create initial port params
      table for bnxt_en. The table consists of a generic parameter:
      
      wake_on_lan: Enables Wake on Lan for this port when magic packet
      is received with this port's MAC address using ACPI pattern.
      If enabled, the controller asserts a wake pin upon reception of
      WoL packet.  ACPI (Advanced Configuration and Power Interface) is
      an industry specification for the efficient handling of power
      consumption in desktop and mobile computers.
      
      v2->v3:
      - Modify bnxt_dl_wol_validate(), to throw error message when user gives
        value other than DEVLINK_PARAM_WAKE_MAGIC ot to disable WOL.
      - Use netdev_err() instead of netdev_warn(), when devlink_port_register()
        and devlink_port_params_register() returns error. Also, don't log rc
        in this message.
      
      Cc: Michael Chan <michael.chan@broadcom.com>
      Signed-off-by: NVasundhara Volam <vasundhara-v.volam@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      782a624d
    • V
      devlink: Add a generic wake_on_lan port parameter · b639583f
      Vasundhara Volam 提交于
      wake_on_lan - Enables Wake on Lan for this port. If enabled,
      the controller asserts a wake pin based on the WOL type.
      
      v2->v3:
      - Define only WOL types used now and define them as bitfield, so that
        mutliple WOL types can be enabled upon power on.
      - Modify "wake-on-lan" name to "wake_on_lan" to be symmetric with
        previous definitions.
      - Rename DEVLINK_PARAM_WOL_XXX to DEVLINK_PARAM_WAKE_XXX to be
        symmetrical with ethtool WOL definitions.
      
      Cc: Jiri Pirko <jiri@mellanox.com>
      Signed-off-by: NVasundhara Volam <vasundhara-v.volam@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b639583f
    • V
      devlink: Add devlink notifications support for port params · c1e5786d
      Vasundhara Volam 提交于
      Add notification call for devlink port param set, register and unregister
      functions.
      Add devlink_port_param_value_changed() function to enable the driver notify
      devlink on value change. Driver should use this function after value was
      changed on any configuration mode part to driverinit.
      
      v7->v8:
      Order devlink_port_param_value_changed() definitions followed by
      devlink_param_value_changed()
      
      Cc: Jiri Pirko <jiri@mellanox.com>
      Signed-off-by: NVasundhara Volam <vasundhara-v.volam@broadcom.com>
      Acked-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c1e5786d
    • V
      devlink: Add support for driverinit set value for devlink_port · 5473a7bd
      Vasundhara Volam 提交于
      Add support for "driverinit" configuration mode value for devlink_port
      configuration parameters. Add devlink_port_param_driverinit_value_set()
      function to help the driver set the value to devlink_port.
      
      Also, move the common code to __devlink_param_driverinit_value_set()
      to be used by both device and port params.
      
      v7->v8:
      Re-order the definitions as follows:
      __devlink_param_driverinit_value_get
      __devlink_param_driverinit_value_set
      devlink_param_driverinit_value_get
      devlink_param_driverinit_value_set
      devlink_port_param_driverinit_value_get
      devlink_port_param_driverinit_value_set
      
      Cc: Jiri Pirko <jiri@mellanox.com>
      Signed-off-by: NVasundhara Volam <vasundhara-v.volam@broadcom.com>
      Acked-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5473a7bd
    • V
      devlink: Add support for driverinit get value for devlink_port · ffd19b9a
      Vasundhara Volam 提交于
      Add support for "driverinit" configuration mode value for devlink_port
      configuration parameters. Add devlink_port_param_driverinit_value_get()
      function to help the driver get the value from devlink_port.
      
      Also, move the common code to __devlink_param_driverinit_value_get()
      to be used by both device and port params.
      
      v7->v8:
      -Add the missing devlink_port_param_driverinit_value_get() declaration.
      -Also, order devlink_port_param_driverinit_value_get() after
      devlink_param_driverinit_value_get/set() calls
      
      Cc: Jiri Pirko <jiri@mellanox.com>
      Signed-off-by: NVasundhara Volam <vasundhara-v.volam@broadcom.com>
      Acked-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ffd19b9a
    • V
      devlink: Add port param set command · 9c54873b
      Vasundhara Volam 提交于
      Add port param set command to set the value for a parameter.
      Value can be set to any of the supported configuration modes.
      
      v7->v8: Append "Acked-by: Jiri Pirko <jiri@mellanox.com>"
      
      Cc: Jiri Pirko <jiri@mellanox.com>
      Signed-off-by: NVasundhara Volam <vasundhara-v.volam@broadcom.com>
      Acked-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9c54873b
    • V
      devlink: Add port param get command · f4601dee
      Vasundhara Volam 提交于
      Add port param get command which gets data per parameter.
      It also has option to dump the parameters data per port.
      
      v7->v8: Append "Acked-by: Jiri Pirko <jiri@mellanox.com>"
      
      Cc: Jiri Pirko <jiri@mellanox.com>
      Signed-off-by: NVasundhara Volam <vasundhara-v.volam@broadcom.com>
      Acked-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f4601dee
    • V
      devlink: Add devlink_param for port register and unregister · 39e6160e
      Vasundhara Volam 提交于
      Add functions to register and unregister for the driver supported
      configuration parameters table per port.
      
      v7->v8:
      - Order the definitions following way as suggested by Jiri.
      __devlink_params_register
      __devlink_params_unregister
      devlink_params_register
      devlink_params_unregister
      devlink_port_params_register
      devlink_port_params_unregister
      - Append with Acked-by: Jiri Pirko <jiri@mellanox.com>.
      
      v2->v3:
      - Add a helper __devlink_params_register() with common code used by
        both devlink_params_register() and devlink_port_params_register().
      
      Cc: Jiri Pirko <jiri@mellanox.com>
      Signed-off-by: NVasundhara Volam <vasundhara-v.volam@broadcom.com>
      Acked-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      39e6160e
    • D
      eaf2a47f
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 62967898
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) Need to save away the IV across tls async operations, from Dave
          Watson.
      
       2) Upon successful packet processing, we should liberate the SKB with
          dev_consume_skb{_irq}(). From Yang Wei.
      
       3) Only apply RX hang workaround on effected macb chips, from Harini
          Katakam.
      
       4) Dummy netdev need a proper namespace assigned to them, from Josh
          Elsasser.
      
       5) Some paths of nft_compat run lockless now, and thus we need to use a
          proper refcnt_t. From Florian Westphal.
      
       6) Avoid deadlock in mlx5 by doing IRQ locking, from Moni Shoua.
      
       7) netrom does not refcount sockets properly wrt. timers, fix that by
          using the sock timer API. From Cong Wang.
      
       8) Fix locking of inexact inserts of xfrm policies, from Florian
          Westphal.
      
       9) Missing xfrm hash generation bump, also from Florian.
      
      10) Missing of_node_put() in hns driver, from Yonglong Liu.
      
      11) Fix DN_IFREQ_SIZE, from Johannes Berg.
      
      12) ip6mr notifier is invoked during traversal of wrong table, from Nir
          Dotan.
      
      13) TX promisc settings not performed correctly in qed, from Manish
          Chopra.
      
      14) Fix OOB access in vhost, from Jason Wang.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (52 commits)
        MAINTAINERS: Add entry for XDP (eXpress Data Path)
        net: set default network namespace in init_dummy_netdev()
        net: b44: replace dev_kfree_skb_xxx by dev_consume_skb_xxx for drop profiles
        net: caif: call dev_consume_skb_any when skb xmit done
        net: 8139cp: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles
        net: macb: Apply RXUBR workaround only to versions with errata
        net: ti: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles
        net: apple: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles
        net: amd8111e: replace dev_kfree_skb_irq by dev_consume_skb_irq
        net: alteon: replace dev_kfree_skb_irq by dev_consume_skb_irq
        net: tls: Fix deadlock in free_resources tx
        net: tls: Save iv in tls_rec for async crypto requests
        vhost: fix OOB in get_rx_bufs()
        qed: Fix stack out of bounds bug
        qed: Fix system crash in ll2 xmit
        qed: Fix VF probe failure while FLR
        qed: Fix LACP pdu drops for VFs
        qed: Fix bug in tx promiscuous mode settings
        net: i825xx: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles
        netfilter: ipt_CLUSTERIP: fix warning unused variable cn
        ...
      62967898
    • J
      MAINTAINERS: Add entry for XDP (eXpress Data Path) · d07e1e0f
      Jesper Dangaard Brouer 提交于
      Add multiple people as maintainers for XDP, sorted alphabetically.
      
      XDP is also tied to driver level support and code, but we cannot add all
      drivers to the list. Instead K: and N: match on 'xdp' in hope to catch some
      of those changes in drivers.
      Signed-off-by: NJesper Dangaard Brouer <brouer@redhat.com>
      Acked-by: NJohn Fastabend <john.fastabend@gmail.com>
      Acked-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Acked-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NDaniel Borkmann <daniel@iogearbox.net>
      Acked-by: NAlexei Starovoitov <ast@kernel.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d07e1e0f
    • J
      net: set default network namespace in init_dummy_netdev() · 35edfdc7
      Josh Elsasser 提交于
      Assign a default net namespace to netdevs created by init_dummy_netdev().
      Fixes a NULL pointer dereference caused by busy-polling a socket bound to
      an iwlwifi wireless device, which bumps the per-net BUSYPOLLRXPACKETS stat
      if napi_poll() received packets:
      
        BUG: unable to handle kernel NULL pointer dereference at 0000000000000190
        IP: napi_busy_loop+0xd6/0x200
        Call Trace:
          sock_poll+0x5e/0x80
          do_sys_poll+0x324/0x5a0
          SyS_poll+0x6c/0xf0
          do_syscall_64+0x6b/0x1f0
          entry_SYSCALL_64_after_hwframe+0x3d/0xa2
      
      Fixes: 7db6b048 ("net: Commonize busy polling code to focus on napi_id instead of socket")
      Signed-off-by: NJosh Elsasser <jelsasser@appneta.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      35edfdc7
    • G
      cxgb4: cxgb4_tc_u32: use struct_size() in kvzalloc() · c829f5f5
      Gustavo A. R. Silva 提交于
      One of the more common cases of allocation size calculations is finding the
      size of a structure that has a zero-sized array at the end, along with memory
      for some number of elements for that array. For example:
      
      struct foo {
          int stuff;
          struct boo entry[];
      };
      
      instance = kvzalloc(sizeof(struct foo) + count * sizeof(struct boo), GFP_KERNEL);
      
      Instead of leaving these open-coded and prone to type mistakes, we can now
      use the new struct_size() helper:
      
      instance = kvzalloc(struct_size(instance, entry, count), GFP_KERNEL);
      
      This code was detected with the help of Coccinelle.
      Signed-off-by: NGustavo A. R. Silva <gustavo@embeddedor.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c829f5f5
    • G
      cxgb4: clip_tbl: Use struct_size() in kvzalloc() · 9f672984
      Gustavo A. R. Silva 提交于
      One of the more common cases of allocation size calculations is finding the
      size of a structure that has a zero-sized array at the end, along with memory
      for some number of elements for that array. For example:
      
      struct foo {
          int stuff;
          struct boo entry[];
      };
      
      instance = kvzalloc(sizeof(struct foo) + count * sizeof(struct boo), GFP_KERNEL);
      
      Instead of leaving these open-coded and prone to type mistakes, we can now
      use the new struct_size() helper:
      
      instance = kvzalloc(struct_size(instance, entry, count), GFP_KERNEL);
      
      This code was detected with the help of Coccinelle.
      Signed-off-by: NGustavo A. R. Silva <gustavo@embeddedor.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9f672984
    • Y
      net: b44: replace dev_kfree_skb_xxx by dev_consume_skb_xxx for drop profiles · 0f0ed828
      Yang Wei 提交于
      The skb should be freed by dev_consume_skb_any() in b44_start_xmit()
      when bounce_skb is used. The skb is be replaced by bounce_skb, so the
      original skb should be consumed(not drop).
      
      dev_consume_skb_irq() should be called in b44_tx() when skb xmit
      done. It makes drop profiles(dropwatch, perf) more friendly.
      Signed-off-by: NYang Wei <yang.wei9@zte.com.cn>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0f0ed828
    • Y
      net: caif: call dev_consume_skb_any when skb xmit done · e339f863
      Yang Wei 提交于
      The skb shouled be consumed when xmit done, it makes drop profiles
      (dropwatch, perf) more friendly.
      dev_kfree_skb_irq()/kfree_skb() shouled be replaced by
      dev_consume_skb_any(), it makes code cleaner.
      Signed-off-by: NYang Wei <yang.wei9@zte.com.cn>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e339f863
    • Y
      net: 8139cp: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles · 896cebc0
      Yang Wei 提交于
      dev_consume_skb_irq() should be called in cp_tx() when skb xmit
      done. It makes drop profiles(dropwatch, perf) more friendly.
      Signed-off-by: NYang Wei <yang.wei9@zte.com.cn>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      896cebc0
    • A
      MAINTAINERS: update cxgb4 and cxgb3 maintainer · baa962e3
      Arjun Vynipadath 提交于
      Vishal Kulkarni will be the new maintainer for Chelsio cxgb3/cxgb4
      drivers.
      Signed-off-by: NArjun Vynipadath <arjun@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      baa962e3
    • A
      cxgb4vf: Update port information in cxgb4vf_open() · 18d79f72
      Arjun Vynipadath 提交于
      It's possible that the basic port information could have
      changed since we first read it.
      Signed-off-by: NArjun Vynipadath <arjun@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      18d79f72
    • H
      net: macb: Apply RXUBR workaround only to versions with errata · e501070e
      Harini Katakam 提交于
      The interrupt handler contains a workaround for RX hang applicable
      to Zynq and AT91RM9200 only. Subsequent versions do not need this
      workaround. This workaround unnecessarily resets RX whenever RX used
      bit read is observed, which can be often under heavy traffic. There
      is no other action performed on RX UBR interrupt. Hence introduce a
      CAPS mask; enable this interrupt and workaround only on affected
      versions.
      Signed-off-by: NHarini Katakam <harini.katakam@xilinx.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e501070e
  2. 29 1月, 2019 13 次提交
    • V
      liquidio: fix the validation of rx checksum status from NIC hardware · ac93e2fa
      Veerasenareddy Burru 提交于
      Fixed the code that was incorrectly interpreting the rx checksum validation
      status from hardware, and updating kernel that the packet arrived with
      correct checksum though the packet arrived with incorrect checksum and
      hardware also indicated checksum is not correct.
      Signed-off-by: NVeerasenareddy Burru <vburru@marvell.com>
      Acked-by: NDerek Chickles <dchickles@marvell.com>
      Signed-off-by: NFelix Manlunas <fmanlunas@marvell.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ac93e2fa
    • Y
      net: ti: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles · b3379a42
      Yang Wei 提交于
      dev_consume_skb_irq() should be called in cpmac_end_xmit() when
      xmit done. It makes drop profiles more friendly.
      Signed-off-by: NYang Wei <yang.wei9@zte.com.cn>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b3379a42
    • Y
      net: apple: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles · 10009115
      Yang Wei 提交于
      dev_consume_skb_irq() should be called in bmac_txdma_intr() when
      xmit done. It makes drop profiles more friendly.
      Signed-off-by: NYang Wei <yang.wei9@zte.com.cn>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      10009115
    • AlbinYang's avatar
      net: amd8111e: replace dev_kfree_skb_irq by dev_consume_skb_irq · 3afa73dd
      AlbinYang 提交于
      dev_consume_skb_irq() should be called in amd8111e_tx() when xmit
      done. It makes drop profiles more friendly.
      Signed-off-by: NYang Wei <yang.wei9@zte.com.cn>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3afa73dd
    • AlbinYang's avatar
      net: alteon: replace dev_kfree_skb_irq by dev_consume_skb_irq · f48af114
      AlbinYang 提交于
      dev_consume_skb_irq() should be called in ace_tx_int() when xmit
      done. It makes drop profiles more friendly.
      Signed-off-by: NYang Wei <yang.wei9@zte.com.cn>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f48af114
    • D
      net: tls: Fix deadlock in free_resources tx · 10231213
      Dave Watson 提交于
      If there are outstanding async tx requests (when crypto returns EINPROGRESS),
      there is a potential deadlock: the tx work acquires the lock, while we
      cancel_delayed_work_sync() while holding the lock.  Drop the lock while waiting
      for the work to complete.
      
      Fixes: a42055e8 ("Add support for async encryption of records...")
      Signed-off-by: NDave Watson <davejwatson@fb.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      10231213
    • D
      net: tls: Save iv in tls_rec for async crypto requests · 32eb67b9
      Dave Watson 提交于
      aead_request_set_crypt takes an iv pointer, and we change the iv
      soon after setting it.  Some async crypto algorithms don't save the iv,
      so we need to save it in the tls_rec for async requests.
      
      Found by hardcoding x64 aesni to use async crypto manager (to test the async
      codepath), however I don't think this combination can happen in the wild.
      Presumably other hardware offloads will need this fix, but there have been
      no user reports.
      
      Fixes: a42055e8 ("Add support for async encryption of records...")
      Signed-off-by: NDave Watson <davejwatson@fb.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      32eb67b9
    • J
      vhost: fix OOB in get_rx_bufs() · b46a0bf7
      Jason Wang 提交于
      After batched used ring updating was introduced in commit e2b3b35e
      ("vhost_net: batch used ring update in rx"). We tend to batch heads in
      vq->heads for more than one packet. But the quota passed to
      get_rx_bufs() was not correctly limited, which can result a OOB write
      in vq->heads.
      
              headcount = get_rx_bufs(vq, vq->heads + nvq->done_idx,
                          vhost_len, &in, vq_log, &log,
                          likely(mergeable) ? UIO_MAXIOV : 1);
      
      UIO_MAXIOV was still used which is wrong since we could have batched
      used in vq->heads, this will cause OOB if the next buffer needs more
      than 960 (1024 (UIO_MAXIOV) - 64 (VHOST_NET_BATCH)) heads after we've
      batched 64 (VHOST_NET_BATCH) heads:
      Acked-by: NStefan Hajnoczi <stefanha@redhat.com>
      
      =============================================================================
      BUG kmalloc-8k (Tainted: G    B            ): Redzone overwritten
      -----------------------------------------------------------------------------
      
      INFO: 0x00000000fd93b7a2-0x00000000f0713384. First byte 0xa9 instead of 0xcc
      INFO: Allocated in alloc_pd+0x22/0x60 age=3933677 cpu=2 pid=2674
          kmem_cache_alloc_trace+0xbb/0x140
          alloc_pd+0x22/0x60
          gen8_ppgtt_create+0x11d/0x5f0
          i915_ppgtt_create+0x16/0x80
          i915_gem_create_context+0x248/0x390
          i915_gem_context_create_ioctl+0x4b/0xe0
          drm_ioctl_kernel+0xa5/0xf0
          drm_ioctl+0x2ed/0x3a0
          do_vfs_ioctl+0x9f/0x620
          ksys_ioctl+0x6b/0x80
          __x64_sys_ioctl+0x11/0x20
          do_syscall_64+0x43/0xf0
          entry_SYSCALL_64_after_hwframe+0x44/0xa9
      INFO: Slab 0x00000000d13e87af objects=3 used=3 fp=0x          (null) flags=0x200000000010201
      INFO: Object 0x0000000003278802 @offset=17064 fp=0x00000000e2e6652b
      
      Fixing this by allocating UIO_MAXIOV + VHOST_NET_BATCH iovs for
      vhost-net. This is done through set the limitation through
      vhost_dev_init(), then set_owner can allocate the number of iov in a
      per device manner.
      
      This fixes CVE-2018-16880.
      
      Fixes: e2b3b35e ("vhost_net: batch used ring update in rx")
      Signed-off-by: NJason Wang <jasowang@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b46a0bf7
    • S
      enetc: include linux/vmalloc.h for vzalloc etc · bbcbf2ee
      Stephen Rothwell 提交于
      Fixes: d4fd0404 ("enetc: Introduce basic PF and VF ENETC ethernet drivers")
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bbcbf2ee
    • D
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next · ec7146db
      David S. Miller 提交于
      Daniel Borkmann says:
      
      ====================
      pull-request: bpf-next 2019-01-29
      
      The following pull-request contains BPF updates for your *net-next* tree.
      
      The main changes are:
      
      1) Teach verifier dead code removal, this also allows for optimizing /
         removing conditional branches around dead code and to shrink the
         resulting image. Code store constrained architectures like nfp would
         have hard time doing this at JIT level, from Jakub.
      
      2) Add JMP32 instructions to BPF ISA in order to allow for optimizing
         code generation for 32-bit sub-registers. Evaluation shows that this
         can result in code reduction of ~5-20% compared to 64 bit-only code
         generation. Also add implementation for most JITs, from Jiong.
      
      3) Add support for __int128 types in BTF which is also needed for
         vmlinux's BTF conversion to work, from Yonghong.
      
      4) Add a new command to bpftool in order to dump a list of BPF-related
         parameters from the system or for a specific network device e.g. in
         terms of available prog/map types or helper functions, from Quentin.
      
      5) Add AF_XDP sock_diag interface for querying sockets from user
         space which provides information about the RX/TX/fill/completion
         rings, umem, memory usage etc, from Björn.
      
      6) Add skb context access for skb_shared_info->gso_segs field, from Eric.
      
      7) Add support for testing flow dissector BPF programs by extending
         existing BPF_PROG_TEST_RUN infrastructure, from Stanislav.
      
      8) Split BPF kselftest's test_verifier into various subgroups of tests
         in order better deal with merge conflicts in this area, from Jakub.
      
      9) Add support for queue/stack manipulations in bpftool, from Stanislav.
      
      10) Document BTF, from Yonghong.
      
      11) Dump supported ELF section names in libbpf on program load
          failure, from Taeung.
      
      12) Silence a false positive compiler warning in verifier's BTF
          handling, from Peter.
      
      13) Fix help string in bpftool's feature probing, from Prashant.
      
      14) Remove duplicate includes in BPF kselftests, from Yue.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ec7146db
    • D
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next · 343917b4
      David S. Miller 提交于
      Pablo Neira Ayuso says:
      
      ====================
      Netfilter/IPVS updates for net-next
      
      The following patchset contains Netfilter/IPVS updates for your net-next tree:
      
      1) Introduce a hashtable to speed up object lookups, from Florian Westphal.
      
      2) Make direct calls to built-in extension, also from Florian.
      
      3) Call helper before confirming the conntrack as it used to be originally,
         from Florian.
      
      4) Call request_module() to autoload br_netfilter when physdev is used
         to relax the dependency, also from Florian.
      
      5) Allow to insert rules at a given position ID that is internal to the
         batch, from Phil Sutter.
      
      6) Several patches to replace conntrack indirections by direct calls,
         and to reduce modularization, from Florian. This also includes
         several follow up patches to deal with minor fallout from this
         rework.
      
      7) Use RCU from conntrack gre helper, from Florian.
      
      8) GRE conntrack module becomes built-in into nf_conntrack, from Florian.
      
      9) Replace nf_ct_invert_tuplepr() by calls to nf_ct_invert_tuple(),
         from Florian.
      
      10) Unify sysctl handling at the core of nf_conntrack, from Florian.
      
      11) Provide modparam to register conntrack hooks.
      
      12) Allow to match on the interface kind string, from wenxu.
      
      13) Remove several exported symbols, not required anymore now after
          a bit of de-modulatization work has been done, from Florian.
      
      14) Remove built-in map support in the hash extension, this can be
          done with the existing userspace infrastructure, from laura.
      
      15) Remove indirection to calculate checksums in IPVS, from Matteo Croce.
      
      16) Use call wrappers for indirection in IPVS, also from Matteo.
      
      17) Remove superfluous __percpu parameter in nft_counter, patch from
          Luc Van Oostenryck.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      343917b4
    • D
      Merge branch 'bpf-flow-dissector-tests' · 3d2af27a
      Daniel Borkmann 提交于
      Stanislav Fomichev says:
      
      ====================
      This patch series adds support for testing flow dissector BPF programs
      by extending already existing BPF_PROG_TEST_RUN. The goal is to have
      a packet as an input and `struct bpf_flow_key' as an output. That way
      we can easily test flow dissector programs' behavior. I've also modified
      existing test_progs.c test to do a simple flow dissector run as well.
      
      * first patch introduces new __skb_flow_bpf_dissect to simplify
        sharing between __skb_flow_bpf_dissect and BPF_PROG_TEST_RUN
      * second patch adds actual BPF_PROG_TEST_RUN support
      * third patch adds example usage to the selftests
      
      v3:
      * rebased on top of latest bpf-next
      
      v2:
      * loop over 'kattr->test.repeat' inside of
        bpf_prog_test_run_flow_dissector, don't reuse
        bpf_test_run/bpf_test_run_one
      ====================
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      3d2af27a
    • S
      selftests/bpf: add simple BPF_PROG_TEST_RUN examples for flow dissector · bf0f0fd9
      Stanislav Fomichev 提交于
      Use existing pkt_v4 and pkt_v6 to make sure flow_keys are what we want.
      
      Also, add new bpf_flow_load routine (and flow_dissector_load.h header)
      that loads bpf_flow.o program and does all required setup.
      Signed-off-by: NStanislav Fomichev <sdf@google.com>
      Acked-by: NSong Liu <songliubraving@fb.com>
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      bf0f0fd9