[alsa-devel] [PATCH] ALSA: asihpi - bug fix pa use before init.

Takashi Iwai tiwai at suse.de
Wed Jul 27 10:09:52 CEST 2011


At Wed, 27 Jul 2011 20:03:51 +1200,
linux at audioscience.com wrote:
> 
> From: Eliot Blennerhassett <eblennerhassett at audioscience.com>
> 
> Fixes bug introduced by 1c073b67.
> Also declare pa local to block in which it is used.
> 
> Signed-off-by: Eliot Blennerhassett <eblennerhassett at audioscience.com>

Applied now.  Thanks.


Takashi

> ---
>  sound/pci/asihpi/hpioctl.c |   11 ++++-------
>  1 files changed, 4 insertions(+), 7 deletions(-)
> 
> diff --git a/sound/pci/asihpi/hpioctl.c b/sound/pci/asihpi/hpioctl.c
> index 65fcf47..e0cff0c 100644
> --- a/sound/pci/asihpi/hpioctl.c
> +++ b/sound/pci/asihpi/hpioctl.c
> @@ -107,7 +107,6 @@ long asihpi_hpi_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
>  	union hpi_response_buffer_v1 *hr;
>  	u16 res_max_size;
>  	u32 uncopied_bytes;
> -	struct hpi_adapter *pa = NULL;
>  	int err = 0;
>  
>  	if (cmd != HPI_IOCTL_LINUX)
> @@ -182,6 +181,7 @@ long asihpi_hpi_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
>  		/* -1=no data 0=read from user mem, 1=write to user mem */
>  		int wrflag = -1;
>  		u32 adapter = hm->h.adapter_index;
> +		struct hpi_adapter *pa = &adapters[adapter];
>  
>  		if ((adapter > HPI_MAX_ADAPTERS) || (!pa->type)) {
>  			hpi_init_response(&hr->r0, HPI_OBJ_ADAPTER,
> @@ -197,9 +197,7 @@ long asihpi_hpi_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
>  			goto out;
>  		}
>  
> -		pa = &adapters[adapter];
> -
> -		if (mutex_lock_interruptible(&adapters[adapter].mutex)) {
> +		if (mutex_lock_interruptible(&pa->mutex)) {
>  			err = -EINTR;
>  			goto out;
>  		}
> @@ -235,8 +233,7 @@ long asihpi_hpi_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
>  							"stream buffer size %d\n",
>  							size);
>  
> -						mutex_unlock(&adapters
> -							[adapter].mutex);
> +						mutex_unlock(&pa->mutex);
>  						err = -EINVAL;
>  						goto out;
>  					}
> @@ -277,7 +274,7 @@ long asihpi_hpi_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
>  					uncopied_bytes, size);
>  		}
>  
> -		mutex_unlock(&adapters[adapter].mutex);
> +		mutex_unlock(&pa->mutex);
>  	}
>  
>  	/* on return response size must be set */
> -- 
> 1.7.0.4
> 


More information about the Alsa-devel mailing list