1. 01 Dec, 2020 40 commits
    • Randy Dunlap's avatar
      net/tipc: fix socket.c kernel-doc · f172f4b8
      Randy Dunlap authored
      Fix socket.c kernel-doc warnings in preparation for adding to the
      networking docbook.
      
      Also, for rcvbuf_limit(), use bullet notation so that the lines do
      not run together.
      
      ../net/tipc/socket.c:130: warning: Function parameter or member 'cong_links' not described in 'tipc_sock'
      ../net/tipc/socket.c:130: warning: Function parameter or member 'probe_unacked' not described in 'tipc_sock'
      ../net/tipc/socket.c:130: warning: Function parameter or member 'snd_win' not described in 'tipc_sock'
      ../net/tipc/socket.c:130: warning: Function parameter or member 'peer_caps' not described in 'tipc_sock'
      ../net/tipc/socket.c:130: warning: Function parameter or member 'rcv_win' not described in 'tipc_sock'
      ../net/tipc/socket.c:130: warning: Function parameter or member 'group' not described in 'tipc_sock'
      ../net/tipc/socket.c:130: warning: Function parameter or member 'oneway' not described in 'tipc_sock'
      ../net/tipc/socket.c:130: warning: Function parameter or member 'nagle_start' not described in 'tipc_sock'
      ../net/tipc/socket.c:130: warning: Function parameter or member 'snd_backlog' not described in 'tipc_sock'
      ../net/tipc/socket.c:130: warning: Function parameter or member 'msg_acc' not described in 'tipc_sock'
      ../net/tipc/socket.c:130: warning: Function parameter or member 'pkt_cnt' not described in 'tipc_sock'
      ../net/tipc/socket.c:130: warning: Function parameter or member 'expect_ack' not described in 'tipc_sock'
      ../net/tipc/socket.c:130: warning: Function parameter or member 'nodelay' not described in 'tipc_sock'
      ../net/tipc/socket.c:130: warning: Function parameter or member 'group_is_open' not described in 'tipc_sock'
      ../net/tipc/socket.c:267: warning: Function parameter or member 'sk' not described in 'tsk_advance_rx_queue'
      ../net/tipc/socket.c:295: warning: Function parameter or member 'sk' not described in 'tsk_rej_rx_queue'
      ../net/tipc/socket.c:295: warning: Function parameter or member 'error' not described in 'tsk_rej_rx_queue'
      ../net/tipc/socket.c:894: warning: Function parameter or member 'tsk' not described in 'tipc_send_group_msg'
      ../net/tipc/socket.c:1187: warning: Function parameter or member 'net' not described in 'tipc_sk_mcast_rcv'
      ../net/tipc/socket.c:1323: warning: Function parameter or member 'inputq' not described in 'tipc_sk_conn_proto_rcv'
      ../net/tipc/socket.c:1323: warning: Function parameter or member 'xmitq' not described in 'tipc_sk_conn_proto_rcv'
      ../net/tipc/socket.c:1885: warning: Function parameter or member 'sock' not described in 'tipc_recvmsg'
      ../net/tipc/socket.c:1993: warning: Function parameter or member 'sock' not described in 'tipc_recvstream'
      ../net/tipc/socket.c:2313: warning: Function parameter or member 'xmitq' not described in 'tipc_sk_filter_rcv'
      ../net/tipc/socket.c:2404: warning: Function parameter or member 'xmitq' not described in 'tipc_sk_enqueue'
      ../net/tipc/socket.c:2456: warning: Function parameter or member 'net' not described in 'tipc_sk_rcv'
      ../net/tipc/socket.c:2693: warning: Function parameter or member 'kern' not described in 'tipc_accept'
      ../net/tipc/socket.c:3816: warning: Excess function parameter 'sysctl_tipc_sk_filter' description in 'tipc_sk_filtering'
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      f172f4b8
    • Randy Dunlap's avatar
      net/tipc: fix node.c kernel-doc · 4476441e
      Randy Dunlap authored
      Fix node.c kernel-doc warnings in preparation for adding to the
      networking docbook.
      
      ../net/tipc/node.c:141: warning: Function parameter or member 'kref' not described in 'tipc_node'
      ../net/tipc/node.c:141: warning: Function parameter or member 'bc_entry' not described in 'tipc_node'
      ../net/tipc/node.c:141: warning: Function parameter or member 'failover_sent' not described in 'tipc_node'
      ../net/tipc/node.c:141: warning: Function parameter or member 'peer_id' not described in 'tipc_node'
      ../net/tipc/node.c:141: warning: Function parameter or member 'peer_id_string' not described in 'tipc_node'
      ../net/tipc/node.c:141: warning: Function parameter or member 'conn_sks' not described in 'tipc_node'
      ../net/tipc/node.c:141: warning: Function parameter or member 'keepalive_intv' not described in 'tipc_node'
      ../net/tipc/node.c:141: warning: Function parameter or member 'timer' not described in 'tipc_node'
      ../net/tipc/node.c:141: warning: Function parameter or member 'peer_net' not described in 'tipc_node'
      ../net/tipc/node.c:141: warning: Function parameter or member 'peer_hash_mix' not described in 'tipc_node'
      ../net/tipc/node.c:273: warning: Function parameter or member '__n' not described in 'tipc_node_crypto_rx'
      ../net/tipc/node.c:822: warning: Function parameter or member 'n' not described in '__tipc_node_link_up'
      ../net/tipc/node.c:822: warning: Function parameter or member 'bearer_id' not described in '__tipc_node_link_up'
      ../net/tipc/node.c:822: warning: Function parameter or member 'xmitq' not described in '__tipc_node_link_up'
      ../net/tipc/node.c:888: warning: Function parameter or member 'n' not described in 'tipc_node_link_up'
      ../net/tipc/node.c:888: warning: Function parameter or member 'bearer_id' not described in 'tipc_node_link_up'
      ../net/tipc/node.c:888: warning: Function parameter or member 'xmitq' not described in 'tipc_node_link_up'
      ../net/tipc/node.c:948: warning: Function parameter or member 'n' not described in '__tipc_node_link_down'
      ../net/tipc/node.c:948: warning: Function parameter or member 'bearer_id' not described in '__tipc_node_link_down'
      ../net/tipc/node.c:948: warning: Function parameter or member 'xmitq' not described in '__tipc_node_link_down'
      ../net/tipc/node.c:948: warning: Function parameter or member 'maddr' not described in '__tipc_node_link_down'
      ../net/tipc/node.c:1537: warning: Function parameter or member 'net' not described in 'tipc_node_get_linkname'
      ../net/tipc/node.c:1537: warning: Function parameter or member 'len' not described in 'tipc_node_get_linkname'
      ../net/tipc/node.c:1891: warning: Function parameter or member 'n' not described in 'tipc_node_check_state'
      ../net/tipc/node.c:1891: warning: Function parameter or member 'xmitq' not described in 'tipc_node_check_state'
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      4476441e
    • Randy Dunlap's avatar
      net/tipc: fix name_table.c kernel-doc · 5c5d6796
      Randy Dunlap authored
      Fix name_table.c kernel-doc warnings in preparation for adding to the
      networking docbook.
      
      ../net/tipc/name_table.c:115: warning: Function parameter or member 'start' not described in 'service_range_foreach_match'
      ../net/tipc/name_table.c:115: warning: Function parameter or member 'end' not described in 'service_range_foreach_match'
      ../net/tipc/name_table.c:127: warning: Function parameter or member 'start' not described in 'service_range_match_first'
      ../net/tipc/name_table.c:127: warning: Function parameter or member 'end' not described in 'service_range_match_first'
      ../net/tipc/name_table.c:176: warning: Function parameter or member 'start' not described in 'service_range_match_next'
      ../net/tipc/name_table.c:176: warning: Function parameter or member 'end' not described in 'service_range_match_next'
      ../net/tipc/name_table.c:225: warning: Function parameter or member 'type' not described in 'tipc_publ_create'
      ../net/tipc/name_table.c:225: warning: Function parameter or member 'lower' not described in 'tipc_publ_create'
      ../net/tipc/name_table.c:225: warning: Function parameter or member 'upper' not described in 'tipc_publ_create'
      ../net/tipc/name_table.c:225: warning: Function parameter or member 'scope' not described in 'tipc_publ_create'
      ../net/tipc/name_table.c:225: warning: Function parameter or member 'node' not described in 'tipc_publ_create'
      ../net/tipc/name_table.c:225: warning: Function parameter or member 'port' not described in 'tipc_publ_create'
      ../net/tipc/name_table.c:225: warning: Function parameter or member 'key' not described in 'tipc_publ_create'
      ../net/tipc/name_table.c:252: warning: Function parameter or member 'type' not described in 'tipc_service_create'
      ../net/tipc/name_table.c:252: warning: Function parameter or member 'hd' not described in 'tipc_service_create'
      ../net/tipc/name_table.c:367: warning: Function parameter or member 'sr' not described in 'tipc_service_remove_publ'
      ../net/tipc/name_table.c:367: warning: Function parameter or member 'node' not described in 'tipc_service_remove_publ'
      ../net/tipc/name_table.c:367: warning: Function parameter or member 'key' not described in 'tipc_service_remove_publ'
      ../net/tipc/name_table.c:383: warning: Function parameter or member 'pa' not described in 'publication_after'
      ../net/tipc/name_table.c:383: warning: Function parameter or member 'pb' not described in 'publication_after'
      ../net/tipc/name_table.c:401: warning: Function parameter or member 'service' not described in 'tipc_service_subscribe'
      ../net/tipc/name_table.c:401: warning: Function parameter or member 'sub' not described in 'tipc_service_subscribe'
      ../net/tipc/name_table.c:546: warning: Function parameter or member 'net' not described in 'tipc_nametbl_translate'
      ../net/tipc/name_table.c:546: warning: Function parameter or member 'type' not described in 'tipc_nametbl_translate'
      ../net/tipc/name_table.c:546: warning: Function parameter or member 'instance' not described in 'tipc_nametbl_translate'
      ../net/tipc/name_table.c:546: warning: Function parameter or member 'dnode' not described in 'tipc_nametbl_translate'
      ../net/tipc/name_table.c:762: warning: Function parameter or member 'net' not described in 'tipc_nametbl_withdraw'
      ../net/tipc/name_table.c:762: warning: Function parameter or member 'type' not described in 'tipc_nametbl_withdraw'
      ../net/tipc/name_table.c:762: warning: Function parameter or member 'lower' not described in 'tipc_nametbl_withdraw'
      ../net/tipc/name_table.c:762: warning: Function parameter or member 'upper' not described in 'tipc_nametbl_withdraw'
      ../net/tipc/name_table.c:762: warning: Function parameter or member 'key' not described in 'tipc_nametbl_withdraw'
      ../net/tipc/name_table.c:796: warning: Function parameter or member 'sub' not described in 'tipc_nametbl_subscribe'
      ../net/tipc/name_table.c:826: warning: Function parameter or member 'sub' not described in 'tipc_nametbl_unsubscribe'
      ../net/tipc/name_table.c:876: warning: Function parameter or member 'net' not described in 'tipc_service_delete'
      ../net/tipc/name_table.c:876: warning: Function parameter or member 'sc' not described in 'tipc_service_delete'
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      5c5d6796
    • Randy Dunlap's avatar
      net/tipc: fix name_distr.c kernel-doc · cb67296e
      Randy Dunlap authored
      Fix name_distr.c kernel-doc warnings in preparation for adding to the
      networking docbook.
      
      ../net/tipc/name_distr.c:55: warning: Function parameter or member 'i' not described in 'publ_to_item'
      ../net/tipc/name_distr.c:55: warning: Function parameter or member 'p' not described in 'publ_to_item'
      ../net/tipc/name_distr.c:70: warning: Function parameter or member 'net' not described in 'named_prepare_buf'
      ../net/tipc/name_distr.c:70: warning: Function parameter or member 'type' not described in 'named_prepare_buf'
      ../net/tipc/name_distr.c:70: warning: Function parameter or member 'size' not described in 'named_prepare_buf'
      ../net/tipc/name_distr.c:70: warning: Function parameter or member 'dest' not described in 'named_prepare_buf'
      ../net/tipc/name_distr.c:88: warning: Function parameter or member 'net' not described in 'tipc_named_publish'
      ../net/tipc/name_distr.c:88: warning: Function parameter or member 'publ' not described in 'tipc_named_publish'
      ../net/tipc/name_distr.c:116: warning: Function parameter or member 'net' not described in 'tipc_named_withdraw'
      ../net/tipc/name_distr.c:116: warning: Function parameter or member 'publ' not described in 'tipc_named_withdraw'
      ../net/tipc/name_distr.c:147: warning: Function parameter or member 'net' not described in 'named_distribute'
      ../net/tipc/name_distr.c:147: warning: Function parameter or member 'seqno' not described in 'named_distribute'
      ../net/tipc/name_distr.c:199: warning: Function parameter or member 'net' not described in 'tipc_named_node_up'
      ../net/tipc/name_distr.c:199: warning: Function parameter or member 'dnode' not described in 'tipc_named_node_up'
      ../net/tipc/name_distr.c:199: warning: Function parameter or member 'capabilities' not described in 'tipc_named_node_up'
      ../net/tipc/name_distr.c:225: warning: Function parameter or member 'net' not described in 'tipc_publ_purge'
      ../net/tipc/name_distr.c:225: warning: Function parameter or member 'publ' not described in 'tipc_publ_purge'
      ../net/tipc/name_distr.c:225: warning: Function parameter or member 'addr' not described in 'tipc_publ_purge'
      ../net/tipc/name_distr.c:272: warning: Function parameter or member 'net' not described in 'tipc_update_nametbl'
      ../net/tipc/name_distr.c:272: warning: Function parameter or member 'i' not described in 'tipc_update_nametbl'
      ../net/tipc/name_distr.c:272: warning: Function parameter or member 'node' not described in 'tipc_update_nametbl'
      ../net/tipc/name_distr.c:272: warning: Function parameter or member 'dtype' not described in 'tipc_update_nametbl'
      ../net/tipc/name_distr.c:353: warning: Function parameter or member 'net' not described in 'tipc_named_rcv'
      ../net/tipc/name_distr.c:353: warning: Function parameter or member 'namedq' not described in 'tipc_named_rcv'
      ../net/tipc/name_distr.c:353: warning: Function parameter or member 'rcv_nxt' not described in 'tipc_named_rcv'
      ../net/tipc/name_distr.c:353: warning: Function parameter or member 'open' not described in 'tipc_named_rcv'
      ../net/tipc/name_distr.c:383: warning: Function parameter or member 'net' not described in 'tipc_named_reinit'
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      cb67296e
    • Randy Dunlap's avatar
      net/tipc: fix link.c kernel-doc · a99df449
      Randy Dunlap authored
      Fix link.c kernel-doc warnings in preparation for adding to the
      networking docbook.
      
      ../net/tipc/link.c:200: warning: Function parameter or member 'session' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'snd_nxt_state' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'rcv_nxt_state' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'in_session' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'active' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'if_name' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'rst_cnt' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'drop_point' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'failover_reasm_skb' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'failover_deferdq' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'transmq' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'backlog' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'snd_nxt' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'rcv_unacked' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'deferdq' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'window' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'min_win' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'ssthresh' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'max_win' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'cong_acks' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'checkpoint' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'reasm_tnlmsg' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'last_gap' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'last_ga' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'bc_rcvlink' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'bc_sndlink' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'nack_state' not described in 'tipc_link'
      ../net/tipc/link.c:200: warning: Function parameter or member 'bc_peer_is_up' not described in 'tipc_link'
      ../net/tipc/link.c:473: warning: Function parameter or member 'self' not described in 'tipc_link_create'
      ../net/tipc/link.c:473: warning: Function parameter or member 'peer_id' not described in 'tipc_link_create'
      ../net/tipc/link.c:473: warning: Excess function parameter 'ownnode' description in 'tipc_link_create'
      ../net/tipc/link.c:544: warning: Function parameter or member 'ownnode' not described in 'tipc_link_bc_create'
      ../net/tipc/link.c:544: warning: Function parameter or member 'peer' not described in 'tipc_link_bc_create'
      ../net/tipc/link.c:544: warning: Function parameter or member 'peer_id' not described in 'tipc_link_bc_create'
      ../net/tipc/link.c:544: warning: Function parameter or member 'peer_caps' not described in 'tipc_link_bc_create'
      ../net/tipc/link.c:544: warning: Function parameter or member 'bc_sndlink' not described in 'tipc_link_bc_create'
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      a99df449
    • Randy Dunlap's avatar
      net/tipc: fix bearer.c for kernel-doc · ec6a1649
      Randy Dunlap authored
      Fix kernel-doc warnings in bearer.c:
      
      ../net/tipc/bearer.c:77: warning: Function parameter or member 'name' not described in 'tipc_media_find'
      ../net/tipc/bearer.c:91: warning: Function parameter or member 'type' not described in 'media_find_id'
      ../net/tipc/bearer.c:105: warning: Function parameter or member 'buf' not described in 'tipc_media_addr_printf'
      ../net/tipc/bearer.c:105: warning: Function parameter or member 'len' not described in 'tipc_media_addr_printf'
      ../net/tipc/bearer.c:105: warning: Function parameter or member 'a' not described in 'tipc_media_addr_printf'
      ../net/tipc/bearer.c:174: warning: Function parameter or member 'net' not described in 'tipc_bearer_find'
      ../net/tipc/bearer.c:174: warning: Function parameter or member 'name' not described in 'tipc_bearer_find'
      ../net/tipc/bearer.c:238: warning: Function parameter or member 'net' not described in 'tipc_enable_bearer'
      ../net/tipc/bearer.c:238: warning: Function parameter or member 'name' not described in 'tipc_enable_bearer'
      ../net/tipc/bearer.c:238: warning: Function parameter or member 'disc_domain' not described in 'tipc_enable_bearer'
      ../net/tipc/bearer.c:238: warning: Function parameter or member 'prio' not described in 'tipc_enable_bearer'
      ../net/tipc/bearer.c:238: warning: Function parameter or member 'attr' not described in 'tipc_enable_bearer'
      ../net/tipc/bearer.c:350: warning: Function parameter or member 'net' not described in 'tipc_reset_bearer'
      ../net/tipc/bearer.c:350: warning: Function parameter or member 'b' not described in 'tipc_reset_bearer'
      ../net/tipc/bearer.c:374: warning: Function parameter or member 'net' not described in 'bearer_disable'
      ../net/tipc/bearer.c:374: warning: Function parameter or member 'b' not described in 'bearer_disable'
      ../net/tipc/bearer.c:462: warning: Function parameter or member 'net' not described in 'tipc_l2_send_msg'
      ../net/tipc/bearer.c:479: warning: Function parameter or member 'net' not described in 'tipc_l2_send_msg'
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      ec6a1649
    • Randy Dunlap's avatar
      net/tipc: fix various kernel-doc warnings · 5fcb7d47
      Randy Dunlap authored
      kernel-doc and Sphinx fixes to eliminate lots of warnings
      in preparation for adding to the networking docbook.
      
      ../net/tipc/crypto.c:57: warning: cannot understand function prototype: 'enum '
      ../net/tipc/crypto.c:69: warning: cannot understand function prototype: 'enum '
      ../net/tipc/crypto.c:130: warning: Function parameter or member 'tfm' not described in 'tipc_tfm'
      ../net/tipc/crypto.c:130: warning: Function parameter or member 'list' not described in 'tipc_tfm'
      ../net/tipc/crypto.c:172: warning: Function parameter or member 'stat' not described in 'tipc_crypto_stats'
      ../net/tipc/crypto.c:232: warning: Function parameter or member 'flags' not described in 'tipc_crypto'
      ../net/tipc/crypto.c:329: warning: Function parameter or member 'ukey' not described in 'tipc_aead_key_validate'
      ../net/tipc/crypto.c:329: warning: Function parameter or member 'info' not described in 'tipc_aead_key_validate'
      ../net/tipc/crypto.c:482: warning: Function parameter or member 'aead' not described in 'tipc_aead_tfm_next'
      ../net/tipc/trace.c:43: warning: cannot understand function prototype: 'unsigned long sysctl_tipc_sk_filter[5] __read_mostly = '
      
      Documentation/networking/tipc:57: ../net/tipc/msg.c:584: WARNING: Unexpected indentation.
      Documentation/networking/tipc:63: ../net/tipc/name_table.c:536: WARNING: Unexpected indentation.
      Documentation/networking/tipc:63: ../net/tipc/name_table.c:537: WARNING: Block quote ends without a blank line; unexpected unindent.
      Documentation/networking/tipc:78: ../net/tipc/socket.c:3809: WARNING: Unexpected indentation.
      Documentation/networking/tipc:78: ../net/tipc/socket.c:3807: WARNING: Inline strong start-string without end-string.
      Documentation/networking/tipc:72: ../net/tipc/node.c:904: WARNING: Unexpected indentation.
      Documentation/networking/tipc:39: ../net/tipc/crypto.c:97: WARNING: Block quote ends without a blank line; unexpected unindent.
      Documentation/networking/tipc:39: ../net/tipc/crypto.c:98: WARNING: Block quote ends without a blank line; unexpected unindent.
      Documentation/networking/tipc:39: ../net/tipc/crypto.c:141: WARNING: Inline strong start-string without end-string.
      
      ../net/tipc/discover.c:82: warning: Function parameter or member 'skb' not described in 'tipc_disc_init_msg'
      
      ../net/tipc/msg.c:69: warning: Function parameter or member 'gfp' not described in 'tipc_buf_acquire'
      ../net/tipc/msg.c:382: warning: Function parameter or member 'offset' not described in 'tipc_msg_build'
      ../net/tipc/msg.c:708: warning: Function parameter or member 'net' not described in 'tipc_msg_lookup_dest'
      
      ../net/tipc/subscr.c:65: warning: Function parameter or member 'seq' not described in 'tipc_sub_check_overlap'
      ../net/tipc/subscr.c:65: warning: Function parameter or member 'found_lower' not described in 'tipc_sub_check_overlap'
      ../net/tipc/subscr.c:65: warning: Function parameter or member 'found_upper' not described in 'tipc_sub_check_overlap'
      
      ../net/tipc/udp_media.c:75: warning: Function parameter or member 'proto' not described in 'udp_media_addr'
      ../net/tipc/udp_media.c:75: warning: Function parameter or member 'port' not described in 'udp_media_addr'
      ../net/tipc/udp_media.c:75: warning: Function parameter or member 'ipv4' not described in 'udp_media_addr'
      ../net/tipc/udp_media.c:75: warning: Function parameter or member 'ipv6' not described in 'udp_media_addr'
      ../net/tipc/udp_media.c:98: warning: Function parameter or member 'rcast' not described in 'udp_bearer'
      
      Also fixed a typo of "duest" to "dest".
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      5fcb7d47
    • Randy Dunlap's avatar
      net/tipc: fix tipc header files for kernel-doc · ff10527e
      Randy Dunlap authored
      Fix tipc header files for adding to the networking docbook.
      
      Remove some uses of "/**" that were not kernel-doc notation.
      
      Fix some source formatting to eliminate Sphinx warnings.
      
      Add missing struct member and function argument kernel-doc descriptions.
      
      Correct the description of a couple of struct members that were
      marked as "(FIXME)".
      
      Documentation/networking/tipc:18: ../net/tipc/name_table.h:65: WARNING: Unexpected indentation.
      Documentation/networking/tipc:18: ../net/tipc/name_table.h:66: WARNING: Block quote ends without a blank line; unexpected unindent.
      
      ../net/tipc/bearer.h:128: warning: Function parameter or member 'min_win' not described in 'tipc_media'
      ../net/tipc/bearer.h:128: warning: Function parameter or member 'max_win' not described in 'tipc_media'
      
      ../net/tipc/bearer.h:171: warning: Function parameter or member 'min_win' not described in 'tipc_bearer'
      ../net/tipc/bearer.h:171: warning: Function parameter or member 'max_win' not described in 'tipc_bearer'
      ../net/tipc/bearer.h:171: warning: Function parameter or member 'disc' not described in 'tipc_bearer'
      ../net/tipc/bearer.h:171: warning: Function parameter or member 'up' not described in 'tipc_bearer'
      ../net/tipc/bearer.h:171: warning: Function parameter or member 'refcnt' not described in 'tipc_bearer'
      
      ../net/tipc/name_distr.h:68: warning: Function parameter or member 'port' not described in 'distr_item'
      
      ../net/tipc/name_table.h:111: warning: Function parameter or member 'services' not described in 'name_table'
      ../net/tipc/name_table.h:111: warning: Function parameter or member 'cluster_scope_lock' not described in 'name_table'
      ../net/tipc/name_table.h:111: warning: Function parameter or member 'rc_dests' not described in 'name_table'
      ../net/tipc/name_table.h:111: warning: Function parameter or member 'snd_nxt' not described in 'name_table'
      
      ../net/tipc/subscr.h:67: warning: Function parameter or member 'kref' not described in 'tipc_subscription'
      ../net/tipc/subscr.h:67: warning: Function parameter or member 'net' not described in 'tipc_subscription'
      ../net/tipc/subscr.h:67: warning: Function parameter or member 'service_list' not described in 'tipc_subscription'
      ../net/tipc/subscr.h:67: warning: Function parameter or member 'conid' not described in 'tipc_subscription'
      ../net/tipc/subscr.h:67: warning: Function parameter or member 'inactive' not described in 'tipc_subscription'
      ../net/tipc/subscr.h:67: warning: Function parameter or member 'lock' not described in 'tipc_subscription'
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      ff10527e
    • Jakub Kicinski's avatar
      Merge branch 'mlxsw-add-support-for-802-1ad-bridging' · 7fe2af16
      Jakub Kicinski authored
      Ido Schimmel says:
      
      ====================
      mlxsw: Add support for 802.1ad bridging
      
      802.1ad, also known as QinQ, is an extension to the 802.1q standard,
      which is concerned with passing possibly 802.1q-tagged packets through
      another VLAN-like tunnel. The format of 802.1ad tag is the same as
      802.1q, except it uses the EtherType of 0x88a8, unlike 802.1q's 0x8100.
      
      Currently, mlxsw supports bridging with VLAN-unaware (802.1d) bridges
      and with VLAN-aware bridges whose VLAN protocol is 802.1q. This set adds
      support for VLAN-aware bridges whose VLAN protocol is 802.1ad.
      
      From mlxsw perspective, 802.1ad support entails two main changes:
      
      1. Ports member in an 802.1ad bridge need to be configured to classify
      802.1ad packets as tagged and all other packets as untagged
      
      2. When pushing a VLAN at ingress (PVID), its EtherType needs to be
      0x88a8 instead of 802.1q's 0x8100
      
      The rest stays the same as with 802.1q bridges.
      
      A follow-up patch set will add support for QinQ with VXLAN, also known
      as QinVNI. Currently, linking of a VXLAN netdev to an 802.1ad bridge is
      vetoed and an error is returned to user space.
      
      Patch set overview:
      
      Patches #1-#2 add the registers required to configure the two changes
      described above.
      
      Patch #3 changes the device to only treat 802.1q packets as tagged by
      default, as opposed to both 802.1q and 802.1ad packets. This is more
      inline with the behavior supported by the driver.
      
      Patch #4 adds the ability to configure the EtherType when pushing a PVID
      at ingress.
      
      Patch #5 performs small refactoring to allow for code re-use in the next
      patch.
      
      Patch #6 adds support for 802.1ad bridging and allows mlxsw ports and
      their uppers to join such a bridge.
      
      Patch #7 changes the bridge driver to notify about changes to its VLAN
      protocol, so that these could be vetoed by mlxsw in the next patch.
      
      Patches #8-#9 teach mlxsw to veto unsupported 802.1ad configurations and
      add a corresponding selftest to make sure such configurations are indeed
      vetoed.
      ====================
      
      Link: https://lore.kernel.org/r/20201129125407.1391557-1-idosch@idosch.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      7fe2af16
    • Danielle Ratson's avatar
      selftests: forwarding: Add QinQ veto testing · 008cb2ec
      Danielle Ratson authored
      Test that each veto that was added in the previous patch, is indeed
      vetoed.
      
      $ ./q_in_q_veto.sh
      
      TEST: create 802.1ad vlan upper on top of a front panel             [ OK ]
      TEST: create 802.1ad vlan upper on top of a bridge port             [ OK ]
      TEST: create 802.1ad vlan upper on top of a lag                     [ OK ]
      TEST: create 802.1ad vlan upper on top 802.1q bridge                [ OK ]
      TEST: create 802.1ad vlan upper on top 802.1ad bridge               [ OK ]
      TEST: create 802.1q vlan upper on top 802.1ad bridge                [ OK ]
      TEST: create vlan upper on top of front panel enslaved to 802.1ad bridge
      [ OK ]
      TEST: create vlan upper on top of lag enslaved to 802.1ad bridge    [ OK ]
      TEST: enslave front panel with vlan upper to 802.1ad bridge         [ OK ]
      TEST: enslave lag with vlan upper to 802.1ad bridge                 [ OK ]
      TEST: IP address addition to 802.1ad bridge                         [ OK ]
      TEST: switch bridge protocol                                        [ OK ]
      Signed-off-by: default avatarDanielle Ratson <danieller@nvidia.com>
      Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      008cb2ec
    • Danielle Ratson's avatar
      mlxsw: Add QinQ configuration vetoes · 09139f67
      Danielle Ratson authored
      After adding support for QinQ, a.k.a 802.1ad protocol, there are a few
      scenarios that should be vetoed.
      
      The vetoes are motivated by various ASIC limitations.
      For example, a port that is member in a 802.1ad bridge cannot have 802.1q
      uppers as the port needs to be configured to treat 802.1q packets as
      untagged packets.
      
      Veto all those unsupported scenarios and return suitable messages.
      Signed-off-by: default avatarDanielle Ratson <danieller@nvidia.com>
      Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      09139f67
    • Danielle Ratson's avatar
      bridge: switchdev: Notify about VLAN protocol changes · 22ec19f3
      Danielle Ratson authored
      Drivers that support bridge offload need to be notified about changes to
      the bridge's VLAN protocol so that they could react accordingly and
      potentially veto the change.
      
      Add a new switchdev attribute to communicate the change to drivers.
      Signed-off-by: default avatarDanielle Ratson <danieller@nvidia.com>
      Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
      Acked-by: default avatarNikolay Aleksandrov <nikolay@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Reviewed-by: default avatarIvan Vecera <ivecera@redhat.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      22ec19f3
    • Amit Cohen's avatar
      mlxsw: spectrum_switchdev: Add support of QinQ traffic · 80dfeafd
      Amit Cohen authored
      802.1ad, also known as QinQ is an extension to the 802.1q standard, which
      is concerned with passing possibly 802.1q-tagged packets through another
      VLAN-like tunnel. The format of 802.1ad tag is the same as 802.1q, except
      it uses the EtherType of 0x88a8, unlike 802.1q's 0x8100.
      
      Add support for 802.1ad protocol. Most of the configuration is the same
      as 802.1q. The difference is that before a port joins an 802.1ad bridge it
      needs to be configured to recognize 802.1ad packets as tagged and other
      packets (e.g., 802.1q) as untagged.
      
      VXLAN is not currently supported with 802.1ad bridge, so return an error
      with an appropriate extack message.
      Signed-off-by: default avatarAmit Cohen <amcohen@nvidia.com>
      Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      80dfeafd
    • Amit Cohen's avatar
      mlxsw: spectrum_switchdev: Create common functions for VLAN-aware bridge · 773ce33a
      Amit Cohen authored
      The code in mlxsw_sp_bridge_8021q_port_{join, leave}() can be used also
      for 802.1ad bridge.
      
      Move the code to functions called
      mlxsw_sp_bridge_vlan_aware_port_{join, leave}() and call them from
      mlxsw_sp_bridge_8021q_port_{join, leave}() respectively to enable code
      reuse.
      Signed-off-by: default avatarAmit Cohen <amcohen@nvidia.com>
      Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      773ce33a
    • Amit Cohen's avatar
      mlxsw: Make EtherType configurable when pushing VLAN at ingress · 3ae7a65b
      Amit Cohen authored
      Currently, when pushing a PVID at ingress, mlxsw always uses 802.1q
      EtherType.
      
      Make this EtherType configurable by extending mlxsw_sp_port_pvid_set()
      with an EtherType argument.
      
      This is a preparation for QinQ support, that needs to push a PVID with
      802.1ad EtherType.
      Signed-off-by: default avatarAmit Cohen <amcohen@nvidia.com>
      Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      3ae7a65b
    • Amit Cohen's avatar
      mlxsw: spectrum: Only treat 802.1q packets as tagged packets · a2ef3ae1
      Amit Cohen authored
      By default, the device considers both 802.1ad and 802.1q packets as tagged,
      but this is not supported by the driver. It only supports VLAN and bridge
      devices that use 802.1q protocol.
      
      Instead, configure the device to only treat 802.1q packets as tagged
      packets.
      Signed-off-by: default avatarAmit Cohen <amcohen@nvidia.com>
      Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      a2ef3ae1
    • Amit Cohen's avatar
      mlxsw: reg: Add et_vlan field to SPVID register · 2a5a290d
      Amit Cohen authored
      et_vlan field is used to configure which EtherType is used when VLAN is
      pushed at ingress (for untagged packets or for QinQ push mode).
      
      It will be used to configure tagging with ether_type1 (i.e., 0x88A8) for
      QinQ mode.
      Signed-off-by: default avatarAmit Cohen <amcohen@nvidia.com>
      Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      2a5a290d
    • Amit Cohen's avatar
      mlxsw: reg: Add Switch Port VLAN Classification Register · 7e9a6620
      Amit Cohen authored
      SPVC configures the port to identify packets as untagged / single tagged /
      double tagged packets based on the packet EtherTypes.
      
      It will be used to classify 802.1q packets as untagged and 802.1ad packets
      as tagged when received by ports member in a 802.1ad bridge.
      Signed-off-by: default avatarAmit Cohen <amcohen@nvidia.com>
      Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      7e9a6620
    • Jakub Kicinski's avatar
      Merge branch 'net-hns3-updates-for-next' · ac6e9185
      Jakub Kicinski authored
      Huazhong Tan says:
      
      ====================
      net: hns3: updates for -next
      
      This series includes some updates for the HNS3 ethernet driver.
      
       #1~#6: add some updates related to the checksum offload.
       #7: add support for multiple TCs' MAC pauce mode.
      ====================
      
      Link: https://lore.kernel.org/r/1606535510-44346-1-git-send-email-tanhuazhong@huawei.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      ac6e9185
    • Yonglong Liu's avatar
      net: hns3: keep MAC pause mode when multiple TCs are enabled · d78e5b6a
      Yonglong Liu authored
      Bellow HNAE3_DEVICE_VERSION_V3, MAC pause mode just support one
      TC, when enabled multiple TCs, force enable PFC mode.
      
      HNAE3_DEVICE_VERSION_V3 can support MAC pause mode on multiple
      TCs, so when enable multiple TCs, just keep MAC pause mode,
      and enable PFC mode just according to the user settings.
      Signed-off-by: default avatarYonglong Liu <liuyonglong@huawei.com>
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      d78e5b6a
    • Huazhong Tan's avatar
      net: hns3: add a check for devcie's verion in hns3_tunnel_csum_bug() · ade36cce
      Huazhong Tan authored
      For the device whose version is above V3(include V3), the hardware
      can do checksum offload for the non-tunnel udp packet, who has
      a dest port as the IANA assigned. So add a check for devcie's verion
      in hns3_tunnel_csum_bug().
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      ade36cce
    • Huazhong Tan's avatar
      net: hns3: add more info to hns3_dbg_bd_info() · b1533ada
      Huazhong Tan authored
      Since TX hardware checksum and RX completion checksum have been
      supported now, so add related information in hns3_dbg_bd_info().
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b1533ada
    • Huazhong Tan's avatar
      net: hns3: add udp tunnel checksum segmentation support · 3e281621
      Huazhong Tan authored
      For the device who has the capability to handle udp tunnel
      checksum segmentation, add support for it.
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      3e281621
    • Huazhong Tan's avatar
      net: hns3: remove unsupported NETIF_F_GSO_UDP_TUNNEL_CSUM · 57e72c12
      Huazhong Tan authored
      Currently, device V1 and V2 do not support segmentation
      offload for UDP based tunnel packet who needs outer UDP
      checksum offload, so there is a workaround in the driver
      to set the checksum of the outer UDP checksum as zero. This
      is not what the user wants, so remove this feature for
      device V1 and V2, add support for it later(when the device
      has the ability to do that).
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      57e72c12
    • Huazhong Tan's avatar
      net: hns3: add support for TX hardware checksum offload · 66d52f3b
      Huazhong Tan authored
      For the device that supports TX hardware checksum, the hardware
      can calculate the checksum from the start and fill the checksum
      to the offset position, which reduces the operations of
      calculating the type and header length of L3/L4. So add this
      feature for the HNS3 ethernet driver.
      
      The previous simple BD description is unsuitable, rename it as
      HW TX CSUM.
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      66d52f3b
    • Huazhong Tan's avatar
      net: hns3: add support for RX completion checksum · 4b2fe769
      Huazhong Tan authored
      In some cases (for example ip fragment), hardware will
      calculate the checksum of whole packet in RX, and setup
      the HNS3_RXD_L2_CSUM_B flag in the descriptor, so add
      support to utilize this checksum.
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      4b2fe769
    • Lukas Bulwahn's avatar
      net/ipv6: propagate user pointer annotation · 9e39394f
      Lukas Bulwahn authored
      For IPV6_2292PKTOPTIONS, do_ipv6_getsockopt() stores the user pointer
      optval in the msg_control field of the msghdr.
      
      Hence, sparse rightfully warns at ./net/ipv6/ipv6_sockglue.c:1151:33:
      
        warning: incorrect type in assignment (different address spaces)
            expected void *msg_control
            got char [noderef] __user *optval
      
      Since commit 1f466e1f ("net: cleanly handle kernel vs user buffers for
      ->msg_control"), user pointers shall be stored in the msg_control_user
      field, and kernel pointers in the msg_control field. This allows to
      propagate __user annotations nicely through this struct.
      
      Store optval in msg_control_user to properly record and propagate the
      memory space annotation of this pointer.
      
      Note that msg_control_is_user is set to true, so the key invariant, i.e.,
      use msg_control_user if and only if msg_control_is_user is true, holds.
      
      The msghdr is further used in the six alternative put_cmsg() calls, with
      msg_control_is_user being true, put_cmsg() picks msg_control_user
      preserving the __user annotation and passes that properly to
      copy_to_user().
      
      No functional change. No change in object code.
      Signed-off-by: default avatarLukas Bulwahn <lukas.bulwahn@gmail.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Link: https://lore.kernel.org/r/20201127093421.21673-1-lukas.bulwahn@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      9e39394f
    • Marco Elver's avatar
      net: switch to storing KCOV handle directly in sk_buff · fa69ee5a
      Marco Elver authored
      It turns out that usage of skb extensions can cause memory leaks. Ido
      Schimmel reported: "[...] there are instances that blindly overwrite
      'skb->extensions' by invoking skb_copy_header() after __alloc_skb()."
      
      Therefore, give up on using skb extensions for KCOV handle, and instead
      directly store kcov_handle in sk_buff.
      
      Fixes: 6370cc3b ("net: add kcov handle to skb extensions")
      Fixes: 85ce50d3 ("net: kcov: don't select SKB_EXTENSIONS when there is no NET")
      Fixes: 97f53a08 ("net: linux/skbuff.h: combine SKB_EXTENSIONS + KCOV handling")
      Link: https://lore.kernel.org/linux-wireless/20201121160941.GA485907@shredder.lan/Reported-by: default avatarIdo Schimmel <idosch@idosch.org>
      Signed-off-by: default avatarMarco Elver <elver@google.com>
      Link: https://lore.kernel.org/r/20201125224840.2014773-1-elver@google.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      fa69ee5a
    • Vlad Buslov's avatar
      net: sched: remove redundant 'rtnl_held' argument · 0fca55ed
      Vlad Buslov authored
      Functions tfilter_notify_chain() and tcf_get_next_proto() are always called
      with rtnl lock held in current implementation. Moreover, attempting to call
      them without rtnl lock would cause a warning down the call chain in
      function __tcf_get_next_proto() that requires the lock to be held by
      callers. Remove the 'rtnl_held' argument in order to simplify the code and
      make rtnl lock requirement explicit.
      Signed-off-by: default avatarVlad Buslov <vladbu@nvidia.com>
      Link: https://lore.kernel.org/r/20201127151205.23492-1-vladbu@nvidia.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      0fca55ed
    • Jakub Kicinski's avatar
      Merge tag 'linux-can-next-for-5.11-20201130' of... · cb7fb043
      Jakub Kicinski authored
      Merge tag 'linux-can-next-for-5.11-20201130' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next
      
      Marc Kleine-Budde says:
      
      ====================
      pull-request: can-next 2020-11-30
      
      Gustavo A. R. Silva's patch for the pcan_usb driver fixes fall-through warnings
      for Clang.
      
      The next 5 patches target the mcp251xfd driver and are by Ursula Maplehurst and
      me. They optimizie the TEF and RX path by reducing number of SPI core requests
      to set the UINC bit.
      
      The remaining 8 patches target the m_can driver. The first 4 are various
      cleanups for the SPI binding driver (tcan4x5x) by Sean Nyekjaer, Dan Murphy and
      me. Followed by 4 cleanup patches by me for the m_can and m_can_platform
      driver.
      
      * tag 'linux-can-next-for-5.11-20201130' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next:
        can: m_can: m_can_class_unregister(): move right after m_can_class_register()
        can: m_can: m_can_plat_remove(): remove unneeded platform_set_drvdata()
        can: m_can: remove not used variable struct m_can_classdev::freq
        can: m_can: Kconfig: convert the into menu
        can: tcan4x5x: tcan4x5x_can_probe(): remove probe failed error message
        can: tcan4x5x: remove mram_start and reg_offset from struct tcan4x5x_priv
        can: tcan4x5x: rename parse_config() function
        can: tcan4x5x: tcan4x5x_clear_interrupts(): remove redundant return statement
        can: mcp251xfd: tef-path: reduce number of SPI core requests to set UINC bit
        can: mcp251xfd: move struct mcp251xfd_tef_ring definition
        can: mcp251xfd: struct mcp251xfd_priv::tef to array of length 1
        can: mcp25xxfd: rx-path: reduce number of SPI core requests to set UINC bit
        can: mcp251xfd: mcp25xxfd_ring_alloc(): add define instead open coding the maximum number of RX objects
        can: pcan_usb_core: fix fall-through warnings for Clang
      ====================
      
      Link: https://lore.kernel.org/r/20201130141432.278219-1-mkl@pengutronix.deSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      cb7fb043
    • Tom Rix's avatar
      net: wan: remove trailing semicolon in macro definition · 76810ed8
      Tom Rix authored
      The macro use will already have a semicolon.
      Signed-off-by: default avatarTom Rix <trix@redhat.com>
      Link: https://lore.kernel.org/r/20201127165734.2694693-1-trix@redhat.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      76810ed8
    • Jakub Kicinski's avatar
      Merge branch 'mptcp-avoid-workqueue-usage-for-data' · 5f3e915c
      Jakub Kicinski authored
      Paolo Abeni says:
      
      ====================
      mptcp: avoid workqueue usage for data
      
      The current locking schema used to protect the MPTCP data-path
      requires the usage of the MPTCP workqueue to process the incoming
      data, depending on trylock result.
      
      The above poses scalability limits and introduces random delays
      in MPTCP-level acks.
      
      With this series we use a single spinlock to protect the MPTCP
      data-path, removing the need for workqueue and delayed ack usage.
      
      This additionally reduces the number of atomic operations required
      per packet and cleans-up considerably the poll/wake-up code.
      ====================
      
      Link: https://lore.kernel.org/r/cover.1606413118.git.pabeni@redhat.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      5f3e915c
    • Paolo Abeni's avatar
      mptcp: use mptcp release_cb for delayed tasks · 6e628cd3
      Paolo Abeni authored
      We have some tasks triggered by the subflow receive path
      which require to access the msk socket status, specifically:
      mptcp_clean_una() and mptcp_push_pending()
      
      We have almost everything in place to defer to the msk
      release_cb such tasks when the msk sock is owned.
      
      Since the worker is no more used to clean the acked data,
      for fallback sockets we need to explicitly flush them.
      
      As an added bonus we can move the wake-up code in __mptcp_clean_una(),
      simplify a lot mptcp_poll() and move the timer update under
      the data lock.
      
      The worker is now used only to process and send DATA_FIN
      packets and do the mptcp-level retransmissions.
      Acked-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Reviewed-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      6e628cd3
    • Paolo Abeni's avatar
      mptcp: avoid a few atomic ops in the rx path · 7439d687
      Paolo Abeni authored
      Extending the data_lock scope in mptcp_incoming_option
      we can use that to protect both snd_una and wnd_end.
      In the typical case, we will have a single atomic op instead of 2
      Acked-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Reviewed-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      7439d687
    • Paolo Abeni's avatar
      mptcp: allocate TX skbs in msk context · 724cfd2e
      Paolo Abeni authored
      Move the TX skbs allocation in mptcp_sendmsg() scope,
      and tentatively pre-allocate a skbs number proportional
      to the sendmsg() length.
      
      Use the ssk tx skb cache to prevent the subflow allocation.
      
      This allows removing the msk skb extension cache and will
      make possible the later patches.
      Acked-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Reviewed-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      724cfd2e
    • Paolo Abeni's avatar
      mptcp: protect the rx path with the msk socket spinlock · 87952603
      Paolo Abeni authored
      Such spinlock is currently used only to protect the 'owned'
      flag inside the socket lock itself. With this patch, we extend
      its scope to protect the whole msk receive path and
      sk_forward_memory.
      
      Given the above, we can always move data into the msk receive
      queue (and OoO queue) from the subflow.
      
      We leverage the previous commit, so that we need to acquire the
      spinlock in the tx path only when moving fwd memory.
      
      recvmsg() must now explicitly acquire the socket spinlock
      when moving skbs out of sk_receive_queue. To reduce the number of
      lock operations required we use a second rx queue and splice the
      first into the latter in mptcp_lock_sock(). Additionally rmem
      allocated memory is bulk-freed via release_cb()
      Acked-by: default avatarFlorian Westphal <fw@strlen.de>
      Co-developed-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Reviewed-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      87952603
    • Paolo Abeni's avatar
      mptcp: implement wmem reservation · e93da928
      Paolo Abeni authored
      This leverages the previous commit to reserve the wmem
      required for the sendmsg() operation when the msk socket
      lock is first acquired.
      Some heuristics are used to get a reasonable [over] estimation of
      the whole memory required. If we can't forward alloc such amount
      fallback to a reasonable small chunk, otherwise enter the wait
      for memory path.
      
      When sendmsg() needs more memory it looks at wmem_reserved
      first and if that is exhausted, move more space from
      sk_forward_alloc.
      
      The reserved memory is not persistent and is released at the
      next socket unlock via the release_cb().
      
      Overall this will simplify the next patch.
      Acked-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Reviewed-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      e93da928
    • Paolo Abeni's avatar
      mptcp: open code mptcp variant for lock_sock · ad80b0fc
      Paolo Abeni authored
      This allows invoking an additional callback under the
      socket spin lock.
      
      Will be used by the next patches to avoid additional
      spin lock contention.
      Acked-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Reviewed-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      ad80b0fc
    • Jakub Kicinski's avatar
      Merge branch 'dpaa_eth-add-xdp-support' · be572424
      Jakub Kicinski authored
      Camelia Groza says:
      
      ====================
      dpaa_eth: add XDP support
      
      Enable XDP support for the QorIQ DPAA1 platforms.
      
      Implement all the current actions (DROP, ABORTED, PASS, TX, REDIRECT). No
      Tx batching is added at this time.
      
      Additional XDP_PACKET_HEADROOM bytes are reserved in each frame's headroom.
      
      After transmit, a reference to the xdp_frame is saved in the buffer for
      clean-up on confirmation in a newly created structure for software
      annotations. DPAA_TX_PRIV_DATA_SIZE bytes are reserved in the buffer for
      storing this structure and the XDP program is restricted from accessing
      them.
      
      The driver shares the egress frame queues used for XDP with the network
      stack. The DPAA driver is a LLTX driver so no explicit locking is required
      on transmission.
      ====================
      
      Link: https://lore.kernel.org/r/cover.1606322126.git.camelia.groza@nxp.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      be572424
    • Camelia Groza's avatar
      dpaa_eth: implement the A050385 erratum workaround for XDP · ae680bcb
      Camelia Groza authored
      For XDP TX, even tough we start out with correctly aligned buffers, the
      XDP program might change the data's alignment. For REDIRECT, we have no
      control over the alignment either.
      
      Create a new workaround for xdp_frame structures to verify the erratum
      conditions and move the data to a fresh buffer if necessary. Create a new
      xdp_frame for managing the new buffer and free the old one using the XDP
      API.
      
      Due to alignment constraints, all frames have a 256 byte headroom that
      is offered fully to XDP under the erratum. If the XDP program uses all
      of it, the data needs to be move to make room for the xdpf backpointer.
      
      Disable the metadata support since the information can be lost.
      Acked-by: default avatarMadalin Bucur <madalin.bucur@oss.nxp.com>
      Signed-off-by: default avatarCamelia Groza <camelia.groza@nxp.com>
      Reviewed-by: default avatarMaciej Fijalkowski <maciej.fijalkowski@intel.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      ae680bcb