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 D871EC77B7C for ; Wed, 25 Jun 2025 04:34:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DACEE6B00B3; Wed, 25 Jun 2025 00:34:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D5CBB6B00B5; Wed, 25 Jun 2025 00:34:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B8D936B00B7; Wed, 25 Jun 2025 00:34:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 8DA7C6B00B3 for ; Wed, 25 Jun 2025 00:34:10 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 4CD141D9754 for ; Wed, 25 Jun 2025 04:34:10 +0000 (UTC) X-FDA: 83592655860.15.5C1B22D Received: from invmail4.hynix.com (exvmail4.skhynix.com [166.125.252.92]) by imf13.hostedemail.com (Postfix) with ESMTP id 50A7C20006 for ; Wed, 25 Jun 2025 04:34:08 +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=1750826048; 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=lQMmQUTf/hqy9bRTLgfUeI7K9Uk0Qt8GYV6z49RSXmo=; b=ELgBIJjp+0fC8MArM/aykjxWBgCvvnozmMHcf1+gdNew6zJjcUCVkNOviwY7DbC1NHdKGn zNLwsvWbZlen0nur0hBRU5PsNHCd+rnn9erm7dffFIhdXzMpPzhl/pZqBwuUh8kN3aYmW3 pttSKGVBM5DN9Kz/ksEZkcnhwYJjeDg= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750826048; a=rsa-sha256; cv=none; b=VdsZKKnonem7H9F0WLsMd4Bdj+jB/H66Y/gph6TtkUiurpwiqNnY0ZsDjhcVuMYh+CsJHx oBXKoFoiU7x5/sKD8O/zjEMHAuFukE0zAj0IE12T3Vm5oZdUE8hp1A2E188sojKACMKRMt /mwsZr9bVcGLNAgD9AVa8HTj7n7Dq1g= 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 X-AuditID: a67dfc5b-669ff7000002311f-12-685b7c397362 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 v7 5/7] netmem: use _Generic to cover const casting for page_to_netmem() Date: Wed, 25 Jun 2025 13:33:48 +0900 Message-Id: <20250625043350.7939-6-byungchul@sk.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250625043350.7939-1-byungchul@sk.com> References: <20250625043350.7939-1-byungchul@sk.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0hTYRzGefe+O+c4XB3X7ZhBsa4EpUbhP5DoQ9FbEARBH7of26kt3ZRp pqEx07RWWnRZNlfN7GKbsVqWM0rK1BKjwlitm9q8RBeT1MxLUDtJ1LeH5/88v+fLn8OaYuVk zmBKk8wmMUnLqIiqO/z8vMVZG/QxpW4eHJ4KBtyDGXC5zacEh+sWgv6hNyz01T1koKx0AIPj aR6B755hDJ0NQRbc3tXQeqmLwJ2CKgzBI48YKMwbwXB36CsL+3zlCnh2q0gJJ4YvYqiytLHw /LaDgZaKX0roqi0k0Gi/QqC1aCk0OCfCQNMXBHWeKgUMHD7DwPFmJwPtea0Imh8ECZTkFCHw 1ASUMDIYYpTUt7BLZ9AHX3owrbzySkGr7e9Y6vTuojfK51JroBlTr+sgQ729x1j69sUdhj4q HiG02tenoIW5Xxn6rfM1oT01foZ6Kv2EPnbWsWsi1qvidVKSIV0yRy/ZqtJfL7uvTCkLy7DV nyIW1MVaURgn8AuFzzebkBVxf/SToiWyzfCzhUBgCMt6PB8r9AUfEitScZi/ygh1FW9YOT+O FwVLZ5qcIfxMob36JSNrtYz51IFG8VMF97V7fzhh/CLBEcwlstaEMvtf5ODRfITQeLqDyEgc 2vWc1cg2DlVzb5ZgeVbgKzkh392pGGVGCvfLA+Qo4u3/1e3/6vb/6k6EXUhjMKUbRUPSwvn6 TJMhY/62ZKMXhf7lUvbPDT7U+2xtLeI5pA1Xx+xfr9coxfTUTGMtEjisHa+2xYUstU7M3COZ k7eYdyVJqbUoiiPaSeoFA7t1Gn6HmCYlSlKKZP57VXBhky1IF+dPUBiRd5PpUH7PBVvLyWjG 2Z1tVfMTEmzh2/eumCnmR3yc0njg4NQ5T1fZPhojv72bHtP/4Ydy8XJTumuwIGFn/1l/rGCp cfkc/visyJXnW+vPZRvoshFdxaHyuMH33sRA9wJ9StRwotu+cV1XsWv52JQxlZGzcmI3T/M/ l7QkVS/GzsXmVPE3+fNa8isDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA02SbUhTYRTHe/Y8u7tbrW5L6mIfpJEJYrYi6URhRh98CIqiIjAob3Vpo6mx mWhkzNSkkcuXKJszrJGpM1bLcrMMU9MkqJioKzNtvvRC2YsmvkFtRuS3P//zO7/z5bBYNUVC WV1yqmhIFvRqRkEUOzdlr954+oBWc6NQAjZnDQOOiXS41e+Wgq36AYKxyR4ZjLa0MWC/Po7B 9jKHwC/nFIahVr8MHK4d0FcxTOBRXh0G/8VnDOTnTGNomByRwVl3pQSay9ql8OqBRQqXpm5i qDP1y6Cj3sbAu5rfUhhuyifQbq0i0GeJg9bypTD+/AuCFmedBMYvlDFQ7C1nYCCnD4G32U+g NMuCwPnYJ4XpiYCj9Ok7WVw4bf7yDdPaqtcS6rH2ymi56yS9VxlJzT4vpq7q8wx1/SyS0bdd jxj6rGSaUI97VELzs0cY+mPoDaHfHncy1P7xu4Q6azvJLlWCYvNRUa9LEw1rYhMV2rv2J9IT dnn65adXiAkNy8yIZXluPf/CEmtGcpbhInifbxIHcwi3lh/1txEzUrCYu83wLTU9s/wSTuBN Q6lBhnDh/ICnmwlmZVDzeRAFM8+F8Y47jbMeORfD2/zZJJhVASa3Kwv/5Rfz7VcHSVCJA3ed 11TBGgdWs++X4gKktM6hrP8p6xyqHOFqFKJLTksSdPqYaONxbUayLj36SEqSCwU+oiJzptCN xjrimxDHIvUCpSY3QauSCmnGjKQmxLNYHaK8vCFQKY8KGadEQ8ohw0m9aGxCy1miXqbcvl9M VHHHhFTxuCieEA3/phJWHmpCOvsH+7q71ZoiR++uc3ktnocL23aXOQe/JnKFCZn9lRqyT/O+ J2I+igqvbxyg3ZaGmPmrYEtUxUyD/Ozh9Z744ghkI8LBsM7UMykl11f0zft9acz9qihl3p76 jtNLntywj4SuRLfDCrPy3p9Bpq29hkWRBTN7mZjMja1eu2XbJzUxaoW1kdhgFP4AWDEA9A0D AAA= X-CFilter-Loop: Reflected X-Rspamd-Queue-Id: 50A7C20006 X-Stat-Signature: tn4ieh9hyt5orzkghai6sdouu9kram71 X-Rspam-User: X-Rspamd-Server: rspam01 X-HE-Tag: 1750826048-945619 X-HE-Meta: U2FsdGVkX18LtbnDWjf3zEuZHqFsqi8+hxX8YVpJP7bssw2/VsPFhFtf/nZqE/3pBAfXCg/1C1Rw6y0JVeneILDwVap0qn/eAyxfKMkDCNsXWMm8C47WRMj/VBRQletKsuFIgdVOJlSY7uOxEljC8FhgEHqk2bp9XzDbfpF449iUu5ELd4vfzB0ZPrDbbNG6IBr5KAhLO+b8xJdQjXXGaf3DiNcnvJz6QynxuBqQLpDwAGPVeN4aDf3xKyobWgbAKzdr5IMFbsKAkbYMr8UTRQxmBF2QFXxAqwUWBRzFZKh7nzwunUSCHx0naQ7hV+Mxc2nX5O5ZBYLZ/oo8FC8mhPAh1ftME0/WoldpArBSNjOX/BqUOYL6klKFC6Ve5+PiY63f4u1fF/TZqC6I/ilDglNBTsSiDjo4yItYm3XDyMusOVF4L8s1nL0rgKONoo6beK0nnlB9+nfhhK/hVw3leyxMTd707LfZ0DSqxyEoD/XhIJYrdzBhgC/ad+Dvxl/nWgRmysK+Ub5oZKnc+UdUJwhgQzSoWh10kmmeuD8nAqwTD0b6Vv7V8yCP1eSVOxjQdVeXODFnLwLPFgh3NmyvvuQhKHwWOa7F8G3lJCWgTBvsOTEcahpK2KlbT0p9LFxe1y004D/OFu+gQlka2aLkXRF1m2bZEkavn+/DsNvFKkGvsbdPEzWwsflrJr3mt6zzU01glFBnU5Jt+Vlsz26hSG/Vm7LzF3/f8Xs7EHIbL5df+UNJGo2e1TMO0BuVz9eGzYaNG2JdBnfcy3tB+TMSEEAFIyafMIox5TY3nzXVZGRd1Fp0Ma+XhcXoG2dSmFxbTZvO3o/4uPjqpmH4/0hKDh7KBx2n+/PezTpKXACie7FZ5bqNEbSbAiQ1mrngs1H4UwMjfeoU3k27P7RiozrGqe2UmiENJQqBh8Rfr4vq27ZuPfr00hIZw0UfvTxcmSJeVzMj3If7kxGjV5HgUbL q36BJbZZ G+Q+yvSwtLUaApU120sGrf4WxtN1FxxcUdWGOI1CVkL6a9CV8pyFhYxBjEptcJO5GDY7Ak3Yux1L8V2brkOdqRcBtH3uKvhIfF9ZLoNQ/n2qDeJdV3H5idDzS6fF6S8WyvRTfZGinHH7op2XdPX3BQEYYBN/2knfq3FUDjukTTtDm8+L5Yq6Ca9wT+lFTGY/URQD20vL0wSbBHq46NkEk5WtLkn0/AQFw+YtAEFyycBvufnI= 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 e9eee8f680d5..535cf17b9134 100644 --- a/include/net/netmem.h +++ b/include/net/netmem.h @@ -213,10 +213,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