Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 158305
b: refs/heads/master
c: dc86cab
h: refs/heads/master
i:
  158303: 0809c0f
v: v3
  • Loading branch information
Ingo Molnar committed Sep 3, 2009
1 parent 09f3b2b commit 5ccb3bb
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 21 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: 6f4596d9312ba5fbf5f3231ef484823c4e684d2e
refs/heads/master: dc86cabe4b242446ea9aa8492c727e1220817898
40 changes: 20 additions & 20 deletions trunk/kernel/perf_counter.c
Original file line number Diff line number Diff line change
Expand Up @@ -4316,15 +4316,15 @@ SYSCALL_DEFINE5(perf_counter_open,
struct file *group_file = NULL;
int fput_needed = 0;
int fput_needed2 = 0;
int ret;
int err;

/* for future expandability... */
if (flags & ~(PERF_FLAG_FD_NO_GROUP | PERF_FLAG_FD_OUTPUT))
return -EINVAL;

ret = perf_copy_attr(attr_uptr, &attr);
if (ret)
return ret;
err = perf_copy_attr(attr_uptr, &attr);
if (err)
return err;

if (!attr.exclude_kernel) {
if (perf_paranoid_kernel() && !capable(CAP_SYS_ADMIN))
Expand All @@ -4348,7 +4348,7 @@ SYSCALL_DEFINE5(perf_counter_open,
*/
group_leader = NULL;
if (group_fd != -1 && !(flags & PERF_FLAG_FD_NO_GROUP)) {
ret = -EINVAL;
err = -EINVAL;
group_file = fget_light(group_fd, &fput_needed);
if (!group_file)
goto err_put_context;
Expand Down Expand Up @@ -4377,22 +4377,22 @@ SYSCALL_DEFINE5(perf_counter_open,

counter = perf_counter_alloc(&attr, cpu, ctx, group_leader,
NULL, GFP_KERNEL);
ret = PTR_ERR(counter);
err = PTR_ERR(counter);
if (IS_ERR(counter))
goto err_put_context;

ret = anon_inode_getfd("[perf_counter]", &perf_fops, counter, 0);
if (ret < 0)
err = anon_inode_getfd("[perf_counter]", &perf_fops, counter, 0);
if (err < 0)
goto err_free_put_context;

counter_file = fget_light(ret, &fput_needed2);
counter_file = fget_light(err, &fput_needed2);
if (!counter_file)
goto err_free_put_context;

if (flags & PERF_FLAG_FD_OUTPUT) {
ret = perf_counter_set_output(counter, group_fd);
if (ret)
goto err_free_put_context;
err = perf_counter_set_output(counter, group_fd);
if (err)
goto err_fput_free_put_context;
}

counter->filp = counter_file;
Expand All @@ -4408,20 +4408,20 @@ SYSCALL_DEFINE5(perf_counter_open,
list_add_tail(&counter->owner_entry, &current->perf_counter_list);
mutex_unlock(&current->perf_counter_mutex);

err_fput_free_put_context:
fput_light(counter_file, fput_needed2);

out_fput:
fput_light(group_file, fput_needed);

return ret;

err_free_put_context:
kfree(counter);
if (err < 0)
kfree(counter);

err_put_context:
put_ctx(ctx);
if (err < 0)
put_ctx(ctx);

fput_light(group_file, fput_needed);

goto out_fput;
return err;
}

/*
Expand Down

0 comments on commit 5ccb3bb

Please sign in to comment.