Defined in 1 files as a function:

Referenced in 27 files:

Smatch caller information:

net/xfrm/xfrm_iptfs.c dst_clone() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 2-u64max
DATA_SOURCE 0 dst $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &xtfs->drop_lock

net/ipv6/ip6_input.c dst_clone() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 2-u64max
DATA_SOURCE 0 dst $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 bh

drivers/net/macsec.c macsec_start_xmit() -> dst_hold()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->tx_global_lock
HALF_LOCKED2 &txq->_xmit_lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read

drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c bnxt_vf_rep_xmit() -> dst_hold()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->tx_global_lock
HALF_LOCKED2 &txq->_xmit_lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read

drivers/net/ethernet/netronome/nfp/nfp_net_repr.c nfp_repr_xmit() -> dst_hold()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &netdev->tx_global_lock
HALF_LOCKED2 &txq->_xmit_lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read

drivers/net/vrf.c vrf_ip6_out_redirect() -> dst_hold()

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

drivers/net/vrf.c vrf_ip_out_redirect() -> dst_hold()

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

net/core/skbuff.c dst_clone() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 2-u64max
DATA_SOURCE 0 dst $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/net/ethernet/intel/ice/ice_eswitch.c ice_eswitch_port_start_xmit() -> dst_hold()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &netdev->tx_global_lock
HALF_LOCKED2 &txq->_xmit_lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read

net/core/filter.c ____bpf_skb_set_tunnel_key() -> dst_hold()

Type Parameter Key Value
NOCHECK_CALL

net/core/dst_cache.c dst_cache_per_cpu_dst_set() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 1-ptr_max
BUF_SIZE 0 dst (-1)-0,144,152
BUF_SIZE 0 dst (-1)-0,144,152
CAPPED_DATA 0 dst 1
DATA_SOURCE 0 dst $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &peer->endpoint_lock
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

net/core/dst_cache.c dst_cache_per_cpu_get() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 1-u64max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

net/sched/act_tunnel_key.c dst_clone() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 1-u64max
DATA_SOURCE 0 dst $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/sched/sch_frag.c dst_clone() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 2-u64max
DATA_SOURCE 0 dst $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
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 rcu_read
HALF_LOCKED2 sk

net/ipv6/ip6_vti.c vti6_xmit() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 2-u64max
BUF_SIZE 0 dst (-1)-0,144,152
BUF_SIZE 0 dst (-1)-0,144,152
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &txq->_xmit_lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read

net/sctp/protocol.c dst_clone() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 1-u64max
DATA_SOURCE 0 dst $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/netfilter/nft_tunnel.c nft_tunnel_obj_eval() -> dst_hold()

Type Parameter Key Value
NOCHECK_CALL

drivers/infiniband/sw/rxe/rxe_net.c dst_clone() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 1-ptr_max
BUF_SIZE 0 dst (-1)-s32max
BUF_SIZE 0 dst (-1)-s32max
DATA_SOURCE 0 dst $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/infiniband/sw/rxe/rxe_net.c rxe_find_route() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 1-ptr_max
PARAM_VALUE 0 dst->ops->pcpuc_entries.lock.dep_map->name 0-255
PARAM_VALUE 0 dst->ops->pcpuc_entries.lock.owner (-1)
PARAM_VALUE 0 dst->ops->pcpuc_entries.lock.owner_cpu u32max
BUF_SIZE 0 dst (-1)-0,4,24,64,144,152,168-s32max
BUF_SIZE 0 dst (-1)-0,4,24,64,144,152,168-s32max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/xfrm/xfrm_output.c dst_clone() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 1-u64max
DATA_SOURCE 0 dst $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/xfrm/xfrm_interface_core.c xfrmi_xmit2() -> dst_hold()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &txq->_xmit_lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read

net/sctp/output.c sctp_packet_config() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 1-ptr_max
PARAM_VALUE 0 dst->obsolete 0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

