<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/git/next/linux-next.git/lib, branch master</title>
<subtitle>The linux-next integration testing tree</subtitle>
<id>https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/atom?h=master</id>
<link rel='self' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/'/>
<updated>2026-09-08T19:54:03+00:00</updated>
<entry>
<title>Merge branch 'kunit' of https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git</title>
<updated>2026-09-08T19:54:03+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2026-09-08T19:54:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=0ceb3ab4853c9680023f56005eddc648052091cf'/>
<id>urn:sha1:0ceb3ab4853c9680023f56005eddc648052091cf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'non-rcu/next' of https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git</title>
<updated>2026-09-08T19:14:14+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2026-09-08T19:14:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=e37e16581d2216ca97731c4dd17b1e01795b5cc6'/>
<id>urn:sha1:e37e16581d2216ca97731c4dd17b1e01795b5cc6</id>
<content type='text'>
# Conflicts:
#	kernel/smp.c
</content>
</entry>
<entry>
<title>Merge branch 'master' of https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git</title>
<updated>2026-09-08T15:34:34+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2026-09-08T15:34:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=974fb01a897b900d0c655c1504615cab48f8e065'/>
<id>urn:sha1:974fb01a897b900d0c655c1504615cab48f8e065</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'mm-nonmm-unstable' of https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm</title>
<updated>2026-09-08T12:19:38+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2026-09-08T12:19:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=1b577452004cb848825203474ff9aa226c16c5a4'/>
<id>urn:sha1:1b577452004cb848825203474ff9aa226c16c5a4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-unstable into for-next</title>
<updated>2026-09-08T07:09:07+00:00</updated>
<author>
<name>David Hildenbrand (Arm)</name>
<email>david@kernel.org</email>
</author>
<published>2026-09-08T07:09:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=2a00152a05857d2a43069e884cb813735b684974'/>
<id>urn:sha1:2a00152a05857d2a43069e884cb813735b684974</id>
<content type='text'>
Signed-off-by: David Hildenbrand (Arm) &lt;david@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-hotfixes-unstable into for-next-fixes</title>
<updated>2026-09-08T07:09:06+00:00</updated>
<author>
<name>David Hildenbrand (Arm)</name>
<email>david@kernel.org</email>
</author>
<published>2026-09-08T07:09:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=704d7a9e29f7b9e93a32fcd0901ef3ab6f8188be'/>
<id>urn:sha1:704d7a9e29f7b9e93a32fcd0901ef3ab6f8188be</id>
<content type='text'>
Signed-off-by: David Hildenbrand (Arm) &lt;david@kernel.org&gt;
</content>
</entry>
<entry>
<title>lib/plist: fix plist_requeue() corrupting order in the last bucket</title>
<updated>2026-09-06T03:23:31+00:00</updated>
<author>
<name>Adam Harshbarger</name>
<email>handyhandyman.adam@gmail.com</email>
</author>
<published>2026-09-03T22:24:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=506901b44394ccab518724b1761d1a16c10a6b0f'/>
<id>urn:sha1:506901b44394ccab518724b1761d1a16c10a6b0f</id>
<content type='text'>
plist_requeue() is meant to move a node to the end of its own priority
run.  When the node heads the *last* priority bucket it is instead placed
at the head of the whole list, leaving the plist unsorted:

  built:      A(prio 0) B(prio 1) C(prio 1)
  requeue(B): B(prio 1) A(prio 0) C(prio 1)
  expected:   A(prio 0) C(prio 1) B(prio 1)

prio_list is a *headless* circular ring of the nodes that lead each
priority bucket.  The shortcut added by commit 95d4b3450ebe ("lib/plist.c:
add shortcut for plist_requeue()") takes

	iter = list_entry(iter-&gt;prio_list.next, struct plist_node,
			  prio_list);
	node_next = &amp;iter-&gt;node_list;

which from the last bucket wraps round to the *first* bucket, so node_next
ends up pointing at the head of the list rather than at its end.  The
plist_for_each_continue() loop immediately below it computes the correct
answer (&amp;head-&gt;node_list) for that case.

With any bucket after it the shortcut is correct, which is why this went
unnoticed: the benchmark in that commit measured elapsed time and never
checked the resulting order.

Keep the shortcut -- it is a real win -- but exclude the case where iter's
bucket is the last one, which is exactly when its ring successor is the
first bucket again.

Reachable from mm/swapfile.c, which rotates swap_avail_heads[] with
plist_requeue().  It takes three or more swap devices: at least two
distinct priorities, so that a later bucket exists for the ring to wrap
round from, and two or more devices sharing the lowest priority, so that
plist_requeue() does not return early.  One device per priority returns
early at the node-&gt;prio != iter-&gt;prio test.  A single priority is also
safe, but for a different reason worth stating: with one bucket no node is
ever linked onto prio_list at all -- plist_add() skips it for the first
node and for every node whose predecessor shares its priority -- so
list_empty(&amp;iter-&gt;prio_list) holds and the shortcut is never entered.

Tested by driving three implementations -- the pre-95d4b3450ebe code,
current mainline, and this patch -- through 1,084,492 identical random
add/del/requeue operations over 24 nodes and 1..5 distinct priorities,
comparing the resulting node_list node for node after every operation:

  variant             differs from pre-95d4b3450ebe  left list unsorted
  pre-95d4b3450ebe    -- (reference)                                  0
  mainline                                  289,297             276,660
  this patch                                      0                   0

Link: https://lore.kernel.org/20260903222456.1881786-1-handyhandyman.adam@gmail.com
Fixes: 95d4b3450ebe ("lib/plist.c: add shortcut for plist_requeue()")
Signed-off-by: Adam Harshbarger &lt;handyhandyman.adam@gmail.com&gt;
Assisted-by: Claude:claude-opus-5
Cc: I Hsin Cheng &lt;richard120310@gmail.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; # v6.15+
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>dyndbg: clean up dynamic_debug_init() to improve readability</title>
<updated>2026-09-06T03:23:27+00:00</updated>
<author>
<name>Yuntao Wang</name>
<email>yuntao.wang@linux.dev</email>
</author>
<published>2026-08-11T12:18:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=c4af6b2f0a92afbfc80f0edc10268697bacbce85'/>
<id>urn:sha1:c4af6b2f0a92afbfc80f0edc10268697bacbce85</id>
<content type='text'>
Keep variable assignments in the same order throughout the function to
make the code easier to follow.

No functional changes.

Link: https://lore.kernel.org/20260811121831.577848-3-yuntao.wang@linux.dev
Signed-off-by: Yuntao Wang &lt;yuntao.wang@linux.dev&gt;
Cc: Jason Baron &lt;jbaron@akamai.com&gt;
Cc: Jim Cromie &lt;jim.cromie@gmail.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>dyndbg: fix incorrect mod_ct value in dynamic_debug_init()</title>
<updated>2026-09-06T03:23:27+00:00</updated>
<author>
<name>Yuntao Wang</name>
<email>yuntao.wang@linux.dev</email>
</author>
<published>2026-08-11T12:18:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=44f02c72d6eda2372f83c250721b5cdd4028762b'/>
<id>urn:sha1:44f02c72d6eda2372f83c250721b5cdd4028762b</id>
<content type='text'>
Patch series "dyndbg: fix incorrect mod_ct value in dynamic_debug_init()".

Fix and clean up dynamic_debug_init().


This patch (of 2):

Suppose all `struct _ddebug` instances belong to the same module, mod_ct
should be 1, but it is currently 0.

mod_ct is incremented only when iter-&gt;modname changes, i.e.  when the loop
encounters the first _ddebug entry of a new module:

if (strcmp(modname, iter-&gt;modname)) {
	mod_ct++;
	...
}

If all _ddebug entries belong to the same module, strcmp() never returns
nonzero, so mod_ct remains 0.

However, the last (and in this case only) module is added after the loop:

di.num_descs = mod_sites;
di.descs = iter_mod_start;
ret = ddebug_add_module(&amp;di, modname);

Thus, mod_ct should be incremented before adding this final module.

The bug only affects the diagnostic message printed by vpr_info():

"%d prdebugs in %d modules, ..."

It reports one fewer module than the actual number of modules.  There is
no userspace-visible runtime effect; the dynamic debug tables themselves
are initialized correctly.

Fix it.
		
Link: https://lore.kernel.org/20260811121831.577848-1-yuntao.wang@linux.dev
Link: https://lore.kernel.org/20260811121831.577848-2-yuntao.wang@linux.dev
Signed-off-by: Yuntao Wang &lt;yuntao.wang@linux.dev&gt;
Cc: Jason Baron &lt;jbaron@akamai.com&gt;
Cc: Jim Cromie &lt;jim.cromie@gmail.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>lib: decompress_unxz: make it obvious that there is no memory leak</title>
<updated>2026-09-06T03:23:26+00:00</updated>
<author>
<name>Ivy Lopez</name>
<email>skunkolee@gmail.com</email>
</author>
<published>2026-09-01T01:41:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=3b501e6bd9b544858765ab0cbc036bad34466590'/>
<id>urn:sha1:3b501e6bd9b544858765ab0cbc036bad34466590</id>
<content type='text'>
Calling __decompress() or unxz() with fill == NULL &amp;&amp; flush == NULL &amp;&amp; in
== NULL is invalid, thus there were no memory leaks even though it might
have looked like that.  Move the conditional free() calls so that it's
obvious that there are no leaks.

Link: https://lore.kernel.org/20260901014138.22699-1-skunkolee@gmail.com
Signed-off-by: Ivy Lopez &lt;skunkolee@gmail.com&gt;
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=207113
Link: https://lore.kernel.org/lkml/20241006072542.66442-2-t.v.s10123@gmail.com/T/
Link: https://lore.kernel.org/lkml/20260825191333.34276-1-skunkolee@gmail.com/T/
Reviewed-by: Lasse Collin &lt;lasse.collin@tukaani.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
</content>
</entry>
</feed>
