[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1369990056-10310-11-git-send-email-rric@kernel.org>
Date: Fri, 31 May 2013 10:47:30 +0200
From: Robert Richter <rric@...nel.org>
To: Borislav Petkov <bp@...en8.de>
Cc: Ingo Molnar <mingo@...nel.org>,
Peter Zijlstra <peterz@...radead.org>,
Arnaldo Carvalho de Melo <acme@...stprotocols.net>,
linux-kernel@...r.kernel.org,
Robert Richter <robert.richter@...xeda.com>
Subject: [PATCH 10/16] perf, persistent: Reworking perf_get_persistent_event_fd()
From: Robert Richter <robert.richter@...xeda.com>
There is already a function anon_inode_getfd() that does already all
the work. Reworking and simplifying code.
Signed-off-by: Robert Richter <robert.richter@...xeda.com>
---
kernel/events/persistent.c | 35 +++++++----------------------------
1 file changed, 7 insertions(+), 28 deletions(-)
diff --git a/kernel/events/persistent.c b/kernel/events/persistent.c
index 7d1aff3..4ecbdab 100644
--- a/kernel/events/persistent.c
+++ b/kernel/events/persistent.c
@@ -87,33 +87,6 @@ static void del_persistent_event(int cpu, struct perf_event_attr *attr)
kfree(desc);
}
-static int __alloc_persistent_event_fd(struct pers_event_desc *desc)
-{
- struct file *event_file = NULL;
- int event_fd = -1;
-
- event_fd = get_unused_fd();
- if (event_fd < 0)
- goto out;
-
- event_file = anon_inode_getfile("[pers_event]", &perf_fops,
- desc->event, O_RDONLY);
- if (IS_ERR(event_file))
- goto err_event_file;
-
- desc->fd = event_fd;
- fd_install(event_fd, event_file);
-
- goto out;
-
-
- err_event_file:
- put_unused_fd(event_fd);
-
- out:
- return event_fd;
-}
-
/*
* Create and enable the persistent version of the perf event described by
* @attr.
@@ -165,11 +138,17 @@ int perf_add_persistent_event_by_id(int id)
int perf_get_persistent_event_fd(unsigned cpu, struct perf_event_attr *attr)
{
struct pers_event_desc *desc = get_persistent_event(cpu, attr);
+ int event_fd;
if (!desc)
return -ENODEV;
- return __alloc_persistent_event_fd(desc);
+ event_fd = anon_inode_getfd("[pers_event]", &perf_fops,
+ desc->event, O_RDONLY);
+ if (event_fd >= 0)
+ desc->fd = event_fd;
+
+ return event_fd;
}
--
1.8.1.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists