Defined in 1 files as a function:

Referenced in 12 files:

Smatch caller information:

net/dsa/conduit.c dsa_conduit_lag_setup() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
DATA_SOURCE 0 dev $0
UNITS 0 dev unit_byte

drivers/net/ethernet/mediatek/mtk_eth_soc.c mtk_gdm_config() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 1-u64max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &rtnl_mutex

drivers/net/ethernet/mediatek/mtk_eth_soc.c mtk_poll_rx() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max

drivers/net/ethernet/mediatek/mtk_eth_soc.c mtk_select_queue() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 dev->group
NO_OVERFLOW_SIMPLE 0 dev->num_tc
NO_OVERFLOW_SIMPLE 0 dev->proto_down
NO_OVERFLOW_SIMPLE 0 dev->real_num_rx_queues
NO_OVERFLOW_SIMPLE 0 dev->real_num_tx_queues
NO_OVERFLOW_SIMPLE 0 dev->stats.rx_bytes
NO_OVERFLOW_SIMPLE 0 dev->stats.tx_bytes
NO_OVERFLOW_SIMPLE 0 dev->tx_queue_len
HALF_LOCKED2 rcu_read

drivers/net/ethernet/mediatek/mtk_eth_soc.c mtk_tx_set_dma_desc_v2() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 1-u64max
DATA_SOURCE 0 dev $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 dev->group
NO_OVERFLOW_SIMPLE 0 dev->num_tc
NO_OVERFLOW_SIMPLE 0 dev->real_num_rx_queues
NO_OVERFLOW_SIMPLE 0 dev->real_num_tx_queues
NO_OVERFLOW_SIMPLE 0 dev->stats.rx_bytes
NO_OVERFLOW_SIMPLE 0 dev->stats.tx_bytes
NO_OVERFLOW_SIMPLE 0 dev->tx_queue_len
LOCK2 &eth->page_lock
HALF_LOCKED2 rcu_read
HALF_LOCKED2 0 &dev->tx_global_lock
TYPE_LOCK (struct mtk_eth)->page_lock

drivers/net/ethernet/mediatek/mtk_eth_soc.c mtk_uses_dsa() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
BUF_SIZE 0 dev->header_ops (-1)-0,48
BUF_SIZE 0 dev->name_node (-1),64
BUF_SIZE 0 dev->name_node->name (-1),16
BUF_SIZE 0 dev->nd_net.net (-1),10304,10432
BUF_SIZE 0 dev->rtnl_link_ops (-1),288
CAPPED_DATA 0 dev->num_tx_queues 1
DATA_SOURCE 0 dev $0
NOSPEC 0 dev->ifindex
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dev->flags 0-527873[c]
USER_DATA 0 dev->group s32min-s32max
USER_DATA 0 dev->ifindex s32min-s32max
USER_DATA 0 dev->mtu 0-s32max[c]
USER_DATA 0 dev->num_tc 2-16[c]
USER_DATA 0 dev->real_num_rx_queues 1-s32max[c]
USER_DATA 0 *dev->dev_addr 0-255
NO_OVERFLOW_SIMPLE 0 dev->group
NO_OVERFLOW_SIMPLE 0 dev->name
NO_OVERFLOW_SIMPLE 0 dev->num_napi_configs
NO_OVERFLOW_SIMPLE 0 dev->num_rx_queues
NO_OVERFLOW_SIMPLE 0 dev->num_tx_queues
NO_OVERFLOW_SIMPLE 0 dev->proto_down
NO_OVERFLOW_SIMPLE 0 dev->real_num_tx_queues
NO_OVERFLOW_SIMPLE 0 dev->stats.tx_bytes
NO_OVERFLOW_SIMPLE 0 dev->tx_queue_len
USER_PTR 0 dev->name
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 0 &dev->ethtool->rss_lock
HALF_LOCKED2 0 &dev->lock

