From nobody Wed Apr 29 21:42:55 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4g5W4c20ygz6c0dV for ; Wed, 29 Apr 2026 21:42:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4g5W4b73fLz3gxk for ; Wed, 29 Apr 2026 21:42:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777498976; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bzjIySey6QrPwbSBfS7XOnkR8w8XqJ4qaVZzl3V017E=; b=ftxnG9cgXSxxQ6GRd4uA/fdIqL1DBKqTlRNsGTu9hoswiANqOp25qN1aB0ChdsV2U9nqJt BQl33ZZAiwW+Pgxw5awcTxOCM5t8v5K3E9gqz65gq0ZqUOVKFd5J/P7Tn8pDG1E+aMtCjr E48x8E2KY8NLPgieBQS3d/5sKOhBCFzdQaFK/PcgGAz9sWE+xAjdXZU92Ujpq1mXFSG3QQ GokBxWBeampZ+By6pG9zV58xuEIZOnJQP0qhtERvCkDLhg6Lm8NK+y0QJgUyMIdOZls0Sz 7Xu19eD5TdkMWucppQAL38T73JxBSlqOYmi9ixVTP/UNeBghBDefxi9Gd0H40g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1777498976; a=rsa-sha256; cv=none; b=Nc2LuaPD8omRqELBbXKmvUsf4Y1kd8yWjvYbBq9PHw/7SPV6vSzykP+j7u8+ev6DvWd/WZ XxxQOiylPIKG8L1insRuECjyT3oOdtwLEOjJuDPt4iCL07YwKtoCJpmZwGr21wBnuiR6MM ItJhAfBlaCDTzj1qG6jpTV2gxG8bzmbpGnyp3FVCW0g/ox6k72ZqeTqcYX5z+zEnePXeSW GqhYFL7pU89qC8GuRhnOYa4MeJR6rIo8RxozyEZqFvaUH+ddML28oBTDRjwI0+kDQIS99F C5tJiMRGU0ww8AGK7+fLaJNBaiNS0CPlA8zzM4v253k7Zg84/ncaTQqvdW9yng== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777498976; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bzjIySey6QrPwbSBfS7XOnkR8w8XqJ4qaVZzl3V017E=; b=yMpHvdBAf18dHWZjkYA7yrJrD6rLK4ZAc9ft/RvUOwcDXxHayV0Uw5pn4OTsAWOYQkU5wx qaqlth3hP44Dw4r1nZOVjIKlZhDIIC5R7vKk0aMN068NanzKxGPpR34Bx+2Kt/ePzKHovN 8FO9FMPWmIeUZx6zdHmlz4ru8wNXsJrnOUeuaA0YqQs7SzPWIzB7ESG3KRb2Nd5c/GCgwq jfiqlJZ9lo4PaeIpMSfF8hcZdBQZCDhiWdOoBhH+nlerrHhVJ2arct2HMCKzgPoUXfOOTu a323JWfFHhy8rxKOHse84Qfo0ZR1cg6wkvEHj9vtMv0aM8AwouoANwSaqPqc3A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4g5W4b6QxqzyRf for ; Wed, 29 Apr 2026 21:42:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 19146 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 29 Apr 2026 21:42:55 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jean-=?utf-8?Q?S=C3=A9bast?==?utf-8?Q?ien P=C3=A9?=dron Subject: git: f9e20ab2e8c7 - stable/15 - linuxkpi: Add more `struct folio`-related functions List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dumbbell X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: f9e20ab2e8c7ac9159e51e6741502c75a356d932 Auto-Submitted: auto-generated Date: Wed, 29 Apr 2026 21:42:55 +0000 Message-Id: <69f27b5f.19146.625f963@gitrepo.freebsd.org> The branch stable/15 has been updated by dumbbell: URL: https://cgit.FreeBSD.org/src/commit/?id=f9e20ab2e8c7ac9159e51e6741502c75a356d932 commit f9e20ab2e8c7ac9159e51e6741502c75a356d932 Author: Jean-Sébastien Pédron AuthorDate: 2026-04-11 14:19:39 +0000 Commit: Jean-Sébastien Pédron CommitDate: 2026-04-29 21:03:40 +0000 linuxkpi: Add more `struct folio`-related functions The i915 DRM driver started to replace the use of `struct page` by `struct folio` in its GEM shmem code in Linux 6.12. linuxkpi were missing a few more functions: `kmap_local_folio()`, `memcpy_to_folio()` and `offset_in_folio()`. They are equivalent of their `struct page` counterparts. One difference is that `kmap_local_folio()` takes an offset argument and the returned address takes this offset into account. Reviewed by: bz Sponsored by: The FreeBSD Foundation (cherry picked from commit 84fc57a369dfac882cb9e9333635aaa11978948f) --- sys/compat/linuxkpi/common/include/linux/highmem.h | 22 ++++++++++++++++++++++ sys/compat/linuxkpi/common/include/linux/mm.h | 1 + 2 files changed, 23 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/highmem.h b/sys/compat/linuxkpi/common/include/linux/highmem.h index dc1c4fe2f299..294b2666031b 100644 --- a/sys/compat/linuxkpi/common/include/linux/highmem.h +++ b/sys/compat/linuxkpi/common/include/linux/highmem.h @@ -99,6 +99,19 @@ kmap_local_page(struct page *page) return (kmap(page)); } +static inline void * +kmap_local_folio(struct folio *folio, size_t offset) +{ + struct page *page; + char *vaddr; + + page = &folio->page; + vaddr = kmap_local_page(page); + vaddr += offset; + + return (vaddr); +} + static inline void * kmap_local_page_prot(struct page *page, pgprot_t prot) { @@ -168,4 +181,13 @@ memcpy_to_page(struct page *page, size_t offset, const char *from, size_t len) kunmap_local(to); } +static inline void +memcpy_to_folio(struct folio *folio, size_t offset, const char *from, size_t len) +{ + struct page *page; + + page = &folio->page; + memcpy_to_page(page, offset, from, len); +} + #endif /* _LINUXKPI_LINUX_HIGHMEM_H_ */ diff --git a/sys/compat/linuxkpi/common/include/linux/mm.h b/sys/compat/linuxkpi/common/include/linux/mm.h index 156b00a0c0f0..a639c0947031 100644 --- a/sys/compat/linuxkpi/common/include/linux/mm.h +++ b/sys/compat/linuxkpi/common/include/linux/mm.h @@ -264,6 +264,7 @@ vma_pages(struct vm_area_struct *vma) } #define offset_in_page(off) ((unsigned long)(off) & (PAGE_SIZE - 1)) +#define offset_in_folio(folio, p) ((unsigned long)(p) & (folio_size(folio) - 1)) static inline void set_page_dirty(struct page *page)