switch (mode) {
case VCHIQ_BULK_MODE_NOCALLBACK:
case VCHIQ_BULK_MODE_CALLBACK:
- ret = vchiq_bulk_xfer_callback_interruptible(instance, handle,
- (void *)data, NULL,
- size, mode, userdata,
- VCHIQ_BULK_TRANSMIT);
+ ret = vchiq_bulk_xfer_callback(instance, handle, (void *)data,
+ NULL, size, mode, userdata,
+ VCHIQ_BULK_TRANSMIT);
break;
case VCHIQ_BULK_MODE_BLOCKING:
ret = vchiq_blocking_bulk_transfer(instance, handle, (void *)data, size,
switch (mode) {
case VCHIQ_BULK_MODE_NOCALLBACK:
case VCHIQ_BULK_MODE_CALLBACK:
- ret = vchiq_bulk_xfer_callback_interruptible(instance, handle,
- (void *)data, NULL,
- size, mode, userdata,
- VCHIQ_BULK_RECEIVE);
+ ret = vchiq_bulk_xfer_callback(instance, handle, (void *)data, NULL,
+ size, mode, userdata, VCHIQ_BULK_RECEIVE);
break;
case VCHIQ_BULK_MODE_BLOCKING:
ret = vchiq_blocking_bulk_transfer(instance, handle, (void *)data, size,
return -ENOMEM;
}
- ret = vchiq_bulk_xfer_blocking_interruptible(instance, handle, data, NULL, size,
- &waiter->bulk_waiter, dir);
+ ret = vchiq_bulk_xfer_blocking(instance, handle, data, NULL, size,
+ &waiter->bulk_waiter, dir);
if ((ret != -EAGAIN) || fatal_signal_pending(current) || !waiter->bulk_waiter.bulk) {
struct vchiq_bulk *bulk = waiter->bulk_waiter.bulk;
spin_unlock(&state->quota_spinlock);
mutex_unlock(&state->slot_mutex);
- if (wait_for_completion_interruptible(&state->data_quota_event))
+ if (wait_for_completion_killable(&state->data_quota_event))
return -EAGAIN;
mutex_lock(&state->slot_mutex);
quota->message_use_count, quota->slot_use_count);
VCHIQ_SERVICE_STATS_INC(service, quota_stalls);
mutex_unlock(&state->slot_mutex);
- if (wait_for_completion_interruptible("a->quota_event))
+ if (wait_for_completion_killable("a->quota_event))
return -EAGAIN;
if (service->closing)
return -EHOSTDOWN;
* returned to user context.
*/
static int
-vchiq_bulk_xfer_queue_msg_interruptible(struct vchiq_service *service,
- void *offset, void __user *uoffset,
- int size, void *userdata,
- enum vchiq_bulk_mode mode,
- enum vchiq_bulk_dir dir)
+vchiq_bulk_xfer_queue_msg_killable(struct vchiq_service *service,
+ void *offset, void __user *uoffset,
+ int size, void *userdata,
+ enum vchiq_bulk_mode mode,
+ enum vchiq_bulk_dir dir)
{
struct vchiq_bulk_queue *queue;
struct bulk_waiter *bulk_waiter = NULL;
VCHIQ_SERVICE_STATS_INC(service, bulk_stalls);
do {
mutex_unlock(&service->bulk_mutex);
- if (wait_for_completion_interruptible(&service->bulk_remove_event))
+ if (wait_for_completion_killable(&service->bulk_remove_event))
return -EAGAIN;
if (mutex_lock_killable(&service->bulk_mutex))
return -EAGAIN;
if (bulk_waiter) {
bulk_waiter->bulk = bulk;
- if (wait_for_completion_interruptible(&bulk_waiter->event))
+ if (wait_for_completion_killable(&bulk_waiter->event))
status = -EAGAIN;
else if (bulk_waiter->actual == VCHIQ_BULK_ACTUAL_ABORTED)
status = -EINVAL;
}
int
-vchiq_bulk_xfer_blocking_interruptible(struct vchiq_instance *instance, unsigned int handle,
- void *offset, void __user *uoffset, int size,
- void __user *userdata, enum vchiq_bulk_dir dir)
+vchiq_bulk_xfer_blocking(struct vchiq_instance *instance, unsigned int handle,
+ void *offset, void __user *uoffset, int size,
+ void __user *userdata, enum vchiq_bulk_dir dir)
{
struct vchiq_service *service = find_service_by_handle(instance, handle);
enum vchiq_bulk_mode mode = VCHIQ_BULK_MODE_BLOCKING;
goto error_exit;
- status = vchiq_bulk_xfer_queue_msg_interruptible(service, offset, uoffset, size,
- userdata, mode, dir);
+ status = vchiq_bulk_xfer_queue_msg_killable(service, offset, uoffset, size,
+ userdata, mode, dir);
error_exit:
vchiq_service_put(service);
}
int
-vchiq_bulk_xfer_callback_interruptible(struct vchiq_instance *instance, unsigned int handle,
- void *offset, void __user *uoffset, int size,
- enum vchiq_bulk_mode mode, void *userdata,
- enum vchiq_bulk_dir dir)
+vchiq_bulk_xfer_callback(struct vchiq_instance *instance, unsigned int handle,
+ void *offset, void __user *uoffset, int size,
+ enum vchiq_bulk_mode mode, void *userdata,
+ enum vchiq_bulk_dir dir)
{
struct vchiq_service *service = find_service_by_handle(instance, handle);
int status = -EINVAL;
if (vchiq_check_service(service))
goto error_exit;
- status = vchiq_bulk_xfer_queue_msg_interruptible(service, offset, uoffset,
- size, userdata, mode, dir);
+ status = vchiq_bulk_xfer_queue_msg_killable(service, offset, uoffset,
+ size, userdata, mode, dir);
error_exit:
vchiq_service_put(service);
* and the call should be retried after being returned to user context.
*/
int
-vchiq_bulk_xfer_waiting_interruptible(struct vchiq_instance *instance,
- unsigned int handle, struct bulk_waiter *userdata)
+vchiq_bulk_xfer_waiting(struct vchiq_instance *instance,
+ unsigned int handle, struct bulk_waiter *userdata)
{
struct vchiq_service *service = find_service_by_handle(instance, handle);
struct bulk_waiter *bulk_waiter;
status = 0;
- if (wait_for_completion_interruptible(&bulk_waiter->event))
+ if (wait_for_completion_killable(&bulk_waiter->event))
return -EAGAIN;
else if (bulk_waiter->actual == VCHIQ_BULK_ACTUAL_ABORTED)
return -EINVAL;
remote_event_pollall(struct vchiq_state *state);
extern int
-vchiq_bulk_xfer_waiting_interruptible(struct vchiq_instance *instance,
- unsigned int handle, struct bulk_waiter *userdata);
+vchiq_bulk_xfer_waiting(struct vchiq_instance *instance, unsigned int handle,
+ struct bulk_waiter *userdata);
extern int
-vchiq_bulk_xfer_blocking_interruptible(struct vchiq_instance *instance, unsigned int handle,
- void *offset, void __user *uoffset, int size,
- void __user *userdata, enum vchiq_bulk_dir dir);
+vchiq_bulk_xfer_blocking(struct vchiq_instance *instance, unsigned int handle,
+ void *offset, void __user *uoffset, int size,
+ void __user *userdata, enum vchiq_bulk_dir dir);
extern int
-vchiq_bulk_xfer_callback_interruptible(struct vchiq_instance *instance, unsigned int handle,
- void *offset, void __user *uoffset, int size,
- enum vchiq_bulk_mode mode, void *userdata,
- enum vchiq_bulk_dir dir);
+vchiq_bulk_xfer_callback(struct vchiq_instance *instance, unsigned int handle,
+ void *offset, void __user *uoffset, int size,
+ enum vchiq_bulk_mode mode, void *userdata,
+ enum vchiq_bulk_dir dir);
extern void
vchiq_dump_state(struct seq_file *f, struct vchiq_state *state);
userdata = &waiter->bulk_waiter;
- status = vchiq_bulk_xfer_blocking_interruptible(instance, args->handle,
- NULL, args->data, args->size,
- userdata, dir);
+ status = vchiq_bulk_xfer_blocking(instance, args->handle,
+ NULL, args->data, args->size,
+ userdata, dir);
} else if (args->mode == VCHIQ_BULK_MODE_WAITING) {
mutex_lock(&instance->bulk_waiter_list_mutex);
waiter, current->pid);
userdata = &waiter->bulk_waiter;
- status = vchiq_bulk_xfer_waiting_interruptible(instance, args->handle, userdata);
+ status = vchiq_bulk_xfer_waiting(instance, args->handle, userdata);
} else {
userdata = args->userdata;
- status = vchiq_bulk_xfer_callback_interruptible(instance, args->handle, NULL,
- args->data, args->size,
- args->mode, userdata, dir);
+ status = vchiq_bulk_xfer_callback(instance, args->handle, NULL,
+ args->data, args->size,
+ args->mode, userdata, dir);
}