From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1AFE6FEE4F2 for ; Sat, 28 Feb 2026 17:48:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=4PFzA6x7XpGtL5gGAe9ZkCbhjFM0+Eu/npdy+Yhrt1I=; b=gc0txQb8OVjP8KZ+xVIsM2wkpm 2nxXBpBBvBt3cxYfSope3QDKxVCUf57pyoqjaD13zzeWjqrOilqsdoRlR3CKfWCFh+m3oQGyvfp7J BB3/WSqcW7iUxfYv1M6pvvSztq2QnlZAQoDOYpIxNSngPjAA7HcTFB0Hm3vOO7TCG6Ay3KGTikW2j Zo/fdhZLMzyW8SHS/lIgIiuThpHqBbwX/bxDzrLhsS42RTYGkEy2Ding4gs315GG46sSd65n3E+Eq MCoOu7z0DRbmeuen+YncAh2YmhDbHSVhuika6ElRnod+xe21++AW4wRa+BernbV805oCnoab6X0N4 272VAfPg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vwOQJ-0000000A7H4-0c68; Sat, 28 Feb 2026 17:48:15 +0000 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vwOQI-0000000A7Gu-11dV; Sat, 28 Feb 2026 17:48:14 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 5A97060054; Sat, 28 Feb 2026 17:48:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8689DC116D0; Sat, 28 Feb 2026 17:48:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772300892; bh=GPuD30vv6sqzucOUBpi9B4iP3HDC27EbjrmXMtZrSlM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Z2mgJSbqwaIzBUJt2LWHO7DtyBBo6dByNe0+cm5mtPjD5SjBJgUbmpXTc2k1VzIlI d9hm8GWkBdswB5dNllvs4U8G6OzMk5yVlvsL1ulYwew8QQZWh3npCAXZRUB/RDA0cy 7CV1tosjl3Xx2sKL8XbyeNG6Ihupamt1VWUP/EtfcktCbyMdn0jEBndwexVUAGp8jU +Slna/T8En3j6/M/AuZR6CVTbUiGyNzZ681qDQwXbjAasALDVfmfRx9YEAdoLchTmG xHIBKqER452Lx0N5zmJMizP+HaukA10kZvBZ5uq9YksmaKtJa2XpeJntxVDzel+SHi 9QWWBncCev2Zw== From: Sasha Levin To: patches@lists.linux.dev Cc: Ian Rogers , James Clark , Aditya Bodkhe , Adrian Hunter , Albert Ou , Alexander Shishkin , Alexandre Ghiti , Athira Rajeev , Bill Wendling , "Dr. David Alan Gilbert" , Guo Ren , Howard Chu , Ingo Molnar , Jiri Olsa , John Garry , Julia Lawall , Justin Stitt , =?UTF-8?q?Krzysztof=20=C5=81opatowski?= , Leo Yan , linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-riscv@lists.infradead.org, Namhyung Kim , Nathan Chancellor , Nick Desaulniers , Palmer Dabbelt , Paul Walmsley , Peter Zijlstra , Sergei Trofimovich , Shimin Guo , Suchit Karunakaran , Thomas Falcon , Tianyou Li , Will Deacon , Zecheng Li , Arnaldo Carvalho de Melo , Sasha Levin Subject: [PATCH 6.18 011/752] perf annotate: Fix args leak of map_symbol Date: Sat, 28 Feb 2026 12:35:22 -0500 Message-ID: <20260228174750.1542406-11-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260228174750.1542406-1-sashal@kernel.org> References: <20260228174750.1542406-1-sashal@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Ian Rogers [ Upstream commit 00419892bac28bf148450d762bbff990a6bd5494 ] map_symbol__exit() needs calling on an annotate_args.ms, however, rather than introduce proper reference count handling to symbol__annotate() just switch to passing the map_symbol pointer parameter around, making the puts the caller's responsibility. Fix a number of cases to ensure the map in a map_symbol has a reference count increment and add the then necessary map_symbol_exits. Fixes: 56e144fe98260a0f ("perf mem_info: Add and use map_symbol__exit and addr_map_symbol__exit") Reviewed-by: James Clark Signed-off-by: Ian Rogers Cc: Aditya Bodkhe Cc: Adrian Hunter Cc: Albert Ou Cc: Alexander Shishkin Cc: Alexandre Ghiti Cc: Athira Rajeev Cc: Bill Wendling Cc: Dr. David Alan Gilbert Cc: Guo Ren Cc: Howard Chu Cc: Ian Rogers Cc: Ingo Molnar Cc: Jiri Olsa Cc: John Garry Cc: Julia Lawall Cc: Justin Stitt Cc: Krzysztof Ɓopatowski Cc: Leo Yan Cc: linux-arm-kernel@lists.infradead.org Cc: linux-csky@vger.kernel.org Cc: linux-riscv@lists.infradead.org Cc: Namhyung Kim Cc: Nathan Chancellor Cc: Nick Desaulniers Cc: Palmer Dabbelt Cc: Paul Walmsley Cc: Peter Zijlstra Cc: Sergei Trofimovich Cc: Shimin Guo Cc: Suchit Karunakaran Cc: Thomas Falcon Cc: Tianyou Li Cc: Will Deacon Cc: Zecheng Li Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Sasha Levin --- .../arch/loongarch/annotate/instructions.c | 14 ++++---- tools/perf/arch/s390/annotate/instructions.c | 11 +++--- tools/perf/util/annotate.c | 2 +- tools/perf/util/capstone.c | 14 ++++---- tools/perf/util/disasm.c | 36 ++++++++++--------- tools/perf/util/disasm.h | 2 +- tools/perf/util/llvm.c | 6 ++-- 7 files changed, 47 insertions(+), 38 deletions(-) diff --git a/tools/perf/arch/loongarch/annotate/instructions.c b/tools/perf/arch/loongarch/annotate/instructions.c index 70262d5f14442..1c3abb43c8d72 100644 --- a/tools/perf/arch/loongarch/annotate/instructions.c +++ b/tools/perf/arch/loongarch/annotate/instructions.c @@ -10,9 +10,7 @@ static int loongarch_call__parse(struct arch *arch, struct ins_operands *ops, st { char *c, *endptr, *tok, *name; struct map *map = ms->map; - struct addr_map_symbol target = { - .ms = { .map = map, }, - }; + struct addr_map_symbol target; c = strchr(ops->raw, '#'); if (c++ == NULL) @@ -38,12 +36,16 @@ static int loongarch_call__parse(struct arch *arch, struct ins_operands *ops, st if (ops->target.name == NULL) return -1; - target.addr = map__objdump_2mem(map, ops->target.addr); + target = (struct addr_map_symbol) { + .ms = { .map = map__get(map), }, + .addr = map__objdump_2mem(map, ops->target.addr), + }; if (maps__find_ams(ms->maps, &target) == 0 && map__rip_2objdump(target.ms.map, map__map_ip(target.ms.map, target.addr)) == ops->target.addr) ops->target.sym = target.ms.sym; + addr_map_symbol__exit(&target); return 0; } @@ -58,7 +60,7 @@ static int loongarch_jump__parse(struct arch *arch, struct ins_operands *ops, st struct map *map = ms->map; struct symbol *sym = ms->sym; struct addr_map_symbol target = { - .ms = { .map = map, }, + .ms = { .map = map__get(map), }, }; const char *c = strchr(ops->raw, '#'); u64 start, end; @@ -90,7 +92,7 @@ static int loongarch_jump__parse(struct arch *arch, struct ins_operands *ops, st } else { ops->target.offset_avail = false; } - + addr_map_symbol__exit(&target); return 0; } diff --git a/tools/perf/arch/s390/annotate/instructions.c b/tools/perf/arch/s390/annotate/instructions.c index c61193f1e0964..626e6d2cbc81a 100644 --- a/tools/perf/arch/s390/annotate/instructions.c +++ b/tools/perf/arch/s390/annotate/instructions.c @@ -6,9 +6,7 @@ static int s390_call__parse(struct arch *arch, struct ins_operands *ops, { char *endptr, *tok, *name; struct map *map = ms->map; - struct addr_map_symbol target = { - .ms = { .map = map, }, - }; + struct addr_map_symbol target; tok = strchr(ops->raw, ','); if (!tok) @@ -36,12 +34,17 @@ static int s390_call__parse(struct arch *arch, struct ins_operands *ops, if (ops->target.name == NULL) return -1; - target.addr = map__objdump_2mem(map, ops->target.addr); + + target = (struct addr_map_symbol) { + .ms = { .map = map__get(map), }, + .addr = map__objdump_2mem(map, ops->target.addr), + }; if (maps__find_ams(ms->maps, &target) == 0 && map__rip_2objdump(target.ms.map, map__map_ip(target.ms.map, target.addr)) == ops->target.addr) ops->target.sym = target.ms.sym; + addr_map_symbol__exit(&target); return 0; } diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c index 1d6900033b3a0..dc80d922f450d 100644 --- a/tools/perf/util/annotate.c +++ b/tools/perf/util/annotate.c @@ -1031,7 +1031,7 @@ int symbol__annotate(struct map_symbol *ms, struct evsel *evsel, return 0; args.arch = arch; - args.ms = *ms; + args.ms = ms; if (notes->src == NULL) { notes->src = annotated_source__new(); diff --git a/tools/perf/util/capstone.c b/tools/perf/util/capstone.c index be5fd44b1f9dc..2c7feab61b7bf 100644 --- a/tools/perf/util/capstone.c +++ b/tools/perf/util/capstone.c @@ -143,7 +143,7 @@ static void print_capstone_detail(cs_insn *insn, char *buf, size_t len, struct annotate_args *args, u64 addr) { int i; - struct map *map = args->ms.map; + struct map *map = args->ms->map; struct symbol *sym; /* TODO: support more architectures */ @@ -222,7 +222,7 @@ int symbol__disassemble_capstone(const char *filename __maybe_unused, { #ifdef HAVE_LIBCAPSTONE_SUPPORT struct annotation *notes = symbol__annotation(sym); - struct map *map = args->ms.map; + struct map *map = args->ms->map; struct dso *dso = map__dso(map); u64 start = map__rip_2objdump(map, sym->start); u64 offset; @@ -256,7 +256,7 @@ int symbol__disassemble_capstone(const char *filename __maybe_unused, args->line = disasm_buf; args->line_nr = 0; args->fileloc = NULL; - args->ms.sym = sym; + args->ms->sym = sym; dl = disasm_line__new(args); if (dl == NULL) @@ -268,7 +268,7 @@ int symbol__disassemble_capstone(const char *filename __maybe_unused, !strcmp(args->options->disassembler_style, "att")) disassembler_style = true; - if (capstone_init(maps__machine(args->ms.maps), &handle, is_64bit, disassembler_style) < 0) + if (capstone_init(maps__machine(args->ms->maps), &handle, is_64bit, disassembler_style) < 0) goto err; needs_cs_close = true; @@ -345,7 +345,7 @@ int symbol__disassemble_capstone_powerpc(const char *filename __maybe_unused, { #ifdef HAVE_LIBCAPSTONE_SUPPORT struct annotation *notes = symbol__annotation(sym); - struct map *map = args->ms.map; + struct map *map = args->ms->map; struct dso *dso = map__dso(map); struct nscookie nsc; u64 start = map__rip_2objdump(map, sym->start); @@ -382,7 +382,7 @@ int symbol__disassemble_capstone_powerpc(const char *filename __maybe_unused, !strcmp(args->options->disassembler_style, "att")) disassembler_style = true; - if (capstone_init(maps__machine(args->ms.maps), &handle, is_64bit, disassembler_style) < 0) + if (capstone_init(maps__machine(args->ms->maps), &handle, is_64bit, disassembler_style) < 0) goto err; needs_cs_close = true; @@ -408,7 +408,7 @@ int symbol__disassemble_capstone_powerpc(const char *filename __maybe_unused, args->line = disasm_buf; args->line_nr = 0; args->fileloc = NULL; - args->ms.sym = sym; + args->ms->sym = sym; dl = disasm_line__new(args); if (dl == NULL) diff --git a/tools/perf/util/disasm.c b/tools/perf/util/disasm.c index 50b9433f3f8e6..924429142631a 100644 --- a/tools/perf/util/disasm.c +++ b/tools/perf/util/disasm.c @@ -269,9 +269,7 @@ static int call__parse(struct arch *arch, struct ins_operands *ops, struct map_s { char *endptr, *tok, *name; struct map *map = ms->map; - struct addr_map_symbol target = { - .ms = { .map = map, }, - }; + struct addr_map_symbol target; ops->target.addr = strtoull(ops->raw, &endptr, 16); @@ -296,12 +294,16 @@ static int call__parse(struct arch *arch, struct ins_operands *ops, struct map_s if (ops->target.name == NULL) return -1; find_target: - target.addr = map__objdump_2mem(map, ops->target.addr); + target = (struct addr_map_symbol) { + .ms = { .map = map__get(map), }, + .addr = map__objdump_2mem(map, ops->target.addr), + }; if (maps__find_ams(ms->maps, &target) == 0 && map__rip_2objdump(target.ms.map, map__map_ip(target.ms.map, target.addr)) == ops->target.addr) ops->target.sym = target.ms.sym; + addr_map_symbol__exit(&target); return 0; indirect_call: @@ -366,7 +368,7 @@ static int jump__parse(struct arch *arch, struct ins_operands *ops, struct map_s struct map *map = ms->map; struct symbol *sym = ms->sym; struct addr_map_symbol target = { - .ms = { .map = map, }, + .ms = { .map = map__get(map), }, }; const char *c = strchr(ops->raw, ','); u64 start, end; @@ -440,7 +442,7 @@ static int jump__parse(struct arch *arch, struct ins_operands *ops, struct map_s } else { ops->target.offset_avail = false; } - + addr_map_symbol__exit(&target); return 0; } @@ -1046,7 +1048,7 @@ static size_t disasm_line_size(int nr) struct disasm_line *disasm_line__new(struct annotate_args *args) { struct disasm_line *dl = NULL; - struct annotation *notes = symbol__annotation(args->ms.sym); + struct annotation *notes = symbol__annotation(args->ms->sym); int nr = notes->src->nr_events; dl = zalloc(disasm_line_size(nr)); @@ -1064,7 +1066,7 @@ struct disasm_line *disasm_line__new(struct annotate_args *args) } else if (disasm_line__parse(dl->al.line, &dl->ins.name, &dl->ops.raw) < 0) goto out_free_line; - disasm_line__init_ins(dl, args->arch, &args->ms); + disasm_line__init_ins(dl, args->arch, args->ms); } return dl; @@ -1119,7 +1121,7 @@ static int symbol__parse_objdump_line(struct symbol *sym, struct annotate_args *args, char *parsed_line, int *line_nr, char **fileloc) { - struct map *map = args->ms.map; + struct map *map = args->ms->map; struct annotation *notes = symbol__annotation(sym); struct disasm_line *dl; char *tmp; @@ -1151,7 +1153,7 @@ static int symbol__parse_objdump_line(struct symbol *sym, args->line = parsed_line; args->line_nr = *line_nr; args->fileloc = *fileloc; - args->ms.sym = sym; + args->ms->sym = sym; dl = disasm_line__new(args); (*line_nr)++; @@ -1169,12 +1171,14 @@ static int symbol__parse_objdump_line(struct symbol *sym, if (dl->ins.ops && ins__is_call(&dl->ins) && !dl->ops.target.sym) { struct addr_map_symbol target = { .addr = dl->ops.target.addr, - .ms = { .map = map, }, + .ms = { .map = map__get(map), }, }; - if (!maps__find_ams(args->ms.maps, &target) && + if (!maps__find_ams(args->ms->maps, &target) && target.ms.sym->start == target.al_addr) dl->ops.target.sym = target.ms.sym; + + addr_map_symbol__exit(&target); } annotation_line__add(&dl->al, ¬es->src->source); @@ -1338,7 +1342,7 @@ static int symbol__disassemble_raw(char *filename, struct symbol *sym, struct annotate_args *args) { struct annotation *notes = symbol__annotation(sym); - struct map *map = args->ms.map; + struct map *map = args->ms->map; struct dso *dso = map__dso(map); u64 start = map__rip_2objdump(map, sym->start); u64 end = map__rip_2objdump(map, sym->end); @@ -1375,7 +1379,7 @@ static int symbol__disassemble_raw(char *filename, struct symbol *sym, args->line = disasm_buf; args->line_nr = 0; args->fileloc = NULL; - args->ms.sym = sym; + args->ms->sym = sym; dl = disasm_line__new(args); if (dl == NULL) @@ -1501,7 +1505,7 @@ static int symbol__disassemble_objdump(const char *filename, struct symbol *sym, struct annotate_args *args) { struct annotation_options *opts = &annotate_opts; - struct map *map = args->ms.map; + struct map *map = args->ms->map; struct dso *dso = map__dso(map); char *command; FILE *file; @@ -1644,7 +1648,7 @@ static int symbol__disassemble_objdump(const char *filename, struct symbol *sym, int symbol__disassemble(struct symbol *sym, struct annotate_args *args) { struct annotation_options *options = args->options; - struct map *map = args->ms.map; + struct map *map = args->ms->map; struct dso *dso = map__dso(map); char symfs_filename[PATH_MAX]; bool delete_extract = false; diff --git a/tools/perf/util/disasm.h b/tools/perf/util/disasm.h index d2cb555e4a3be..a3ea9d6762816 100644 --- a/tools/perf/util/disasm.h +++ b/tools/perf/util/disasm.h @@ -97,7 +97,7 @@ struct ins_ops { struct annotate_args { struct arch *arch; - struct map_symbol ms; + struct map_symbol *ms; struct annotation_options *options; s64 offset; char *line; diff --git a/tools/perf/util/llvm.c b/tools/perf/util/llvm.c index 2ebf1f5f65bf7..4ada9a10bd93f 100644 --- a/tools/perf/util/llvm.c +++ b/tools/perf/util/llvm.c @@ -118,7 +118,7 @@ int symbol__disassemble_llvm(const char *filename, struct symbol *sym, { #ifdef HAVE_LIBLLVM_SUPPORT struct annotation *notes = symbol__annotation(sym); - struct map *map = args->ms.map; + struct map *map = args->ms->map; struct dso *dso = map__dso(map); u64 start = map__rip_2objdump(map, sym->start); /* Malloc-ed buffer containing instructions read from disk. */ @@ -184,7 +184,7 @@ int symbol__disassemble_llvm(const char *filename, struct symbol *sym, args->line = disasm_buf; args->line_nr = 0; args->fileloc = NULL; - args->ms.sym = sym; + args->ms->sym = sym; dl = disasm_line__new(args); if (dl == NULL) @@ -242,7 +242,7 @@ int symbol__disassemble_llvm(const char *filename, struct symbol *sym, &line_storage_len); args->line_nr = 0; args->fileloc = NULL; - args->ms.sym = sym; + args->ms->sym = sym; llvm_addr2line(filename, pc, &args->fileloc, (unsigned int *)&args->line_nr, false, NULL); -- 2.51.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5AD77FEE4EE for ; Sat, 28 Feb 2026 17:48:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=jNddoDb4p2bipkCxz6mfz/NFFqrkHvxW9S+VzbfkXR4=; b=P5RsfVqCpx1EdA 6lvcn/AHyqz5AuNcXCOdCg070L/Y4KfblLG9oVF/gvYTGKxUEZrv0Id8zccy8aEkSjAWZCxKsD5rJ dMffJAGZw/fXIwEKUSVd1QMATGjonTLjuiW7caetXRYm02CQITLFSShKsUK8W2xFgNwFU3LNNfeV2 uTMqNyWS6jliCQ/SFdjBjnB9ykHVSGCpskK5MqTiShCWah88jd6EYIaaurGRJuteLL5Nwtb5/4+5d u2kPMTaOOUJ7PG9f8VS4FT3N8rh2aH/+/3ILKnwit2Sc+2luoUNdh+NQu15H/WKhcBuAR6Sn3IQQd kN7ABBxgaBCvxSpQFvVA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vwOQJ-0000000A7H8-1tT5; Sat, 28 Feb 2026 17:48:15 +0000 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vwOQI-0000000A7Gu-11dV; Sat, 28 Feb 2026 17:48:14 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 5A97060054; Sat, 28 Feb 2026 17:48:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8689DC116D0; Sat, 28 Feb 2026 17:48:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772300892; bh=GPuD30vv6sqzucOUBpi9B4iP3HDC27EbjrmXMtZrSlM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Z2mgJSbqwaIzBUJt2LWHO7DtyBBo6dByNe0+cm5mtPjD5SjBJgUbmpXTc2k1VzIlI d9hm8GWkBdswB5dNllvs4U8G6OzMk5yVlvsL1ulYwew8QQZWh3npCAXZRUB/RDA0cy 7CV1tosjl3Xx2sKL8XbyeNG6Ihupamt1VWUP/EtfcktCbyMdn0jEBndwexVUAGp8jU +Slna/T8En3j6/M/AuZR6CVTbUiGyNzZ681qDQwXbjAasALDVfmfRx9YEAdoLchTmG xHIBKqER452Lx0N5zmJMizP+HaukA10kZvBZ5uq9YksmaKtJa2XpeJntxVDzel+SHi 9QWWBncCev2Zw== From: Sasha Levin To: patches@lists.linux.dev Cc: Ian Rogers , James Clark , Aditya Bodkhe , Adrian Hunter , Albert Ou , Alexander Shishkin , Alexandre Ghiti , Athira Rajeev , Bill Wendling , "Dr. David Alan Gilbert" , Guo Ren , Howard Chu , Ingo Molnar , Jiri Olsa , John Garry , Julia Lawall , Justin Stitt , =?UTF-8?q?Krzysztof=20=C5=81opatowski?= , Leo Yan , linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-riscv@lists.infradead.org, Namhyung Kim , Nathan Chancellor , Nick Desaulniers , Palmer Dabbelt , Paul Walmsley , Peter Zijlstra , Sergei Trofimovich , Shimin Guo , Suchit Karunakaran , Thomas Falcon , Tianyou Li , Will Deacon , Zecheng Li , Arnaldo Carvalho de Melo , Sasha Levin Subject: [PATCH 6.18 011/752] perf annotate: Fix args leak of map_symbol Date: Sat, 28 Feb 2026 12:35:22 -0500 Message-ID: <20260228174750.1542406-11-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260228174750.1542406-1-sashal@kernel.org> References: <20260228174750.1542406-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org RnJvbTogSWFuIFJvZ2VycyA8aXJvZ2Vyc0Bnb29nbGUuY29tPgoKWyBVcHN0cmVhbSBjb21taXQg MDA0MTk4OTJiYWMyOGJmMTQ4NDUwZDc2MmJiZmY5OTBhNmJkNTQ5NCBdCgptYXBfc3ltYm9sX19l eGl0KCkgbmVlZHMgY2FsbGluZyBvbiBhbiBhbm5vdGF0ZV9hcmdzLm1zLCBob3dldmVyLCByYXRo ZXIKdGhhbiBpbnRyb2R1Y2UgcHJvcGVyIHJlZmVyZW5jZSBjb3VudCBoYW5kbGluZyB0byBzeW1i b2xfX2Fubm90YXRlKCkKanVzdCBzd2l0Y2ggdG8gcGFzc2luZyB0aGUgbWFwX3N5bWJvbCBwb2lu dGVyIHBhcmFtZXRlciBhcm91bmQsIG1ha2luZwp0aGUgcHV0cyB0aGUgY2FsbGVyJ3MgcmVzcG9u c2liaWxpdHkuCgpGaXggYSBudW1iZXIgb2YgY2FzZXMgdG8gZW5zdXJlIHRoZSBtYXAgaW4gYSBt YXBfc3ltYm9sIGhhcyBhCnJlZmVyZW5jZSBjb3VudCBpbmNyZW1lbnQgYW5kIGFkZCB0aGUgdGhl biBuZWNlc3NhcnkgbWFwX3N5bWJvbF9leGl0cy4KCkZpeGVzOiA1NmUxNDRmZTk4MjYwYTBmICgi cGVyZiBtZW1faW5mbzogQWRkIGFuZCB1c2UgbWFwX3N5bWJvbF9fZXhpdCBhbmQgYWRkcl9tYXBf c3ltYm9sX19leGl0IikKUmV2aWV3ZWQtYnk6IEphbWVzIENsYXJrIDxqYW1lcy5jbGFya0BsaW5h cm8ub3JnPgpTaWduZWQtb2ZmLWJ5OiBJYW4gUm9nZXJzIDxpcm9nZXJzQGdvb2dsZS5jb20+CkNj OiBBZGl0eWEgQm9ka2hlIDxhZGl0eWEuYjFAbGludXguaWJtLmNvbT4KQ2M6IEFkcmlhbiBIdW50 ZXIgPGFkcmlhbi5odW50ZXJAaW50ZWwuY29tPgpDYzogQWxiZXJ0IE91IDxhb3VAZWVjcy5iZXJr ZWxleS5lZHU+CkNjOiBBbGV4YW5kZXIgU2hpc2hraW4gPGFsZXhhbmRlci5zaGlzaGtpbkBsaW51 eC5pbnRlbC5jb20+CkNjOiBBbGV4YW5kcmUgR2hpdGkgPGFsZXhAZ2hpdGkuZnI+CkNjOiBBdGhp cmEgUmFqZWV2IDxhdHJhamVldkBsaW51eC5pYm0uY29tPgpDYzogQmlsbCBXZW5kbGluZyA8bW9y Ym9AZ29vZ2xlLmNvbT4KQ2M6IERyLiBEYXZpZCBBbGFuIEdpbGJlcnQgPGxpbnV4QHRyZWJsaWcu b3JnPgpDYzogR3VvIFJlbiA8Z3VvcmVuQGtlcm5lbC5vcmc+CkNjOiBIb3dhcmQgQ2h1IDxob3dh cmRjaHU5NUBnbWFpbC5jb20+CkNjOiBJYW4gUm9nZXJzIDxpcm9nZXJzQGdvb2dsZS5jb20+CkNj OiBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4KQ2M6IEppcmkgT2xzYSA8am9sc2FAa2Vy bmVsLm9yZz4KQ2M6IEpvaG4gR2FycnkgPGpvaG4uZy5nYXJyeUBvcmFjbGUuY29tPgpDYzogSnVs aWEgTGF3YWxsIDxKdWxpYS5MYXdhbGxAaW5yaWEuZnI+CkNjOiBKdXN0aW4gU3RpdHQgPGp1c3Rp bnN0aXR0QGdvb2dsZS5jb20+CkNjOiBLcnp5c3p0b2YgxYFvcGF0b3dza2kgPGtyenlzenRvZi5t LmxvcGF0b3dza2lAZ21haWwuY29tPgpDYzogTGVvIFlhbiA8bGVvLnlhbkBsaW51eC5kZXY+CkNj OiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKQ2M6IGxpbnV4LWNza3lAdmdl ci5rZXJuZWwub3JnCkNjOiBsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCkNjOiBOYW1o eXVuZyBLaW0gPG5hbWh5dW5nQGtlcm5lbC5vcmc+CkNjOiBOYXRoYW4gQ2hhbmNlbGxvciA8bmF0 aGFuQGtlcm5lbC5vcmc+CkNjOiBOaWNrIERlc2F1bG5pZXJzIDxuaWNrLmRlc2F1bG5pZXJzK2xr bWxAZ21haWwuY29tPgpDYzogUGFsbWVyIERhYmJlbHQgPHBhbG1lckBkYWJiZWx0LmNvbT4KQ2M6 IFBhdWwgV2FsbXNsZXkgPHBqd0BrZXJuZWwub3JnPgpDYzogUGV0ZXIgWmlqbHN0cmEgPHBldGVy ekBpbmZyYWRlYWQub3JnPgpDYzogU2VyZ2VpIFRyb2ZpbW92aWNoIDxzbHlpY2hAZ21haWwuY29t PgpDYzogU2hpbWluIEd1byA8c2hpbWluLmd1b0Bza3lkaW8uY29tPgpDYzogU3VjaGl0IEthcnVu YWthcmFuIDxzdWNoaXRrYXJ1bmFrYXJhbkBnbWFpbC5jb20+CkNjOiBUaG9tYXMgRmFsY29uIDx0 aG9tYXMuZmFsY29uQGludGVsLmNvbT4KQ2M6IFRpYW55b3UgTGkgPHRpYW55b3UubGlAaW50ZWwu Y29tPgpDYzogV2lsbCBEZWFjb24gPHdpbGxAa2VybmVsLm9yZz4KQ2M6IFplY2hlbmcgTGkgPHpl Y2hlbmdAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogQXJuYWxkbyBDYXJ2YWxobyBkZSBNZWxv IDxhY21lQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhc2hhIExldmluIDxzYXNoYWxAa2Vy bmVsLm9yZz4KLS0tCiAuLi4vYXJjaC9sb29uZ2FyY2gvYW5ub3RhdGUvaW5zdHJ1Y3Rpb25zLmMg ICAgfCAxNCArKysrLS0tLQogdG9vbHMvcGVyZi9hcmNoL3MzOTAvYW5ub3RhdGUvaW5zdHJ1Y3Rp b25zLmMgIHwgMTEgKysrLS0tCiB0b29scy9wZXJmL3V0aWwvYW5ub3RhdGUuYyAgICAgICAgICAg ICAgICAgICAgfCAgMiArLQogdG9vbHMvcGVyZi91dGlsL2NhcHN0b25lLmMgICAgICAgICAgICAg ICAgICAgIHwgMTQgKysrKy0tLS0KIHRvb2xzL3BlcmYvdXRpbC9kaXNhc20uYyAgICAgICAgICAg ICAgICAgICAgICB8IDM2ICsrKysrKysrKystLS0tLS0tLS0KIHRvb2xzL3BlcmYvdXRpbC9kaXNh c20uaCAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiB0b29scy9wZXJmL3V0aWwvbGx2bS5j ICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKy0tCiA3IGZpbGVzIGNoYW5nZWQsIDQ3IGlu c2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYXJj aC9sb29uZ2FyY2gvYW5ub3RhdGUvaW5zdHJ1Y3Rpb25zLmMgYi90b29scy9wZXJmL2FyY2gvbG9v bmdhcmNoL2Fubm90YXRlL2luc3RydWN0aW9ucy5jCmluZGV4IDcwMjYyZDVmMTQ0NDIuLjFjM2Fi YjQzYzhkNzIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvYXJjaC9sb29uZ2FyY2gvYW5ub3RhdGUv aW5zdHJ1Y3Rpb25zLmMKKysrIGIvdG9vbHMvcGVyZi9hcmNoL2xvb25nYXJjaC9hbm5vdGF0ZS9p bnN0cnVjdGlvbnMuYwpAQCAtMTAsOSArMTAsNyBAQCBzdGF0aWMgaW50IGxvb25nYXJjaF9jYWxs X19wYXJzZShzdHJ1Y3QgYXJjaCAqYXJjaCwgc3RydWN0IGluc19vcGVyYW5kcyAqb3BzLCBzdAog ewogCWNoYXIgKmMsICplbmRwdHIsICp0b2ssICpuYW1lOwogCXN0cnVjdCBtYXAgKm1hcCA9IG1z LT5tYXA7Ci0Jc3RydWN0IGFkZHJfbWFwX3N5bWJvbCB0YXJnZXQgPSB7Ci0JCS5tcyA9IHsgLm1h cCA9IG1hcCwgfSwKLQl9OworCXN0cnVjdCBhZGRyX21hcF9zeW1ib2wgdGFyZ2V0OwogCiAJYyA9 IHN0cmNocihvcHMtPnJhdywgJyMnKTsKIAlpZiAoYysrID09IE5VTEwpCkBAIC0zOCwxMiArMzYs MTYgQEAgc3RhdGljIGludCBsb29uZ2FyY2hfY2FsbF9fcGFyc2Uoc3RydWN0IGFyY2ggKmFyY2gs IHN0cnVjdCBpbnNfb3BlcmFuZHMgKm9wcywgc3QKIAlpZiAob3BzLT50YXJnZXQubmFtZSA9PSBO VUxMKQogCQlyZXR1cm4gLTE7CiAKLQl0YXJnZXQuYWRkciA9IG1hcF9fb2JqZHVtcF8ybWVtKG1h cCwgb3BzLT50YXJnZXQuYWRkcik7CisJdGFyZ2V0ID0gKHN0cnVjdCBhZGRyX21hcF9zeW1ib2wp IHsKKwkJLm1zID0geyAubWFwID0gbWFwX19nZXQobWFwKSwgfSwKKwkJLmFkZHIgPSBtYXBfX29i amR1bXBfMm1lbShtYXAsIG9wcy0+dGFyZ2V0LmFkZHIpLAorCX07CiAKIAlpZiAobWFwc19fZmlu ZF9hbXMobXMtPm1hcHMsICZ0YXJnZXQpID09IDAgJiYKIAkgICAgbWFwX19yaXBfMm9iamR1bXAo dGFyZ2V0Lm1zLm1hcCwgbWFwX19tYXBfaXAodGFyZ2V0Lm1zLm1hcCwgdGFyZ2V0LmFkZHIpKSA9 PSBvcHMtPnRhcmdldC5hZGRyKQogCQlvcHMtPnRhcmdldC5zeW0gPSB0YXJnZXQubXMuc3ltOwog CisJYWRkcl9tYXBfc3ltYm9sX19leGl0KCZ0YXJnZXQpOwogCXJldHVybiAwOwogfQogCkBAIC01 OCw3ICs2MCw3IEBAIHN0YXRpYyBpbnQgbG9vbmdhcmNoX2p1bXBfX3BhcnNlKHN0cnVjdCBhcmNo ICphcmNoLCBzdHJ1Y3QgaW5zX29wZXJhbmRzICpvcHMsIHN0CiAJc3RydWN0IG1hcCAqbWFwID0g bXMtPm1hcDsKIAlzdHJ1Y3Qgc3ltYm9sICpzeW0gPSBtcy0+c3ltOwogCXN0cnVjdCBhZGRyX21h cF9zeW1ib2wgdGFyZ2V0ID0gewotCQkubXMgPSB7IC5tYXAgPSBtYXAsIH0sCisJCS5tcyA9IHsg Lm1hcCA9IG1hcF9fZ2V0KG1hcCksIH0sCiAJfTsKIAljb25zdCBjaGFyICpjID0gc3RyY2hyKG9w cy0+cmF3LCAnIycpOwogCXU2NCBzdGFydCwgZW5kOwpAQCAtOTAsNyArOTIsNyBAQCBzdGF0aWMg aW50IGxvb25nYXJjaF9qdW1wX19wYXJzZShzdHJ1Y3QgYXJjaCAqYXJjaCwgc3RydWN0IGluc19v cGVyYW5kcyAqb3BzLCBzdAogCX0gZWxzZSB7CiAJCW9wcy0+dGFyZ2V0Lm9mZnNldF9hdmFpbCA9 IGZhbHNlOwogCX0KLQorCWFkZHJfbWFwX3N5bWJvbF9fZXhpdCgmdGFyZ2V0KTsKIAlyZXR1cm4g MDsKIH0KIApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9hcmNoL3MzOTAvYW5ub3RhdGUvaW5zdHJ1 Y3Rpb25zLmMgYi90b29scy9wZXJmL2FyY2gvczM5MC9hbm5vdGF0ZS9pbnN0cnVjdGlvbnMuYwpp bmRleCBjNjExOTNmMWUwOTY0Li42MjZlNmQyY2JjODFhIDEwMDY0NAotLS0gYS90b29scy9wZXJm L2FyY2gvczM5MC9hbm5vdGF0ZS9pbnN0cnVjdGlvbnMuYworKysgYi90b29scy9wZXJmL2FyY2gv czM5MC9hbm5vdGF0ZS9pbnN0cnVjdGlvbnMuYwpAQCAtNiw5ICs2LDcgQEAgc3RhdGljIGludCBz MzkwX2NhbGxfX3BhcnNlKHN0cnVjdCBhcmNoICphcmNoLCBzdHJ1Y3QgaW5zX29wZXJhbmRzICpv cHMsCiB7CiAJY2hhciAqZW5kcHRyLCAqdG9rLCAqbmFtZTsKIAlzdHJ1Y3QgbWFwICptYXAgPSBt cy0+bWFwOwotCXN0cnVjdCBhZGRyX21hcF9zeW1ib2wgdGFyZ2V0ID0gewotCQkubXMgPSB7IC5t YXAgPSBtYXAsIH0sCi0JfTsKKwlzdHJ1Y3QgYWRkcl9tYXBfc3ltYm9sIHRhcmdldDsKIAogCXRv ayA9IHN0cmNocihvcHMtPnJhdywgJywnKTsKIAlpZiAoIXRvaykKQEAgLTM2LDEyICszNCwxNyBA QCBzdGF0aWMgaW50IHMzOTBfY2FsbF9fcGFyc2Uoc3RydWN0IGFyY2ggKmFyY2gsIHN0cnVjdCBp bnNfb3BlcmFuZHMgKm9wcywKIAogCWlmIChvcHMtPnRhcmdldC5uYW1lID09IE5VTEwpCiAJCXJl dHVybiAtMTsKLQl0YXJnZXQuYWRkciA9IG1hcF9fb2JqZHVtcF8ybWVtKG1hcCwgb3BzLT50YXJn ZXQuYWRkcik7CisKKwl0YXJnZXQgPSAoc3RydWN0IGFkZHJfbWFwX3N5bWJvbCkgeworCQkubXMg PSB7IC5tYXAgPSBtYXBfX2dldChtYXApLCB9LAorCQkuYWRkciA9IG1hcF9fb2JqZHVtcF8ybWVt KG1hcCwgb3BzLT50YXJnZXQuYWRkciksCisJfTsKIAogCWlmIChtYXBzX19maW5kX2Ftcyhtcy0+ bWFwcywgJnRhcmdldCkgPT0gMCAmJgogCSAgICBtYXBfX3JpcF8yb2JqZHVtcCh0YXJnZXQubXMu bWFwLCBtYXBfX21hcF9pcCh0YXJnZXQubXMubWFwLCB0YXJnZXQuYWRkcikpID09IG9wcy0+dGFy Z2V0LmFkZHIpCiAJCW9wcy0+dGFyZ2V0LnN5bSA9IHRhcmdldC5tcy5zeW07CiAKKwlhZGRyX21h cF9zeW1ib2xfX2V4aXQoJnRhcmdldCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3Rv b2xzL3BlcmYvdXRpbC9hbm5vdGF0ZS5jIGIvdG9vbHMvcGVyZi91dGlsL2Fubm90YXRlLmMKaW5k ZXggMWQ2OTAwMDMzYjNhMC4uZGM4MGQ5MjJmNDUwZCAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91 dGlsL2Fubm90YXRlLmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL2Fubm90YXRlLmMKQEAgLTEwMzEs NyArMTAzMSw3IEBAIGludCBzeW1ib2xfX2Fubm90YXRlKHN0cnVjdCBtYXBfc3ltYm9sICptcywg c3RydWN0IGV2c2VsICpldnNlbCwKIAkJcmV0dXJuIDA7CiAKIAlhcmdzLmFyY2ggPSBhcmNoOwot CWFyZ3MubXMgPSAqbXM7CisJYXJncy5tcyA9IG1zOwogCiAJaWYgKG5vdGVzLT5zcmMgPT0gTlVM TCkgewogCQlub3Rlcy0+c3JjID0gYW5ub3RhdGVkX3NvdXJjZV9fbmV3KCk7CmRpZmYgLS1naXQg YS90b29scy9wZXJmL3V0aWwvY2Fwc3RvbmUuYyBiL3Rvb2xzL3BlcmYvdXRpbC9jYXBzdG9uZS5j CmluZGV4IGJlNWZkNDRiMWY5ZGMuLjJjN2ZlYWI2MWI3YmYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Bl cmYvdXRpbC9jYXBzdG9uZS5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9jYXBzdG9uZS5jCkBAIC0x NDMsNyArMTQzLDcgQEAgc3RhdGljIHZvaWQgcHJpbnRfY2Fwc3RvbmVfZGV0YWlsKGNzX2luc24g Kmluc24sIGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbiwKIAkJCQkgIHN0cnVjdCBhbm5vdGF0ZV9hcmdz ICphcmdzLCB1NjQgYWRkcikKIHsKIAlpbnQgaTsKLQlzdHJ1Y3QgbWFwICptYXAgPSBhcmdzLT5t cy5tYXA7CisJc3RydWN0IG1hcCAqbWFwID0gYXJncy0+bXMtPm1hcDsKIAlzdHJ1Y3Qgc3ltYm9s ICpzeW07CiAKIAkvKiBUT0RPOiBzdXBwb3J0IG1vcmUgYXJjaGl0ZWN0dXJlcyAqLwpAQCAtMjIy LDcgKzIyMiw3IEBAIGludCBzeW1ib2xfX2Rpc2Fzc2VtYmxlX2NhcHN0b25lKGNvbnN0IGNoYXIg KmZpbGVuYW1lIF9fbWF5YmVfdW51c2VkLAogewogI2lmZGVmIEhBVkVfTElCQ0FQU1RPTkVfU1VQ UE9SVAogCXN0cnVjdCBhbm5vdGF0aW9uICpub3RlcyA9IHN5bWJvbF9fYW5ub3RhdGlvbihzeW0p OwotCXN0cnVjdCBtYXAgKm1hcCA9IGFyZ3MtPm1zLm1hcDsKKwlzdHJ1Y3QgbWFwICptYXAgPSBh cmdzLT5tcy0+bWFwOwogCXN0cnVjdCBkc28gKmRzbyA9IG1hcF9fZHNvKG1hcCk7CiAJdTY0IHN0 YXJ0ID0gbWFwX19yaXBfMm9iamR1bXAobWFwLCBzeW0tPnN0YXJ0KTsKIAl1NjQgb2Zmc2V0OwpA QCAtMjU2LDcgKzI1Niw3IEBAIGludCBzeW1ib2xfX2Rpc2Fzc2VtYmxlX2NhcHN0b25lKGNvbnN0 IGNoYXIgKmZpbGVuYW1lIF9fbWF5YmVfdW51c2VkLAogCWFyZ3MtPmxpbmUgPSBkaXNhc21fYnVm OwogCWFyZ3MtPmxpbmVfbnIgPSAwOwogCWFyZ3MtPmZpbGVsb2MgPSBOVUxMOwotCWFyZ3MtPm1z LnN5bSA9IHN5bTsKKwlhcmdzLT5tcy0+c3ltID0gc3ltOwogCiAJZGwgPSBkaXNhc21fbGluZV9f bmV3KGFyZ3MpOwogCWlmIChkbCA9PSBOVUxMKQpAQCAtMjY4LDcgKzI2OCw3IEBAIGludCBzeW1i b2xfX2Rpc2Fzc2VtYmxlX2NhcHN0b25lKGNvbnN0IGNoYXIgKmZpbGVuYW1lIF9fbWF5YmVfdW51 c2VkLAogCSAgICAhc3RyY21wKGFyZ3MtPm9wdGlvbnMtPmRpc2Fzc2VtYmxlcl9zdHlsZSwgImF0 dCIpKQogCQlkaXNhc3NlbWJsZXJfc3R5bGUgPSB0cnVlOwogCi0JaWYgKGNhcHN0b25lX2luaXQo bWFwc19fbWFjaGluZShhcmdzLT5tcy5tYXBzKSwgJmhhbmRsZSwgaXNfNjRiaXQsIGRpc2Fzc2Vt Ymxlcl9zdHlsZSkgPCAwKQorCWlmIChjYXBzdG9uZV9pbml0KG1hcHNfX21hY2hpbmUoYXJncy0+ bXMtPm1hcHMpLCAmaGFuZGxlLCBpc182NGJpdCwgZGlzYXNzZW1ibGVyX3N0eWxlKSA8IDApCiAJ CWdvdG8gZXJyOwogCiAJbmVlZHNfY3NfY2xvc2UgPSB0cnVlOwpAQCAtMzQ1LDcgKzM0NSw3IEBA IGludCBzeW1ib2xfX2Rpc2Fzc2VtYmxlX2NhcHN0b25lX3Bvd2VycGMoY29uc3QgY2hhciAqZmls ZW5hbWUgX19tYXliZV91bnVzZWQsCiB7CiAjaWZkZWYgSEFWRV9MSUJDQVBTVE9ORV9TVVBQT1JU CiAJc3RydWN0IGFubm90YXRpb24gKm5vdGVzID0gc3ltYm9sX19hbm5vdGF0aW9uKHN5bSk7Ci0J c3RydWN0IG1hcCAqbWFwID0gYXJncy0+bXMubWFwOworCXN0cnVjdCBtYXAgKm1hcCA9IGFyZ3Mt Pm1zLT5tYXA7CiAJc3RydWN0IGRzbyAqZHNvID0gbWFwX19kc28obWFwKTsKIAlzdHJ1Y3QgbnNj b29raWUgbnNjOwogCXU2NCBzdGFydCA9IG1hcF9fcmlwXzJvYmpkdW1wKG1hcCwgc3ltLT5zdGFy dCk7CkBAIC0zODIsNyArMzgyLDcgQEAgaW50IHN5bWJvbF9fZGlzYXNzZW1ibGVfY2Fwc3RvbmVf cG93ZXJwYyhjb25zdCBjaGFyICpmaWxlbmFtZSBfX21heWJlX3VudXNlZCwKIAkgICAgIXN0cmNt cChhcmdzLT5vcHRpb25zLT5kaXNhc3NlbWJsZXJfc3R5bGUsICJhdHQiKSkKIAkJZGlzYXNzZW1i bGVyX3N0eWxlID0gdHJ1ZTsKIAotCWlmIChjYXBzdG9uZV9pbml0KG1hcHNfX21hY2hpbmUoYXJn cy0+bXMubWFwcyksICZoYW5kbGUsIGlzXzY0Yml0LCBkaXNhc3NlbWJsZXJfc3R5bGUpIDwgMCkK KwlpZiAoY2Fwc3RvbmVfaW5pdChtYXBzX19tYWNoaW5lKGFyZ3MtPm1zLT5tYXBzKSwgJmhhbmRs ZSwgaXNfNjRiaXQsIGRpc2Fzc2VtYmxlcl9zdHlsZSkgPCAwKQogCQlnb3RvIGVycjsKIAogCW5l ZWRzX2NzX2Nsb3NlID0gdHJ1ZTsKQEAgLTQwOCw3ICs0MDgsNyBAQCBpbnQgc3ltYm9sX19kaXNh c3NlbWJsZV9jYXBzdG9uZV9wb3dlcnBjKGNvbnN0IGNoYXIgKmZpbGVuYW1lIF9fbWF5YmVfdW51 c2VkLAogCWFyZ3MtPmxpbmUgPSBkaXNhc21fYnVmOwogCWFyZ3MtPmxpbmVfbnIgPSAwOwogCWFy Z3MtPmZpbGVsb2MgPSBOVUxMOwotCWFyZ3MtPm1zLnN5bSA9IHN5bTsKKwlhcmdzLT5tcy0+c3lt ID0gc3ltOwogCiAJZGwgPSBkaXNhc21fbGluZV9fbmV3KGFyZ3MpOwogCWlmIChkbCA9PSBOVUxM KQpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL2Rpc2FzbS5jIGIvdG9vbHMvcGVyZi91dGls L2Rpc2FzbS5jCmluZGV4IDUwYjk0MzNmM2Y4ZTYuLjkyNDQyOTE0MjYzMWEgMTAwNjQ0Ci0tLSBh L3Rvb2xzL3BlcmYvdXRpbC9kaXNhc20uYworKysgYi90b29scy9wZXJmL3V0aWwvZGlzYXNtLmMK QEAgLTI2OSw5ICsyNjksNyBAQCBzdGF0aWMgaW50IGNhbGxfX3BhcnNlKHN0cnVjdCBhcmNoICph cmNoLCBzdHJ1Y3QgaW5zX29wZXJhbmRzICpvcHMsIHN0cnVjdCBtYXBfcwogewogCWNoYXIgKmVu ZHB0ciwgKnRvaywgKm5hbWU7CiAJc3RydWN0IG1hcCAqbWFwID0gbXMtPm1hcDsKLQlzdHJ1Y3Qg YWRkcl9tYXBfc3ltYm9sIHRhcmdldCA9IHsKLQkJLm1zID0geyAubWFwID0gbWFwLCB9LAotCX07 CisJc3RydWN0IGFkZHJfbWFwX3N5bWJvbCB0YXJnZXQ7CiAKIAlvcHMtPnRhcmdldC5hZGRyID0g c3RydG91bGwob3BzLT5yYXcsICZlbmRwdHIsIDE2KTsKIApAQCAtMjk2LDEyICsyOTQsMTYgQEAg c3RhdGljIGludCBjYWxsX19wYXJzZShzdHJ1Y3QgYXJjaCAqYXJjaCwgc3RydWN0IGluc19vcGVy YW5kcyAqb3BzLCBzdHJ1Y3QgbWFwX3MKIAlpZiAob3BzLT50YXJnZXQubmFtZSA9PSBOVUxMKQog CQlyZXR1cm4gLTE7CiBmaW5kX3RhcmdldDoKLQl0YXJnZXQuYWRkciA9IG1hcF9fb2JqZHVtcF8y bWVtKG1hcCwgb3BzLT50YXJnZXQuYWRkcik7CisJdGFyZ2V0ID0gKHN0cnVjdCBhZGRyX21hcF9z eW1ib2wpIHsKKwkJLm1zID0geyAubWFwID0gbWFwX19nZXQobWFwKSwgfSwKKwkJLmFkZHIgPSBt YXBfX29iamR1bXBfMm1lbShtYXAsIG9wcy0+dGFyZ2V0LmFkZHIpLAorCX07CiAKIAlpZiAobWFw c19fZmluZF9hbXMobXMtPm1hcHMsICZ0YXJnZXQpID09IDAgJiYKIAkgICAgbWFwX19yaXBfMm9i amR1bXAodGFyZ2V0Lm1zLm1hcCwgbWFwX19tYXBfaXAodGFyZ2V0Lm1zLm1hcCwgdGFyZ2V0LmFk ZHIpKSA9PSBvcHMtPnRhcmdldC5hZGRyKQogCQlvcHMtPnRhcmdldC5zeW0gPSB0YXJnZXQubXMu c3ltOwogCisJYWRkcl9tYXBfc3ltYm9sX19leGl0KCZ0YXJnZXQpOwogCXJldHVybiAwOwogCiBp bmRpcmVjdF9jYWxsOgpAQCAtMzY2LDcgKzM2OCw3IEBAIHN0YXRpYyBpbnQganVtcF9fcGFyc2Uo c3RydWN0IGFyY2ggKmFyY2gsIHN0cnVjdCBpbnNfb3BlcmFuZHMgKm9wcywgc3RydWN0IG1hcF9z CiAJc3RydWN0IG1hcCAqbWFwID0gbXMtPm1hcDsKIAlzdHJ1Y3Qgc3ltYm9sICpzeW0gPSBtcy0+ c3ltOwogCXN0cnVjdCBhZGRyX21hcF9zeW1ib2wgdGFyZ2V0ID0gewotCQkubXMgPSB7IC5tYXAg PSBtYXAsIH0sCisJCS5tcyA9IHsgLm1hcCA9IG1hcF9fZ2V0KG1hcCksIH0sCiAJfTsKIAljb25z dCBjaGFyICpjID0gc3RyY2hyKG9wcy0+cmF3LCAnLCcpOwogCXU2NCBzdGFydCwgZW5kOwpAQCAt NDQwLDcgKzQ0Miw3IEBAIHN0YXRpYyBpbnQganVtcF9fcGFyc2Uoc3RydWN0IGFyY2ggKmFyY2gs IHN0cnVjdCBpbnNfb3BlcmFuZHMgKm9wcywgc3RydWN0IG1hcF9zCiAJfSBlbHNlIHsKIAkJb3Bz LT50YXJnZXQub2Zmc2V0X2F2YWlsID0gZmFsc2U7CiAJfQotCisJYWRkcl9tYXBfc3ltYm9sX19l eGl0KCZ0YXJnZXQpOwogCXJldHVybiAwOwogfQogCkBAIC0xMDQ2LDcgKzEwNDgsNyBAQCBzdGF0 aWMgc2l6ZV90IGRpc2FzbV9saW5lX3NpemUoaW50IG5yKQogc3RydWN0IGRpc2FzbV9saW5lICpk aXNhc21fbGluZV9fbmV3KHN0cnVjdCBhbm5vdGF0ZV9hcmdzICphcmdzKQogewogCXN0cnVjdCBk aXNhc21fbGluZSAqZGwgPSBOVUxMOwotCXN0cnVjdCBhbm5vdGF0aW9uICpub3RlcyA9IHN5bWJv bF9fYW5ub3RhdGlvbihhcmdzLT5tcy5zeW0pOworCXN0cnVjdCBhbm5vdGF0aW9uICpub3RlcyA9 IHN5bWJvbF9fYW5ub3RhdGlvbihhcmdzLT5tcy0+c3ltKTsKIAlpbnQgbnIgPSBub3Rlcy0+c3Jj LT5ucl9ldmVudHM7CiAKIAlkbCA9IHphbGxvYyhkaXNhc21fbGluZV9zaXplKG5yKSk7CkBAIC0x MDY0LDcgKzEwNjYsNyBAQCBzdHJ1Y3QgZGlzYXNtX2xpbmUgKmRpc2FzbV9saW5lX19uZXcoc3Ry dWN0IGFubm90YXRlX2FyZ3MgKmFyZ3MpCiAJCX0gZWxzZSBpZiAoZGlzYXNtX2xpbmVfX3BhcnNl KGRsLT5hbC5saW5lLCAmZGwtPmlucy5uYW1lLCAmZGwtPm9wcy5yYXcpIDwgMCkKIAkJCWdvdG8g b3V0X2ZyZWVfbGluZTsKIAotCQlkaXNhc21fbGluZV9faW5pdF9pbnMoZGwsIGFyZ3MtPmFyY2gs ICZhcmdzLT5tcyk7CisJCWRpc2FzbV9saW5lX19pbml0X2lucyhkbCwgYXJncy0+YXJjaCwgYXJn cy0+bXMpOwogCX0KIAogCXJldHVybiBkbDsKQEAgLTExMTksNyArMTEyMSw3IEBAIHN0YXRpYyBp bnQgc3ltYm9sX19wYXJzZV9vYmpkdW1wX2xpbmUoc3RydWN0IHN5bWJvbCAqc3ltLAogCQkJCSAg ICAgIHN0cnVjdCBhbm5vdGF0ZV9hcmdzICphcmdzLAogCQkJCSAgICAgIGNoYXIgKnBhcnNlZF9s aW5lLCBpbnQgKmxpbmVfbnIsIGNoYXIgKipmaWxlbG9jKQogewotCXN0cnVjdCBtYXAgKm1hcCA9 IGFyZ3MtPm1zLm1hcDsKKwlzdHJ1Y3QgbWFwICptYXAgPSBhcmdzLT5tcy0+bWFwOwogCXN0cnVj dCBhbm5vdGF0aW9uICpub3RlcyA9IHN5bWJvbF9fYW5ub3RhdGlvbihzeW0pOwogCXN0cnVjdCBk aXNhc21fbGluZSAqZGw7CiAJY2hhciAqdG1wOwpAQCAtMTE1MSw3ICsxMTUzLDcgQEAgc3RhdGlj IGludCBzeW1ib2xfX3BhcnNlX29iamR1bXBfbGluZShzdHJ1Y3Qgc3ltYm9sICpzeW0sCiAJYXJn cy0+bGluZSAgICA9IHBhcnNlZF9saW5lOwogCWFyZ3MtPmxpbmVfbnIgPSAqbGluZV9ucjsKIAlh cmdzLT5maWxlbG9jID0gKmZpbGVsb2M7Ci0JYXJncy0+bXMuc3ltICA9IHN5bTsKKwlhcmdzLT5t cy0+c3ltICA9IHN5bTsKIAogCWRsID0gZGlzYXNtX2xpbmVfX25ldyhhcmdzKTsKIAkoKmxpbmVf bnIpKys7CkBAIC0xMTY5LDEyICsxMTcxLDE0IEBAIHN0YXRpYyBpbnQgc3ltYm9sX19wYXJzZV9v YmpkdW1wX2xpbmUoc3RydWN0IHN5bWJvbCAqc3ltLAogCWlmIChkbC0+aW5zLm9wcyAmJiBpbnNf X2lzX2NhbGwoJmRsLT5pbnMpICYmICFkbC0+b3BzLnRhcmdldC5zeW0pIHsKIAkJc3RydWN0IGFk ZHJfbWFwX3N5bWJvbCB0YXJnZXQgPSB7CiAJCQkuYWRkciA9IGRsLT5vcHMudGFyZ2V0LmFkZHIs Ci0JCQkubXMgPSB7IC5tYXAgPSBtYXAsIH0sCisJCQkubXMgPSB7IC5tYXAgPSBtYXBfX2dldCht YXApLCB9LAogCQl9OwogCi0JCWlmICghbWFwc19fZmluZF9hbXMoYXJncy0+bXMubWFwcywgJnRh cmdldCkgJiYKKwkJaWYgKCFtYXBzX19maW5kX2FtcyhhcmdzLT5tcy0+bWFwcywgJnRhcmdldCkg JiYKIAkJICAgIHRhcmdldC5tcy5zeW0tPnN0YXJ0ID09IHRhcmdldC5hbF9hZGRyKQogCQkJZGwt Pm9wcy50YXJnZXQuc3ltID0gdGFyZ2V0Lm1zLnN5bTsKKworCQlhZGRyX21hcF9zeW1ib2xfX2V4 aXQoJnRhcmdldCk7CiAJfQogCiAJYW5ub3RhdGlvbl9saW5lX19hZGQoJmRsLT5hbCwgJm5vdGVz LT5zcmMtPnNvdXJjZSk7CkBAIC0xMzM4LDcgKzEzNDIsNyBAQCBzdGF0aWMgaW50IHN5bWJvbF9f ZGlzYXNzZW1ibGVfcmF3KGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCiAJCQkJ CXN0cnVjdCBhbm5vdGF0ZV9hcmdzICphcmdzKQogewogCXN0cnVjdCBhbm5vdGF0aW9uICpub3Rl cyA9IHN5bWJvbF9fYW5ub3RhdGlvbihzeW0pOwotCXN0cnVjdCBtYXAgKm1hcCA9IGFyZ3MtPm1z Lm1hcDsKKwlzdHJ1Y3QgbWFwICptYXAgPSBhcmdzLT5tcy0+bWFwOwogCXN0cnVjdCBkc28gKmRz byA9IG1hcF9fZHNvKG1hcCk7CiAJdTY0IHN0YXJ0ID0gbWFwX19yaXBfMm9iamR1bXAobWFwLCBz eW0tPnN0YXJ0KTsKIAl1NjQgZW5kID0gbWFwX19yaXBfMm9iamR1bXAobWFwLCBzeW0tPmVuZCk7 CkBAIC0xMzc1LDcgKzEzNzksNyBAQCBzdGF0aWMgaW50IHN5bWJvbF9fZGlzYXNzZW1ibGVfcmF3 KGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCiAJYXJncy0+bGluZSA9IGRpc2Fz bV9idWY7CiAJYXJncy0+bGluZV9uciA9IDA7CiAJYXJncy0+ZmlsZWxvYyA9IE5VTEw7Ci0JYXJn cy0+bXMuc3ltID0gc3ltOworCWFyZ3MtPm1zLT5zeW0gPSBzeW07CiAKIAlkbCA9IGRpc2FzbV9s aW5lX19uZXcoYXJncyk7CiAJaWYgKGRsID09IE5VTEwpCkBAIC0xNTAxLDcgKzE1MDUsNyBAQCBz dGF0aWMgaW50IHN5bWJvbF9fZGlzYXNzZW1ibGVfb2JqZHVtcChjb25zdCBjaGFyICpmaWxlbmFt ZSwgc3RydWN0IHN5bWJvbCAqc3ltLAogCQkJCSAgICAgICBzdHJ1Y3QgYW5ub3RhdGVfYXJncyAq YXJncykKIHsKIAlzdHJ1Y3QgYW5ub3RhdGlvbl9vcHRpb25zICpvcHRzID0gJmFubm90YXRlX29w dHM7Ci0Jc3RydWN0IG1hcCAqbWFwID0gYXJncy0+bXMubWFwOworCXN0cnVjdCBtYXAgKm1hcCA9 IGFyZ3MtPm1zLT5tYXA7CiAJc3RydWN0IGRzbyAqZHNvID0gbWFwX19kc28obWFwKTsKIAljaGFy ICpjb21tYW5kOwogCUZJTEUgKmZpbGU7CkBAIC0xNjQ0LDcgKzE2NDgsNyBAQCBzdGF0aWMgaW50 IHN5bWJvbF9fZGlzYXNzZW1ibGVfb2JqZHVtcChjb25zdCBjaGFyICpmaWxlbmFtZSwgc3RydWN0 IHN5bWJvbCAqc3ltLAogaW50IHN5bWJvbF9fZGlzYXNzZW1ibGUoc3RydWN0IHN5bWJvbCAqc3lt LCBzdHJ1Y3QgYW5ub3RhdGVfYXJncyAqYXJncykKIHsKIAlzdHJ1Y3QgYW5ub3RhdGlvbl9vcHRp b25zICpvcHRpb25zID0gYXJncy0+b3B0aW9uczsKLQlzdHJ1Y3QgbWFwICptYXAgPSBhcmdzLT5t cy5tYXA7CisJc3RydWN0IG1hcCAqbWFwID0gYXJncy0+bXMtPm1hcDsKIAlzdHJ1Y3QgZHNvICpk c28gPSBtYXBfX2RzbyhtYXApOwogCWNoYXIgc3ltZnNfZmlsZW5hbWVbUEFUSF9NQVhdOwogCWJv b2wgZGVsZXRlX2V4dHJhY3QgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9k aXNhc20uaCBiL3Rvb2xzL3BlcmYvdXRpbC9kaXNhc20uaAppbmRleCBkMmNiNTU1ZTRhM2JlLi5h M2VhOWQ2NzYyODE2IDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvZGlzYXNtLmgKKysrIGIv dG9vbHMvcGVyZi91dGlsL2Rpc2FzbS5oCkBAIC05Nyw3ICs5Nyw3IEBAIHN0cnVjdCBpbnNfb3Bz IHsKIAogc3RydWN0IGFubm90YXRlX2FyZ3MgewogCXN0cnVjdCBhcmNoCQkgICphcmNoOwotCXN0 cnVjdCBtYXBfc3ltYm9sCSAgbXM7CisJc3RydWN0IG1hcF9zeW1ib2wJICAqbXM7CiAJc3RydWN0 IGFubm90YXRpb25fb3B0aW9ucyAqb3B0aW9uczsKIAlzNjQJCQkgIG9mZnNldDsKIAljaGFyCQkJ ICAqbGluZTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9sbHZtLmMgYi90b29scy9wZXJm L3V0aWwvbGx2bS5jCmluZGV4IDJlYmYxZjVmNjViZjcuLjRhZGE5YTEwYmQ5M2YgMTAwNjQ0Ci0t LSBhL3Rvb2xzL3BlcmYvdXRpbC9sbHZtLmMKKysrIGIvdG9vbHMvcGVyZi91dGlsL2xsdm0uYwpA QCAtMTE4LDcgKzExOCw3IEBAIGludCBzeW1ib2xfX2Rpc2Fzc2VtYmxlX2xsdm0oY29uc3QgY2hh ciAqZmlsZW5hbWUsIHN0cnVjdCBzeW1ib2wgKnN5bSwKIHsKICNpZmRlZiBIQVZFX0xJQkxMVk1f U1VQUE9SVAogCXN0cnVjdCBhbm5vdGF0aW9uICpub3RlcyA9IHN5bWJvbF9fYW5ub3RhdGlvbihz eW0pOwotCXN0cnVjdCBtYXAgKm1hcCA9IGFyZ3MtPm1zLm1hcDsKKwlzdHJ1Y3QgbWFwICptYXAg PSBhcmdzLT5tcy0+bWFwOwogCXN0cnVjdCBkc28gKmRzbyA9IG1hcF9fZHNvKG1hcCk7CiAJdTY0 IHN0YXJ0ID0gbWFwX19yaXBfMm9iamR1bXAobWFwLCBzeW0tPnN0YXJ0KTsKIAkvKiBNYWxsb2Mt ZWQgYnVmZmVyIGNvbnRhaW5pbmcgaW5zdHJ1Y3Rpb25zIHJlYWQgZnJvbSBkaXNrLiAqLwpAQCAt MTg0LDcgKzE4NCw3IEBAIGludCBzeW1ib2xfX2Rpc2Fzc2VtYmxlX2xsdm0oY29uc3QgY2hhciAq ZmlsZW5hbWUsIHN0cnVjdCBzeW1ib2wgKnN5bSwKIAlhcmdzLT5saW5lID0gZGlzYXNtX2J1ZjsK IAlhcmdzLT5saW5lX25yID0gMDsKIAlhcmdzLT5maWxlbG9jID0gTlVMTDsKLQlhcmdzLT5tcy5z eW0gPSBzeW07CisJYXJncy0+bXMtPnN5bSA9IHN5bTsKIAogCWRsID0gZGlzYXNtX2xpbmVfX25l dyhhcmdzKTsKIAlpZiAoZGwgPT0gTlVMTCkKQEAgLTI0Miw3ICsyNDIsNyBAQCBpbnQgc3ltYm9s X19kaXNhc3NlbWJsZV9sbHZtKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3Qgc3ltYm9sICpz eW0sCiAJCQkJCSAmbGluZV9zdG9yYWdlX2xlbik7CiAJCWFyZ3MtPmxpbmVfbnIgPSAwOwogCQlh cmdzLT5maWxlbG9jID0gTlVMTDsKLQkJYXJncy0+bXMuc3ltID0gc3ltOworCQlhcmdzLT5tcy0+ c3ltID0gc3ltOwogCiAJCWxsdm1fYWRkcjJsaW5lKGZpbGVuYW1lLCBwYywgJmFyZ3MtPmZpbGVs b2MsCiAJCQkgICAgICAgKHVuc2lnbmVkIGludCAqKSZhcmdzLT5saW5lX25yLCBmYWxzZSwgTlVM TCk7Ci0tIAoyLjUxLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LXJpc2N2Cg==