Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

drivers/net/ethernet/mscc/ocelot_net.c ocelot_mact_work() -> ocelot_mact_learn()

Type Parameter Key Value
BUF_SIZE 2 mac 6
NOCHECK_CALL
UNITS 0 ocelot unit_byte
HALF_LOCKED2 &pool->lock

drivers/net/ethernet/mscc/ocelot_net.c ocelot_port_set_mac_address() -> ocelot_mact_learn()

Type Parameter Key Value
PARAM_VALUE 1 port 58
PARAM_VALUE 3 vid 0
PARAM_VALUE 4 type 1
BUF_SIZE 2 mac 14
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 ocelot unit_byte
HALF_LOCKED2 global &dev_addr_sem
HALF_LOCKED2 global &rtnl_mutex

drivers/net/ethernet/mscc/ocelot_net.c ocelot_probe_port() -> ocelot_mact_learn()

Type Parameter Key Value
PARAM_VALUE 0 ocelot 4096-ptr_max
PARAM_VALUE 0 ocelot->dev 4096-ptr_max
PARAM_VALUE 0 ocelot->dev->devres_head.prev 4096-ptr_max
PARAM_VALUE 0 ocelot->dev->devres_head.prev->next 4096-ptr_max
PARAM_VALUE 0 ocelot->dev->devres_head.prev->next->next 4096-ptr_max
PARAM_VALUE 0 ocelot->devlink 4096-ptr_max
PARAM_VALUE 0 ocelot->devlink->lock.dep_map->name 0-255
PARAM_VALUE 0 ocelot->devlink->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 ocelot->devlink->lock.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 ocelot->devlink->lock.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 ocelot->devlink->ports.xa_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ocelot->devlink_ports 1-u64max
PARAM_VALUE 0 ocelot->num_phys_ports 1-255
PARAM_VALUE 0 ocelot->ports 4096-ptr_max
PARAM_VALUE 1 port 58
PARAM_VALUE 3 vid 0
PARAM_VALUE 4 type 1
BUF_SIZE 0 ocelot s32min-(-2),1-s32max
BUF_SIZE 0 ocelot s32min-(-2),1-s32max
BUF_SIZE 0 ocelot->devlink_ports 0-120360
BUF_SIZE 0 ocelot->ports 0-2040
BUF_SIZE 2 mac 32
DATA_SOURCE 0 ocelot $0
MEM_ZERO 0 ocelot->devlink_ports
MEM_ZERO 0 ocelot->ports
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 ocelot->num_phys_ports
UNITS 0 ocelot unit_byte

drivers/net/ethernet/mscc/ocelot_net.c ocelot_vlan_vid_add() -> ocelot_mact_learn()

Type Parameter Key Value
PARAM_VALUE 0 ocelot 4096-ptr_max
PARAM_VALUE 0 ocelot->ports 4096-ptr_max
PARAM_VALUE 1 port 58
PARAM_VALUE 4 type 1
BUF_SIZE 2 mac 32
CAPPED_DATA 3 vid 1
DATA_SOURCE 3 vid $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 3 vid 1-4094[c]
UNITS 0 ocelot unit_byte
UNITS 3 vid unit_array_size

drivers/net/ethernet/mscc/ocelot.c ocelot_fdb_add() -> ocelot_mact_learn()

Type Parameter Key Value
PARAM_VALUE 4 type 1
BUF_SIZE 0 ocelot s32min-(-1),1-s32max
BUF_SIZE 0 ocelot s32min-(-1),1-s32max
BUF_SIZE 2 mac (-1),6,14,32
BUF_SIZE 2 mac (-1),6,14,32
DATA_SOURCE 0 ocelot $0
DATA_SOURCE 1 port $1
DATA_SOURCE 2 mac $2
DATA_SOURCE 3 vid $3 [m]
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 *mac 0-255
UNITS 0 ocelot unit_byte
UNITS 1 port unit_array_size
UNITS 3 vid unit_array_size
USER_PTR 2 mac

