Message ID | 20210104192602.10131-5-nramas@linux.microsoft.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Carry forward IMA measurement log on kexec on ARM64 | expand |
Hi Lakshmi, On Mon, 2021-01-04 at 11:26 -0800, Lakshmi Ramasubramanian wrote: > diff --git a/arch/powerpc/kexec/file_load_64.c b/arch/powerpc/kexec/file_load_64.c > index a05c19b3cc60..3cab318aa3b9 100644 > --- a/arch/powerpc/kexec/file_load_64.c > +++ b/arch/powerpc/kexec/file_load_64.c > @@ -17,6 +17,7 @@ > #include <linux/kexec.h> > #include <linux/of_fdt.h> > #include <linux/libfdt.h> > +#include <linux/of.h> > #include <linux/of_device.h> > #include <linux/memblock.h> > #include <linux/slab.h> > @@ -944,7 +945,8 @@ int setup_new_fdt_ppc64(const struct kimage *image, void *fdt, > struct crash_mem *umem = NULL, *rmem = NULL; > int i, nr_ranges, ret; > > - ret = setup_new_fdt(image, fdt, initrd_load_addr, initrd_len, cmdline); > + ret = of_kexec_setup_new_fdt(image, fdt, initrd_load_addr, initrd_len, > + cmdline); > if (ret) > goto out; > The "powerpc: Move arch independent ima kexec functions to drivers/of/kexec.c" moved setup_ima_buffer() to of_kexec_setup_new_fdt(). Defering making the change from setup_new_fdt() to of_kexec_setup_new_fdt() here, is not bisect safe. Mimi
On 1/12/21 3:30 PM, Mimi Zohar wrote: > Hi Lakshmi, > > On Mon, 2021-01-04 at 11:26 -0800, Lakshmi Ramasubramanian wrote: > >> diff --git a/arch/powerpc/kexec/file_load_64.c b/arch/powerpc/kexec/file_load_64.c >> index a05c19b3cc60..3cab318aa3b9 100644 >> --- a/arch/powerpc/kexec/file_load_64.c >> +++ b/arch/powerpc/kexec/file_load_64.c >> @@ -17,6 +17,7 @@ >> #include <linux/kexec.h> >> #include <linux/of_fdt.h> >> #include <linux/libfdt.h> >> +#include <linux/of.h> >> #include <linux/of_device.h> >> #include <linux/memblock.h> >> #include <linux/slab.h> >> @@ -944,7 +945,8 @@ int setup_new_fdt_ppc64(const struct kimage *image, void *fdt, >> struct crash_mem *umem = NULL, *rmem = NULL; >> int i, nr_ranges, ret; >> >> - ret = setup_new_fdt(image, fdt, initrd_load_addr, initrd_len, cmdline); >> + ret = of_kexec_setup_new_fdt(image, fdt, initrd_load_addr, initrd_len, >> + cmdline); >> if (ret) >> goto out; >> > > The "powerpc: Move arch independent ima kexec functions to > drivers/of/kexec.c" moved setup_ima_buffer() to > of_kexec_setup_new_fdt(). Defering making the change from > setup_new_fdt() to of_kexec_setup_new_fdt() here, is not bisect safe. > Agreed - I will move this change to "powerpc: Move arch independent ima kexec functions to drivers/of/kexec.c" patch. thanks, -lakshmi
Lakshmi Ramasubramanian <nramas@linux.microsoft.com> writes: > delete_fdt_mem_rsv() defined in "arch/powerpc/kexec/file_load.c" > has been renamed to fdt_find_and_del_mem_rsv(), and moved to > "drivers/of/kexec.c". > > Remove delete_fdt_mem_rsv() in "arch/powerpc/kexec/file_load.c". > > Call of_kexec_setup_new_fdt() from setup_new_fdt_ppc64() and > remove setup_new_fdt() in "arch/powerpc/kexec/file_load.c". > > 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> > --- > arch/powerpc/include/asm/kexec.h | 4 --- > arch/powerpc/kexec/file_load.c | 60 ------------------------------- > arch/powerpc/kexec/file_load_64.c | 4 ++- > 3 files changed, 3 insertions(+), 65 deletions(-) Reviewed-by: Thiago Jung Bauermann <bauerman@linux.ibm.com>
diff --git a/arch/powerpc/include/asm/kexec.h b/arch/powerpc/include/asm/kexec.h index dbf09d2f36d0..b8c270e08481 100644 --- a/arch/powerpc/include/asm/kexec.h +++ b/arch/powerpc/include/asm/kexec.h @@ -123,10 +123,6 @@ char *setup_kdump_cmdline(struct kimage *image, char *cmdline, int setup_purgatory(struct kimage *image, const void *slave_code, const void *fdt, unsigned long kernel_load_addr, unsigned long fdt_load_addr); -int setup_new_fdt(const struct kimage *image, void *fdt, - unsigned long initrd_load_addr, unsigned long initrd_len, - const char *cmdline); -int delete_fdt_mem_rsv(void *fdt, unsigned long start, unsigned long size); #ifdef CONFIG_PPC64 struct kexec_buf; diff --git a/arch/powerpc/kexec/file_load.c b/arch/powerpc/kexec/file_load.c index 9f3ec0b239ef..036c8fb48fc3 100644 --- a/arch/powerpc/kexec/file_load.c +++ b/arch/powerpc/kexec/file_load.c @@ -108,63 +108,3 @@ int setup_purgatory(struct kimage *image, const void *slave_code, return 0; } - -/** - * delete_fdt_mem_rsv - delete memory reservation with given address and size - * - * Return: 0 on success, or negative errno on error. - */ -int delete_fdt_mem_rsv(void *fdt, unsigned long start, unsigned long size) -{ - int i, ret, num_rsvs = fdt_num_mem_rsv(fdt); - - for (i = 0; i < num_rsvs; i++) { - uint64_t rsv_start, rsv_size; - - ret = fdt_get_mem_rsv(fdt, i, &rsv_start, &rsv_size); - if (ret) { - pr_err("Malformed device tree.\n"); - return -EINVAL; - } - - if (rsv_start == start && rsv_size == size) { - ret = fdt_del_mem_rsv(fdt, i); - if (ret) { - pr_err("Error deleting device tree reservation.\n"); - return -EINVAL; - } - - return 0; - } - } - - return -ENOENT; -} - -/* - * setup_new_fdt - modify /chosen and memory reservation for the next kernel - * @image: kexec image being loaded. - * @fdt: Flattened device tree for the next kernel. - * @initrd_load_addr: Address where the next initrd will be loaded. - * @initrd_len: Size of the next initrd, or 0 if there will be none. - * @cmdline: Command line for the next kernel, or NULL if there will - * be none. - * - * Return: 0 on success, or negative errno on error. - */ -int setup_new_fdt(const struct kimage *image, void *fdt, - unsigned long initrd_load_addr, unsigned long initrd_len, - const char *cmdline) -{ - int ret; - - ret = of_kexec_setup_new_fdt(image, fdt, initrd_load_addr, initrd_len, cmdline); - if (ret) - goto err; - - return 0; - -err: - pr_err("Error setting up the new device tree.\n"); - return -EINVAL; -} diff --git a/arch/powerpc/kexec/file_load_64.c b/arch/powerpc/kexec/file_load_64.c index a05c19b3cc60..3cab318aa3b9 100644 --- a/arch/powerpc/kexec/file_load_64.c +++ b/arch/powerpc/kexec/file_load_64.c @@ -17,6 +17,7 @@ #include <linux/kexec.h> #include <linux/of_fdt.h> #include <linux/libfdt.h> +#include <linux/of.h> #include <linux/of_device.h> #include <linux/memblock.h> #include <linux/slab.h> @@ -944,7 +945,8 @@ int setup_new_fdt_ppc64(const struct kimage *image, void *fdt, struct crash_mem *umem = NULL, *rmem = NULL; int i, nr_ranges, ret; - ret = setup_new_fdt(image, fdt, initrd_load_addr, initrd_len, cmdline); + ret = of_kexec_setup_new_fdt(image, fdt, initrd_load_addr, initrd_len, + cmdline); if (ret) goto out;