Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 767cd365 authored by Eliot Blennerhassett's avatar Eliot Blennerhassett Committed by Takashi Iwai
Browse files

ALSA: asihpi - bug fix pa use before init.



Fixes bug introduced by 1c073b67.
Also declare pa local to block in which it is used.

Signed-off-by: default avatarEliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 45eebda7
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -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 */