diff options
| -rw-r--r-- | arch/ia64/kernel/perfmon.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c index c7ccd6ee1ddf..84a7e52f56f6 100644 --- a/arch/ia64/kernel/perfmon.c +++ b/arch/ia64/kernel/perfmon.c | |||
| @@ -4936,13 +4936,15 @@ abort_locked: | |||
| 4936 | if (likely(ctx)) { | 4936 | if (likely(ctx)) { |
| 4937 | DPRINT(("context unlocked\n")); | 4937 | DPRINT(("context unlocked\n")); |
| 4938 | UNPROTECT_CTX(ctx, flags); | 4938 | UNPROTECT_CTX(ctx, flags); |
| 4939 | fput(file); | ||
| 4940 | } | 4939 | } |
| 4941 | 4940 | ||
| 4942 | /* copy argument back to user, if needed */ | 4941 | /* copy argument back to user, if needed */ |
| 4943 | if (call_made && PFM_CMD_RW_ARG(cmd) && copy_to_user(arg, args_k, base_sz*count)) ret = -EFAULT; | 4942 | if (call_made && PFM_CMD_RW_ARG(cmd) && copy_to_user(arg, args_k, base_sz*count)) ret = -EFAULT; |
| 4944 | 4943 | ||
| 4945 | error_args: | 4944 | error_args: |
| 4945 | if (file) | ||
| 4946 | fput(file); | ||
| 4947 | |||
| 4946 | kfree(args_k); | 4948 | kfree(args_k); |
| 4947 | 4949 | ||
| 4948 | DPRINT(("cmd=%s ret=%ld\n", PFM_CMD_NAME(cmd), ret)); | 4950 | DPRINT(("cmd=%s ret=%ld\n", PFM_CMD_NAME(cmd), ret)); |
