Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp5359483ybi; Wed, 12 Jun 2019 00:55:53 -0700 (PDT) X-Google-Smtp-Source: APXvYqxj3ZJ+ARjEiZO18He9htxoD9oTDFqUJb7WRvXifQ6XziFKhy0UbqvMTBbVd4v+HK1tTyGM X-Received: by 2002:a63:eb03:: with SMTP id t3mr24557372pgh.315.1560326153731; Wed, 12 Jun 2019 00:55:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560326153; cv=none; d=google.com; s=arc-20160816; b=QIt/smRz6QPgtBQTP3N2xPURQk1hDv3rn3IIuoAP6dwXHdUXW7grvww7wfm7BekEt1 E6C4b2La5u5h4uIdxlmdcH1OK918C7E/BmDbbIjm67/Jckzprys2MSF+uUDPyqOJDPYY cc4h3uDAuj8Ib7E0V5DJ58WBb8aZB4S57fhCS3wJdD+/nVyUJaDHYpH088o5jqBTV+WG QwDarm59jG6w74pFULQ1Lf9SozzigE3ac1/35O9pxygBNQ+oxM456bWSO3BWb4PuDg2x c+MkPPVQEe8t/Z1PsSCLmU6J9CgnjyB7fXYSTBmVobu1hbJzNhU1zNW3R+woITn11QEC vtKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=rJn1YZ706aJfrT07Hn2oI2Mia8615vCPrYsCrOsg17g=; b=wMPr8nAAG3G5DCrf70mcS8mov/CAJEycF36GEWwssj9M/mQzTP1txj+I8hNyyeoU3m qX0e+gHv55y8MtFzjEr6u8rTK68vgr7K+xLtHaPtIImKGn6SMwm1ABcz1NUQppR9t7ra 6tyS9ekNpC71u79430UTnC0BjNIid8QdLdJTFAQyiwhGr4B18cleccXcOTsZBaAYAxZp cGZY+6A9pNCFBdSuE8WEiIIMdv9ImRPd3bOFka1+Qmpd6ooDi8iaUH+3etVxw0TyDcoQ Kb7j6PWbqNRBwqdmkumxTpwo+QoF9C24jyuK6AKZ6rR3RFjC1vOWDAA3ag5zOZ7Pn+nC VEtg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=nqTKRZCK; 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=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r10si14397704plo.117.2019.06.12.00.55.39; Wed, 12 Jun 2019 00:55:53 -0700 (PDT) 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; dkim=pass header.i=@chromium.org header.s=google header.b=nqTKRZCK; 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=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729832AbfFLEfM (ORCPT + 99 others); Wed, 12 Jun 2019 00:35:12 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:39813 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725613AbfFLEfL (ORCPT ); Wed, 12 Jun 2019 00:35:11 -0400 Received: by mail-pg1-f193.google.com with SMTP id 196so8193470pgc.6 for ; Tue, 11 Jun 2019 21:35:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=rJn1YZ706aJfrT07Hn2oI2Mia8615vCPrYsCrOsg17g=; b=nqTKRZCKIs+8kG9Liz37bjElzQMgiWIkqbp++oZGf4NKeWcTbix2jRPp8mGO/hAgR6 4+HNZHFyqoG6vx+pkuGWDOYH/mueiggyXED2gqRaFTKHeVEUfGhAMGncR0Y61bP1+Jng XWbBDY7gsgQmfzGku7MtRuYYrk4EaxY1CoudU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=rJn1YZ706aJfrT07Hn2oI2Mia8615vCPrYsCrOsg17g=; b=qlhIglcvnuQNtT4P5FRY0apMtLzLZu9y4ndaO0cqhX88toW3abMk3T/S1D1UAefZ+i rV5S9GDCcBPp7YvcMv2ZGdX1kmmUIjNQSbo9HuWA31+Kvu3p/JwNDwPeXXyAoi3Vjh2W 3FPlxdg88d7qedmniFjiLb2RjpRShuSwK8kK1+mOz0+MReLO+N81H+6Zl6BH9HBJOWWz iNvIN2GalLTdKYd0sDbEqxZJYyWNd3NQoWDajvZ0u7vGUO4euGKxxjjarYQSQoiPW75U OqY3U5tRau3AmTUPU66z+dhICeK7l43Q6SNHBwhalGZRSxLITYfgmkZE0ZgWhU1oSCDO amlQ== X-Gm-Message-State: APjAAAVGRykDQzo/8O3jPPr7qvhEeBiqX7Xl+47DGEb67VtUKj22T+nC jQZzEx1x7SNfV8lJg/0Eg3jOyg== X-Received: by 2002:a65:63c6:: with SMTP id n6mr18294203pgv.370.1560314110645; Tue, 11 Jun 2019 21:35:10 -0700 (PDT) Received: from hsinyi-z840.tpe.corp.google.com ([2401:fa00:1:10:b852:bd51:9305:4261]) by smtp.gmail.com with ESMTPSA id k8sm15285998pfi.168.2019.06.11.21.35.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 11 Jun 2019 21:35:10 -0700 (PDT) From: Hsin-Yi Wang To: linux-arm-kernel@lists.infradead.org Cc: Rob Herring , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Frank Rowand , Catalin Marinas , Will Deacon , Andrew Morton , Mike Rapoport , Ard Biesheuvel , Miles Chen , Hsin-Yi Wang , James Morse , Andrew Murray , Mark Rutland , Jun Yao , Yu Zhao , Robin Murphy , Laura Abbott , Stephen Boyd , Kees Cook Subject: [PATCH v6 3/3] arm64: kexec_file: add rng-seed support Date: Wed, 12 Jun 2019 12:33:02 +0800 Message-Id: <20190612043258.166048-4-hsinyi@chromium.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190612043258.166048-1-hsinyi@chromium.org> References: <20190612043258.166048-1-hsinyi@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Adding "rng-seed" to dtb. It's fine to add this property if original fdt doesn't contain it. Since original seed will be wiped after read, so use a default size 128 bytes here. Signed-off-by: Hsin-Yi Wang Reviewed-by: Stephen Boyd --- change log v5->v6: * no change --- arch/arm64/kernel/machine_kexec_file.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/arch/arm64/kernel/machine_kexec_file.c b/arch/arm64/kernel/machine_kexec_file.c index 58871333737a..d40fde72a023 100644 --- a/arch/arm64/kernel/machine_kexec_file.c +++ b/arch/arm64/kernel/machine_kexec_file.c @@ -27,6 +27,8 @@ #define FDT_PROP_INITRD_END "linux,initrd-end" #define FDT_PROP_BOOTARGS "bootargs" #define FDT_PROP_KASLR_SEED "kaslr-seed" +#define FDT_PROP_RNG_SEED "rng-seed" +#define RNG_SEED_SIZE 128 const struct kexec_file_ops * const kexec_file_loaders[] = { &kexec_image_ops, @@ -102,6 +104,23 @@ static int setup_dtb(struct kimage *image, FDT_PROP_KASLR_SEED); } + /* add rng-seed */ + if (rng_is_initialized()) { + void *rng_seed = kmalloc(RNG_SEED_SIZE, GFP_ATOMIC); + get_random_bytes(rng_seed, RNG_SEED_SIZE); + + ret = fdt_setprop(dtb, off, FDT_PROP_RNG_SEED, rng_seed, + RNG_SEED_SIZE); + kfree(rng_seed); + + if (ret) + goto out; + + } else { + pr_notice("RNG is not initialised: omitting \"%s\" property\n", + FDT_PROP_RNG_SEED); + } + out: if (ret) return (ret == -FDT_ERR_NOSPACE) ? -ENOMEM : -EINVAL; @@ -110,7 +129,8 @@ static int setup_dtb(struct kimage *image, } /* - * More space needed so that we can add initrd, bootargs and kaslr-seed. + * More space needed so that we can add initrd, bootargs, kaslr-seed, and + * rng-seed. */ #define DTB_EXTRA_SPACE 0x1000 -- 2.20.1