Documented in 3 files:

Defined in 3 files as a function:

Referenced in 43 files:

Smatch caller information:

drivers/spi/spi-amlogic-spisg.c aml_spisg_transfer_one_message() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
PARAM_COMPARE 0 list != $1
PARAM_COMPARE 1 head != $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &ctlr->io_mutex
HALF_LOCKED2 &ctlr->dev.driver_data->op_lock
TYPE_LOCK (struct spi_controller)->io_mutex

drivers/net/ethernet/mellanox/mlx5/core/steering/hws/matcher.c hws_matcher_disconnect() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &ctx->ctrl_lock
TYPE_LOCK (struct mlx5hws_context)->ctrl_lock

fs/netfs/misc.c netfs_subreq_clear_in_progress() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

fs/gfs2/glock.c gfs2_glock_dq() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &gl->gl_lockref.lock
HALF_LOCKED2 &fp->f_fl_mutex
HALF_LOCKED2 &inode->i_rwsem
TYPE_LOCK (struct lockref)->lock

drivers/net/ethernet/mellanox/mlx5/core/fs_core.c connect_prev_fts() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 0,4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &root->chain_lock
TYPE_LOCK (struct mlx5_flow_root_namespace)->chain_lock

drivers/net/ethernet/mellanox/mlx5/core/fs_core.c find_next_ft() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 0,4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &root->chain_lock
HALF_LOCKED2 &*ipsec_roce->devcom->comp->sem
HALF_LOCKED2 &chains->lock
HALF_LOCKED2 &ct_priv->control_lock
HALF_LOCKED2 &esw->fdb_table.offloads.indir->lock
HALF_LOCKED2 &esw->fdb_table.offloads.vports.lock
HALF_LOCKED2 &esw->offloads.reps_lock
HALF_LOCKED2 &esw->offloads.termtbl_mutex
HALF_LOCKED2 &fs_prot->prot_mutex
HALF_LOCKED2 &ldev->lock
HALF_LOCKED2 &priv->macsec->lock
HALF_LOCKED2 &rx->ft.mutex
HALF_LOCKED2 &sd->devcom->comp->sem
HALF_LOCKED2 &tx->ft.mutex
HALF_LOCKED2 &tx_fs->mutex
TYPE_LOCK (struct mlx5_flow_root_namespace)->chain_lock

mm/page_reporting.c page_reporting_cycle() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 1 head 4096-ptr_max
CAPPED_DATA 1 head 1
PARAM_COMPARE 0 list != $1
PARAM_COMPARE 1 head != $0
PREEMPT_ADD <- disables preempt
LOCK2 &zone->lock
LOCK2 irq
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct zone)->lock

mm/page_reporting.c page_reporting_cycle() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 1 head 4096-ptr_max
CAPPED_DATA 1 head 1
PARAM_COMPARE 0 list != $1
PARAM_COMPARE 1 head != $0
PREEMPT_ADD <- disables preempt
LOCK2 &zone->lock
LOCK2 irq
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct zone)->lock

net/sunrpc/xprt.c xprt_request_dequeue_transmit_locked() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &xprt->queue_lock
TYPE_LOCK (struct rpc_xprt)->queue_lock

drivers/pmdomain/core.c genpd_summary_one() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
PARAM_COMPARE 0 list != $1
PARAM_COMPARE 1 head != $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &genpd->mlock
LOCK2 &s->lock
LOCK2 global &gpd_list_lock
TYPE_LOCK (struct generic_pm_domain)->mlock
TYPE_LOCK (struct seq_file)->lock

drivers/accel/qaic/qaic_control.c abort_dma_cont() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
PARAM_COMPARE 0 list != $1
PARAM_COMPARE 1 head != $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &qdev->dev_lock
HALF_LOCKED2 &usr->qddev_lock

