linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: iommu@lists.linux-foundation.org
Cc: x86@kernel.org, Stefano Stabellini <sstabellini@kernel.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>, Joerg Roedel <joro@8bytes.org>,
	David Woodhouse <dwmw2@infradead.org>,
	Lu Baolu <baolu.lu@linux.intel.com>,
	Robin Murphy <robin.murphy@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	xen-devel@lists.xenproject.org, linux-ia64@vger.kernel.org,
	linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-hyperv@vger.kernel.org, tboot-devel@lists.sourceforge.net,
	linux-pci@vger.kernel.org
Subject: [PATCH 05/11] swiotlb: pass a gfp_mask argument to swiotlb_init_late
Date: Tue, 22 Feb 2022 16:35:08 +0100	[thread overview]
Message-ID: <20220222153514.593231-6-hch@lst.de> (raw)
In-Reply-To: <20220222153514.593231-1-hch@lst.de>

Let the caller chose a zone to allocate from.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/x86/pci/sta2x11-fixup.c | 2 +-
 include/linux/swiotlb.h      | 2 +-
 kernel/dma/swiotlb.c         | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/x86/pci/sta2x11-fixup.c b/arch/x86/pci/sta2x11-fixup.c
index e0c039a75b2db..c7e6faf59a861 100644
--- a/arch/x86/pci/sta2x11-fixup.c
+++ b/arch/x86/pci/sta2x11-fixup.c
@@ -57,7 +57,7 @@ static void sta2x11_new_instance(struct pci_dev *pdev)
 		int size = STA2X11_SWIOTLB_SIZE;
 		/* First instance: register your own swiotlb area */
 		dev_info(&pdev->dev, "Using SWIOTLB (size %i)\n", size);
-		if (swiotlb_init_late(size))
+		if (swiotlb_init_late(size, GFP_DMA))
 			dev_emerg(&pdev->dev, "init swiotlb failed\n");
 	}
 	list_add(&instance->list, &sta2x11_instance_list);
diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h
index b48b26bfa0edb..1befd6b2ccf5e 100644
--- a/include/linux/swiotlb.h
+++ b/include/linux/swiotlb.h
@@ -40,7 +40,7 @@ extern void swiotlb_init(int verbose);
 int swiotlb_init_with_tbl(char *tlb, unsigned long nslabs, int verbose);
 unsigned long swiotlb_size_or_default(void);
 extern int swiotlb_late_init_with_tbl(char *tlb, unsigned long nslabs);
-int swiotlb_init_late(size_t size);
+int swiotlb_init_late(size_t size, gfp_t gfp_mask);
 extern void __init swiotlb_update_mem_attributes(void);
 
 phys_addr_t swiotlb_tbl_map_single(struct device *hwdev, phys_addr_t phys,
diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c
index 5f64b02fbb732..a653fcf1fe6c2 100644
--- a/kernel/dma/swiotlb.c
+++ b/kernel/dma/swiotlb.c
@@ -290,7 +290,7 @@ swiotlb_init(int verbose)
  * initialize the swiotlb later using the slab allocator if needed.
  * This should be just like above, but with some error catching.
  */
-int swiotlb_init_late(size_t size)
+int swiotlb_init_late(size_t size, gfp_t gfp_mask)
 {
 	unsigned long nslabs = ALIGN(size >> IO_TLB_SHIFT, IO_TLB_SEGSIZE);
 	unsigned long bytes;
@@ -309,7 +309,7 @@ int swiotlb_init_late(size_t size)
 	bytes = nslabs << IO_TLB_SHIFT;
 
 	while ((SLABS_PER_PAGE << order) > IO_TLB_MIN_SLABS) {
-		vstart = (void *)__get_free_pages(GFP_DMA | __GFP_NOWARN,
+		vstart = (void *)__get_free_pages(gfp_mask | __GFP_NOWARN,
 						  order);
 		if (vstart)
 			break;
-- 
2.30.2


  parent reply	other threads:[~2022-02-22 15:36 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-22 15:35 cleanup swiotlb initialization Christoph Hellwig
2022-02-22 15:35 ` [PATCH 01/11] dma-direct: use is_swiotlb_active in dma_direct_map_page Christoph Hellwig
2022-02-24 10:26   ` Anshuman Khandual
2022-02-22 15:35 ` [PATCH 02/11] swiotlb: make swiotlb_exit a no-op if SWIOTLB_FORCE is set Christoph Hellwig
2022-02-24 10:29   ` Anshuman Khandual
2022-02-22 15:35 ` [PATCH 03/11] swiotlb: simplify swiotlb_max_segment Christoph Hellwig
2022-02-24 10:34   ` Anshuman Khandual
2022-02-22 15:35 ` [PATCH 04/11] swiotlb: rename swiotlb_late_init_with_default_size Christoph Hellwig
2022-02-24 10:36   ` Anshuman Khandual
2022-02-22 15:35 ` Christoph Hellwig [this message]
2022-02-24 10:41   ` [PATCH 05/11] swiotlb: pass a gfp_mask argument to swiotlb_init_late Anshuman Khandual
2022-02-22 15:35 ` [PATCH 06/11] MIPS/octeon: use swiotlb_init instead of open coding it Christoph Hellwig
2022-02-22 15:35 ` [PATCH 07/11] x86: remove the IOMMU table infrastructure Christoph Hellwig
2022-02-24 10:18   ` Anshuman Khandual
2022-02-22 15:35 ` [PATCH 08/11] swiotlb: make the swiotlb_init interface more useful Christoph Hellwig
2022-02-22 15:35 ` [PATCH 09/11] swiotlb: add a SWIOTLB_ANY flag to lift the low memory restriction Christoph Hellwig
2022-02-22 15:35 ` [PATCH 10/11] swiotlb: merge swiotlb-xen initialization into swiotlb Christoph Hellwig
2022-02-24 10:16   ` Anshuman Khandual
2022-02-22 15:35 ` [PATCH 11/11] x86: remove cruft from <asm/dma-mapping.h> Christoph Hellwig
2022-02-24  0:57 ` cleanup swiotlb initialization Boris Ostrovsky
2022-02-24 15:58   ` Christoph Hellwig
2022-02-24 16:18     ` Boris Ostrovsky
2022-02-24 16:39       ` Christoph Hellwig
2022-02-24 17:07         ` Boris Ostrovsky
2022-02-25  8:47           ` Christoph Hellwig
2022-02-25 15:24             ` Boris Ostrovsky
2022-02-27 14:30 cleanup swiotlb initialization v2 Christoph Hellwig
2022-02-27 14:30 ` [PATCH 05/11] swiotlb: pass a gfp_mask argument to swiotlb_init_late Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220222153514.593231-6-hch@lst.de \
    --to=hch@lst.de \
    --cc=baolu.lu@linux.intel.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=dwmw2@infradead.org \
    --cc=iommu@lists.linux-foundation.org \
    --cc=jgross@suse.com \
    --cc=joro@8bytes.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-hyperv@vger.kernel.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=robin.murphy@arm.com \
    --cc=sstabellini@kernel.org \
    --cc=tboot-devel@lists.sourceforge.net \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).