Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 27617
b: refs/heads/master
c: 4be10c1
h: refs/heads/master
i:
  27615: 575de8d
v: v3
  • Loading branch information
Sean Hefty authored and Roland Dreier committed Jun 18, 2006
1 parent 1af67bc commit c2adeef
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 17 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 6bfa24fa3e189269e113197a80e12862c211b3d3
refs/heads/master: 4be10c1e6dcafec993ac4f9abfa5fdcd83728302
32 changes: 16 additions & 16 deletions trunk/drivers/infiniband/core/ucm.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ struct ib_ucm_device {
};

struct ib_ucm_file {
struct semaphore mutex;
struct mutex file_mutex;
struct file *filp;
struct ib_ucm_device *device;

Expand Down Expand Up @@ -153,7 +153,7 @@ static void ib_ucm_cleanup_events(struct ib_ucm_context *ctx)
{
struct ib_ucm_event *uevent;

down(&ctx->file->mutex);
mutex_lock(&ctx->file->file_mutex);
list_del(&ctx->file_list);
while (!list_empty(&ctx->events)) {

Expand All @@ -168,7 +168,7 @@ static void ib_ucm_cleanup_events(struct ib_ucm_context *ctx)

kfree(uevent);
}
up(&ctx->file->mutex);
mutex_unlock(&ctx->file->file_mutex);
}

static struct ib_ucm_context *ib_ucm_ctx_alloc(struct ib_ucm_file *file)
Expand Down Expand Up @@ -375,11 +375,11 @@ static int ib_ucm_event_handler(struct ib_cm_id *cm_id,
if (result)
goto err2;

down(&ctx->file->mutex);
mutex_lock(&ctx->file->file_mutex);
list_add_tail(&uevent->file_list, &ctx->file->events);
list_add_tail(&uevent->ctx_list, &ctx->events);
wake_up_interruptible(&ctx->file->poll_wait);
up(&ctx->file->mutex);
mutex_unlock(&ctx->file->file_mutex);
return 0;

err2:
Expand All @@ -405,7 +405,7 @@ static ssize_t ib_ucm_event(struct ib_ucm_file *file,
if (copy_from_user(&cmd, inbuf, sizeof(cmd)))
return -EFAULT;

down(&file->mutex);
mutex_lock(&file->file_mutex);
while (list_empty(&file->events)) {

if (file->filp->f_flags & O_NONBLOCK) {
Expand All @@ -420,9 +420,9 @@ static ssize_t ib_ucm_event(struct ib_ucm_file *file,

prepare_to_wait(&file->poll_wait, &wait, TASK_INTERRUPTIBLE);

up(&file->mutex);
mutex_unlock(&file->file_mutex);
schedule();
down(&file->mutex);
mutex_lock(&file->file_mutex);

finish_wait(&file->poll_wait, &wait);
}
Expand Down Expand Up @@ -482,7 +482,7 @@ static ssize_t ib_ucm_event(struct ib_ucm_file *file,
kfree(uevent->info);
kfree(uevent);
done:
up(&file->mutex);
mutex_unlock(&file->file_mutex);
return result;
}

Expand All @@ -501,9 +501,9 @@ static ssize_t ib_ucm_create_id(struct ib_ucm_file *file,
if (copy_from_user(&cmd, inbuf, sizeof(cmd)))
return -EFAULT;

down(&file->mutex);
mutex_lock(&file->file_mutex);
ctx = ib_ucm_ctx_alloc(file);
up(&file->mutex);
mutex_unlock(&file->file_mutex);
if (!ctx)
return -ENOMEM;

Expand Down Expand Up @@ -1177,7 +1177,7 @@ static int ib_ucm_open(struct inode *inode, struct file *filp)
INIT_LIST_HEAD(&file->ctxs);
init_waitqueue_head(&file->poll_wait);

init_MUTEX(&file->mutex);
mutex_init(&file->file_mutex);

filp->private_data = file;
file->filp = filp;
Expand All @@ -1191,11 +1191,11 @@ static int ib_ucm_close(struct inode *inode, struct file *filp)
struct ib_ucm_file *file = filp->private_data;
struct ib_ucm_context *ctx;

down(&file->mutex);
mutex_lock(&file->file_mutex);
while (!list_empty(&file->ctxs)) {
ctx = list_entry(file->ctxs.next,
struct ib_ucm_context, file_list);
up(&file->mutex);
mutex_unlock(&file->file_mutex);

mutex_lock(&ctx_id_mutex);
idr_remove(&ctx_id_table, ctx->id);
Expand All @@ -1205,9 +1205,9 @@ static int ib_ucm_close(struct inode *inode, struct file *filp)
ib_ucm_cleanup_events(ctx);
kfree(ctx);

down(&file->mutex);
mutex_lock(&file->file_mutex);
}
up(&file->mutex);
mutex_unlock(&file->file_mutex);
kfree(file);
return 0;
}
Expand Down

0 comments on commit c2adeef

Please sign in to comment.