Defined in 2 files as a function:

Referenced in 2 files:

Smatch caller information:

net/ipv6/ip6mr.c ip6mr_prepare_xmit() -> vif_dev_read()

Type Parameter Key Value
PARAM_VALUE 0 vif 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &net->ipv6.mfc_mutex
HALF_LOCKED2 rcu_read

net/ipv6/ip6mr.c ip6mr_vif_seq_show() -> vif_dev_read()

Type Parameter Key Value
PARAM_VALUE 0 vif 2-ptr_max
DATA_SOURCE 0 vif $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &seq->lock
TYPE_LOCK (struct seq_file)->lock

net/ipv6/ip6mr.c pim6_rcv() -> vif_dev_read()

Type Parameter Key Value
PARAM_VALUE 0 vif 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

net/ipv4/ipmr.c __pim_rcv() -> vif_dev_read()

Type Parameter Key Value
PARAM_VALUE 0 vif 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 rcu_read

net/ipv4/ipmr.c ipmr_fill_vif() -> vif_dev_read()

Type Parameter Key Value
PARAM_VALUE 0 vif 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

net/ipv4/ipmr.c ipmr_prepare_xmit() -> vif_dev_read()

Type Parameter Key Value
PARAM_VALUE 0 vif 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &net->ipv4.mfc_mutex
HALF_LOCKED2 rcu_read

net/ipv4/ipmr.c ipmr_vif_seq_show() -> vif_dev_read()

Type Parameter Key Value
PARAM_VALUE 0 vif 2-ptr_max
DATA_SOURCE 0 vif $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &seq->lock
TYPE_LOCK (struct seq_file)->lock