|
@@ -105,7 +105,7 @@ static void snd_ctl_empty_read_queue(struct snd_ctl_file * ctl)
|
|
{
|
|
{
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
struct snd_kctl_event *cread;
|
|
struct snd_kctl_event *cread;
|
|
-
|
|
|
|
|
|
+
|
|
spin_lock_irqsave(&ctl->read_lock, flags);
|
|
spin_lock_irqsave(&ctl->read_lock, flags);
|
|
while (!list_empty(&ctl->events)) {
|
|
while (!list_empty(&ctl->events)) {
|
|
cread = snd_kctl_event(ctl->events.next);
|
|
cread = snd_kctl_event(ctl->events.next);
|
|
@@ -159,7 +159,7 @@ void snd_ctl_notify(struct snd_card *card, unsigned int mask,
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
struct snd_ctl_file *ctl;
|
|
struct snd_ctl_file *ctl;
|
|
struct snd_kctl_event *ev;
|
|
struct snd_kctl_event *ev;
|
|
-
|
|
|
|
|
|
+
|
|
if (snd_BUG_ON(!card || !id))
|
|
if (snd_BUG_ON(!card || !id))
|
|
return;
|
|
return;
|
|
if (card->shutdown)
|
|
if (card->shutdown)
|
|
@@ -213,7 +213,7 @@ static int snd_ctl_new(struct snd_kcontrol **kctl, unsigned int count,
|
|
{
|
|
{
|
|
unsigned int size;
|
|
unsigned int size;
|
|
unsigned int idx;
|
|
unsigned int idx;
|
|
-
|
|
|
|
|
|
+
|
|
if (count == 0 || count > MAX_CONTROL_COUNT)
|
|
if (count == 0 || count > MAX_CONTROL_COUNT)
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
|
|
|
|
@@ -238,7 +238,7 @@ static int snd_ctl_new(struct snd_kcontrol **kctl, unsigned int count,
|
|
* @ncontrol: the initialization record
|
|
* @ncontrol: the initialization record
|
|
* @private_data: the private data to set
|
|
* @private_data: the private data to set
|
|
*
|
|
*
|
|
- * Allocates a new struct snd_kcontrol instance and initialize from the given
|
|
|
|
|
|
+ * Allocates a new struct snd_kcontrol instance and initialize from the given
|
|
* template. When the access field of ncontrol is 0, it's assumed as
|
|
* template. When the access field of ncontrol is 0, it's assumed as
|
|
* READWRITE access. When the count field is 0, it's assumes as one.
|
|
* READWRITE access. When the count field is 0, it's assumes as one.
|
|
*
|
|
*
|
|
@@ -251,7 +251,7 @@ struct snd_kcontrol *snd_ctl_new1(const struct snd_kcontrol_new *ncontrol,
|
|
unsigned int count;
|
|
unsigned int count;
|
|
unsigned int access;
|
|
unsigned int access;
|
|
int err;
|
|
int err;
|
|
-
|
|
|
|
|
|
+
|
|
if (snd_BUG_ON(!ncontrol || !ncontrol->info))
|
|
if (snd_BUG_ON(!ncontrol || !ncontrol->info))
|
|
return NULL;
|
|
return NULL;
|
|
|
|
|
|
@@ -753,7 +753,7 @@ static int snd_ctl_elem_list(struct snd_card *card,
|
|
struct snd_ctl_elem_id id;
|
|
struct snd_ctl_elem_id id;
|
|
unsigned int offset, space, jidx;
|
|
unsigned int offset, space, jidx;
|
|
int err = 0;
|
|
int err = 0;
|
|
-
|
|
|
|
|
|
+
|
|
if (copy_from_user(&list, _list, sizeof(list)))
|
|
if (copy_from_user(&list, _list, sizeof(list)))
|
|
return -EFAULT;
|
|
return -EFAULT;
|
|
offset = list.offset;
|
|
offset = list.offset;
|
|
@@ -827,7 +827,7 @@ static int snd_ctl_elem_info(struct snd_ctl_file *ctl,
|
|
struct snd_kcontrol_volatile *vd;
|
|
struct snd_kcontrol_volatile *vd;
|
|
unsigned int index_offset;
|
|
unsigned int index_offset;
|
|
int result;
|
|
int result;
|
|
-
|
|
|
|
|
|
+
|
|
down_read(&card->controls_rwsem);
|
|
down_read(&card->controls_rwsem);
|
|
kctl = snd_ctl_find_id(card, &info->id);
|
|
kctl = snd_ctl_find_id(card, &info->id);
|
|
if (kctl == NULL) {
|
|
if (kctl == NULL) {
|
|
@@ -992,7 +992,7 @@ static int snd_ctl_elem_lock(struct snd_ctl_file *file,
|
|
struct snd_kcontrol *kctl;
|
|
struct snd_kcontrol *kctl;
|
|
struct snd_kcontrol_volatile *vd;
|
|
struct snd_kcontrol_volatile *vd;
|
|
int result;
|
|
int result;
|
|
-
|
|
|
|
|
|
+
|
|
if (copy_from_user(&id, _id, sizeof(id)))
|
|
if (copy_from_user(&id, _id, sizeof(id)))
|
|
return -EFAULT;
|
|
return -EFAULT;
|
|
down_write(&card->controls_rwsem);
|
|
down_write(&card->controls_rwsem);
|
|
@@ -1020,7 +1020,7 @@ static int snd_ctl_elem_unlock(struct snd_ctl_file *file,
|
|
struct snd_kcontrol *kctl;
|
|
struct snd_kcontrol *kctl;
|
|
struct snd_kcontrol_volatile *vd;
|
|
struct snd_kcontrol_volatile *vd;
|
|
int result;
|
|
int result;
|
|
-
|
|
|
|
|
|
+
|
|
if (copy_from_user(&id, _id, sizeof(id)))
|
|
if (copy_from_user(&id, _id, sizeof(id)))
|
|
return -EFAULT;
|
|
return -EFAULT;
|
|
down_write(&card->controls_rwsem);
|
|
down_write(&card->controls_rwsem);
|