drivers/dma/tegra20-apb-dma.c tegra_dma_sg_bytes_xferred() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
PREEMPT_ADD
TASK_NOT_RUNNING
LOCK2 &tdc->lock
HALF_LOCKED2 &dcmi->irqlock
HALF_LOCKED2 &host->io_mutex
HALF_LOCKED2 &host->lock
HALF_LOCKED2 &info->lock
HALF_LOCKED2 &pcdev->lock
HALF_LOCKED2 &port->lock
HALF_LOCKED2 &up->port.lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq
TYPE_LOCK (struct tegra_dma_channel)->lock

drivers/crypto/inside-secure/eip93/eip93-hash.c __eip93_hash_update() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 1 head 4096-ptr_max
PARAM_COMPARE 0 list != $1
PARAM_COMPARE 1 head != $0
RX_PATH
TASK_NOT_RUNNING

drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_bridge_atomic_get_output_bus_fmts() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

drivers/gpu/drm/bridge/display-connector.c drm_bridge_get_prev_bridge() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

net/sctp/diag.c sctp_sock_filter() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &nlk->nl_cb_mutex
TYPE_LOCK (struct netlink_sock)->nl_cb_mutex

net/rxrpc/recvmsg.c rxrpc_recvmsg() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &rx->recvmsg_lock
LOCK2 &rx->sk
LOCK2 irq
HALF_LOCKED2 &vq->mutex
HALF_LOCKED2 sk
TYPE_LOCK (struct rxrpc_sock)->recvmsg_lock
TYPE_LOCK (struct rxrpc_sock)->sk

drivers/gpu/drm/drm_bridge.c drm_bridge_get_prev_bridge() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 240,4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

mm/compaction.c move_freelist_head() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 1 head 4096-ptr_max
BUF_SIZE 1 head 80
BUF_SIZE 1 head 80
CAPPED_DATA 1 head 1
DATA_SOURCE 1 head $0
PREEMPT_ADD
LOCK2 &cc->zone->lock
LOCK2 flags
TYPE_LOCK (struct zone)->lock

drivers/scsi/qla2xxx/qla_init.c qla_get_tmf() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 952487800111693824
PARAM_VALUE 1 head 4096-ptr_max
PREEMPT_ADD <- disables preempt
LOCK2 &ha->tgt.sess_lock
LOCK2 flags
TYPE_LOCK (struct qlt_hw_data)->sess_lock

drivers/net/ethernet/microchip/vcap/vcap_api.c vcap_fill_rule_gap() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &admin->vctrl->lock

drivers/iommu/amd/init.c get_global_efr() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 1 head 4096-ptr_max
PARAM_COMPARE 0 list != $1
PARAM_COMPARE 1 head != $0
HALF_LOCKED2 flags
HALF_LOCKED2 irq

drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c ti_csi2rx_dma_callback() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dma->lock
LOCK2 flags
HALF_LOCKED2 &bdma_chan->lock
HALF_LOCKED2 &ioat_chan->cleanup_lock
HALF_LOCKED2 &mv_chan->lock
HALF_LOCKED2 &pd_chan->lock
HALF_LOCKED2 &plxdev->ring_lock
HALF_LOCKED2 &swdma_chan->complete_lock
HALF_LOCKED2 &td_chan->lock
HALF_LOCKED2 bh
TYPE_LOCK (struct ti_csi2rx_dma)->lock

drivers/gpu/drm/i915/gt/intel_engine_cs.c mock_submit_request() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &engine->hw_lock
LOCK2 flags
LOCK2 rcu_read
HALF_LOCKED2 &engine->sched_engine->lock
HALF_LOCKED2 irq
TYPE_LOCK (struct mock_engine)->hw_lock

drivers/usb/gadget/udc/renesas_usbf.c usbf_ep_dequeue() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &ep->udc->lock
LOCK2 flags
HALF_LOCKED2 &ctx->ctx_lock
HALF_LOCKED2 &epdata->dev->lock
HALF_LOCKED2 &epdata->lock
HALF_LOCKED2 &epfile->dmabufs_mutex
HALF_LOCKED2 &epfile->ffs->eps_lock
HALF_LOCKED2 &ffs->eps_lock
HALF_LOCKED2 &port->port_lock
HALF_LOCKED2 irq
TYPE_LOCK (struct usbf_udc)->lock

drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_netdevice_ipip_ul_event() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
LOCK2 &mlxsw_sp->router->lock
TYPE_LOCK (struct mlxsw_sp_router)->lock

fs/netfs/read_collect.c netfs_read_subreq_progress() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max

drivers/net/ethernet/mellanox/mlx5/core/en_tc.c extra_split_attr_dests_needed() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

fs/netfs/buffered_read.c netfs_queue_read() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &rreq->lock
TYPE_LOCK (struct netfs_io_request)->lock

fs/btrfs/block-group.c clean_pinned_extents() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &fs_info->reclaim_bgs_lock
LOCK2 &fs_info->trans_lock
TYPE_LOCK (struct btrfs_fs_info)->reclaim_bgs_lock
TYPE_LOCK (struct btrfs_fs_info)->trans_lock

net/netfilter/nf_tables_api.c nf_tables_rule_notify() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 1 head 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &nft_net->commit_mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
HALF_LOCKED2 rcu_read

drivers/net/wwan/t7xx/t7xx_hif_cldma.c t7xx_cldma_txq_empty_hndl() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &queue->ring_lock
LOCK2 flags
TYPE_LOCK (struct cldma_queue)->ring_lock

drivers/firewire/net.c fwnet_frag_new() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 1 head 4096-ptr_max
PARAM_COMPARE 0 list != $1
PARAM_COMPARE 1 head != $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dev->lock
LOCK2 flags
TYPE_LOCK (struct fwnet_device)->lock

fs/netfs/write_issue.c netfs_prepare_write() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &wreq->lock
TYPE_LOCK (struct netfs_io_request)->lock

lib/tests/list-private-test.c list_private_compile_test() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 9097307544677732352

lib/tests/list-test.c list_test_list_is_first() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 5629793052532563968
PARAM_VALUE 0 list->prev 4354134336721268736
PARAM_VALUE 1 head 4354134336721268736

lib/tests/list-test.c list_test_list_is_first() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 7354144681497616384
PARAM_VALUE 0 list->prev 4354134336721268736,5629793052532563968
PARAM_VALUE 1 head 4354134336721268736

drivers/gpu/drm/i915/gt/intel_breadcrumbs.c check_signal_order() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max

fs/nfs/nfs4state.c nfs_release_seqid() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &sequence->lock
TYPE_LOCK (struct nfs_seqid_counter)->lock

kernel/liveupdate/kho_block.c kho_block_set_it_prev() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 1-u64max
PARAM_VALUE 1 head 5734150503843865016
LOCK2 &sh->rwsem
LOCK2 global &luo_session_serialize_rwsem
LOCK2 global &system_transition_mutex
TYPE_LOCK (struct luo_session_header)->rwsem

drivers/gpu/drm/amd/amdgpu/amdgpu_device.c amdgpu_device_recovery_prepare() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 2602521966180487168,6958129947341881344
DATA_SOURCE 1 head $1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &hive->hive_lock

sound/firewire/amdtp-stream.c compute_pcm_extra_delay() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

kernel/bpf/helpers.c bpf_list_is_first() -> list_is_first()

Type Parameter Key Value
DATA_SOURCE 1 head $0

drivers/gpu/drm/amd/amdgpu/amdgpu_job.c amdgpu_job_core_dump() -> list_is_first()

Type Parameter Key Value
PARAM_VALUE 0 list 4096-ptr_max
PARAM_VALUE 1 head 5436898201567989760
LOCK2 &hive->hive_lock
LOCK2 global &drm_unplug_srcu
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct amdgpu_hive_info)->hive_lock