netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Robin Murphy <robin.murphy@arm.com>
To: Dean Luick <dean.luick@cornelisnetworks.com>,
	Christoph Hellwig <hch@lst.de>,
	Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Alexandra Winter <wintera@linux.ibm.com>,
	Wenjia Zhang <wenjia@linux.ibm.com>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
	Russell King <linux@armlinux.org.uk>
Cc: linux-arm-kernel@lists.infradead.org, linux-rdma@vger.kernel.org,
	iommu@lists.linux.dev, linux-media@vger.kernel.org,
	netdev@vger.kernel.org, linux-s390@vger.kernel.org,
	alsa-devel@alsa-project.org
Subject: Re: [PATCH 2/7] RDMA/hfi1: don't pass bogus GFP_ flags to dma_alloc_coherent
Date: Wed, 16 Nov 2022 15:15:10 +0000	[thread overview]
Message-ID: <be8ca3f9-b7f7-5402-0cfc-47b9985e007b@arm.com> (raw)
In-Reply-To: <c7c6eb30-4b54-01f7-9651-07deac3662bf@cornelisnetworks.com>

On 2022-11-16 14:40, Dean Luick wrote:
> On 11/13/2022 10:35 AM, Christoph Hellwig wrote:
>> dma_alloc_coherent is an opaque allocator that only uses the GFP_ flags
>> for allocation context control.  Don't pass GFP_USER which doesn't make
>> sense for a kernel DMA allocation or __GFP_COMP which makes no sense
>> for an allocation that can't in any way be converted to a page pointer.
>>
>> Signed-off-by: Christoph Hellwig <hch@lst.de>
>> ---
>>   drivers/infiniband/hw/hfi1/init.c | 21 +++------------------
>>   1 file changed, 3 insertions(+), 18 deletions(-)
>>
>> diff --git a/drivers/infiniband/hw/hfi1/init.c b/drivers/infiniband/hw/hfi1/init.c
>> index 436372b314312..24c0f0d257fc9 100644
>> --- a/drivers/infiniband/hw/hfi1/init.c
>> +++ b/drivers/infiniband/hw/hfi1/init.c
>> @@ -1761,17 +1761,11 @@ int hfi1_create_rcvhdrq(struct hfi1_devdata *dd, struct hfi1_ctxtdata *rcd)
>>        unsigned amt;
>>
>>        if (!rcd->rcvhdrq) {
>> -             gfp_t gfp_flags;
>> -
>>                amt = rcvhdrq_size(rcd);
>>
>> -             if (rcd->ctxt < dd->first_dyn_alloc_ctxt || rcd->is_vnic)
>> -                     gfp_flags = GFP_KERNEL;
>> -             else
>> -                     gfp_flags = GFP_USER;
>>                rcd->rcvhdrq = dma_alloc_coherent(&dd->pcidev->dev, amt,
>>                                                  &rcd->rcvhdrq_dma,
>> -                                               gfp_flags | __GFP_COMP);
>> +                                               GFP_KERNEL);
> 
> A user context receive header queue may be mapped into user space.  Is that not the use case for GFP_USER?  The above conditional is what decides.
> 
> Why do you think GFP_USER should be removed here?

Coherent DMA buffers are allocated by a kernel driver or subsystem for 
the use of a device managed by that driver or subsystem, and thus they 
fundamentally belong to the kernel as proxy for the device. Any coherent 
DMA buffer may be mapped to userspace with the dma_mmap_*() interfaces, 
but they're never a "userspace allocation" in that sense.

Thanks,
Robin.

  reply	other threads:[~2022-11-16 15:15 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-13 16:35 stop drivers from passing GFP_COMP to dma_alloc_coherent Christoph Hellwig
2022-11-13 16:35 ` [PATCH 1/7] media: videobuf-dma-contig: use dma_mmap_coherent Christoph Hellwig
2022-11-24 14:10   ` Hans Verkuil
2022-11-29 14:00     ` Christoph Hellwig
2022-11-13 16:35 ` [PATCH 2/7] RDMA/hfi1: don't pass bogus GFP_ flags to dma_alloc_coherent Christoph Hellwig
2022-11-15 20:39   ` Jason Gunthorpe
2022-11-16 14:40   ` Dean Luick
2022-11-16 15:15     ` Robin Murphy [this message]
2022-11-16 15:45       ` Christoph Hellwig
2022-11-16 17:49         ` Dean Luick
2022-11-20 20:41           ` Dean Luick
2022-11-16 16:21       ` Dean Luick
2022-11-16 18:37         ` Robin Murphy
2022-11-13 16:35 ` [PATCH 3/7] RDMA/qib: " Christoph Hellwig
2022-11-15 20:40   ` Jason Gunthorpe
2022-11-13 16:35 ` [PATCH 4/7] cnic: " Christoph Hellwig
2022-11-13 16:35 ` [PATCH 5/7] s390/ism: " Christoph Hellwig
2022-11-16 12:39   ` Wenjia Zhang
2022-11-13 16:35 ` [PATCH 6/7] ALSA: memalloc: don't pass bogus GFP_ flags to dma_alloc_* Christoph Hellwig
2022-11-14  9:04   ` Takashi Iwai
2022-11-21  8:37     ` Christoph Hellwig
2022-11-13 16:35 ` [PATCH 7/7] dma-mapping: reject __GFP_COMP in dma_alloc_attrs Christoph Hellwig
2022-11-14  8:11   ` Leon Romanovsky
2022-11-16  6:11     ` Christoph Hellwig
2022-11-16  7:11       ` Leon Romanovsky
2022-11-14 12:16   ` Marek Szyprowski
2022-11-21  8:39 ` stop drivers from passing GFP_COMP to dma_alloc_coherent 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=be8ca3f9-b7f7-5402-0cfc-47b9985e007b@arm.com \
    --to=robin.murphy@arm.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=dean.luick@cornelisnetworks.com \
    --cc=dennis.dalessandro@cornelisnetworks.com \
    --cc=hch@lst.de \
    --cc=iommu@lists.linux.dev \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=m.szyprowski@samsung.com \
    --cc=mchehab@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=perex@perex.cz \
    --cc=tiwai@suse.com \
    --cc=wenjia@linux.ibm.com \
    --cc=wintera@linux.ibm.com \
    /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).