Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 10 files:

Smatch caller information:

net/ipv4/fib_frontend.c fib_compute_spec_dst() -> inet_select_addr()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 2 scope 0,253
CAPPED_DATA 0 dev->ip_ptr 1
CAPPED_DATA 0 dev->nd_net.net 1
FUZZY_MAX 2 scope 253
BIT_INFO 2 scope 0x0,0xfd
HARD_MAX 2 scope 253
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->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
UNITS 1 dst unit_byte
HALF_LOCKED2 bh

drivers/net/vrf.c vrf_process_v4_outbound() -> inet_select_addr()

Type Parameter Key Value
PARAM_VALUE 1 dst 0
PARAM_VALUE 2 scope 253
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
HALF_LOCKED2 &txq->_xmit_lock
HALF_LOCKED2 &vrf_dev->tx_global_lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read

net/ipv4/fib_semantics.c fib_info_update_nhc_saddr() -> inet_select_addr()

Type Parameter Key Value
PARAM_VALUE 1 dst 0
DATA_SOURCE 2 scope $2
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte

net/ipv4/fib_semantics.c fib_info_update_nhc_saddr() -> inet_select_addr()

Type Parameter Key Value
DATA_SOURCE 2 scope $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
UNITS 1 dst unit_byte
HALF_LOCKED2 &net->rtnl_mutex
HALF_LOCKED2 global &rtnl_mutex

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

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 1 dst 0
PARAM_VALUE 2 scope 253
CAPPED_DATA 0 dev->ifindex 1
DATA_SOURCE 0 dev r dev_get_by_index_rcu
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 rcu_read

net/ipv4/arp.c arp_solicit() -> inet_select_addr()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->ip_ptr->dev 4096-ptr_max
PARAM_VALUE 2 scope 253
CAPPED_DATA 0 dev->ip_ptr 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 dst 0-u32max
UNITS 0 dev unit_byte
HALF_LOCKED2 bh

net/ipv4/icmp.c __icmp_send() -> inet_select_addr()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 2 scope 253
CAPPED_DATA 0 dev->ifindex 1
DATA_SOURCE 0 dev r dev_get_by_index_rcu
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
UNITS 1 dst unit_byte
LOCK2 bh
LOCK2 rcu_read
HALF_LOCKED2 &x->lock

net/bridge/br_multicast.c br_ip4_multicast_alloc_query() -> inet_select_addr()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->dev_addr 4096-ptr_max
PARAM_VALUE 0 dev->ethtool_ops->begin 0,5,1835931156019712000,3096438129622650880,3900617307435175936,5716752743725981696,7946597811871383552,8525681326485266432
PARAM_VALUE 0 dev->ethtool_ops->complete 0,7,3066456658599772160,3725154072746565632,6586841582423441408,7106287630129446912
PARAM_VALUE 0 dev->ethtool_ops->get_mm 0,85,871246504159531008,1782640983197487104,6800978227696902144,8546551779893547008
PARAM_VALUE 0 dev->ethtool_ops->set_mm 0,6,1901320415777849344,3866000723147972608,5541409492295524352,6099901598508961792
PARAM_VALUE 0 dev->ethtool_ops->supported_coalesce_params 0-3,17,19,34-35,48,51,59,63,204,236,273,511,513,529,547,561,563,595,597,1553,1587,1681,132625,135697,657041,677393,2029107,2097665,2300433,2300595,3653155,12583935,12584499,13239859,117440512,536872499,s32max
PARAM_VALUE 0 dev->mtu 46-u32max
PARAM_VALUE 0 dev->rtnl_link_ops->priv_size 0,8,32,40,48,56,88,112,120,144,160,224,240,256,296,616,624,728,744,1056,1128,1336,1616,2176,2240,2272,2560,3296,3544,9688-u64max
PARAM_VALUE 1 dst 0
PARAM_VALUE 2 scope 253
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &br->multicast_lock
HALF_LOCKED2 &brmctx->br->multicast_lock
TYPE_LOCK (struct net_bridge)->multicast_lock

net/netfilter/ipvs/ip_vs_sync.c bind_mcastif_addr() -> inet_select_addr()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 1 dst 0
PARAM_VALUE 2 scope 0
DATA_SOURCE 0 dev $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &ipvs->sync_mutex
LOCK2 global &rtnl_mutex
TYPE_LOCK (struct netns_ipvs)->sync_mutex

net/netfilter/nf_nat_masquerade.c nf_nat_masquerade_ipv4() -> inet_select_addr()

Type Parameter Key Value
PARAM_VALUE 2 scope 0
DATA_SOURCE 0 dev $3
DATA_SOURCE 1 dst r rt_nexthop
RX_PATH
TASK_NOT_RUNNING

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

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->flags 1-u32max
PARAM_VALUE 0 dev->ip_ptr 1-u64max
PARAM_VALUE 1 dst 0
PARAM_VALUE 2 scope 253
CAPPED_DATA 0 dev->ifindex 1
CAPPED_DATA 0 dev->ip_ptr 1
DATA_SOURCE 0 dev r dev_get_by_index_rcu
BIT_INFO 0 dev->flags 0x1,0xffffffffffffffff
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

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

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->flags 1-u32max
PARAM_VALUE 0 dev->ip_ptr 1-u64max
PARAM_VALUE 1 dst 0
CAPPED_DATA 0 dev->ifindex 1
CAPPED_DATA 0 dev->ip_ptr 1
DATA_SOURCE 0 dev r dev_get_by_index_rcu
BIT_INFO 0 dev->flags 0x1,0xffffffffffffffff
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

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

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->flags 1-u32max
PARAM_VALUE 0 dev->ip_ptr 1-u64max
PARAM_VALUE 1 dst 0
PARAM_VALUE 2 scope 254
CAPPED_DATA 0 dev->ifindex 1
CAPPED_DATA 0 dev->ip_ptr 1
DATA_SOURCE 0 dev r dev_get_by_index_rcu
BIT_INFO 0 dev->flags 0x1,0xffffffffffffffff
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

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

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->flags 1-u32max
PARAM_VALUE 0 dev->ip_ptr 1-u64max
PARAM_VALUE 1 dst 0
PARAM_VALUE 2 scope 253
CAPPED_DATA 0 dev->ifindex 1
CAPPED_DATA 0 dev->ip_ptr 1
DATA_SOURCE 0 dev r dev_get_by_index_rcu
BIT_INFO 0 dev->flags 0x1,0xffffffffffffffff
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

net/ipv4/route.c ip_rt_get_source() -> inet_select_addr()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 2 scope 0
CAPPED_DATA 0 dev->nd_net.net 1
DATA_SOURCE 0 dev r dst_dev_rcu
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read