From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 817E6C7115C for ; Fri, 20 Jun 2025 04:12:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 806D36B008C; Fri, 20 Jun 2025 00:12:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 76EEF6B0095; Fri, 20 Jun 2025 00:12:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 594DB6B0096; Fri, 20 Jun 2025 00:12:43 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 2E4F86B008C for ; Fri, 20 Jun 2025 00:12:43 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id E5D40160FB9 for ; Fri, 20 Jun 2025 04:12:42 +0000 (UTC) X-FDA: 83574457764.07.05D5DD1 Received: from invmail4.hynix.com (exvmail4.hynix.com [166.125.252.92]) by imf20.hostedemail.com (Postfix) with ESMTP id E9F5C1C0003 for ; Fri, 20 Jun 2025 04:12:40 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf20.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750392761; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FXbas6lwwa8gH8kTWaVFbKtnnLLtPxzD4DDd3Pd0MK4=; b=jUF23RFROQE+rkTjM/pkQK1WRp6+nOp1TDWE/e3rQbh1FkR6g9/XlWViPxHV1NHHjlxyno qjtaOWvYTL9vbBo2VHyvBbcqO5sI/gELqmUYJTVEuMY8SY0jMTbdhLFyvXADbFhK2Do9Yw SW/rnoNoSdDMJf3G0Vj+iMzMOozy8YA= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf20.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750392761; a=rsa-sha256; cv=none; b=6M3WsIEgSiEt0IjDLCUDOcTEaK7+kpIB2GBX+Ca02qD05VydFQ3Pr7Dccu/LONxgpgLWPo l8aOeOC/mHTYVV/7RTOHpT9KlnRvxoxAD3wrZaRCBCCcOD28vxuFIppTxJls3+ghAYz5B1 Dx0EHWlgUwYjOx/yNuW/b+IEoqHylXY= X-AuditID: a67dfc5b-669ff7000002311f-81-6854dfb20d59 From: Byungchul Park To: willy@infradead.org, netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, kernel_team@skhynix.com, kuba@kernel.org, almasrymina@google.com, ilias.apalodimas@linaro.org, harry.yoo@oracle.com, hawk@kernel.org, akpm@linux-foundation.org, davem@davemloft.net, john.fastabend@gmail.com, andrew+netdev@lunn.ch, asml.silence@gmail.com, toke@redhat.com, tariqt@nvidia.com, edumazet@google.com, pabeni@redhat.com, saeedm@nvidia.com, leon@kernel.org, ast@kernel.org, daniel@iogearbox.net, david@redhat.com, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, mhocko@suse.com, horms@kernel.org, linux-rdma@vger.kernel.org, bpf@vger.kernel.org, vishal.moola@gmail.com, hannes@cmpxchg.org, ziy@nvidia.com, jackmanb@google.com Subject: [PATCH net-next v6 5/9] netmem: use _Generic to cover const casting for page_to_netmem() Date: Fri, 20 Jun 2025 13:12:20 +0900 Message-Id: <20250620041224.46646-6-byungchul@sk.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250620041224.46646-1-byungchul@sk.com> References: <20250620041224.46646-1-byungchul@sk.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0hTYRjHe/e+O+e4HByX1NsFonUjwUth9URRGQQHoggKpCRq6Mmt5rRN TYvAat0ktdQop9XMNG+xmqazG7aWlxK0hbVuKpbSxRRdDXVFbUbktx/P8/z+/y8PhxUF0lmc Rpcs6nUqrZKREdm3wOLQmu7t6ojCAQJFlmoGqkbT4EaPTQpFlXUIvo+9ZcHtaGagpNiDoajd SOCHZRxDX1MvC1XWzdBd1k/g/ql6DL05LQxkGb0YHowNsnDMVi6BjrpsKeSPl2Koz+hh4cXd Iga6qn9Lod+eRaDVVEGgO3s9NJmng+fZAAKHpV4CnrOXGchzmhn4YOxG4HzcS6DwaDYCy0OX FLyjvozCJ13s+gXC44EhLNRWvJYIDab3rGC2pgg15SFCpsuJBWvlGUawjuSywruX9xmh5ZKX CA02t0TIOj7ICMN9b4gw9LCTESy1nURoMzvYrUE7ZWviRK0mVdSHr90jU9e9MkuSSgLSnnr6 cQbqZzNRAEf5SHqiuBT/41+tnyeY4RdTl2tsgoP5pdTd20wykYzD/E2GOqrfTsjTeBXNf2qU +JnwC2mN04MyEcfJ+eW00pr4N3MurbrVOJETwK+gw8fuMX5W+E5GrxmlfpbzQbS14CPxq9jX a7mi8I+xTz1+pxD7aylfy1HvmQL0N3MmfVTuIucQb5qkm/7rpkm6GeFKpNDoUhNUGm1kmDpd p0kLi01MsCLfw5Qd+RljQyMd2+yI55AyUG77vk2tkKpSDekJdkQ5rAyWl7RsUSvkcar0Q6I+ cbc+RSsa7Gg2R5Qz5Ms8B+MUfLwqWdwvikmi/t9WwgXMykD5U3ZFZTjZq3PCP0ZvCUu7/Zls PBB5au/zvkVVBoUyyN1xPvzm3iXKtXkR8RcGyOn9Fy07opd3rFjchtbF9rzZRwenrvsUXD9t fkjwV05uN6F5Jx0FoUm516mucWXqhvzVXwwjOXVDOe4YXbt3vPGw98OGfRHaVa0zN6mjSp4k zA1TEoNatTQE6w2qP8oEOWIsAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0hTYRjHec97ds7ZaHVaow4GCqMIpCwp44Ei/OaxSISKIII61aENdcam pl3Ay0iz1Ew/6Jw2W5pOYzFN57rJtNwaZijVuqmYSoFpNpu3bpsR+e3H8/z+/+fLw2DFIhnG aLRpok4rJKsoGSlL2JW3xT50UL2t9/F2MNmaKWiay4Tbww4JmKxtCGbm39Hg7+6hwFIbwGDq M5Dw3baAYezpCA1N9v0wVD9OwoP8dgwjJW4KigyLGB7OT9KQ62ggoKvaI4EXbcUSKF+ow9Ce PUzDgNNEwWDzbwmMu4pI8BgbSRgqjoWn5rUQ8E4g6La1ExC4Wk1BWb+Zgo+GIQT9XSMkVOUU I7A98klgcS7YUfVkkI7dyHdNTGG+tfENwXcYP9C82Z7OtzRE8oW+fszbrZcp3v7tOs2/f/WA 4t0ViyTf4fATfFHeJMVPj70l+alHLyne8ukrwdtaX5KJiiOy3afEZE2GqNu657hM3fbaTJyx SDOfBcZxNhqnC5GU4dgd3E/PZxxiit3E+XzzS6xkozn/SA9ZiGQMZu9QXHfzu6XAGlbgyp8Z iBCT7EaupT+AChHDyNkYzmpP/dsZwTXd7VzqkbI7uenc+1SIFUFl7qZBEmI5u5rzVI6SoSgO 3rXVKEJjHIzm3avC15DcuMwy/reMyywzwlak1GgzUgRNckyUPkmdpdVkRp1MTbGj4EvUX/xR 6kAzA3EuxDJItULumDmgVkiEDH1WigtxDFYp5RZ3glohPyVknRN1qcd06cmi3oXWM6RqnXzv YfG4gj0tpIlJonhG1P3bEow0LBs9X0ekbPbObtoVXVqS62TxlfoEK4qP8vf+kn1sbJJ7Knrs 7pZViUImNbpW+rA13JJfe7mT7vNWFsT7rngbciI7hlcOKhsG6/w19cpDxJejUze6so8WnHDW ZMCWTmfSeZO7rKd4dsGbFhGjvUDeuulq9BD75sPPXnLG1ZVuYFSkXi1ER2KdXvgDgdot6Q4D AAA= X-CFilter-Loop: Reflected X-Rspamd-Server: rspam11 X-Rspam-User: X-Rspamd-Queue-Id: E9F5C1C0003 X-Stat-Signature: 4pe1p1fg378po71cubco9tou74sq5bem X-HE-Tag: 1750392760-381997 X-HE-Meta: U2FsdGVkX1+srgULZVzY22541+ujpV5XJsvBx+hB1KmiE6x20r5g9HzB29Bbn2L5wCczqM853TSZPWWAGByGAKl9eBsKIP/SmKsAETH94OJBAR4qcDjUpLD1seQHn/YdE+x5+kjYE0MIrS+QhgQkMTDmDsBMkSe3NFpsZcQhT1+EpPHef2PzwYoAn68k8MiFWG28dM0/DGlQg685Xq3VxW+oJkUFjuvfkMKDP3lTsThTN+saX/qM4ju2Hc0oVPW2AAf5ftoLxmCeWu1d/We5WdCWptbgRBxpxO15Km5Qfi3vbOqgXXCh+cHSy764TQT8AuDG5Lv9ClpBn8uL7XrPUIy4Iwe48Vqxof3FOUFj1X6ySN7I7cy0ey9S4+aqrW5vHz87kCf+dFH1Pc9iwlrPCqPfLTBfeW4YOkYv79XIIjRsKvwShG9C9MUw8ZJSmznpbby3RsGREDfNoT7AG5eRLWsSe5R4rbCG5pX5D4SXIBCFKshtl7Qx8LBg7otes0MNJYRG2HbnM/H3QS6t/dOVZWrKUfH65VEJIm22Vqcuw77iVRENJKwirTgHQG9TjT2KLT6tkQEVckv+tNSvM1jt/dhntK9OPIVfoMHGBbGVyB4kJxcvrRlMdLvM9mygDo90VqjMFBrQ/ZgmG3wumtffnWTXzzNmUDIpPTPARRIJ2DAS7GWLnbDxpXA1/Ax6bDRL4GJ9IdQnDhCjKpNp1V6im8X9VwBTXAarYNCaJtZKfD9jbaM/7jda7NAbiX/PeHnITesvqiMCCQLZf/zUJ/61PaxCQcnohAda5K/faGr9M60vrpUafBBfM9eAz8TySCn0FjjMQpWCR+7BPTbMn+YFZbpxQVSrrJ58K3KiefpLt20Y/KNnpD9i45YYtpmHFIbwXu8FSOn+W70HBwrcSrKZCC/kVAY33MelNcHOMBl33fxUjuC0iqelqKsjpe/LgVHHOCHplnA1zRnBzWvuuLH /8bxTkQK D2zs9a/a3RsiepBkVCKl0WfDFKHHJo4csUTpeXBWLlnomceplpPk8PpmNKBMm1286qDR8qmeFb1aU4G+nVLTA4ObdaRSNa16X9mbDiF3e6EVliBRNKtIws8onrkcWwnMONNoxP7lIlT+gOvqiD1dVuMDqdx6Mx2qWfeNnyUXxfPoP4n/dCWTTjISTEx6CSzNh/Y7THrXQktFm/EpVPL5NIUlLM1OHE3KybxReVM8nsu0F4bjZOY/UIwBqNdXRyyWowznNBZ2kPHuqkr4= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: The current page_to_netmem() doesn't cover const casting resulting in trying to cast const struct page * to const netmem_ref fails. To cover the case, change page_to_netmem() to use macro and _Generic. Signed-off-by: Byungchul Park Reviewed-by: Mina Almasry Reviewed-by: Toke Høiland-Jørgensen Reviewed-by: Pavel Begunkov --- include/net/netmem.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/include/net/netmem.h b/include/net/netmem.h index e0aa67aca9bb..e27ed0b9c82e 100644 --- a/include/net/netmem.h +++ b/include/net/netmem.h @@ -191,10 +191,9 @@ static inline netmem_ref net_iov_to_netmem(struct net_iov *niov) return (__force netmem_ref)((unsigned long)niov | NET_IOV); } -static inline netmem_ref page_to_netmem(const struct page *page) -{ - return (__force netmem_ref)page; -} +#define page_to_netmem(p) (_Generic((p), \ + const struct page * : (__force const netmem_ref)(p), \ + struct page * : (__force netmem_ref)(p))) /** * virt_to_netmem - convert virtual memory pointer to a netmem reference -- 2.17.1