Defined in 1 files as a prototype:

Defined in 2 files as a function:

Referenced in 4 files:

Smatch caller information:

drivers/mtd/nand/ecc-sw-hamming.c nand_ecc_sw_hamming_correct() -> ecc_sw_hamming_correct()

Type Parameter Key Value
BUF_SIZE 0 buf (-1)-s32max
BUF_SIZE 0 buf (-1)-s32max
DATA_SOURCE 0 buf $1
DATA_SOURCE 1 read_ecc $2
DATA_SOURCE 2 calc_ecc $3
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 *buf 0-255
HOST_DATA 1 *read_ecc 0-255
USER_DATA 0 *buf 0-255
USER_DATA 1 *read_ecc 0-255
UNITS 0 buf unit_byte
UNITS 3 step_size unit_byte
USER_PTR 0 buf
USER_PTR 1 read_ecc

drivers/mtd/nand/raw/fsmc_nand.c fsmc_correct_ecc1() -> ecc_sw_hamming_correct()

Type Parameter Key Value
BUF_SIZE 0 buf (-1)-s32max
BUF_SIZE 0 buf (-1)-s32max
BUF_SIZE 1 read_ecc (-1),1-s32max
BUF_SIZE 1 read_ecc (-1),1-s32max
BUF_SIZE 2 calc_ecc (-1),1-s32max
BUF_SIZE 2 calc_ecc (-1),1-s32max
DATA_SOURCE 0 buf $1
DATA_SOURCE 1 read_ecc $2
DATA_SOURCE 2 calc_ecc $3
BIT_INFO 4 sm_order 0x0,0x0
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 *buf 0-255
HOST_DATA 1 *read_ecc 0-255
USER_DATA 1 *read_ecc 0-255
UNITS 3 step_size unit_byte
USER_PTR 1 read_ecc
HALF_LOCKED2 &chip->controller->lock
HALF_LOCKED2 &chip->lock

drivers/mtd/tests/mtd_nandecctest.c double_bit_error_detect() -> ecc_sw_hamming_correct()

Type Parameter Key Value
PARAM_VALUE 0 buf 4096-ptr_max
PARAM_VALUE 1 read_ecc 4096-ptr_max
PARAM_VALUE 2 calc_ecc 7858462868548767744
PARAM_VALUE 3 step_size 256,512
PARAM_VALUE 4 sm_order 1
BUF_SIZE 0 buf 256,512
BUF_SIZE 1 read_ecc 3
BUF_SIZE 2 calc_ecc 3
DATA_SOURCE 0 buf $0
DATA_SOURCE 1 read_ecc $1
DATA_SOURCE 3 step_size $3

drivers/mtd/tests/mtd_nandecctest.c no_bit_error_verify() -> ecc_sw_hamming_correct()

Type Parameter Key Value
PARAM_VALUE 0 buf 4096-ptr_max
PARAM_VALUE 1 read_ecc 4096-ptr_max
PARAM_VALUE 2 calc_ecc 2190740666668490752
PARAM_VALUE 3 step_size 256,512
PARAM_VALUE 4 sm_order 1
BUF_SIZE 0 buf 256,512
BUF_SIZE 1 read_ecc 3
BUF_SIZE 2 calc_ecc 3
DATA_SOURCE 0 buf $0
DATA_SOURCE 1 read_ecc $1
DATA_SOURCE 3 step_size $3

drivers/mtd/tests/mtd_nandecctest.c single_bit_error_correct() -> ecc_sw_hamming_correct()

Type Parameter Key Value
PARAM_VALUE 0 buf 4096-ptr_max
PARAM_VALUE 1 read_ecc 4096-ptr_max
PARAM_VALUE 2 calc_ecc 9107352611636436992
PARAM_VALUE 3 step_size 256,512
PARAM_VALUE 4 sm_order 1
BUF_SIZE 0 buf 256,512
BUF_SIZE 1 read_ecc 3
BUF_SIZE 2 calc_ecc 3
DATA_SOURCE 0 buf $0
DATA_SOURCE 1 read_ecc $1
DATA_SOURCE 3 step_size $3

drivers/mtd/sm_ftl.c sm_correct_sector() -> ecc_sw_hamming_correct()

Type Parameter Key Value
PARAM_VALUE 0 buf 1-u64max
PARAM_VALUE 1 read_ecc 7835807046883069952
PARAM_VALUE 3 step_size 256
PARAM_VALUE 4 sm_order 1
BUF_SIZE 1 read_ecc 3
BUF_SIZE 2 calc_ecc 3
DATA_SOURCE 0 buf $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->lock
HALF_LOCKED2 &ftl->mutex
HALF_LOCKED2 global &mtd_table_mutex

drivers/mtd/sm_ftl.c sm_correct_sector() -> ecc_sw_hamming_correct()

Type Parameter Key Value
PARAM_VALUE 0 buf 4096-ptr_max
PARAM_VALUE 1 read_ecc 7835807046883069952
PARAM_VALUE 3 step_size 256
PARAM_VALUE 4 sm_order 1
BUF_SIZE 1 read_ecc 3
BUF_SIZE 2 calc_ecc 3
DATA_SOURCE 0 buf $0 [m]
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->lock
HALF_LOCKED2 &ftl->mutex
HALF_LOCKED2 global &mtd_table_mutex