Message ID | 150212397710.23722.415749304040796516.stgit@djiang5-desk3.ch.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Aug 7, 2017 at 9:39 AM, Dave Jiang <dave.jiang@intel.com> wrote: > DMA_MEMSET_SG is missing the verification of having the operation set and > also a supporting function provided. > > Fixes: Commit 50c7cd2bd ("dmaengine: Add scatter-gathered memset") > > Signed-off-by: Dave Jiang <dave.jiang@intel.com> > --- > drivers/dma/dmaengine.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c > index 1c424f6..d9a71f0 100644 > --- a/drivers/dma/dmaengine.c > +++ b/drivers/dma/dmaengine.c > @@ -935,6 +935,8 @@ int dma_async_device_register(struct dma_device *device) > !device->device_prep_dma_pq_val); > BUG_ON(dma_has_cap(DMA_MEMSET, device->cap_mask) && > !device->device_prep_dma_memset); > + BUG_ON(dma_has_cap(DMA_MEMSET_SG, device->cap_mask) && > + !device->device_prep_dma_memset_sg); > BUG_ON(dma_has_cap(DMA_INTERRUPT, device->cap_mask) && > !device->device_prep_dma_interrupt); > BUG_ON(dma_has_cap(DMA_SG_SG, device->cap_mask) && > One of these days we might convert all of these to a WARN_ON_ONCE() with a an error return. No need to crash dmaengine developer systems when they make this small mistake.
On Wed, Aug 09, 2017 at 07:24:21PM -0700, Dan Williams wrote: > On Mon, Aug 7, 2017 at 9:39 AM, Dave Jiang <dave.jiang@intel.com> wrote: > > DMA_MEMSET_SG is missing the verification of having the operation set and > > also a supporting function provided. > > > > Fixes: Commit 50c7cd2bd ("dmaengine: Add scatter-gathered memset") > > > > Signed-off-by: Dave Jiang <dave.jiang@intel.com> > > --- > > drivers/dma/dmaengine.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c > > index 1c424f6..d9a71f0 100644 > > --- a/drivers/dma/dmaengine.c > > +++ b/drivers/dma/dmaengine.c > > @@ -935,6 +935,8 @@ int dma_async_device_register(struct dma_device *device) > > !device->device_prep_dma_pq_val); > > BUG_ON(dma_has_cap(DMA_MEMSET, device->cap_mask) && > > !device->device_prep_dma_memset); > > + BUG_ON(dma_has_cap(DMA_MEMSET_SG, device->cap_mask) && > > + !device->device_prep_dma_memset_sg); > > BUG_ON(dma_has_cap(DMA_INTERRUPT, device->cap_mask) && > > !device->device_prep_dma_interrupt); > > BUG_ON(dma_has_cap(DMA_SG_SG, device->cap_mask) && > > > > One of these days we might convert all of these to a WARN_ON_ONCE() > with a an error return. No need to crash dmaengine developer systems > when they make this small mistake. Yes I have been wanting to do that for a while now :) thanks for the reminder...
diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c index 1c424f6..d9a71f0 100644 --- a/drivers/dma/dmaengine.c +++ b/drivers/dma/dmaengine.c @@ -935,6 +935,8 @@ int dma_async_device_register(struct dma_device *device) !device->device_prep_dma_pq_val); BUG_ON(dma_has_cap(DMA_MEMSET, device->cap_mask) && !device->device_prep_dma_memset); + BUG_ON(dma_has_cap(DMA_MEMSET_SG, device->cap_mask) && + !device->device_prep_dma_memset_sg); BUG_ON(dma_has_cap(DMA_INTERRUPT, device->cap_mask) && !device->device_prep_dma_interrupt); BUG_ON(dma_has_cap(DMA_SG_SG, device->cap_mask) &&
DMA_MEMSET_SG is missing the verification of having the operation set and also a supporting function provided. Fixes: Commit 50c7cd2bd ("dmaengine: Add scatter-gathered memset") Signed-off-by: Dave Jiang <dave.jiang@intel.com> --- drivers/dma/dmaengine.c | 2 ++ 1 file changed, 2 insertions(+)