diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0050-resource-Provide-resource-struct-in-resource-walk-ca.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0050-resource-Provide-resource-struct-in-resource-walk-ca.patch | 251 |
1 files changed, 0 insertions, 251 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0050-resource-Provide-resource-struct-in-resource-walk-ca.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0050-resource-Provide-resource-struct-in-resource-walk-ca.patch deleted file mode 100644 index 74f4fed2..00000000 --- a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0050-resource-Provide-resource-struct-in-resource-walk-ca.patch +++ /dev/null @@ -1,251 +0,0 @@ -From d6af0f1dc8fc9dbc056ce5e79750747f6d1ca300 Mon Sep 17 00:00:00 2001 -From: Tom Lendacky <thomas.lendacky@amd.com> -Date: Fri, 20 Oct 2017 09:30:51 -0500 -Subject: [PATCH 50/95] resource: Provide resource struct in resource walk - callback - -In preperation for a new function that will need additional resource -information during the resource walk, update the resource walk callback to -pass the resource structure. Since the current callback start and end -arguments are pulled from the resource structure, the callback functions -can obtain them from the resource structure directly. - -Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> -Signed-off-by: Brijesh Singh <brijesh.singh@amd.com> -Signed-off-by: Thomas Gleixner <tglx@linutronix.de> -Reviewed-by: Kees Cook <keescook@chromium.org> -Reviewed-by: Borislav Petkov <bp@suse.de> -Tested-by: Borislav Petkov <bp@suse.de> -Cc: kvm@vger.kernel.org -Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> -Cc: Borislav Petkov <bp@alien8.de> -Cc: linuxppc-dev@lists.ozlabs.org -Link: https://lkml.kernel.org/r/20171020143059.3291-10-brijesh.singh@amd.com -Signed-off-by: Sudheesh Mavila <sudheesh.mavila@amd.com> ---- - arch/powerpc/kernel/machine_kexec_file_64.c | 12 +++++++++--- - arch/x86/kernel/crash.c | 18 +++++++++--------- - arch/x86/kernel/pmem.c | 2 +- - include/linux/ioport.h | 4 ++-- - include/linux/kexec.h | 2 +- - kernel/kexec_file.c | 5 +++-- - kernel/resource.c | 9 +++++---- - 7 files changed, 30 insertions(+), 22 deletions(-) - -diff --git a/arch/powerpc/kernel/machine_kexec_file_64.c b/arch/powerpc/kernel/machine_kexec_file_64.c -index c66132b..45e0b7d 100644 ---- a/arch/powerpc/kernel/machine_kexec_file_64.c -+++ b/arch/powerpc/kernel/machine_kexec_file_64.c -@@ -91,11 +91,13 @@ int arch_kimage_file_post_load_cleanup(struct kimage *image) - * and that value will be returned. If all free regions are visited without - * func returning non-zero, then zero will be returned. - */ --int arch_kexec_walk_mem(struct kexec_buf *kbuf, int (*func)(u64, u64, void *)) -+int arch_kexec_walk_mem(struct kexec_buf *kbuf, -+ int (*func)(struct resource *, void *)) - { - int ret = 0; - u64 i; - phys_addr_t mstart, mend; -+ struct resource res = { }; - - if (kbuf->top_down) { - for_each_free_mem_range_reverse(i, NUMA_NO_NODE, 0, -@@ -105,7 +107,9 @@ int arch_kexec_walk_mem(struct kexec_buf *kbuf, int (*func)(u64, u64, void *)) - * range while in kexec, end points to the last byte - * in the range. - */ -- ret = func(mstart, mend - 1, kbuf); -+ res.start = mstart; -+ res.end = mend - 1; -+ ret = func(&res, kbuf); - if (ret) - break; - } -@@ -117,7 +121,9 @@ int arch_kexec_walk_mem(struct kexec_buf *kbuf, int (*func)(u64, u64, void *)) - * range while in kexec, end points to the last byte - * in the range. - */ -- ret = func(mstart, mend - 1, kbuf); -+ res.start = mstart; -+ res.end = mend - 1; -+ ret = func(&res, kbuf); - if (ret) - break; - } -diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c -index 44404e2..815008c 100644 ---- a/arch/x86/kernel/crash.c -+++ b/arch/x86/kernel/crash.c -@@ -209,7 +209,7 @@ void native_machine_crash_shutdown(struct pt_regs *regs) - } - - #ifdef CONFIG_KEXEC_FILE --static int get_nr_ram_ranges_callback(u64 start, u64 end, void *arg) -+static int get_nr_ram_ranges_callback(struct resource *res, void *arg) - { - unsigned int *nr_ranges = arg; - -@@ -342,7 +342,7 @@ static int elf_header_exclude_ranges(struct crash_elf_data *ced, - return ret; - } - --static int prepare_elf64_ram_headers_callback(u64 start, u64 end, void *arg) -+static int prepare_elf64_ram_headers_callback(struct resource *res, void *arg) - { - struct crash_elf_data *ced = arg; - Elf64_Ehdr *ehdr; -@@ -355,7 +355,7 @@ static int prepare_elf64_ram_headers_callback(u64 start, u64 end, void *arg) - ehdr = ced->ehdr; - - /* Exclude unwanted mem ranges */ -- ret = elf_header_exclude_ranges(ced, start, end); -+ ret = elf_header_exclude_ranges(ced, res->start, res->end); - if (ret) - return ret; - -@@ -518,14 +518,14 @@ static int add_e820_entry(struct boot_params *params, struct e820_entry *entry) - return 0; - } - --static int memmap_entry_callback(u64 start, u64 end, void *arg) -+static int memmap_entry_callback(struct resource *res, void *arg) - { - struct crash_memmap_data *cmd = arg; - struct boot_params *params = cmd->params; - struct e820_entry ei; - -- ei.addr = start; -- ei.size = end - start + 1; -+ ei.addr = res->start; -+ ei.size = res->end - res->start + 1; - ei.type = cmd->type; - add_e820_entry(params, &ei); - -@@ -619,12 +619,12 @@ int crash_setup_memmap_entries(struct kimage *image, struct boot_params *params) - return ret; - } - --static int determine_backup_region(u64 start, u64 end, void *arg) -+static int determine_backup_region(struct resource *res, void *arg) - { - struct kimage *image = arg; - -- image->arch.backup_src_start = start; -- image->arch.backup_src_sz = end - start + 1; -+ image->arch.backup_src_start = res->start; -+ image->arch.backup_src_sz = res->end - res->start + 1; - - /* Expecting only one range for backup region */ - return 1; -diff --git a/arch/x86/kernel/pmem.c b/arch/x86/kernel/pmem.c -index 3fe6900..6b07faa 100644 ---- a/arch/x86/kernel/pmem.c -+++ b/arch/x86/kernel/pmem.c -@@ -7,7 +7,7 @@ - #include <linux/init.h> - #include <linux/ioport.h> - --static int found(u64 start, u64 end, void *data) -+static int found(struct resource *res, void *data) - { - return 1; - } -diff --git a/include/linux/ioport.h b/include/linux/ioport.h -index 83c8d65..c0070d7 100644 ---- a/include/linux/ioport.h -+++ b/include/linux/ioport.h -@@ -272,10 +272,10 @@ walk_system_ram_range(unsigned long start_pfn, unsigned long nr_pages, - void *arg, int (*func)(unsigned long, unsigned long, void *)); - extern int - walk_system_ram_res(u64 start, u64 end, void *arg, -- int (*func)(u64, u64, void *)); -+ int (*func)(struct resource *, void *)); - extern int - walk_iomem_res_desc(unsigned long desc, unsigned long flags, u64 start, u64 end, -- void *arg, int (*func)(u64, u64, void *)); -+ void *arg, int (*func)(struct resource *, void *)); - - /* True if any part of r1 overlaps r2 */ - static inline bool resource_overlaps(struct resource *r1, struct resource *r2) -diff --git a/include/linux/kexec.h b/include/linux/kexec.h -index 1c08c92..f16f6ce 100644 ---- a/include/linux/kexec.h -+++ b/include/linux/kexec.h -@@ -160,7 +160,7 @@ struct kexec_buf { - }; - - int __weak arch_kexec_walk_mem(struct kexec_buf *kbuf, -- int (*func)(u64, u64, void *)); -+ int (*func)(struct resource *, void *)); - extern int kexec_add_buffer(struct kexec_buf *kbuf); - int kexec_locate_mem_hole(struct kexec_buf *kbuf); - #endif /* CONFIG_KEXEC_FILE */ -diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c -index 9f48f44..e5bcd94 100644 ---- a/kernel/kexec_file.c -+++ b/kernel/kexec_file.c -@@ -406,9 +406,10 @@ static int locate_mem_hole_bottom_up(unsigned long start, unsigned long end, - return 1; - } - --static int locate_mem_hole_callback(u64 start, u64 end, void *arg) -+static int locate_mem_hole_callback(struct resource *res, void *arg) - { - struct kexec_buf *kbuf = (struct kexec_buf *)arg; -+ u64 start = res->start, end = res->end; - unsigned long sz = end - start + 1; - - /* Returning 0 will take to next memory range */ -@@ -437,7 +438,7 @@ static int locate_mem_hole_callback(u64 start, u64 end, void *arg) - * func returning non-zero, then zero will be returned. - */ - int __weak arch_kexec_walk_mem(struct kexec_buf *kbuf, -- int (*func)(u64, u64, void *)) -+ int (*func)(struct resource *, void *)) - { - if (kbuf->image->type == KEXEC_TYPE_CRASH) - return walk_iomem_res_desc(crashk_res.desc, -diff --git a/kernel/resource.c b/kernel/resource.c -index 1260f30..78cae82 100644 ---- a/kernel/resource.c -+++ b/kernel/resource.c -@@ -402,14 +402,15 @@ static int find_next_iomem_res(struct resource *res, unsigned long desc, - - static int __walk_iomem_res_desc(struct resource *res, unsigned long desc, - bool first_level_children_only, -- void *arg, int (*func)(u64, u64, void *)) -+ void *arg, -+ int (*func)(struct resource *, void *)) - { - u64 orig_end = res->end; - int ret = -1; - - while ((res->start < res->end) && - !find_next_iomem_res(res, desc, first_level_children_only)) { -- ret = (*func)(res->start, res->end, arg); -+ ret = (*func)(res, arg); - if (ret) - break; - -@@ -435,7 +436,7 @@ static int __walk_iomem_res_desc(struct resource *res, unsigned long desc, - * <linux/ioport.h> and set it in 'desc' of a target resource entry. - */ - int walk_iomem_res_desc(unsigned long desc, unsigned long flags, u64 start, -- u64 end, void *arg, int (*func)(u64, u64, void *)) -+ u64 end, void *arg, int (*func)(struct resource *, void *)) - { - struct resource res; - -@@ -454,7 +455,7 @@ int walk_iomem_res_desc(unsigned long desc, unsigned long flags, u64 start, - * ranges. - */ - int walk_system_ram_res(u64 start, u64 end, void *arg, -- int (*func)(u64, u64, void *)) -+ int (*func)(struct resource *, void *)) - { - struct resource res; - --- -2.7.4 - |