`apci3120_auto_attach()` first sets `devpriv->us_UseDma` to 1, then sets it back to 0 if it fails to allocate the DMA buffer. Since `*devpriv` is initially zeroed out by `comedi_alloc_devpriv()`, change it to only set `devpriv->us_UseDma` to 1 if the allocation succeeds. Also, don't bother explicitly initializing `devpriv->b_DmaDoubleBuffer` to 0 as it is already zeroed out. Signed-off-by: Ian Abbott <abbotti@xxxxxxxxx> --- drivers/staging/comedi/drivers/addi_apci_3120.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/staging/comedi/drivers/addi_apci_3120.c b/drivers/staging/comedi/drivers/addi_apci_3120.c index 1025541..ba71e24 100644 --- a/drivers/staging/comedi/drivers/addi_apci_3120.c +++ b/drivers/staging/comedi/drivers/addi_apci_3120.c @@ -88,10 +88,7 @@ static int apci3120_auto_attach(struct comedi_device *dev, dev->irq = pcidev->irq; } - devpriv->us_UseDma = 1; - /* Allocate DMA buffers */ - devpriv->b_DmaDoubleBuffer = 0; for (i = 0; i < 2; i++) { for (order = 2; order >= 0; order--) { devpriv->ul_DmaBufferVirtual[i] = @@ -106,8 +103,8 @@ static int apci3120_auto_attach(struct comedi_device *dev, break; devpriv->ui_DmaBufferSize[i] = PAGE_SIZE << order; } - if (!devpriv->ul_DmaBufferVirtual[0]) - devpriv->us_UseDma = 0; + if (devpriv->ul_DmaBufferVirtual[0]) + devpriv->us_UseDma = 1; if (devpriv->ul_DmaBufferVirtual[1]) devpriv->b_DmaDoubleBuffer = 1; -- 2.1.0 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel