Defined in 1 files as a prototype:

Defined in 3 files as a function:

Referenced in 3 files:

Smatch caller information:

fs/btrfs/compression.c compression_decompress() -> zstd_decompress()

Type Parameter Key Value
PARAM_VALUE 0 ws 4096-ptr_max
PARAM_VALUE 1 data_in 16,37,4096-ptr_max
PARAM_VALUE 2 dest_folio 4096-ptr_max
BUF_SIZE 0 ws (-1),16
BUF_SIZE 0 ws (-1),16
BUF_SIZE 1 data_in (-1)-s32max
BUF_SIZE 1 data_in (-1)-s32max
CAPPED_DATA 3 dest_pgoff 1
CAPPED_DATA 3 dest_pgoff 1
CAPPED_DATA 5 destlen 1
CAPPED_DATA 5 destlen 1
DATA_SOURCE 0 ws $1
DATA_SOURCE 1 data_in $2
DATA_SOURCE 2 dest_folio $3
DATA_SOURCE 3 dest_pgoff $4
DATA_SOURCE 4 srclen $5
DATA_SOURCE 5 destlen $6
PARAM_COMPARE 1 data_in == $4
NOSPEC 3 dest_pgoff
NOSPEC 3 dest_pgoff
RX_PATH
TASK_NOT_RUNNING
USER_DATA 3 dest_pgoff 0-9223372036888330239[c]
UNITS 3 dest_pgoff unit_byte
UNITS 5 destlen unit_byte
BYTE_COUNT 1 ==data_in4 8050

drivers/block/zram/zcomp.c zcomp_decompress() -> (struct zcomp_ops)->decompress()

Type Parameter Key Value
PARAM_VALUE 1 data_in 4096-ptr_max
PARAM_VALUE 2 dest_folio 7632008035510145024
PARAM_VALUE 2 dest_folio->dst_len 4096
PARAM_VALUE 2 dest_folio->src_len 0-8191
CONTAINER 0 *(-8-8+16) $(-1)

crypto/acompress.c acomp_do_one_req() -> (struct crypto_acomp)->decompress()

Type Parameter Key Value
PARAM_VALUE 0 ws 4096-ptr_max
PARAM_VALUE 0 ws->base.complete 215335712940810240
PARAM_VALUE 0 ws->base.data 4096-ptr_max
PARAM_VALUE 0 ws->chain.dsg.dma_address 0
PARAM_VALUE 0 ws->chain.dsg.dma_flags 0
PARAM_VALUE 0 ws->chain.dsg.dma_length 0
PARAM_VALUE 0 ws->chain.dsg.offset 0-4095
PARAM_VALUE 0 ws->chain.flags 0,2-10
PARAM_VALUE 0 ws->chain.ssg.dma_address 0
PARAM_VALUE 0 ws->chain.ssg.dma_flags 0
PARAM_VALUE 0 ws->chain.ssg.dma_length 0
PARAM_VALUE 0 ws->chain.ssg.offset 0-4095
PARAM_VALUE 0 ws->dst 4096-ptr_max
PARAM_VALUE 0 ws->dvirt 4096-ptr_max
PARAM_VALUE 0 ws->src 4096-ptr_max
PARAM_VALUE 0 ws->svirt 4096-ptr_max
BUF_SIZE 0 ws (-1),176
BUF_SIZE 0 ws (-1),176
DATA_SOURCE 0 ws $0
NOSPEC 0 ws->slen
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 ws->dlen 0-2147483646[c]
HOST_DATA 0 ws->slen 0-u32max[c]
USER_DATA 0 ws->chain.ssg.offset 2-4095[c][u]
USER_DATA 0 ws->dlen 64-4031[c]
USER_DATA 0 ws->slen 128-4095[c]
USER_DATA 0 ws->src->length 128-4095[c]
USER_DATA 0 ws->src->offset 2-4095[c][u]
NO_OVERFLOW_SIMPLE 0 ws->chain.dsg.length
NO_OVERFLOW_SIMPLE 0 ws->dst->length
HALF_LOCKED2 &acomp_ctx->mutex

crypto/acompress.c crypto_acomp_decompress() -> (struct crypto_acomp)->decompress()

Type Parameter Key Value
PARAM_VALUE 0 ws 4096-ptr_max
BUF_SIZE 0 ws (-1),176
BUF_SIZE 0 ws (-1),176
CAPPED_DATA 0 ws 1
DATA_SOURCE 0 ws $0
NOSPEC 0 ws->slen
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 ws->dlen 0-2147483646[c]
HOST_DATA 0 ws->slen 0-u32max[c]
USER_DATA 0 ws->chain.ssg.length 128-4094[c]
USER_DATA 0 ws->chain.ssg.offset 2-4095[c][u]
USER_DATA 0 ws->dlen 64-4031[c]
USER_DATA 0 ws->slen 128-4095[c]
NO_OVERFLOW_SIMPLE 0 ws->chain.dsg.length
HALF_LOCKED2 &acomp_ctx->mutex
HALF_LOCKED2 &pcl->lock
HALF_LOCKED2 global &z_erofs_crypto_rwsem