All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] cs46xx memory management fixes for cs46xx_dsp_spos_create() - make sure we free and don't do pointless work.
@ 2010-10-29 20:54 Jesper Juhl
  2010-10-29 22:18 ` Benny Sjöstrand
  0 siblings, 1 reply; 10+ messages in thread
From: Jesper Juhl @ 2010-10-29 20:54 UTC (permalink / raw)
  To: Benny Sjostrand; +Cc: linux-kernel, Jaroslav Kysela, Takashi Iwai, alsa-devel

Hi,

When reading through sound/pci/cs46xx/dsp_spos.c I noticed a couple of 
things in cs46xx_dsp_spos_create().

It seems to me that we don't always free the various memory buffers we 
allocate and we also do some work (structure member assignment) early, 
that is completely pointless if some of the memory allocations fail and 
we end up just aborting the whole thing.

I don't have hardware to test, so the patch below is compile tested only, 
but it makes the following changes:

- Make sure we always free all allocated memory on failures.
- Don't do pointless work assigning to structure members before we know 
  all memory allocations, that may abort progress, have completed 
  successfully.
- Remove some trailing whitespace.

If it looks ok, please merge, otherwise I'd be interested in knowing 
what's wrong so I can improve it.


Signed-off-by: Jesper Juhl <jj@chaosbits.net>
---
 dsp_spos.c |   33 +++++++++++----------------------
 1 file changed, 11 insertions(+), 22 deletions(-)

diff --git a/sound/pci/cs46xx/dsp_spos.c b/sound/pci/cs46xx/dsp_spos.c
index 3e5ca8f..e377287 100644
--- a/sound/pci/cs46xx/dsp_spos.c
+++ b/sound/pci/cs46xx/dsp_spos.c
@@ -225,39 +225,25 @@ struct dsp_spos_instance *cs46xx_dsp_spos_create (struct snd_cs46xx * chip)
 {
 	struct dsp_spos_instance * ins = kzalloc(sizeof(struct dsp_spos_instance), GFP_KERNEL);
 
-	if (ins == NULL) 
+	if (ins == NULL)
 		return NULL;
 
 	/* better to use vmalloc for this big table */
-	ins->symbol_table.nsymbols = 0;
 	ins->symbol_table.symbols = vmalloc(sizeof(struct dsp_symbol_entry) *
 					    DSP_MAX_SYMBOLS);
-	ins->symbol_table.highest_frag_index = 0;
-
-	if (ins->symbol_table.symbols == NULL) {
+	ins->code.data = kmalloc(DSP_CODE_BYTE_SIZE, GFP_KERNEL);
+	ins->modules = kmalloc(sizeof(struct dsp_module_desc) * DSP_MAX_MODULES, GFP_KERNEL);
+	if (!ins->symbol_table.symbols || !ins->code.data || !ins->modules) {
 		cs46xx_dsp_spos_destroy(chip);
 		goto error;
 	}
-
+	ins->symbol_table.nsymbols = 0;
+	ins->symbol_table.highest_frag_index = 0;
 	ins->code.offset = 0;
 	ins->code.size = 0;
-	ins->code.data = kmalloc(DSP_CODE_BYTE_SIZE, GFP_KERNEL);
-
-	if (ins->code.data == NULL) {
-		cs46xx_dsp_spos_destroy(chip);
-		goto error;
-	}
-
 	ins->nscb = 0;
 	ins->ntask = 0;
-
 	ins->nmodules = 0;
-	ins->modules = kmalloc(sizeof(struct dsp_module_desc) * DSP_MAX_MODULES, GFP_KERNEL);
-
-	if (ins->modules == NULL) {
-		cs46xx_dsp_spos_destroy(chip);
-		goto error;
-	}
 
 	/* default SPDIF input sample rate
 	   to 48000 khz */
@@ -271,8 +257,8 @@ struct dsp_spos_instance *cs46xx_dsp_spos_create (struct snd_cs46xx * chip)
 
 	/* set left and right validity bits and
 	   default channel status */
-	ins->spdif_csuv_default = 
-		ins->spdif_csuv_stream =  
+	ins->spdif_csuv_default =
+		ins->spdif_csuv_stream =
 	 /* byte 0 */  ((unsigned int)_wrap_all_bits(  (SNDRV_PCM_DEFAULT_CON_SPDIF        & 0xff)) << 24) |
 	 /* byte 1 */  ((unsigned int)_wrap_all_bits( ((SNDRV_PCM_DEFAULT_CON_SPDIF >> 8) & 0xff)) << 16) |
 	 /* byte 3 */   (unsigned int)_wrap_all_bits(  (SNDRV_PCM_DEFAULT_CON_SPDIF >> 24) & 0xff) |
@@ -281,6 +267,9 @@ struct dsp_spos_instance *cs46xx_dsp_spos_create (struct snd_cs46xx * chip)
 	return ins;
 
 error:
+	kfree(ins->modules);
+	kfree(ins->code.data);
+	vfree(ins->symbol_table.symbols);
 	kfree(ins);
 	return NULL;
 }


-- 
Jesper Juhl <jj@chaosbits.net>             http://www.chaosbits.net/
Plain text mails only, please      http://www.expita.com/nomime.html
Don't top-post  http://www.catb.org/~esr/jargon/html/T/top-post.html


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] cs46xx memory management fixes for cs46xx_dsp_spos_create() - make sure we free and don't do pointless work.
  2010-10-29 20:54 [PATCH] cs46xx memory management fixes for cs46xx_dsp_spos_create() - make sure we free and don't do pointless work Jesper Juhl
@ 2010-10-29 22:18 ` Benny Sjöstrand
  2010-10-30 12:06     ` Ondrej Zary
  0 siblings, 1 reply; 10+ messages in thread
From: Benny Sjöstrand @ 2010-10-29 22:18 UTC (permalink / raw)
  To: Jesper Juhl; +Cc: linux-kernel, Jaroslav Kysela, Takashi Iwai, alsa-devel

Hello again!

Just doing a reply-all.
It's has been many years since I did anything to the cs46xx driver, so 
I'm wondering
if there's anyone out there still using a cs46xx sound card?
I think the changes look's correct, but I can't test it, I do not have a 
cs46xx hardware anymore.

/Benny

Jesper Juhl wrote:
> Hi,
>
> When reading through sound/pci/cs46xx/dsp_spos.c I noticed a couple of 
> things in cs46xx_dsp_spos_create().
>
> It seems to me that we don't always free the various memory buffers we 
> allocate and we also do some work (structure member assignment) early, 
> that is completely pointless if some of the memory allocations fail and 
> we end up just aborting the whole thing.
>
> I don't have hardware to test, so the patch below is compile tested only, 
> but it makes the following changes:
>
> - Make sure we always free all allocated memory on failures.
> - Don't do pointless work assigning to structure members before we know 
>   all memory allocations, that may abort progress, have completed 
>   successfully.
> - Remove some trailing whitespace.
>
> If it looks ok, please merge, otherwise I'd be interested in knowing 
> what's wrong so I can improve it.
>
>
> Signed-off-by: Jesper Juhl <jj@chaosbits.net>
> ---
>  dsp_spos.c |   33 +++++++++++----------------------
>  1 file changed, 11 insertions(+), 22 deletions(-)
>
> diff --git a/sound/pci/cs46xx/dsp_spos.c b/sound/pci/cs46xx/dsp_spos.c
> index 3e5ca8f..e377287 100644
> --- a/sound/pci/cs46xx/dsp_spos.c
> +++ b/sound/pci/cs46xx/dsp_spos.c
> @@ -225,39 +225,25 @@ struct dsp_spos_instance *cs46xx_dsp_spos_create (struct snd_cs46xx * chip)
>  {
>  	struct dsp_spos_instance * ins = kzalloc(sizeof(struct dsp_spos_instance), GFP_KERNEL);
>  
> -	if (ins == NULL) 
> +	if (ins == NULL)
>  		return NULL;
>  
>  	/* better to use vmalloc for this big table */
> -	ins->symbol_table.nsymbols = 0;
>  	ins->symbol_table.symbols = vmalloc(sizeof(struct dsp_symbol_entry) *
>  					    DSP_MAX_SYMBOLS);
> -	ins->symbol_table.highest_frag_index = 0;
> -
> -	if (ins->symbol_table.symbols == NULL) {
> +	ins->code.data = kmalloc(DSP_CODE_BYTE_SIZE, GFP_KERNEL);
> +	ins->modules = kmalloc(sizeof(struct dsp_module_desc) * DSP_MAX_MODULES, GFP_KERNEL);
> +	if (!ins->symbol_table.symbols || !ins->code.data || !ins->modules) {
>  		cs46xx_dsp_spos_destroy(chip);
>  		goto error;
>  	}
> -
> +	ins->symbol_table.nsymbols = 0;
> +	ins->symbol_table.highest_frag_index = 0;
>  	ins->code.offset = 0;
>  	ins->code.size = 0;
> -	ins->code.data = kmalloc(DSP_CODE_BYTE_SIZE, GFP_KERNEL);
> -
> -	if (ins->code.data == NULL) {
> -		cs46xx_dsp_spos_destroy(chip);
> -		goto error;
> -	}
> -
>  	ins->nscb = 0;
>  	ins->ntask = 0;
> -
>  	ins->nmodules = 0;
> -	ins->modules = kmalloc(sizeof(struct dsp_module_desc) * DSP_MAX_MODULES, GFP_KERNEL);
> -
> -	if (ins->modules == NULL) {
> -		cs46xx_dsp_spos_destroy(chip);
> -		goto error;
> -	}
>  
>  	/* default SPDIF input sample rate
>  	   to 48000 khz */
> @@ -271,8 +257,8 @@ struct dsp_spos_instance *cs46xx_dsp_spos_create (struct snd_cs46xx * chip)
>  
>  	/* set left and right validity bits and
>  	   default channel status */
> -	ins->spdif_csuv_default = 
> -		ins->spdif_csuv_stream =  
> +	ins->spdif_csuv_default =
> +		ins->spdif_csuv_stream =
>  	 /* byte 0 */  ((unsigned int)_wrap_all_bits(  (SNDRV_PCM_DEFAULT_CON_SPDIF        & 0xff)) << 24) |
>  	 /* byte 1 */  ((unsigned int)_wrap_all_bits( ((SNDRV_PCM_DEFAULT_CON_SPDIF >> 8) & 0xff)) << 16) |
>  	 /* byte 3 */   (unsigned int)_wrap_all_bits(  (SNDRV_PCM_DEFAULT_CON_SPDIF >> 24) & 0xff) |
> @@ -281,6 +267,9 @@ struct dsp_spos_instance *cs46xx_dsp_spos_create (struct snd_cs46xx * chip)
>  	return ins;
>  
>  error:
> +	kfree(ins->modules);
> +	kfree(ins->code.data);
> +	vfree(ins->symbol_table.symbols);
>  	kfree(ins);
>  	return NULL;
>  }
>
>
>   



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] cs46xx memory management fixes for cs46xx_dsp_spos_create() - make sure we free and don't do pointless work.
  2010-10-29 22:18 ` Benny Sjöstrand
@ 2010-10-30 12:06     ` Ondrej Zary
  0 siblings, 0 replies; 10+ messages in thread
From: Ondrej Zary @ 2010-10-30 12:06 UTC (permalink / raw)
  To: Benny Sjöstrand
  Cc: Jesper Juhl, linux-kernel, Jaroslav Kysela, Takashi Iwai, alsa-devel

On Saturday 30 October 2010 00:18:57 Benny Sjöstrand wrote:
> Hello again!
>
> Just doing a reply-all.
> It's has been many years since I did anything to the cs46xx driver, so
> I'm wondering
> if there's anyone out there still using a cs46xx sound card?
> I think the changes look's correct, but I can't test it, I do not have a
> cs46xx hardware anymore.

Sure, there are many of these cards "out there". I just got a "new" Terratec 
DMX Xfire 1024 (CS4624). I'll test the patch.

>
> /Benny
>
> Jesper Juhl wrote:
> > Hi,
> >
> > When reading through sound/pci/cs46xx/dsp_spos.c I noticed a couple of
> > things in cs46xx_dsp_spos_create().
> >
> > It seems to me that we don't always free the various memory buffers we
> > allocate and we also do some work (structure member assignment) early,
> > that is completely pointless if some of the memory allocations fail and
> > we end up just aborting the whole thing.
> >
> > I don't have hardware to test, so the patch below is compile tested only,
> > but it makes the following changes:
> >
> > - Make sure we always free all allocated memory on failures.
> > - Don't do pointless work assigning to structure members before we know
> >   all memory allocations, that may abort progress, have completed
> >   successfully.
> > - Remove some trailing whitespace.
> >
> > If it looks ok, please merge, otherwise I'd be interested in knowing
> > what's wrong so I can improve it.
> >
> >
> > Signed-off-by: Jesper Juhl <jj@chaosbits.net>
> > ---
> >  dsp_spos.c |   33 +++++++++++----------------------
> >  1 file changed, 11 insertions(+), 22 deletions(-)
> >
> > diff --git a/sound/pci/cs46xx/dsp_spos.c b/sound/pci/cs46xx/dsp_spos.c
> > index 3e5ca8f..e377287 100644
> > --- a/sound/pci/cs46xx/dsp_spos.c
> > +++ b/sound/pci/cs46xx/dsp_spos.c
> > @@ -225,39 +225,25 @@ struct dsp_spos_instance *cs46xx_dsp_spos_create
> > (struct snd_cs46xx * chip) {
> >  	struct dsp_spos_instance * ins = kzalloc(sizeof(struct
> > dsp_spos_instance), GFP_KERNEL);
> >
> > -	if (ins == NULL)
> > +	if (ins == NULL)
> >  		return NULL;
> >
> >  	/* better to use vmalloc for this big table */
> > -	ins->symbol_table.nsymbols = 0;
> >  	ins->symbol_table.symbols = vmalloc(sizeof(struct dsp_symbol_entry) *
> >  					    DSP_MAX_SYMBOLS);
> > -	ins->symbol_table.highest_frag_index = 0;
> > -
> > -	if (ins->symbol_table.symbols == NULL) {
> > +	ins->code.data = kmalloc(DSP_CODE_BYTE_SIZE, GFP_KERNEL);
> > +	ins->modules = kmalloc(sizeof(struct dsp_module_desc) *
> > DSP_MAX_MODULES, GFP_KERNEL); +	if (!ins->symbol_table.symbols ||
> > !ins->code.data || !ins->modules) { cs46xx_dsp_spos_destroy(chip);
> >  		goto error;
> >  	}
> > -
> > +	ins->symbol_table.nsymbols = 0;
> > +	ins->symbol_table.highest_frag_index = 0;
> >  	ins->code.offset = 0;
> >  	ins->code.size = 0;
> > -	ins->code.data = kmalloc(DSP_CODE_BYTE_SIZE, GFP_KERNEL);
> > -
> > -	if (ins->code.data == NULL) {
> > -		cs46xx_dsp_spos_destroy(chip);
> > -		goto error;
> > -	}
> > -
> >  	ins->nscb = 0;
> >  	ins->ntask = 0;
> > -
> >  	ins->nmodules = 0;
> > -	ins->modules = kmalloc(sizeof(struct dsp_module_desc) *
> > DSP_MAX_MODULES, GFP_KERNEL); -
> > -	if (ins->modules == NULL) {
> > -		cs46xx_dsp_spos_destroy(chip);
> > -		goto error;
> > -	}
> >
> >  	/* default SPDIF input sample rate
> >  	   to 48000 khz */
> > @@ -271,8 +257,8 @@ struct dsp_spos_instance *cs46xx_dsp_spos_create
> > (struct snd_cs46xx * chip)
> >
> >  	/* set left and right validity bits and
> >  	   default channel status */
> > -	ins->spdif_csuv_default =
> > -		ins->spdif_csuv_stream =
> > +	ins->spdif_csuv_default =
> > +		ins->spdif_csuv_stream =
> >  	 /* byte 0 */  ((unsigned int)_wrap_all_bits( 
> > (SNDRV_PCM_DEFAULT_CON_SPDIF        & 0xff)) << 24) | /* byte 1 */ 
> > ((unsigned int)_wrap_all_bits( ((SNDRV_PCM_DEFAULT_CON_SPDIF >> 8) &
> > 0xff)) << 16) | /* byte 3 */   (unsigned int)_wrap_all_bits( 
> > (SNDRV_PCM_DEFAULT_CON_SPDIF >> 24) & 0xff) | @@ -281,6 +267,9 @@ struct
> > dsp_spos_instance *cs46xx_dsp_spos_create (struct snd_cs46xx * chip)
> > return ins;
> >
> >  error:
> > +	kfree(ins->modules);
> > +	kfree(ins->code.data);
> > +	vfree(ins->symbol_table.symbols);
> >  	kfree(ins);
> >  	return NULL;
> >  }
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/



-- 
Ondrej Zary

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] cs46xx memory management fixes for cs46xx_dsp_spos_create() - make sure we free and don't do pointless work.
@ 2010-10-30 12:06     ` Ondrej Zary
  0 siblings, 0 replies; 10+ messages in thread
From: Ondrej Zary @ 2010-10-30 12:06 UTC (permalink / raw)
  To: Benny Sjöstrand; +Cc: Takashi Iwai, alsa-devel, Jesper Juhl, linux-kernel

On Saturday 30 October 2010 00:18:57 Benny Sjöstrand wrote:
> Hello again!
>
> Just doing a reply-all.
> It's has been many years since I did anything to the cs46xx driver, so
> I'm wondering
> if there's anyone out there still using a cs46xx sound card?
> I think the changes look's correct, but I can't test it, I do not have a
> cs46xx hardware anymore.

Sure, there are many of these cards "out there". I just got a "new" Terratec 
DMX Xfire 1024 (CS4624). I'll test the patch.

>
> /Benny
>
> Jesper Juhl wrote:
> > Hi,
> >
> > When reading through sound/pci/cs46xx/dsp_spos.c I noticed a couple of
> > things in cs46xx_dsp_spos_create().
> >
> > It seems to me that we don't always free the various memory buffers we
> > allocate and we also do some work (structure member assignment) early,
> > that is completely pointless if some of the memory allocations fail and
> > we end up just aborting the whole thing.
> >
> > I don't have hardware to test, so the patch below is compile tested only,
> > but it makes the following changes:
> >
> > - Make sure we always free all allocated memory on failures.
> > - Don't do pointless work assigning to structure members before we know
> >   all memory allocations, that may abort progress, have completed
> >   successfully.
> > - Remove some trailing whitespace.
> >
> > If it looks ok, please merge, otherwise I'd be interested in knowing
> > what's wrong so I can improve it.
> >
> >
> > Signed-off-by: Jesper Juhl <jj@chaosbits.net>
> > ---
> >  dsp_spos.c |   33 +++++++++++----------------------
> >  1 file changed, 11 insertions(+), 22 deletions(-)
> >
> > diff --git a/sound/pci/cs46xx/dsp_spos.c b/sound/pci/cs46xx/dsp_spos.c
> > index 3e5ca8f..e377287 100644
> > --- a/sound/pci/cs46xx/dsp_spos.c
> > +++ b/sound/pci/cs46xx/dsp_spos.c
> > @@ -225,39 +225,25 @@ struct dsp_spos_instance *cs46xx_dsp_spos_create
> > (struct snd_cs46xx * chip) {
> >  	struct dsp_spos_instance * ins = kzalloc(sizeof(struct
> > dsp_spos_instance), GFP_KERNEL);
> >
> > -	if (ins == NULL)
> > +	if (ins == NULL)
> >  		return NULL;
> >
> >  	/* better to use vmalloc for this big table */
> > -	ins->symbol_table.nsymbols = 0;
> >  	ins->symbol_table.symbols = vmalloc(sizeof(struct dsp_symbol_entry) *
> >  					    DSP_MAX_SYMBOLS);
> > -	ins->symbol_table.highest_frag_index = 0;
> > -
> > -	if (ins->symbol_table.symbols == NULL) {
> > +	ins->code.data = kmalloc(DSP_CODE_BYTE_SIZE, GFP_KERNEL);
> > +	ins->modules = kmalloc(sizeof(struct dsp_module_desc) *
> > DSP_MAX_MODULES, GFP_KERNEL); +	if (!ins->symbol_table.symbols ||
> > !ins->code.data || !ins->modules) { cs46xx_dsp_spos_destroy(chip);
> >  		goto error;
> >  	}
> > -
> > +	ins->symbol_table.nsymbols = 0;
> > +	ins->symbol_table.highest_frag_index = 0;
> >  	ins->code.offset = 0;
> >  	ins->code.size = 0;
> > -	ins->code.data = kmalloc(DSP_CODE_BYTE_SIZE, GFP_KERNEL);
> > -
> > -	if (ins->code.data == NULL) {
> > -		cs46xx_dsp_spos_destroy(chip);
> > -		goto error;
> > -	}
> > -
> >  	ins->nscb = 0;
> >  	ins->ntask = 0;
> > -
> >  	ins->nmodules = 0;
> > -	ins->modules = kmalloc(sizeof(struct dsp_module_desc) *
> > DSP_MAX_MODULES, GFP_KERNEL); -
> > -	if (ins->modules == NULL) {
> > -		cs46xx_dsp_spos_destroy(chip);
> > -		goto error;
> > -	}
> >
> >  	/* default SPDIF input sample rate
> >  	   to 48000 khz */
> > @@ -271,8 +257,8 @@ struct dsp_spos_instance *cs46xx_dsp_spos_create
> > (struct snd_cs46xx * chip)
> >
> >  	/* set left and right validity bits and
> >  	   default channel status */
> > -	ins->spdif_csuv_default =
> > -		ins->spdif_csuv_stream =
> > +	ins->spdif_csuv_default =
> > +		ins->spdif_csuv_stream =
> >  	 /* byte 0 */  ((unsigned int)_wrap_all_bits( 
> > (SNDRV_PCM_DEFAULT_CON_SPDIF        & 0xff)) << 24) | /* byte 1 */ 
> > ((unsigned int)_wrap_all_bits( ((SNDRV_PCM_DEFAULT_CON_SPDIF >> 8) &
> > 0xff)) << 16) | /* byte 3 */   (unsigned int)_wrap_all_bits( 
> > (SNDRV_PCM_DEFAULT_CON_SPDIF >> 24) & 0xff) | @@ -281,6 +267,9 @@ struct
> > dsp_spos_instance *cs46xx_dsp_spos_create (struct snd_cs46xx * chip)
> > return ins;
> >
> >  error:
> > +	kfree(ins->modules);
> > +	kfree(ins->code.data);
> > +	vfree(ins->symbol_table.symbols);
> >  	kfree(ins);
> >  	return NULL;
> >  }
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/



-- 
Ondrej Zary

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] cs46xx memory management fixes for cs46xx_dsp_spos_create() - make sure we free and don't do pointless work.
  2010-10-30 12:06     ` Ondrej Zary
  (?)
@ 2010-10-30 19:44     ` Jesper Juhl
  2010-10-31 17:29         ` Ondrej Zary
  -1 siblings, 1 reply; 10+ messages in thread
From: Jesper Juhl @ 2010-10-30 19:44 UTC (permalink / raw)
  To: Ondrej Zary
  Cc: Benny Sjöstrand, linux-kernel, Jaroslav Kysela,
	Takashi Iwai, alsa-devel

[-- Attachment #1: Type: TEXT/PLAIN, Size: 811 bytes --]

On Sat, 30 Oct 2010, Ondrej Zary wrote:

> On Saturday 30 October 2010 00:18:57 Benny Sjöstrand wrote:
> > Hello again!
> >
> > Just doing a reply-all.
> > It's has been many years since I did anything to the cs46xx driver, so
> > I'm wondering
> > if there's anyone out there still using a cs46xx sound card?
> > I think the changes look's correct, but I can't test it, I do not have a
> > cs46xx hardware anymore.
> 
> Sure, there are many of these cards "out there". I just got a "new" Terratec 
> DMX Xfire 1024 (CS4624). I'll test the patch.
> 

Thanks a lot. Let me know how the test goes :-)

-- 
Jesper Juhl <jj@chaosbits.net>             http://www.chaosbits.net/
Plain text mails only, please      http://www.expita.com/nomime.html
Don't top-post  http://www.catb.org/~esr/jargon/html/T/top-post.html

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] cs46xx memory management fixes for cs46xx_dsp_spos_create() - make sure we free and don't do pointless work.
  2010-10-30 19:44     ` Jesper Juhl
