{
struct list_head *p, *n;
+ down_write(&grp->list_mutex);
list_for_each_safe(p, n, &grp->list_head) {
struct snd_seq_subscribers *subs;
struct snd_seq_client *c;
snd_seq_client_unlock(c);
}
}
+ up_write(&grp->list_mutex);
}
/* delete port data */
atomic_set(&subs->ref_count, 2);
down_write(&src->list_mutex);
- down_write_nested(&dest->list_mutex, SINGLE_DEPTH_NESTING);
+ down_write(&dest->list_mutex);
exclusive = info->flags & SNDRV_SEQ_PORT_SUBS_EXCLUSIVE ? 1 : 0;
err = -EBUSY;
unsigned long flags;
down_write(&src->list_mutex);
- down_write_nested(&dest->list_mutex, SINGLE_DEPTH_NESTING);
+ down_write(&dest->list_mutex);
/* look for the connection */
list_for_each(p, &src->list_head) {
return ret;
}
-EXPORT_SYMBOL(snd_seq_event_port_attach);
/*
* Detach the driver from a port.
return err;
}
-
-EXPORT_SYMBOL(snd_seq_event_port_detach);