net/bridge/br_input.c br_get_rx_handler() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
BUF_SIZE 0 dev->ethtool_ops (-1),656
BUF_SIZE 0 dev->header_ops (-1)-0,48
BUF_SIZE 0 dev->nd_net.net (-1),10304,10432
BUF_SIZE 0 dev->rtnl_link_ops (-1),288
DATA_SOURCE 0 dev $0
STR_LEN 0 dev->nd_net.net (-1)
NOSPEC 0 dev->ifindex
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dev->flags 0-527873[c]
USER_DATA 0 dev->ifindex s32min-s32max
NO_OVERFLOW_SIMPLE 0 dev->group
NO_OVERFLOW_SIMPLE 0 dev->mem_start
NO_OVERFLOW_SIMPLE 0 dev->name
NO_OVERFLOW_SIMPLE 0 dev->num_tc
NO_OVERFLOW_SIMPLE 0 dev->proto_down
NO_OVERFLOW_SIMPLE 0 dev->real_num_rx_queues
NO_OVERFLOW_SIMPLE 0 dev->real_num_tx_queues
NO_OVERFLOW_SIMPLE 0 dev->stats.rx_bytes
NO_OVERFLOW_SIMPLE 0 dev->stats.tx_bytes
NO_OVERFLOW_SIMPLE 0 dev->tx_queue_len
UNITS 0 dev unit_byte
USER_PTR 0 dev->broadcast
USER_PTR 0 dev->name
HALF_LOCKED2 rcu_read
HALF_LOCKED2 0 &dev->ethtool->rss_lock
HALF_LOCKED2 0 &dev->lock

drivers/net/ethernet/mediatek/mtk_ppe.c __mtk_ppe_check_skb() -> netdev_uses_dsa()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
LOCK2 bh
LOCK2 global &ppe_lock
HALF_LOCKED2 rcu_read

net/core/dev_ioctl.c dsa_conduit_hwtstamp_validate() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
DATA_SOURCE 0 dev $0
LOCK2 &net->rtnl_mutex
LOCK2 global &rtnl_mutex
TYPE_LOCK (struct net)->rtnl_mutex

net/ethernet/eth.c eth_type_trans() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
DATA_SOURCE 0 dev $1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &lapb->lock
HALF_LOCKED2 bh

drivers/net/ethernet/airoha/airoha_eth.c airoha_dev_open() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
BUF_SIZE 0 dev->header_ops (-1)-0,48
BUF_SIZE 0 dev->name_node (-1),64
BUF_SIZE 0 dev->name_node->name (-1),16
BUF_SIZE 0 dev->nd_net.net (-1),10304,10432
BUF_SIZE 0 dev->rtnl_link_ops (-1),288
CAPPED_DATA 0 dev->num_tx_queues 1
DATA_SOURCE 0 dev $0
NOSPEC 0 dev->ifindex
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dev->flags 0-527873[c]
USER_DATA 0 dev->group s32min-s32max
USER_DATA 0 dev->ifindex s32min-s32max
USER_DATA 0 dev->mtu 0-s32max[c]
USER_DATA 0 dev->num_tc 2-16[c]
USER_DATA 0 dev->real_num_rx_queues 1-s32max[c]
USER_DATA 0 *dev->dev_addr 0-255
NO_OVERFLOW_SIMPLE 0 dev->group
NO_OVERFLOW_SIMPLE 0 dev->name
NO_OVERFLOW_SIMPLE 0 dev->num_napi_configs
NO_OVERFLOW_SIMPLE 0 dev->num_rx_queues
NO_OVERFLOW_SIMPLE 0 dev->num_tx_queues
NO_OVERFLOW_SIMPLE 0 dev->proto_down
NO_OVERFLOW_SIMPLE 0 dev->real_num_tx_queues
NO_OVERFLOW_SIMPLE 0 dev->stats.tx_bytes
NO_OVERFLOW_SIMPLE 0 dev->tx_queue_len
USER_PTR 0 dev->name
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 0 &dev->ethtool->rss_lock
HALF_LOCKED2 0 &dev->lock

drivers/net/ethernet/airoha/airoha_eth.c airoha_dev_select_queue() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 dev->group
NO_OVERFLOW_SIMPLE 0 dev->num_tc
NO_OVERFLOW_SIMPLE 0 dev->proto_down
NO_OVERFLOW_SIMPLE 0 dev->real_num_rx_queues
NO_OVERFLOW_SIMPLE 0 dev->real_num_tx_queues
NO_OVERFLOW_SIMPLE 0 dev->stats.rx_bytes
NO_OVERFLOW_SIMPLE 0 dev->stats.tx_bytes
NO_OVERFLOW_SIMPLE 0 dev->tx_queue_len
HALF_LOCKED2 rcu_read

