On Thu, 2022-11-03 at 12:18 +0800, liaochang (A) wrote: > > 在 2022/11/3 10:37, Bagas Sanjaya 写道: > > This isn't typofix as suggested from the patch subject, right? > > Well, since kvcalloc uses the product of 1st and 2nd argument to do allocation, > hence current code supposes to work well, but the usage is obviously no sense, > that is why i name it a 'typo' and make it correct ;) > Seems there are several of these typo/defects. $ git grep -P 'calloc\s*\(\s*sizeof' arch/x86/kvm/cpuid.c: array.entries = kvcalloc(sizeof(struct kvm_cpuid_entry2), cpuid->nent, GFP_KERNEL); drivers/gpu/drm/nouveau/nouveau_svm.c: buffer->fault = kvcalloc(sizeof(*buffer->fault), buffer->entries, GFP_KERNEL); drivers/scsi/bfa/bfad_bsg.c: buf_base = kcalloc(sizeof(struct bfad_buf_info) + drivers/soc/fsl/dpio/dpio-service.c: ed = kcalloc(sizeof(struct qbman_eq_desc), 32, GFP_KERNEL); fs/btrfs/send.c: sctx->clone_roots = kvcalloc(sizeof(*sctx->clone_roots), kernel/bpf/bpf_local_storage.c: smap->buckets = kvcalloc(sizeof(*smap->buckets), nbuckets, kernel/watch_queue.c: pages = kcalloc(sizeof(struct page *), nr_pages, GFP_KERNEL); tools/lib/bpf/libbpf.c: gen = calloc(sizeof(*gen), 1); tools/objtool/check.c: struct cfi_state *cfi = calloc(sizeof(struct cfi_state), 1); tools/objtool/check.c: file->pv_ops = calloc(sizeof(struct pv_state), nr); tools/perf/builtin-record.c: rec->switch_output.filenames = calloc(sizeof(char *), tools/perf/util/bpf-loader.c: priv = calloc(sizeof(*priv), 1); tools/perf/util/hist.c: he->res_samples = calloc(sizeof(struct res_sample), tools/perf/util/metricgroup.c: metric_events = calloc(sizeof(void *), ids_size + 1); tools/perf/util/stat-shadow.c: metric_events = calloc(sizeof(struct evsel *), tools/perf/util/synthetic-events.c: synthesize_threads = calloc(sizeof(pthread_t), thread_nr); tools/perf/util/synthetic-events.c: args = calloc(sizeof(*args), thread_nr); tools/testing/selftests/arm64/fp/fp-stress.c: children = calloc(sizeof(*children), tests); tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c: link = calloc(sizeof(struct bpf_link *), prog_cnt); tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c: prog = calloc(sizeof(struct bpf_program *), prog_cnt); tools/testing/selftests/bpf/test_progs.c: dispatcher_threads = calloc(sizeof(pthread_t), env.workers); tools/testing/selftests/bpf/test_progs.c: data = calloc(sizeof(struct dispatch_data), env.workers); tools/testing/selftests/bpf/test_progs.c: env.worker_current_test = calloc(sizeof(int), env.workers); tools/testing/selftests/bpf/test_progs.c: env.worker_pids = calloc(sizeof(__pid_t), env.workers); tools/testing/selftests/bpf/test_progs.c: env.worker_socks = calloc(sizeof(int), env.workers); tools/testing/selftests/memfd/fuse_test.c: zero = calloc(sizeof(*zero), mfd_def_size);