drivers/net/ethernet/mscc/ocelot.c ocelot_lag_fdb_add() -> ocelot_mact_learn()

Type Parameter Key Value
PARAM_VALUE 0 ocelot 4096-ptr_max
PARAM_VALUE 0 ocelot->fwd_domain_lock.dep_map->name 0-255
PARAM_VALUE 0 ocelot->fwd_domain_lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 ocelot->fwd_domain_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 ocelot->fwd_domain_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 ocelot->fwd_domain_lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 ocelot->fwd_domain_lock.wait_lock.owner (-1)
PARAM_VALUE 0 ocelot->fwd_domain_lock.wait_lock.owner_cpu u32max
PARAM_VALUE 2 mac 4096-ptr_max
PARAM_VALUE 4 type 1
BUF_SIZE 0 ocelot s32min-(-2),1-s32max
BUF_SIZE 0 ocelot s32min-(-2),1-s32max
BUF_SIZE 2 mac 6,14,32
BUF_SIZE 2 mac 6,14,32
CAPPED_DATA 0 ocelot->num_phys_ports 1
CAPPED_DATA 0 &ocelot->fwd_domain_lock 1
DATA_SOURCE 0 ocelot $0
DATA_SOURCE 1 port r ocelot_bond_get_id
DATA_SOURCE 2 mac $2
DATA_SOURCE 3 vid $3 [m]
UNITS 0 ocelot unit_byte
LOCK2 &lag->fdb_lock
LOCK2 0 &ocelot->fwd_domain_lock
TYPE_LOCK (struct dsa_lag)->fdb_lock
TYPE_LOCK (struct ocelot)->fwd_domain_lock

drivers/net/ethernet/mscc/ocelot.c ocelot_migrate_lag_fdbs() -> ocelot_mact_learn()

Type Parameter Key Value
PARAM_VALUE 0 ocelot 4096-ptr_max
PARAM_VALUE 0 ocelot->fwd_domain_lock.dep_map->name 0-255
PARAM_VALUE 0 ocelot->fwd_domain_lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 ocelot->fwd_domain_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 ocelot->fwd_domain_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 ocelot->fwd_domain_lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 ocelot->fwd_domain_lock.wait_lock.owner (-1)
PARAM_VALUE 0 ocelot->fwd_domain_lock.wait_lock.owner_cpu u32max
PARAM_VALUE 0 ocelot->mact_lock.dep_map->name 0-255
PARAM_VALUE 0 ocelot->mact_lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 ocelot->mact_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 ocelot->mact_lock.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 ocelot->mact_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 ocelot->map 4096-ptr_max
PARAM_VALUE 0 ocelot->ops 4096-ptr_max
PARAM_VALUE 0 ocelot->ports 4096-ptr_max
PARAM_VALUE 1 port 0-s32max
PARAM_VALUE 4 type 1
BUF_SIZE 0 ocelot s32min-(-1),1-s32max
BUF_SIZE 0 ocelot s32min-(-1),1-s32max
BUF_SIZE 2 mac 6
CAPPED_DATA 0 ocelot->num_phys_ports 1
CAPPED_DATA 0 &ocelot->lag_fdbs 1
DATA_SOURCE 0 ocelot $0
DATA_SOURCE 1 port $2
UNITS 0 ocelot unit_byte
LOCK2 0 &ocelot->fwd_domain_lock
TYPE_LOCK (struct ocelot)->fwd_domain_lock

drivers/net/ethernet/mscc/ocelot.c ocelot_migrate_mc() -> ocelot_mact_learn()

Type Parameter Key Value
PARAM_VALUE 0 ocelot 4096-ptr_max
PARAM_VALUE 0 ocelot->mact_lock.dep_map->name 0-255
PARAM_VALUE 0 ocelot->mact_lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 ocelot->mact_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 ocelot->mact_lock.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 ocelot->mact_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 ocelot->map 4096-ptr_max
PARAM_VALUE 2 mac 6022085301385666560
PARAM_VALUE 4 type 0-3
BUF_SIZE 0 ocelot s32min-(-2),1-s32max
BUF_SIZE 0 ocelot s32min-(-2),1-s32max
BUF_SIZE 2 mac 6
DATA_SOURCE 0 ocelot $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 ocelot unit_byte
UNITS 3 vid unit_array_size
HALF_LOCKED2 global &dsa2_mutex
HALF_LOCKED2 global &rtnl_mutex

