Defined in 2 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/net/can/grcan.c catch_up_echo_skb() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->lock
HALF_LOCKED2 flags
TYPE_LOCK (struct grcan_priv)->lock

drivers/net/can/grcan.c catch_up_echo_skb() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->lock
HALF_LOCKED2 flags
TYPE_LOCK (struct grcan_priv)->lock

drivers/net/can/grcan.c grcan_clear_bits() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
DATA_SOURCE 0 reg $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &priv->lock
HALF_LOCKED2 flags

drivers/net/can/grcan.c grcan_err() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->lock
LOCK2 flags
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq
TYPE_LOCK (struct grcan_priv)->lock

drivers/net/can/grcan.c grcan_get_berr_counter() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->ethtool->rss_lock
HALF_LOCKED2 &dev->lock

drivers/net/can/grcan.c grcan_interrupt() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 flags

drivers/net/can/grcan.c grcan_interrupt() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 flags

drivers/net/can/grcan.c grcan_lost_one_shot_frame() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->lock
LOCK2 flags
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
TYPE_LOCK (struct grcan_priv)->lock

drivers/net/can/grcan.c grcan_read_bits() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
DATA_SOURCE 0 reg $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &priv->lock
HALF_LOCKED2 global &rtnl_mutex

drivers/net/can/grcan.c grcan_receive() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ni->dev_lock
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

drivers/net/can/grcan.c grcan_receive() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ni->dev_lock
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

drivers/net/can/grcan.c grcan_reset() -> grcan_read_reg()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->lock
LOCK2 flags
TYPE_LOCK (struct grcan_priv)->lock

drivers/net/can/grcan.c grcan_reset() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->lock
LOCK2 flags
TYPE_LOCK (struct grcan_priv)->lock

drivers/net/can/grcan.c grcan_running_reset() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->lock
LOCK2 flags
TYPE_LOCK (struct grcan_priv)->lock

drivers/net/can/grcan.c grcan_running_reset() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->lock
LOCK2 flags
TYPE_LOCK (struct grcan_priv)->lock

drivers/net/can/grcan.c grcan_running_reset() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->lock
LOCK2 flags
TYPE_LOCK (struct grcan_priv)->lock

drivers/net/can/grcan.c grcan_running_reset() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->lock
LOCK2 flags
TYPE_LOCK (struct grcan_priv)->lock

drivers/net/can/grcan.c grcan_running_reset() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->lock
LOCK2 flags
TYPE_LOCK (struct grcan_priv)->lock

drivers/net/can/grcan.c grcan_running_reset() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->lock
LOCK2 flags
TYPE_LOCK (struct grcan_priv)->lock

drivers/net/can/grcan.c grcan_running_reset() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->lock
LOCK2 flags
TYPE_LOCK (struct grcan_priv)->lock

drivers/net/can/grcan.c grcan_running_reset() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->lock
LOCK2 flags
TYPE_LOCK (struct grcan_priv)->lock

drivers/net/can/grcan.c grcan_running_reset() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->lock
LOCK2 flags
TYPE_LOCK (struct grcan_priv)->lock

drivers/net/can/grcan.c grcan_set_bits() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
DATA_SOURCE 0 reg $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &priv->lock
HALF_LOCKED2 flags

drivers/net/can/grcan.c grcan_start() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &priv->lock
LOCK2 flags
HALF_LOCKED2 global &rtnl_mutex
TYPE_LOCK (struct grcan_priv)->lock

drivers/net/can/grcan.c grcan_start_xmit() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->lock
LOCK2 flags
HALF_LOCKED2 &txq->_xmit_lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct grcan_priv)->lock

drivers/net/can/grcan.c grcan_start_xmit() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &txq->_xmit_lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read

drivers/net/can/grcan.c grcan_start_xmit() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &txq->_xmit_lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read

drivers/net/can/grcan.c grcan_txbug_workaround() -> grcan_read_reg()

Type Parameter Key Value
PARAM_VALUE 0 reg 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &txq->_xmit_lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read

drivers/net/can/grcan.c grcan_write_bits() -> grcan_read_reg()

Type Parameter Key Value
DATA_SOURCE 0 reg $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &priv->lock
HALF_LOCKED2 flags
HALF_LOCKED2 global &rtnl_mutex