* [PATCH 1/4] ASoC: sst_platform: initialize module_name properly
@ 2011-04-06 2:20 Lu Guanqun
2011-04-06 2:20 ` [PATCH 2/4] ASoC: sst_platform: free the resources on fail path Lu Guanqun
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Lu Guanqun @ 2011-04-06 2:20 UTC (permalink / raw)
To: ALSA; +Cc: Koul Vinod, Mark Brown, Takashi Iwai, Harsha Priya, Liam Girdwood
module_name will be checked in register_sst_card.
It will fail to register sst card if it's not initialized.
Signed-off-by: Lu Guanqun <guanqun.lu@intel.com>
---
sound/soc/mid-x86/sst_platform.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/sound/soc/mid-x86/sst_platform.c b/sound/soc/mid-x86/sst_platform.c
index ee2c224..bd9d928 100644
--- a/sound/soc/mid-x86/sst_platform.c
+++ b/sound/soc/mid-x86/sst_platform.c
@@ -247,6 +247,7 @@ static int sst_platform_open(struct snd_pcm_substream *substream)
return -ENOMEM;
}
stream->sstdrv_ops->vendor_id = MSIC_VENDOR_ID;
+ stream->sstdrv_ops->module_name = SST_CARD_NAMES;
/* registering with SST driver to get access to SST APIs to use */
ret_val = register_sst_card(stream->sstdrv_ops);
if (ret_val) {
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/4] ASoC: sst_platform: free the resources on fail path
2011-04-06 2:20 [PATCH 1/4] ASoC: sst_platform: initialize module_name properly Lu Guanqun
@ 2011-04-06 2:20 ` Lu Guanqun
2011-04-06 2:20 ` [PATCH 3/4] ASoC: sst_platform: unregister sst card when being closed Lu Guanqun
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Lu Guanqun @ 2011-04-06 2:20 UTC (permalink / raw)
To: ALSA; +Cc: Koul Vinod, Mark Brown, Takashi Iwai, Harsha Priya, Liam Girdwood
Signed-off-by: Lu Guanqun <guanqun.lu@intel.com>
---
sound/soc/mid-x86/sst_platform.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/sound/soc/mid-x86/sst_platform.c b/sound/soc/mid-x86/sst_platform.c
index bd9d928..848ad3c 100644
--- a/sound/soc/mid-x86/sst_platform.c
+++ b/sound/soc/mid-x86/sst_platform.c
@@ -252,6 +252,8 @@ static int sst_platform_open(struct snd_pcm_substream *substream)
ret_val = register_sst_card(stream->sstdrv_ops);
if (ret_val) {
pr_err("sst: sst card registration failed\n");
+ kfree(stream->sstdrv_ops);
+ kfree(stream);
return ret_val;
}
runtime->private_data = stream;
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/4] ASoC: sst_platform: unregister sst card when being closed
2011-04-06 2:20 [PATCH 1/4] ASoC: sst_platform: initialize module_name properly Lu Guanqun
2011-04-06 2:20 ` [PATCH 2/4] ASoC: sst_platform: free the resources on fail path Lu Guanqun
@ 2011-04-06 2:20 ` Lu Guanqun
2011-04-06 2:20 ` [PATCH 4/4] sst: make register_sst_card more self-contained Lu Guanqun
2011-04-06 14:16 ` [PATCH 1/4] ASoC: sst_platform: initialize module_name properly Mark Brown
3 siblings, 0 replies; 5+ messages in thread
From: Lu Guanqun @ 2011-04-06 2:20 UTC (permalink / raw)
To: ALSA; +Cc: Koul Vinod, Mark Brown, Takashi Iwai, Harsha Priya, Liam Girdwood
Signed-off-by: Lu Guanqun <guanqun.lu@intel.com>
---
sound/soc/mid-x86/sst_platform.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/sound/soc/mid-x86/sst_platform.c b/sound/soc/mid-x86/sst_platform.c
index 848ad3c..9ba9414 100644
--- a/sound/soc/mid-x86/sst_platform.c
+++ b/sound/soc/mid-x86/sst_platform.c
@@ -271,6 +271,7 @@ static int sst_platform_close(struct snd_pcm_substream *substream)
str_id = stream->stream_info.str_id;
if (str_id)
ret_val = stream->sstdrv_ops->pcm_control->close(str_id);
+ unregister_sst_card(stream->sstdrv_ops);
kfree(stream->sstdrv_ops);
kfree(stream);
return ret_val;
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 4/4] sst: make register_sst_card more self-contained
2011-04-06 2:20 [PATCH 1/4] ASoC: sst_platform: initialize module_name properly Lu Guanqun
2011-04-06 2:20 ` [PATCH 2/4] ASoC: sst_platform: free the resources on fail path Lu Guanqun
2011-04-06 2:20 ` [PATCH 3/4] ASoC: sst_platform: unregister sst card when being closed Lu Guanqun
@ 2011-04-06 2:20 ` Lu Guanqun
2011-04-06 14:16 ` [PATCH 1/4] ASoC: sst_platform: initialize module_name properly Mark Brown
3 siblings, 0 replies; 5+ messages in thread
From: Lu Guanqun @ 2011-04-06 2:20 UTC (permalink / raw)
To: ALSA; +Cc: Koul Vinod, Mark Brown, Takashi Iwai, Harsha Priya, Liam Girdwood
From: Lu Guanqun <guanqun.lu@intel.com>
register_sst_card is used in ASoC code with field `scard_ops` being NULL.
Without this patch, there will be NULL dereference.
Signed-off-by: Lu Guanqun <guanqun.lu@intel.com>
---
.../staging/intel_sst/intel_sst_drv_interface.c | 1 -
drivers/staging/intel_sst/intelmid.c | 1 +
2 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/staging/intel_sst/intel_sst_drv_interface.c b/drivers/staging/intel_sst/intel_sst_drv_interface.c
index ea8e251..cf10dd6 100644
--- a/drivers/staging/intel_sst/intel_sst_drv_interface.c
+++ b/drivers/staging/intel_sst/intel_sst_drv_interface.c
@@ -508,7 +508,6 @@ int register_sst_card(struct intel_sst_card_ops *card)
sst_drv_ctx->pmic_state = SND_MAD_INIT_DONE;
sst_drv_ctx->rx_time_slot_status = 0; /*default AMIC*/
card->pcm_control = sst_pmic_ops.pcm_control;
- sst_drv_ctx->scard_ops->card_status = SND_CARD_UN_INIT;
return 0;
} else {
pr_err("strcmp fail %s\n", card->module_name);
diff --git a/drivers/staging/intel_sst/intelmid.c b/drivers/staging/intel_sst/intelmid.c
index fb22921..1fb39d4 100644
--- a/drivers/staging/intel_sst/intelmid.c
+++ b/drivers/staging/intel_sst/intelmid.c
@@ -802,6 +802,7 @@ static int __devinit snd_intelmad_sst_register(
pr_err("sst card registration failed\n");
return ret_val;
}
+ sst_drv_ctx->scard_ops->card_status = SND_CARD_UN_INIT;
sst_card_vendor_id = intelmaddata->sstdrv_ops->vendor_id;
intelmaddata->pmic_status = PMIC_UNINIT;
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/4] ASoC: sst_platform: initialize module_name properly
2011-04-06 2:20 [PATCH 1/4] ASoC: sst_platform: initialize module_name properly Lu Guanqun
` (2 preceding siblings ...)
2011-04-06 2:20 ` [PATCH 4/4] sst: make register_sst_card more self-contained Lu Guanqun
@ 2011-04-06 14:16 ` Mark Brown
3 siblings, 0 replies; 5+ messages in thread
From: Mark Brown @ 2011-04-06 14:16 UTC (permalink / raw)
To: Lu Guanqun; +Cc: ALSA, Koul Vinod, Takashi Iwai, Harsha Priya, Liam Girdwood
On Wed, Apr 06, 2011 at 10:20:26AM +0800, Lu Guanqun wrote:
> module_name will be checked in register_sst_card.
> It will fail to register sst card if it's not initialized.
>
> Signed-off-by: Lu Guanqun <guanqun.lu@intel.com>
Applied all, thanks.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2011-04-06 14:15 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-06 2:20 [PATCH 1/4] ASoC: sst_platform: initialize module_name properly Lu Guanqun
2011-04-06 2:20 ` [PATCH 2/4] ASoC: sst_platform: free the resources on fail path Lu Guanqun
2011-04-06 2:20 ` [PATCH 3/4] ASoC: sst_platform: unregister sst card when being closed Lu Guanqun
2011-04-06 2:20 ` [PATCH 4/4] sst: make register_sst_card more self-contained Lu Guanqun
2011-04-06 14:16 ` [PATCH 1/4] ASoC: sst_platform: initialize module_name properly Mark Brown
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.