<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Tue, 27 Oct 2026 17:46:12 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-98939 — x86/mm: Drop unnecessary PMD page copy when freeing</title>
      <link>https://db.gcve.eu/vuln/cve-2026-98939</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;x86/mm: Drop unnecessary PMD page copy when freeing&lt;/p&gt;
&lt;p&gt;On a box with a discrete GPU, lockdep reports a possible deadlock as
soon as kswapd shrinks the TTM page pool. The immediate cause is an
x86 commit that added an mmap_read_lock() to kernel page protection
munging code.&lt;/p&gt;
&lt;p&gt;The huge vmap code holds the same lock over a GFP_KERNEL allocation,
which is a no-no now that reclaim can take it. That allocation is in a
page table *free* path and ends up being for dubious purposes[1].
Basically, it tries to avoid hardware setting Accessed=1 in page table
entries that are unreachable by the hardware, a non-issue.&lt;/p&gt;
&lt;p&gt;Remove the PMD copy. Detach the original PMD page at the PUD, flush
the mid-level caches, and free the PTE tables straight from the
detached PMD page. With no allocation left, the locking issue is gone.&lt;/p&gt;
&lt;p&gt;Lockdep splat/analysis:&lt;/p&gt;
&lt;p&gt;WARNING: possible circular locking dependency detected
  7.3.0-rc3-f6e7b42bf05b+ #183 Tainted: G     U
  ------------------------------------------------------
  kswapd0/269 is trying to acquire lock:
  ((init_mm).mmap_lock){++++}-{4:4}, at: change_page_attr_set_clr+0x29a/0x4a0
  but task is already holding lock:
  (pool_shrink_rwsem){.+.+}-{4:4}, at: ttm_pool_shrink+0xb2/0x330 [ttm]
  Chain exists of:
    (init_mm).mmap_lock --&amp;gt; fs_reclaim --&amp;gt; pool_shrink_rwsem&lt;/p&gt;
&lt;p&gt;The cycle is built from three edges:&lt;/p&gt;
&lt;p&gt;1) pool_shrink_rwsem -&amp;gt; (init_mm).mmap_lock&lt;/p&gt;
&lt;p&gt;The TTM shrinker restores the c…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;x86/mm: Drop unnecessary PMD page copy when freeing&lt;/p&gt;
&lt;p&gt;On a box with a discrete GPU, lockdep reports a possible deadlock as
soon as kswapd shrinks the TTM page pool. The immediate cause is an
x86 commit that added an mmap_read_lock() to kernel page protection
munging code.&lt;/p&gt;
&lt;p&gt;The huge vmap code holds the same lock over a GFP_KERNEL allocation,
which is a no-no now that reclaim can take it. That allocation is in a
page table *free* path and ends up being for dubious purposes[1].
Basically, it tries to avoid hardware setting Accessed=1 in page table
entries that are unreachable by the hardware, a non-issue.&lt;/p&gt;
&lt;p&gt;Remove the PMD copy. Detach the original PMD page at the PUD, flush
the mid-level caches, and free the PTE tables straight from the
detached PMD page. With no allocation left, the locking issue is gone.&lt;/p&gt;
&lt;p&gt;Lockdep splat/analysis:&lt;/p&gt;
&lt;p&gt;WARNING: possible circular locking dependency detected
  7.3.0-rc3-f6e7b42bf05b+ #183 Tainted: G     U
  ------------------------------------------------------
  kswapd0/269 is trying to acquire lock:
  ((init_mm).mmap_lock){++++}-{4:4}, at: change_page_attr_set_clr+0x29a/0x4a0
  but task is already holding lock:
  (pool_shrink_rwsem){.+.+}-{4:4}, at: ttm_pool_shrink+0xb2/0x330 [ttm]
  Chain exists of:
    (init_mm).mmap_lock --&amp;gt; fs_reclaim --&amp;gt; pool_shrink_rwsem&lt;/p&gt;
&lt;p&gt;The cycle is built from three edges:&lt;/p&gt;
&lt;p&gt;1) pool_shrink_rwsem -&amp;gt; (init_mm).mmap_lock&lt;/p&gt;
&lt;p&gt;The TTM shrinker restores the c…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-98939</guid>
    </item>
  </channel>
</rss>
