<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in sub_and_test</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2025</copyright>
    <generator>Java</generator><item>
        <title>cdd5b5a9761fd66d17586e4f4ba6588c70e640ea - Merge branch &apos;next&apos; into for-linus</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#cdd5b5a9761fd66d17586e4f4ba6588c70e640ea</link>
        <description>Merge branch &apos;next&apos; into for-linusPrepare input updates for 6.7 merge window.

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Mon, 06 Nov 2023 23:42:08 +0000</pubDate>
        <dc:creator>Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>34069d12e239ae8f36dd96c378e4622fb1c42a76 - Merge tag &apos;v6.5&apos; into next</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#34069d12e239ae8f36dd96c378e4622fb1c42a76</link>
        <description>Merge tag &apos;v6.5&apos; into nextSync up with mainline to bring in updates to the shared infrastructure.

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Tue, 05 Sep 2023 21:08:14 +0000</pubDate>
        <dc:creator>Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>2612e3bbc0386368a850140a6c9b990cd496a5ec - Merge drm/drm-next into drm-intel-next</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#2612e3bbc0386368a850140a6c9b990cd496a5ec</link>
        <description>Merge drm/drm-next into drm-intel-nextCatching-up with drm-next and drm-intel-gt-next.It will unblock a code refactor around the platformdefinitions (names vs acronyms).Signed-off-by: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Mon, 07 Aug 2023 21:14:42 +0000</pubDate>
        <dc:creator>Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>9f771739a04919226081a107167596de75108fbb - Merge drm/drm-next into drm-intel-gt-next</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#9f771739a04919226081a107167596de75108fbb</link>
        <description>Merge drm/drm-next into drm-intel-gt-nextNeed to pull in b3e4aae612ec (&quot;drm/i915/hdcp: Modify hdcp_gsc_message msg sending mechanism&quot;) asa dependency for https://patchwork.freedesktop.org/series/121735/Signed-off-by: Joonas Lahtinen &lt;joonas.lahtinen@linux.intel.com&gt;

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Mon, 07 Aug 2023 10:29:40 +0000</pubDate>
        <dc:creator>Joonas Lahtinen &lt;joonas.lahtinen@linux.intel.com&gt;</dc:creator>
    </item>
<item>
        <title>61b7369483efb5e0a9f3b48e75fac00d46d661e0 - Merge drm/drm-next into drm-misc-next</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#61b7369483efb5e0a9f3b48e75fac00d46d661e0</link>
        <description>Merge drm/drm-next into drm-misc-nextBackmerging to get v6.5-rc2.Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Mon, 24 Jul 2023 13:44:47 +0000</pubDate>
        <dc:creator>Thomas Zimmermann &lt;tzimmermann@suse.de&gt;</dc:creator>
    </item>
