All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lakshmi Ramasubramanian <nramas@linux.microsoft.com>
To: Thiago Jung Bauermann <bauerman@linux.ibm.com>
Cc: zohar@linux.ibm.com, robh@kernel.org, gregkh@linuxfoundation.org,
	james.morse@arm.com, catalin.marinas@arm.com, sashal@kernel.org,
	will@kernel.org, mpe@ellerman.id.au, benh@kernel.crashing.org,
	paulus@samba.org, robh+dt@kernel.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,
	kstewart@linuxfoundation.org, takahiro.akashi@linaro.org,
	tglx@linutronix.de, masahiroy@kernel.org, bhsharma@redhat.com,
	mbrugger@suse.com, hsinyi@chromium.org, tao.li@vivo.com,
	christophe.leroy@c-s.fr, linux-integrity@vger.kernel.org,
	linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
	prsriva@linux.microsoft.com, balajib@linux.microsoft.com
Subject: Re: [PATCH v10 4/8] powerpc: Use ima kexec node functions
Date: Sun, 6 Dec 2020 17:54:20 -0800	[thread overview]
Message-ID: <28685cf7-be32-b023-071d-fbe964b27567@linux.microsoft.com> (raw)
In-Reply-To: <87v9dgm3p9.fsf@manicouagan.localdomain>

On 12/5/20 11:51 AM, Thiago Jung Bauermann wrote:
> 
> Lakshmi Ramasubramanian <nramas@linux.microsoft.com> writes:
> 
>> do_get_kexec_buffer() and get_addr_size_cells() are called by
>> ima_get_kexec_buffer(), ima_free_kexec_buffer, and remove_ima_buffer()
>> to retrieve the address and size of the buffer used for carrying
>> forward the IMA measurement log across kexec system call. These
>> functions correctly handle a device tree property that is a child node
>> of the root node, but not anything other than the immediate root
>> child nodes.
>>
>> Use the architecture independent functions get_ima_kexec_buffer()
>> and get_root_addr_size_cells() defined in "drivers/of/ima_kexec.c",
> 
> s/ima_kexec.c/kexec.c/
Thanks for catching this. I'll fix it.

> 
>> to get the address and size of the IMA measurement log buffer from
>> the device tree. Remove do_get_kexec_buffer() and get_addr_size_cells()
>> since they are not used anymore.
>>
>> Co-developed-by: Prakhar Srivastava <prsriva@linux.microsoft.com>
>> Signed-off-by: Prakhar Srivastava <prsriva@linux.microsoft.com>
>> Signed-off-by: Lakshmi Ramasubramanian <nramas@linux.microsoft.com>
> 
> Looks good. Thanks!
> 
> Reviewed-by: Thiago Jung Bauermann <bauerman@linux.ibm.com>

Thanks Thiago.

  -lakshmi

>> ---
>>   arch/powerpc/kexec/ima.c | 58 +++++-----------------------------------
>>   1 file changed, 7 insertions(+), 51 deletions(-)
>>
>> diff --git a/arch/powerpc/kexec/ima.c b/arch/powerpc/kexec/ima.c
>> index a36c39db4b1a..906e8212435d 100644
>> --- a/arch/powerpc/kexec/ima.c
>> +++ b/arch/powerpc/kexec/ima.c
>> @@ -13,40 +13,6 @@
>>   #include <linux/libfdt.h>
>>   #include <asm/ima.h>
>>   
>> -static int get_addr_size_cells(int *addr_cells, int *size_cells)
>> -{
>> -	struct device_node *root;
>> -
>> -	root = of_find_node_by_path("/");
>> -	if (!root)
>> -		return -EINVAL;
>> -
>> -	*addr_cells = of_n_addr_cells(root);
>> -	*size_cells = of_n_size_cells(root);
>> -
>> -	of_node_put(root);
>> -
>> -	return 0;
>> -}
>> -
>> -static int do_get_kexec_buffer(const void *prop, int len, unsigned long *addr,
>> -			       size_t *size)
>> -{
>> -	int ret, addr_cells, size_cells;
>> -
>> -	ret = get_addr_size_cells(&addr_cells, &size_cells);
>> -	if (ret)
>> -		return ret;
>> -
>> -	if (len < 4 * (addr_cells + size_cells))
>> -		return -ENOENT;
>> -
>> -	*addr = of_read_number(prop, addr_cells);
>> -	*size = of_read_number(prop + 4 * addr_cells, size_cells);
>> -
>> -	return 0;
>> -}
>> -
>>   /**
>>    * ima_get_kexec_buffer - get IMA buffer from the previous kernel
>>    * @addr:	On successful return, set to point to the buffer contents.
>> @@ -56,16 +22,11 @@ static int do_get_kexec_buffer(const void *prop, int len, unsigned long *addr,
>>    */
>>   int ima_get_kexec_buffer(void **addr, size_t *size)
>>   {
>> -	int ret, len;
>> +	int ret;
>>   	unsigned long tmp_addr;
>>   	size_t tmp_size;
>> -	const void *prop;
>>   
>> -	prop = of_get_property(of_chosen, "linux,ima-kexec-buffer", &len);
>> -	if (!prop)
>> -		return -ENOENT;
>> -
>> -	ret = do_get_kexec_buffer(prop, len, &tmp_addr, &tmp_size);
>> +	ret = get_ima_kexec_buffer(NULL, 0, &tmp_addr, &tmp_size);
>>   	if (ret)
>>   		return ret;
>>   
>> @@ -89,7 +50,7 @@ int ima_free_kexec_buffer(void)
>>   	if (!prop)
>>   		return -ENOENT;
>>   
>> -	ret = do_get_kexec_buffer(prop->value, prop->length, &addr, &size);
>> +	ret = get_ima_kexec_buffer(NULL, 0, &addr, &size);
>>   	if (ret)
>>   		return ret;
>>   
>> @@ -98,7 +59,6 @@ int ima_free_kexec_buffer(void)
>>   		return ret;
>>   
>>   	return memblock_free(addr, size);
>> -
>>   }
>>   
>>   /**
>> @@ -112,19 +72,15 @@ int ima_free_kexec_buffer(void)
>>    */
>>   void remove_ima_buffer(void *fdt, int chosen_node)
>>   {
>> -	int ret, len;
>> +	int ret;
>>   	unsigned long addr;
>>   	size_t size;
>> -	const void *prop;
>>   
>> -	prop = fdt_getprop(fdt, chosen_node, "linux,ima-kexec-buffer", &len);
>> -	if (!prop)
>> +	ret = get_ima_kexec_buffer(fdt, chosen_node, &addr, &size);
>> +	if (ret)
>>   		return;
>>   
>> -	ret = do_get_kexec_buffer(prop, len, &addr, &size);
>>   	fdt_delprop(fdt, chosen_node, "linux,ima-kexec-buffer");
>> -	if (ret)
>> -		return;
>>   
>>   	ret = delete_fdt_mem_rsv(fdt, addr, size);
>>   	if (!ret)
>> @@ -191,7 +147,7 @@ int setup_ima_buffer(const struct kimage *image, void *fdt, int chosen_node)
>>   	if (!image->arch.ima_buffer_size)
>>   		return 0;
>>   
>> -	ret = get_addr_size_cells(&addr_cells, &size_cells);
>> +	ret = get_root_addr_size_cells(&addr_cells, &size_cells);
>>   	if (ret)
>>   		return ret;
> 
> 


  reply	other threads:[~2020-12-07  1:55 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-04 19:51 [PATCH v10 0/8] Carry forward IMA measurement log on kexec on ARM64 Lakshmi Ramasubramanian
2020-12-04 19:51 ` [PATCH v10 1/8] powerpc: fix compiler warnings and errors Lakshmi Ramasubramanian
2020-12-05  1:20   ` Thiago Jung Bauermann
2020-12-04 19:51 ` [PATCH v10 2/8] powerpc: Move delete_fdt_mem_rsv() to drivers/of/kexec.c Lakshmi Ramasubramanian
2020-12-05  2:22   ` Thiago Jung Bauermann
2020-12-07  1:50     ` Lakshmi Ramasubramanian
2020-12-11 16:37       ` Lakshmi Ramasubramanian
2020-12-11 18:19         ` Thiago Jung Bauermann
2020-12-11 19:25           ` Lakshmi Ramasubramanian
2020-12-12  1:14             ` Thiago Jung Bauermann
2020-12-04 19:51 ` [PATCH v10 3/8] powerpc: Move ima buffer functions " Lakshmi Ramasubramanian
2020-12-05 19:48   ` Thiago Jung Bauermann
2020-12-07  1:53     ` Lakshmi Ramasubramanian
2020-12-04 19:51 ` [PATCH v10 4/8] powerpc: Use ima kexec node functions Lakshmi Ramasubramanian
2020-12-05 19:51   ` Thiago Jung Bauermann
2020-12-07  1:54     ` Lakshmi Ramasubramanian [this message]
2020-12-04 19:51 ` [PATCH v10 5/8] powerpc: Move remove_ima_buffer() to drivers/of/kexec.c Lakshmi Ramasubramanian
2020-12-05 20:14   ` Thiago Jung Bauermann
2020-12-07  1:57     ` Lakshmi Ramasubramanian
2020-12-04 19:51 ` [PATCH v10 6/8] powerpc: Move ima_get_kexec_buffer() and ima_free_kexec_buffer() to ima Lakshmi Ramasubramanian
2020-12-05 21:02   ` Thiago Jung Bauermann
2020-12-07  1:58     ` Lakshmi Ramasubramanian
2020-12-04 19:51 ` [PATCH v10 7/8] powerpc: Move arch_ima_add_kexec_buffer " Lakshmi Ramasubramanian
2020-12-05 21:36   ` Thiago Jung Bauermann
2020-12-07  2:03     ` Lakshmi Ramasubramanian
2020-12-07 14:57       ` Mimi Zohar
2020-12-04 19:51 ` [PATCH v10 8/8] arm64: Add IMA log information in kimage used for kexec Lakshmi Ramasubramanian
2020-12-05 21:44   ` Thiago Jung Bauermann
2020-12-07  2:05     ` Lakshmi Ramasubramanian

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=28685cf7-be32-b023-071d-fbe964b27567@linux.microsoft.com \
    --to=nramas@linux.microsoft.com \
    --cc=allison@lohutok.net \
    --cc=balajib@linux.microsoft.com \
    --cc=bauerman@linux.ibm.com \
    --cc=benh@kernel.crashing.org \
    --cc=bhsharma@redhat.com \
    --cc=catalin.marinas@arm.com \
    --cc=christophe.leroy@c-s.fr \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.kasatkin@gmail.com \
    --cc=frowand.list@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hsinyi@chromium.org \
    --cc=james.morse@arm.com \
    --cc=jmorris@namei.org \
    --cc=kstewart@linuxfoundation.org \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=masahiroy@kernel.org \
    --cc=mbrugger@suse.com \
    --cc=mpe@ellerman.id.au \
    --cc=pasha.tatashin@soleen.com \
    --cc=paulus@samba.org \
    --cc=prsriva@linux.microsoft.com \
    --cc=robh+dt@kernel.org \
    --cc=robh@kernel.org \
    --cc=sashal@kernel.org \
    --cc=serge@hallyn.com \
    --cc=takahiro.akashi@linaro.org \
    --cc=tao.li@vivo.com \
    --cc=tglx@linutronix.de \
    --cc=vincenzo.frascino@arm.com \
    --cc=will@kernel.org \
    --cc=zohar@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.