Documented in 1 files:

Defined in 2 files as a function:

Referenced in 15 files:

Smatch caller information:

drivers/net/ethernet/aquantia/atlantic/aq_filters.c aq_update_table_filters() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 0 n->next 0
PARAM_VALUE 0 n->pprev 0
PARAM_VALUE 1 prev 4096-ptr_max
PARAM_VALUE 1 prev->next 1-u64max
NOCHECK_CALL

net/batman-adv/fragmentation.c batadv_frag_insert_packet() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 1 prev 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &chain->lock
LOCK2 bh
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct batadv_frag_table_entry)->lock

drivers/net/wireguard/allowedips.c horrible_insert_ordered() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 1 prev 4096-ptr_max
NOCHECK_CALL
LOCK2 &mutex

drivers/crypto/cavium/cpt/cptvf_main.c alloc_command_queues() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 1 prev 24
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/md/dm-snap.c dm_insert_exception() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 1 prev 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &s->lock
HALF_LOCKED2 lock.complete_slot
HALF_LOCKED2 lock.pending_slot

drivers/net/ethernet/intel/i40e/i40e_ethtool.c i40e_update_ethtool_fdir_entry() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 0 n->next 0
PARAM_VALUE 0 n->pprev 0
PARAM_VALUE 1 prev 4096-ptr_max
PARAM_VALUE 1 prev->next 1-u64max
NOCHECK_CALL

fs/namespace.c clone_mnt() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 0 n->next 0
PARAM_VALUE 0 n->pprev 0
PARAM_VALUE 1 prev 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &root->d_inode->i_rwsem
HALF_LOCKED2 &to_path.dentry->d_inode->i_rwsem
HALF_LOCKED2 global &acct_on_mutex
HALF_LOCKED2 global &namespace_sem

fs/namespace.c do_set_group() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 1 prev 4096-ptr_max
NOCHECK_CALL
LOCK2 global &namespace_sem

kernel/bpf/cgroup.c insert_pl_to_hlist() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 1 prev 1-ptr_max
NOCHECK_CALL
LOCK2 global &cgroup_mutex

drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c nix_update_mce_list_entry() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 1 prev 4096-ptr_max
RX_PATH
NOCHECK_CALL
LOCK2 &mcast->mce_lock
HALF_LOCKED2 &rvu->flr_lock
TYPE_LOCK (struct nix_mcast)->mce_lock

drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c ixgbe_update_ethtool_fdir_entry() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 0 n->next 0
PARAM_VALUE 0 n->pprev 0
PARAM_VALUE 1 prev 4096-ptr_max
PARAM_VALUE 1 prev->next 1-u64max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &adapter->fdir_perfect_lock
HALF_LOCKED2 &block->cb_lock
TYPE_LOCK (struct ixgbe_adapter)->fdir_perfect_lock

drivers/net/ethernet/wangxun/txgbe/txgbe_ethtool.c txgbe_update_ethtool_fdir_entry() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 0 n->next 0
PARAM_VALUE 0 n->pprev 0
PARAM_VALUE 1 prev 1-u64max
PREEMPT_ADD
NOCHECK_CALL
LOCK2 &txgbe->fdir_perfect_lock
TYPE_LOCK (struct txgbe)->fdir_perfect_lock

drivers/net/ethernet/intel/igb/igb_ethtool.c igb_update_ethtool_nfc_entry() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 0 n->next 0
PARAM_VALUE 0 n->pprev 0
PARAM_VALUE 1 prev 4096-ptr_max
PREEMPT_ADD
NOCHECK_CALL
LOCK2 &adapter->nfc_lock
TYPE_LOCK (struct igb_adapter)->nfc_lock

lib/tests/list-test.c hlist_test_add() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 7750414414285979648
PARAM_VALUE 1 prev 114546257186250752
PARAM_VALUE 1 prev->next 0
NOCHECK_CALL

lib/tests/list-test.c hlist_test_del() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 5947716152500293632
PARAM_VALUE 1 prev 3295469340062085120
PARAM_VALUE 1 prev->next 0
NOCHECK_CALL

lib/tests/list-test.c hlist_test_del_init() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 1359624600211832832
PARAM_VALUE 1 prev 1753525233711714304
PARAM_VALUE 1 prev->next 0
NOCHECK_CALL

lib/tests/list-test.c hlist_test_for_each() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4270199517800857608
PARAM_VALUE 1 prev 4270199517800857600
BUF_SIZE 0 n 32
BUF_SIZE 1 prev 48
NOCHECK_CALL

lib/tests/list-test.c hlist_test_for_each() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4270199517800857616
PARAM_VALUE 1 prev 4270199517800857608
BUF_SIZE 1 prev 32
NOCHECK_CALL

lib/tests/list-test.c hlist_test_for_each_entry() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 1 prev 4096-ptr_max
NOCHECK_CALL

lib/tests/list-test.c hlist_test_for_each_entry_continue() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 1 prev 4096-ptr_max
NOCHECK_CALL

lib/tests/list-test.c hlist_test_for_each_entry_from() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 1 prev 4096-ptr_max
NOCHECK_CALL

lib/tests/list-test.c hlist_test_for_each_entry_safe() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 1 prev 4096-ptr_max
NOCHECK_CALL

lib/tests/list-test.c hlist_test_for_each_safe() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 2395473870353477640
PARAM_VALUE 1 prev 2395473870353477632
BUF_SIZE 0 n 32
BUF_SIZE 1 prev 48
NOCHECK_CALL

lib/tests/list-test.c hlist_test_for_each_safe() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 2395473870353477648
PARAM_VALUE 1 prev 2395473870353477640
BUF_SIZE 1 prev 32
NOCHECK_CALL

fs/libfs.c dcache_dir_lseek() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 0 n->next 0
PARAM_VALUE 0 n->pprev 0
PARAM_VALUE 1 prev 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &dentry->d_inode->i_rwsem
LOCK2 &dentry->d_lockref.lock
TYPE_LOCK (struct inode)->i_rwsem
TYPE_LOCK (struct lockref)->lock

fs/libfs.c scan_positives() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 0 n->pprev 0,4096-ptr_max
PARAM_VALUE 1 prev 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &dentry->d_lockref.lock
HALF_LOCKED2 &dentry->d_inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_fd.c hclge_fd_insert_rule_node() -> hlist_add_behind()

Type Parameter Key Value
PARAM_VALUE 0 n 4096-ptr_max
PARAM_VALUE 0 n->next 0
PARAM_VALUE 0 n->pprev 0
PARAM_VALUE 1 prev 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &hdev->fd_rule_lock
LOCK2 bh
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct hclge_dev)->fd_rule_lock