1. 18 Mar, 2018 25 commits
  2. 17 Mar, 2018 15 commits
    • Grygorii Strashko's avatar
      net: ethernet: ti: cpsw: enable vlan rx vlan offload · a3a41d2f
      Grygorii Strashko authored
      In VLAN_AWARE mode CPSW can insert VLAN header encapsulation word on Host
      port 0 egress (RX) before the packet data if RX_VLAN_ENCAP bit is set in
      CPSW_CONTROL register. VLAN header encapsulation word has following format:
      
       HDR_PKT_Priority bits 29-31 - Header Packet VLAN prio (Highest prio: 7)
       HDR_PKT_CFI 	  bits 28 - Header Packet VLAN CFI bit.
       HDR_PKT_Vid 	  bits 27-16 - Header Packet VLAN ID
       PKT_Type         bits 8-9 - Packet Type. Indicates whether the packet is
                       	VLAN-tagged, priority-tagged, or non-tagged.
      	00: VLAN-tagged packet
      	01: Reserved
      	10: Priority-tagged packet
      	11: Non-tagged packet
      
      This feature can be used to implement TX VLAN offload in case of
      VLAN-tagged packets and to insert VLAN tag in case Non-tagged packet was
      received on port with PVID set. As per documentation, CPSW never modifies
      packet data on Host egress (RX) and as result, without this feature
      enabled, Host port will not be able to receive properly packets which
      entered switch non-tagged through external Port with PVID set (when
      non-tagged packet forwarded from external Port with PVID set to another
      external Port - packet will be VLAN tagged properly).
      
      Implementation details:
      - on RX driver will check CPDMA status bit RX_VLAN_ENCAP BIT(19) in CPPI
      descriptor to identify when VLAN header encapsulation word is present.
      - PKT_Type = 0x01 or 0x02 then ignore VLAN header encapsulation word and
      pass packet as is;
      - if HDR_PKT_Vid = 0 then ignore VLAN header encapsulation word and pass
      packet as is;
      - In dual mac mode traffic is separated between ports using default port
      vlans, which are not be visible to Host and so should not be reported.
      Hence, check for default port vlans in dual mac mode and ignore VLAN header
      encapsulation word;
      - otherwise fill SKB with VLAN info using __vlan_hwaccel_put_tag();
      - PKT_Type = 0x00 (VLAN-tagged) then strip out VLAN header from SKB.
      Signed-off-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a3a41d2f
    • Arjun Vynipadath's avatar
      cxgb4: Fix queue free path of ULD drivers · d7cb4449
      Arjun Vynipadath authored
      Setting sge_uld_rxq_info to NULL in free_queues_uld().
      We are referencing sge_uld_rxq_info in cxgb_up(). This
      will fix a panic when interface is brought up after a
      ULDq creation failure.
      
      Fixes: 94cdb8bb (cxgb4: Add support for dynamic allocation
             of resources for ULD)
      Signed-off-by: default avatarArjun Vynipadath <arjun@chelsio.com>
      Signed-off-by: default avatarCasey Leedom <leedom@chelsio.com>
      Signed-off-by: default avatarGanesh Goudhar <ganeshgr@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d7cb4449
    • Sowmini Varadhan's avatar
      rds: tcp: must use spin_lock_irq* and not spin_lock_bh with rds_tcp_conn_lock · 53d0e83f
      Sowmini Varadhan authored
      rds_tcp_connection allocation/free management has the potential to be
      called from __rds_conn_create after IRQs have been disabled, so
      spin_[un]lock_bh cannot be used with rds_tcp_conn_lock.
      
      Bottom-halves that need to synchronize for critical sections protected
      by rds_tcp_conn_lock should instead use rds_destroy_pending() correctly.
      
      Reported-by: syzbot+c68e51bb5e699d3f8d91@syzkaller.appspotmail.com
      Fixes: ebeeb1ad ("rds: tcp: use rds_destroy_pending() to synchronize
             netns/module teardown and rds connection/workq management")
      Signed-off-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
      Acked-by: default avatarSantosh Shilimkar <santosh.shilimkar@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      53d0e83f
    • David S. Miller's avatar
      Merge branch 'tipc-obsolete-zone-concept' · 3008ba5f
      David S. Miller authored
      Jon Maloy says:
      
      ====================
      tipc: obsolete zone concept
      
      Functionality related to the 'zone' concept was never implemented in
      TIPC. In this series we eliminate the remaining traces of it in the
      code, and can hence take a first step in reducing the footprint and
      complexity of the binding table.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3008ba5f
    • Jon Maloy's avatar
      tipc: some name changes · e50e73e1
      Jon Maloy authored
      We rename some lists and fields in struct publication both to make
      the naming more consistent and to better reflect their roles. We
      also update the descriptions of those lists.
      
      node_list -> local_publ
      cluster_list -> all_publ
      pport_list -> binding_sock
      ref -> port
      
      There are no functional changes in this commit.
      Acked-by: default avatarYing Xue <ying.xue@windriver.com>
      Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e50e73e1
    • Jon Maloy's avatar
      tipc: merge two lists in struct publication · 935439cc
      Jon Maloy authored
      The size of struct publication can be reduced further. Membership in
      lists 'nodesub_list' and 'local_list' is mutually exlusive, in that
      remote publications use the former and local publications the latter.
      We replace the two lists with one single, named 'binding_node' which
      reflects what it really is.
      Acked-by: default avatarYing Xue <ying.xue@windriver.com>
      Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      935439cc
    • Jon Maloy's avatar
      tipc: remove zone_list member in struct publication · ba765ec6
      Jon Maloy authored
      As a further consequence of the previous commits, we can also remove
      the member 'zone_list 'in struct name_info and struct publication.
      Instead, we now let the member cluster_list take over the role a
      container of all publications of a given <type,lower, upper>.
      We also remove the counters for the size of those lists, since
      they don't serve any purpose.
      Acked-by: default avatarYing Xue <ying.xue@windriver.com>
      Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ba765ec6
    • Jon Maloy's avatar
      tipc: remove zone publication list in name table · 64a52b26
      Jon Maloy authored
      As a consequence of the previous commit we nan now eliminate zone scope
      related lists in the name table. We start with name_table::publ_list[3],
      which can now be replaced with two lists, one for node scope publications
      and one for cluster scope publications.
      Acked-by: default avatarYing Xue <ying.xue@windriver.com>
      Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      64a52b26
    • Jon Maloy's avatar
      tipc: obsolete TIPC_ZONE_SCOPE · 928df188
      Jon Maloy authored
      Publications for TIPC_CLUSTER_SCOPE and TIPC_ZONE_SCOPE are in all
      aspects handled the same way, both on the publishing node and on the
      receiving nodes.
      
      Despite previous ambitions to the contrary, this is never going to change,
      so we take the conseqeunce of this and obsolete TIPC_ZONE_SCOPE and related
      macros/functions. Whenever a user is doing a bind() or a sendmsg() attempt
      using ZONE_SCOPE we translate this internally to CLUSTER_SCOPE, while we
      remain compatible with users and remote nodes still using ZONE_SCOPE.
      
      Furthermore, the non-formalized scope value 0 has always been permitted
      for use during lookup, with the same meaning as ZONE_SCOPE/CLUSTER_SCOPE.
      We now permit it even as binding scope, but for compatibility reasons we
      choose to not change the value of TIPC_CLUSTER_SCOPE.
      Acked-by: default avatarYing Xue <ying.xue@windriver.com>
      Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      928df188
    • David S. Miller's avatar
      Merge branch 'pernet-convert-part8' · 4f1aec01
      David S. Miller authored
      Kirill Tkhai says:
      
      ====================
      Converting pernet_operations (part #8)
      
      this series continues to review and to convert pernet_operations
      to make them possible to be executed in parallel for several
      net namespaces at the same time. There are different operations
      over the tree, mostly are ipvs.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4f1aec01
    • Kirill Tkhai's avatar
      net: Convert ip_vs_ftp_ops · 6c77e795
      Kirill Tkhai authored
      These pernet_operations register and unregister ipvs app.
      register_ip_vs_app(), unregister_ip_vs_app() and
      register_ip_vs_app_inc() modify per-net structures,
      and there are no global structures touched. So,
      this looks safe to be marked as async.
      Signed-off-by: default avatarKirill Tkhai <ktkhai@virtuozzo.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6c77e795
    • Kirill Tkhai's avatar
      net: Convert ipvs_core_dev_ops · d0edfbb4
      Kirill Tkhai authored
      Exit method stops two per-net threads and cancels
      delayed work. Everything looks nicely per-net divided.
      Signed-off-by: default avatarKirill Tkhai <ktkhai@virtuozzo.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d0edfbb4
    • Kirill Tkhai's avatar
      net: Convert ipvs_core_ops · 554855cc
      Kirill Tkhai authored
      These pernet_operations register and unregister nf hooks,
      /proc entries, sysctl, percpu statistics. There are several
      global lists, and the only list modified without exclusive
      locks is ip_vs_conn_tab in ip_vs_conn_flush(). We iterate
      the list and force the timers expire at the moment. Since
      there were possible several timer expirations before this
      patch, and since they are safe, the patch does not invent
      new parallelism of their destruction. These pernet_operations
      look safe to be converted.
      Signed-off-by: default avatarKirill Tkhai <ktkhai@virtuozzo.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      554855cc
    • Kirill Tkhai's avatar
      net: Convert ovs_net_ops · ec716650
      Kirill Tkhai authored
      These pernet_operations initialize and destroy net_generic()
      data pointed by ovs_net_id. Exit method destroys vports from
      alive net to exiting net. Since they are only pernet_operations
      interested in this data, and exit method is executed under
      exclusive global lock (ovs_mutex), they are safe to be executed
      in parallel.
      Signed-off-by: default avatarKirill Tkhai <ktkhai@virtuozzo.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ec716650
    • Kirill Tkhai's avatar
      net: Convert mpls_net_ops · 8cec2f49
      Kirill Tkhai authored
      These pernet_operations register and unregister sysctl table.
      Exit methods frees platform_labels from net::mpls::platform_label.
      Everything is per-net, and they looks safe to be marked async.
      Signed-off-by: default avatarKirill Tkhai <ktkhai@virtuozzo.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8cec2f49