Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp14052043pxu; Mon, 4 Jan 2021 11:30:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJweITsbMYzSR8jSEKJpHQ22jEJdn+wsch7qg3LYaUrknULGPGFVU2/9db/kuP8BhA9ZkfTk X-Received: by 2002:a05:6402:1352:: with SMTP id y18mr72573523edw.178.1609788637247; Mon, 04 Jan 2021 11:30:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1609788637; cv=none; d=google.com; s=arc-20160816; b=mzo5p0pSPeO+8DPK4Dh5NZBYJrQzF33SqPdBNtQCxVONtrYmuzy4qoz194R6niJpGo tIv+8JCe8P2pqqZXyGhmI2NbXQwdIYl5djzuVGU2G68jgMNAUP7/7A/6OHoAtY30QdS1 +6X2l73I5+jsyTqlSUOwT/FQBSCoyzVdk2tuHLD+G5wEknIYVf+p6xj8g1GZaAbbGz0q yN9m7tuwCR2a6c0++lPIJ0A71U5Zj3ZSyzf2oALsKnrvipP390wRTn6X52E8viyXs+QC 595p/TF6rIUKyO8c3Z8K9AJ7Yt4XztGe5EnjvnkUaz9XP0tPnp0e8I35NjFk1ay7KorD hn9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-filter; bh=FCu6sP1bcDlF9OaiyexlwuDb0Kzn6QXzfNaJvcH1L1U=; b=RyD44nj4R1Jlptb6mJvS4S08MiMTTEiPLmrzu/HdlwLWgX876cRc0sK7aO9fZGsOzO JSmNxmcsPJLu9uV7z/xu4UzZLpihMVZ4hCRoFXrFo+7te1as9rrEXEUtmvpJnIisiX5h xETNL2vSMahE3ROGs8d7PNAhlBXTkZZd8o/3XeJcsa90R+HTzCuNjM7hp+BorPa+XrBS SogenVgpm2Y/NcYS4BrcVHUBIIJGyXtCUyTUvc+hdm8q3jnIKipllFFW3j4Z4y6apQRP pTkItKznCkePccbzgMv1ik1+jlZMq6XW3dPERpsBKv2B9sU0fevnS1pKT3EdvKcXbpZz AXaA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux.microsoft.com header.s=default header.b=UtFHy5rw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.microsoft.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t11si28709761ejr.335.2021.01.04.11.30.13; Mon, 04 Jan 2021 11:30:37 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.microsoft.com header.s=default header.b=UtFHy5rw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.microsoft.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728058AbhADT1i (ORCPT + 99 others); Mon, 4 Jan 2021 14:27:38 -0500 Received: from linux.microsoft.com ([13.77.154.182]:36804 "EHLO linux.microsoft.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728030AbhADT1e (ORCPT ); Mon, 4 Jan 2021 14:27:34 -0500 Received: from localhost.localdomain (c-73-42-176-67.hsd1.wa.comcast.net [73.42.176.67]) by linux.microsoft.com (Postfix) with ESMTPSA id D92AC20B6C45; Mon, 4 Jan 2021 11:26:14 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com D92AC20B6C45 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1609788375; bh=FCu6sP1bcDlF9OaiyexlwuDb0Kzn6QXzfNaJvcH1L1U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UtFHy5rw9HKo0DNKwUq9Yxi4zH8SpP2pZaFBO2Dn9rEfgJSuXSbUsFtI3RndLIfRR lndkSqacm7ZisdPXlJ9rJf5kHw7ifnbuNuSAT3m6SH7BrphF669/0XLfl2gKt/45Gq ucjYvtokgPKTli4o47ZiBrnMenlOCOQhfnhyW7nA= From: Lakshmi Ramasubramanian To: zohar@linux.ibm.com, bauerman@linux.ibm.com, robh@kernel.org, takahiro.akashi@linaro.org, gregkh@linuxfoundation.org, will@kernel.org, catalin.marinas@arm.com, mpe@ellerman.id.au Cc: james.morse@arm.com, sashal@kernel.org, benh@kernel.crashing.org, paulus@samba.org, frowand.list@gmail.com, vincenzo.frascino@arm.com, mark.rutland@arm.com, dmitry.kasatkin@gmail.com, jmorris@namei.org, serge@hallyn.com, pasha.tatashin@soleen.com, allison@lohutok.net, masahiroy@kernel.org, bhsharma@redhat.com, mbrugger@suse.com, hsinyi@chromium.org, tao.li@vivo.com, christophe.leroy@c-s.fr, prsriva@linux.microsoft.com, balajib@linux.microsoft.com, linux-integrity@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linuxppc-dev@vger.kernel.org Subject: [PATCH v14 6/6] arm64: Add IMA log information in kimage used for kexec Date: Mon, 4 Jan 2021 11:26:02 -0800 Message-Id: <20210104192602.10131-7-nramas@linux.microsoft.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210104192602.10131-1-nramas@linux.microsoft.com> References: <20210104192602.10131-1-nramas@linux.microsoft.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Address and size of the buffer containing the IMA measurement log need to be passed from the current kernel to the next kernel on kexec. Any existing "linux,ima-kexec-buffer" property in the device tree needs to be removed and its corresponding memory reservation in the currently running kernel needs to be freed. The address and size of the current kernel's IMA measurement log need to be added to the device tree's IMA kexec buffer node and memory for the buffer needs to be reserved for the log to be carried over to the next kernel on the kexec call. Add address and size fields to "struct kimage_arch" for ARM64 platform to hold the address and size of the IMA measurement log buffer. Remove any existing "linux,ima-kexec-buffer" property in the device tree and free the corresponding memory reservation in the currently running kernel. Add "linux,ima-kexec-buffer" property to the device tree and reserve the memory for storing the IMA log that needs to be passed from the current kernel to the next one. Update CONFIG_KEXEC_FILE to select CONFIG_HAVE_IMA_KEXEC to indicate that the IMA measurement log information is present in the device tree for ARM64. Co-developed-by: Prakhar Srivastava Signed-off-by: Prakhar Srivastava Signed-off-by: Lakshmi Ramasubramanian --- arch/arm64/Kconfig | 1 + arch/arm64/include/asm/kexec.h | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index a6b5b7ef40ae..312b4d5ad232 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -1095,6 +1095,7 @@ config KEXEC config KEXEC_FILE bool "kexec file based system call" select KEXEC_CORE + select HAVE_IMA_KEXEC if IMA help This is new version of kexec system call. This system call is file based and takes file descriptors as system call argument diff --git a/arch/arm64/include/asm/kexec.h b/arch/arm64/include/asm/kexec.h index d24b527e8c00..2bd19ccb6c43 100644 --- a/arch/arm64/include/asm/kexec.h +++ b/arch/arm64/include/asm/kexec.h @@ -100,6 +100,11 @@ struct kimage_arch { void *elf_headers; unsigned long elf_headers_mem; unsigned long elf_headers_sz; + +#ifdef CONFIG_IMA_KEXEC + phys_addr_t ima_buffer_addr; + size_t ima_buffer_size; +#endif }; extern const struct kexec_file_ops kexec_image_ops; -- 2.29.2