drivers/net/ethernet/airoha/airoha_eth.c airoha_get_dsa_tag() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
DATA_SOURCE 0 dev $1
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 dev->group
NO_OVERFLOW_SIMPLE 0 dev->num_tc
NO_OVERFLOW_SIMPLE 0 dev->real_num_rx_queues
NO_OVERFLOW_SIMPLE 0 dev->real_num_tx_queues
NO_OVERFLOW_SIMPLE 0 dev->stats.rx_bytes
NO_OVERFLOW_SIMPLE 0 dev->stats.tx_bytes
NO_OVERFLOW_SIMPLE 0 dev->tx_queue_len
LOCK2 rcu_read
HALF_LOCKED2 &txq->_xmit_lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 0 &dev->tx_global_lock

drivers/net/ethernet/airoha/airoha_eth.c airoha_qdma_rx_process() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
DATA_SOURCE 0 dev r netdev_from_priv
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ni->dev_lock
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

net/core/dev.c __netif_receive_skb_core() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
LOCK2 rcu_read
HALF_LOCKED2 bh

drivers/net/ethernet/broadcom/bcmsysport.c bcm_sysport_select_queue() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 dev->group
NO_OVERFLOW_SIMPLE 0 dev->num_tc
NO_OVERFLOW_SIMPLE 0 dev->proto_down
NO_OVERFLOW_SIMPLE 0 dev->real_num_rx_queues
NO_OVERFLOW_SIMPLE 0 dev->real_num_tx_queues
NO_OVERFLOW_SIMPLE 0 dev->stats.rx_bytes
NO_OVERFLOW_SIMPLE 0 dev->stats.tx_bytes
NO_OVERFLOW_SIMPLE 0 dev->tx_queue_len
HALF_LOCKED2 rcu_read

drivers/net/ethernet/broadcom/bcmsysport.c bcm_sysport_set_rx_csum() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
BUF_SIZE 0 dev s32min-(-1),1-s32max
BUF_SIZE 0 dev s32min-(-1),1-s32max
BUF_SIZE 0 dev->devlink_port (-1),472
BUF_SIZE 0 dev->ethtool_ops (-1),656
BUF_SIZE 0 dev->header_ops (-1)-0,48
BUF_SIZE 0 dev->name_node (-1),64
BUF_SIZE 0 dev->name_node->name (-1),16
BUF_SIZE 0 dev->nd_net.net (-1),10304,10432
BUF_SIZE 0 dev->rtnl_link_ops (-1),288
DATA_SOURCE 0 dev $0
STR_LEN 0 dev (-1),9-10
STR_LEN 0 dev (-1),9-10
STR_LEN 0 dev->name (-1),15
NOSPEC 0 dev->flags
NOSPEC 0 dev->ifindex
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dev->flags 0-527873[c]
USER_DATA 0 dev->group s32min-s32max
USER_DATA 0 dev->ifindex s32min-s32max
USER_DATA 0 dev->mtu 0-u32max[c]
USER_DATA 0 dev->num_tc 2-16[c]
USER_DATA 0 dev->real_num_rx_queues 1-s32max[c]
USER_DATA 0 *dev->dev_addr 0-255
NO_OVERFLOW_SIMPLE 0 dev->devlink_port->index
NO_OVERFLOW_SIMPLE 0 dev->group
NO_OVERFLOW_SIMPLE 0 dev->name
NO_OVERFLOW_SIMPLE 0 dev->num_napi_configs
NO_OVERFLOW_SIMPLE 0 dev->num_rx_queues
NO_OVERFLOW_SIMPLE 0 dev->num_tx_queues
NO_OVERFLOW_SIMPLE 0 dev->proto_down
NO_OVERFLOW_SIMPLE 0 dev->real_num_tx_queues
NO_OVERFLOW_SIMPLE 0 dev->stats.tx_bytes
NO_OVERFLOW_SIMPLE 0 dev->tx_queue_len
UNITS 0 dev unit_byte
USER_PTR 0 dev->name
HALF_LOCKED2 0 &dev->ethtool->rss_lock
HALF_LOCKED2 0 &dev->lock

drivers/net/ethernet/broadcom/bcmsysport.c bcm_sysport_set_tx_csum() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->dsa_ptr 0,4096-ptr_max
BUF_SIZE 0 dev s32min-(-1),1-s32max
BUF_SIZE 0 dev s32min-(-1),1-s32max
BUF_SIZE 0 dev->devlink_port (-1),472
BUF_SIZE 0 dev->ethtool_ops (-1),656
BUF_SIZE 0 dev->header_ops (-1)-0,48
BUF_SIZE 0 dev->name_node (-1),64
BUF_SIZE 0 dev->name_node->name (-1),16
BUF_SIZE 0 dev->nd_net.net (-1),10304,10432
BUF_SIZE 0 dev->rtnl_link_ops (-1),288
DATA_SOURCE 0 dev $0
STR_LEN 0 dev (-1),9-10
STR_LEN 0 dev (-1),9-10
STR_LEN 0 dev->name (-1),15
NOSPEC 0 dev->flags
NOSPEC 0 dev->ifindex
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dev->flags 0-527873[c]
USER_DATA 0 dev->group s32min-s32max
USER_DATA 0 dev->ifindex s32min-s32max
USER_DATA 0 dev->mtu 0-u32max[c]
USER_DATA 0 dev->num_tc 2-16[c]
USER_DATA 0 dev->real_num_rx_queues 1-s32max[c]
USER_DATA 0 *dev->dev_addr 0-255
NO_OVERFLOW_SIMPLE 0 dev->devlink_port->index
NO_OVERFLOW_SIMPLE 0 dev->group
NO_OVERFLOW_SIMPLE 0 dev->name
NO_OVERFLOW_SIMPLE 0 dev->num_napi_configs
NO_OVERFLOW_SIMPLE 0 dev->num_rx_queues
NO_OVERFLOW_SIMPLE 0 dev->num_tx_queues
NO_OVERFLOW_SIMPLE 0 dev->proto_down
NO_OVERFLOW_SIMPLE 0 dev->real_num_tx_queues
NO_OVERFLOW_SIMPLE 0 dev->stats.tx_bytes
NO_OVERFLOW_SIMPLE 0 dev->tx_queue_len
UNITS 0 dev unit_byte
USER_PTR 0 dev->name
HALF_LOCKED2 0 &dev->ethtool->rss_lock
HALF_LOCKED2 0 &dev->lock

drivers/net/ethernet/broadcom/bcmsysport.c gib_set_pad_extension() -> netdev_uses_dsa()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

net/dsa/user.c dsa_bridge_prechangelower_sanity_check() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->dsa_ptr 0,4096-ptr_max
DATA_SOURCE 0 dev $0

net/dsa/user.c dsa_bridge_prechangelower_sanity_check() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 1-u64max
DATA_SOURCE 0 dev r netdev_lower_get_next

net/dsa/user.c dsa_conduit_changeupper() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
DATA_SOURCE 0 dev $0

net/dsa/user.c dsa_conduit_lag_leave() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 1-u64max
DATA_SOURCE 0 dev r netdev_lower_get_next

net/dsa/user.c dsa_conduit_prechangeupper_sanity_check() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
DATA_SOURCE 0 dev $0

net/dsa/user.c dsa_lag_conduit_prechangelower_sanity_check() -> netdev_uses_dsa()

Type Parameter Key Value
UNITS 0 dev unit_byte

net/dsa/user.c dsa_lag_conduit_prechangelower_sanity_check() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->dsa_ptr 0,4096-ptr_max
DATA_SOURCE 0 dev $0

net/dsa/user.c dsa_lag_conduit_validate() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 1-u64max
DATA_SOURCE 0 dev r netdev_lower_get_next

net/dsa/user.c dsa_lag_conduit_validate() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 1-u64max
DATA_SOURCE 0 dev r netdev_lower_get_next

net/dsa/user.c dsa_user_change_conduit() -> netdev_uses_dsa()

Type Parameter Key Value
DATA_SOURCE 0 dev $1
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
HALF_LOCKED2 global &rtnl_mutex

net/dsa/user.c dsa_user_netdevice_event() -> netdev_uses_dsa()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
DATA_SOURCE 0 dev r netdev_notifier_info_to_dev

net/dsa/user.c dsa_user_netdevice_event() -> netdev_uses_dsa()

Type Parameter Key Value
DATA_SOURCE 0 dev r netdev_notifier_info_to_dev

net/dsa/user.c dsa_user_netdevice_event() -> netdev_uses_dsa()

Type Parameter Key Value
DATA_SOURCE 0 dev r netdev_notifier_info_to_dev