Received: by 10.223.185.116 with SMTP id b49csp3918543wrg; Mon, 26 Feb 2018 08:12:23 -0800 (PST) X-Google-Smtp-Source: AH8x224zy+DQTfDiHf2IS8f9rukD3mJZY/gBxGZp24GTd33WsNEugz3nLp9+9Yidtv0yKpjCsA5J X-Received: by 10.98.10.219 with SMTP id 88mr11099028pfk.202.1519661543607; Mon, 26 Feb 2018 08:12:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519661543; cv=none; d=google.com; s=arc-20160816; b=ZgnS6MAfTk38QXeNCUsuuyTfBM94xgo0ItN0jvcx2vdxJ01wslV6k6vqPQ2cTW6Eyk 2HqeV2ZdOdgBj6F+LFq/lHMBfC5YwT0xOjxQBinCgHWv7bK/GDQsiBYoFAj5zqSJpY1f l6HKLZ1f8g8V3CWFnVfFTH/xv0uu4FALSd4VGSP/hFZzvLi5C8fJreQjjABUlgNW2qf8 TrOTNDsvNMqy1sOofucbqxAiIgLqquVNUrlj4cGjdrB7XjeHoMg4zItRTPPeliBIBr/6 DyBgD3FC777F7Aq5iRt234LdWiIDNdgiXobNLnQVaCgnQhhfx3yEtppAVTZLtU1k17/W Gt2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:content-transfer-encoding :mime-version:date:subject:cc:to:from:arc-authentication-results; bh=9pNj1UNcKKFucljbFGWC6ksFN2ILggn3VCQcRM3zjIw=; b=X2oQMwfRae66tDyOZUUXnSLALA3G5w+e8XFGaIKdvSnFyNnhr8QVV6Yb3BjPaXdiEy H0jG4Tx1wJNgXtoqcmTzglkYczJFDbtk/Rb0teI1tWhyGCRGBJf+Cn4yoBl0YBnQBMwY PjAvLOLc8zDeONkkk7wR2AZvCA21CfI0ox35rdB25wlQD8Ab8heloZofbzZ8ehYew7nK vDTB2jgO+FjK9aNmHvouwXKsQuw/ou15DIhkArrr55Cxwnh97oLftj7gS+E95ikRqE56 HIp8FKROiIyD/ryRnUCPUwVvbMEBeX76iheQPYUIn/F07J2x/aywa63tycATIIFvBsVX 0Szg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o74si6957332pfj.75.2018.02.26.08.12.08; Mon, 26 Feb 2018 08:12:23 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751610AbeBZQLV (ORCPT + 99 others); Mon, 26 Feb 2018 11:11:21 -0500 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:58984 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751463AbeBZQLT (ORCPT ); Mon, 26 Feb 2018 11:11:19 -0500 Received: from pps.filterd (m0098410.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w1QFBZ0r092500 for ; Mon, 26 Feb 2018 10:16:30 -0500 Received: from e06smtp10.uk.ibm.com (e06smtp10.uk.ibm.com [195.75.94.106]) by mx0a-001b2d01.pphosted.com with ESMTP id 2gcgv0avfh-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Mon, 26 Feb 2018 10:16:30 -0500 Received: from localhost by e06smtp10.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 26 Feb 2018 15:16:25 -0000 Received: from b06cxnps3075.portsmouth.uk.ibm.com (9.149.109.195) by e06smtp10.uk.ibm.com (192.168.101.140) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Mon, 26 Feb 2018 15:16:22 -0000 Received: from d06av23.portsmouth.uk.ibm.com (d06av23.portsmouth.uk.ibm.com [9.149.105.59]) by b06cxnps3075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w1QFGLpN65798382; Mon, 26 Feb 2018 15:16:21 GMT Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 190EDA4040; Mon, 26 Feb 2018 15:09:27 +0000 (GMT) Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9AD8EA4053; Mon, 26 Feb 2018 15:09:26 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9]) by d06av23.portsmouth.uk.ibm.com (Postfix) with ESMTPS; Mon, 26 Feb 2018 15:09:26 +0000 (GMT) From: Philipp Rudo To: kexec@lists.infradead.org, linux-s390@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Eric Biederman , Vivek Goyal , Michael Ellerman , Thiago Jung Bauermann , Martin Schwidefsky , Heiko Carstens , Andrew Morton , x86@kernel.org, Dave Young , AKASHI Takahiro Subject: [PATCH 00/11] kexec_file: Clean up purgatory load Date: Mon, 26 Feb 2018 16:16:09 +0100 X-Mailer: git-send-email 2.13.5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 x-cbid: 18022615-0040-0000-0000-00000416F7D7 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18022615-0041-0000-0000-0000261A19E1 Message-Id: <20180226151620.20970-1-prudo@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2018-02-26_05:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1709140000 definitions=main-1802260202 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi everybody following the discussion with Dave and AKASHI, here are the common code patches extracted from my recent patch set (Add kexec_file_load support to s390) [1]. The patches were extracted to allow upstream integration together with AKASHI's common code patches before the arch code gets adjusted to the new base. The reason for this series is to prepare common code for adding kexec_file_load to s390 as well as cleaning up the mis-use of the sh_offset field during purgatory load. In detail this series contains: Patch #1&2: Minor cleanups/fixes. Patch #3-9: Clean up the purgatory load/relocation code. Especially remove the mis-use of the purgatory_info->sechdrs->sh_offset field, currently holding a pointer into either kexec_purgatory (ro) or purgatory_buf (rw) depending on the section. With these patches the section address will be calculated verbosely and sh_offset will contain the offset of the section in the stripped purgatory binary (purgatory_buf). Patch #10: Allows architectures to set the purgatory load address. This patch is important for s390 as the kernel and purgatory have to be loaded to fixed addresses. In current code this is impossible as the purgatory load is opaque to the architecture. Patch #11: Moves x86 purgatories sha implementation to common lib/ directory to allow reuse in other architectures. The patches apply to v4.16-rc3. There are no changes compared to [1] (all requested changes only affected s390 code). Please note that I had to touch arch code for x86 and power a little. In theory this should not change the behavior but I don't have a way to test it. Cross-compiling with defconfig [2] works fine for both. Thanks Philipp [1] http://lists.infradead.org/pipermail/kexec/2018-February/019926.html [2] On x86 with the orc unwinder and stack validation turned off. objtool SEGFAULTs on s390... Philipp Rudo (11): kexec_file: Silence compile warnings kexec_file: Remove checks in kexec_purgatory_load kexec_file: Make purgatory_info->ehdr const kexec_file: Search symbols in read-only kexec_purgatory kexec_file: Use read-only sections in arch_kexec_apply_relocations* kexec_file: Split up __kexec_load_puragory kexec_file: Simplify kexec_purgatory_setup_sechdrs 1 kexec_file: Simplify kexec_purgatory_setup_sechdrs 2 kexec_file: Remove mis-use of sh_offset field kexec_file: Allow archs to set purgatory load address kexec_file: Move purgatories sha256 to common code arch/powerpc/kernel/kexec_elf_64.c | 9 +- arch/x86/kernel/kexec-bzimage64.c | 8 +- arch/x86/kernel/machine_kexec_64.c | 66 ++--- arch/x86/purgatory/Makefile | 3 + arch/x86/purgatory/purgatory.c | 2 +- include/linux/kexec.h | 38 +-- {arch/x86/purgatory => include/linux}/sha256.h | 10 +- kernel/kexec_file.c | 375 ++++++++++++------------- {arch/x86/purgatory => lib}/sha256.c | 4 +- 9 files changed, 244 insertions(+), 271 deletions(-) rename {arch/x86/purgatory => include/linux}/sha256.h (63%) rename {arch/x86/purgatory => lib}/sha256.c (99%) -- 2.13.5