@ 2010-10-31 17:29         ` Ondrej Zary
  0 siblings, 0 replies; 10+ messages in thread
From: Ondrej Zary @ 2010-10-31 17:29 UTC (permalink / raw)
  To: Jesper Juhl
  Cc: Benny Sjöstrand, linux-kernel, Jaroslav Kysela,
	Takashi Iwai, alsa-devel

On Saturday 30 October 2010 21:44:33 Jesper Juhl wrote:
> On Sat, 30 Oct 2010, Ondrej Zary wrote:
> > On Saturday 30 October 2010 00:18:57 Benny Sjöstrand wrote:
> > > Hello again!
> > >
> > > Just doing a reply-all.
> > > It's has been many years since I did anything to the cs46xx driver, so
> > > I'm wondering
> > > if there's anyone out there still using a cs46xx sound card?
> > > I think the changes look's correct, but I can't test it, I do not have
> > > a cs46xx hardware anymore.
> >
> > Sure, there are many of these cards "out there". I just got a "new"
> > Terratec DMX Xfire 1024 (CS4624). I'll test the patch.
>
> Thanks a lot. Let me know how the test goes :-)

It works fine. Playing music right now.

-- 
Ondrej Zary

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] cs46xx memory management fixes for cs46xx_dsp_spos_create() - make sure we free and don't do pointless work.
@ 2010-10-31 17:29         ` Ondrej Zary
  0 siblings, 0 replies; 10+ messages in thread
From: Ondrej Zary @ 2010-10-31 17:29 UTC (permalink / raw)
  To: Jesper Juhl; +Cc: Takashi Iwai, alsa-devel, linux-kernel, Benny Sjöstrand

On Saturday 30 October 2010 21:44:33 Jesper Juhl wrote:
> On Sat, 30 Oct 2010, Ondrej Zary wrote:
> > On Saturday 30 October 2010 00:18:57 Benny Sjöstrand wrote:
> > > Hello again!
> > >
> > > Just doing a reply-all.
> > > It's has been many years since I did anything to the cs46xx driver, so
> > > I'm wondering
> > > if there's anyone out there still using a cs46xx sound card?
> > > I think the changes look's correct, but I can't test it, I do not have
> > > a cs46xx hardware anymore.
> >
> > Sure, there are many of these cards "out there". I just got a "new"
> > Terratec DMX Xfire 1024 (CS4624). I'll test the patch.
>
> Thanks a lot. Let me know how the test goes :-)

It works fine. Playing music right now.

-- 
Ondrej Zary
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] cs46xx memory management fixes for cs46xx_dsp_spos_create() - make sure we free and don't do pointless work.
  2010-10-31 17:29         ` Ondrej Zary
@ 2010-11-01  9:38           ` Takashi Iwai
  -1 siblings, 0 replies; 10+ messages in thread
From: Takashi Iwai @ 2010-11-01  9:38 UTC (permalink / raw)
  To: Ondrej Zary
  Cc: Jesper Juhl, Benny Sjöstrand, linux-kernel, Jaroslav Kysela,
	alsa-devel

At Sun, 31 Oct 2010 18:29:10 +0100,
Ondrej Zary wrote:
> 
> On Saturday 30 October 2010 21:44:33 Jesper Juhl wrote:
> > On Sat, 30 Oct 2010, Ondrej Zary wrote:
> > > On Saturday 30 October 2010 00:18:57 Benny Sjöstrand wrote:
> > > > Hello again!
> > > >
> > > > Just doing a reply-all.
> > > > It's has been many years since I did anything to the cs46xx driver, so
> > > > I'm wondering
> > > > if there's anyone out there still using a cs46xx sound card?
> > > > I think the changes look's correct, but I can't test it, I do not have
> > > > a cs46xx hardware anymore.
> > >
> > > Sure, there are many of these cards "out there". I just got a "new"
> > > Terratec DMX Xfire 1024 (CS4624). I'll test the patch.
> >
> > Thanks a lot. Let me know how the test goes :-)
> 
> It works fine. Playing music right now.

Great.  I applied the patch now.


Thanks!

Takashi

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] cs46xx memory management fixes for cs46xx_dsp_spos_create() - make sure we free and don't do pointless work.
@ 2010-11-01  9:38           ` Takashi Iwai
  0 siblings, 0 replies; 10+ messages in thread
From: Takashi Iwai @ 2010-11-01  9:38 UTC (permalink / raw)
  To: Ondrej Zary; +Cc: alsa-devel, Jesper Juhl, linux-kernel, Benny Sjöstrand

At Sun, 31 Oct 2010 18:29:10 +0100,
Ondrej Zary wrote:
> 
> On Saturday 30 October 2010 21:44:33 Jesper Juhl wrote:
> > On Sat, 30 Oct 2010, Ondrej Zary wrote:
> > > On Saturday 30 October 2010 00:18:57 Benny Sjöstrand wrote:
> > > > Hello again!
> > > >
> > > > Just doing a reply-all.
> > > > It's has been many years since I did anything to the cs46xx driver, so
> > > > I'm wondering
> > > > if there's anyone out there still using a cs46xx sound card?
> > > > I think the changes look's correct, but I can't test it, I do not have
> > > > a cs46xx hardware anymore.
> > >
> > > Sure, there are many of these cards "out there". I just got a "new"
> > > Terratec DMX Xfire 1024 (CS4624). I'll test the patch.
> >
> > Thanks a lot. Let me know how the test goes :-)
> 
> It works fine. Playing music right now.

Great.  I applied the patch now.


Thanks!

Takashi
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] cs46xx memory management fixes for cs46xx_dsp_spos_create() - make sure we free and don't do pointless work.
  2010-11-01  9:38           ` Takashi Iwai
  (?)
@ 2010-11-01 18:23           ` Jesper Juhl
  -1 siblings, 0 replies; 10+ messages in thread
From: Jesper Juhl @ 2010-11-01 18:23 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: Ondrej Zary, Benny Sjöstrand, linux-kernel, Jaroslav Kysela,
	alsa-devel

[-- Attachment #1: Type: TEXT/PLAIN, Size: 1202 bytes --]

On Mon, 1 Nov 2010, Takashi Iwai wrote:

> At Sun, 31 Oct 2010 18:29:10 +0100,
> Ondrej Zary wrote:
> > 
> > On Saturday 30 October 2010 21:44:33 Jesper Juhl wrote:
> > > On Sat, 30 Oct 2010, Ondrej Zary wrote:
> > > > On Saturday 30 October 2010 00:18:57 Benny Sjöstrand wrote:
> > > > > Hello again!
> > > > >
> > > > > Just doing a reply-all.
> > > > > It's has been many years since I did anything to the cs46xx driver, so
> > > > > I'm wondering
> > > > > if there's anyone out there still using a cs46xx sound card?
> > > > > I think the changes look's correct, but I can't test it, I do not have
> > > > > a cs46xx hardware anymore.
> > > >
> > > > Sure, there are many of these cards "out there". I just got a "new"
> > > > Terratec DMX Xfire 1024 (CS4624). I'll test the patch.
> > >
> > > Thanks a lot. Let me know how the test goes :-)
> > 
> > It works fine. Playing music right now.
> 
> Great.  I applied the patch now.
> 
Thanks Takashi and thank you for testing Ondrej :-)

-- 
Jesper Juhl <jj@chaosbits.net>             http://www.chaosbits.net/
Plain text mails only, please      http://www.expita.com/nomime.html
Don't top-post  http://www.catb.org/~esr/jargon/html/T/top-post.html

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2010-11-01 18:34 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-10-29 20:54 [PATCH] cs46xx memory management fixes for cs46xx_dsp_spos_create() - make sure we free and don't do pointless work Jesper Juhl
2010-10-29 22:18 ` Benny Sjöstrand
2010-10-30 12:06   ` Ondrej Zary
2010-10-30 12:06     ` Ondrej Zary
2010-10-30 19:44     ` Jesper Juhl
2010-10-31 17:29       ` Ondrej Zary
2010-10-31 17:29         ` Ondrej Zary
2010-11-01  9:38         ` Takashi Iwai
2010-11-01  9:38           ` Takashi Iwai
2010-11-01 18:23           ` Jesper Juhl

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.