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
