|
@@ -1,7 +1,7 @@
|
|
|
/*******************************************************************************
|
|
|
|
|
|
AudioScience HPI driver
|
|
|
- Copyright (C) 1997-2010 AudioScience Inc. <support@audioscience.com>
|
|
|
+ Copyright (C) 1997-2011 AudioScience Inc. <support@audioscience.com>
|
|
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
|
it under the terms of version 2 of the GNU General Public License as
|
|
@@ -157,11 +157,6 @@ long asihpi_hpi_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
- if (hm->h.adapter_index >= HPI_MAX_ADAPTERS) {
|
|
|
- err = -EINVAL;
|
|
|
- goto out;
|
|
|
- }
|
|
|
-
|
|
|
switch (hm->h.function) {
|
|
|
case HPI_SUBSYS_CREATE_ADAPTER:
|
|
|
case HPI_ADAPTER_DELETE:
|
|
@@ -187,7 +182,6 @@ 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;
|
|
|
- pa = &adapters[adapter];
|
|
|
|
|
|
if ((adapter > HPI_MAX_ADAPTERS) || (!pa->type)) {
|
|
|
hpi_init_response(&hr->r0, HPI_OBJ_ADAPTER,
|
|
@@ -203,6 +197,8 @@ 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)) {
|
|
|
err = -EINTR;
|
|
|
goto out;
|