mutex_init(&state->slot_mutex);
mutex_init(&state->recycle_mutex);
mutex_init(&state->sync_mutex);
- mutex_init(&state->bulk_transfer_mutex);
spin_lock_init(&state->msg_queue_spinlock);
spin_lock_init(&state->bulk_waiter_spinlock);
spin_lock_init(&state->quota_spinlock);
init_completion(&state->slot_available_event);
- init_completion(&state->slot_remove_event);
init_completion(&state->data_quota_event);
state->slot_queue_available = 0;
struct mutex sync_mutex;
- struct mutex bulk_transfer_mutex;
-
spinlock_t msg_queue_spinlock;
spinlock_t bulk_waiter_spinlock;
/* Signalled when a free slot becomes available. */
struct completion slot_available_event;
- struct completion slot_remove_event;
-
/* Signalled when a free data slot becomes available. */
struct completion data_quota_event;