Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

net/core/dev_addr_lists.c __hw_addr_sync() -> __hw_addr_unsync_one()

Type Parameter Key Value
PARAM_VALUE 0 to_list 4096-ptr_max
PARAM_VALUE 1 from_list 4096-ptr_max
PARAM_VALUE 2 ha 4096-ptr_max
PARAM_VALUE 2 ha->refcount 1
PARAM_VALUE 2 ha->sync_cnt s32min-(-1),1-s32max
CAPPED_DATA 1 &from_list->list 1
CAPPED_DATA 2 &ha->list 1
DATA_SOURCE 0 to_list $0
DATA_SOURCE 1 from_list $1
DATA_SOURCE 3 addr_len $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 3 addr_len unit_byte
HALF_LOCKED2 &local->filter_lock
HALF_LOCKED2 &to->addr_list_lock
HALF_LOCKED2 bh
HALF_LOCKED2 global &rtnl_mutex

net/core/dev_addr_lists.c __hw_addr_sync_multiple() -> __hw_addr_unsync_one()

Type Parameter Key Value
PARAM_VALUE 0 to_list 4096-ptr_max
PARAM_VALUE 1 from_list 4096-ptr_max
PARAM_VALUE 2 ha 4096-ptr_max
CAPPED_DATA 1 &from_list->list 1
CAPPED_DATA 2 ha->refcount 1
CAPPED_DATA 2 ha->sync_cnt 1
CAPPED_DATA 2 &ha->list 1
CAPPED_DATA 3 addr_len 1
DATA_SOURCE 0 to_list $0
DATA_SOURCE 1 from_list $1
DATA_SOURCE 3 addr_len $2
PARAM_COMPARE 2 ha->refcount == $2->sync_cnt
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 3 addr_len unit_byte
LOCK2 &to->addr_list_lock
HALF_LOCKED2 &from->addr_list_lock
HALF_LOCKED2 bh
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct net_device)->addr_list_lock

net/core/dev_addr_lists.c __hw_addr_unsync() -> __hw_addr_unsync_one()

Type Parameter Key Value
PARAM_VALUE 0 to_list 4096-ptr_max
PARAM_VALUE 1 from_list 4096-ptr_max
PARAM_VALUE 2 ha 4096-ptr_max
PARAM_VALUE 2 ha->sync_cnt s32min-(-1),1-s32max
CAPPED_DATA 1 &from_list->list 1
CAPPED_DATA 2 &ha->list 1
CAPPED_DATA 3 addr_len 1
DATA_SOURCE 0 to_list $0
DATA_SOURCE 1 from_list $1
DATA_SOURCE 3 addr_len $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 3 addr_len unit_byte
LOCK2 &from->addr_list_lock
LOCK2 &to->addr_list_lock
LOCK2 bh
TYPE_LOCK (struct net_device)->addr_list_lock