Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

net/ethtool/ioctl.c __ethtool_set_flags() -> __netdev_update_features()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
CAPPED_DATA 0 dev->wanted_features 1
DATA_SOURCE 0 dev $0
NOCHECK_CALL

net/ethtool/ioctl.c ethtool_set_features() -> __netdev_update_features()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->dev.parent 0,4096-ptr_max
PARAM_VALUE 0 dev->dev.parent->bus 0,4096-ptr_max
PARAM_VALUE 0 dev->dev.parent->class 0,4096-ptr_max
PARAM_VALUE 0 dev->dev.parent->power.request 0-4
PARAM_VALUE 0 dev->dev.parent->power.runtime_error s32min-(-17),(-15)-(-14),(-12),(-10)-s32max
PARAM_VALUE 0 dev->dev.parent->power.wakeirq 0,4096-ptr_max
PARAM_VALUE 0 dev->dev.parent->power.wakeirq->status 0-4294967295
PARAM_VALUE 0 dev->dev.parent->type 0,4096-ptr_max
PARAM_VALUE 0 dev->ethtool_ops 4096-ptr_max
PARAM_VALUE 0 dev->ethtool_ops->begin 0,1835931156019712000,3096438129622650880,3900617307435175936,5716752743725981696,7946597811871383552,8525681326485266432
PARAM_VALUE 0 dev->lock.dep_map->name 0-255
PARAM_VALUE 0 dev->lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 dev->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 dev->lock.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 dev->lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 dev->moving_ns 0
PARAM_VALUE 0 dev->netdev_ops 4096-ptr_max
PARAM_VALUE 0 dev->refcnt_tracker.list.next->next 4096-ptr_max
PARAM_VALUE 0 dev->refcnt_tracker.list.next->prev 4096-ptr_max
PARAM_VALUE 0 dev->reg_state 0-1
CAPPED_DATA 0 dev->nd_net.net 1
DATA_SOURCE 0 dev $0
FUZZY_MAX 0 dev->reg_state 1
HARD_MAX 0 dev->reg_state 1
NOCHECK_CALL
HALF_LOCKED2 global &rtnl_mutex

net/ethtool/ioctl.c ethtool_set_one_feature() -> __netdev_update_features()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->dev.parent 0,4096-ptr_max
PARAM_VALUE 0 dev->dev.parent->bus 0,4096-ptr_max
PARAM_VALUE 0 dev->dev.parent->class 0,4096-ptr_max
PARAM_VALUE 0 dev->dev.parent->power.request 0-4
PARAM_VALUE 0 dev->dev.parent->power.runtime_error s32min-(-17),(-15)-(-14),(-12),(-10)-s32max
PARAM_VALUE 0 dev->dev.parent->power.wakeirq 0,4096-ptr_max
PARAM_VALUE 0 dev->dev.parent->power.wakeirq->status 0-4294967295
PARAM_VALUE 0 dev->dev.parent->type 0,4096-ptr_max
PARAM_VALUE 0 dev->ethtool_ops 4096-ptr_max
PARAM_VALUE 0 dev->ethtool_ops->begin 0,1835931156019712000,3096438129622650880,3900617307435175936,5716752743725981696,7946597811871383552,8525681326485266432
PARAM_VALUE 0 dev->lock.dep_map->name 0-255
PARAM_VALUE 0 dev->lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 dev->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 dev->lock.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 dev->lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 dev->moving_ns 0
PARAM_VALUE 0 dev->netdev_ops 4096-ptr_max
PARAM_VALUE 0 dev->refcnt_tracker.list.next->next 4096-ptr_max
PARAM_VALUE 0 dev->refcnt_tracker.list.next->prev 4096-ptr_max
PARAM_VALUE 0 dev->reg_state 0-1
CAPPED_DATA 0 dev->nd_net.net 1
DATA_SOURCE 0 dev $0
FUZZY_MAX 0 dev->reg_state 1
HARD_MAX 0 dev->reg_state 1
NOCHECK_CALL
HALF_LOCKED2 global &rtnl_mutex

net/core/dev.c netdev_change_features() -> __netdev_update_features()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->dev.dma_io_tlb_mem->phys_limit 0-s64max
PARAM_VALUE 0 dev->dev.kobj.parent->sd->attr.open->nr_mmapped 0-4294967295
PARAM_VALUE 0 dev->dev.kobj.sd->attr.open->nr_mmapped 0-4294967295
PARAM_VALUE 0 dev->dev.power.wakeirq->status 0-4294967295
PARAM_VALUE 0 dev->header_ops->cache 0,4002040155852992512,6291592314023907328,9038097620534984704
PARAM_VALUE 0 dev->header_ops->cache_update 0,4136776623896797184,7422325842290319360
PARAM_VALUE 0 dev->header_ops->create 0,4096-ptr_max
PARAM_VALUE 0 dev->header_ops->parse 0,4096-ptr_max
PARAM_VALUE 0 dev->header_ops->parse_protocol 0,4927389631704563712,5013334982761803776,5267698508377800704
PARAM_VALUE 0 dev->header_ops->validate 0
PARAM_VALUE 0 dev->netdev_ops->ndo_init 0,4096-ptr_max
PARAM_VALUE 0 dev->netdev_ops->ndo_uninit 0,4096-ptr_max
PARAM_VALUE 0 dev->queues_kset->kobj.sd->attr.open->nr_mmapped 0-4294967295
PARAM_VALUE 0 dev->rtnl_link_ops->alloc 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->changelink 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->dellink 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->fill_info 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->fill_linkxstats 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->fill_slave_info 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->fill_xstats 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->get_link_net 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->get_linkxstats_size 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->get_num_rx_queues 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->get_num_tx_queues 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->get_size 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->get_slave_size 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->get_xstats_size 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->kind 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->maxtype 0-6,8-10,15-16,18,20,22,24,33-34,50
PARAM_VALUE 0 dev->rtnl_link_ops->newlink 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->peer_type 0-1
PARAM_VALUE 0 dev->rtnl_link_ops->policy 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->setup 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->slave_changelink 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->slave_maxtype 0,12,45
PARAM_VALUE 0 dev->rtnl_link_ops->slave_policy 0,4096-ptr_max
PARAM_VALUE 0 dev->rtnl_link_ops->validate 0,4096-ptr_max
PARAM_VALUE 0 *dev->name 0-255
BUF_SIZE 0 dev->name_node (-1),64
BUF_SIZE 0 dev->name_node->name (-1),16
CAPPED_DATA 0 dev 1
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 dev->flags 0-526337[c]
USER_DATA 0 dev->ifindex 0-s32max[c]
USER_DATA 0 dev->mtu 0-s32max[c]
NO_OVERFLOW_SIMPLE 0 dev->real_num_rx_queues
NO_OVERFLOW_SIMPLE 0 dev->real_num_tx_queues
UNITS 0 dev unit_byte
HALF_LOCKED2 0 &dev->lock

net/core/dev.c netdev_sync_lower_features() -> __netdev_update_features()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->features 32768-u64max
PARAM_VALUE 0 dev->netdev_ops 4096-ptr_max
PARAM_VALUE 0 dev->netdev_ops->ndo_set_features 0,4096-ptr_max
DATA_SOURCE 0 dev $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &upper->lock
HALF_LOCKED2 global &rtnl_mutex

net/core/dev.c netdev_update_features() -> __netdev_update_features()

Type Parameter Key Value
BUF_SIZE 0 dev->devlink_port (-1),472
BUF_SIZE 0 dev->ethtool_ops (-1),656
BUF_SIZE 0 dev->header_ops (-1)-0,48
BUF_SIZE 0 dev->name_node (-1),64
BUF_SIZE 0 dev->name_node->name (-1),16
BUF_SIZE 0 dev->nd_net.net (-1),10304,10432
BUF_SIZE 0 dev->qdisc_tx_busylock (-1),16
BUF_SIZE 0 dev->rtnl_link_ops (-1),288
DATA_SOURCE 0 dev $0
STR_LEN 0 dev (-1),9-10
STR_LEN 0 dev (-1),9-10
STR_LEN 0 dev->name (-1),15
NOSPEC 0 dev->flags
NOSPEC 0 dev->ifindex
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dev->flags 0-527873[c]
USER_DATA 0 dev->group s32min-s32max
USER_DATA 0 dev->ifindex s32min-s32max
USER_DATA 0 dev->mtu 0-u32max[c]
USER_DATA 0 dev->num_tc 2-16[c]
USER_DATA 0 dev->real_num_rx_queues 1-s32max[c]
USER_DATA 0 *dev->dev_addr 0-255
NO_OVERFLOW_SIMPLE 0 dev->devlink_port->index
NO_OVERFLOW_SIMPLE 0 dev->group
NO_OVERFLOW_SIMPLE 0 dev->name
NO_OVERFLOW_SIMPLE 0 dev->num_napi_configs
NO_OVERFLOW_SIMPLE 0 dev->num_rx_queues
NO_OVERFLOW_SIMPLE 0 dev->num_tx_queues
NO_OVERFLOW_SIMPLE 0 dev->proto_down
NO_OVERFLOW_SIMPLE 0 dev->real_num_tx_queues
NO_OVERFLOW_SIMPLE 0 dev->stats.tx_bytes
NO_OVERFLOW_SIMPLE 0 dev->tx_queue_len
UNITS 0 dev unit_byte
USER_PTR 0 dev->name
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &port->pnodes_lock
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &xenwatch_mutex
HALF_LOCKED2 0 &dev->ethtool->rss_lock
HALF_LOCKED2 0 &dev->lock