net/ipv6/ip6mr.c dst_clone() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 2-u64max
DATA_SOURCE 0 dst $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 bh
HALF_LOCKED2 global &mfc_unres_lock
HALF_LOCKED2 rcu_read

net/ipv4/udp.c dst_clone() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 4096-ptr_max
DATA_SOURCE 0 dst $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/ipv6/fib6_rules.c __fib6_rule_action() -> dst_hold()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

net/ipv6/fib6_rules.c fib6_rule_lookup() -> dst_hold()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 rcu_read

net/ipv4/arp.c dst_clone() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 2-u64max
BUF_SIZE 0 dst (-1)-0,256-511
BUF_SIZE 0 dst (-1)-0,256-511
DATA_SOURCE 0 dst $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/ipv4/ip_vti.c vti_xmit() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 2-u64max
BUF_SIZE 0 dst (-1)-0,144,152
BUF_SIZE 0 dst (-1)-0,144,152
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &txq->_xmit_lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read

net/ipv6/route.c ip6_create_rt_rcu() -> dst_hold()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &net->ipv4.mfc_mutex
HALF_LOCKED2 &net->ipv6.mfc_mutex

net/ipv6/route.c ip6_hold_safe() -> dst_hold()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &net->ipv4.mfc_mutex
HALF_LOCKED2 &net->ipv6.mfc_mutex

net/ipv6/route.c ip6_pol_route_lookup() -> dst_hold()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &net->ipv4.mfc_mutex
HALF_LOCKED2 &net->ipv6.mfc_mutex

net/ipv6/route.c ip6_route_output_flags() -> dst_hold()

Type Parameter Key Value
BUF_SIZE 0 dst 144
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &ipvs->service_mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 bh
HALF_LOCKED2 global &rx_queue_mutex

net/sctp/outqueue.c sctp_outq_flush_transports() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 1-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

net/ipv6/ip6_output.c dst_clone() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 2-u64max
BUF_SIZE 0 dst (-1)-0,4,24,64,144,152,168-s32max
BUF_SIZE 0 dst (-1)-0,4,24,64,144,152,168-s32max
DATA_SOURCE 0 dst $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/ipv6/ip6_output.c ip6_append_data() -> dst_hold()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read
HALF_LOCKED2 sk

net/ipv6/seg6_local.c seg6_lookup_any_nexthop() -> dst_hold()

Type Parameter Key Value
BUF_SIZE 0 dst 144
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/xfrm/xfrm_policy.c xfrm_bundle_create() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 4096-ptr_max
BUF_SIZE 0 dst (-1)-0,144,152
BUF_SIZE 0 dst (-1)-0,144,152
DATA_SOURCE 0 dst $5
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 bh

net/xfrm/xfrm_policy.c xfrm_bundle_create() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 4096-ptr_max
BUF_SIZE 0 dst (-1)-0,144,152
BUF_SIZE 0 dst (-1)-0,144,152
DATA_SOURCE 0 dst $5 [m]
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 bh

net/xfrm/xfrm_policy.c xfrm_create_dummy_bundle() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &net->ipv4.mfc_mutex
HALF_LOCKED2 &net->ipv6.mfc_mutex
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

net/xfrm/xfrm_policy.c xfrm_create_dummy_bundle() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &net->ipv4.mfc_mutex
HALF_LOCKED2 &net->ipv6.mfc_mutex
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

