From: Seth Forshee <[email protected]>

The error handling is ineffective and can lead to an oops.

Acked-by: Ameya Palande <[email protected]>
Signed-off-by: Seth Forshee <[email protected]>
---
 drivers/dsp/bridge/rmgr/node.c |   26 ++++++++++++++++----------
 1 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/drivers/dsp/bridge/rmgr/node.c b/drivers/dsp/bridge/rmgr/node.c
index 357d1cf..243e14b 100644
--- a/drivers/dsp/bridge/rmgr/node.c
+++ b/drivers/dsp/bridge/rmgr/node.c
@@ -3285,16 +3285,23 @@ DSP_STATUS NODE_GetUUIDProps(DSP_HPROCESSOR hProcessor,
                 pNodeId, pNodeProps);
 
        status = PROC_GetDevObject(hProcessor, &hDevObject);
-       if (DSP_SUCCEEDED(status)) {
-               status = DEV_GetNodeManager(hDevObject, &hNodeMgr);
-               if (hNodeMgr == NULL)
-                       status = DSP_EFAIL;
+       if (DSP_FAILED(status))
+               goto func_end;
+
+       status = DEV_GetNodeManager(hDevObject, &hNodeMgr);
+       if (DSP_FAILED(status))
+               goto func_end;
+       if (hNodeMgr == NULL) {
+               status = DSP_EFAIL;
+               goto func_end;
        }
 
-       /*  Enter the critical section.  This is needed because
-       * DCD_GetObjectDef will ultimately end up calling DBLL_open/close,
-       * which needs to be protected in order to not corrupt the zlib manager
-       * (COD). */
+       /*
+        * Enter the critical section. This is needed because
+        * DCD_GetObjectDef will ultimately end up calling DBLL_open/close,
+        * which needs to be protected in order to not corrupt the zlib manager
+        * (COD).
+        */
        status = SYNC_EnterCS(hNodeMgr->hSync);
 
        if (DSP_SUCCEEDED(status)) {
@@ -3323,9 +3330,8 @@ DSP_STATUS NODE_GetUUIDProps(DSP_HPROCESSOR hProcessor,
                }
                /*  Leave the critical section, we're done.  */
                (void)SYNC_LeaveCS(hNodeMgr->hSync);
-
        }
-
+func_end:
        return status;
 }
 
-- 
1.5.6.3

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to