net/ethtool/features.c ethnl_set_features() -> __netdev_update_features()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->dev.parent 0,4096-ptr_max
PARAM_VALUE 0 dev->dev.parent->bus 0,4096-ptr_max
PARAM_VALUE 0 dev->dev.parent->type 0,4096-ptr_max
PARAM_VALUE 0 dev->lock.dep_map->name 0-255
PARAM_VALUE 0 dev->lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 dev->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 dev->lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 dev->netdev_ops 4096-ptr_max
PARAM_VALUE 0 dev->priv->clk->core->dev->power.deferred_resume 0-1
PARAM_VALUE 0 dev->priv->clk->core->dev->power.idle_notification 0-1
PARAM_VALUE 0 dev->priv->clk->core->dev->power.request 0-4
PARAM_VALUE 0 dev->priv->clk->core->dev->power.request_pending 0-1
PARAM_VALUE 0 dev->priv->clk->core->dev->power.runtime_error s32min-(-17),(-15)-(-14),(-12),(-10)-s32max
PARAM_VALUE 0 dev->priv->clk->core->dev->power.runtime_status s32min-s32max
PARAM_VALUE 0 dev->priv->clk->core->dev->power.timer_autosuspends 0-1
PARAM_VALUE 0 dev->priv->clk->core->dev->power.usage_count.counter s32min-s32max
PARAM_VALUE 0 dev->priv->clk->core->dev->power.wakeirq->status 0-4294967295
PARAM_VALUE 0 dev->priv->clk->core->parent->dev->power.deferred_resume 0-1
PARAM_VALUE 0 dev->priv->clk->core->parent->dev->power.idle_notification 0-1
PARAM_VALUE 0 dev->priv->clk->core->parent->dev->power.request 0-4294967295
PARAM_VALUE 0 dev->priv->clk->core->parent->dev->power.request_pending 0-1
PARAM_VALUE 0 dev->priv->clk->core->parent->dev->power.runtime_error s32min-s32max
PARAM_VALUE 0 dev->priv->clk->core->parent->dev->power.runtime_status s32min-s32max
PARAM_VALUE 0 dev->priv->clk->core->parent->dev->power.timer_autosuspends 0-1
PARAM_VALUE 0 dev->priv->clk->core->parent->dev->power.usage_count.counter s32min-s32max
PARAM_VALUE 0 dev->priv->clk->core->parent->dev->power.wakeirq->status 0-4294967295
PARAM_VALUE 0 dev->priv->clk->core->parent->enable_count 0-4294967295
PARAM_VALUE 0 dev->priv->clk->core->parent->prepare_count 0-4294967295
PARAM_VALUE 0 dev->priv->clk->core->parent->protect_count 0-4294967295
PARAM_VALUE 0 dev->priv->clk->core->prepare_count 0-4294967295
PARAM_VALUE 0 dev->priv->clk->core->protect_count 0-4294967295
PARAM_VALUE 0 dev->priv->cpsw->dev->power.deferred_resume 0-1
PARAM_VALUE 0 dev->priv->cpsw->dev->power.idle_notification 0-1
PARAM_VALUE 0 dev->priv->cpsw->dev->power.request 0-4
PARAM_VALUE 0 dev->priv->cpsw->dev->power.request_pending 0-1
PARAM_VALUE 0 dev->priv->cpsw->dev->power.runtime_error s32min-(-17),(-15)-(-14),(-12),(-10)-s32max
PARAM_VALUE 0 dev->priv->cpsw->dev->power.runtime_status s32min-s32max
PARAM_VALUE 0 dev->priv->cpsw->dev->power.timer_autosuspends 0-1
PARAM_VALUE 0 dev->priv->cpsw->dev->power.usage_count.counter s32min-s32max
PARAM_VALUE 0 dev->priv->cpsw->dev->power.wakeirq->status 0-4294967295
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &rtnl_mutex
HALF_LOCKED2 &dev->lock
HALF_LOCKED2 &devlink->lock
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &dpll_lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &net_dm_mutex
HALF_LOCKED2 global &rx_queue_mutex
HALF_LOCKED2 rcu_read