From patchwork Tue Jul 30 02:26:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mina Almasry X-Patchwork-Id: 13746400 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 505D2C3DA4A for ; Tue, 30 Jul 2024 02:26:41 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 56AA510E49B; Tue, 30 Jul 2024 02:26:40 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="rHM3nntX"; dkim-atps=neutral Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9634110E499 for ; Tue, 30 Jul 2024 02:26:39 +0000 (UTC) Received: by mail-yb1-f202.google.com with SMTP id 3f1490d57ef6-e0b784d049dso3520282276.3 for ; Mon, 29 Jul 2024 19:26:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1722306399; x=1722911199; darn=lists.freedesktop.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=qpjJDC2/7eGvs2TUXo8T6/AXlUgH8srqN9C/rVg09l8=; b=rHM3nntXRduCqA6LVU9nO4TUUNa6N1Fk2wgDF3LLgaFV9RpU4PAwxYIHpDxNahl9Op R8yPoSQquI4s1xChtKBrxThG1yfwmFWuO+oQ9i5F8NFKhwAsvhMaYisKbtSWrIj/2jvn qY2vmPjtbplwdsfLYw/AZMyQDopARnwDU2JHn2R+moeKaK5VtJKPNvHNKM+Y07nnxPgV 4RgkkwBxOPMX1EEUvr18XSeWeqNKO9/iDCEpHTRgr4MOe18Ssuxf2sWETbeDYqGMEkZ/ RHxSUwxeUGZ5CYbhm4IAOQ7f8UN24/1b7fk+2Utyb3rkI3N8FfQbzMhwb6OE5gjD6WgK MH9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722306399; x=1722911199; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=qpjJDC2/7eGvs2TUXo8T6/AXlUgH8srqN9C/rVg09l8=; b=fTEOFUg6SvqXk631dv6oPg36Ht5Zw0ihlgG63fQGn0fEKMXdez2NA4APEx+qAQju9C sBb7PMfV/Y46pAOZ2gjHhq8oUQIFXe9v6x9EWVFaund4NkK8STI3wq2nOOzOqMsz/lzA eDAzKZTcYeDh0C0YNghuDDWC8bHTJ4bR97rGEz3cdh8xquMlaIvsPsHAOkmP1gY6mAbS 6J65M/mB5Q7LaNZVzPUiq5e2uERXyQEGNQTavU9U1FJGEYuavaiyseibsfJrnnrYIoaG /wUtC5V56PUhOBc8NyCDNA4T6xVf9B+hH/hcbrvf2oSqqSWpJ3p/aw9KBDA2UEKTdgl4 LblA== X-Forwarded-Encrypted: i=1; AJvYcCUP9lejhaYU4WVHbdZSCb/QGY594jkqzSLclUEHEvNxAoqY/C84BRcGlS3aIG5y87r50/HvZrwjyE6eZmNMsnqfdkbEf+NR41A2pC5HEZhh X-Gm-Message-State: AOJu0YyuFF/vmrS6Dy/1y836QffXNuRNKCS1QYucsTfrzbWP534uaZHu b09piwEx+ecjs05BCQZ2QmIqcjb/sUlM24wVokKxFKgqZxAQsSrY24JrcnQUvPt1buyZG+5o3ci Cf70H5EWeQONsd6JkZB0KNw== X-Google-Smtp-Source: AGHT+IHxQctUGKYgd5oy7kYkF4T9KZlsamRVSF7Lno+W8mdbELZDi6ZWUht6vp6IR2OIsIspamJFWs+eE7Qt6tSYEw== X-Received: from almasrymina.c.googlers.com ([fda3:e722:ac3:cc00:20:ed76:c0a8:4bc5]) (user=almasrymina job=sendgmr) by 2002:a05:6902:154d:b0:e03:589b:cbe1 with SMTP id 3f1490d57ef6-e0b545431eamr671930276.7.1722306398655; Mon, 29 Jul 2024 19:26:38 -0700 (PDT) Date: Tue, 30 Jul 2024 02:26:09 +0000 In-Reply-To: <20240730022623.98909-1-almasrymina@google.com> Mime-Version: 1.0 References: <20240730022623.98909-1-almasrymina@google.com> X-Mailer: git-send-email 2.46.0.rc1.232.g9752f9e123-goog Message-ID: <20240730022623.98909-6-almasrymina@google.com> Subject: [PATCH net-next v17 05/14] page_pool: move dmaddr helpers to .c file From: Mina Almasry To: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-alpha@vger.kernel.org, linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org, sparclinux@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-kselftest@vger.kernel.org, bpf@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org Cc: Mina Almasry , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Donald Hunter , Jonathan Corbet , Richard Henderson , Ivan Kokshaysky , Matt Turner , Thomas Bogendoerfer , "James E.J. Bottomley" , Helge Deller , Andreas Larsson , Jesper Dangaard Brouer , Ilias Apalodimas , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Arnd Bergmann , Steffen Klassert , Herbert Xu , David Ahern , Willem de Bruijn , Shuah Khan , Sumit Semwal , " =?utf-8?q?Christian_K=C3=B6nig?= " , Bagas Sanjaya , Christoph Hellwig , Nikolay Aleksandrov , Taehee Yoo , Pavel Begunkov , David Wei , Jason Gunthorpe , Yunsheng Lin , Shailend Chand , Harshitha Ramamurthy , Shakeel Butt , Jeroen de Borst , Praveen Kaligineedi X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" These helpers are used for setup and init of buffers, and their implementation need not be static inline in the header file. Moving the implementation to the .c file allows us to hide netmem implementation details in internal header files rather than the public file. Signed-off-by: Mina Almasry --- include/net/page_pool/helpers.h | 30 ++---------------------------- net/core/page_pool.c | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 28 deletions(-) diff --git a/include/net/page_pool/helpers.h b/include/net/page_pool/helpers.h index 2b43a893c619d..8f27ecc00bb16 100644 --- a/include/net/page_pool/helpers.h +++ b/include/net/page_pool/helpers.h @@ -399,17 +399,7 @@ static inline void page_pool_free_va(struct page_pool *pool, void *va, page_pool_put_page(pool, virt_to_head_page(va), -1, allow_direct); } -static inline dma_addr_t page_pool_get_dma_addr_netmem(netmem_ref netmem) -{ - struct page *page = netmem_to_page(netmem); - - dma_addr_t ret = page->dma_addr; - - if (PAGE_POOL_32BIT_ARCH_WITH_64BIT_DMA) - ret <<= PAGE_SHIFT; - - return ret; -} +dma_addr_t page_pool_get_dma_addr_netmem(netmem_ref netmem); /** * page_pool_get_dma_addr() - Retrieve the stored DMA address. @@ -423,23 +413,7 @@ static inline dma_addr_t page_pool_get_dma_addr(const struct page *page) return page_pool_get_dma_addr_netmem(page_to_netmem((struct page *)page)); } -static inline bool page_pool_set_dma_addr_netmem(netmem_ref netmem, - dma_addr_t addr) -{ - struct page *page = netmem_to_page(netmem); - - if (PAGE_POOL_32BIT_ARCH_WITH_64BIT_DMA) { - page->dma_addr = addr >> PAGE_SHIFT; - - /* We assume page alignment to shave off bottom bits, - * if this "compression" doesn't work we need to drop. - */ - return addr != (dma_addr_t)page->dma_addr << PAGE_SHIFT; - } - - page->dma_addr = addr; - return false; -} +bool page_pool_set_dma_addr_netmem(netmem_ref netmem, dma_addr_t addr); /** * page_pool_dma_sync_for_cpu - sync Rx page for CPU after it's written by HW diff --git a/net/core/page_pool.c b/net/core/page_pool.c index 2abe6e919224d..a032f731d4146 100644 --- a/net/core/page_pool.c +++ b/net/core/page_pool.c @@ -1099,3 +1099,34 @@ void page_pool_update_nid(struct page_pool *pool, int new_nid) } } EXPORT_SYMBOL(page_pool_update_nid); + +dma_addr_t page_pool_get_dma_addr_netmem(netmem_ref netmem) +{ + struct page *page = netmem_to_page(netmem); + + dma_addr_t ret = page->dma_addr; + + if (PAGE_POOL_32BIT_ARCH_WITH_64BIT_DMA) + ret <<= PAGE_SHIFT; + + return ret; +} +EXPORT_SYMBOL(page_pool_get_dma_addr_netmem); + +bool page_pool_set_dma_addr_netmem(netmem_ref netmem, dma_addr_t addr) +{ + struct page *page = netmem_to_page(netmem); + + if (PAGE_POOL_32BIT_ARCH_WITH_64BIT_DMA) { + page->dma_addr = addr >> PAGE_SHIFT; + + /* We assume page alignment to shave off bottom bits, + * if this "compression" doesn't work we need to drop. + */ + return addr != (dma_addr_t)page->dma_addr << PAGE_SHIFT; + } + + page->dma_addr = addr; + return false; +} +EXPORT_SYMBOL(page_pool_set_dma_addr_netmem);