Hi Stephen, On 15-12-20, 06:58, Stephen Rothwell wrote: > Hi all, > > On Thu, 19 Nov 2020 14:29:15 +1100 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > > > > Today's linux-next merge of the dmaengine tree got a conflict in: > > > > drivers/dma/idxd/submit.c > > > > between commit: > > > > 8326be9f1c0b ("dmaengine: idxd: fix mapping of portal size") > > > > from the dmaengine-fixes tree and commit: > > > > 8e50d392652f ("dmaengine: idxd: Add shared workqueue support") > > > > from the dmaengine tree. > > > > I fixed it up (see below) and can carry the fix as necessary. This > > is now fixed as far as linux-next is concerned, but any non trivial > > conflicts should be mentioned to your upstream maintainer when your tree > > is submitted for merging. You may also want to consider cooperating > > with the maintainer of the conflicting tree to minimise any particularly > > complex conflicts. > > > > diff --cc drivers/dma/idxd/submit.c > > index 417048e3c42a,efca5d8468a6..000000000000 > > --- a/drivers/dma/idxd/submit.c > > +++ b/drivers/dma/idxd/submit.c > > @@@ -74,14 -86,27 +86,27 @@@ int idxd_submit_desc(struct idxd_wq *wq > > if (idxd->state != IDXD_DEV_ENABLED) > > return -EIO; > > > > - portal = wq->dportal; > > - portal = wq->portal + idxd_get_wq_portal_offset(IDXD_PORTAL_LIMITED); > > ++ portal = wq->portal; > > + > > /* > > - * The wmb() flushes writes to coherent DMA data before possibly > > - * triggering a DMA read. The wmb() is necessary even on UP because > > - * the recipient is a device. > > + * The wmb() flushes writes to coherent DMA data before > > + * possibly triggering a DMA read. The wmb() is necessary > > + * even on UP because the recipient is a device. > > */ > > wmb(); > > - iosubmit_cmds512(portal, desc->hw, 1); > > + if (wq_dedicated(wq)) { > > + iosubmit_cmds512(portal, desc->hw, 1); > > + } else { > > + /* > > + * It's not likely that we would receive queue full rejection > > + * since the descriptor allocation gates at wq size. If we > > + * receive a -EAGAIN, that means something went wrong such as the > > + * device is not accepting descriptor at all. > > + */ > > + rc = enqcmds(portal, desc->hw); > > + if (rc < 0) > > + return rc; > > + } > > > > /* > > * Pending the descriptor to the lockless list for the irq_entry > > Just a reminder that this conflict still exists. Commit 8326be9f1c0b > is now in Linus' tree. Thanks for the reminder. Since Linus like to see the conflicts, I am going to send this as is and let him resolve it :) -- ~Vinod