drivers/net/ethernet/mscc/ocelot.c ocelot_port_mdb_add() -> ocelot_mact_learn()

Type Parameter Key Value
PARAM_VALUE 0 ocelot 4096-ptr_max
PARAM_VALUE 0 ocelot->mact_lock.dep_map->name 0-255
PARAM_VALUE 0 ocelot->mact_lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 ocelot->mact_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 ocelot->mact_lock.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 ocelot->mact_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 ocelot->map 4096-ptr_max
PARAM_VALUE 2 mac 4438226320786415616
PARAM_VALUE 4 type 0-3
BUF_SIZE 0 ocelot s32min-(-1),1-s32max
BUF_SIZE 0 ocelot s32min-(-1),1-s32max
BUF_SIZE 2 mac 6
DATA_SOURCE 0 ocelot $0
UNITS 0 ocelot unit_byte
UNITS 3 vid unit_array_size

drivers/net/ethernet/mscc/ocelot.c ocelot_port_mdb_del() -> ocelot_mact_learn()

Type Parameter Key Value
PARAM_VALUE 0 ocelot 4096-ptr_max
PARAM_VALUE 0 ocelot->mact_lock.dep_map->name 0-255
PARAM_VALUE 0 ocelot->mact_lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 ocelot->mact_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 ocelot->mact_lock.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 ocelot->mact_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 ocelot->map 4096-ptr_max
PARAM_VALUE 2 mac 5748861654294994944
PARAM_VALUE 4 type 0-3
BUF_SIZE 0 ocelot s32min-(-1),1-s32max
BUF_SIZE 0 ocelot s32min-(-1),1-s32max
BUF_SIZE 2 mac 6
CAPPED_DATA 3 vid 1
DATA_SOURCE 0 ocelot $0
UNITS 0 ocelot unit_byte
UNITS 3 vid unit_array_size

drivers/net/ethernet/mscc/ocelot_mrp.c ocelot_mrp_save_mac() -> ocelot_mact_learn()

Type Parameter Key Value
PARAM_VALUE 0 ocelot 4096-ptr_max
PARAM_VALUE 0 ocelot->ports 4096-ptr_max
PARAM_VALUE 1 port 57
PARAM_VALUE 3 vid 0
PARAM_VALUE 4 type 1
BUF_SIZE 0 ocelot s32min-(-1),1-s32max
BUF_SIZE 0 ocelot s32min-(-1),1-s32max
BUF_SIZE 2 mac 6
DATA_SOURCE 0 ocelot $0
NOCHECK_CALL
UNITS 0 ocelot unit_byte

drivers/net/ethernet/mscc/ocelot_mrp.c ocelot_mrp_save_mac() -> ocelot_mact_learn()

Type Parameter Key Value
PARAM_VALUE 0 ocelot 4096-ptr_max
PARAM_VALUE 0 ocelot->mact_lock.dep_map->name 0-255
PARAM_VALUE 0 ocelot->mact_lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 ocelot->mact_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 ocelot->mact_lock.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 ocelot->mact_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 ocelot->map 4096-ptr_max
PARAM_VALUE 0 ocelot->ports 4096-ptr_max
PARAM_VALUE 1 port 57
PARAM_VALUE 3 vid 0
PARAM_VALUE 4 type 1
BUF_SIZE 0 ocelot s32min-(-1),1-s32max
BUF_SIZE 0 ocelot s32min-(-1),1-s32max
BUF_SIZE 2 mac 6
DATA_SOURCE 0 ocelot $0
NOCHECK_CALL
UNITS 0 ocelot unit_byte