If DSP baseimage requests for invalid OPPs, do not pass them
to the rest of the linux kernel subsystem. with a test baseimage
it was found to send
IO_DispatchPM: WMDIOCTL_CONSTRAINT_REQUEST with parameter 0.
this is an invalid OPP ID and should not be passed anywhere.
we add a param check for this prior to passing it along to the
workqueue.

Cc: Ameya Palande <[email protected]>
Cc: Deepak Chitriki <[email protected]>
Cc: Felipe Contreras <[email protected]>
Cc: Hiroshi Doyu <[email protected]>
Cc: Omar Ramirez Luna <[email protected]>

Signed-off-by: Nishanth Menon <[email protected]>
---
 drivers/dsp/bridge/wmd/io_sm.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/dsp/bridge/wmd/io_sm.c b/drivers/dsp/bridge/wmd/io_sm.c
index 6c140c5..618bedb 100644
--- a/drivers/dsp/bridge/wmd/io_sm.c
+++ b/drivers/dsp/bridge/wmd/io_sm.c
@@ -960,9 +960,12 @@ static void IO_DispatchPM(struct work_struct *work)
                        pArg[1] = pIOMgr->pSharedMem->oppRequest.rqstOppPt;
                        DBG_Trace(DBG_LEVEL7, "IO_DispatchPM : Value of OPP "
                                 "value =0x%x \n", pArg[1]);
-                       status = pIOMgr->pIntfFxns->pfnDevCntrl(pIOMgr->
-                                hWmdContext, WMDIOCTL_CONSTRAINT_REQUEST,
-                                pArg);
+                       if (!pArg[1])
+                               status = DSP_EINVALIDARG;
+                       else
+                               status = pIOMgr->pIntfFxns->pfnDevCntrl(pIOMgr->
+                                        hWmdContext,
+                                        WMDIOCTL_CONSTRAINT_REQUEST, pArg);
                        if (DSP_FAILED(status)) {
                                DBG_Trace(DBG_LEVEL7, "IO_DispatchPM : Failed "
                                         "to set constraint = 0x%x \n",
-- 
1.6.3.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