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 AFD80C83038 for ; Wed, 2 Jul 2025 05:33:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DC8506B00B7; Wed, 2 Jul 2025 01:33:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D2A3C6B00B8; Wed, 2 Jul 2025 01:33:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BCAED6B00B9; Wed, 2 Jul 2025 01:33:16 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id A66BB6B00B7 for ; Wed, 2 Jul 2025 01:33:16 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 7D0B116075C for ; Wed, 2 Jul 2025 05:33:16 +0000 (UTC) X-FDA: 83618206392.01.47DDBD8 Received: from invmail4.hynix.com (exvmail4.skhynix.com [166.125.252.92]) by imf13.hostedemail.com (Postfix) with ESMTP id 8B8CC20007 for ; Wed, 2 Jul 2025 05:33:14 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; spf=pass (imf13.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=1751434394; 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=F0TjAVCNBhtmwTXMm+80QLKArpu8UTdvY0CgsFHnHuk=; b=nzseqnBzDPYZh+R3CPkHId1KdsViAFLvgjw9tn49+U5E4Za7MjIO640trvGVdYq70MmNWd HV5FHXlY2F5pItaj9iDLx58MTZ4oFl4c/mc4dQdFzDdsNRkOq06dQ+hf25B3lfZGHfZVG1 ufsixpRUDPM9Z1hGmBVExLZBqb3zGqQ= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=none; spf=pass (imf13.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751434394; a=rsa-sha256; cv=none; b=cB/wdbiDE2w1K86csOWgA+HmvwAT4Nc/+5aGwHh6OXfCOC3n3M82cUlTRs8i9zfkH1Xrpg YChkiHzNI3Wl6gev+WI7J9Z+1/yPuulfQaTh+1iklbkgYJjR/bvZor2g7CKvW+KqT+9Iqs y57MqpqHQnyZfFbLbKR/SF//Xbd1MbY= X-AuditID: a67dfc5b-669ff7000002311f-29-6864c492da24 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 v8 4/5] netmem: use _Generic to cover const casting for page_to_netmem() Date: Wed, 2 Jul 2025 14:32:55 +0900 Message-Id: <20250702053256.4594-5-byungchul@sk.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250702053256.4594-1-byungchul@sk.com> References: <20250702053256.4594-1-byungchul@sk.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0hTcRjG+e9/ds5xtTgtq9NFolEYiqVl8gYV9iE6HwosiUQ/5Mmd2nCa zUsaVN6gGmliQTkt1s3mJafzNrvMmksnRollzExXy4zwVlkrs7JtEvXt4Xmf3/O+H14ay0rE S2lVcpqgSebVclJCSMbmXgsptimUoRV3N0OZsZqEqu+ZcOu1WQxllU0Ivkz1UzBp6yDh+lU3 hrKn+QR8Nf7A8K7dRUGVaRc4y4cJuHeqGYPrnJ2EgvxpDPenxinINRtE0N1UKIYLP25iaM5+ TcGzO2UkDFbPiGHYWkBAp66CAGdhJLTrF4G7axSBzdgsAvfZyySc79GT8DbfiaCnzUVAaU4h AqPFIYbp756O0keDVOQqrm10AnMNFX0irkU3QHF6UzpXbwjitI4ezJkqz5Cc6XMxxb16cY/k 7JemCa7FPCniCvLGSe7Tu5cEN2HpJTljQy/BPdbbqKj5sZLNCkGtyhA067bGS5TjRd+olOt+ mWM3ckXZaJjSIj+aZcLZ1qEmUoton3a9l3ltkglkHY4p7NX+TBg76eogtEhCY+Y2ydqq+33s AoZnG3SVvhDBrGbzSop8WurtrGtDs/0r2KraBz7fj9nIWtrtpFfLPJm3p23kbH4+21kyRHhv wJ7Fxiu+G7AHzWssxd69LGOm2RqXVjzbuYR9aHAQRYjR/Yfr/uG6/3A9wpVIpkrOSOJV6vC1 yqxkVebahMNJJuR5mPLjP+PM6HN3tBUxNJLPldqfJyhlYj4jNSvJilgay/2l8wI8llTBZx0T NIf3a9LVQqoVLaMJ+WLpevdRhYw5xKcJiYKQImj+TkW039JsdMJpH9mw8knAxqPP3oiCd5/u W/5RGxEfc8LoosyN7ti0mIuJ4XtjB4JLCvKaJy07ww7+Pja1JipHEj1jIPYFZ81pjXR+Gh0Z Sltcx1/yF4+s0z79uKnry/acqL6TiYEhC+s3xV1RHLhv+dC4hT0ycDu0iN9RO/Arongbzq2J 3tOq/iYnUpV8WBDWpPJ/ALvX9TksAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA02SbUhTcRTG/e9/d+91NLsu04sV0kDKQktKOJSYfepPkZR9CBPSldc2mis2 FV8o1AnWSDPrQ22rLM33sVq+hpnNZUr0glJZmspMMzItLVNn1GZEfXt4zu885/lwWCxzUYGs SpMqaDUKtZyWUJKY7frQEkeScvOzxjAwW+toqJ3LgMrhZjGYaxoRfJvvZ2DG8ZiGshuzGMzP 8yn4bl3AMNrpZKDWtheGKsYoaC1owuA830VDYb4Lw/35SQbymqtE0HG1WwwvGovEcGnhFoam nGEGeu+ZaRis+yWGMXshBd3GagqGiqKhs9QfZp9MIHBYm0Qwe+4qDRd7SmkYyR9C0NPhpMCU W4TA2tYnBtecO8P0aJCJDiYdE1OY1Fe/EZEW4zuGlNrSyN2qDcTQ14OJreYsTWzTJQwZeNVK k67LLoq0NM+ISKF+kiZfR99SZKrtJU3Kxr+IiLX+JbVPdkgSmSSoVemCdlNUokQ5WfyDOVnm nfG5PE+Ug8YYA2JZntvKOz/IDMibpbl1fF/fPPZoPy6cn3E+pgxIwmLOQvOOun7GM1jBKfh6 Y80SRHHBvP5K8ZKWunMe3OlAHs1zQXzt7fYl35uL4Ns6u2iPlrmZkTMO+g/vy3dfeU95OmD3 Yeu1pQ7YvapvMOFiJDX+Rxn/Ucb/qFKEa5CfSpOeolCpI8J0x5WZGlVG2NETKTbkfomKU4sX mtG33l12xLFIvkza/vSoUiZWpOsyU+yIZ7HcT+qzxm1JkxSZWYL2RII2TS3o7GgVS8kDpLsP Coky7pgiVTguCCcF7d+piPUOzEHcNF57eEvykZaRvOTFqtepAQ9bPq2OGzBZVi1WfKxMzA4d t6zM9lqtCQq/FHP6Z2TkHl2INNrfFmmfSdi4LXj5+vz4obexqZaI4E2/ekIMDSsyv5sP7DBR rJe60jdoZ+6beK9l70oi4qY7B/yX7y8PCb/pKiCvfWIbo/wtszjrul5O6ZSK8A1Yq1P8BkzG uQIOAwAA X-CFilter-Loop: Reflected X-Stat-Signature: umyiyz9j7ykip6tzomhocjwf8gok7n8g X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 8B8CC20007 X-Rspam-User: X-HE-Tag: 1751434394-705134 X-HE-Meta: U2FsdGVkX1+oeW7fHy4VZgSMFiy9MonjhnUhfc4ze+YlvK1wXOtKoAzsI/LnL7Z/5oDEDRgI5B2t+hwtDD0Y8oFyUqgNw1PcX7lC3iBQRx4/13xbev9lBEo4AVTe/HG3Mot42+s5lZnNeMfnyJf90G9GAzOKGSoA3Bg1bYe2VrBzP5s0V4FOPF4qYIVXLmDzLVv69jZ09Xy3WRJQ8vmE09msZBcMSdqurilVuCSE2Fnvow6G6o56/nJUt8IB3jLsQMS9oWBxuJwiZH4Q4da+bczt/dzNkb/1IshcbAPfZQveHrVn5NA24fjXmx5BEKF4dPArpm3MocxJNV/NNggSHvYWoPLx1bznyaLXj+9nXnyRXCMTiIcjBNGwL02iC7KFjjLDVNf6jumL23/JtA7PvToY1+it5XBfS09x/U/JaoDjwPi0qJ45ehh6OpwFjeKUExRA7pcHd29nACant5uiuM4CHman7DE/zVJzPrBFhrZDsVvzCwTliqj4m3I+9+Ysibo8OzS5/0nngunoWp3t4HHBArxq2iZK95jusWJwa/nO26OhHKOarxJy6JwsZFqMzUJ3E7lhN3l5Msjikm4CYKuwgfsDEPvol0m3yYP8zepk6QbUh1DNsdX1fB8iylBr2UPtJa4XztqqPtq+zhM2I8D0G+g75Jl7kY1l9MQ7uns0+k6TS07tY7YPAYidPx5XU19kZXHfCHjMXFlItTlJYg9LqlV3IJxX1EIjBB7q2aolCNVUvexWygQAbrYtrtO0l07zad5rhFEgjqx9drbQWVE7PKgwRnSOb9axXxcww5oP9miFygjwRv9nOuTZj09d9thfNIzBnGnmK8b+3Pvk129bwNJ9BdUYwdc+8/EAy7Iy1ijNh6BltN2p1zr+SCetQm0+xXWAB/ehaR8c8E7YTl1z6h5Dk3C2VFda/p5F2AbVBYbc/odTnTYBnjidb3RvVwpK5oiy2iDSLh+CITU XAuAnnJ9 CGTPX7oen3J/pf0nCSWqU4mW4rAzwGYcqMSAfj1B5Xmp0/b0BDi1TRRudJ/fBa64XBzRZg0AdKXrQj2J2qXWQVGqInMTpyPnll9JaQNKc1THX+aqdoS23x3B0rHBsrwYd454nXBN+G4U8ANyDmlpP6mZJPQKP5SNbe1j/htEHCPrLYzinO4vroovw29IWL6RYi+TgZvVlx0TwroZAU4I0vXZl6gzAVbQ9R996pLpOmbswirY= 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 7a1dafa3f080..de1d95f04076 100644 --- a/include/net/netmem.h +++ b/include/net/netmem.h @@ -139,10 +139,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