net/xfrm/xfrm_policy.c xfrm_out_fwd_icmp() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 4096-ptr_max
PARAM_VALUE 0 dst->dev->refcnt_tracker.list.next->next 4096-ptr_max
PARAM_VALUE 0 dst->dev->refcnt_tracker.list.next->prev 4096-ptr_max
PARAM_VALUE 0 dst->dev->refcnt_tracker.quarantine.prev 4096-ptr_max
PARAM_VALUE 0 dst->dev->refcnt_tracker.quarantine.prev->next 4096-ptr_max
PARAM_VALUE 0 dst->dev->refcnt_tracker.quarantine.prev->next->next 4096-ptr_max
PARAM_VALUE 0 dst->ops->pcpuc_entries.lock.dep_map->name 0-255
PARAM_VALUE 0 dst->ops->pcpuc_entries.lock.owner (-1)
PARAM_VALUE 0 dst->ops->pcpuc_entries.lock.owner_cpu u32max
PARAM_VALUE 0 dst->xfrm 0
BUF_SIZE 0 dst (-1)-0,144,152
BUF_SIZE 0 dst (-1)-0,144,152
CAPPED_DATA 0 dst 1
DATA_SOURCE 0 dst $3
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

net/xfrm/xfrm_policy.c xfrm_policy_queue_process() -> dst_hold()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/xfrm/xfrm_policy.c xfrm_policy_queue_process() -> dst_hold()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/ipv6/ioam6_iptunnel.c ioam6_output() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 4096-ptr_max
PARAM_VALUE 0 dst->ops->pcpuc_entries.lock.dep_map->name 0-255
PARAM_VALUE 0 dst->ops->pcpuc_entries.lock.owner (-1)
PARAM_VALUE 0 dst->ops->pcpuc_entries.lock.owner_cpu u32max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
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/openvswitch/actions.c dst_clone() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 2-u64max
DATA_SOURCE 0 dst $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
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 rcu_read
HALF_LOCKED2 sk

net/openvswitch/actions.c execute_set_action() -> dst_hold()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/sctp/ipv6.c dst_clone() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 1-u64max
DATA_SOURCE 0 dst $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/ipv6/seg6_iptunnel.c seg6_input_route() -> dst_hold()

Type Parameter Key Value
BUF_SIZE 0 dst 144
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 dst->dev->real_num_rx_queues
NO_OVERFLOW_SIMPLE 0 dst->dev->real_num_tx_queues
NO_OVERFLOW_SIMPLE 0 dst->dev->stats.rx_bytes
NO_OVERFLOW_SIMPLE 0 dst->dev->stats.tx_bytes
HALF_LOCKED2 &net->ipv4.mfc_mutex
HALF_LOCKED2 &net->ipv6.mfc_mutex
HALF_LOCKED2 rcu_read

net/ipv6/seg6_iptunnel.c seg6_output_dst_lookup() -> dst_hold()

Type Parameter Key Value
BUF_SIZE 0 dst 144
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 dst->dev->real_num_rx_queues
NO_OVERFLOW_SIMPLE 0 dst->dev->real_num_tx_queues
NO_OVERFLOW_SIMPLE 0 dst->dev->stats.rx_bytes
NO_OVERFLOW_SIMPLE 0 dst->dev->stats.tx_bytes
HALF_LOCKED2 &net->ipv4.mfc_mutex
HALF_LOCKED2 &net->ipv6.mfc_mutex
HALF_LOCKED2 rcu_read

net/ipv4/route.c dst_clone() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 2-u64max
DATA_SOURCE 0 dst $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 bh

net/ipv4/route.c rt_bind_exception() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 4096-ptr_max
PARAM_VALUE 0 dst->dev 4096-ptr_max
PARAM_VALUE 0 dst->lwtstate 0,4096-ptr_max
PARAM_VALUE 0 dst->output 1681878067841851392,3309956784800464896,7099098218899050496
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 bh
LOCK2 global &fnhe_lock
LOCK2 rcu_read

net/ipv4/route.c rt_cache_route() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 4096-ptr_max
PARAM_VALUE 0 dst->lwtstate 0,4096-ptr_max
PARAM_VALUE 0 dst->output 1681878067841851392,2217534698156650496,3309956784800464896,7099098218899050496
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

net/ipv4/ip_output.c dst_clone() -> dst_hold()

Type Parameter Key Value
PARAM_VALUE 0 dst 2-u64max
DATA_SOURCE 0 dst $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL