From patchwork Tue Jul 12 01:42:00 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 71764 Delivered-To: patch@linaro.org Received: by 10.140.29.52 with SMTP id a49csp220974qga; Mon, 11 Jul 2016 18:37:44 -0700 (PDT) X-Received: by 10.98.95.5 with SMTP id t5mr39850139pfb.103.1468287464443; Mon, 11 Jul 2016 18:37:44 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id ba3si3724068pab.87.2016.07.11.18.37.44; Mon, 11 Jul 2016 18:37:44 -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=@linaro.org; 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 dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932618AbcGLBhg (ORCPT + 30 others); Mon, 11 Jul 2016 21:37:36 -0400 Received: from mail-pa0-f45.google.com ([209.85.220.45]:34167 "EHLO mail-pa0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932560AbcGLBhe (ORCPT ); Mon, 11 Jul 2016 21:37:34 -0400 Received: by mail-pa0-f45.google.com with SMTP id fi15so787282pac.1 for ; Mon, 11 Jul 2016 18:37:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Q/dh70pEFK7Mw7rOb8pHiqVApuTDwqKPUloB9/q9Yp0=; b=gmoJjxXwVZfG105hYncKQw5AT3szk1A3w4F2NuOaQOp1MB6UMGGzrjlnPiJG7PGhSb lHV+Hv06iipIQKZAmZ7xxyXfXsv1CQGXwP/6K2uUlvKO4ggvje7BFHZVZF/JI+l6faLD U7ol6MIM7iQPcNgAv/53aDQK3H7r8gG+rOw4c= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Q/dh70pEFK7Mw7rOb8pHiqVApuTDwqKPUloB9/q9Yp0=; b=DUShGh7r+GUwE/GJG3q56PXBbEyBwDIveHu4f3K/Px8lFu2BjjDTV8gXxyDw2/LlFB eA7DWdghFZl8rLKXnptl3wBANwIW3JVcx/+knkti9Kxnmju8wWg6lILKMzbr98XkJ8cH dv5pHTBOXRuKjN0nC7hvNAItk3BpR2JmjYWWJiaiCLNmI/zTeiqNi62AMTpQHPoAnxgl gmnK0rBMXul6Kp207vS+FztBTw7AyM/cVTLxVICN/NQNj/4PsamP3KGPxzhA6EuAEmCx l0KtIzkhbLczzI0ozl0iZWFsUi7g/35SK5/9dQ9IUFqRw+kPPBehWwvduk683LseNYwY Yo2w== X-Gm-Message-State: ALyK8tJcWjvAWlSaNJVl/GJraMCyBV525jXFhqN0OnF2iEkEWqMSPCnbDP8RR4sPs2uh2wTB X-Received: by 10.66.80.2 with SMTP id n2mr32970092pax.134.1468287448500; Mon, 11 Jul 2016 18:37:28 -0700 (PDT) Received: from linaro.org ([121.95.100.191]) by smtp.googlemail.com with ESMTPSA id n17sm6807750pfb.38.2016.07.11.18.37.27 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Mon, 11 Jul 2016 18:37:28 -0700 (PDT) From: AKASHI Takahiro To: ebiederm@xmission.com, vgoyal@redhat.com, dyoung@redhat.com, bhe@redhat.com, bauerman@linux.vnet.ibm.com, arnd@arndb.de Cc: kexec@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, AKASHI Takahiro Subject: [RFC 2/3] kexec: add dtb info to struct kimage Date: Tue, 12 Jul 2016 10:42:00 +0900 Message-Id: <20160712014201.11456-3-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20160712014201.11456-1-takahiro.akashi@linaro.org> References: <20160712014201.11456-1-takahiro.akashi@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Device tree blob must be passed to a second kernel on DTB-capable archs, like powerpc and arm64, but the current kernel interface lacks this support. This patch adds dtb buffer information to struct kimage. When users don't specify dtb explicitly and the one used for the current kernel can be re-used, this change will be good enough for implementing kexec_file_load feature. Signed-off-by: AKASHI Takahiro --- include/linux/kexec.h | 3 +++ kernel/kexec_file.c | 5 +++++ 2 files changed, 8 insertions(+) -- 2.9.0 diff --git a/include/linux/kexec.h b/include/linux/kexec.h index e8acb2b..554c848 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -190,6 +190,9 @@ struct kimage { char *cmdline_buf; unsigned long cmdline_buf_len; + void *dtb_buf; + unsigned long dtb_buf_len; + /* File operations provided by image loader */ struct kexec_file_ops *fops; diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c index 9891464..7278329 100644 --- a/kernel/kexec_file.c +++ b/kernel/kexec_file.c @@ -96,6 +96,11 @@ void kimage_file_post_load_cleanup(struct kimage *image) image->initrd_buf = NULL; } + if (image->dtb_buf) { + vfree(image->dtb_buf); + image->dtb_buf = NULL; + } + if (image->cmdline_buf) { kfree(image->cmdline_buf); image->cmdline_buf = NULL;