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@xxxxxx> > --- > 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? -Dean External recipient