Re: [PATCH] fs: direct-io: use DIV_ROUND_UP helper macro for calculations

From: Matthew Wilcox
Date: Sun Nov 07 2021 - 22:54:30 EST


On Sun, Nov 07, 2021 at 07:17:07PM -0800, Joe Perches wrote:
> If you are interested, there are definitely a few more opportunities
> to use this DIV_ROUND_UP macro in the kernel:
>
> $ git grep -P -n '\(\s*([\w\.\>\[\]\-]+)\s*\+\s*([\w\.\>\[\]\-]+)\s*-\s*1\s*\)\s*/\s*(?:\1|\2)\b'
> arch/alpha/boot/tools/objstrip.c:260: mem_size = ((mem_size + pad - 1) / pad) * pad;

Might want to exclude 'tools' ...

> tools/bpf/bpftool/gen.c:184: align_off = (off + align - 1) / align * align;
> tools/io_uring/io_uring-bench.c:140: return (DEPTH + s->nr_files - 1) / s->nr_files;
> tools/lib/bpf/linker.c:1115: dst_align_sz = (dst->sec_sz + dst_align - 1) / dst_align * dst_align;
> tools/lib/subcmd/help.c:119: rows = (cmds->cnt + cols - 1) / cols;
> tools/testing/selftests/bpf/prog_tests/core_reloc.c:804: return (sz + page_size - 1) / page_size * page_size;
> tools/testing/selftests/bpf/prog_tests/mmap.c:13: return (sz + page_size - 1) / page_size * page_size;
> tools/testing/selftests/net/forwarding/sch_red.sh:202: local pkts=$(((diff + PKTSZ - 1) / PKTSZ))
> tools/vm/page-types.c:943: size, (size + page_size - 1) / page_size);

... because most of these files won't have access to that macro.
Definitely compile-test before sending a patch.