diff --git a/dsp/adsprpc.c b/dsp/adsprpc.c index 4867a6bad8..7607b5551b 100644 --- a/dsp/adsprpc.c +++ b/dsp/adsprpc.c @@ -6829,6 +6829,13 @@ static int fastrpc_check_pd_status(struct fastrpc_file *fl, char *sloc_name) err = fastrpc_get_spd_session(sloc_name, &session, &cid); if (err || cid != fl->cid) goto bail; + if ((!strcmp(fl->servloc_name, + AUDIO_PDR_SERVICE_LOCATION_CLIENT_NAME)) && + (me->channel[cid].spd[session].pdrcount != + me->channel[cid].spd[session].prevpdrcount)) { + err = -ECONNRESET; + goto bail; + } #if IS_ENABLED(CONFIG_QCOM_PDR_HELPERS) if (!strcmp(fl->servloc_name, AUDIO_PDR_SERVICE_LOCATION_CLIENT_NAME) || !strcmp(fl->servloc_name,