<item>
        <title>0791faebfe750292a8a842b64795a390ca4a3b51 - ASoC: Merge v6.5-rc2</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#0791faebfe750292a8a842b64795a390ca4a3b51</link>
        <description>ASoC: Merge v6.5-rc2Get a similar baseline to my other branches, and fixes for people usingthe branch.

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Mon, 17 Jul 2023 05:12:31 +0000</pubDate>
        <dc:creator>Mark Brown &lt;broonie@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>2f98e686ef59b5d19af5847d755798e2031bee3a - Merge v6.5-rc1 into drm-misc-fixes</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#2f98e686ef59b5d19af5847d755798e2031bee3a</link>
        <description>Merge v6.5-rc1 into drm-misc-fixesBoris needs 6.5-rc1 in drm-misc-fixes to prevent a conflict.Signed-off-by: Maxime Ripard &lt;mripard@kernel.org&gt;

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Tue, 11 Jul 2023 07:23:20 +0000</pubDate>
        <dc:creator>Maxime Ripard &lt;mripard@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>44f10dbefd5e41b3385af91f855a57aa2afaf40e - Merge branch &apos;master&apos; into mm-hotfixes-stable</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#44f10dbefd5e41b3385af91f855a57aa2afaf40e</link>
        <description>Merge branch &apos;master&apos; into mm-hotfixes-stable

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Fri, 30 Jun 2023 15:41:39 +0000</pubDate>
        <dc:creator>Andrew Morton &lt;akpm@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>bc6cb4d5bc3a44197de30784eae71d8ba28483eb - Merge tag &apos;locking-core-2023-06-27&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#bc6cb4d5bc3a44197de30784eae71d8ba28483eb</link>
        <description>Merge tag &apos;locking-core-2023-06-27&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tipPull locking updates from Ingo Molnar: - Introduce cmpxchg128() -- aka. the demise of cmpxchg_double()   The cmpxchg128() family of functions is basically &amp; functionally the   same as cmpxchg_double(), but with a saner interface.   Instead of a 6-parameter horror that forced u128 - u64/u64-halves   layout details on the interface and exposed users to complexity,   fragility &amp; bugs, use a natural 3-parameter interface with u128   types. - Restructure the generated atomic headers, and add kerneldoc comments   for all of the generic atomic{,64,_long}_t operations.   The generated definitions are much cleaner now, and come with   documentation. - Implement lock_set_cmp_fn() on lockdep, for defining an ordering when   taking multiple locks of the same type.   This gets rid of one use of lockdep_set_novalidate_class() in the   bcache code. - Fix raw_cpu_generic_try_cmpxchg() bug due to an unintended variable   shadowing generating garbage code on Clang on certain ARM builds.* tag &apos;locking-core-2023-06-27&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (43 commits)  locking/atomic: scripts: fix ${atomic}_dec_if_positive() kerneldoc  percpu: Fix self-assignment of __old in raw_cpu_generic_try_cmpxchg()  locking/atomic: treewide: delete arch_atomic_*() kerneldoc  locking/atomic: docs: Add atomic operations to the driver basic API documentation  locking/atomic: scripts: generate kerneldoc comments  docs: scripts: kernel-doc: accept bitwise negation like ~@var  locking/atomic: scripts: simplify raw_atomic*() definitions  locking/atomic: scripts: simplify raw_atomic_long*() definitions  locking/atomic: scripts: split pfx/name/sfx/order  locking/atomic: scripts: restructure fallback ifdeffery  locking/atomic: scripts: build raw_atomic_long*() directly  locking/atomic: treewide: use raw_atomic*_&lt;op&gt;()  locking/atomic: scripts: add trivial raw_atomic*_&lt;op&gt;()  locking/atomic: scripts: factor out order template generation  locking/atomic: scripts: remove leftover &quot;${mult}&quot;  locking/atomic: scripts: remove bogus order parameter  locking/atomic: xtensa: add preprocessor symbols  locking/atomic: x86: add preprocessor symbols  locking/atomic: sparc: add preprocessor symbols  locking/atomic: sh: add preprocessor symbols  ...

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Tue, 27 Jun 2023 21:14:30 +0000</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>1d78814d41701c216e28fcf2656526146dec4a1a - locking/atomic: scripts: simplify raw_atomic*() definitions</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#1d78814d41701c216e28fcf2656526146dec4a1a</link>
        <description>locking/atomic: scripts: simplify raw_atomic*() definitionsCurrently each ordering variant has several potential definitions,with a mixture of preprocessor and C definitions, including severalcopies of its C prototype, e.g.| #if defined(arch_atomic_fetch_andnot_acquire)| #define raw_atomic_fetch_andnot_acquire arch_atomic_fetch_andnot_acquire| #elif defined(arch_atomic_fetch_andnot_relaxed)| static __always_inline int| raw_atomic_fetch_andnot_acquire(int i, atomic_t *v)| {|       int ret = arch_atomic_fetch_andnot_relaxed(i, v);|       __atomic_acquire_fence();|       return ret;| }| #elif defined(arch_atomic_fetch_andnot)| #define raw_atomic_fetch_andnot_acquire arch_atomic_fetch_andnot| #else| static __always_inline int| raw_atomic_fetch_andnot_acquire(int i, atomic_t *v)| {|       return raw_atomic_fetch_and_acquire(~i, v);| }| #endifMake this a bit simpler by defining the C prototype once, and writingthe various potential definitions as plain C code guarded by ifdeffery.For example, the above becomes:| static __always_inline int| raw_atomic_fetch_andnot_acquire(int i, atomic_t *v)| {| #if defined(arch_atomic_fetch_andnot_acquire)|         return arch_atomic_fetch_andnot_acquire(i, v);| #elif defined(arch_atomic_fetch_andnot_relaxed)|         int ret = arch_atomic_fetch_andnot_relaxed(i, v);|         __atomic_acquire_fence();|         return ret;| #elif defined(arch_atomic_fetch_andnot)|         return arch_atomic_fetch_andnot(i, v);| #else|         return raw_atomic_fetch_and_acquire(~i, v);| #endif| }Which is far easier to read. As we now always have a single copy of theC prototype wrapping all the potential definitions, we now have anobvious single location for kerneldoc comments.At the same time, the fallbacks for raw_atomic*_xhcg() are made to use&apos;new&apos; rather than &apos;i&apos; as the name of the new value. This is what theexisting fallback template used, and is more consistent with theraw_atomic{_try,}cmpxchg() fallbacks.There should be no functional change as a result of this patch.Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;Signed-off-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;Reviewed-by: Kees Cook &lt;keescook@chromium.org&gt;Link: https://lore.kernel.org/r/20230605070124.3741859-24-mark.rutland@arm.com

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Mon, 05 Jun 2023 07:01:20 +0000</pubDate>
        <dc:creator>Mark Rutland &lt;mark.rutland@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>9257959a6e5b4fca6fc8e985790bff62c2046f20 - locking/atomic: scripts: restructure fallback ifdeffery</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#9257959a6e5b4fca6fc8e985790bff62c2046f20</link>
        <description>locking/atomic: scripts: restructure fallback ifdefferyCurrently the various ordering variants of an atomic operation aredefined in groups of full/acquire/release/relaxed ordering variants withsome shared ifdeffery and several potential definitions of each orderingvariant in different branches of the shared ifdeffery.As an ordering variant can have several potential definitions downdifferent branches of the shared ifdeffery, it can be painful for ahuman to find a relevant definition, and we don&apos;t have a good locationto place anything common to all definitions of an ordering variant (e.g.kerneldoc).Historically the grouping of full/acquire/release/relaxed orderingvariants was necessary as we filled in the missing atomics in the samenamespace as the architecture used. It would be easy to accidentallydefine one ordering fallback in terms of another ordering fallback withredundant barriers, and avoiding that would otherwise require a lot ofbaroque ifdeffery.With recent changes we no longer need to fill in the missing atomics inthe arch_atomic*_&lt;op&gt;() namespace, and only need to fill in theraw_atomic*_&lt;op&gt;() namespace. Due to this, there&apos;s no risk of anamespace collision, and we can define each raw_atomic*_&lt;op&gt; orderingvariant with its own ifdeffery checking for the arch_atomic*_&lt;op&gt;ordering variants.Restructure the fallbacks in this way, with each ordering variant havingits own ifdeffery of the form:| #if defined(arch_atomic_fetch_andnot_acquire)| #define raw_atomic_fetch_andnot_acquire arch_atomic_fetch_andnot_acquire| #elif defined(arch_atomic_fetch_andnot_relaxed)| static __always_inline int| raw_atomic_fetch_andnot_acquire(int i, atomic_t *v)| {| 	int ret = arch_atomic_fetch_andnot_relaxed(i, v);| 	__atomic_acquire_fence();| 	return ret;| }| #elif defined(arch_atomic_fetch_andnot)| #define raw_atomic_fetch_andnot_acquire arch_atomic_fetch_andnot| #else| static __always_inline int| raw_atomic_fetch_andnot_acquire(int i, atomic_t *v)| {| 	return raw_atomic_fetch_and_acquire(~i, v);| }| #endifNote that where there&apos;s no relevant arch_atomic*_&lt;op&gt;() orderingvariant, we&apos;ll define the operation in terms of a distinctraw_atomic*_&lt;otherop&gt;(), as this itself might have been filled in with afallback.As we now generate the raw_atomic*_&lt;op&gt;() implementations directly, weno longer need the trivial wrappers, so they are removed.This makes the ifdeffery easier to follow, and will allow for furtherimprovements in subsequent patches.There should be no functional change as a result of this patch.Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;Signed-off-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;Reviewed-by: Kees Cook &lt;keescook@chromium.org&gt;Link: https://lore.kernel.org/r/20230605070124.3741859-21-mark.rutland@arm.com

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Mon, 05 Jun 2023 07:01:17 +0000</pubDate>
        <dc:creator>Mark Rutland &lt;mark.rutland@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>14d72d4b6f0e88b5f683c1a5b7a876a55055852d - locking/atomic: remove fallback comments</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#14d72d4b6f0e88b5f683c1a5b7a876a55055852d</link>
        <description>locking/atomic: remove fallback commentsCurrently a subset of the fallback templates have kerneldoc comments,resulting in a haphazard set of generated kerneldoc comments as onlysome operations have fallback templates to begin with.We&apos;d like to generate more consistent kerneldoc comments, and to do sowe&apos;ll need to restructure the way the fallback code is generated.To minimize churn and to make it easier to restructure the fallbackcode, this patch removes the existing kerneldoc comments from thefallback templates. We can add new kerneldoc comments in subsequentpatches.There should be no functional change as a result of this patch.Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;Signed-off-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;Reviewed-by: Kees Cook &lt;keescook@chromium.org&gt;Link: https://lore.kernel.org/r/20230605070124.3741859-3-mark.rutland@arm.com

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Mon, 05 Jun 2023 07:00:59 +0000</pubDate>
        <dc:creator>Mark Rutland &lt;mark.rutland@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>61b7369483efb5e0a9f3b48e75fac00d46d661e0 - Merge drm/drm-next into drm-misc-next</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#61b7369483efb5e0a9f3b48e75fac00d46d661e0</link>
        <description>Merge drm/drm-next into drm-misc-nextBackmerging to get v6.5-rc2.Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Mon, 24 Jul 2023 13:44:47 +0000</pubDate>
        <dc:creator>Thomas Zimmermann &lt;tzimmermann@suse.de&gt;</dc:creator>
    </item>
<item>
        <title>2f98e686ef59b5d19af5847d755798e2031bee3a - Merge v6.5-rc1 into drm-misc-fixes</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#2f98e686ef59b5d19af5847d755798e2031bee3a</link>
        <description>Merge v6.5-rc1 into drm-misc-fixesBoris needs 6.5-rc1 in drm-misc-fixes to prevent a conflict.Signed-off-by: Maxime Ripard &lt;mripard@kernel.org&gt;

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Tue, 11 Jul 2023 07:23:20 +0000</pubDate>
        <dc:creator>Maxime Ripard &lt;mripard@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>44f10dbefd5e41b3385af91f855a57aa2afaf40e - Merge branch &apos;master&apos; into mm-hotfixes-stable</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#44f10dbefd5e41b3385af91f855a57aa2afaf40e</link>
        <description>Merge branch &apos;master&apos; into mm-hotfixes-stable

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Fri, 30 Jun 2023 15:41:39 +0000</pubDate>
        <dc:creator>Andrew Morton &lt;akpm@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>bc6cb4d5bc3a44197de30784eae71d8ba28483eb - Merge tag &apos;locking-core-2023-06-27&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#bc6cb4d5bc3a44197de30784eae71d8ba28483eb</link>
        <description>Merge tag &apos;locking-core-2023-06-27&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tipPull locking updates from Ingo Molnar: - Introduce cmpxchg128() -- aka. the demise of cmpxchg_double()   The cmpxchg128() family of functions is basically &amp; functionally the   same as cmpxchg_double(), but with a saner interface.   Instead of a 6-parameter horror that forced u128 - u64/u64-halves   layout details on the interface and exposed users to complexity,   fragility &amp; bugs, use a natural 3-parameter interface with u128   types. - Restructure the generated atomic headers, and add kerneldoc comments   for all of the generic atomic{,64,_long}_t operations.   The generated definitions are much cleaner now, and come with   documentation. - Implement lock_set_cmp_fn() on lockdep, for defining an ordering when   taking multiple locks of the same type.   This gets rid of one use of lockdep_set_novalidate_class() in the   bcache code. - Fix raw_cpu_generic_try_cmpxchg() bug due to an unintended variable   shadowing generating garbage code on Clang on certain ARM builds.* tag &apos;locking-core-2023-06-27&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (43 commits)  locking/atomic: scripts: fix ${atomic}_dec_if_positive() kerneldoc  percpu: Fix self-assignment of __old in raw_cpu_generic_try_cmpxchg()  locking/atomic: treewide: delete arch_atomic_*() kerneldoc  locking/atomic: docs: Add atomic operations to the driver basic API documentation  locking/atomic: scripts: generate kerneldoc comments  docs: scripts: kernel-doc: accept bitwise negation like ~@var  locking/atomic: scripts: simplify raw_atomic*() definitions  locking/atomic: scripts: simplify raw_atomic_long*() definitions  locking/atomic: scripts: split pfx/name/sfx/order  locking/atomic: scripts: restructure fallback ifdeffery  locking/atomic: scripts: build raw_atomic_long*() directly  locking/atomic: treewide: use raw_atomic*_&lt;op&gt;()  locking/atomic: scripts: add trivial raw_atomic*_&lt;op&gt;()  locking/atomic: scripts: factor out order template generation  locking/atomic: scripts: remove leftover &quot;${mult}&quot;  locking/atomic: scripts: remove bogus order parameter  locking/atomic: xtensa: add preprocessor symbols  locking/atomic: x86: add preprocessor symbols  locking/atomic: sparc: add preprocessor symbols  locking/atomic: sh: add preprocessor symbols  ...

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Tue, 27 Jun 2023 21:14:30 +0000</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>1d78814d41701c216e28fcf2656526146dec4a1a - locking/atomic: scripts: simplify raw_atomic*() definitions</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#1d78814d41701c216e28fcf2656526146dec4a1a</link>
        <description>locking/atomic: scripts: simplify raw_atomic*() definitionsCurrently each ordering variant has several potential definitions,with a mixture of preprocessor and C definitions, including severalcopies of its C prototype, e.g.| #if defined(arch_atomic_fetch_andnot_acquire)| #define raw_atomic_fetch_andnot_acquire arch_atomic_fetch_andnot_acquire| #elif defined(arch_atomic_fetch_andnot_relaxed)| static __always_inline int| raw_atomic_fetch_andnot_acquire(int i, atomic_t *v)| {|       int ret = arch_atomic_fetch_andnot_relaxed(i, v);|       __atomic_acquire_fence();|       return ret;| }| #elif defined(arch_atomic_fetch_andnot)| #define raw_atomic_fetch_andnot_acquire arch_atomic_fetch_andnot| #else| static __always_inline int| raw_atomic_fetch_andnot_acquire(int i, atomic_t *v)| {|       return raw_atomic_fetch_and_acquire(~i, v);| }| #endifMake this a bit simpler by defining the C prototype once, and writingthe various potential definitions as plain C code guarded by ifdeffery.For example, the above becomes:| static __always_inline int| raw_atomic_fetch_andnot_acquire(int i, atomic_t *v)| {| #if defined(arch_atomic_fetch_andnot_acquire)|         return arch_atomic_fetch_andnot_acquire(i, v);| #elif defined(arch_atomic_fetch_andnot_relaxed)|         int ret = arch_atomic_fetch_andnot_relaxed(i, v);|         __atomic_acquire_fence();|         return ret;| #elif defined(arch_atomic_fetch_andnot)|         return arch_atomic_fetch_andnot(i, v);| #else|         return raw_atomic_fetch_and_acquire(~i, v);| #endif| }Which is far easier to read. As we now always have a single copy of theC prototype wrapping all the potential definitions, we now have anobvious single location for kerneldoc comments.At the same time, the fallbacks for raw_atomic*_xhcg() are made to use&apos;new&apos; rather than &apos;i&apos; as the name of the new value. This is what theexisting fallback template used, and is more consistent with theraw_atomic{_try,}cmpxchg() fallbacks.There should be no functional change as a result of this patch.Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;Signed-off-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;Reviewed-by: Kees Cook &lt;keescook@chromium.org&gt;Link: https://lore.kernel.org/r/20230605070124.3741859-24-mark.rutland@arm.com

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Mon, 05 Jun 2023 07:01:20 +0000</pubDate>
        <dc:creator>Mark Rutland &lt;mark.rutland@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>9257959a6e5b4fca6fc8e985790bff62c2046f20 - locking/atomic: scripts: restructure fallback ifdeffery</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#9257959a6e5b4fca6fc8e985790bff62c2046f20</link>
        <description>locking/atomic: scripts: restructure fallback ifdefferyCurrently the various ordering variants of an atomic operation aredefined in groups of full/acquire/release/relaxed ordering variants withsome shared ifdeffery and several potential definitions of each orderingvariant in different branches of the shared ifdeffery.As an ordering variant can have several potential definitions downdifferent branches of the shared ifdeffery, it can be painful for ahuman to find a relevant definition, and we don&apos;t have a good locationto place anything common to all definitions of an ordering variant (e.g.kerneldoc).Historically the grouping of full/acquire/release/relaxed orderingvariants was necessary as we filled in the missing atomics in the samenamespace as the architecture used. It would be easy to accidentallydefine one ordering fallback in terms of another ordering fallback withredundant barriers, and avoiding that would otherwise require a lot ofbaroque ifdeffery.With recent changes we no longer need to fill in the missing atomics inthe arch_atomic*_&lt;op&gt;() namespace, and only need to fill in theraw_atomic*_&lt;op&gt;() namespace. Due to this, there&apos;s no risk of anamespace collision, and we can define each raw_atomic*_&lt;op&gt; orderingvariant with its own ifdeffery checking for the arch_atomic*_&lt;op&gt;ordering variants.Restructure the fallbacks in this way, with each ordering variant havingits own ifdeffery of the form:| #if defined(arch_atomic_fetch_andnot_acquire)| #define raw_atomic_fetch_andnot_acquire arch_atomic_fetch_andnot_acquire| #elif defined(arch_atomic_fetch_andnot_relaxed)| static __always_inline int| raw_atomic_fetch_andnot_acquire(int i, atomic_t *v)| {| 	int ret = arch_atomic_fetch_andnot_relaxed(i, v);| 	__atomic_acquire_fence();| 	return ret;| }| #elif defined(arch_atomic_fetch_andnot)| #define raw_atomic_fetch_andnot_acquire arch_atomic_fetch_andnot| #else| static __always_inline int| raw_atomic_fetch_andnot_acquire(int i, atomic_t *v)| {| 	return raw_atomic_fetch_and_acquire(~i, v);| }| #endifNote that where there&apos;s no relevant arch_atomic*_&lt;op&gt;() orderingvariant, we&apos;ll define the operation in terms of a distinctraw_atomic*_&lt;otherop&gt;(), as this itself might have been filled in with afallback.As we now generate the raw_atomic*_&lt;op&gt;() implementations directly, weno longer need the trivial wrappers, so they are removed.This makes the ifdeffery easier to follow, and will allow for furtherimprovements in subsequent patches.There should be no functional change as a result of this patch.Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;Signed-off-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;Reviewed-by: Kees Cook &lt;keescook@chromium.org&gt;Link: https://lore.kernel.org/r/20230605070124.3741859-21-mark.rutland@arm.com

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Mon, 05 Jun 2023 07:01:17 +0000</pubDate>
        <dc:creator>Mark Rutland &lt;mark.rutland@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>14d72d4b6f0e88b5f683c1a5b7a876a55055852d - locking/atomic: remove fallback comments</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#14d72d4b6f0e88b5f683c1a5b7a876a55055852d</link>
        <description>locking/atomic: remove fallback commentsCurrently a subset of the fallback templates have kerneldoc comments,resulting in a haphazard set of generated kerneldoc comments as onlysome operations have fallback templates to begin with.We&apos;d like to generate more consistent kerneldoc comments, and to do sowe&apos;ll need to restructure the way the fallback code is generated.To minimize churn and to make it easier to restructure the fallbackcode, this patch removes the existing kerneldoc comments from thefallback templates. We can add new kerneldoc comments in subsequentpatches.There should be no functional change as a result of this patch.Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;Signed-off-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;Reviewed-by: Kees Cook &lt;keescook@chromium.org&gt;Link: https://lore.kernel.org/r/20230605070124.3741859-3-mark.rutland@arm.com

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Mon, 05 Jun 2023 07:00:59 +0000</pubDate>
        <dc:creator>Mark Rutland &lt;mark.rutland@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>762f99f4f3cb41a775b5157dd761217beba65873 - Merge branch &apos;next&apos; into for-linus</title>
        <link>http://opengrok.net:8080/history/linux/scripts/atomic/fallbacks/sub_and_test#762f99f4f3cb41a775b5157dd761217beba65873</link>
        <description>Merge branch &apos;next&apos; into for-linusPrepare input updates for 5.17 merge window.

            List of files:
            /linux/scripts/atomic/fallbacks/sub_and_test</description>
        <pubDate>Sat, 15 Jan 2022 20:09:44 +0000</pubDate>
        <dc:creator>Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
