hc
2023-12-06 08f87f769b595151be1afeff53e144f543faa614
kernel/tools/perf/builtin-buildid-cache.c
....@@ -14,18 +14,21 @@
1414 #include <errno.h>
1515 #include <unistd.h>
1616 #include "builtin.h"
17
-#include "perf.h"
1817 #include "namespaces.h"
19
-#include "util/cache.h"
2018 #include "util/debug.h"
2119 #include "util/header.h"
20
+#include <subcmd/pager.h>
2221 #include <subcmd/parse-options.h>
2322 #include "util/strlist.h"
2423 #include "util/build-id.h"
2524 #include "util/session.h"
25
+#include "util/dso.h"
2626 #include "util/symbol.h"
2727 #include "util/time-utils.h"
28
+#include "util/util.h"
2829 #include "util/probe-file.h"
30
+#include <linux/string.h>
31
+#include <linux/err.h>
2932
3033 static int build_id_cache__kcore_buildid(const char *proc_dir, char *sbuildid)
3134 {
....@@ -171,19 +174,19 @@
171174 static int build_id_cache__add_file(const char *filename, struct nsinfo *nsi)
172175 {
173176 char sbuild_id[SBUILD_ID_SIZE];
174
- u8 build_id[BUILD_ID_SIZE];
177
+ struct build_id bid;
175178 int err;
176179 struct nscookie nsc;
177180
178181 nsinfo__mountns_enter(nsi, &nsc);
179
- err = filename__read_build_id(filename, &build_id, sizeof(build_id));
182
+ err = filename__read_build_id(filename, &bid);
180183 nsinfo__mountns_exit(&nsc);
181184 if (err < 0) {
182185 pr_debug("Couldn't read a build-id in %s\n", filename);
183186 return -1;
184187 }
185188
186
- build_id__sprintf(build_id, sizeof(build_id), sbuild_id);
189
+ build_id__sprintf(&bid, sbuild_id);
187190 err = build_id_cache__add_s(sbuild_id, filename, nsi,
188191 false, false);
189192 pr_debug("Adding %s %s: %s\n", sbuild_id, filename,
....@@ -193,21 +196,21 @@
193196
194197 static int build_id_cache__remove_file(const char *filename, struct nsinfo *nsi)
195198 {
196
- u8 build_id[BUILD_ID_SIZE];
197199 char sbuild_id[SBUILD_ID_SIZE];
200
+ struct build_id bid;
198201 struct nscookie nsc;
199202
200203 int err;
201204
202205 nsinfo__mountns_enter(nsi, &nsc);
203
- err = filename__read_build_id(filename, &build_id, sizeof(build_id));
206
+ err = filename__read_build_id(filename, &bid);
204207 nsinfo__mountns_exit(&nsc);
205208 if (err < 0) {
206209 pr_debug("Couldn't read a build-id in %s\n", filename);
207210 return -1;
208211 }
209212
210
- build_id__sprintf(build_id, sizeof(build_id), sbuild_id);
213
+ build_id__sprintf(&bid, sbuild_id);
211214 err = build_id_cache__remove_s(sbuild_id);
212215 pr_debug("Removing %s %s: %s\n", sbuild_id, filename,
213216 err ? "FAIL" : "Ok");
....@@ -271,17 +274,16 @@
271274 static bool dso__missing_buildid_cache(struct dso *dso, int parm __maybe_unused)
272275 {
273276 char filename[PATH_MAX];
274
- u8 build_id[BUILD_ID_SIZE];
277
+ struct build_id bid;
275278
276279 if (dso__build_id_filename(dso, filename, sizeof(filename), false) &&
277
- filename__read_build_id(filename, build_id,
278
- sizeof(build_id)) != sizeof(build_id)) {
280
+ filename__read_build_id(filename, &bid) == -1) {
279281 if (errno == ENOENT)
280282 return false;
281283
282284 pr_warning("Problems with %s file, consider removing it from the cache\n",
283285 filename);
284
- } else if (memcmp(dso->build_id, build_id, sizeof(dso->build_id))) {
286
+ } else if (memcmp(dso->bid.data, bid.data, bid.size)) {
285287 pr_warning("Problems with %s file, consider removing it from the cache\n",
286288 filename);
287289 }
....@@ -297,14 +299,14 @@
297299
298300 static int build_id_cache__update_file(const char *filename, struct nsinfo *nsi)
299301 {
300
- u8 build_id[BUILD_ID_SIZE];
301302 char sbuild_id[SBUILD_ID_SIZE];
303
+ struct build_id bid;
302304 struct nscookie nsc;
303305
304306 int err;
305307
306308 nsinfo__mountns_enter(nsi, &nsc);
307
- err = filename__read_build_id(filename, &build_id, sizeof(build_id));
309
+ err = filename__read_build_id(filename, &bid);
308310 nsinfo__mountns_exit(&nsc);
309311 if (err < 0) {
310312 pr_debug("Couldn't read a build-id in %s\n", filename);
....@@ -312,7 +314,7 @@
312314 }
313315 err = 0;
314316
315
- build_id__sprintf(build_id, sizeof(build_id), sbuild_id);
317
+ build_id__sprintf(&bid, sbuild_id);
316318 if (build_id_cache__cached(sbuild_id))
317319 err = build_id_cache__remove_s(sbuild_id);
318320
....@@ -416,12 +418,12 @@
416418 nsi = nsinfo__new(ns_id);
417419
418420 if (missing_filename) {
419
- data.file.path = missing_filename;
420
- data.force = force;
421
+ data.path = missing_filename;
422
+ data.force = force;
421423
422424 session = perf_session__new(&data, false, NULL);
423
- if (session == NULL)
424
- return -1;
425
+ if (IS_ERR(session))
426
+ return PTR_ERR(session);
425427 }
426428
427429 if (symbol__init(session ? &session->header.env : NULL) < 0)