From nobody Sun May 19 02:06:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1646911406; cv=none; d=zohomail.com; s=zohoarc; b=mWJyH7+mWa+oe3b+j0sPeFdw4GVSL/JkFw2oeL4AcUci+c/yhPdi2pC8D8fTDE8uRsj4FRT/fax1t6EZ62TneCT6wA4aa/tHRUCEW/1luAS/MQ+QT7VQXtOaeDM6fFVUmIiANhNEEMkhEostWaydyxIPYYFAu78F2dLTATSfL2E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1646911406; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=WQJzoE2T77JP0V4lczLo4utV01NEv26VqQNpf04mhQY=; b=WmB2XaRgS8Bi3jrlJm8sIb9+X0EMYs4q20xda8jNtvvLMLI4AKCV0qqVaK/r8jFysHK2ADbmbIkm7nCF9wh30CuKYvPjNdEcUbvVGpU67ks16493XXlI7j/WEB5v7VmLPQOcb72bpvPxmwfudWKLn6XhHXcmvS2NPqb0kgtVrug= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1646911406087812.0255842381533; Thu, 10 Mar 2022 03:23:26 -0800 (PST) Received: from localhost ([::1]:49914 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nSGtA-00089s-UP for importer@patchew.org; Thu, 10 Mar 2022 06:23:24 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46544) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSGfS-0007Fw-Od for qemu-devel@nongnu.org; Thu, 10 Mar 2022 06:09:15 -0500 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:19454) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSGfP-0004dx-Ez for qemu-devel@nongnu.org; Thu, 10 Mar 2022 06:09:14 -0500 Received: from pps.filterd (m0187473.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22AAWmiM011746 for ; Thu, 10 Mar 2022 11:09:08 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 3eqctrcaqs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 10 Mar 2022 11:09:08 +0000 Received: from m0187473.ppops.net (m0187473.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.43/8.16.0.43) with SMTP id 22AAYwn3003940 for ; Thu, 10 Mar 2022 11:09:07 GMT Received: from ppma05fra.de.ibm.com (6c.4a.5195.ip4.static.sl-reverse.com [149.81.74.108]) by mx0a-001b2d01.pphosted.com with ESMTP id 3eqctrcapy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 11:09:07 +0000 Received: from pps.filterd (ppma05fra.de.ibm.com [127.0.0.1]) by ppma05fra.de.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 22AB3gaj031924; Thu, 10 Mar 2022 11:09:05 GMT Received: from b06avi18626390.portsmouth.uk.ibm.com (b06avi18626390.portsmouth.uk.ibm.com [9.149.26.192]) by ppma05fra.de.ibm.com with ESMTP id 3epysw9h39-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 11:09:05 +0000 Received: from d06av25.portsmouth.uk.ibm.com (d06av25.portsmouth.uk.ibm.com [9.149.105.61]) by b06avi18626390.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 22AAvnj141484630 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Mar 2022 10:57:49 GMT Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E876211C069; Thu, 10 Mar 2022 11:09:02 +0000 (GMT) Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7E71911C066; Thu, 10 Mar 2022 11:09:02 +0000 (GMT) Received: from linux6.. (unknown [9.114.12.104]) by d06av25.portsmouth.uk.ibm.com (Postfix) with ESMTP; Thu, 10 Mar 2022 11:09:02 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=pp1; bh=WQJzoE2T77JP0V4lczLo4utV01NEv26VqQNpf04mhQY=; b=ORKM3LBuxVw59ZrlAqihkwZfS6Oi+6ec7NOp7lcnKTVQzHdzjVtyM1EBZiWwM9TjiCYZ ShLLpIF7+HkEaXdkJeCSC85yiGooG6koe+33kn1mUf27lULuyyS1hOTfYL6DR7w1mvvi oHCNOzrNwMIMmIGRtP0SuopnD6AyRdcF/KDqftS8ZfUcqp3JO/ROK85I82W6Hr6u62P9 y39qbHhwV8kbvxomoRTytUi4X7UOdvoQbM5aUI3EBr8o8AIUw1T7RYR9g/+y1XonLq6r gPUmFWYIPz+bb+bmGPNxCwETZy32hc4dC2ERRpF5mThItOdI4Uz4+Dhb2aYXBA6ON/q4 /A== From: Janosch Frank To: qemu-devel@nongnu.org Subject: [PATCH v2 1/9] dump: Use ERRP_GUARD() Date: Thu, 10 Mar 2022 11:08:46 +0000 Message-Id: <20220310110854.2701-2-frankja@linux.ibm.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220310110854.2701-1-frankja@linux.ibm.com> References: <20220310110854.2701-1-frankja@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-GUID: lqtGKWLq5pcv_IrWilVjwawA2jT-coGL X-Proofpoint-ORIG-GUID: nOMagTYiYdIXBSR1Y_DNQd5nLTO6OoSW X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.816,Hydra:6.0.425,FMLib:17.11.64.514 definitions=2022-03-10_03,2022-03-09_01,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 clxscore=1015 priorityscore=1501 phishscore=0 spamscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 impostorscore=0 mlxscore=0 mlxlogscore=873 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203100059 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=frankja@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: marcandre.lureau@redhat.com, pbonzini@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1646911406518100001 Content-Type: text/plain; charset="utf-8" Let's move to the new way of handling errors before changing the dump code. This patch has mostly been generated by the coccinelle script scripts/coccinelle/errp-guard.cocci. Signed-off-by: Janosch Frank Reviewed-by: Richard Henderson --- dump/dump.c | 144 ++++++++++++++++++++++------------------------------ 1 file changed, 61 insertions(+), 83 deletions(-) diff --git a/dump/dump.c b/dump/dump.c index a84d8b1598..ef1700174b 100644 --- a/dump/dump.c +++ b/dump/dump.c @@ -390,23 +390,21 @@ static void write_data(DumpState *s, void *buf, int l= ength, Error **errp) static void write_memory(DumpState *s, GuestPhysBlock *block, ram_addr_t s= tart, int64_t size, Error **errp) { + ERRP_GUARD(); int64_t i; - Error *local_err =3D NULL; =20 for (i =3D 0; i < size / s->dump_info.page_size; i++) { write_data(s, block->host_addr + start + i * s->dump_info.page_siz= e, - s->dump_info.page_size, &local_err); - if (local_err) { - error_propagate(errp, local_err); + s->dump_info.page_size, errp); + if (*errp) { return; } } =20 if ((size % s->dump_info.page_size) !=3D 0) { write_data(s, block->host_addr + start + i * s->dump_info.page_siz= e, - size % s->dump_info.page_size, &local_err); - if (local_err) { - error_propagate(errp, local_err); + size % s->dump_info.page_size, errp); + if (*errp) { return; } } @@ -476,11 +474,11 @@ static void get_offset_range(hwaddr phys_addr, =20 static void write_elf_loads(DumpState *s, Error **errp) { + ERRP_GUARD(); hwaddr offset, filesz; MemoryMapping *memory_mapping; uint32_t phdr_index =3D 1; uint32_t max_index; - Error *local_err =3D NULL; =20 if (s->have_section) { max_index =3D s->sh_info; @@ -494,14 +492,13 @@ static void write_elf_loads(DumpState *s, Error **err= p) s, &offset, &filesz); if (s->dump_info.d_class =3D=3D ELFCLASS64) { write_elf64_load(s, memory_mapping, phdr_index++, offset, - filesz, &local_err); + filesz, errp); } else { write_elf32_load(s, memory_mapping, phdr_index++, offset, - filesz, &local_err); + filesz, errp); } =20 - if (local_err) { - error_propagate(errp, local_err); + if (*errp) { return; } =20 @@ -514,7 +511,7 @@ static void write_elf_loads(DumpState *s, Error **errp) /* write elf header, PT_NOTE and elf note to vmcore. */ static void dump_begin(DumpState *s, Error **errp) { - Error *local_err =3D NULL; + ERRP_GUARD(); =20 /* * the vmcore's format is: @@ -542,73 +539,64 @@ static void dump_begin(DumpState *s, Error **errp) =20 /* write elf header to vmcore */ if (s->dump_info.d_class =3D=3D ELFCLASS64) { - write_elf64_header(s, &local_err); + write_elf64_header(s, errp); } else { - write_elf32_header(s, &local_err); + write_elf32_header(s, errp); } - if (local_err) { - error_propagate(errp, local_err); + if (*errp) { return; } =20 if (s->dump_info.d_class =3D=3D ELFCLASS64) { /* write PT_NOTE to vmcore */ - write_elf64_note(s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf64_note(s, errp); + if (*errp) { return; } =20 /* write all PT_LOAD to vmcore */ - write_elf_loads(s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf_loads(s, errp); + if (*errp) { return; } =20 /* write section to vmcore */ if (s->have_section) { - write_elf_section(s, 1, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf_section(s, 1, errp); + if (*errp) { return; } } =20 /* write notes to vmcore */ - write_elf64_notes(fd_write_vmcore, s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf64_notes(fd_write_vmcore, s, errp); + if (*errp) { return; } } else { /* write PT_NOTE to vmcore */ - write_elf32_note(s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf32_note(s, errp); + if (*errp) { return; } =20 /* write all PT_LOAD to vmcore */ - write_elf_loads(s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf_loads(s, errp); + if (*errp) { return; } =20 /* write section to vmcore */ if (s->have_section) { - write_elf_section(s, 0, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf_section(s, 0, errp); + if (*errp) { return; } } =20 /* write notes to vmcore */ - write_elf32_notes(fd_write_vmcore, s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf32_notes(fd_write_vmcore, s, errp); + if (*errp) { return; } } @@ -644,9 +632,9 @@ static int get_next_block(DumpState *s, GuestPhysBlock = *block) /* write all memory to vmcore */ static void dump_iterate(DumpState *s, Error **errp) { + ERRP_GUARD(); GuestPhysBlock *block; int64_t size; - Error *local_err =3D NULL; =20 do { block =3D s->next_block; @@ -658,9 +646,8 @@ static void dump_iterate(DumpState *s, Error **errp) size -=3D block->target_end - (s->begin + s->length); } } - write_memory(s, block, s->start, size, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_memory(s, block, s->start, size, errp); + if (*errp) { return; } =20 @@ -669,11 +656,10 @@ static void dump_iterate(DumpState *s, Error **errp) =20 static void create_vmcore(DumpState *s, Error **errp) { - Error *local_err =3D NULL; + ERRP_GUARD(); =20 - dump_begin(s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + dump_begin(s, errp); + if (*errp) { return; } =20 @@ -810,6 +796,7 @@ static bool note_name_equal(DumpState *s, /* write common header, sub header and elf note to vmcore */ static void create_header32(DumpState *s, Error **errp) { + ERRP_GUARD(); DiskDumpHeader32 *dh =3D NULL; KdumpSubHeader32 *kh =3D NULL; size_t size; @@ -818,7 +805,6 @@ static void create_header32(DumpState *s, Error **errp) uint32_t bitmap_blocks; uint32_t status =3D 0; uint64_t offset_note; - Error *local_err =3D NULL; =20 /* write common header, the version of kdump-compressed format is 6th = */ size =3D sizeof(DiskDumpHeader32); @@ -894,9 +880,8 @@ static void create_header32(DumpState *s, Error **errp) s->note_buf_offset =3D 0; =20 /* use s->note_buf to store notes temporarily */ - write_elf32_notes(buf_write_note, s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf32_notes(buf_write_note, s, errp); + if (*errp) { goto out; } if (write_buffer(s->fd, offset_note, s->note_buf, @@ -922,6 +907,7 @@ out: /* write common header, sub header and elf note to vmcore */ static void create_header64(DumpState *s, Error **errp) { + ERRP_GUARD(); DiskDumpHeader64 *dh =3D NULL; KdumpSubHeader64 *kh =3D NULL; size_t size; @@ -930,7 +916,6 @@ static void create_header64(DumpState *s, Error **errp) uint32_t bitmap_blocks; uint32_t status =3D 0; uint64_t offset_note; - Error *local_err =3D NULL; =20 /* write common header, the version of kdump-compressed format is 6th = */ size =3D sizeof(DiskDumpHeader64); @@ -1006,9 +991,8 @@ static void create_header64(DumpState *s, Error **errp) s->note_buf_offset =3D 0; =20 /* use s->note_buf to store notes temporarily */ - write_elf64_notes(buf_write_note, s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf64_notes(buf_write_note, s, errp); + if (*errp) { goto out; } =20 @@ -1464,8 +1448,8 @@ out: =20 static void create_kdump_vmcore(DumpState *s, Error **errp) { + ERRP_GUARD(); int ret; - Error *local_err =3D NULL; =20 /* * the kdump-compressed format is: @@ -1495,21 +1479,18 @@ static void create_kdump_vmcore(DumpState *s, Error= **errp) return; } =20 - write_dump_header(s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_dump_header(s, errp); + if (*errp) { return; } =20 - write_dump_bitmap(s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_dump_bitmap(s, errp); + if (*errp) { return; } =20 - write_dump_pages(s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_dump_pages(s, errp); + if (*errp) { return; } =20 @@ -1639,10 +1620,10 @@ static void dump_init(DumpState *s, int fd, bool ha= s_format, DumpGuestMemoryFormat format, bool paging, bool has_= filter, int64_t begin, int64_t length, Error **errp) { + ERRP_GUARD(); VMCoreInfoState *vmci =3D vmcoreinfo_find(); CPUState *cpu; int nr_cpus; - Error *err =3D NULL; int ret; =20 s->has_format =3D has_format; @@ -1761,9 +1742,8 @@ static void dump_init(DumpState *s, int fd, bool has_= format, =20 /* get memory mapping */ if (paging) { - qemu_get_guest_memory_mapping(&s->list, &s->guest_phys_blocks, &er= r); - if (err !=3D NULL) { - error_propagate(errp, err); + qemu_get_guest_memory_mapping(&s->list, &s->guest_phys_blocks, err= p); + if (*errp) { goto cleanup; } } else { @@ -1862,33 +1842,32 @@ cleanup: /* this operation might be time consuming. */ static void dump_process(DumpState *s, Error **errp) { - Error *local_err =3D NULL; + ERRP_GUARD(); DumpQueryResult *result =3D NULL; =20 if (s->has_format && s->format =3D=3D DUMP_GUEST_MEMORY_FORMAT_WIN_DMP= ) { #ifdef TARGET_X86_64 - create_win_dump(s, &local_err); + create_win_dump(s, errp); #endif } else if (s->has_format && s->format !=3D DUMP_GUEST_MEMORY_FORMAT_EL= F) { - create_kdump_vmcore(s, &local_err); + create_kdump_vmcore(s, errp); } else { - create_vmcore(s, &local_err); + create_vmcore(s, errp); } =20 /* make sure status is written after written_size updates */ smp_wmb(); qatomic_set(&s->status, - (local_err ? DUMP_STATUS_FAILED : DUMP_STATUS_COMPLETED)); + (*errp ? DUMP_STATUS_FAILED : DUMP_STATUS_COMPLETED)); =20 /* send DUMP_COMPLETED message (unconditionally) */ result =3D qmp_query_dump(NULL); /* should never fail */ assert(result); - qapi_event_send_dump_completed(result, !!local_err, (local_err ? - error_get_pretty(local_err) : NULL)); + qapi_event_send_dump_completed(result, !!*errp, (*errp ? + error_get_pretty(*err= p) : NULL)); qapi_free_DumpQueryResult(result); =20 - error_propagate(errp, local_err); dump_cleanup(s); } =20 @@ -1917,10 +1896,10 @@ void qmp_dump_guest_memory(bool paging, const char = *file, int64_t length, bool has_format, DumpGuestMemoryFormat format, Error **errp) { + ERRP_GUARD(); const char *p; int fd =3D -1; DumpState *s; - Error *local_err =3D NULL; bool detach_p =3D false; =20 if (runstate_check(RUN_STATE_INMIGRATE)) { @@ -2020,9 +1999,8 @@ void qmp_dump_guest_memory(bool paging, const char *f= ile, dump_state_prepare(s); =20 dump_init(s, fd, has_format, format, paging, has_begin, - begin, length, &local_err); - if (local_err) { - error_propagate(errp, local_err); + begin, length, errp); + if (*errp) { qatomic_set(&s->status, DUMP_STATUS_FAILED); return; } --=20 2.32.0 From nobody Sun May 19 02:06:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1646910878; cv=none; d=zohomail.com; s=zohoarc; b=HYSAD2wJ4Svne1guw+2SoNUp25ur6T3px1dAmkQR/3men/deh9P+teRHhJlbBftD/zJ0A6c/VE8U96gFcJhpvCvuEnixo+qYEzLvQvAJcqW1M9JUj7xi53a6ONtTsUtMv1gZ4TRp/YS1AR4lsekn0GKeopjt9qbrwEhB/XHdv2Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1646910878; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=aVBS4vqSja7A6Tgn8Ff+RtPqBPWaWNg0FEO5KMxV1kQ=; b=kJpZyIDv2RObxv2owsSRuPx3LJde+t+c+uW5PsxsXUKWf6hPDcFoPtBOCAIhPcThrOZCwiIe7pyenaZ6awvCoeGTTg+JIhrIsA1KQwlqjAppk3IEeVBjN9YgZ1JglBl+if0kdrOOhFXhvJI5s0qF2ECQ1PM8qeZt6eZR4QVvV4I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1646910878280965.9620586008809; Thu, 10 Mar 2022 03:14:38 -0800 (PST) Received: from localhost ([::1]:52758 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nSGke-0007fh-NJ for importer@patchew.org; Thu, 10 Mar 2022 06:14:38 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46450) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSGfQ-0007BB-Qv for qemu-devel@nongnu.org; Thu, 10 Mar 2022 06:09:12 -0500 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:22864) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSGfO-0004dm-Py for qemu-devel@nongnu.org; Thu, 10 Mar 2022 06:09:12 -0500 Received: from pps.filterd (m0098417.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22AAO5wi021914 for ; Thu, 10 Mar 2022 11:09:08 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 3eqcyy46m6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 10 Mar 2022 11:09:08 +0000 Received: from m0098417.ppops.net (m0098417.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.43/8.16.0.43) with SMTP id 22AB97ld014107 for ; Thu, 10 Mar 2022 11:09:08 GMT Received: from ppma06fra.de.ibm.com (48.49.7a9f.ip4.static.sl-reverse.com [159.122.73.72]) by mx0a-001b2d01.pphosted.com with ESMTP id 3eqcyy46kg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 11:09:07 +0000 Received: from pps.filterd (ppma06fra.de.ibm.com [127.0.0.1]) by ppma06fra.de.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 22AB31vw010641; Thu, 10 Mar 2022 11:09:06 GMT Received: from b06avi18626390.portsmouth.uk.ibm.com (b06avi18626390.portsmouth.uk.ibm.com [9.149.26.192]) by ppma06fra.de.ibm.com with ESMTP id 3eky4janj2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 11:09:06 +0000 Received: from d06av25.portsmouth.uk.ibm.com (d06av25.portsmouth.uk.ibm.com [9.149.105.61]) by b06avi18626390.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 22AAvo8V15466808 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Mar 2022 10:57:50 GMT Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 84FAE11C069; Thu, 10 Mar 2022 11:09:03 +0000 (GMT) Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 1AD5411C066; Thu, 10 Mar 2022 11:09:03 +0000 (GMT) Received: from linux6.. (unknown [9.114.12.104]) by d06av25.portsmouth.uk.ibm.com (Postfix) with ESMTP; Thu, 10 Mar 2022 11:09:02 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=pp1; bh=aVBS4vqSja7A6Tgn8Ff+RtPqBPWaWNg0FEO5KMxV1kQ=; b=cO37KC+bdJZ0LkuqqoSFfvtDQfGHfyTA9kpgkziABCJzrUMh1vqErSNx31HEiEjHXw1N GpR9rSwoOn9R7P/aFta5FY1BHsaAFVze+RPrGQd9sHQJF/S/gIx61Orx4iNZp8dgFLZ7 bx9aqiI+PVBoAui6WVXWSbF58XypmGdalWUXu8jv+M2qz+gKpaU651wx7EemRZKMDBIf tjVQE1sSQQeAPd21Xejag61o+QfIUtp6NVYgsfB2KDh5mEC9djHyIlWhc4O5kqwTceB/ or9WwkQAb8F2dU7LMTg1/xl676fTAWeuCovHmAQLvOxoQWmtgrNKgvYHH5KFo20imKLP pQ== From: Janosch Frank To: qemu-devel@nongnu.org Subject: [PATCH v2 2/9] dump: Remove the sh_info variable Date: Thu, 10 Mar 2022 11:08:47 +0000 Message-Id: <20220310110854.2701-3-frankja@linux.ibm.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220310110854.2701-1-frankja@linux.ibm.com> References: <20220310110854.2701-1-frankja@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: INS0Sz2HCU2iPt8vwkPzmADX6JdiJJkS X-Proofpoint-GUID: OfXinevw1D7cG6GwmE60FDZ7gxAFHPe1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.816,Hydra:6.0.425,FMLib:17.11.64.514 definitions=2022-03-10_03,2022-03-09_01,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 bulkscore=0 impostorscore=0 malwarescore=0 mlxlogscore=999 clxscore=1015 adultscore=0 lowpriorityscore=0 mlxscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203100059 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=frankja@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: marcandre.lureau@redhat.com, pbonzini@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1646910905691100001 Content-Type: text/plain; charset="utf-8" There's no need to have phdr_num and sh_info at the same time. We can make phdr_num 32 bit and set PN_XNUM when we write the header if phdr_num >=3D PN_XNUM. Signed-off-by: Janosch Frank Reviewed-by: Richard Henderson --- dump/dump.c | 34 ++++++++++++++-------------------- include/sysemu/dump.h | 3 +-- 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/dump/dump.c b/dump/dump.c index ef1700174b..7015c92177 100644 --- a/dump/dump.c +++ b/dump/dump.c @@ -124,6 +124,7 @@ static int fd_write_vmcore(const void *buf, size_t size= , void *opaque) =20 static void write_elf64_header(DumpState *s, Error **errp) { + uint16_t phnum =3D s->phdr_num >=3D PN_XNUM ? PN_XNUM : s->phdr_num; Elf64_Ehdr elf_header; int ret; =20 @@ -138,9 +139,9 @@ static void write_elf64_header(DumpState *s, Error **er= rp) elf_header.e_ehsize =3D cpu_to_dump16(s, sizeof(elf_header)); elf_header.e_phoff =3D cpu_to_dump64(s, sizeof(Elf64_Ehdr)); elf_header.e_phentsize =3D cpu_to_dump16(s, sizeof(Elf64_Phdr)); - elf_header.e_phnum =3D cpu_to_dump16(s, s->phdr_num); + elf_header.e_phnum =3D cpu_to_dump16(s, phnum); if (s->have_section) { - uint64_t shoff =3D sizeof(Elf64_Ehdr) + sizeof(Elf64_Phdr) * s->sh= _info; + uint64_t shoff =3D sizeof(Elf64_Ehdr) + sizeof(Elf64_Phdr) * s->ph= dr_num; =20 elf_header.e_shoff =3D cpu_to_dump64(s, shoff); elf_header.e_shentsize =3D cpu_to_dump16(s, sizeof(Elf64_Shdr)); @@ -155,6 +156,7 @@ static void write_elf64_header(DumpState *s, Error **er= rp) =20 static void write_elf32_header(DumpState *s, Error **errp) { + uint16_t phnum =3D s->phdr_num >=3D PN_XNUM ? PN_XNUM : s->phdr_num; Elf32_Ehdr elf_header; int ret; =20 @@ -169,9 +171,9 @@ static void write_elf32_header(DumpState *s, Error **er= rp) elf_header.e_ehsize =3D cpu_to_dump16(s, sizeof(elf_header)); elf_header.e_phoff =3D cpu_to_dump32(s, sizeof(Elf32_Ehdr)); elf_header.e_phentsize =3D cpu_to_dump16(s, sizeof(Elf32_Phdr)); - elf_header.e_phnum =3D cpu_to_dump16(s, s->phdr_num); + elf_header.e_phnum =3D cpu_to_dump16(s, phnum); if (s->have_section) { - uint32_t shoff =3D sizeof(Elf32_Ehdr) + sizeof(Elf32_Phdr) * s->sh= _info; + uint32_t shoff =3D sizeof(Elf32_Ehdr) + sizeof(Elf32_Phdr) * s->ph= dr_num; =20 elf_header.e_shoff =3D cpu_to_dump32(s, shoff); elf_header.e_shentsize =3D cpu_to_dump16(s, sizeof(Elf32_Shdr)); @@ -358,12 +360,12 @@ static void write_elf_section(DumpState *s, int type,= Error **errp) if (type =3D=3D 0) { shdr_size =3D sizeof(Elf32_Shdr); memset(&shdr32, 0, shdr_size); - shdr32.sh_info =3D cpu_to_dump32(s, s->sh_info); + shdr32.sh_info =3D cpu_to_dump32(s, s->phdr_num); shdr =3D &shdr32; } else { shdr_size =3D sizeof(Elf64_Shdr); memset(&shdr64, 0, shdr_size); - shdr64.sh_info =3D cpu_to_dump32(s, s->sh_info); + shdr64.sh_info =3D cpu_to_dump32(s, s->phdr_num); shdr =3D &shdr64; } =20 @@ -478,13 +480,6 @@ static void write_elf_loads(DumpState *s, Error **errp) hwaddr offset, filesz; MemoryMapping *memory_mapping; uint32_t phdr_index =3D 1; - uint32_t max_index; - - if (s->have_section) { - max_index =3D s->sh_info; - } else { - max_index =3D s->phdr_num; - } =20 QTAILQ_FOREACH(memory_mapping, &s->list.head, next) { get_offset_range(memory_mapping->phys_addr, @@ -502,7 +497,7 @@ static void write_elf_loads(DumpState *s, Error **errp) return; } =20 - if (phdr_index >=3D max_index) { + if (phdr_index >=3D s->phdr_num) { break; } } @@ -1801,22 +1796,21 @@ static void dump_init(DumpState *s, int fd, bool ha= s_format, s->phdr_num +=3D s->list.num; s->have_section =3D false; } else { + /* sh_info of section 0 holds the real number of phdrs */ s->have_section =3D true; - s->phdr_num =3D PN_XNUM; - s->sh_info =3D 1; /* PT_NOTE */ =20 /* the type of shdr->sh_info is uint32_t, so we should avoid overf= low */ if (s->list.num <=3D UINT32_MAX - 1) { - s->sh_info +=3D s->list.num; + s->phdr_num +=3D s->list.num; } else { - s->sh_info =3D UINT32_MAX; + s->phdr_num =3D UINT32_MAX; } } =20 if (s->dump_info.d_class =3D=3D ELFCLASS64) { if (s->have_section) { s->memory_offset =3D sizeof(Elf64_Ehdr) + - sizeof(Elf64_Phdr) * s->sh_info + + sizeof(Elf64_Phdr) * s->phdr_num + sizeof(Elf64_Shdr) + s->note_size; } else { s->memory_offset =3D sizeof(Elf64_Ehdr) + @@ -1825,7 +1819,7 @@ static void dump_init(DumpState *s, int fd, bool has_= format, } else { if (s->have_section) { s->memory_offset =3D sizeof(Elf32_Ehdr) + - sizeof(Elf32_Phdr) * s->sh_info + + sizeof(Elf32_Phdr) * s->phdr_num + sizeof(Elf32_Shdr) + s->note_size; } else { s->memory_offset =3D sizeof(Elf32_Ehdr) + diff --git a/include/sysemu/dump.h b/include/sysemu/dump.h index 250143cb5a..b463fc9c02 100644 --- a/include/sysemu/dump.h +++ b/include/sysemu/dump.h @@ -154,8 +154,7 @@ typedef struct DumpState { GuestPhysBlockList guest_phys_blocks; ArchDumpInfo dump_info; MemoryMappingList list; - uint16_t phdr_num; - uint32_t sh_info; + uint32_t phdr_num; bool have_section; bool resume; bool detached; --=20 2.32.0 From nobody Sun May 19 02:06:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1646911201; cv=none; d=zohomail.com; s=zohoarc; b=hNtSuyuL4QjmTJYjequ0ZZu3ey2DsmK7B5Cu4a3IjSA9Gvwg+Qod6fHP/gHjL5l7ungli3REoNopITvisBQQfvwGWugig1GVR4cvvlmjkXqc/MxeM/RlWildAQ9fX6htGio++1YPNxWfT4GVguT1+Wi/SrDF2V2TjgOBZyjIw2E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1646911201; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=XIpDNNT6h59f/HivB7hMUQfCCGq5z25+dE1V9VmAbQs=; b=VdbsWz9aoIy73OfXO/Ar5C2ETd/w1f5eC4TnZEwBFDEP13f+njceAWJrzjhGyEf2M54FvU5ntdVFwOp3GUwzYCqUVemoOT2Sv2Oju6F8xnEdrVAEbuepXKcerPt82vqR2BUoBhJigUmUBC39mo5ktr13cXpk4YT6cgP8rRGwLkw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1646911201529615.2557089883483; Thu, 10 Mar 2022 03:20:01 -0800 (PST) Received: from localhost ([::1]:41376 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nSGps-0002MC-Gr for importer@patchew.org; Thu, 10 Mar 2022 06:20:00 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46518) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSGfS-0007FF-Dw for qemu-devel@nongnu.org; Thu, 10 Mar 2022 06:09:14 -0500 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:36272 helo=mx0a-001b2d01.pphosted.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSGfP-0004e3-FQ for qemu-devel@nongnu.org; Thu, 10 Mar 2022 06:09:14 -0500 Received: from pps.filterd (m0098420.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22A9KB1t026729 for ; Thu, 10 Mar 2022 11:09:09 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0b-001b2d01.pphosted.com with ESMTP id 3eq7yr1k52-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 10 Mar 2022 11:09:08 +0000 Received: from m0098420.ppops.net (m0098420.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.43/8.16.0.43) with SMTP id 22AALAW3009614 for ; Thu, 10 Mar 2022 11:09:08 GMT Received: from ppma04fra.de.ibm.com (6a.4a.5195.ip4.static.sl-reverse.com [149.81.74.106]) by mx0b-001b2d01.pphosted.com with ESMTP id 3eq7yr1k4k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 11:09:08 +0000 Received: from pps.filterd (ppma04fra.de.ibm.com [127.0.0.1]) by ppma04fra.de.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 22AB34Jv019601; Thu, 10 Mar 2022 11:09:06 GMT Received: from b06cxnps3075.portsmouth.uk.ibm.com (d06relay10.portsmouth.uk.ibm.com [9.149.109.195]) by ppma04fra.de.ibm.com with ESMTP id 3ep8c3v4vt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 11:09:06 +0000 Received: from d06av25.portsmouth.uk.ibm.com (d06av25.portsmouth.uk.ibm.com [9.149.105.61]) by b06cxnps3075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 22AB94e244302766 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Mar 2022 11:09:04 GMT Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 20C2311C06E; Thu, 10 Mar 2022 11:09:04 +0000 (GMT) Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id AAFD511C06C; Thu, 10 Mar 2022 11:09:03 +0000 (GMT) Received: from linux6.. (unknown [9.114.12.104]) by d06av25.portsmouth.uk.ibm.com (Postfix) with ESMTP; Thu, 10 Mar 2022 11:09:03 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=pp1; bh=XIpDNNT6h59f/HivB7hMUQfCCGq5z25+dE1V9VmAbQs=; b=hNCMkiqx4Pw1aejto0MPRtrsP0l2Sqn7dPegs1nq8p0Lk+QuV6RGC1hgY+XRNIGVoDU0 89zOICUARtxhNVVM4udX3vAA2V76Mhl9l3y1SGqrBBMmnD14wpSmt91JsX12bIt4GNqi rdqBrrUEQJRhk2plDZ46XYh1YZWjbeFJNVenunfJnbu7cEWQuREOy1SmDXKhTfrkNCjF BMqABSy5O7cAHZSqCvrrMQsZGZJGxd42CChqPXvCV8tZkGww27duZrOa28YlwXwv4uEc dRYeQzoe4mw6cm1kWPT3boT0VD1Og+9c9nIHss/8jz2SEmpiZpGrsSYaz2JDYd6RCnMy 8Q== From: Janosch Frank To: qemu-devel@nongnu.org Subject: [PATCH v2 3/9] dump: Introduce shdr_num to decrease complexity Date: Thu, 10 Mar 2022 11:08:48 +0000 Message-Id: <20220310110854.2701-4-frankja@linux.ibm.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220310110854.2701-1-frankja@linux.ibm.com> References: <20220310110854.2701-1-frankja@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-GUID: IDk0yXfBuHTYQs_nAhObh6G9qELtLHdd X-Proofpoint-ORIG-GUID: yxCsfBNMBgpOVGjmmaueSBTdEfUW_3uW X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.816,Hydra:6.0.425,FMLib:17.11.64.514 definitions=2022-03-10_03,2022-03-09_01,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 clxscore=1011 adultscore=0 suspectscore=0 spamscore=0 impostorscore=0 mlxscore=0 mlxlogscore=695 phishscore=0 lowpriorityscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203100059 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=frankja@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: marcandre.lureau@redhat.com, pbonzini@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1646911202374100001 Content-Type: text/plain; charset="utf-8" Let's move from a boolean to a int variable which will later enable us to store the number of sections that are in the dump file. Signed-off-by: Janosch Frank Reviewed-by: Richard Henderson --- dump/dump.c | 24 ++++++++++++------------ include/sysemu/dump.h | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/dump/dump.c b/dump/dump.c index 7015c92177..c5ca6027ae 100644 --- a/dump/dump.c +++ b/dump/dump.c @@ -140,12 +140,12 @@ static void write_elf64_header(DumpState *s, Error **= errp) elf_header.e_phoff =3D cpu_to_dump64(s, sizeof(Elf64_Ehdr)); elf_header.e_phentsize =3D cpu_to_dump16(s, sizeof(Elf64_Phdr)); elf_header.e_phnum =3D cpu_to_dump16(s, phnum); - if (s->have_section) { + if (s->shdr_num) { uint64_t shoff =3D sizeof(Elf64_Ehdr) + sizeof(Elf64_Phdr) * s->ph= dr_num; =20 elf_header.e_shoff =3D cpu_to_dump64(s, shoff); elf_header.e_shentsize =3D cpu_to_dump16(s, sizeof(Elf64_Shdr)); - elf_header.e_shnum =3D cpu_to_dump16(s, 1); + elf_header.e_shnum =3D cpu_to_dump16(s, s->shdr_num); } =20 ret =3D fd_write_vmcore(&elf_header, sizeof(elf_header), s); @@ -172,12 +172,12 @@ static void write_elf32_header(DumpState *s, Error **= errp) elf_header.e_phoff =3D cpu_to_dump32(s, sizeof(Elf32_Ehdr)); elf_header.e_phentsize =3D cpu_to_dump16(s, sizeof(Elf32_Phdr)); elf_header.e_phnum =3D cpu_to_dump16(s, phnum); - if (s->have_section) { + if (s->shdr_num) { uint32_t shoff =3D sizeof(Elf32_Ehdr) + sizeof(Elf32_Phdr) * s->ph= dr_num; =20 elf_header.e_shoff =3D cpu_to_dump32(s, shoff); elf_header.e_shentsize =3D cpu_to_dump16(s, sizeof(Elf32_Shdr)); - elf_header.e_shnum =3D cpu_to_dump16(s, 1); + elf_header.e_shnum =3D cpu_to_dump16(s, s->shdr_num); } =20 ret =3D fd_write_vmcore(&elf_header, sizeof(elf_header), s); @@ -556,7 +556,7 @@ static void dump_begin(DumpState *s, Error **errp) } =20 /* write section to vmcore */ - if (s->have_section) { + if (s->shdr_num) { write_elf_section(s, 1, errp); if (*errp) { return; @@ -582,7 +582,7 @@ static void dump_begin(DumpState *s, Error **errp) } =20 /* write section to vmcore */ - if (s->have_section) { + if (s->shdr_num) { write_elf_section(s, 0, errp); if (*errp) { return; @@ -1793,11 +1793,11 @@ static void dump_init(DumpState *s, int fd, bool ha= s_format, */ s->phdr_num =3D 1; /* PT_NOTE */ if (s->list.num < UINT16_MAX - 2) { + s->shdr_num =3D 0; s->phdr_num +=3D s->list.num; - s->have_section =3D false; } else { /* sh_info of section 0 holds the real number of phdrs */ - s->have_section =3D true; + s->shdr_num =3D 1; =20 /* the type of shdr->sh_info is uint32_t, so we should avoid overf= low */ if (s->list.num <=3D UINT32_MAX - 1) { @@ -1808,19 +1808,19 @@ static void dump_init(DumpState *s, int fd, bool ha= s_format, } =20 if (s->dump_info.d_class =3D=3D ELFCLASS64) { - if (s->have_section) { + if (s->shdr_num) { s->memory_offset =3D sizeof(Elf64_Ehdr) + sizeof(Elf64_Phdr) * s->phdr_num + - sizeof(Elf64_Shdr) + s->note_size; + sizeof(Elf64_Shdr) * s->shdr_num + s->note_= size; } else { s->memory_offset =3D sizeof(Elf64_Ehdr) + sizeof(Elf64_Phdr) * s->phdr_num + s->note_= size; } } else { - if (s->have_section) { + if (s->shdr_num) { s->memory_offset =3D sizeof(Elf32_Ehdr) + sizeof(Elf32_Phdr) * s->phdr_num + - sizeof(Elf32_Shdr) + s->note_size; + sizeof(Elf32_Shdr) * s->shdr_num + s->note_= size; } else { s->memory_offset =3D sizeof(Elf32_Ehdr) + sizeof(Elf32_Phdr) * s->phdr_num + s->note_= size; diff --git a/include/sysemu/dump.h b/include/sysemu/dump.h index b463fc9c02..19458bffbd 100644 --- a/include/sysemu/dump.h +++ b/include/sysemu/dump.h @@ -155,7 +155,7 @@ typedef struct DumpState { ArchDumpInfo dump_info; MemoryMappingList list; uint32_t phdr_num; - bool have_section; + uint32_t shdr_num; bool resume; bool detached; ssize_t note_size; --=20 2.32.0 From nobody Sun May 19 02:06:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1646911056; cv=none; d=zohomail.com; s=zohoarc; b=ejwOjg7jwBxn09Jw3eANFLk5yC4mbxQMo4abCULalFpuavr5sfswHTlWnKzP0d48bpETU1TGMhLUjOXHcfPJPHy9iTgR1HUCGYh6XZOrfQfDko2yyXxwI0b0hrrOahjk1w3JGRi6hsOAVj/p3OULpl8Yk8S9DE1U3996sVgEJfE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1646911056; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=fz5Hp8Y9HxNW85ul51S9UWCkXhQQuicC0Fl6x8vpC4Y=; b=j2x8PS/NceXmge2+cTceBnX0x3ilJ3oQGEomMdZMSSkixRrs425NO+rXIDI3rYNwhIq+4Mnm1zIwY3j4sq7a8scLV9WuDfQmDzQhSCOy2w5eAS6TDzs5pE8r8yQJJZ/JjURwsby7YBPKrMK6EYYAcgGoyMwPdi+X0PC3h00sHHk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1646911056745374.9844582894591; Thu, 10 Mar 2022 03:17:36 -0800 (PST) Received: from localhost ([::1]:60830 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nSGnX-0004xd-Kk for importer@patchew.org; Thu, 10 Mar 2022 06:17:35 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46508) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSGfS-0007EQ-87 for qemu-devel@nongnu.org; Thu, 10 Mar 2022 06:09:14 -0500 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:52458) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSGfP-0004eG-G9 for qemu-devel@nongnu.org; Thu, 10 Mar 2022 06:09:13 -0500 Received: from pps.filterd (m0098410.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22A8sOCc004432 for ; Thu, 10 Mar 2022 11:09:10 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 3entt9r7e9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 10 Mar 2022 11:09:10 +0000 Received: from m0098410.ppops.net (m0098410.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.43/8.16.0.43) with SMTP id 22AATfJW004199 for ; Thu, 10 Mar 2022 11:09:09 GMT Received: from ppma02fra.de.ibm.com (47.49.7a9f.ip4.static.sl-reverse.com [159.122.73.71]) by mx0a-001b2d01.pphosted.com with ESMTP id 3entt9r7dg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 11:09:09 +0000 Received: from pps.filterd (ppma02fra.de.ibm.com [127.0.0.1]) by ppma02fra.de.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 22AB22q4026800; Thu, 10 Mar 2022 11:09:07 GMT Received: from b06cxnps3075.portsmouth.uk.ibm.com (d06relay10.portsmouth.uk.ibm.com [9.149.109.195]) by ppma02fra.de.ibm.com with ESMTP id 3ekyg92mge-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 11:09:07 +0000 Received: from d06av25.portsmouth.uk.ibm.com (d06av25.portsmouth.uk.ibm.com [9.149.105.61]) by b06cxnps3075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 22AB94hO52035956 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Mar 2022 11:09:04 GMT Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A78BF11C073; Thu, 10 Mar 2022 11:09:04 +0000 (GMT) Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 473F511C071; Thu, 10 Mar 2022 11:09:04 +0000 (GMT) Received: from linux6.. (unknown [9.114.12.104]) by d06av25.portsmouth.uk.ibm.com (Postfix) with ESMTP; Thu, 10 Mar 2022 11:09:04 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=pp1; bh=fz5Hp8Y9HxNW85ul51S9UWCkXhQQuicC0Fl6x8vpC4Y=; b=ePw8HyfNHSNeYei+/c+kQ1KS0UHBX6UYeQZXrPVo47nly1QRWOs+ZTRSTmR8mQFCfgIL 8EQsMG9CKpNKS9eg9cOWWTXDFMKPwnsFz2dZ9mihMpRrsHHLgADJYm7QKgJ93AOV3wSu rH7NkdgFGnfcBn0TEJog108ZKj2NV7Izokdr72nzRwAO0bxsyJ4aZT+wPPo9sQ+cPYD7 6XZhuqxGcbpQtHu0jLeYM9GlR5ISzAbs96fgd5Yz7CAbEBF4y4suDae3xmaaevj11+PA LM+8LRy7cRYLOOH6rNB57GLkZjhylSS6QFWh6ZAZUxJ3pa+XX5Rr6yDHyPYJDfjnntOx pg== From: Janosch Frank To: qemu-devel@nongnu.org Subject: [PATCH v2 4/9] dump: Remove the section if when calculating the memory offset Date: Thu, 10 Mar 2022 11:08:49 +0000 Message-Id: <20220310110854.2701-5-frankja@linux.ibm.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220310110854.2701-1-frankja@linux.ibm.com> References: <20220310110854.2701-1-frankja@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-GUID: K_1LG28dLpToJt12fMH-S-6MFEXjl4U8 X-Proofpoint-ORIG-GUID: f7AzXDmKn_oU9T--3pXHyMTv2qf4_Qp_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.816,Hydra:6.0.425,FMLib:17.11.64.514 definitions=2022-03-10_03,2022-03-09_01,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 suspectscore=0 priorityscore=1501 mlxlogscore=767 bulkscore=0 adultscore=0 impostorscore=0 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203100059 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=frankja@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: marcandre.lureau@redhat.com, pbonzini@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1646911057880100001 Content-Type: text/plain; charset="utf-8" When s->shdr_num is 0 we'll add 0 bytes of section headers which is equivalent to not adding section headers but with the multiplication we can remove a if/else. Signed-off-by: Janosch Frank Reviewed-by: Richard Henderson --- dump/dump.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/dump/dump.c b/dump/dump.c index c5ca6027ae..316c636f24 100644 --- a/dump/dump.c +++ b/dump/dump.c @@ -1808,23 +1808,15 @@ static void dump_init(DumpState *s, int fd, bool ha= s_format, } =20 if (s->dump_info.d_class =3D=3D ELFCLASS64) { - if (s->shdr_num) { - s->memory_offset =3D sizeof(Elf64_Ehdr) + - sizeof(Elf64_Phdr) * s->phdr_num + - sizeof(Elf64_Shdr) * s->shdr_num + s->note_= size; - } else { - s->memory_offset =3D sizeof(Elf64_Ehdr) + - sizeof(Elf64_Phdr) * s->phdr_num + s->note_= size; - } + s->memory_offset =3D sizeof(Elf64_Ehdr) + + sizeof(Elf64_Phdr) * s->phdr_num + + sizeof(Elf64_Shdr) * s->shdr_num + + s->note_size; } else { - if (s->shdr_num) { - s->memory_offset =3D sizeof(Elf32_Ehdr) + - sizeof(Elf32_Phdr) * s->phdr_num + - sizeof(Elf32_Shdr) * s->shdr_num + s->note_= size; - } else { - s->memory_offset =3D sizeof(Elf32_Ehdr) + - sizeof(Elf32_Phdr) * s->phdr_num + s->note_= size; - } + s->memory_offset =3D sizeof(Elf32_Ehdr) + + sizeof(Elf32_Phdr) * s->phdr_num + + sizeof(Elf32_Shdr) * s->shdr_num + + s->note_size; } =20 return; --=20 2.32.0 From nobody Sun May 19 02:06:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1646910720; cv=none; d=zohomail.com; s=zohoarc; b=iErcJyMTenJ6/o1mMKUqN+8qn3fLw1O4DznlSk26Abj9iwlCJEZmRCI7VfSWwzD8tDScDPOqDRcnCd1OU705z3s7fT7qm7KzwDvH7h2oezs64QuPuKqvoGXQstpaXFEHmdUcMLqx8PfnxnKu0OCvmfMA7Vn0cIQfV/9djRNxc44= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1646910720; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=CGsrTlhSK1ihP9wrviRSavU7b2Rd7SevBe4A9Tix4ZA=; b=l9FII6BajXfa6G6AD4xsqC1cL5KwgKgV1oI5qreRaH7eVm6Q7SK4ZfgJUUcO7M7ilM+mpqGQdx0FiGVdCU6apxlsMXS0i2nBlTxHc8+J5/jWJTaQ2GWFFSIz6rPhfGolFSJJcNrA4gveu8awH6QMzRe0+aE6AvZjIsKiUjihe1o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1646910720460816.0621893687756; Thu, 10 Mar 2022 03:12:00 -0800 (PST) Received: from localhost ([::1]:44160 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nSGi7-0001lE-74 for importer@patchew.org; Thu, 10 Mar 2022 06:11:59 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46444) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSGfQ-0007B1-Ma for qemu-devel@nongnu.org; Thu, 10 Mar 2022 06:09:12 -0500 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:41718 helo=mx0a-001b2d01.pphosted.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSGfO-0004eD-Qw for qemu-devel@nongnu.org; Thu, 10 Mar 2022 06:09:12 -0500 Received: from pps.filterd (m0098419.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22A8eXZp006804 for ; Thu, 10 Mar 2022 11:09:10 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0b-001b2d01.pphosted.com with ESMTP id 3ep107sb0d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 10 Mar 2022 11:09:09 +0000 Received: from m0098419.ppops.net (m0098419.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.43/8.16.0.43) with SMTP id 22AA6wWq023973 for ; Thu, 10 Mar 2022 11:09:09 GMT Received: from ppma04ams.nl.ibm.com (63.31.33a9.ip4.static.sl-reverse.com [169.51.49.99]) by mx0b-001b2d01.pphosted.com with ESMTP id 3ep107sayy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 11:09:09 +0000 Received: from pps.filterd (ppma04ams.nl.ibm.com [127.0.0.1]) by ppma04ams.nl.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 22AB25hr013822; Thu, 10 Mar 2022 11:09:07 GMT Received: from b06cxnps4074.portsmouth.uk.ibm.com (d06relay11.portsmouth.uk.ibm.com [9.149.109.196]) by ppma04ams.nl.ibm.com with ESMTP id 3enqgnq11f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 11:09:07 +0000 Received: from d06av25.portsmouth.uk.ibm.com (d06av25.portsmouth.uk.ibm.com [9.149.105.61]) by b06cxnps4074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 22AB95JS57934140 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Mar 2022 11:09:05 GMT Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4DA5811C069; Thu, 10 Mar 2022 11:09:05 +0000 (GMT) Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D76C211C06E; Thu, 10 Mar 2022 11:09:04 +0000 (GMT) Received: from linux6.. (unknown [9.114.12.104]) by d06av25.portsmouth.uk.ibm.com (Postfix) with ESMTP; Thu, 10 Mar 2022 11:09:04 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type : content-transfer-encoding; s=pp1; bh=CGsrTlhSK1ihP9wrviRSavU7b2Rd7SevBe4A9Tix4ZA=; b=FomMZ3WRXcjED4hvAnqOMrHkv1KlFKhXhj/yNz/aRlfg+zjC3u5dvb3s8vG99Y2j+NXH MU/HZvIaRGTviFzo2po9uR+xsX+6rQE5wbEPLXNimHJV1NSrddG9MyThKeMgCxwUDAYK NZ0VllRav6yWRCqt8JC8rKEXbxZJk1IMeJVPvgbxU0lzT4nl9emjtnkbFgwGWPQgWYN/ zYkjplWzju/sqvgb2T9GF5zHzzXT4W7zTkmdxYA1jW7ojs6CLaujpo7Ewf3UGo6TC8I0 sCD6HHBPu01LH2C69IJgiGDfo4iU4tTqGYC3XOH11CVB4qJ6HHe/vJ23CjxuPNKOZlTd Pg== From: Janosch Frank To: qemu-devel@nongnu.org Subject: [PATCH v2 5/9] dump: Add more offset variables Date: Thu, 10 Mar 2022 11:08:50 +0000 Message-Id: <20220310110854.2701-6-frankja@linux.ibm.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220310110854.2701-1-frankja@linux.ibm.com> References: <20220310110854.2701-1-frankja@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: Lwua8eaIV58cz95hnyRNfmNQXQ060H3u X-Proofpoint-GUID: HWekw5xDcG74T1CyIDV-Uoha1OFHa3Lr X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.816,Hydra:6.0.425,FMLib:17.11.64.514 definitions=2022-03-10_03,2022-03-09_01,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 malwarescore=0 impostorscore=0 clxscore=1015 spamscore=0 adultscore=0 priorityscore=1501 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203100059 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=frankja@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: marcandre.lureau@redhat.com, pbonzini@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1646910720985100001 Offset calculations are easy enough to get wrong. Let's add a few variables to make moving around elf headers and data sections easier. Signed-off-by: Janosch Frank Reviewed-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Richard Henderson --- dump/dump.c | 35 +++++++++++++++-------------------- include/sysemu/dump.h | 4 ++++ 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/dump/dump.c b/dump/dump.c index 316c636f24..12b3a1a83e 100644 --- a/dump/dump.c +++ b/dump/dump.c @@ -137,13 +137,11 @@ static void write_elf64_header(DumpState *s, Error **= errp) elf_header.e_machine =3D cpu_to_dump16(s, s->dump_info.d_machine); elf_header.e_version =3D cpu_to_dump32(s, EV_CURRENT); elf_header.e_ehsize =3D cpu_to_dump16(s, sizeof(elf_header)); - elf_header.e_phoff =3D cpu_to_dump64(s, sizeof(Elf64_Ehdr)); + elf_header.e_phoff =3D cpu_to_dump64(s, s->phdr_offset); elf_header.e_phentsize =3D cpu_to_dump16(s, sizeof(Elf64_Phdr)); elf_header.e_phnum =3D cpu_to_dump16(s, phnum); if (s->shdr_num) { - uint64_t shoff =3D sizeof(Elf64_Ehdr) + sizeof(Elf64_Phdr) * s->ph= dr_num; - - elf_header.e_shoff =3D cpu_to_dump64(s, shoff); + elf_header.e_shoff =3D cpu_to_dump64(s, s->shdr_offset); elf_header.e_shentsize =3D cpu_to_dump16(s, sizeof(Elf64_Shdr)); elf_header.e_shnum =3D cpu_to_dump16(s, s->shdr_num); } @@ -169,13 +167,11 @@ static void write_elf32_header(DumpState *s, Error **= errp) elf_header.e_machine =3D cpu_to_dump16(s, s->dump_info.d_machine); elf_header.e_version =3D cpu_to_dump32(s, EV_CURRENT); elf_header.e_ehsize =3D cpu_to_dump16(s, sizeof(elf_header)); - elf_header.e_phoff =3D cpu_to_dump32(s, sizeof(Elf32_Ehdr)); + elf_header.e_phoff =3D cpu_to_dump32(s, s->phdr_offset); elf_header.e_phentsize =3D cpu_to_dump16(s, sizeof(Elf32_Phdr)); elf_header.e_phnum =3D cpu_to_dump16(s, phnum); if (s->shdr_num) { - uint32_t shoff =3D sizeof(Elf32_Ehdr) + sizeof(Elf32_Phdr) * s->ph= dr_num; - - elf_header.e_shoff =3D cpu_to_dump32(s, shoff); + elf_header.e_shoff =3D cpu_to_dump32(s, s->shdr_offset); elf_header.e_shentsize =3D cpu_to_dump16(s, sizeof(Elf32_Shdr)); elf_header.e_shnum =3D cpu_to_dump16(s, s->shdr_num); } @@ -238,12 +234,11 @@ static void write_elf32_load(DumpState *s, MemoryMapp= ing *memory_mapping, static void write_elf64_note(DumpState *s, Error **errp) { Elf64_Phdr phdr; - hwaddr begin =3D s->memory_offset - s->note_size; int ret; =20 memset(&phdr, 0, sizeof(Elf64_Phdr)); phdr.p_type =3D cpu_to_dump32(s, PT_NOTE); - phdr.p_offset =3D cpu_to_dump64(s, begin); + phdr.p_offset =3D cpu_to_dump64(s, s->note_offset); phdr.p_paddr =3D 0; phdr.p_filesz =3D cpu_to_dump64(s, s->note_size); phdr.p_memsz =3D cpu_to_dump64(s, s->note_size); @@ -303,13 +298,12 @@ static void write_elf64_notes(WriteCoreDumpFunction f= , DumpState *s, =20 static void write_elf32_note(DumpState *s, Error **errp) { - hwaddr begin =3D s->memory_offset - s->note_size; Elf32_Phdr phdr; int ret; =20 memset(&phdr, 0, sizeof(Elf32_Phdr)); phdr.p_type =3D cpu_to_dump32(s, PT_NOTE); - phdr.p_offset =3D cpu_to_dump32(s, begin); + phdr.p_offset =3D cpu_to_dump32(s, s->note_offset); phdr.p_paddr =3D 0; phdr.p_filesz =3D cpu_to_dump32(s, s->note_size); phdr.p_memsz =3D cpu_to_dump32(s, s->note_size); @@ -1808,15 +1802,16 @@ static void dump_init(DumpState *s, int fd, bool ha= s_format, } =20 if (s->dump_info.d_class =3D=3D ELFCLASS64) { - s->memory_offset =3D sizeof(Elf64_Ehdr) + - sizeof(Elf64_Phdr) * s->phdr_num + - sizeof(Elf64_Shdr) * s->shdr_num + - s->note_size; + s->phdr_offset =3D sizeof(Elf64_Ehdr); + s->shdr_offset =3D s->phdr_offset + sizeof(Elf64_Phdr) * s->phdr_n= um; + s->note_offset =3D s->shdr_offset + sizeof(Elf64_Shdr) * s->shdr_n= um; + s->memory_offset =3D s->note_offset + s->note_size; } else { - s->memory_offset =3D sizeof(Elf32_Ehdr) + - sizeof(Elf32_Phdr) * s->phdr_num + - sizeof(Elf32_Shdr) * s->shdr_num + - s->note_size; + + s->phdr_offset =3D sizeof(Elf32_Ehdr); + s->shdr_offset =3D s->phdr_offset + sizeof(Elf32_Phdr) * s->phdr_n= um; + s->note_offset =3D s->shdr_offset + sizeof(Elf32_Shdr) * s->shdr_n= um; + s->memory_offset =3D s->note_offset + s->note_size; } =20 return; diff --git a/include/sysemu/dump.h b/include/sysemu/dump.h index 19458bffbd..ffc2ea1072 100644 --- a/include/sysemu/dump.h +++ b/include/sysemu/dump.h @@ -159,6 +159,10 @@ typedef struct DumpState { bool resume; bool detached; ssize_t note_size; + hwaddr shdr_offset; + hwaddr phdr_offset; + hwaddr section_offset; + hwaddr note_offset; hwaddr memory_offset; int fd; =20 --=20 2.32.0 From nobody Sun May 19 02:06:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1646910882; cv=none; d=zohomail.com; s=zohoarc; b=Mqv7j9AErQXQvHgG1f3cBxyBLCDEXUaNFyMJoiGZb3B3ivGNKT0LjHy/ExKm2zCYBvE9Y3WexL3K3rajeLnO5J3mycbpm6CM9SmZiVscVspVd8/C34RpKpyv0QX3LjUdcOzlhHcWMjKAq/CvcuZP9f82U3V+53cf9PDROpd7aFw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1646910882; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=u5Gi7ccqvYbGC4XJBpuFuWT7Fab4qX61E/HIb3xdbRQ=; b=kTJGDSQPk+vMBBnAvh1EI+/cGyhCjKBxVd4SW8dMtZ6SQ9NOl+BykrQCbhI9lZUOdoVwCurvW2jM95I2P0yBXzYKsY+oxLlgLbouQKNSiGl4C8lNq2+0CZkTDV9abgevPwYWF7wxb5dW9dQr6tfKNJ7kXHlw14p3+z/2R67uwQY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1646910882959585.4514520141624; Thu, 10 Mar 2022 03:14:42 -0800 (PST) Received: from localhost ([::1]:52944 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nSGkk-0007ms-KJ for importer@patchew.org; Thu, 10 Mar 2022 06:14:42 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46510) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSGfS-0007Ea-9D for qemu-devel@nongnu.org; Thu, 10 Mar 2022 06:09:14 -0500 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:30538) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSGfP-0004eL-Bn for qemu-devel@nongnu.org; Thu, 10 Mar 2022 06:09:13 -0500 Received: from pps.filterd (m0127361.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22A9SjHA025706 for ; Thu, 10 Mar 2022 11:09:10 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 3enywa31c5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 10 Mar 2022 11:09:10 +0000 Received: from m0127361.ppops.net (m0127361.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.43/8.16.0.43) with SMTP id 22AAR2Yx015768 for ; Thu, 10 Mar 2022 11:09:10 GMT Received: from ppma05fra.de.ibm.com (6c.4a.5195.ip4.static.sl-reverse.com [149.81.74.108]) by mx0a-001b2d01.pphosted.com with ESMTP id 3enywa31br-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 11:09:09 +0000 Received: from pps.filterd (ppma05fra.de.ibm.com [127.0.0.1]) by ppma05fra.de.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 22AB3uA6032442; Thu, 10 Mar 2022 11:09:08 GMT Received: from b06cxnps4074.portsmouth.uk.ibm.com (d06relay11.portsmouth.uk.ibm.com [9.149.109.196]) by ppma05fra.de.ibm.com with ESMTP id 3epysw9h3b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 11:09:08 +0000 Received: from d06av25.portsmouth.uk.ibm.com (d06av25.portsmouth.uk.ibm.com [9.149.105.61]) by b06cxnps4074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 22AB96Rr46662124 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Mar 2022 11:09:06 GMT Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DE18D11C069; Thu, 10 Mar 2022 11:09:05 +0000 (GMT) Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 740EE11C066; Thu, 10 Mar 2022 11:09:05 +0000 (GMT) Received: from linux6.. (unknown [9.114.12.104]) by d06av25.portsmouth.uk.ibm.com (Postfix) with ESMTP; Thu, 10 Mar 2022 11:09:05 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=pp1; bh=u5Gi7ccqvYbGC4XJBpuFuWT7Fab4qX61E/HIb3xdbRQ=; b=ddUJB23poUIx0sNCWssUmvYKaymwXTLjGaKelrrs3+CYyVmZEH+QuJdTQMhDyUsi1/Df 96FdI5eA8TN0yLmadf131FHPUBvRD8XDEuroCgA23FazLCTOFuyYOFmzSERE1DO4KlUA OVY3ftNoSb9SAJl+dqNOpZqB5MfIGFuzfeiK1W85cV0X4QpdHsy28JVnlhQJbV97eVLq k9nrjtJalFoD8dKkAm86af+wWvzxQlAUjqQmwpQtnbmbBKsnaTlPJdLbSLWiOKghmJgR D4aCuDstWG5m3zy//HclsaKzS9jOgBdek9gKm4kZtD8KQbnUXgeOhCFY9JMr8ra/30DC SA== From: Janosch Frank To: qemu-devel@nongnu.org Subject: [PATCH v2 6/9] dump: Introduce dump_is_64bit() helper function Date: Thu, 10 Mar 2022 11:08:51 +0000 Message-Id: <20220310110854.2701-7-frankja@linux.ibm.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220310110854.2701-1-frankja@linux.ibm.com> References: <20220310110854.2701-1-frankja@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-GUID: Yz85ua-QQFymzqgC6Hm1Jh1VvAg7NbP_ X-Proofpoint-ORIG-GUID: Y4hRCkcAxxxizE16r8FZxJklyoTnVCNY X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.816,Hydra:6.0.425,FMLib:17.11.64.514 definitions=2022-03-10_03,2022-03-09_01,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 mlxscore=0 clxscore=1015 malwarescore=0 bulkscore=0 impostorscore=0 suspectscore=0 mlxlogscore=809 phishscore=0 priorityscore=1501 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203100059 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=frankja@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: marcandre.lureau@redhat.com, pbonzini@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1646910905905100003 Content-Type: text/plain; charset="utf-8" Checking d_class in dump_info leads to lengthy conditionals so let's shorten things a bit by introducing a helper function. Signed-off-by: Janosch Frank Reviewed-by: Richard Henderson --- dump/dump.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/dump/dump.c b/dump/dump.c index 12b3a1a83e..8fcd23571f 100644 --- a/dump/dump.c +++ b/dump/dump.c @@ -55,6 +55,11 @@ static Error *dump_migration_blocker; DIV_ROUND_UP((name_size), 4) + \ DIV_ROUND_UP((desc_size), 4)) * 4) =20 +static inline bool dump_is_64bit(DumpState *s) +{ + return s->dump_info.d_class =3D=3D ELFCLASS64; +} + uint16_t cpu_to_dump16(DumpState *s, uint16_t val) { if (s->dump_info.d_endian =3D=3D ELFDATA2LSB) { @@ -479,7 +484,7 @@ static void write_elf_loads(DumpState *s, Error **errp) get_offset_range(memory_mapping->phys_addr, memory_mapping->length, s, &offset, &filesz); - if (s->dump_info.d_class =3D=3D ELFCLASS64) { + if (dump_is_64bit(s)) { write_elf64_load(s, memory_mapping, phdr_index++, offset, filesz, errp); } else { @@ -527,7 +532,7 @@ static void dump_begin(DumpState *s, Error **errp) */ =20 /* write elf header to vmcore */ - if (s->dump_info.d_class =3D=3D ELFCLASS64) { + if (dump_is_64bit(s)) { write_elf64_header(s, errp); } else { write_elf32_header(s, errp); @@ -536,7 +541,7 @@ static void dump_begin(DumpState *s, Error **errp) return; } =20 - if (s->dump_info.d_class =3D=3D ELFCLASS64) { + if (dump_is_64bit(s)) { /* write PT_NOTE to vmcore */ write_elf64_note(s, errp); if (*errp) { @@ -747,7 +752,7 @@ static void get_note_sizes(DumpState *s, const void *no= te, uint64_t name_sz; uint64_t desc_sz; =20 - if (s->dump_info.d_class =3D=3D ELFCLASS64) { + if (dump_is_64bit(s)) { const Elf64_Nhdr *hdr =3D note; note_head_sz =3D sizeof(Elf64_Nhdr); name_sz =3D tswap64(hdr->n_namesz); @@ -1007,7 +1012,7 @@ out: =20 static void write_dump_header(DumpState *s, Error **errp) { - if (s->dump_info.d_class =3D=3D ELFCLASS32) { + if (!dump_is_64bit(s)) { create_header32(s, errp); } else { create_header64(s, errp); @@ -1697,7 +1702,7 @@ static void dump_init(DumpState *s, int fd, bool has_= format, uint32_t size; uint16_t format; =20 - note_head_size =3D s->dump_info.d_class =3D=3D ELFCLASS32 ? + note_head_size =3D !dump_is_64bit(s) ? sizeof(Elf32_Nhdr) : sizeof(Elf64_Nhdr); =20 format =3D le16_to_cpu(vmci->vmcoreinfo.guest_format); @@ -1801,7 +1806,7 @@ static void dump_init(DumpState *s, int fd, bool has_= format, } } =20 - if (s->dump_info.d_class =3D=3D ELFCLASS64) { + if (dump_is_64bit(s)) { s->phdr_offset =3D sizeof(Elf64_Ehdr); s->shdr_offset =3D s->phdr_offset + sizeof(Elf64_Phdr) * s->phdr_n= um; s->note_offset =3D s->shdr_offset + sizeof(Elf64_Shdr) * s->shdr_n= um; --=20 2.32.0 From nobody Sun May 19 02:06:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1646911062; cv=none; d=zohomail.com; s=zohoarc; b=cdxyINlAJv1PnQdzCeFeRSeGEvXl5hMe0DzchHM2+L7Qomnz7uFR0+bkAnjofWZc0b5FatKx+SkzglEikNA+6Nt9IUJTOyowNNc0R05n9AdOtlQ08Mnudw/KrObGOvetyG2w0gBmV38nPOTOIp2uUf8mFl9bamn40unD3244K5w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1646911062; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=AXpqr565e4vBBEV0/zJIx/jFY80xvyCw3TZZK5liE+M=; b=Y7aqMmpHGzghknluNRRtIUpDMqnkV57K+kvHloXkHGL8yov8BD3ZboLTHmhPmXTKKJpImEHpWUfHTZlDLdI3xZ7JzAsWX4PPl+en3SWnuKsYoLMs8+8eChwPjSrLpTqS6zaDuziHyG5zu33UUhzCJYSLPzokuCxoyLJdkHPRQ/k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1646911062325134.15455348020646; Thu, 10 Mar 2022 03:17:42 -0800 (PST) Received: from localhost ([::1]:32776 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nSGnc-00054n-HP for importer@patchew.org; Thu, 10 Mar 2022 06:17:40 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46566) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSGfT-0007Ht-KS for qemu-devel@nongnu.org; Thu, 10 Mar 2022 06:09:15 -0500 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:35268) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSGfQ-0004eR-2o for qemu-devel@nongnu.org; Thu, 10 Mar 2022 06:09:15 -0500 Received: from pps.filterd (m0127361.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22AAFPC5011045 for ; Thu, 10 Mar 2022 11:09:11 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 3enywa31ce-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 10 Mar 2022 11:09:11 +0000 Received: from m0127361.ppops.net (m0127361.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.43/8.16.0.43) with SMTP id 22AAXGQx036164 for ; Thu, 10 Mar 2022 11:09:10 GMT Received: from ppma05fra.de.ibm.com (6c.4a.5195.ip4.static.sl-reverse.com [149.81.74.108]) by mx0a-001b2d01.pphosted.com with ESMTP id 3enywa31bx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 11:09:10 +0000 Received: from pps.filterd (ppma05fra.de.ibm.com [127.0.0.1]) by ppma05fra.de.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 22AB3itY031973; Thu, 10 Mar 2022 11:09:09 GMT Received: from b06cxnps4075.portsmouth.uk.ibm.com (d06relay12.portsmouth.uk.ibm.com [9.149.109.197]) by ppma05fra.de.ibm.com with ESMTP id 3epysw9h3d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 11:09:08 +0000 Received: from d06av25.portsmouth.uk.ibm.com (d06av25.portsmouth.uk.ibm.com [9.149.105.61]) by b06cxnps4075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 22AB96Sc33423790 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Mar 2022 11:09:06 GMT Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7A7E511C06C; Thu, 10 Mar 2022 11:09:06 +0000 (GMT) Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 1034411C066; Thu, 10 Mar 2022 11:09:06 +0000 (GMT) Received: from linux6.. (unknown [9.114.12.104]) by d06av25.portsmouth.uk.ibm.com (Postfix) with ESMTP; Thu, 10 Mar 2022 11:09:05 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=pp1; bh=AXpqr565e4vBBEV0/zJIx/jFY80xvyCw3TZZK5liE+M=; b=mjHJVIec5UcvkndBwVjpfCGrJtPXlwzw/cO94ScWyRAhEIubNvHnWTUcyh+pIdoO1E8A wzt1AMgz8hCVnxKewyLKsj/MzY9nV1aRXBPP1QiOkeRP4U3Ihi7P6Qeknmdw6y6LoWvs AHamV+Sg5W+OKnA+7VYVJu1DNbnCZeHXBG0m4xoLVcCgB/x+hDpZelmfiAoiWvsF5Oua Yd0Fo6BQCcOv0lBWpjnygW5ohqYApXs3R+zQAvC4GkfidCOv05uF9qsvD6jLXq4Nw4fx SnWa6lo06lllGoG8tSA5wwecRJcpKzw2iekkf4PiLW3O3zAoMaZvGH1wbagjlsOxan8G PA== From: Janosch Frank To: qemu-devel@nongnu.org Subject: [PATCH v2 7/9] dump: Consolidate phdr note writes Date: Thu, 10 Mar 2022 11:08:52 +0000 Message-Id: <20220310110854.2701-8-frankja@linux.ibm.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220310110854.2701-1-frankja@linux.ibm.com> References: <20220310110854.2701-1-frankja@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-GUID: dQz101VxhRZYk6WLlLo0o9ArNuX76hdE X-Proofpoint-ORIG-GUID: T63A-o5u-5HYVWf6Kbc6-e85E3x0b04C X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.816,Hydra:6.0.425,FMLib:17.11.64.514 definitions=2022-03-10_03,2022-03-09_01,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 mlxscore=0 clxscore=1015 malwarescore=0 bulkscore=0 impostorscore=0 suspectscore=0 mlxlogscore=662 phishscore=0 priorityscore=1501 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203100059 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=frankja@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: marcandre.lureau@redhat.com, pbonzini@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1646911062682100001 Content-Type: text/plain; charset="utf-8" There's no need to have two write functions. Let's rather have two functions that set the data for elf 32/64 and then write it in a common function. Signed-off-by: Janosch Frank Reviewed-by: Richard Henderson --- dump/dump.c | 94 +++++++++++++++++++++++++++-------------------------- 1 file changed, 48 insertions(+), 46 deletions(-) diff --git a/dump/dump.c b/dump/dump.c index 8fcd23571f..1294673444 100644 --- a/dump/dump.c +++ b/dump/dump.c @@ -236,24 +236,15 @@ static void write_elf32_load(DumpState *s, MemoryMapp= ing *memory_mapping, } } =20 -static void write_elf64_note(DumpState *s, Error **errp) +static void write_elf64_phdr_note(DumpState *s, Elf64_Phdr *phdr) { - Elf64_Phdr phdr; - int ret; - - memset(&phdr, 0, sizeof(Elf64_Phdr)); - phdr.p_type =3D cpu_to_dump32(s, PT_NOTE); - phdr.p_offset =3D cpu_to_dump64(s, s->note_offset); - phdr.p_paddr =3D 0; - phdr.p_filesz =3D cpu_to_dump64(s, s->note_size); - phdr.p_memsz =3D cpu_to_dump64(s, s->note_size); - phdr.p_vaddr =3D 0; - - ret =3D fd_write_vmcore(&phdr, sizeof(Elf64_Phdr), s); - if (ret < 0) { - error_setg_errno(errp, -ret, - "dump: failed to write program header table"); - } + memset(phdr, 0, sizeof(*phdr)); + phdr->p_type =3D cpu_to_dump32(s, PT_NOTE); + phdr->p_offset =3D cpu_to_dump64(s, s->note_offset); + phdr->p_paddr =3D 0; + phdr->p_filesz =3D cpu_to_dump64(s, s->note_size); + phdr->p_memsz =3D cpu_to_dump64(s, s->note_size); + phdr->p_vaddr =3D 0; } =20 static inline int cpu_index(CPUState *cpu) @@ -301,24 +292,15 @@ static void write_elf64_notes(WriteCoreDumpFunction f= , DumpState *s, write_guest_note(f, s, errp); } =20 -static void write_elf32_note(DumpState *s, Error **errp) +static void write_elf32_phdr_note(DumpState *s, Elf32_Phdr *phdr) { - Elf32_Phdr phdr; - int ret; - - memset(&phdr, 0, sizeof(Elf32_Phdr)); - phdr.p_type =3D cpu_to_dump32(s, PT_NOTE); - phdr.p_offset =3D cpu_to_dump32(s, s->note_offset); - phdr.p_paddr =3D 0; - phdr.p_filesz =3D cpu_to_dump32(s, s->note_size); - phdr.p_memsz =3D cpu_to_dump32(s, s->note_size); - phdr.p_vaddr =3D 0; - - ret =3D fd_write_vmcore(&phdr, sizeof(Elf32_Phdr), s); - if (ret < 0) { - error_setg_errno(errp, -ret, - "dump: failed to write program header table"); - } + memset(phdr, 0, sizeof(*phdr)); + phdr->p_type =3D cpu_to_dump32(s, PT_NOTE); + phdr->p_offset =3D cpu_to_dump32(s, s->note_offset); + phdr->p_paddr =3D 0; + phdr->p_filesz =3D cpu_to_dump32(s, s->note_size); + phdr->p_memsz =3D cpu_to_dump32(s, s->note_size); + phdr->p_vaddr =3D 0; } =20 static void write_elf32_notes(WriteCoreDumpFunction f, DumpState *s, @@ -348,6 +330,32 @@ static void write_elf32_notes(WriteCoreDumpFunction f,= DumpState *s, write_guest_note(f, s, errp); } =20 +static void write_elf_phdr_note(DumpState *s, Error **errp) +{ + ERRP_GUARD(); + Elf32_Phdr phdr32; + Elf64_Phdr phdr64; + void *phdr; + size_t size; + int ret; + + if (dump_is_64bit(s)) { + write_elf64_phdr_note(s, &phdr64); + size =3D sizeof(phdr64); + phdr =3D &phdr64; + } else { + write_elf32_phdr_note(s, &phdr32); + size =3D sizeof(phdr32); + phdr =3D &phdr32; + } + + ret =3D fd_write_vmcore(phdr, size, s); + if (ret < 0) { + error_setg_errno(errp, -ret, + "dump: failed to write program header table"); + } +} + static void write_elf_section(DumpState *s, int type, Error **errp) { Elf32_Shdr shdr32; @@ -541,13 +549,13 @@ static void dump_begin(DumpState *s, Error **errp) return; } =20 - if (dump_is_64bit(s)) { - /* write PT_NOTE to vmcore */ - write_elf64_note(s, errp); - if (*errp) { - return; - } + /* write PT_NOTE to vmcore */ + write_elf_phdr_note(s, errp); + if (*errp) { + return; + } =20 + if (dump_is_64bit(s)) { /* write all PT_LOAD to vmcore */ write_elf_loads(s, errp); if (*errp) { @@ -568,12 +576,6 @@ static void dump_begin(DumpState *s, Error **errp) return; } } else { - /* write PT_NOTE to vmcore */ - write_elf32_note(s, errp); - if (*errp) { - return; - } - /* write all PT_LOAD to vmcore */ write_elf_loads(s, errp); if (*errp) { --=20 2.32.0 From nobody Sun May 19 02:06:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1646910893; cv=none; d=zohomail.com; s=zohoarc; b=L/z8AXPDz/qZJY9fC3BXxUwGEMuMehAP5/ves3GllAuyAO+CqMd+nqvLWD2xWefw6HH15Q1Ob8GqU/h7gWdyKsTDtj0WLSyCrGjrNqshR6mvlsCTvkckR+MulE4RaDR8IBC2mMGH9VlYC/58k1d9lwFfNixlzGBKzanI6QlVXYY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1646910893; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=lbWgJpVUEzAhvhhYex9+Qvx1UZNULxfMjXB2jxtflUE=; b=gpfnoUM+PkRx0P+uvamF2x01sPV+dWpEvenyU7Y0oEYE0oDw/T2V8W20uTSAVwo9m+J6+xcIyQHZm9d/kTYbKJHWubZ9C4pONfBwUdx7HxAcZ6ue5Wm0EGzwPgl6mpJwUzwAYXoOiTkYMyPrHDSb4J/yOaH12AkpOB4ONygU69k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16469108930396.261382815987417; Thu, 10 Mar 2022 03:14:53 -0800 (PST) Received: from localhost ([::1]:53586 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nSGkt-0008En-Rx for importer@patchew.org; Thu, 10 Mar 2022 06:14:51 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46560) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSGfT-0007HO-Fz for qemu-devel@nongnu.org; Thu, 10 Mar 2022 06:09:15 -0500 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:58090) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSGfQ-0004eV-Hu for qemu-devel@nongnu.org; Thu, 10 Mar 2022 06:09:15 -0500 Received: from pps.filterd (m0098417.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22AABZn5022064 for ; Thu, 10 Mar 2022 11:09:11 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 3eqcyy46n6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 10 Mar 2022 11:09:11 +0000 Received: from m0098417.ppops.net (m0098417.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.43/8.16.0.43) with SMTP id 22AArNCu017183 for ; Thu, 10 Mar 2022 11:09:11 GMT Received: from ppma06ams.nl.ibm.com (66.31.33a9.ip4.static.sl-reverse.com [169.51.49.102]) by mx0a-001b2d01.pphosted.com with ESMTP id 3eqcyy46mq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 11:09:11 +0000 Received: from pps.filterd (ppma06ams.nl.ibm.com [127.0.0.1]) by ppma06ams.nl.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 22AB3HRf031168; Thu, 10 Mar 2022 11:09:09 GMT Received: from b06cxnps3074.portsmouth.uk.ibm.com (d06relay09.portsmouth.uk.ibm.com [9.149.109.194]) by ppma06ams.nl.ibm.com with ESMTP id 3eky4j4gs2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 11:09:09 +0000 Received: from d06av25.portsmouth.uk.ibm.com (d06av25.portsmouth.uk.ibm.com [9.149.105.61]) by b06cxnps3074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 22AB97GR16843026 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Mar 2022 11:09:07 GMT Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 1683311C069; Thu, 10 Mar 2022 11:09:07 +0000 (GMT) Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A0D5F11C066; Thu, 10 Mar 2022 11:09:06 +0000 (GMT) Received: from linux6.. (unknown [9.114.12.104]) by d06av25.portsmouth.uk.ibm.com (Postfix) with ESMTP; Thu, 10 Mar 2022 11:09:06 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=pp1; bh=lbWgJpVUEzAhvhhYex9+Qvx1UZNULxfMjXB2jxtflUE=; b=ksh7KgCLUI3PbhMYVmyQ8LIAwsLfwYu6sJhKfKMnZehEyoBKPee7QNydzJZDE8eaFyj3 FRdKeIYICKe1RnSdnSy/5rrQmcrJe/5uHxkbb2ISeB0cSwDWZQ2q0T5JwAbVP4RXgz3T GCJisfQRuAPtgFkqx8D3agpuSk/rf7cdngiv23GuIX2hnEYzOvT9Cl3V5d2L1rQ2+G0H pWvf3vT7IXKNRDityTz1fob2UbMk5f4Dks13OclTffn1WzrwtgjP+vYm946kaYNkAT43 ZenyhYXyjOOoT40uxhKKIVR+hEeJ+t4GlWw5Sw6v/IUf5gNshUwoyyAMau3RedPJA9ZW IA== From: Janosch Frank To: qemu-devel@nongnu.org Subject: [PATCH v2 8/9] dump: Cleanup dump_begin write functions Date: Thu, 10 Mar 2022 11:08:53 +0000 Message-Id: <20220310110854.2701-9-frankja@linux.ibm.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220310110854.2701-1-frankja@linux.ibm.com> References: <20220310110854.2701-1-frankja@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: G8KzOMk7oABGeb0-RTj3pXppewwDVzx2 X-Proofpoint-GUID: LNIuf2PSam4b4wZBIUY2kwnOrGtyO8yB X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.816,Hydra:6.0.425,FMLib:17.11.64.514 definitions=2022-03-10_03,2022-03-09_01,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 bulkscore=0 impostorscore=0 malwarescore=0 mlxlogscore=861 clxscore=1015 adultscore=0 lowpriorityscore=0 mlxscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203100059 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=frankja@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: marcandre.lureau@redhat.com, pbonzini@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1646910895209100003 Content-Type: text/plain; charset="utf-8" There's no need to have a gigantic if in there let's move the elf 32/64 bit logic into the section, segment or note code. Signed-off-by: Janosch Frank Reviewed-by: Richard Henderson --- dump/dump.c | 42 +++++++++++------------------------------- 1 file changed, 11 insertions(+), 31 deletions(-) diff --git a/dump/dump.c b/dump/dump.c index 1294673444..5542adf7b8 100644 --- a/dump/dump.c +++ b/dump/dump.c @@ -555,46 +555,26 @@ static void dump_begin(DumpState *s, Error **errp) return; } =20 - if (dump_is_64bit(s)) { - /* write all PT_LOAD to vmcore */ - write_elf_loads(s, errp); + /* write all PT_LOAD to vmcore */ + write_elf_loads(s, errp); + if (*errp) { + return; + } + + /* write section to vmcore */ + if (s->shdr_num) { + write_elf_section(s, 1, errp); if (*errp) { return; } + } =20 - /* write section to vmcore */ - if (s->shdr_num) { - write_elf_section(s, 1, errp); - if (*errp) { - return; - } - } - + if (dump_is_64bit(s)) { /* write notes to vmcore */ write_elf64_notes(fd_write_vmcore, s, errp); - if (*errp) { - return; - } } else { - /* write all PT_LOAD to vmcore */ - write_elf_loads(s, errp); - if (*errp) { - return; - } - - /* write section to vmcore */ - if (s->shdr_num) { - write_elf_section(s, 0, errp); - if (*errp) { - return; - } - } - /* write notes to vmcore */ write_elf32_notes(fd_write_vmcore, s, errp); - if (*errp) { - return; - } } } =20 --=20 2.32.0 From nobody Sun May 19 02:06:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1646910832; cv=none; d=zohomail.com; s=zohoarc; b=MzgV1PTMs2Nt1YNoPPMi81Rnl6TKcHy+cU920e4OwQm6V060NrMYyVqo6orxwE5xCvBF5Hb16/ubXmbrQgVfoqw5F/VjEPHyPMNVvIuqUf7CJF7dm23yG6YN68KjK+6AwJy1TBMZXPLKK3mvKbqQXJyfKhQh6r3Cz2V4/KSCvrU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1646910832; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=mAMCXXM5QvWIMws42WcrOmY8iDqMMvPSE8T4WmQHNFA=; b=cUf8NpBfBEswksCJPfDe+0Z0OzWZpF8y21tSib1PeD+XwJQ+Ua2IkGj5HvYZbPd0aM6pf5jNzhZebHzCXGyL/5iE+gvzghBbvJgv9bqXuHk2V8dtDpRlvP5n23T/mFquWd50561ZPGeuvXnZSRqC4ClZYj3V/kfRcj/24JEqsts= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1646910832485193.25343921004242; Thu, 10 Mar 2022 03:13:52 -0800 (PST) Received: from localhost ([::1]:50618 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nSGjv-00068a-TZ for importer@patchew.org; Thu, 10 Mar 2022 06:13:51 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46554) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSGfT-0007Gx-Bc for qemu-devel@nongnu.org; Thu, 10 Mar 2022 06:09:15 -0500 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:56978) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSGfR-0004ej-4h for qemu-devel@nongnu.org; Thu, 10 Mar 2022 06:09:15 -0500 Received: from pps.filterd (m0127361.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22A8sO8s011063 for ; Thu, 10 Mar 2022 11:09:12 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 3enywa31cr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 10 Mar 2022 11:09:12 +0000 Received: from m0127361.ppops.net (m0127361.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.43/8.16.0.43) with SMTP id 22AAR2Z1015768 for ; Thu, 10 Mar 2022 11:09:11 GMT Received: from ppma06ams.nl.ibm.com (66.31.33a9.ip4.static.sl-reverse.com [169.51.49.102]) by mx0a-001b2d01.pphosted.com with ESMTP id 3enywa31ca-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 11:09:11 +0000 Received: from pps.filterd (ppma06ams.nl.ibm.com [127.0.0.1]) by ppma06ams.nl.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 22AB3UnU031219; Thu, 10 Mar 2022 11:09:10 GMT Received: from b06cxnps3074.portsmouth.uk.ibm.com (d06relay09.portsmouth.uk.ibm.com [9.149.109.194]) by ppma06ams.nl.ibm.com with ESMTP id 3eky4j4gs4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 11:09:09 +0000 Received: from d06av25.portsmouth.uk.ibm.com (d06av25.portsmouth.uk.ibm.com [9.149.105.61]) by b06cxnps3074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 22AB97ha19005858 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Mar 2022 11:09:07 GMT Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A747711C06E; Thu, 10 Mar 2022 11:09:07 +0000 (GMT) Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3CE9911C066; Thu, 10 Mar 2022 11:09:07 +0000 (GMT) Received: from linux6.. (unknown [9.114.12.104]) by d06av25.portsmouth.uk.ibm.com (Postfix) with ESMTP; Thu, 10 Mar 2022 11:09:07 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=pp1; bh=mAMCXXM5QvWIMws42WcrOmY8iDqMMvPSE8T4WmQHNFA=; b=X7NqBXtmX8jMgyvyZJ53bSetQmxVzQ7Bk5jTzLdM8iGhvL2QZYOEszWYJpE4wF1UBC5S TN1UB4jAuoCSNZFjmzPd+Yto0LTT+1Dhj6yvqXTXqpoxXKQAcfbB1I+pSPpx1isd4qqq waRvwp7neCHB9mxYnrrhgnf6yM/HRQEp/zOfniqHo90n9aT0PChOeRfcCGEKnXkcTUIV dPMNPUrCpwweDMUFFwpaM7yyBuHx1GaG04w3W1KPl3SI0RxCEwTJTu6na4JMB+Bt/20Y lkQIQIavynTHyA9MrZF2pJgViMxOrQEmc6FEwF7WW6ve9zsKn50jnanLSya5HkBUCtnN 0A== From: Janosch Frank To: qemu-devel@nongnu.org Subject: [PATCH v2 9/9] dump: Consolidate elf note function Date: Thu, 10 Mar 2022 11:08:54 +0000 Message-Id: <20220310110854.2701-10-frankja@linux.ibm.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220310110854.2701-1-frankja@linux.ibm.com> References: <20220310110854.2701-1-frankja@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-GUID: 6dVug4eMFtj-8MSVC473BTiW-4WWB8vo X-Proofpoint-ORIG-GUID: 6n2b17vamPE8GRyyFTtpx8Z9lFT4Mszh X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.816,Hydra:6.0.425,FMLib:17.11.64.514 definitions=2022-03-10_03,2022-03-09_01,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 mlxscore=0 clxscore=1015 malwarescore=0 bulkscore=0 impostorscore=0 suspectscore=0 mlxlogscore=685 phishscore=0 priorityscore=1501 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203100059 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=frankja@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: marcandre.lureau@redhat.com, pbonzini@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1646910844694100001 Content-Type: text/plain; charset="utf-8" Just like with the other write functions let's move the 32/64 bit elf handling to a function to improve readability. Signed-off-by: Janosch Frank --- dump/dump.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/dump/dump.c b/dump/dump.c index 5542adf7b8..ae8ec527de 100644 --- a/dump/dump.c +++ b/dump/dump.c @@ -510,6 +510,20 @@ static void write_elf_loads(DumpState *s, Error **errp) } } =20 +static void write_elf_notes(DumpState *s, Error **errp) +{ + ERRP_GUARD(); + + if (dump_is_64bit(s)) { + write_elf64_notes(fd_write_vmcore, s, errp); + } else { + write_elf32_notes(fd_write_vmcore, s, errp); + } + if (*errp) { + return; + } +} + /* write elf header, PT_NOTE and elf note to vmcore. */ static void dump_begin(DumpState *s, Error **errp) { @@ -569,13 +583,8 @@ static void dump_begin(DumpState *s, Error **errp) } } =20 - if (dump_is_64bit(s)) { - /* write notes to vmcore */ - write_elf64_notes(fd_write_vmcore, s, errp); - } else { - /* write notes to vmcore */ - write_elf32_notes(fd_write_vmcore, s, errp); - } + /* write notes to vmcore */ + write_elf_notes(s, errp); } =20 static int get_next_block(DumpState *s, GuestPhysBlock *block) --=20 2.32.0