Hi, When the seqcount_LOCKNAME_t group of data types were introduced, two classes of seqlock.h sequence counter macros were added:
- An external public API which can either take a plain seqcount_t or any of the seqcount_LOCKNAME_t variants. - An internal API which takes only a plain seqcount_t. To distinguish between the two groups, the "*_seqcount_t_*" pattern was used for the latter. This confused a number of mm/ call-site developers, and Linus also commented that this was not the standard practice for marking kernel internal APIs. [1] Distinguish the latter group of macros by prefixing a "do_". A number of call-site developers also complained that the automatic preemption disable/enable for the write side macros was not obvious, or documented. [2] Linus also suggested adding few comments explaining that behavior. [3] Fix it by completing the seqcount write side kernel-doc annotations. Finally, fix a minor naming inconsistency w.r.t. seqlock.h vs. Documentation/locking/seqlock.rst. This series does not change the output "allyesconfig" kernel binary: text data bss ... filename 247616963 289662125 81498728 ... ../build-x86-64/vmlinux.old 247616963 289662125 81498728 ... ../build-x86-64/vmlinux 145054028 78270273 18435468 ... ../build-arm/vmlinux.old 145054028 78270273 18435468 ... ../build-arm/vmlinux Note: based over -tip locking/core, instead of latest -rc, due to -tip ab440b2c604b ("seqlock: Rename __seqprop() users"). References: [1] https://lkml.kernel.org/r/CAHk-=wgb8nyoqufpn0o6a5bpjcjpnxvh+krxapujhsgg+7q...@mail.gmail.com [2] https://lkml.kernel.org/r/20201030235121.gq2620...@nvidia.com [3] https://lkml.kernel.org/r/CAHk-=wikhgexmprxgaw+mvxg1zsgpztbbvwob23vetk41et...@mail.gmail.com 8<-------------- Ahmed S. Darwish (3): Documentation: seqlock: s/LOCKTYPE/LOCKNAME/g seqlock: Prefix internal seqcount_t-only macros with a "do_" seqlock: kernel-doc: Specify when preemption is automatically altered Documentation/locking/seqlock.rst | 21 ++++---- include/linux/seqlock.h | 83 ++++++++++++++++--------------- 2 files changed, 54 insertions(+), 50 deletions(-) base-commit: 97d62caa32d6d79dadae3f8d19af5c92ea9a589a -- 2.29.2