Patch "staging: comedi: das1800: fix possible NULL dereference" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
staging: comedi: das1800: fix possible NULL dereference
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
staging-comedi-das1800-fix-possible-null-dereference.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
d375278d666760e195693b57415ba0a125cadd55Mon Sep 17 00:00:00 2001
From: H Hartley Sweeten <[email protected]>
Date: Fri, 8 Apr 2016 10:14:58 -0700
Subject: staging: comedi: das1800: fix possible NULL dereference
From: H Hartley Sweeten <[email protected]>
commit d375278d666760e195693b57415ba0a125cadd55 upstream.
DMA is optional with this driver. If it was not enabled the devpriv->dma pointer will be NULL.
Fix the possible NULL pointer dereference when trying to disable the DMA channels in das1800_ai_cancel() and tidy up the comments to fix the checkpatch.pl issues:
WARNING: line over 80 characters
It's probably harmless in das1800_ai_setup_dma() because the 'desc' pointer will not be used if DMA is disabled but fix it there also.
--- drivers/staging/comedi/drivers/das1800.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-)
drivers/staging/comedi/drivers/das1800.c +13 -9
@@ -567,14 +567,17 @@ static int das1800_cancel(struct comedi_struct comedi_isadma_desc *desc;int i; -outb (0x0 , dev->iobase +DAS1800_STATUS );/* disable conversions */ -outb (0x0 , dev->iobase +DAS1800_CONTROL_B );/* disable interrupts and dma */ -outb (0x0 , dev->iobase +DAS1800_CONTROL_A );/* disable and clear fifo and stop triggering */ - -for (i =0 ; i <2 ; i++) { - desc = &dma->desc[i]; -if (desc->chan) -comedi_isadma_disable (desc->chan); +/* disable and stop conversions */ +outb (0x0 , dev->iobase +DAS1800_STATUS ); +outb (0x0 , dev->iobase +DAS1800_CONTROL_B ); +outb (0x0 , dev->iobase +DAS1800_CONTROL_A ); + +if (dma) { +for (i =0 ; i <2 ; i++) { + desc = &dma->desc[i]; +if (desc->chan) +comedi_isadma_disable (desc->chan); + } }return 0 ;
@@ -934,13 +937,14 @@ static void das1800_ai_setup_dma(struct {struct das1800_private *devpriv = dev->private;struct comedi_isadma *dma = devpriv->dma; -struct comedi_isadma_desc *desc = &dma->desc[0 ]; +struct comedi_isadma_desc *desc;unsigned int bytes;if ((devpriv->irq_dma_bits &DMA_ENABLED ) ==0 )return ; dma->cur_dma =0 ; + desc = &dma->desc[0 ];/* determine a dma transfer size to fill buffer in 0.3 sec */ bytes =das1800_ai_transfer_size (dev, s, desc->maxsize,300000000 );
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/staging-comedi-das1800-fix-possible-null-dereference.patch