<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xml" href="https://www.igalia.com/feed.xslt.xml"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://www.igalia.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.igalia.com/" rel="alternate" type="text/html" /><updated>2026-07-12T04:18:03+00:00</updated><id>https://www.igalia.com/feed.xml</id><title type="html">Igalia</title><subtitle>Igalia is an open source consulting firm specialised in the development of innovative projects and solutions. Our engineers have expertise in a wide range of technological areas, including browsers and client-side web technologies, graphics pipeline, compilers and virtual machines. We have the most WPE, WebKit, Chromium/Blink and Firefox expertise found in the consulting business, including many reviewers and committers. Igalia designs, develops, customises and optimises GNU/Linux-based solutions for companies across the globe. Our work and contributions are present in many projects such as GStreamer, Mesa 3D, WebKit, Chromium, etc.</subtitle><author><name>Igalia</name></author><entry><title type="html">Igalia and Wind River Collaborate to Deliver Production-Ready Web Runtime for Embedded Linux Devices</title><link href="https://www.igalia.com/2026/07/06/Igalia-and-Wind-River-Collaborate-to-Deliver-Production-Ready-Web-Runtime-for-Embedded-Linux-Devices.html" rel="alternate" type="text/html" title="Igalia and Wind River Collaborate to Deliver Production-Ready Web Runtime for Embedded Linux Devices" /><published>2026-07-06T00:00:00+00:00</published><updated>2026-07-06T00:00:00+00:00</updated><id>https://www.igalia.com/2026/07/06/Igalia-and-Wind-River-Collaborate-to-Deliver-Production-Ready-Web-Runtime-for-Embedded-Linux-Devices</id><content type="html" xml:base="https://www.igalia.com/2026/07/06/Igalia-and-Wind-River-Collaborate-to-Deliver-Production-Ready-Web-Runtime-for-Embedded-Linux-Devices.html"><![CDATA[<p>Igalia, an open source engineering consulting firm with over 25 years of experience in Linux-based systems and Web engine development, is pleased to announce <a href="https://www.windriver.com/resource/enabling-web-based-user-experiences-for-embedded-linux-systems">a collaboration</a> under the umbrella of the <a href="https://www.yoctoproject.org">Yocto Project</a> with <a href="https://www.windriver.com/">Wind River</a>, a global leader in embedded Linux platforms, to deliver a production-ready Web runtime for embedded devices.</p>

<p>The joint solution combines <a href="https://wpewebkit.org">WPE WebKit</a>, the open source Web engine port created and maintained by Igalia specifically for embedded Linux environments, with <a href="https://www.windriver.com/products/embedded/linux">Wind River Linux</a>, a commercially supported, Yocto-based embedded platform.  Together, the two companies provide embedded product teams with a fully integrated, standards-based Web runtime backed by direct access to upstream maintainers.</p>

<p>A critical component of the solution is <a href="https://github.com/Igalia/meta-webkit">the meta-webkit Yocto layer</a>, maintained by Igalia since 2017. This layer contains the necessary build recipes, supports multiple Yocto versions, and provides backported security fixes. It also serves as the foundation for <a href="https://docs.webkit.org/Deep%20Dive/Build/CI.html">upstream WebKit’s continuous integration (CI) infrastructure</a> on real hardware targets, including the popular Raspberry Pi platform. This CI infrastructure allows to identify and resolve issues before they reach downstream product teams, meaningfully reducing risks for product teams.</p>

<p>Together, <a href="https://www.windriver.com/">Wind River</a> and Igalia provide embedded developers and product teams with:</p>

<ul>
  <li>A production-grade embedded Linux platform integrated with WPE WebKit</li>
  <li>A standards-based Web runtime designed for constrained and headless devices</li>
  <li>Direct access to upstream maintainers of WebKit and the WPE stack</li>
  <li>A fully open source solution, minimizing dependency on proprietary frameworks</li>
</ul>

<p>A Web engine provides a full application runtime that includes rendering, scripting, networking, and multimedia support, making it a compelling alternative to proprietary UI stacks. This is why modern embedded devices are increasingly adopting Web-based runtimes, including devices such as industrial human-machine interfaces, automotive systems, home appliances, smart TVs, and set-top boxes.  Igalia’s deep and broad experience with Web engines, along with our foundational focus on open source development, gives us a unique skill set to bring to projects that use Web engines and similar open technologies.</p>

<p>This collaboration between Igalia and Wind River is the latest entry in our long history of helping others meld the power of the Web with their projects to deliver truly robust solutions, creating a strong foundation for building modern, Web-based embedded applications. It allows product teams to accelerate development, reduce integration complexity, and maintain long-term control over their software stacks using open source technologies.  Embedded teams that need upstream support and long-term WebKit alignment now have a production-grade Linux platform to pair with it.</p>

<p>If you’d like to work with us, <a href="https://igalia.com/contact">please get in touch</a> to learn more and see how we can help your project get further, faster.</p>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><category term="linux" /><category term="automotive" /><category term="embedded-linux" /><category term="mobile-devices" /><category term="digital-tv" /><summary type="html"><![CDATA[Igalia, an open source engineering consulting firm with over 25 years of experience in Linux-based systems and Web engine development, is pleased to announce a collaboration under the umbrella of the Yocto Project with Wind River, a global leader in embedded Linux platforms, to deliver a production-ready Web runtime for embedded devices. The joint solution combines WPE WebKit, the open source Web engine port created and maintained by Igalia specifically for embedded Linux environments, with Wind River Linux, a commercially supported, Yocto-based embedded platform. Together, the two companies provide embedded product teams with a fully integrated, standards-based Web runtime backed by direct access to upstream maintainers. A critical component of the solution is the meta-webkit Yocto layer, maintained by Igalia since 2017. This layer contains the necessary build recipes, supports multiple Yocto versions, and provides backported security fixes. It also serves as the foundation for upstream WebKit’s continuous integration (CI) infrastructure on real hardware targets, including the popular Raspberry Pi platform. This CI infrastructure allows to identify and resolve issues before they reach downstream product teams, meaningfully reducing risks for product teams. Together, Wind River and Igalia provide embedded developers and product teams with: A production-grade embedded Linux platform integrated with WPE WebKit A standards-based Web runtime designed for constrained and headless devices Direct access to upstream maintainers of WebKit and the WPE stack A fully open source solution, minimizing dependency on proprietary frameworks A Web engine provides a full application runtime that includes rendering, scripting, networking, and multimedia support, making it a compelling alternative to proprietary UI stacks. This is why modern embedded devices are increasingly adopting Web-based runtimes, including devices such as industrial human-machine interfaces, automotive systems, home appliances, smart TVs, and set-top boxes. Igalia’s deep and broad experience with Web engines, along with our foundational focus on open source development, gives us a unique skill set to bring to projects that use Web engines and similar open technologies. This collaboration between Igalia and Wind River is the latest entry in our long history of helping others meld the power of the Web with their projects to deliver truly robust solutions, creating a strong foundation for building modern, Web-based embedded applications. It allows product teams to accelerate development, reduce integration complexity, and maintain long-term control over their software stacks using open source technologies. Embedded teams that need upstream support and long-term WebKit alignment now have a production-grade Linux platform to pair with it. If you’d like to work with us, please get in touch to learn more and see how we can help your project get further, faster.]]></summary></entry><entry><title type="html">That’s a Wrap on the 2026 Web Engines Hackfest</title><link href="https://www.igalia.com/2026/webengineshackfest.html" rel="alternate" type="text/html" title="That’s a Wrap on the 2026 Web Engines Hackfest" /><published>2026-06-25T00:00:00+00:00</published><updated>2026-06-25T00:00:00+00:00</updated><id>https://www.igalia.com/2026/Thats-a-Wrap-on-the-2026-Web-Engines-Hackfest</id><content type="html" xml:base="https://www.igalia.com/2026/webengineshackfest.html"><![CDATA[<p>Last week (June 15–17), Igalia hosted the <a href="https://webengineshackfest.org/">2026 edition of the Web Engines Hackfest</a> at <a href="https://webengineshackfest.org/#venue">Palexco in A Coruña</a>. More than 150 browser developers, standards tinkerers, low-level engineers, and interested folks from around the world joined us, in person and remotely, for three days of talks, breakout sessions, and in-depth conversations. Thanks to everyone who came — the event wouldn’t be the same without you!</p>

<p>On Monday, we had nine talks, all live-streamed on the <a href="https://www.youtube.com/@webhackfest">Hackfest’s YouTube channel</a>. Individual recordings will be posted soon; in the meantime, you can watch the <a href="https://youtube.com/live/EFp-A7T4c0U">full livestream</a>:</p>

<ul>
  <li><strong><a href="https://youtube.com/live/EFp-A7T4c0U?t=108">“Accessible Testing in WPT: From Dream to Reality”</a> by Valerie Young</strong>  — Cross-browser test suites have long helped browsers track interoperability, but until recently they couldn’t tell you whether a feature’s accessibility support was complete. This talk covers the tests you can now write in WPT and WebDriver, the challenges along the way, and the work still in progress.</li>
  <li><strong><a href="https://youtube.com/live/EFp-A7T4c0U?t=2084">“HarfBuzz at 20!”</a> by Behdad Esfahbod</strong>  — A look back at twenty years of the HarfBuzz text shaping engine, its current state, and its future, with significant focus on the Rust port, HarfRust. Behdad’s <a href="https://docs.google.com/presentation/d/1o9Exz1c-Lr-dJjA8dcBn_Vl_Y37cupmFzmclMjBE_Bc/view">slide deck</a> is well worth a read — and far too long to have presented in full.</li>
  <li><strong><a href="https://youtube.com/live/EFp-A7T4c0U?t=5800">“Iterable Streams”</a> by James Snell</strong>  — Node.js and Cloudflare Workers have been experimenting with an async-iterator-based stream API that’s faster than both Node.js streams and Web streams. A look at the approach, to prompt a conversation about how to move forward.</li>
  <li><strong><a href="https://youtube.com/live/EFp-A7T4c0U?t=8082">“Decoupling Extensions from Chrome: The Journey to a Modular Extensions Layer”</a> by Miyoung Shin &amp; Lorenzo Tilve</strong>  — The ongoing effort to decouple Chromium Extensions from the Chrome layer for a more modular, embeddable architecture, covering the motivation, migration strategy, lessons learned, and current progress, with a live demo.</li>
  <li><strong><a href="https://youtube.com/live/EFp-A7T4c0U?t=9676">“The EU Cyber Resilience Act: what is it, and how does it affect web browsers?”</a> by Aki Rose Braun &amp; Daniel Ari Ehrenberg Goldberg</strong>  — The EU Cyber Resilience Act applies to nearly all software in Europe, no matter where it’s built. Aki walks through the broad strokes of the regulation, and Dan digs into the specific obligations of browsers and what makes them special.</li>
  <li><strong><a href="https://youtube.com/live/EFp-A7T4c0U?t=18495">“Introduction to the RustNN ecosystem”</a> by Markus Tavenrath</strong>  — An overview of RustNN, a high-performance WebNN implementation, including its model exporters for PyTorch and ONNX and bindings for Python, JavaScript, and the browser.</li>
  <li><strong><a href="https://youtube.com/live/EFp-A7T4c0U?t=20523">“DOM Localization”</a> by Eemeli Aro</strong>  — A proposal for a set of core HTML attributes that would let developers bind DOM elements and fragments to localized messages, defined using Unicode MessageFormat, so users can experience the web in their native languages.</li>
  <li><strong><a href="https://youtube.com/live/EFp-A7T4c0U?t=24081">“How to ship a registry when nobody wants to run one”</a> by Aki Rose Braun &amp; Ethan Arrowood</strong>  — TC55 (formerly WinterCG) needed a runtime keys registry, but nobody wanted to operate the infrastructure. This talk explains how they solved that by publishing it as an Ecma Technical Report instead.</li>
  <li><strong><a href="https://youtube.com/live/EFp-A7T4c0U?t=25134">“npmx: a fast, modern browser for the npm registry”</a> by Daniel Roe &amp; Matias Leandro Capeletto</strong>  — A community-built alternative npm registry browser, with features for choosing modern packages, promoting JS standards adoption, and collaborating with communities like e18e and atproto.</li>
</ul>

<p>On Tuesday morning, we also ran a dedicated <a href="https://github.com/Igalia/webengineshackfest/issues/81">WPE WebKit track</a>, with sessions on building an embedded browser on Raspberry Pi with the new WPEPlatform API, refactoring composition with Skia, reducing GPU usage, profile-guided optimization, QA practices, and the WPEPlatform API for Android.</p>

<p>On Tuesday and Wednesday, we had more than twenty <a href="https://github.com/Igalia/webengineshackfest/issues?q=label%3A%22Breakout%20Session%22%20label%3A%222026%22">breakout sessions</a> on everything from memory safety in WebKit and the Web security model, to MathML Core, AsyncContext, Servo DevTools, FedCM, and Web Components. Standards bodies took the opportunity to meet face-to-face on site too, including a <a href="https://github.com/Igalia/webengineshackfest/issues/80">WHATWG meeting</a> and a CSS Working Group meeting. The full schedule is on the <a href="https://github.com/Igalia/webengineshackfest/wiki#scheduling">Hackfest wiki</a>.</p>

<p>The Web Engines Hackfest is an event that brings people together to discuss and work on different browsers and web standards. Our goal is to foster collaboration in benefit of the open web.</p>

<p>Many thanks to our outside sponsors, <a href="https://mullvad.net/en/browser">Mullvad Browser</a>, <a href="https://www.arm.com/">ARM</a>, and <a href="https://www.huawei.com/">Huawei</a>, for helping make this year’s Hackfest possible, and to everyone who attended in person or remotely for being a part of the growing Hackfest community. See you all next year!</p>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><category term="browsers" /><category term="javascript" /><category term="accessibility" /><category term="multimedia" /><summary type="html"><![CDATA[Last week (June 15–17), Igalia hosted the 2026 edition of the Web Engines Hackfest at Palexco in A Coruña. More than 150 browser developers, standards tinkerers, low-level engineers, and interested folks from around the world joined us, in person and remotely, for three days of talks, breakout sessions, and in-depth conversations. Thanks to everyone who came — the event wouldn’t be the same without you! On Monday, we had nine talks, all live-streamed on the Hackfest’s YouTube channel. Individual recordings will be posted soon; in the meantime, you can watch the full livestream: “Accessible Testing in WPT: From Dream to Reality” by Valerie Young  — Cross-browser test suites have long helped browsers track interoperability, but until recently they couldn’t tell you whether a feature’s accessibility support was complete. This talk covers the tests you can now write in WPT and WebDriver, the challenges along the way, and the work still in progress. “HarfBuzz at 20!” by Behdad Esfahbod  — A look back at twenty years of the HarfBuzz text shaping engine, its current state, and its future, with significant focus on the Rust port, HarfRust. Behdad’s slide deck is well worth a read — and far too long to have presented in full. “Iterable Streams” by James Snell  — Node.js and Cloudflare Workers have been experimenting with an async-iterator-based stream API that’s faster than both Node.js streams and Web streams. A look at the approach, to prompt a conversation about how to move forward. “Decoupling Extensions from Chrome: The Journey to a Modular Extensions Layer” by Miyoung Shin &amp; Lorenzo Tilve  — The ongoing effort to decouple Chromium Extensions from the Chrome layer for a more modular, embeddable architecture, covering the motivation, migration strategy, lessons learned, and current progress, with a live demo. “The EU Cyber Resilience Act: what is it, and how does it affect web browsers?” by Aki Rose Braun &amp; Daniel Ari Ehrenberg Goldberg  — The EU Cyber Resilience Act applies to nearly all software in Europe, no matter where it’s built. Aki walks through the broad strokes of the regulation, and Dan digs into the specific obligations of browsers and what makes them special. “Introduction to the RustNN ecosystem” by Markus Tavenrath  — An overview of RustNN, a high-performance WebNN implementation, including its model exporters for PyTorch and ONNX and bindings for Python, JavaScript, and the browser. “DOM Localization” by Eemeli Aro  — A proposal for a set of core HTML attributes that would let developers bind DOM elements and fragments to localized messages, defined using Unicode MessageFormat, so users can experience the web in their native languages. “How to ship a registry when nobody wants to run one” by Aki Rose Braun &amp; Ethan Arrowood  — TC55 (formerly WinterCG) needed a runtime keys registry, but nobody wanted to operate the infrastructure. This talk explains how they solved that by publishing it as an Ecma Technical Report instead. “npmx: a fast, modern browser for the npm registry” by Daniel Roe &amp; Matias Leandro Capeletto  — A community-built alternative npm registry browser, with features for choosing modern packages, promoting JS standards adoption, and collaborating with communities like e18e and atproto. On Tuesday morning, we also ran a dedicated WPE WebKit track, with sessions on building an embedded browser on Raspberry Pi with the new WPEPlatform API, refactoring composition with Skia, reducing GPU usage, profile-guided optimization, QA practices, and the WPEPlatform API for Android. On Tuesday and Wednesday, we had more than twenty breakout sessions on everything from memory safety in WebKit and the Web security model, to MathML Core, AsyncContext, Servo DevTools, FedCM, and Web Components. Standards bodies took the opportunity to meet face-to-face on site too, including a WHATWG meeting and a CSS Working Group meeting. The full schedule is on the Hackfest wiki. The Web Engines Hackfest is an event that brings people together to discuss and work on different browsers and web standards. Our goal is to foster collaboration in benefit of the open web. Many thanks to our outside sponsors, Mullvad Browser, ARM, and Huawei, for helping make this year’s Hackfest possible, and to everyone who attended in person or remotely for being a part of the growing Hackfest community. See you all next year!]]></summary></entry><entry><title type="html">Linux 7.1 Released</title><link href="https://www.igalia.com/2026/06/17/Linux-71-Released.html" rel="alternate" type="text/html" title="Linux 7.1 Released" /><published>2026-06-17T00:00:00+00:00</published><updated>2026-06-17T00:00:00+00:00</updated><id>https://www.igalia.com/2026/06/17/Linux-71-Released</id><content type="html" xml:base="https://www.igalia.com/2026/06/17/Linux-71-Released.html"><![CDATA[<h1 id="linux-71-released">Linux 7.1 Released</h1>

<p>Linux 7.1 has been <a href="https://lore.kernel.org/lkml/CAHk-=wi4BF4bMhZNZ1tqs+FFV4OuZRe3ZqdWB+LxRLmRweUzQw@mail.gmail.com/T/#u">tagged and released</a>, closing this development cycle with over 15,000 commits.</p>

<p>This second release in the 7.x cycle brings quite a few noteworthy things: a brand-new NTFS driver, proper battery metrics on MacBook laptops with the Apple SMC driver, and several improvements across the graphics and DRM stack. It also continues the ongoing cleanup of older and unmaintained drivers, dropping support for things like ISDN and ham radio. Notably, Linux 7.1 begins the process for retiring Intel 486 CPU support (“i486”) in the future. For more details and a full list of changes, check the corresponding <a href="https://kernelnewbies.org/Linux_7.1">KernelNewbies page</a>.</p>

<p>As usual, Igalia has been busy contributing fixes and improvements to different areas during this release. Below are some of our highlights from this cycle.</p>

<h2 id="igalia-changelog">Igalia Changelog</h2>

<h3 id="v3d-and-vc4-fixes-and-improvements">V3D and VC4 fixes and improvements</h3>

<p>The V3D and VC4 drivers saw several robustness and maintainability improvements this cycle. As part of the Raspberry Pi 5 upstreaming effort, we added the V3D GPU device-tree node for BCM2712, enabling V3D support on fully upstream kernels.</p>

<p>We also continued improving the V3D interface by migrating performance monitor tracking from IDR to XArray in both V3D and VC4. In parallel, a series of fixes addressed reference counting, scheduler integration, cache synchroniztion, and error handling issues in V3D’s compute intrastructure, improving the stability of CPU job execution paths.</p>

<p>On the power-management side, we refined Raspberry Pi firmware clock handling by moving clock rate management into prepare/unprepare callbacks. These changes reduce unnecessary power consumption for clock users and lay the groundwork for V3D Runtime PM support, which will land in the next kernel release.</p>

<h3 id="amdgpu-user-queue-cleanup">AMDGPU User Queue Cleanup</h3>

<p>On the AMD side, we continued our efforts to clean up the user queue submission code. This cycle, we focused on removing resource leaks in the wait and signal ioctls, consolidating exit paths to prevent deadlocks, and ensuring that userspace cannot trivially trigger kernel warnings. These changes improve the overall security and stability of the amdgpu driver when interacting with complex user-space workloads.</p>

<h3 id="auxccs-support-for-intel-xe-driver">AuxCCS Support for Intel Xe Driver</h3>

<p>We finalized Alderlake support for AuxCCS (Auxiliary Color Compression Support) in the Intel Xe driver. This includes adding support for frame buffer modifiers, ensuring proper invalidation of auxiliary tables, and quiescing memory traffic during cache invalidation. These changes reduce the memory bandwith consumed by UI composition and graphical rendering, improving power efficiency and overall performance on this platform.</p>

<h3 id="dma-fence-improvements-for-module-unload-scenarios">DMA-Fence improvements for module unload scenarios</h3>

<p>Building on the cross-system dma-fence work we did for the <a href="https://www.igalia.com/2025/10/07/Linux-617-Released.html">6.17 kernel release</a>, we helped upstream extend this protection to module unload scenarios. We’ve also fixed warnings related to <code class="language-plaintext highlighter-rouge">__rcu</code> annotations to keep the codebase clean and static-analysis friendly.</p>

<h3 id="debugging-infrastructure-improvements">Debugging Infrastructure improvements</h3>

<p>For developers relying on <code class="language-plaintext highlighter-rouge">pstore</code> and <code class="language-plaintext highlighter-rouge">ftrace</code>, Linux 7.1 brings important fixes. Previously, systems with KASLR enabled would cause offsets saved in debug sessions to be bogus when decoded. This has been fixed along with other <code class="language-plaintext highlighter-rouge">pstore</code> improvements, and an improved debugfs interface for the <code class="language-plaintext highlighter-rouge">reserve_mem</code> parameter. These changes should provide better visibility into memory reservation states and improve the overall state of these subsystems for debugging kernel crashes or hangs.</p>

<h3 id="another-round-of-general-fixes-and-cleanup">Another round of general fixes and cleanup</h3>

<p>Beyond the major subsystem updates, Igalia also helped with several “odd fixes” and general maintenance work to keep the kernel healthy.</p>

<p>In the <strong>filesystems</strong> area, we fixed a null pointer dereference in JFS during unmount and resolved an uninitialized value issue in the FUSE layer.</p>

<p>For <strong>Bluetooth</strong>, we reworked the reset path in the HCI core to ensure clean adapter teardown, preventing protocol issues caused by pending work.</p>

<p>On the <strong>peripherals</strong> side, we implemented proper URB tracking in the <code class="language-plaintext highlighter-rouge">libertas</code> Wi-Fi driver to prevent use-after-free issues, and added stricter validation checks for USBTMC endpoints.</p>

<p>We also investigated a data race in the <strong>Real Time Clock (RTC)</strong> subsystem reported by syzbot and detected by the Kernel Concurrency Sanitizer (KCSAN). The race was determined to be safe, and the code was annotated to prevent future false-positive reports.</p>

<p>Finally, we’ve improved documentation for <code class="language-plaintext highlighter-rouge">ttm_bo_swapout</code> and implemented the corresponding KUnit tests.</p>

<hr />
<h2 id="authored-76">Authored (76)</h2>
<h3 id="alberto-garcia">Alberto Garcia</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2b27ea5b644d7da9bc84f4539e53d1b31c601566">PM: hibernate: return -ENODATA if the snapshot image is not loaded</a></li>
</ul>

<h3 id="guilherme-g-piccoli">Guilherme G. Piccoli</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=80632e333b0bd3cf188cff4e7ff52114506f5612">pstore/ramoops: Remove useless memblock header</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b22462c79179f228327b98313b47369129114d6a">pstore/ramoops: Fix ECC parameter help text</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=421a41c485dde449cbf90ba610b805bd99e3ae78">pstore/ftrace: Keep ftrace module parameter and debugfs switch in sync</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f7f4a21c2a51710a06965cc9c1252821fc925544">memblock: Print out errors on reserve_mem parser</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0709682cdb4ac77e3f78ea9c10d7f74b41a12518">memblock: Add reserve_mem debugfs info</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=24b8f8dcb9a139a36cf48bfbe935e8dc1f33ed79">pstore/ftrace: Factor KASLR offset in the core kernel instruction addresses</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b0f6f4ac7d5d04fe2adcdd63ed1cd1ad505b8958">ASoC: amd: acp: Add DMI quirk for Valve Steam Deck OLED</a></li>
</ul>

<h3 id="heitor-alves-de-siqueira">Heitor Alves de Siqueira</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a57f35fc19add4dfe33703af575a2c19c2cef9c7">wifi: libertas: use USB anchors for tracking in-flight URBs</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7c5c2b661bdb78c1472b8833265c9ed1ee880039">wifi: libertas: don’t kill URBs in interrupt context</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=52f2ad3f7e5eb3b5908e1d685d4342519dc9cfcd">usb: usbtmc: check URB actual_length for interrupt-IN notifications</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=121d2f682ba912b1427cddca7cf84840f41cc620">usb: usbtmc: reject interrupt endpoints with small wMaxPacketSize</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=40b87657200cfae93e48904fd9c9c8fc3e192cae">Bluetooth: hci_core: Rework hci_dev_do_reset() to use hci_sync functions</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=525daaea459fc215f432de1b8debbd9144bf97b0">Bluetooth: hci_sync: Set HCI_CMD_DRAIN_WORKQUEUE during device close</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cdf88b35e06f1b385f7f6228060ae541d44fbb72">Bluetooth: hci_sync: Reset device counters in hci_dev_close_sync()</a></li>
</ul>

<h3 id="helen-koike">Helen Koike</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ca5848ae87d24886a7886f5a22278bd4045c15f8">jfs: hold LOG_LOCK on umount to avoid null-ptr-deref</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5f41161059fd0f1bbf18c90f3180e38cc45a14eb">debugobjects: Do not fill_pool() if pi_blocked_on</a></li>
</ul>

<h3 id="luis-henriques">Luis Henriques</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f595dda929e1b914f605de7cc3ff6a6888e3d66b">fuse: drop unnecessary argument from fuse_lookup_init()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5a6baf204610589f8a5b5a1cd69d1fe661d9d3cd">fuse: fix uninit-value in fuse_dentry_revalidate()</a></li>
</ul>

<h3 id="mauricio-faria-de-oliveira">Mauricio Faria de Oliveira</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b47bcab6ee92d5ca6ba55c06b9a503e2663e942f">rtc: add data_race() in rtc_dev_poll()</a></li>
</ul>

<h3 id="maíra-canal">Maíra Canal</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=68e28facbc8ab3e701e1814323d397a75b400865">drm/panel: ilitek-ili9882t: Select DRM_DISPLAY_DSC_HELPER</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0a5b0d095bcdb219348ed8ae1c97ee99fc4913b8">drm/v3d: Replace IDR with XArray for perfmon tracking</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b1cc4172cc60b1039235c9dfc08c3c1ffa4fb863">drm/vc4: Replace IDR with XArray for perfmon tracking</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8cf1bec37b27846ad3169744c9f1a89a06dcb3fa">drm/v3d: Handle error from drm_sched_entity_init()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7315728ab5388bf4956835b20497332b1d45fe98">drm/v3d: Remove dedicated fence_lock</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=80ebada3dbcc811f3f64fc65e49d87857fe9272b">arm64: dts: broadcom: bcm2712: Add V3D device node</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=672299736af6c398e867782708b7400957e62c76">clk: bcm: rpi: Manage clock rate in prepare/unprepare callbacks</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d797ecf3ffc5cc3e622bfee4cee6b17372c5bcc7">pmdomain: bcm: bcm2835-power: Replace open-coded polling with readl_poll_timeout_atomic()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=522567362b634015ca85b5460482ee0843feb105">clk: bcm: rpi: Mark VEC clock as CLK_IGNORE_UNUSED</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3780c41460a9ad6d5d4c09a416765c6cc285033b">drm/etnaviv: Fix armed job not being pushed to the DRM scheduler</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b0fe80c0b9250b35e2211bf3117e7aca814a21b0">drm/v3d: Fix use-after-free of CPU job query arrays on error path</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6eb6e5acafa46854d4363e6c34981289995f3ace">drm/v3d: Release indirect CSD GEM reference on CPU job free</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=abf888b03a9805a3bc37948a0df443553b1c0910">drm/v3d: Wait for pending L2T flush before cleaning caches</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ae7676952790f421c40918e2586a2c9f12a682b6">drm/v3d: Fix vaddr leak when indirect CSD has zeroed workgroups</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7f93fad5ea0affc9e1505dd0f7596c0fdb496213">drm/v3d: Skip CSD when it has zeroed workgroups</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6bf7e2affc6e62da7add393d7f352d4040f5bc27">drm/v3d: Fix global performance monitor reference counting</a></li>
</ul>

<h3 id="melissa-wen">Melissa Wen</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6bf7969a145e13a3390143038fe82c52025aeb93">drm/drm_atomic: duplicate colorop states if plane color pipeline in use</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=94ff735296d371045fce163451a3d65e44ac4729">drm/colorop: make lut(1/3)d_interpolation props correctly behave as mutable</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2e235e2a2784b12b735321e5b42240ca51c49b0f">drm/atomic: track individual colorop updates</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d79716401a954677a93c4dd51fec65beccb38296">drm/amd/display: use plane color_mgmt_changed to track colorop changes</a></li>
</ul>

<h3 id="thadeu-lima-de-souza-cascardo">Thadeu Lima de Souza Cascardo</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=acee19f998234c4aec88c5fab364780312ba17e9">drm/ttm: document that ttm_bo_swapout deals with pages</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d11ac9043435cf1ddf1abc59fa774eb6c0ca4e51">drm/ttm/tests: add a test to exercise ttm_bo_swapout</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6675af9c1a3251ff95ef1290f9317ba0e83ce99d">cgroup/dmem: remove region parameter from dmemcg_parse_limit</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4aa0deae1070690d08c1f47c489f8b5ce3f6ea6d">drm/vram: remove DRM_VRAM_MM_FILE_OPERATIONS from docs</a></li>
</ul>

<h3 id="tvrtko-ursulin">Tvrtko Ursulin</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7fe6cae2f7fad2b5166b0fc096618629f9e2ebcb">drm/xe/xelp: Fix Wa_18022495364</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=62918542b7bf08860a60ebbde7654486e0ac0776">dma-fence: Fix sparse warnings due __rcu annotations</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d5e53ff42fa53fcf9ce7e9b9fef6876ebd14378e">drm/amdgpu: Remove a few holes from struct amdgpu_ctx</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=90d5122115fb4513161e7a8413d28215c237295c">drm/amdgpu: Remove duplicate struct member</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fb1bf29acdd5283ec1d3f291b509a060d940cf1f">drm/amdgpu/userq: Use memdup_array_user in amdgpu_userq_wait_ioctl</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5eb2a72bac35e8eddc36d4a614b3fb976457bfbc">drm/amdgpu/userq: Use memdup_array_user in amdgpu_userq_signal_ioctl</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=68951e9c3e6bb22396bc42ef2359751c8315dd27">drm/amdgpu/userq: Fix reference leak in amdgpu_userq_wait_ioctl</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2c333ea579de6cc20ea7bc50e9595ef72863e65c">drm/amdgpu/userq: Do not allow userspace to trivially triger kernel warnings</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bea29bb0dd29012949cd44fdb122465a9fd5cf91">drm/amdgpu/userq: Consolidate wait ioctl exit path</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4ca06f6fb45da38e19e88b7dcf76b2a7e9d6a9e2">drm/amdgpu/userq: Use drm_gem_objects_lookup in amdgpu_userq_signal_ioctl</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2de9353e193fd62dfa65c45890dd2f9c53f12527">drm/amdgpu/userq: Use drm_gem_objects_lookup in amdgpu_userq_wait_ioctl</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3ccdad15ae81a65875e4fe961f4e9c80b6d15829">drm/amdgpu: Reject impossible entities early</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a95dfb0c78fa7d0d17c0131738097c53b4074d6c">drm/amdgpu: Remove redundant missing hw ip handling</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0b2a4569cd9fe56683be1aab9864032a8d267caa">drm/v3d: Use raw seqcount helpers instead of fighting with lockdep</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=266d4ba30d6a70c2574a302d49d54a1e4f595035">drm/v3d: Refcount v3d_stats</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=745cc3f92a4b43606119b81d1f8bb1d1f5116049">drm/v3d: Hold v3d_stats references in each job</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2f0e110735a4e59e71e44d04b4f70e58f06c61c9">drm/v3d: Attach per-fd reset counters to v3d_stats</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2bb026f3fbe8cb59ab70ec21b5cbd729b0c94bac">drm/xe: Rename XE_BO_FLAG_SCANOUT to XE_BO_FLAG_FORCE_WC</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=36052e56d5943bbd8244321c3b1445ba5db0f12b">drm/xe: Use write-combine mapping when populating DPT</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=88139af77d6acd74bf73f5e36f4bdc63f033f399">drm/xe/xelpg: Limit AuxCCS ring buffer programming to Alderlake</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=458b1e64e7c0594cca8515fae8996bc52619d2f6">drm/xe/xelp: Quiesce memory traffic before invalidating AuxCCS</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cd1a516234ebb049007ce20c6b6e76936b29bade">drm/xe/xelp: Wait for AuxCCS invalidation to complete</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fd4c1eea1cfe20efc470f01bfb1a04d272e8eb74">drm/xe: Move aux table invalidation to ring ops</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1d5945d74b4d4c8dcc884ad7f0ccbb377d777443">drm/xe/xelp: Add AuxCCS invalidation to the indirect context workarounds</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7c42193d9049ab7e3069e6e9ff94d8a37b774af9">drm/xe/display: Move remapped plane loop out of __xe_pin_fb_vma_dpt</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=11dbd2d14663450111a6104a6d9aec5267405c86">drm/xe/display: Change write_dpt_remapped_tiled function signature</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cce1c47726579f0974e12e03e8471053d29182da">drm/xe/display: Respect remapped plane alignment</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9110675732a3c2320ec172d17b2b3d78d250aed4">drm/xe/display: Add support for AuxCCS</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=737ec1e81a816731ba74b3f510441b1f4d5068f6">drm/xe/xelp: Expose AuxCCS frame buffer modifiers on Alderlake-P</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=78842c1e3b05c1d5b7b32a33ccbfd5fcccc5557d">drm/gem: Improve drm_gem_objects_lookup() kerneldoc</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7daff375fa4602934b3b385f83e7ad95d97d86d3">dma-fence: Silence sparse warning in dma_fence_describe</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0df99689eb790bcad3ad82b38fa4ce1cbf3cffa3">drm/xe/xelp: Fix Wa_18022495364</a></li>
</ul>

<h2 id="co-developed-4">Co-developed (4)</h2>
<h3 id="maíra-canal-1">Maíra Canal</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0b2a4569cd9fe56683be1aab9864032a8d267caa">drm/v3d: Use raw seqcount helpers instead of fighting with lockdep</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=266d4ba30d6a70c2574a302d49d54a1e4f595035">drm/v3d: Refcount v3d_stats</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=745cc3f92a4b43606119b81d1f8bb1d1f5116049">drm/v3d: Hold v3d_stats references in each job</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2f0e110735a4e59e71e44d04b4f70e58f06c61c9">drm/v3d: Attach per-fd reset counters to v3d_stats</a></li>
</ul>

<h2 id="reviewed-45">Reviewed (45)</h2>
<h3 id="iago-toral-quiroga">Iago Toral Quiroga</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0a5b0d095bcdb219348ed8ae1c97ee99fc4913b8">drm/v3d: Replace IDR with XArray for perfmon tracking</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b1cc4172cc60b1039235c9dfc08c3c1ffa4fb863">drm/vc4: Replace IDR with XArray for perfmon tracking</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8cf1bec37b27846ad3169744c9f1a89a06dcb3fa">drm/v3d: Handle error from drm_sched_entity_init()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0b2a4569cd9fe56683be1aab9864032a8d267caa">drm/v3d: Use raw seqcount helpers instead of fighting with lockdep</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=266d4ba30d6a70c2574a302d49d54a1e4f595035">drm/v3d: Refcount v3d_stats</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=745cc3f92a4b43606119b81d1f8bb1d1f5116049">drm/v3d: Hold v3d_stats references in each job</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2f0e110735a4e59e71e44d04b4f70e58f06c61c9">drm/v3d: Attach per-fd reset counters to v3d_stats</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7315728ab5388bf4956835b20497332b1d45fe98">drm/v3d: Remove dedicated fence_lock</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b0fe80c0b9250b35e2211bf3117e7aca814a21b0">drm/v3d: Fix use-after-free of CPU job query arrays on error path</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6eb6e5acafa46854d4363e6c34981289995f3ace">drm/v3d: Release indirect CSD GEM reference on CPU job free</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=abf888b03a9805a3bc37948a0df443553b1c0910">drm/v3d: Wait for pending L2T flush before cleaning caches</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ae7676952790f421c40918e2586a2c9f12a682b6">drm/v3d: Fix vaddr leak when indirect CSD has zeroed workgroups</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7f93fad5ea0affc9e1505dd0f7596c0fdb496213">drm/v3d: Skip CSD when it has zeroed workgroups</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6bf7e2affc6e62da7add393d7f352d4040f5bc27">drm/v3d: Fix global performance monitor reference counting</a></li>
</ul>

<h3 id="maíra-canal-2">Maíra Canal</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5491f668910ed0b282beb10f3f6b2e4d3988a1a8">drm/vc4: Switch private_obj initialization to atomic_create_state</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0ef1dcf4c16bb6d90e8fbf7b18f3d76b79fcde9d">drm/vc4: hdmi: replace use of system_wq with system_percpu_wq</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ad595a8aeeabfbfcc0026b9892a8155bc0763416">drm/vc4: Test for imported buffers with drm_gem_is_imported()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3590a52f0d0903e600dd01e2cf30820c404beca4">drm/atomic: Remove state argument to drm_atomic_private_obj_init</a></li>
</ul>

<h3 id="melissa-wen-1">Melissa Wen</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=43175f6164d32cb96362d16e357689f74298145c">drm/amd/display: Use mpc.preblend flag to indicate 3D LUT</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=196a6aa727f1f15eb54dda5e60a41543ea9397ee">drm/amd/display: Enable DEGAMMA and reject COLOR_PIPELINE+DEGAMMA_LUT</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ec5708d6e547f7efe2f009073bfa98dbc4c5c2ac">drm/amdgpu: Fix kernel-doc comments for some LUT properties</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d8f9f42effd767ffa7bbcd7e05fbd6b20737e468">drm/amd/display: Fix gamma 2.2 colorop TFs</a></li>
</ul>

<h3 id="rodrigo-siqueira">Rodrigo Siqueira</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a1d3efc329b45318721a4b1e1f893322ba82c876">drm/amd/display: Use dce_audio_create for DCE 6</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ecdf982ccc680deea59f4577c9a4947a5182e574">drm/amd/display: Delete unused dce_clk_mgr.c</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3a3aaed8f04bc1869fdcc1b769b3b1172a5f4e2c">drm/amd/display: Remove unused dce60_clk_mgr register definitions</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d31e61604820b700d51d5b0a285363be0d95eee8">drm/amd/display: Handle DCE 6 in dce_clk_mgr.c</a></li>
</ul>

<h3 id="tvrtko-ursulin-1">Tvrtko Ursulin</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0a5b0d095bcdb219348ed8ae1c97ee99fc4913b8">drm/v3d: Replace IDR with XArray for perfmon tracking</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b1cc4172cc60b1039235c9dfc08c3c1ffa4fb863">drm/vc4: Replace IDR with XArray for perfmon tracking</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2bcbc706dfa02ae50118173a6f6d8a12e735480c">dma-buf: add dma_fence_was_initialized function v2</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=dbce431756f85ec76a189312afdae2dee14fb0de">drm/gem: Make drm_gem_objects_lookup() self-cleaning on failure v6</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f4cc3ab824d6772a48ca9d9c74ac623b3309985d">dma-buf: protected fence ops by RCU v8</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=541c8f2468b933acc5d129e84bd264923675a66e">dma-buf: detach fence ops on signal v3</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3e5067931b5df667f5350fafe4410554e228e53e">dma-buf: abstract fence locking v2</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3695d754ffbb176afe3cb47b705b72bf85ed63f0">dma-buf/selftests: test RCU ops and inline lock v2</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ed0d6a0003fdcf8c93ff1544cf104a5456bf520e">dma-buf: use inline lock for the stub fence v2</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5943243914b9fed8e26edcb9d45421721a5e3576">dma-buf: use inline lock for the dma-fence-array</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a408c0ca0c411ca1ead995bdae3112a806c87556">dma-buf: use inline lock for the dma-fence-chain</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5ea5b6ff0d63aef1dc3fb25445acea183f61a934">drm/tests: Mark slow tests as slow</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=945d0fec02f6c22b182d51d8da39aa1b0df9f622">drm/i915: Test for imported buffers with drm_gem_is_imported()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d11ac9043435cf1ddf1abc59fa774eb6c0ca4e51">drm/ttm/tests: add a test to exercise ttm_bo_swapout</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=087be0cd54f5e27a893222d9a4d4fc970bf31ccd">drm/amdgpu/userq: Use kvfree instead of kfree in amdgpu_userq_wait_ioctl</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e9405ce75e8e1c2a2281659bf395f8b18b94d786">drm/amdgpu/userq: Use kvfree instead of kfree in amdgpu_userq_signal_ioctl</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7a14a4e9b3fda05b907d0445a3be9e7c0e887f4e">drm/amdgpu/userq: fix dma_fence refcount underflow in userq path</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a1c1c77d30cd497ad6dd6062f8a5c06b38a45132">drm/amdgpu: Move amdgpu_vm_is_bo_always_valid() before first use</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d21ad938398bca695a511307de38a65889e3b354">drm/i915/gem: Fix phys BO pread/pwrite with offset</a></li>
</ul>

<h2 id="tested-4">Tested (4)</h2>
<h3 id="guilherme-g-piccoli-1">Guilherme G. Piccoli</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4ef6255cc56343bc90d82420b49dab1b11dee414">pstore: fix ftrace dump, when ECC is enabled</a></li>
</ul>

<h3 id="melissa-wen-2">Melissa Wen</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b0f6f4ac7d5d04fe2adcdd63ed1cd1ad505b8958">ASoC: amd: acp: Add DMI quirk for Valve Steam Deck OLED</a></li>
</ul>

<h3 id="umang-jain">Umang Jain</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6042c91df60e825625bc7d5c5c3b5a87b91d5805">ASoC: SOF: amd: fix for ipc flags check</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=25b17c06040fae60518b4ff9c46f2bb12285d538">ASoC: SOF: amd: set ipc flags to zero</a></li>
</ul>

<h2 id="reported-1">Reported (1)</h2>
<h3 id="tvrtko-ursulin-2">Tvrtko Ursulin</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=acee19f998234c4aec88c5fab364780312ba17e9">drm/ttm: document that ttm_bo_swapout deals with pages</a></li>
</ul>

<h2 id="maintainer-sob-7">Maintainer SoB (7)</h2>
<h3 id="christian-gmeiner">Christian Gmeiner</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3780c41460a9ad6d5d4c09a416765c6cc285033b">drm/etnaviv: Fix armed job not being pushed to the DRM scheduler</a></li>
</ul>

<h3 id="maíra-canal-3">Maíra Canal</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0ef1dcf4c16bb6d90e8fbf7b18f3d76b79fcde9d">drm/vc4: hdmi: replace use of system_wq with system_percpu_wq</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e597a809a2b97e927060ba182f58eb3e6101bc70">drm/vc4: platform_get_irq_byname() returns an int</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fb44d589bf3148e13452185a6e772a7efbf2d684">drm/v3d: Reject empty multisync extension to prevent infinite loop</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5d563a5da8717629ae72f9eadf1e0e340bd1658b">drm/vc4: fix krealloc() memory leak</a></li>
</ul>

<h3 id="melissa-wen-3">Melissa Wen</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e480228cf65583040c894bb9cc02e1d5b328cee0">drm/colorop: Remove read-only comments from interpolation fields</a></li>
</ul>

<h3 id="tvrtko-ursulin-3">Tvrtko Ursulin</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2914709c914101eb704e01bed2351070d4161ccf">Revert “drm/i915/backlight: Remove try_vesa_interface”</a></li>
</ul>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><category term="linux" /><category term="kernel" /><category term="graphics" /><category term="multimedia" /><category term="automotive" /><category term="embedded-linux" /><category term="mobile-devices" /><category term="silicon" /><summary type="html"><![CDATA[Linux 7.1 Released Linux 7.1 has been tagged and released, closing this development cycle with over 15,000 commits. This second release in the 7.x cycle brings quite a few noteworthy things: a brand-new NTFS driver, proper battery metrics on MacBook laptops with the Apple SMC driver, and several improvements across the graphics and DRM stack. It also continues the ongoing cleanup of older and unmaintained drivers, dropping support for things like ISDN and ham radio. Notably, Linux 7.1 begins the process for retiring Intel 486 CPU support (“i486”) in the future. For more details and a full list of changes, check the corresponding KernelNewbies page. As usual, Igalia has been busy contributing fixes and improvements to different areas during this release. Below are some of our highlights from this cycle. Igalia Changelog V3D and VC4 fixes and improvements The V3D and VC4 drivers saw several robustness and maintainability improvements this cycle. As part of the Raspberry Pi 5 upstreaming effort, we added the V3D GPU device-tree node for BCM2712, enabling V3D support on fully upstream kernels. We also continued improving the V3D interface by migrating performance monitor tracking from IDR to XArray in both V3D and VC4. In parallel, a series of fixes addressed reference counting, scheduler integration, cache synchroniztion, and error handling issues in V3D’s compute intrastructure, improving the stability of CPU job execution paths. On the power-management side, we refined Raspberry Pi firmware clock handling by moving clock rate management into prepare/unprepare callbacks. These changes reduce unnecessary power consumption for clock users and lay the groundwork for V3D Runtime PM support, which will land in the next kernel release. AMDGPU User Queue Cleanup On the AMD side, we continued our efforts to clean up the user queue submission code. This cycle, we focused on removing resource leaks in the wait and signal ioctls, consolidating exit paths to prevent deadlocks, and ensuring that userspace cannot trivially trigger kernel warnings. These changes improve the overall security and stability of the amdgpu driver when interacting with complex user-space workloads. AuxCCS Support for Intel Xe Driver We finalized Alderlake support for AuxCCS (Auxiliary Color Compression Support) in the Intel Xe driver. This includes adding support for frame buffer modifiers, ensuring proper invalidation of auxiliary tables, and quiescing memory traffic during cache invalidation. These changes reduce the memory bandwith consumed by UI composition and graphical rendering, improving power efficiency and overall performance on this platform. DMA-Fence improvements for module unload scenarios Building on the cross-system dma-fence work we did for the 6.17 kernel release, we helped upstream extend this protection to module unload scenarios. We’ve also fixed warnings related to __rcu annotations to keep the codebase clean and static-analysis friendly. Debugging Infrastructure improvements For developers relying on pstore and ftrace, Linux 7.1 brings important fixes. Previously, systems with KASLR enabled would cause offsets saved in debug sessions to be bogus when decoded. This has been fixed along with other pstore improvements, and an improved debugfs interface for the reserve_mem parameter. These changes should provide better visibility into memory reservation states and improve the overall state of these subsystems for debugging kernel crashes or hangs. Another round of general fixes and cleanup Beyond the major subsystem updates, Igalia also helped with several “odd fixes” and general maintenance work to keep the kernel healthy. In the filesystems area, we fixed a null pointer dereference in JFS during unmount and resolved an uninitialized value issue in the FUSE layer. For Bluetooth, we reworked the reset path in the HCI core to ensure clean adapter teardown, preventing protocol issues caused by pending work. On the peripherals side, we implemented proper URB tracking in the libertas Wi-Fi driver to prevent use-after-free issues, and added stricter validation checks for USBTMC endpoints. We also investigated a data race in the Real Time Clock (RTC) subsystem reported by syzbot and detected by the Kernel Concurrency Sanitizer (KCSAN). The race was determined to be safe, and the code was annotated to prevent future false-positive reports. Finally, we’ve improved documentation for ttm_bo_swapout and implemented the corresponding KUnit tests. Authored (76) Alberto Garcia PM: hibernate: return -ENODATA if the snapshot image is not loaded Guilherme G. Piccoli pstore/ramoops: Remove useless memblock header pstore/ramoops: Fix ECC parameter help text pstore/ftrace: Keep ftrace module parameter and debugfs switch in sync memblock: Print out errors on reserve_mem parser memblock: Add reserve_mem debugfs info pstore/ftrace: Factor KASLR offset in the core kernel instruction addresses ASoC: amd: acp: Add DMI quirk for Valve Steam Deck OLED Heitor Alves de Siqueira wifi: libertas: use USB anchors for tracking in-flight URBs wifi: libertas: don’t kill URBs in interrupt context usb: usbtmc: check URB actual_length for interrupt-IN notifications usb: usbtmc: reject interrupt endpoints with small wMaxPacketSize Bluetooth: hci_core: Rework hci_dev_do_reset() to use hci_sync functions Bluetooth: hci_sync: Set HCI_CMD_DRAIN_WORKQUEUE during device close Bluetooth: hci_sync: Reset device counters in hci_dev_close_sync() Helen Koike jfs: hold LOG_LOCK on umount to avoid null-ptr-deref debugobjects: Do not fill_pool() if pi_blocked_on Luis Henriques fuse: drop unnecessary argument from fuse_lookup_init() fuse: fix uninit-value in fuse_dentry_revalidate() Mauricio Faria de Oliveira rtc: add data_race() in rtc_dev_poll() Maíra Canal drm/panel: ilitek-ili9882t: Select DRM_DISPLAY_DSC_HELPER drm/v3d: Replace IDR with XArray for perfmon tracking drm/vc4: Replace IDR with XArray for perfmon tracking drm/v3d: Handle error from drm_sched_entity_init() drm/v3d: Remove dedicated fence_lock arm64: dts: broadcom: bcm2712: Add V3D device node clk: bcm: rpi: Manage clock rate in prepare/unprepare callbacks pmdomain: bcm: bcm2835-power: Replace open-coded polling with readl_poll_timeout_atomic() clk: bcm: rpi: Mark VEC clock as CLK_IGNORE_UNUSED drm/etnaviv: Fix armed job not being pushed to the DRM scheduler drm/v3d: Fix use-after-free of CPU job query arrays on error path drm/v3d: Release indirect CSD GEM reference on CPU job free drm/v3d: Wait for pending L2T flush before cleaning caches drm/v3d: Fix vaddr leak when indirect CSD has zeroed workgroups drm/v3d: Skip CSD when it has zeroed workgroups drm/v3d: Fix global performance monitor reference counting Melissa Wen drm/drm_atomic: duplicate colorop states if plane color pipeline in use drm/colorop: make lut(1/3)d_interpolation props correctly behave as mutable drm/atomic: track individual colorop updates drm/amd/display: use plane color_mgmt_changed to track colorop changes Thadeu Lima de Souza Cascardo drm/ttm: document that ttm_bo_swapout deals with pages drm/ttm/tests: add a test to exercise ttm_bo_swapout cgroup/dmem: remove region parameter from dmemcg_parse_limit drm/vram: remove DRM_VRAM_MM_FILE_OPERATIONS from docs Tvrtko Ursulin drm/xe/xelp: Fix Wa_18022495364 dma-fence: Fix sparse warnings due __rcu annotations drm/amdgpu: Remove a few holes from struct amdgpu_ctx drm/amdgpu: Remove duplicate struct member drm/amdgpu/userq: Use memdup_array_user in amdgpu_userq_wait_ioctl drm/amdgpu/userq: Use memdup_array_user in amdgpu_userq_signal_ioctl drm/amdgpu/userq: Fix reference leak in amdgpu_userq_wait_ioctl drm/amdgpu/userq: Do not allow userspace to trivially triger kernel warnings drm/amdgpu/userq: Consolidate wait ioctl exit path drm/amdgpu/userq: Use drm_gem_objects_lookup in amdgpu_userq_signal_ioctl drm/amdgpu/userq: Use drm_gem_objects_lookup in amdgpu_userq_wait_ioctl drm/amdgpu: Reject impossible entities early drm/amdgpu: Remove redundant missing hw ip handling drm/v3d: Use raw seqcount helpers instead of fighting with lockdep drm/v3d: Refcount v3d_stats drm/v3d: Hold v3d_stats references in each job drm/v3d: Attach per-fd reset counters to v3d_stats drm/xe: Rename XE_BO_FLAG_SCANOUT to XE_BO_FLAG_FORCE_WC drm/xe: Use write-combine mapping when populating DPT drm/xe/xelpg: Limit AuxCCS ring buffer programming to Alderlake drm/xe/xelp: Quiesce memory traffic before invalidating AuxCCS drm/xe/xelp: Wait for AuxCCS invalidation to complete drm/xe: Move aux table invalidation to ring ops drm/xe/xelp: Add AuxCCS invalidation to the indirect context workarounds drm/xe/display: Move remapped plane loop out of __xe_pin_fb_vma_dpt drm/xe/display: Change write_dpt_remapped_tiled function signature drm/xe/display: Respect remapped plane alignment drm/xe/display: Add support for AuxCCS drm/xe/xelp: Expose AuxCCS frame buffer modifiers on Alderlake-P drm/gem: Improve drm_gem_objects_lookup() kerneldoc dma-fence: Silence sparse warning in dma_fence_describe drm/xe/xelp: Fix Wa_18022495364 Co-developed (4) Maíra Canal drm/v3d: Use raw seqcount helpers instead of fighting with lockdep drm/v3d: Refcount v3d_stats drm/v3d: Hold v3d_stats references in each job drm/v3d: Attach per-fd reset counters to v3d_stats Reviewed (45) Iago Toral Quiroga drm/v3d: Replace IDR with XArray for perfmon tracking drm/vc4: Replace IDR with XArray for perfmon tracking drm/v3d: Handle error from drm_sched_entity_init() drm/v3d: Use raw seqcount helpers instead of fighting with lockdep drm/v3d: Refcount v3d_stats drm/v3d: Hold v3d_stats references in each job drm/v3d: Attach per-fd reset counters to v3d_stats drm/v3d: Remove dedicated fence_lock drm/v3d: Fix use-after-free of CPU job query arrays on error path drm/v3d: Release indirect CSD GEM reference on CPU job free drm/v3d: Wait for pending L2T flush before cleaning caches drm/v3d: Fix vaddr leak when indirect CSD has zeroed workgroups drm/v3d: Skip CSD when it has zeroed workgroups drm/v3d: Fix global performance monitor reference counting Maíra Canal drm/vc4: Switch private_obj initialization to atomic_create_state drm/vc4: hdmi: replace use of system_wq with system_percpu_wq drm/vc4: Test for imported buffers with drm_gem_is_imported() drm/atomic: Remove state argument to drm_atomic_private_obj_init Melissa Wen drm/amd/display: Use mpc.preblend flag to indicate 3D LUT drm/amd/display: Enable DEGAMMA and reject COLOR_PIPELINE+DEGAMMA_LUT drm/amdgpu: Fix kernel-doc comments for some LUT properties drm/amd/display: Fix gamma 2.2 colorop TFs Rodrigo Siqueira drm/amd/display: Use dce_audio_create for DCE 6 drm/amd/display: Delete unused dce_clk_mgr.c drm/amd/display: Remove unused dce60_clk_mgr register definitions drm/amd/display: Handle DCE 6 in dce_clk_mgr.c Tvrtko Ursulin drm/v3d: Replace IDR with XArray for perfmon tracking drm/vc4: Replace IDR with XArray for perfmon tracking dma-buf: add dma_fence_was_initialized function v2 drm/gem: Make drm_gem_objects_lookup() self-cleaning on failure v6 dma-buf: protected fence ops by RCU v8 dma-buf: detach fence ops on signal v3 dma-buf: abstract fence locking v2 dma-buf/selftests: test RCU ops and inline lock v2 dma-buf: use inline lock for the stub fence v2 dma-buf: use inline lock for the dma-fence-array dma-buf: use inline lock for the dma-fence-chain drm/tests: Mark slow tests as slow drm/i915: Test for imported buffers with drm_gem_is_imported() drm/ttm/tests: add a test to exercise ttm_bo_swapout drm/amdgpu/userq: Use kvfree instead of kfree in amdgpu_userq_wait_ioctl drm/amdgpu/userq: Use kvfree instead of kfree in amdgpu_userq_signal_ioctl drm/amdgpu/userq: fix dma_fence refcount underflow in userq path drm/amdgpu: Move amdgpu_vm_is_bo_always_valid() before first use drm/i915/gem: Fix phys BO pread/pwrite with offset Tested (4) Guilherme G. Piccoli pstore: fix ftrace dump, when ECC is enabled Melissa Wen ASoC: amd: acp: Add DMI quirk for Valve Steam Deck OLED Umang Jain ASoC: SOF: amd: fix for ipc flags check ASoC: SOF: amd: set ipc flags to zero Reported (1) Tvrtko Ursulin drm/ttm: document that ttm_bo_swapout deals with pages Maintainer SoB (7) Christian Gmeiner drm/etnaviv: Fix armed job not being pushed to the DRM scheduler Maíra Canal drm/vc4: hdmi: replace use of system_wq with system_percpu_wq drm/vc4: platform_get_irq_byname() returns an int drm/v3d: Reject empty multisync extension to prevent infinite loop drm/vc4: fix krealloc() memory leak Melissa Wen drm/colorop: Remove read-only comments from interpolation fields Tvrtko Ursulin Revert “drm/i915/backlight: Remove try_vesa_interface”]]></summary></entry><entry><title type="html">Igalia at Open Source Summit North America 2026</title><link href="https://www.igalia.com/2026/05/14/Igalia-at-Open-Source-Summit-North-America-2026.html" rel="alternate" type="text/html" title="Igalia at Open Source Summit North America 2026" /><published>2026-05-14T00:00:00+00:00</published><updated>2026-05-14T00:00:00+00:00</updated><id>https://www.igalia.com/2026/05/14/Igalia-at-Open-Source-Summit-North-America-2026</id><content type="html" xml:base="https://www.igalia.com/2026/05/14/Igalia-at-Open-Source-Summit-North-America-2026.html"><![CDATA[<p>Next week, <a href="https://events.linuxfoundation.org/open-source-summit-north-america/">Open Source Summit North America 2026</a> takes place in Minneapolis, MN, on May 18–20, with the Embedded Linux Conference running alongside it.</p>

<p>Organized by the Linux Foundation, OSS NA is a vendor-neutral gathering that pulls together maintainers, developers, and community leaders from across the open source ecosystem. It also acts as an umbrella for a number of co-located events — including cdCon, the Zephyr Project Developer Summit, and the PX4 Developer Summit — with tracks spanning Linux, embedded systems, cloud, AI and data, safety-critical software, and digital trust.</p>

<p><a href="https://www.igalia.com/team/msanchez">Mario Sánchez Prada</a>, from Igalia’s WebKit team, will give a talk titled <a href="https://osselcna2026.sched.com/event/2JQqg/">“Engineering Quality in a Fast-Moving Open Source Project: WPE WebKit”</a> on Monday, May 18 at 3:35pm in Room 208C+D. Using WPE WebKit (one of the most prominent projects we maintain) as a case study, he’ll walk through the CI and QA infrastructure, testing strategies, and day-to-day processes that keep upstream development moving while still serving the needs of downstream deployments. He’ll also make the case for treating quality as something you build in continuously, rather than something bolted on at the end.</p>

<p>If you’ll be in Minneapolis, we hope to see you there!</p>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><category term="browsers" /><category term="webkit" /><category term="silicon" /><category term="open-source" /><category term="embedded-linux" /><summary type="html"><![CDATA[Next week, Open Source Summit North America 2026 takes place in Minneapolis, MN, on May 18–20, with the Embedded Linux Conference running alongside it. Organized by the Linux Foundation, OSS NA is a vendor-neutral gathering that pulls together maintainers, developers, and community leaders from across the open source ecosystem. It also acts as an umbrella for a number of co-located events — including cdCon, the Zephyr Project Developer Summit, and the PX4 Developer Summit — with tracks spanning Linux, embedded systems, cloud, AI and data, safety-critical software, and digital trust. Mario Sánchez Prada, from Igalia’s WebKit team, will give a talk titled “Engineering Quality in a Fast-Moving Open Source Project: WPE WebKit” on Monday, May 18 at 3:35pm in Room 208C+D. Using WPE WebKit (one of the most prominent projects we maintain) as a case study, he’ll walk through the CI and QA infrastructure, testing strategies, and day-to-day processes that keep upstream development moving while still serving the needs of downstream deployments. He’ll also make the case for treating quality as something you build in continuously, rather than something bolted on at the end. If you’ll be in Minneapolis, we hope to see you there!]]></summary></entry><entry><title type="html">Igalia at BlinkOn 21</title><link href="https://www.igalia.com/2026/04/16/Igalia-at-BlinkOn-21.html" rel="alternate" type="text/html" title="Igalia at BlinkOn 21" /><published>2026-04-16T00:00:00+00:00</published><updated>2026-04-16T00:00:00+00:00</updated><id>https://www.igalia.com/2026/04/16/Igalia-at-BlinkOn-21</id><content type="html" xml:base="https://www.igalia.com/2026/04/16/Igalia-at-BlinkOn-21.html"><![CDATA[<p><a href="https://www.chromium.org/events/blinkon-21/">BlinkOn</a> is the annual Chromium contributor summit. BlinkOn 21 runs April 20–21 this year, and for the first time ever, it will be hosted by Microsoft in Redmond, WA, instead of by Google in Silicon Valley.  We’re proud to be long-time and leading contributors to Chromium’s codebase, so members of our <a href="https://www.igalia.com/technology/browsers">Chromium and Web Platform</a> teams will be at the summit, in person and remotely.  Several are presenting, including:</p>

<ul>
  <li><strong>“Container Timing 2026 update”</strong> by <a href="https://igalia.com/team/dape">José Dapena</a> — where the Container Timing API stands now and what’s ahead.</li>
  <li><strong>“History of the Web”</strong> (roundtable panel) — co-hosted by <a href="https://igalia.com/team/bkardell">Brian Kardell</a> and Patrick Brosset, with Mike Champion, Adrian Bateman, and Greg Whitworth.</li>
  <li><strong>“Syncable a11y preferences in ChromeOS”</strong> by <a href="https://www.igalia.com/team/agomes">Antonio Gomes</a> — a look at ongoing improvements to the state of syncing accessibility preferences across devices.</li>
  <li><strong>“Bringing CTAP 2.2 hmac-secret-mc Support to Chromium”</strong> by <a href="https://igalia.com/team/blee">Byungwoo Lee</a> — adding the <code class="language-plaintext highlighter-rouge">hmac-secret-mc</code> extension from CTAP 2.2 to improve passkey credential handling in Chromium.</li>
  <li><strong>“Progress of the tvOS port”</strong> by <a href="https://igalia.com/team/gkim">Gyuyoung Kim</a> — a status update on Chromium for tvOS.</li>
  <li><strong>“Progress of Extensions migration”</strong> by <a href="https://igalia.com/team/mshin">Miyoung Shin</a> — where things stand in the move to modern extension APIs.</li>
  <li><strong>“Mime Types Handler Liberation: Giving Extensions the Keys to the PDF Kingdom”</strong> by <a href="https://igalia.com/team/msisov">Maksim Sisov</a> — making extensions first-class handlers for PDFs, rather than leaving it to the browser.</li>
</ul>

<p>Talks will be recorded and published on the <a href="https://www.youtube.com/blinkontalks">official BlinkOn YouTube channel</a> after the event concludes.</p>

<p>We always look forward to talking with fellow Chromium contributors, and we hope to see you there!</p>

<p><br />
<em>Updated 20 April 2026 to add a talk that was accepted at the last minute.</em></p>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><category term="browsers" /><category term="chromium" /><category term="open-source" /><summary type="html"><![CDATA[BlinkOn is the annual Chromium contributor summit. BlinkOn 21 runs April 20–21 this year, and for the first time ever, it will be hosted by Microsoft in Redmond, WA, instead of by Google in Silicon Valley. We’re proud to be long-time and leading contributors to Chromium’s codebase, so members of our Chromium and Web Platform teams will be at the summit, in person and remotely. Several are presenting, including: “Container Timing 2026 update” by José Dapena — where the Container Timing API stands now and what’s ahead. “History of the Web” (roundtable panel) — co-hosted by Brian Kardell and Patrick Brosset, with Mike Champion, Adrian Bateman, and Greg Whitworth. “Syncable a11y preferences in ChromeOS” by Antonio Gomes — a look at ongoing improvements to the state of syncing accessibility preferences across devices. “Bringing CTAP 2.2 hmac-secret-mc Support to Chromium” by Byungwoo Lee — adding the hmac-secret-mc extension from CTAP 2.2 to improve passkey credential handling in Chromium. “Progress of the tvOS port” by Gyuyoung Kim — a status update on Chromium for tvOS. “Progress of Extensions migration” by Miyoung Shin — where things stand in the move to modern extension APIs. “Mime Types Handler Liberation: Giving Extensions the Keys to the PDF Kingdom” by Maksim Sisov — making extensions first-class handlers for PDFs, rather than leaving it to the browser. Talks will be recorded and published on the official BlinkOn YouTube channel after the event concludes. We always look forward to talking with fellow Chromium contributors, and we hope to see you there! Updated 20 April 2026 to add a talk that was accepted at the last minute.]]></summary></entry><entry><title type="html">Linux 7.0 Released</title><link href="https://www.igalia.com/2026/04/15/Linux-70-Released.html" rel="alternate" type="text/html" title="Linux 7.0 Released" /><published>2026-04-15T00:00:00+00:00</published><updated>2026-04-15T00:00:00+00:00</updated><id>https://www.igalia.com/2026/04/15/Linux-70-Released</id><content type="html" xml:base="https://www.igalia.com/2026/04/15/Linux-70-Released.html"><![CDATA[<h1 id="linux-70-released">Linux 7.0 Released</h1>

<p>The new kernel version <a href="https://lkml.org/lkml/2026/4/12/604">is out</a>, this time with an increased major number. As usual, despite the perceived importance of the version number, this is just one release more. That means no spectacular announcements; just consistent work, more features, more fixes, better support.</p>

<p>A couple of non-technical changes stand out in this release: Rust is <a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9fa7153c31a3">no longer considered experimental</a> in the kernel, and there is now an <a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a66437c27979577fe1feffba502b9eadff13af7d">official policy</a> on tool-generated content. The kernel keeps evolving and this will surely pave the way for future development in the coming years.</p>

<p>For a detailed list of changes, you can check the <a href="https://kernelnewbies.org/Linux_7.0">KernelNewbies ChangeLog</a>.</p>

<p>At Igalia, the Linux kernel is one of ever-present work areas and interests and we keep contributing to it on many fronts. Here’s our list of contributions and patches for this release.</p>

<h2 id="igalia-changelog">Igalia changelog</h2>

<h3 id="direct-rendering-manager-improvements">Direct Rendering Manager improvements</h3>

<p>Our work on the DRM (Direct Rendering Manager) continues. Being one of our biggest areas of contribution, in this release we once again provided improvements.</p>

<p>In the AMD display driver, we fixed unexpected color results reported by SteamOS/Gamescope users. These were related to incorrect mapping of color values made by the AMD color module when programming some color transformations into the hardware. We also improved the support for newer hardware families by exposing missing plane color blocks.</p>

<p>Further, we provided many assorted patches to do various cleanups in the <a href="https://www.kernel.org/doc/html/v7.0/gpu/drm-mm.html#the-translation-table-manager-ttm">TTM layer</a> and multiple small (but important!) fixes in the AMD, Intel and v3d drivers, as well as a fix for the framebuffer probing on the Valve Steam Deck.</p>

<h3 id="new-bpf-helpers-for-sched_ext-schedulers">New BPF helpers for sched_ext schedulers</h3>

<p>For the past couple of years, we’ve been consistently contributing to <a href="https://github.com/sched-ext/scx">sched_ext</a> and, in particular, to the <a href="https://github.com/sched-ext/scx/tree/main/scheds/rust/scx_lavd#scx_lavd">scx_lavd</a> scheduler to enhance the gaming experience in Linux, improving the latency and interactivity under gaming workloads.</p>

<p>In this release, we introduced a set of BPF helper APIs –<code class="language-plaintext highlighter-rouge">bpf_in_nmi()</code>, <code class="language-plaintext highlighter-rouge">bpf_in_hardirq()</code>, <code class="language-plaintext highlighter-rouge">bpf_in_serving_softirq()</code>, and <code class="language-plaintext highlighter-rouge">bpf_in_task()</code> – along with their corresponding self-tests. These helpers allow BPF programs to precisely detect their execution context. This capability is particularly valuable for sched_ext schedulers; for instance, a BPF scheduler like <code class="language-plaintext highlighter-rouge">scx_lavd</code> can now distinguish whether a task was woken up by another process or via an interrupt, enabling more informed scheduling decisions.</p>

<h3 id="small-fixes-to-rpi-pmdomain-and-vc4-fixes-for-rpi-3">Small fixes to RPi pmdomain and vc4 fixes for RPi 3</h3>

<p>In our ongoing effort to improve Raspberry Pi devices, we addressed several issues related to the RPi 4 power domain, fixing system hangs during power transitions and correcting a broken reset status read. Additionally, on the RPi 3, we resolved a couple of memory leaks, race conditions, and PM reference imbalances, improving overall reliability for RPi users.</p>

<h3 id="assorted-bug-fixes-and-maintainability-improvements">Assorted bug fixes and maintainability improvements</h3>

<p>As usual, we helped with the never-ending task of fixing bugs, this time clearing up a few of them in the Bluetooth stack and the DRM TTM.</p>

<p>We determined the root cause of two race conditions in the thermal subsystem’s core that could potentially cause a system crash, and developed synthetic reproducers for it. Even though the approach selected to address the issue was not our proposed fix, we contributed to its code review and testing with our specific understanding of the issue and synthetic reproducers, improving the overall quality of the fix.</p>

<p>Another important and often overlooked type of contribution is the refactoring of code to make it more maintainable. In this case, by replacing deprecated APIs and legacy macros. We submitted some patches to do this kind of update in parts of the DRM subsystem and the v3d driver.</p>

<h3 id="other">Other</h3>
<p>As with every release, we helped with assorted janitor tasks such as documentation fixes and cleanups — specifically improving the exportfs and DRM documentation — as well as the usual share of reviews and tests.</p>

<h2 id="authored-52">Authored (52)</h2>
<h3 id="alberto-garcia">Alberto Garcia</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=734eba62cd32cb9ceffa09e57cdc03d761528525">PM: hibernate: Drain trailing zero pages on userspace restore</a></li>
</ul>

<h3 id="andré-almeida">André Almeida</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5e7fa6bfa9b5ced6868fc652d5c40fe0eac154d9">exportfs: Fix kernel-doc output for get_name()</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fc76b5968a435894062ad4160c2e81c32cc4972e">exportfs: Mark struct export_operations functions at kernel-doc</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7a6f811e2c06d656996776771f0498df129a0cc2">exportfs: Complete kernel-doc for struct export_operations</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f9a6a3fec23a852851049847f2ba3be6eb6eb0b7">docs: exportfs: Use source code struct documentation</a></li>
</ul>

<h3 id="changwoo-min">Changwoo Min</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c31df36bd26a5ed8898bb3fcc8c37ea9157ba784">selftests/bpf: Introduce execution context detection helpers</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=221b5e76c1c6e8ad4fa7c95a689e44ff45daab1c">selftests/bpf: Add tests for execution context helpers</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cd77618c418254b827f2a807b4c27b97088fdb52">selftests/bpf: Make bpf get_preempt_count() work for v6.14+ kernels</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9badc2a84e688be1275bb740942d5f6f51746908">PM: EM: Fix NULL pointer dereference when perf domain ID is not found</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0c4a59df370bea245695c00aaae6ae75747139bd">sched_ext: Fix is_bpf_migration_disabled() false negative on non-PREEMPT_RCU</a></li>
</ul>

<h3 id="heitor-alves-de-siqueira">Heitor Alves de Siqueira</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=21e4271e65094172aadd5beb8caea95dd0fbf6d7">Bluetooth: purge error queues in socket destructors</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8a768552f7a8276fb9e01d49773d2094ace7c8f1">usb: usbtmc: Flush anchored URBs in usbtmc_release</a></li>
</ul>

<h3 id="helen-koike">Helen Koike</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b6552e0503973daf6f23bd6ed9273ef131ee364f">Bluetooth: L2CAP: Fix null-ptr-deref on l2cap_sock_ready_cb</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3822743dc20386d9897e999dbb990befa3a5b3f8">ext4: reject mount if bigalloc with s_first_data_block != 0</a></li>
</ul>

<h3 id="maíra-canal">Maíra Canal</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=eaba54b8a67bdec7f834d61ff6cf5f0f3f4ea5bc">drm/v3d: Consolidate CPU job validation in a function</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f5520a1a844342af7295a72c35cc9690b7a9fdd1">drm/v3d: Convert v3d logging to device-based DRM helpers</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=550bae2c0931dbb664a61b08c21cf156f0a5362a">pmdomain: bcm: bcm2835-power: Fix broken reset status read</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b826d2c0b0ecb844c84431ba6b502e744f5d919a">pmdomain: bcm: bcm2835-power: Increase ASB control timeout</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=aaefbdde9abdc43699e110679c0e10972a5e1c59">drm/vc4: Release runtime PM reference after binding V3D</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f4dfd6847b3e5d24e336bca6057485116d17aea4">drm/vc4: Fix memory leak of BO array in hang state</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9525d169e5fd481538cf8c663cc5839e54f2e481">drm/vc4: Fix a memory leak in hang state error path</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=338c56050d8e892604da97f67bfa8cc4015a955f">drm/vc4: Protect madv read in vc4_gem_object_mmap() with madv_lock</a></li>
</ul>

<h3 id="melissa-wen">Melissa Wen</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5006505b19a2119e71c008044d59f6d753c858b9">drm/amd/display: fix wrong color value mapping on MCM shaper LUT</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0274a54897f356f9c78767c4a2a5863f7dde90c6">drm/amd/display: extend delta clamping logic to CM3 LUT helper</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1714dcc4c2c53e41190896eba263ed6328bcf415">drm/amd/display: remove assert around dpp_base replacement</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ff205dc95a897b4b8c093b665702e83bffd04dc9">drm/amd/display: expose plane blend LUT in HW with MCM</a></li>
</ul>

<h3 id="rodrigo-siqueira">Rodrigo Siqueira</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b9befc9a21bdeafb0f81b757c60df66e6e9feb17">drm/amdgpu: Expand kernel-doc in amdgpu_ring</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e0f90f184d18c70c1b04e8b03a5243e275ce86f4">Documentation/gpu: Add new glossary entries from UMR</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d68ba530ec79ec02c5432c3ae9c852081cc5ebb1">Documentation/gpu: Expand generic block information</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=03a48f07aa89ee72c2cfcc0be70858a745b2a573">Documentation/gpu: Add more information about GC</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=03dc0a6cb6dc8a2ca0201acf599adb26b8c9423b">Documentation/gpu: Add documentation about ring buffer</a></li>
</ul>

<h3 id="thadeu-lima-de-souza-cascardo">Thadeu Lima de Souza Cascardo</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=267f53140c9d0bf270bbe0148082e9b8e5011273">fpga: dfl: use subsys_initcall to allow built-in drivers to be added</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=91d7e9df42598af28ca440b95b16a4e51a408771">drm/ttm: Fix bo resource use-after-free</a></li>
</ul>

<h3 id="tvrtko-ursulin">Tvrtko Ursulin</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e85e9ccf3f8404007f62dff9a02273fcdeb44206">drm/panic: Report invalid or unsupported panic modes</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ee8721bee80150ed1e4ee5ebb6aaf070802ac81b">drm/ttm: Make ttm_bo_init_validate safe against ttm_operation_ctx re-ordering</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=feb065155bab2fabc3545bf57ae31e86d02df9a1">drm/ttm: Resource cannot be NULL in ttm_resource_intersects</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=802620f5a9cf7231933cfce61817577b3b6543d9">drm/ttm: Tidy ttm_operation_ctx initialization</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c06da4b3573a2d3c906c185450d0b1059d02820e">drm/ttm: Tidy usage of local variables a little bit</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6a99e91a6ca8fec5882450128fb128265f86b32a">drm/i915/display: Detect AuxCCS support via display parent interface</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bb2c941b3131437185e79c8f2a16469876664572">efi: sysfb_efi: Replace open coded swap with the macro</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=449b87e81f3561bd907d3b9a31cf69590132a2df">efi: sysfb_efi: Fix lfb_linelength calculation when applying quirks</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7f2f1fd6fc050be874afa9eb52a0ff974f379869">efi: sysfb_efi: Convert swap width and height quirk to a callback</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c7c7eb5ed5a3896e57019f7b33e3b7dcb4ab73b4">efi: sysfb_efi: Fix efidrmfb and simpledrmfb on Valve Steam Deck</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fec2c3c01f1ca0cd2706941e78b9972e7f9474c0">drm/syncobj: Convert syncobj idr to xarray</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a61bf068f1fe359203f1af191cb523b77dc32752">drm/xe: Fix ggtt fb alignment</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f7e06786512e730f750138b1221b6342bcf07859">drm/amdgpu/mes: Remove idr leftovers v2</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=dda702172dc26e080fe048b8f170eaccb8097c1a">drm/amdgpu: Simplify sorting of the bo list</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=49abfa812617a7f2d0132c70d23ac98b389c6ec1">drm/amdgpu/userq: Fix reference leak in amdgpu_userq_wait_ioctl</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7b7d7693a55d606d700beb9549c9f7f0e5d9c24f">drm/amdgpu/userq: Do not allow userspace to trivially triger kernel warnings</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6e3f4514e3b432871ac81717d24f56b441857f77">drm/ttm: Fix ttm_pool_beneficial_order() return type</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=048c1c4e51715ffddd4189745c07f530f34fbe37">drm/amdgpu/userq: Consolidate wait ioctl exit path</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=06f4297134db37fb326047b1ed8194a23cdf057d">drm/syncobj: Fix xa_alloc allocation flags</a></li>
</ul>

<h2 id="reviewed-29">Reviewed (29)</h2>
<h3 id="christian-gmeiner">Christian Gmeiner</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a8fffbe7dec7d2dda19ed8c7cc13bed744546c05">drm/etnaviv: Add command stream definitions required for a PPU flop reset</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9934873be03c781e0be7b91168fb6a929b140cd1">drm/etnaviv: move some functions to a header to be able to use them externally</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9fcdece1a734bc71d2d9f9e3dd301cc9fff23327">drm/etnaviv: Add a new function to emit a series of states to cmd stream</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=85ba57ad88cf96b2fb4cf6c81639c7907bf3cd94">drm/etnaviv: Add PPU flop reset</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6a0b99e9fb45f403c3097a9047963d2dd5b0fab2">drm/etnaviv: Add module parameter to force PPU flop reset</a></li>
</ul>

<h3 id="gavin-guo">Gavin Guo</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=939080834fef3ce42fdbcfef33fd29c9ffe5bbed">mm/huge_memory: fix early failure try_to_migrate() when split huge pmd for shared THP</a></li>
</ul>

<h3 id="iago-toral-quiroga">Iago Toral Quiroga</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=eaba54b8a67bdec7f834d61ff6cf5f0f3f4ea5bc">drm/v3d: Consolidate CPU job validation in a function</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f5520a1a844342af7295a72c35cc9690b7a9fdd1">drm/v3d: Convert v3d logging to device-based DRM helpers</a></li>
</ul>

<h3 id="mauricio-faria-de-oliveira">Mauricio Faria de Oliveira</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=45b859b0728267a6199ee5002d62e6c6f3e8c89d">thermal: core: Address thermal zone removal races with resume</a></li>
</ul>

<h3 id="maíra-canal-1">Maíra Canal</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6e0b1b82017b9ba16b87685e1e4902cd9dc762d2">drm/gem: Add huge tmpfs mountpoint helpers</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f19f99bbaf9f91d0b0a95d760f4d6755758b913d">drm/v3d: Use huge tmpfs mountpoint helpers</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7cdf69d903759b81abde5973d703c93a742ddab7">drm/gem: Get rid of *_with_mnt helpers</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=70478348fc6d52d5bb7568a035d3cbe5bcc6af4c">Documentation/gpu/drm-mm: Add THP paragraph to GEM mapping section</a></li>
</ul>

<h3 id="melissa-wen-1">Melissa Wen</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c28b3ec3ca034fd1abc832fef46ce36eb13f8fad">drm/amd/display: Use mpc.preblend flag to indicate 3D LUT</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a4fa2355e0add57253468ef13bd08f11285f3b6e">drm/amd/display: Enable DEGAMMA and reject COLOR_PIPELINE+DEGAMMA_LUT</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=52289ce48ef1f8a81cd39df1574098356e3c9d4c">drm/amdgpu: Fix kernel-doc comments for some LUT properties</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b49814033cb5224c818cfb04dccb3260da10cc4f">drm/amd/display: Fix gamma 2.2 colorop TFs</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=aaefbdde9abdc43699e110679c0e10972a5e1c59">drm/vc4: Release runtime PM reference after binding V3D</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f4dfd6847b3e5d24e336bca6057485116d17aea4">drm/vc4: Fix memory leak of BO array in hang state</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9525d169e5fd481538cf8c663cc5839e54f2e481">drm/vc4: Fix a memory leak in hang state error path</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=338c56050d8e892604da97f67bfa8cc4015a955f">drm/vc4: Protect madv read in vc4_gem_object_mmap() with madv_lock</a></li>
</ul>

<h3 id="rodrigo-siqueira-1">Rodrigo Siqueira</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=41af6215cdbcecd12920f211239479027904abf3">drm/amd/display: Reject cursor plane on DCE when scaled differently than primary</a></li>
</ul>

<h3 id="thadeu-lima-de-souza-cascardo-1">Thadeu Lima de Souza Cascardo</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=feb065155bab2fabc3545bf57ae31e86d02df9a1">drm/ttm: Resource cannot be NULL in ttm_resource_intersects</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c06da4b3573a2d3c906c185450d0b1059d02820e">drm/ttm: Tidy usage of local variables a little bit</a></li>
</ul>

<h3 id="tvrtko-ursulin-1">Tvrtko Ursulin</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=97f419848b1db69fc7ea99f385a7d2fa2b2ca454">dma-buf/selftests: drop the mock_wait implementation</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6419fc157e55665dc8680deb1737dc4c53c33f94">drm/panic: Ensure drm_panic_type is initialized to a valid value</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6abb6a0e1104279763d1561b8110c1db442c5fac">drm/panic: Fix expected string for QR_CODE in drm_panic_type_map</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=91d7e9df42598af28ca440b95b16a4e51a408771">drm/ttm: Fix bo resource use-after-free</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a13edf9b92fc4700b3020d7ea547a3d64dd33b63">drm/i915/gem: Drop check for changed VM in EXECBUF</a></li>
</ul>

<h2 id="tested-6">Tested (6)</h2>
<h3 id="helen-koike-1">Helen Koike</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7cdc5a97d02c943f4bdde4d5767ad0c13cad92b">netfilter: nf_tables: Fix for duplicate device in netdev hooks</a></li>
</ul>

<h3 id="mauricio-faria-de-oliveira-1">Mauricio Faria de Oliveira</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=45b859b0728267a6199ee5002d62e6c6f3e8c89d">thermal: core: Address thermal zone removal races with resume</a></li>
</ul>

<h3 id="melissa-wen-2">Melissa Wen</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bb2c941b3131437185e79c8f2a16469876664572">efi: sysfb_efi: Replace open coded swap with the macro</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=449b87e81f3561bd907d3b9a31cf69590132a2df">efi: sysfb_efi: Fix lfb_linelength calculation when applying quirks</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7f2f1fd6fc050be874afa9eb52a0ff974f379869">efi: sysfb_efi: Convert swap width and height quirk to a callback</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c7c7eb5ed5a3896e57019f7b33e3b7dcb4ab73b4">efi: sysfb_efi: Fix efidrmfb and simpledrmfb on Valve Steam Deck</a></li>
</ul>

<h2 id="acked-4">Acked (4)</h2>
<h3 id="thadeu-lima-de-souza-cascardo-2">Thadeu Lima de Souza Cascardo</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ee8721bee80150ed1e4ee5ebb6aaf070802ac81b">drm/ttm: Make ttm_bo_init_validate safe against ttm_operation_ctx re-ordering</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=802620f5a9cf7231933cfce61817577b3b6543d9">drm/ttm: Tidy ttm_operation_ctx initialization</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e849ada70c6b1ee22e9f4f5c0e38231dcee53f04">char: misc: Use IS_ERR() for filp_open() return value</a></li>
</ul>

<h3 id="tvrtko-ursulin-2">Tvrtko Ursulin</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ff9e240212f6693c293f9e58ade05bc887297a1e">drm/i915: Fix BO alloc flags</a></li>
</ul>

<h2 id="maintainer-sob-6">Maintainer SoB (6)</h2>
<h3 id="christian-gmeiner-1">Christian Gmeiner</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a8fffbe7dec7d2dda19ed8c7cc13bed744546c05">drm/etnaviv: Add command stream definitions required for a PPU flop reset</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9934873be03c781e0be7b91168fb6a929b140cd1">drm/etnaviv: move some functions to a header to be able to use them externally</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9fcdece1a734bc71d2d9f9e3dd301cc9fff23327">drm/etnaviv: Add a new function to emit a series of states to cmd stream</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=85ba57ad88cf96b2fb4cf6c81639c7907bf3cd94">drm/etnaviv: Add PPU flop reset</a></li>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6a0b99e9fb45f403c3097a9047963d2dd5b0fab2">drm/etnaviv: Add module parameter to force PPU flop reset</a></li>
</ul>

<h3 id="maíra-canal-2">Maíra Canal</h3>
<ul>
  <li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9eb018828b1b30dfba689c060735c50fc5b9f704">drm/v3d: Set DMA segment size to avoid debug warnings</a></li>
</ul>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><category term="linux" /><category term="kernel" /><category term="graphics" /><category term="multimedia" /><category term="automotive" /><category term="embedded-linux" /><category term="mobile-devices" /><category term="silicon" /><summary type="html"><![CDATA[Linux 7.0 Released The new kernel version is out, this time with an increased major number. As usual, despite the perceived importance of the version number, this is just one release more. That means no spectacular announcements; just consistent work, more features, more fixes, better support. A couple of non-technical changes stand out in this release: Rust is no longer considered experimental in the kernel, and there is now an official policy on tool-generated content. The kernel keeps evolving and this will surely pave the way for future development in the coming years. For a detailed list of changes, you can check the KernelNewbies ChangeLog. At Igalia, the Linux kernel is one of ever-present work areas and interests and we keep contributing to it on many fronts. Here’s our list of contributions and patches for this release. Igalia changelog Direct Rendering Manager improvements Our work on the DRM (Direct Rendering Manager) continues. Being one of our biggest areas of contribution, in this release we once again provided improvements. In the AMD display driver, we fixed unexpected color results reported by SteamOS/Gamescope users. These were related to incorrect mapping of color values made by the AMD color module when programming some color transformations into the hardware. We also improved the support for newer hardware families by exposing missing plane color blocks. Further, we provided many assorted patches to do various cleanups in the TTM layer and multiple small (but important!) fixes in the AMD, Intel and v3d drivers, as well as a fix for the framebuffer probing on the Valve Steam Deck. New BPF helpers for sched_ext schedulers For the past couple of years, we’ve been consistently contributing to sched_ext and, in particular, to the scx_lavd scheduler to enhance the gaming experience in Linux, improving the latency and interactivity under gaming workloads. In this release, we introduced a set of BPF helper APIs –bpf_in_nmi(), bpf_in_hardirq(), bpf_in_serving_softirq(), and bpf_in_task() – along with their corresponding self-tests. These helpers allow BPF programs to precisely detect their execution context. This capability is particularly valuable for sched_ext schedulers; for instance, a BPF scheduler like scx_lavd can now distinguish whether a task was woken up by another process or via an interrupt, enabling more informed scheduling decisions. Small fixes to RPi pmdomain and vc4 fixes for RPi 3 In our ongoing effort to improve Raspberry Pi devices, we addressed several issues related to the RPi 4 power domain, fixing system hangs during power transitions and correcting a broken reset status read. Additionally, on the RPi 3, we resolved a couple of memory leaks, race conditions, and PM reference imbalances, improving overall reliability for RPi users. Assorted bug fixes and maintainability improvements As usual, we helped with the never-ending task of fixing bugs, this time clearing up a few of them in the Bluetooth stack and the DRM TTM. We determined the root cause of two race conditions in the thermal subsystem’s core that could potentially cause a system crash, and developed synthetic reproducers for it. Even though the approach selected to address the issue was not our proposed fix, we contributed to its code review and testing with our specific understanding of the issue and synthetic reproducers, improving the overall quality of the fix. Another important and often overlooked type of contribution is the refactoring of code to make it more maintainable. In this case, by replacing deprecated APIs and legacy macros. We submitted some patches to do this kind of update in parts of the DRM subsystem and the v3d driver. Other As with every release, we helped with assorted janitor tasks such as documentation fixes and cleanups — specifically improving the exportfs and DRM documentation — as well as the usual share of reviews and tests. Authored (52) Alberto Garcia PM: hibernate: Drain trailing zero pages on userspace restore André Almeida exportfs: Fix kernel-doc output for get_name() exportfs: Mark struct export_operations functions at kernel-doc exportfs: Complete kernel-doc for struct export_operations docs: exportfs: Use source code struct documentation Changwoo Min selftests/bpf: Introduce execution context detection helpers selftests/bpf: Add tests for execution context helpers selftests/bpf: Make bpf get_preempt_count() work for v6.14+ kernels PM: EM: Fix NULL pointer dereference when perf domain ID is not found sched_ext: Fix is_bpf_migration_disabled() false negative on non-PREEMPT_RCU Heitor Alves de Siqueira Bluetooth: purge error queues in socket destructors usb: usbtmc: Flush anchored URBs in usbtmc_release Helen Koike Bluetooth: L2CAP: Fix null-ptr-deref on l2cap_sock_ready_cb ext4: reject mount if bigalloc with s_first_data_block != 0 Maíra Canal drm/v3d: Consolidate CPU job validation in a function drm/v3d: Convert v3d logging to device-based DRM helpers pmdomain: bcm: bcm2835-power: Fix broken reset status read pmdomain: bcm: bcm2835-power: Increase ASB control timeout drm/vc4: Release runtime PM reference after binding V3D drm/vc4: Fix memory leak of BO array in hang state drm/vc4: Fix a memory leak in hang state error path drm/vc4: Protect madv read in vc4_gem_object_mmap() with madv_lock Melissa Wen drm/amd/display: fix wrong color value mapping on MCM shaper LUT drm/amd/display: extend delta clamping logic to CM3 LUT helper drm/amd/display: remove assert around dpp_base replacement drm/amd/display: expose plane blend LUT in HW with MCM Rodrigo Siqueira drm/amdgpu: Expand kernel-doc in amdgpu_ring Documentation/gpu: Add new glossary entries from UMR Documentation/gpu: Expand generic block information Documentation/gpu: Add more information about GC Documentation/gpu: Add documentation about ring buffer Thadeu Lima de Souza Cascardo fpga: dfl: use subsys_initcall to allow built-in drivers to be added drm/ttm: Fix bo resource use-after-free Tvrtko Ursulin drm/panic: Report invalid or unsupported panic modes drm/ttm: Make ttm_bo_init_validate safe against ttm_operation_ctx re-ordering drm/ttm: Resource cannot be NULL in ttm_resource_intersects drm/ttm: Tidy ttm_operation_ctx initialization drm/ttm: Tidy usage of local variables a little bit drm/i915/display: Detect AuxCCS support via display parent interface efi: sysfb_efi: Replace open coded swap with the macro efi: sysfb_efi: Fix lfb_linelength calculation when applying quirks efi: sysfb_efi: Convert swap width and height quirk to a callback efi: sysfb_efi: Fix efidrmfb and simpledrmfb on Valve Steam Deck drm/syncobj: Convert syncobj idr to xarray drm/xe: Fix ggtt fb alignment drm/amdgpu/mes: Remove idr leftovers v2 drm/amdgpu: Simplify sorting of the bo list drm/amdgpu/userq: Fix reference leak in amdgpu_userq_wait_ioctl drm/amdgpu/userq: Do not allow userspace to trivially triger kernel warnings drm/ttm: Fix ttm_pool_beneficial_order() return type drm/amdgpu/userq: Consolidate wait ioctl exit path drm/syncobj: Fix xa_alloc allocation flags Reviewed (29) Christian Gmeiner drm/etnaviv: Add command stream definitions required for a PPU flop reset drm/etnaviv: move some functions to a header to be able to use them externally drm/etnaviv: Add a new function to emit a series of states to cmd stream drm/etnaviv: Add PPU flop reset drm/etnaviv: Add module parameter to force PPU flop reset Gavin Guo mm/huge_memory: fix early failure try_to_migrate() when split huge pmd for shared THP Iago Toral Quiroga drm/v3d: Consolidate CPU job validation in a function drm/v3d: Convert v3d logging to device-based DRM helpers Mauricio Faria de Oliveira thermal: core: Address thermal zone removal races with resume Maíra Canal drm/gem: Add huge tmpfs mountpoint helpers drm/v3d: Use huge tmpfs mountpoint helpers drm/gem: Get rid of *_with_mnt helpers Documentation/gpu/drm-mm: Add THP paragraph to GEM mapping section Melissa Wen drm/amd/display: Use mpc.preblend flag to indicate 3D LUT drm/amd/display: Enable DEGAMMA and reject COLOR_PIPELINE+DEGAMMA_LUT drm/amdgpu: Fix kernel-doc comments for some LUT properties drm/amd/display: Fix gamma 2.2 colorop TFs drm/vc4: Release runtime PM reference after binding V3D drm/vc4: Fix memory leak of BO array in hang state drm/vc4: Fix a memory leak in hang state error path drm/vc4: Protect madv read in vc4_gem_object_mmap() with madv_lock Rodrigo Siqueira drm/amd/display: Reject cursor plane on DCE when scaled differently than primary Thadeu Lima de Souza Cascardo drm/ttm: Resource cannot be NULL in ttm_resource_intersects drm/ttm: Tidy usage of local variables a little bit Tvrtko Ursulin dma-buf/selftests: drop the mock_wait implementation drm/panic: Ensure drm_panic_type is initialized to a valid value drm/panic: Fix expected string for QR_CODE in drm_panic_type_map drm/ttm: Fix bo resource use-after-free drm/i915/gem: Drop check for changed VM in EXECBUF Tested (6) Helen Koike netfilter: nf_tables: Fix for duplicate device in netdev hooks Mauricio Faria de Oliveira thermal: core: Address thermal zone removal races with resume Melissa Wen efi: sysfb_efi: Replace open coded swap with the macro efi: sysfb_efi: Fix lfb_linelength calculation when applying quirks efi: sysfb_efi: Convert swap width and height quirk to a callback efi: sysfb_efi: Fix efidrmfb and simpledrmfb on Valve Steam Deck Acked (4) Thadeu Lima de Souza Cascardo drm/ttm: Make ttm_bo_init_validate safe against ttm_operation_ctx re-ordering drm/ttm: Tidy ttm_operation_ctx initialization char: misc: Use IS_ERR() for filp_open() return value Tvrtko Ursulin drm/i915: Fix BO alloc flags Maintainer SoB (6) Christian Gmeiner drm/etnaviv: Add command stream definitions required for a PPU flop reset drm/etnaviv: move some functions to a header to be able to use them externally drm/etnaviv: Add a new function to emit a series of states to cmd stream drm/etnaviv: Add PPU flop reset drm/etnaviv: Add module parameter to force PPU flop reset Maíra Canal drm/v3d: Set DMA segment size to avoid debug warnings]]></summary></entry><entry><title type="html">Igalia at OSPM Summit</title><link href="https://www.igalia.com/2026/04/08/Igalia-at-OSPM-Summit.html" rel="alternate" type="text/html" title="Igalia at OSPM Summit" /><published>2026-04-08T00:00:00+00:00</published><updated>2026-04-08T00:00:00+00:00</updated><id>https://www.igalia.com/2026/04/08/Igalia-at-OSPM-Summit</id><content type="html" xml:base="https://www.igalia.com/2026/04/08/Igalia-at-OSPM-Summit.html"><![CDATA[<p>Next week we will be at the <a href="https://retis.santannapisa.it/ospm-summit/">Operating-System-Directed Power-Management (OSPM) Summit, VIII edition</a>, which will be held at Arm in Cambridge (UK), on April 14-16.</p>

<p><a href="https://www.igalia.com/team/changwoo">Changwoo Min</a> and <a href="https://www.igalia.com/team/gavinguo">Gavin Guo</a> will share lessons learned from evolving <code class="language-plaintext highlighter-rouge">scx_lavd</code> (Latency-Aware Virtual Deadline), a <code class="language-plaintext highlighter-rouge">sched_ex</code> scheduler, to support strict container isolation, complex server topologies, and energy-aware scheduling.</p>

<p>The talk will happen on the second day of the summit, on Wednesday, 15th April. We hope to see you there!</p>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><category term="linux" /><category term="kernel" /><category term="graphics" /><category term="multimedia" /><category term="automotive" /><category term="embedded-linux" /><category term="mobile-devices" /><category term="silicon" /><summary type="html"><![CDATA[Next week we will be at the Operating-System-Directed Power-Management (OSPM) Summit, VIII edition, which will be held at Arm in Cambridge (UK), on April 14-16. Changwoo Min and Gavin Guo will share lessons learned from evolving scx_lavd (Latency-Aware Virtual Deadline), a sched_ex scheduler, to support strict container isolation, complex server topologies, and energy-aware scheduling. The talk will happen on the second day of the summit, on Wednesday, 15th April. We hope to see you there!]]></summary></entry><entry><title type="html">Advancing the AT Protocol in Partnership with Eurosky</title><link href="https://www.igalia.com/2026/03/18/Advancing-the-AT-Protocol-in-Partnership-with-Eurosky.html" rel="alternate" type="text/html" title="Advancing the AT Protocol in Partnership with Eurosky" /><published>2026-03-18T00:00:00+00:00</published><updated>2026-03-18T00:00:00+00:00</updated><id>https://www.igalia.com/2026/03/18/Advancing-the-AT-Protocol-in-Partnership-with-Eurosky</id><content type="html" xml:base="https://www.igalia.com/2026/03/18/Advancing-the-AT-Protocol-in-Partnership-with-Eurosky.html"><![CDATA[<p>Igalia is pleased to announce that we will be helping to define and develop open social web infrastructure in partnership with <a href="https://eurosky.tech">Eurosky</a>, a non-profit public interest initiative of the <a href="https://www.modalfoundation.org">Modal Foundation</a>.</p>

<p>Eurosky’s mission is to establish independent social media infrastructure operating in Europe, where Igalia is headquartered, and governed by European law.  Our shared goal is to work together to develop core components and tools for the <a href="https://atproto.com">AT Protocol</a> and its overall ecosystem.  The fruits of this collaboration will be placed under an <a href="https://mit-license.org">MIT License</a>, ensuring that our work remains freely available for developers and organizations building on the open social web.</p>

<p>We at Igalia are excited to be a part of this effort and its vision of a more open, pluralistic, and resilient social web in which users, developers, and communities have genuine choice over the platforms and services they use.</p>

<h2 id="about-eurosky">About Eurosky</h2>

<p>Eurosky is a public interest, non-profit, technology organization working towards a thriving open social web for Europe. We build and maintain shared infrastructure on open protocols that enable European entrepreneurs, businesses, and organizations to launch social applications faster and more affordably. We build apps and solutions for people that prioritize interoperability, user control, and democratic values. All our technology solutions are hosted in Europe and governed by European law. Eurosky is an initiative of the Modal Foundation, a non-profit organization headquartered in the Netherlands.</p>

<h2 id="about-igalia">About Igalia</h2>

<p>Igalia is a leading open source consultancy with 25 years of experience, headquartered in Europe but operating with a global reach. As an organization deeply committed to the open source philosophy, Igalia has built its reputation on technical excellence and collaborative development, working with clients and partners across the world. Igalia is best known for the development of open web standards and browser engines, including Chromium, WebKit, and Gecko, where it stands out as the largest contributor to all major web engines second only to their primary developers. Beyond the browser, Igalia’s engineers are active contributors to a broad spectrum of technologies, including compilers, multimedia frameworks, graphics systems, and the Linux kernel, among others. Igalia is committed not just to any single technology, but to the health and advancement of the open source ecosystem as a whole.</p>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><category term="software-it" /><category term="open-source" /><summary type="html"><![CDATA[Igalia is pleased to announce that we will be helping to define and develop open social web infrastructure in partnership with Eurosky, a non-profit public interest initiative of the Modal Foundation. Eurosky’s mission is to establish independent social media infrastructure operating in Europe, where Igalia is headquartered, and governed by European law. Our shared goal is to work together to develop core components and tools for the AT Protocol and its overall ecosystem. The fruits of this collaboration will be placed under an MIT License, ensuring that our work remains freely available for developers and organizations building on the open social web. We at Igalia are excited to be a part of this effort and its vision of a more open, pluralistic, and resilient social web in which users, developers, and communities have genuine choice over the platforms and services they use. About Eurosky Eurosky is a public interest, non-profit, technology organization working towards a thriving open social web for Europe. We build and maintain shared infrastructure on open protocols that enable European entrepreneurs, businesses, and organizations to launch social applications faster and more affordably. We build apps and solutions for people that prioritize interoperability, user control, and democratic values. All our technology solutions are hosted in Europe and governed by European law. Eurosky is an initiative of the Modal Foundation, a non-profit organization headquartered in the Netherlands. About Igalia Igalia is a leading open source consultancy with 25 years of experience, headquartered in Europe but operating with a global reach. As an organization deeply committed to the open source philosophy, Igalia has built its reputation on technical excellence and collaborative development, working with clients and partners across the world. Igalia is best known for the development of open web standards and browser engines, including Chromium, WebKit, and Gecko, where it stands out as the largest contributor to all major web engines second only to their primary developers. Beyond the browser, Igalia’s engineers are active contributors to a broad spectrum of technologies, including compilers, multimedia frameworks, graphics systems, and the Linux kernel, among others. Igalia is committed not just to any single technology, but to the health and advancement of the open source ecosystem as a whole.]]></summary></entry><entry><title type="html">Temporal Reaches Stage 4</title><link href="https://www.igalia.com/2026/03/13/Temporal-Reaches-Stage-4.html" rel="alternate" type="text/html" title="Temporal Reaches Stage 4" /><published>2026-03-13T00:00:00+00:00</published><updated>2026-03-13T00:00:00+00:00</updated><id>https://www.igalia.com/2026/03/13/Temporal-Reaches-Stage-4</id><content type="html" xml:base="https://www.igalia.com/2026/03/13/Temporal-Reaches-Stage-4.html"><![CDATA[<p>TC39’s <a href="https://github.com/tc39/agendas/blob/main/2026/03.md">113th plenary</a> in New York closed this week with the <a href="https://tc39.es/proposal-temporal/">Temporal proposal</a> advancing to Stage 4. Temporal replaces JavaScript’s Date API, which has badly underserved developers since 1995.</p>

<p>Several current and former Igalians contributed to Temporal. <a href="https://www.igalia.com/team/ms2ger">Ms2ger</a> brought years of careful spec writing and vital review work; <a href="https://www.igalia.com/team/pchimento">Philip Chimento</a> and <a href="https://www.igalia.com/team/ryzokuken">Ujjwal Sharma</a> co-championed the proposal. <a href="https://www.igalia.com/team/asingh">Aditi Singh</a>, <a href="https://www.igalia.com/team/benallen">Ben Allen</a>, <a href="https://github.com/cjtenny">Cam Tenny</a>, <a href="https://github.com/littledan">Dan Ehrenberg</a>, <a href="https://www.igalia.com/team/emeyer">Eric Meyer</a>, <a href="https://www.igalia.com/team/gemont">Guillaume Emont</a>, Ioanna Dimitriou, <a href="https://www.igalia.com/team/jesse">Jesse Alama</a>, <a href="https://www.igalia.com/team/rcintra">Romulo Cintra</a>, <a href="https://github.com/sarahghp">Sarah Groff Hennigh-Palermo</a>, and <a href="https://www.igalia.com/team/tjc">Tim Chevalier</a> all contributed throughout the project’s life. <a href="https://bloomberg.com">Bloomberg</a>, whose collaboration with us first got us working on it, funded the work and contributed engineering directly.</p>

<p>Besides its default <a href="https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar">ISO 8601</a> calendar, Temporal also supports a number of regional calendars — Gregorian, Japanese, Hebrew, Persian, Chinese, Islamic, and others. To ensure these work consistently across implementations, a companion ECMA-402 proposal was also needed. The <a href="https://tc39.es/proposal-intl-era-monthcode/">Intl.era and Intl.monthCode proposal</a> specifies the details Temporal deliberately leaves open: the valid era codes, eraYear semantics, and monthCode values for each of those calendars. We worked on this as part of our long-running collaboration with Google’s i18n team, with <a href="https://www.igalia.com/team/benallen">Ben Allen</a>, <a href="https://www.igalia.com/team/pchimento">Philip Chimento</a>, and <a href="https://www.igalia.com/team/ryzokuken">Ujjwal Sharma</a> as the main contributors from our side.</p>

<p>Igalia also ended up working on <a href="https://datatracker.ietf.org/doc/rfc9557/">RFC 9557</a>, the Internet Extended Date/Time Format (IXDTF). Temporal needs a standard way to serialize timestamps with timezone and calendar information, but the conventions in wide use — like appending IANA timezone names to timestamps — had never been on a formal standards track. RFC 9557 fixes that, and also defines the new syntax for calendar annotations (<code class="language-plaintext highlighter-rouge">[u-ca=hebrew]</code> and similar) that Temporal requires for round-tripping dates across calendar systems.</p>

<p>Temporal adds immutable date/time types, explicit timezone handling, support for a variety of international calendars, and nanosecond precision. It ships with around 4,500 test262 tests — Date, for comparison, has 594. Firefox v139, Chrome v144, Edge v144, and TypeScript 6.0 beta already include it. If none of these are available, you may also use Temporal from a <a href="https://github.com/fullcalendar/temporal-polyfill">polyfill</a>, including <a href="https://github.com/js-temporal/temporal-polyfill">the reference polyfill</a> developed by the champions initially.</p>

<p>Back when Temporal reached Stage 3 in 2021, we recorded <a href="https://www.igalia.com/chats/Temporal">an Igalia Chat</a> on the proposal with Brian Kardell, <a href="https://igalia.com/team/pchimento">Philip Chimento</a>, Maggie Johnson-Pint (Moment.js), and Philipp Dunkel (Bloomberg). A lot has changed since then — and we just sat down together with Philip, <a href="https://igalia.com/team/nribaudo">Nicolò Ribaudo</a>, and Bloomberg’s Jason Williams to <a href="https://www.igalia.com/chats/temporal-stage-4">talk about the Stage 4 advancement</a>!</p>

<p>Congratulations to everyone who kept this moving. It took nine years and a lot of people, and hopefully will improve the lives of JavaScript developers. We’re looking forward to seeing more robust date handling deployed on the Web and beyond!</p>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><category term="software-it" /><category term="open-source" /><category term="browsers" /><category term="compilers" /><summary type="html"><![CDATA[TC39’s 113th plenary in New York closed this week with the Temporal proposal advancing to Stage 4. Temporal replaces JavaScript’s Date API, which has badly underserved developers since 1995. Several current and former Igalians contributed to Temporal. Ms2ger brought years of careful spec writing and vital review work; Philip Chimento and Ujjwal Sharma co-championed the proposal. Aditi Singh, Ben Allen, Cam Tenny, Dan Ehrenberg, Eric Meyer, Guillaume Emont, Ioanna Dimitriou, Jesse Alama, Romulo Cintra, Sarah Groff Hennigh-Palermo, and Tim Chevalier all contributed throughout the project’s life. Bloomberg, whose collaboration with us first got us working on it, funded the work and contributed engineering directly. Besides its default ISO 8601 calendar, Temporal also supports a number of regional calendars — Gregorian, Japanese, Hebrew, Persian, Chinese, Islamic, and others. To ensure these work consistently across implementations, a companion ECMA-402 proposal was also needed. The Intl.era and Intl.monthCode proposal specifies the details Temporal deliberately leaves open: the valid era codes, eraYear semantics, and monthCode values for each of those calendars. We worked on this as part of our long-running collaboration with Google’s i18n team, with Ben Allen, Philip Chimento, and Ujjwal Sharma as the main contributors from our side. Igalia also ended up working on RFC 9557, the Internet Extended Date/Time Format (IXDTF). Temporal needs a standard way to serialize timestamps with timezone and calendar information, but the conventions in wide use — like appending IANA timezone names to timestamps — had never been on a formal standards track. RFC 9557 fixes that, and also defines the new syntax for calendar annotations ([u-ca=hebrew] and similar) that Temporal requires for round-tripping dates across calendar systems. Temporal adds immutable date/time types, explicit timezone handling, support for a variety of international calendars, and nanosecond precision. It ships with around 4,500 test262 tests — Date, for comparison, has 594. Firefox v139, Chrome v144, Edge v144, and TypeScript 6.0 beta already include it. If none of these are available, you may also use Temporal from a polyfill, including the reference polyfill developed by the champions initially. Back when Temporal reached Stage 3 in 2021, we recorded an Igalia Chat on the proposal with Brian Kardell, Philip Chimento, Maggie Johnson-Pint (Moment.js), and Philipp Dunkel (Bloomberg). A lot has changed since then — and we just sat down together with Philip, Nicolò Ribaudo, and Bloomberg’s Jason Williams to talk about the Stage 4 advancement! Congratulations to everyone who kept this moving. It took nine years and a lot of people, and hopefully will improve the lives of JavaScript developers. We’re looking forward to seeing more robust date handling deployed on the Web and beyond!]]></summary></entry><entry><title type="html">Introducing Moonforge: A Yocto-Based Linux OS</title><link href="https://www.igalia.com/2026/03/09/Introducing-Moonforge-A-Yocto-Based-Linux-OS.html" rel="alternate" type="text/html" title="Introducing Moonforge: A Yocto-Based Linux OS" /><published>2026-03-09T00:00:00+00:00</published><updated>2026-03-09T00:00:00+00:00</updated><id>https://www.igalia.com/2026/03/09/Introducing-Moonforge-A-Yocto-Based-Linux-OS</id><content type="html" xml:base="https://www.igalia.com/2026/03/09/Introducing-Moonforge-A-Yocto-Based-Linux-OS.html"><![CDATA[<p><img src="/https/www.igalia.com/assets/i/news/moonforge-logo.svg" alt="" style="max-width: 25%; float: right; margin-inline: 3em 0;" /></p>

<p>Today we are announcing the launch of <strong><a href="https://moonforgelinux.org">Moonforge</a></strong>, a new Linux distribution based on the Yocto and OpenEmbedded projects and designed to provide a fully open-source, production-ready foundation for building embedded and device operating systems.</p>

<p>Moonforge focuses on <strong>extensibility, flexibility, and long-term maintainability</strong>, enabling developers and system integrators to create custom operating system images while relying on well-established industry tooling and best practices.</p>

<p>The project is available as <a href="https://github.com/moonforgelinux">open-source on GitHub</a> and welcomes community contributions.</p>

<h2 id="building-production-ready-linux-systems-with-yocto">Building Production-Ready Linux Systems with Yocto</h2>

<p>Moonforge is an operating system framework for Linux devices that simplifies the process of building and maintaining custom operating systems.</p>

<p>It provides a curated collection of Yocto layers and configuration files that help developers generate <strong>immutable, maintainable, and easily updatable operating system images</strong>.</p>

<p>The goal is to offer the best possible developer experience for teams building embedded Linux products. Moonforge handles the complex aspects of operating system creation, such as system integration, security, updates, and infrastructure, so developers can focus on building and deploying their applications or devices.</p>

<p>Using Moonforge, developers can:</p>
<ul>
  <li>Build their own operating system by combining modular Yocto layers</li>
  <li>Rely on widely adopted industry standards</li>
  <li>Extend the system with additional features, hardware support, and integrations</li>
  <li>Maintain a clear separation between upstream and downstream components</li>
</ul>

<h2 id="design-goals">Design Goals</h2>

<p>Moonforge is designed around three core principles: <strong>balance, separation, and best practices</strong>.</p>

<h3 id="balance-between-turn-key-solutions-and-flexibility">Balance Between Turn-Key Solutions and Flexibility</h3>

<p>Creating a Linux distribution typically requires significant integration work: selecting components, configuring build systems, and aligning the system architecture. Moonforge reduces this duplicated effort by providing sensible defaults and core architectural decisions, while still allowing teams to customize and extend the system for their own products.</p>

<p>The project combines Yocto layers together with extensive use of <a href="https://github.com/siemens/kas">kas</a>, a tool for managing configuration in a declarative way using YAML. By assembling layers and configuration fragments, developers can easily create different operating system variants and product configurations tailored to their needs. This modular approach encourages reuse of common components while allowing teams to maintaine full control over the final system.</p>

<h3 id="clear-separation-of-components">Clear Separation of Components</h3>

<p>Moonforge is structured to maintain a clear separation between upstream and downstream components, making it easier for organizations to build derivative products. Existing Moonforge layers cover common use cases, while the Yocto layer architecture allows vendors and developers to add their own functionality when needed.</p>

<p>Kas configuration fragments are used to handle tasks such as:</p>
<ul>
  <li>Including required external repositories</li>
  <li>Activating the necessary layers within those repositories</li>
  <li>Managing dependencies between Moonforge components</li>
  <li>Applying downstream patches and configuration defaults</li>
</ul>

<p>This structure ensures predictable builds and simplifies release management for derivative systems.</p>

<h3 id="best-practices-for-modern-linux-systems">Best Practices for Modern Linux Systems</h3>

<p>Moonforge adopts established best practices for building Linux-based operating systems. It relies on proven tools and technologies like BitBake for image creation and kas for build configuration and reproducibility.</p>

<p>Modern development workflows are supported out-of-the-box by providing CI/CD pipelines to automatically build and publish:</p>
<ul>
  <li>OS images</li>
  <li>Over-The-Air update bundles</li>
  <li>Security reports</li>
  <li>Software Bill of Materials (SBOM) metadata</li>
</ul>

<p>Moonforge is also capable of integrating with different deployment and update mechanisms, like systemd, RAUC, or Mender.</p>

<p>The project is designed to support build environments across public cloud, private infrastructure, and local development systems, ensuring teams can adopt it within their existing workflows.</p>

<h3 id="an-open-project-for-the-embedded-linux-community">An Open Project for the Embedded Linux Community</h3>

<p>Moonforge is developed as an open-source project and aims to support a wide range of Linux devices and embedded products. Additional layers, features, and hardware platforms will continue to be added as the project evolves. Contributions from the community are encouraged.</p>

<p>Developers interested in building their own Linux operating systems or extending Moonforge can explore the project and contribute <a href="https://github.com/moonforgelinux">on GitHub</a>.</p>]]></content><author><name>Igalia</name></author><category term="news" /><category term="igalia" /><category term="frontpage" /><category term="embedded-systems" /><category term="mobile-devices" /><category term="silicon" /><category term="embedded-linux" /><category term="kernel" /><summary type="html"><![CDATA[Today we are announcing the launch of Moonforge, a new Linux distribution based on the Yocto and OpenEmbedded projects and designed to provide a fully open-source, production-ready foundation for building embedded and device operating systems. Moonforge focuses on extensibility, flexibility, and long-term maintainability, enabling developers and system integrators to create custom operating system images while relying on well-established industry tooling and best practices. The project is available as open-source on GitHub and welcomes community contributions. Building Production-Ready Linux Systems with Yocto Moonforge is an operating system framework for Linux devices that simplifies the process of building and maintaining custom operating systems. It provides a curated collection of Yocto layers and configuration files that help developers generate immutable, maintainable, and easily updatable operating system images. The goal is to offer the best possible developer experience for teams building embedded Linux products. Moonforge handles the complex aspects of operating system creation, such as system integration, security, updates, and infrastructure, so developers can focus on building and deploying their applications or devices. Using Moonforge, developers can: Build their own operating system by combining modular Yocto layers Rely on widely adopted industry standards Extend the system with additional features, hardware support, and integrations Maintain a clear separation between upstream and downstream components Design Goals Moonforge is designed around three core principles: balance, separation, and best practices. Balance Between Turn-Key Solutions and Flexibility Creating a Linux distribution typically requires significant integration work: selecting components, configuring build systems, and aligning the system architecture. Moonforge reduces this duplicated effort by providing sensible defaults and core architectural decisions, while still allowing teams to customize and extend the system for their own products. The project combines Yocto layers together with extensive use of kas, a tool for managing configuration in a declarative way using YAML. By assembling layers and configuration fragments, developers can easily create different operating system variants and product configurations tailored to their needs. This modular approach encourages reuse of common components while allowing teams to maintaine full control over the final system. Clear Separation of Components Moonforge is structured to maintain a clear separation between upstream and downstream components, making it easier for organizations to build derivative products. Existing Moonforge layers cover common use cases, while the Yocto layer architecture allows vendors and developers to add their own functionality when needed. Kas configuration fragments are used to handle tasks such as: Including required external repositories Activating the necessary layers within those repositories Managing dependencies between Moonforge components Applying downstream patches and configuration defaults This structure ensures predictable builds and simplifies release management for derivative systems. Best Practices for Modern Linux Systems Moonforge adopts established best practices for building Linux-based operating systems. It relies on proven tools and technologies like BitBake for image creation and kas for build configuration and reproducibility. Modern development workflows are supported out-of-the-box by providing CI/CD pipelines to automatically build and publish: OS images Over-The-Air update bundles Security reports Software Bill of Materials (SBOM) metadata Moonforge is also capable of integrating with different deployment and update mechanisms, like systemd, RAUC, or Mender. The project is designed to support build environments across public cloud, private infrastructure, and local development systems, ensuring teams can adopt it within their existing workflows. An Open Project for the Embedded Linux Community Moonforge is developed as an open-source project and aims to support a wide range of Linux devices and embedded products. Additional layers, features, and hardware platforms will continue to be added as the project evolves. Contributions from the community are encouraged. Developers interested in building their own Linux operating systems or extending Moonforge can explore the project and contribute on GitHub.]]></summary></entry></feed>