Hi Stephen,

On 15-12-20, 06:58, Stephen Rothwell wrote:
> Hi all,
> 
> On Thu, 19 Nov 2020 14:29:15 +1100 Stephen Rothwell <s...@canb.auug.org.au> 
> 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

Reply via email to