Re: [PATCH v2] arm: davinci: fix edma dmaengine induced null pointer dereference on da830

2013-03-12 Thread Sekhar Nori
On 3/6/2013 10:27 PM, Tomas Novotny wrote:
 On Tue,  5 Mar 2013 10:58:22 -0500
 Matt Porter mpor...@ti.com wrote:
 
 This adds additional error checking to the private edma api implementation
 to catch the case where the edma_alloc_slot() has an invalid controller
 parameter. The edma dmaengine wrapper driver relies on this condition
 being handled in order to avoid setting up a second edma dmaengine
 instance on DA830.

 Verfied using a DA850 with the second EDMA controller platform instance
 removed to simulate a DA830 which only has a single EDMA controller.

 Reported-by: Tomas Novotny to...@novotny.cz
 Signed-off-by: Matt Porter mpor...@ti.com
 Cc: sta...@vger.kernel.org # v3.7.x+
 ---
 v2: Move error check out of conditional to catch all cases

  arch/arm/mach-davinci/dma.c |3 +++
  1 file changed, 3 insertions(+)

 diff --git a/arch/arm/mach-davinci/dma.c b/arch/arm/mach-davinci/dma.c
 index a685e97..45b7c71 100644
 --- a/arch/arm/mach-davinci/dma.c
 +++ b/arch/arm/mach-davinci/dma.c
 @@ -743,6 +743,9 @@ EXPORT_SYMBOL(edma_free_channel);
   */
  int edma_alloc_slot(unsigned ctlr, int slot)
  {
 +if (!edma_cc[ctlr])
 +return -EINVAL;
 +
  if (slot = 0)
  slot = EDMA_CHAN_SLOT(slot);
  
 
 On the TI AM1707 based custom board:
 
 Tested-by: Tomas Novotny to...@novotny.cz

I tested it on DA830 EVM. Queuing this for v3.9-rc

Thanks,
Sekhar
___
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source


[PATCH v2] arm: davinci: fix edma dmaengine induced null pointer dereference on da830

2013-03-05 Thread Matt Porter
This adds additional error checking to the private edma api implementation
to catch the case where the edma_alloc_slot() has an invalid controller
parameter. The edma dmaengine wrapper driver relies on this condition
being handled in order to avoid setting up a second edma dmaengine
instance on DA830.

Verfied using a DA850 with the second EDMA controller platform instance
removed to simulate a DA830 which only has a single EDMA controller.

Reported-by: Tomas Novotny to...@novotny.cz
Signed-off-by: Matt Porter mpor...@ti.com
Cc: sta...@vger.kernel.org # v3.7.x+
---
v2: Move error check out of conditional to catch all cases

 arch/arm/mach-davinci/dma.c |3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/arm/mach-davinci/dma.c b/arch/arm/mach-davinci/dma.c
index a685e97..45b7c71 100644
--- a/arch/arm/mach-davinci/dma.c
+++ b/arch/arm/mach-davinci/dma.c
@@ -743,6 +743,9 @@ EXPORT_SYMBOL(edma_free_channel);
  */
 int edma_alloc_slot(unsigned ctlr, int slot)
 {
+   if (!edma_cc[ctlr])
+   return -EINVAL;
+
if (slot = 0)
slot = EDMA_CHAN_SLOT(slot);
 
-- 
1.7.9.5

___
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source