Message ID | 20200819172134.11243-4-nramas@linux.microsoft.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Carry forward IMA measurement log on kexec on ARM64 | expand |
Lakshmi Ramasubramanian <nramas@linux.microsoft.com> writes: > do_get_kexec_buffer() calls another local function get_addr_size_cells() > to get the address and size of the IMA measurement log buffer stored in > the device tree. get_addr_size_cells() is small enough that it can be > merged into do_get_kexec_buffer() and a function call can be avoided. > > Refactor do_get_kexec_buffer() to call of_ functions directly instead > of calling get_addr_size_cells() and remove get_addr_size_cells(). > > 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> Reviewed-by: Thiago Jung Bauermann <bauerman@linux.ibm.com>
diff --git a/security/integrity/ima/ima_kexec.c b/security/integrity/ima/ima_kexec.c index 25d79d521597..283631098b48 100644 --- a/security/integrity/ima/ima_kexec.c +++ b/security/integrity/ima/ima_kexec.c @@ -15,31 +15,21 @@ #include <linux/libfdt.h> #include "ima.h" -static int get_addr_size_cells(int *addr_cells, int *size_cells) +static int do_get_kexec_buffer(const void *prop, int len, unsigned long *addr, + size_t *size) { + int addr_cells, 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); + 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;