diff options
| -rw-r--r-- | 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 65fcf4770731..e0cff0c72e51 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) | |||
| 107 | union hpi_response_buffer_v1 *hr; | 107 | union hpi_response_buffer_v1 *hr; |
| 108 | u16 res_max_size; | 108 | u16 res_max_size; |
| 109 | u32 uncopied_bytes; | 109 | u32 uncopied_bytes; |
| 110 | struct hpi_adapter *pa = NULL; | ||
| 111 | int err = 0; | 110 | int err = 0; |
| 112 | 111 | ||
| 113 | if (cmd != HPI_IOCTL_LINUX) | 112 | if (cmd != HPI_IOCTL_LINUX) |
| @@ -182,6 +181,7 @@ long asihpi_hpi_ioctl(struct file *file, unsigned int cmd, unsigned long arg) | |||
| 182 | /* -1=no data 0=read from user mem, 1=write to user mem */ | 181 | /* -1=no data 0=read from user mem, 1=write to user mem */ |
| 183 | int wrflag = -1; | 182 | int wrflag = -1; |
| 184 | u32 adapter = hm->h.adapter_index; | 183 | u32 adapter = hm->h.adapter_index; |
| 184 | struct hpi_adapter *pa = &adapters[adapter]; | ||
| 185 | 185 | ||
| 186 | if ((adapter > HPI_MAX_ADAPTERS) || (!pa->type)) { | 186 | if ((adapter > HPI_MAX_ADAPTERS) || (!pa->type)) { |
| 187 | hpi_init_response(&hr->r0, HPI_OBJ_ADAPTER, | 187 | 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) | |||
| 197 | goto out; | 197 | goto out; |
| 198 | } | 198 | } |
| 199 | 199 | ||
| 200 | pa = &adapters[adapter]; | 200 | if (mutex_lock_interruptible(&pa->mutex)) { |
| 201 | |||
| 202 | if (mutex_lock_interruptible(&adapters[adapter].mutex)) { | ||
| 203 | err = -EINTR; | 201 | err = -EINTR; |
| 204 | goto out; | 202 | goto out; |
| 205 | } | 203 | } |
| @@ -235,8 +233,7 @@ long asihpi_hpi_ioctl(struct file *file, unsigned int cmd, unsigned long arg) | |||
| 235 | "stream buffer size %d\n", | 233 | "stream buffer size %d\n", |
| 236 | size); | 234 | size); |
| 237 | 235 | ||
| 238 | mutex_unlock(&adapters | 236 | mutex_unlock(&pa->mutex); |
| 239 | [adapter].mutex); | ||
| 240 | err = -EINVAL; | 237 | err = -EINVAL; |
| 241 | goto out; | 238 | goto out; |
| 242 | } | 239 | } |
| @@ -277,7 +274,7 @@ long asihpi_hpi_ioctl(struct file *file, unsigned int cmd, unsigned long arg) | |||
| 277 | uncopied_bytes, size); | 274 | uncopied_bytes, size); |
| 278 | } | 275 | } |
| 279 | 276 | ||
| 280 | mutex_unlock(&adapters[adapter].mutex); | 277 | mutex_unlock(&pa->mutex); |
| 281 | } | 278 | } |
| 282 | 279 | ||
| 283 | /* on return response size must be set */ | 280 | /* on return response size must be set */ |
