From: "Banajit Goswami" <bgoswami@codeaurora.org>
To: Vinod Koul <vinod.koul@intel.com>,
Mark Brown <broonie@kernel.org>, Liam <lgirdwood@gmail.com>
Cc: alsa-devel@alsa-project.org, gsantosh@codeaurora.org
Subject: Re: Question on compress offload framework memory corruption
Date: Tue, 4 Mar 2014 22:19:20 -0000 [thread overview]
Message-ID: <f7340ae1f345dc53c799ff8c02321ed1.squirrel@www.codeaurora.org> (raw)
Hi Liam,
> On Thu, Dec 19, 2013 at 10:55:08AM +0000, Mark Brown wrote:
> > On Wed, Dec 18, 2013 at 01:17:51PM -0000, gsantosh@codeaurora.org wrote:
> > > Hi,
> > >
> > > I have following questions in the compressed offload framework API.
> > >
> > > static int soc_compr_set_params_fe(struct snd_compr_stream *cstream,
> > > struct snd_compr_params *params) { ...
> > > hw_params = kzalloc(sizeof(*hw_params), GFP_KERNEL);
> > > if (hw_params == NULL)
> > > return -ENOMEM;
> > > /*1st question is, what is the use of above allocated memory I do
> > > not see this being used in this function*/
> >
> > The code you're quoting there isn't in mainline. I've also added
> > Vinod to the CCs, you probably want to include him in any discussion
> > of the compressed API.
>
> That's right, this is from DPCM compressed updated done by Liam, so he
is > the best person to comment on this bit, and somehow his address in
CC has > gone bad, i have added him in to list
> But yes looking at the source, i agree that two are interlinked.
> I guess we need to poupulate the hw_params and then use that to copy, that
> would be the right thing to do here and yes this is not correct and not
> sure how this is working...
Continuing the discussion on the "memcpy" function in Santosh's 2nd question-
> > > memcpy(&fe->dpcm[fe_substream->stream].hw_params, params,
> > > sizeof(struct snd_pcm_hw_params));
> > >
> > > /* 2nd question is
> > > in above memcpy there is parameter mismatch
> > > &fe->dpcm[fe_substream->stream].hw_params is of structure type struct
> > > snd_pcm_hw_params
> > >
> > > params argument is of the structure type struct snd_compr_params
> > > the definition of the two structures are different, how this is
> > > working?
> > > this will over right the destination with junk value which will return
> > > in error when this memory is accessed, after memcpy this cpu_dai
> > > hw_params
> > > returing with EINVAL error, please explain why this is done this way.
> > > */
I can see that a later version of the patch adds the function
soc_compr_set_params_fe() at-
http://permalink.gmane.org/gmane.linux.alsa.devel/117716
with the below code replaces the "memcpy" function with a "memset"-
+ /*
+ * Create an empty hw_params for the BE as the machine driver must
+ * fix this up to match DSP decoder and ASRC configuration.
+ * I.e. machine driver fixup for compressed BE is mandatory.
+ */
+ memset(&fe->dpcm[fe_substream->stream].hw_params, 0,
+ sizeof(struct snd_pcm_hw_params));
It's evident that the code relies on machine driver fixup function to
populate the parameters of hw_params before propagating those to back-end.
I think rather than that, like Vinod also mentioned, the hw_params should
have been populated with individual parameters which are relevant.
Let me know your comment on this.
Thanks,
Banajit
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
next reply other threads:[~2014-03-04 22:26 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-04 22:19 Banajit Goswami [this message]
2014-03-05 7:51 ` Question on compress offload framework memory corruption Vinod Koul
-- strict thread matches above, loose matches on Subject: below --
2013-12-18 13:17 gsantosh
2013-12-19 7:59 ` gsantosh
2013-12-19 10:42 ` Clemens Ladisch
2013-12-19 10:55 ` Mark Brown
2014-01-05 14:04 ` Vinod Koul
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f7340ae1f345dc53c799ff8c02321ed1.squirrel@www.codeaurora.org \
--to=bgoswami@codeaurora.org \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=gsantosh@codeaurora.org \
--cc=lgirdwood@gmail.com \
--cc=vinod.koul@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox