Defined in 2 files as a function:

Referenced in 6 files:

Smatch caller information:

net/ipv4/fib_semantics.c fib_select_path() -> l3mdev_master_dev_rcu()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 _dev unit_byte
HALF_LOCKED2 rcu_read

net/ipv6/addrconf.c __ipv6_chk_addr_and_flags() -> l3mdev_master_dev_rcu()

Type Parameter Key Value
DATA_SOURCE 0 _dev $2
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 _dev->group
NO_OVERFLOW_SIMPLE 0 _dev->num_napi_configs
NO_OVERFLOW_SIMPLE 0 _dev->num_rx_queues
NO_OVERFLOW_SIMPLE 0 _dev->num_tc
NO_OVERFLOW_SIMPLE 0 _dev->num_tx_queues
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
LOCK2 rcu_read

net/ipv6/addrconf.c __ipv6_chk_addr_and_flags() -> l3mdev_master_dev_rcu()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 _dev unit_byte
LOCK2 rcu_read

net/ipv6/addrconf.c ipv6_dev_get_saddr() -> l3mdev_master_dev_rcu()

Type Parameter Key Value
PARAM_VALUE 0 _dev 0,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
UNITS 0 _dev unit_byte
LOCK2 rcu_read
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 bh
HALF_LOCKED2 global &rx_queue_mutex

net/core/lwt_bpf.c bpf_lwt_xmit_reroute() -> l3mdev_master_dev_rcu()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 _dev unit_byte
LOCK2 bh
LOCK2 rcu_read
HALF_LOCKED2 &net->ipv4.mfc_mutex
HALF_LOCKED2 &net->ipv6.mfc_mutex
HALF_LOCKED2 &sk->sk_callback_lock
HALF_LOCKED2 &sk->sk_lock.slock
HALF_LOCKED2 sk

net/ipv6/route.c ip6_route_get_saddr() -> l3mdev_master_dev_rcu()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex

net/ipv6/route.c ip6_rt_get_dev_rcu() -> l3mdev_master_dev_rcu()

Type Parameter Key Value
PARAM_VALUE 0 _dev 4096-ptr_max
PARAM_VALUE 0 _dev->priv_flags 2097152-u32max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 _dev unit_byte
LOCK2 rcu_read
HALF_LOCKED2 bh

net/ipv6/ip6_output.c ip6_route_get_saddr() -> l3mdev_master_dev_rcu()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &sk->sk_lock.slock
HALF_LOCKED2 bh

net/ipv4/route.c ip_route_output_key_hash_rcu() -> l3mdev_master_dev_rcu()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 _dev unit_byte
LOCK2 rcu_read

net/ipv4/route.c ip_rt_get_dev() -> l3mdev_master_dev_rcu()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 _dev unit_byte
LOCK2 rcu_read