Messages in this thread Patch in this message | | | From | Konrad Rzeszutek Wilk <> | Subject | [PATCH] iscsi_ibft: Fix isa_bus_to_virt not working under ARM | Date | Thu, 2 Sep 2021 14:03:13 +0000 |
| |
The isa_bus_to_virt is only needed under X86 and in fact the code that sets the ibft_phys_addr is only compiled under X86.
As such lets just ifdef the code.
Reported-by: kernel test robot <lkp@intel.com> Reported-by: Vijayendra Suman <vijayendra.suman@oracle.com> CC: Maurizio Lombardi <mlombard@redhat.com> CC: Mike Rapoport <rppt@kernel.org> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> --- drivers/firmware/iscsi_ibft.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-)
diff --git a/drivers/firmware/iscsi_ibft.c b/drivers/firmware/iscsi_ibft.c index 612a59e213df..7cde1a7a3ab1 100644 --- a/drivers/firmware/iscsi_ibft.c +++ b/drivers/firmware/iscsi_ibft.c @@ -86,7 +86,7 @@ MODULE_VERSION(IBFT_ISCSI_VERSION); static struct acpi_table_ibft *ibft_addr; -#ifndef CONFIG_ISCSI_IBFT_FIND +#ifdef CONFIG_ISCSI_IBFT_FIND phys_addr_t ibft_phys_addr; #endif @@ -851,7 +851,21 @@ static void __init acpi_find_ibft_region(void) { } #endif - +#ifdef CONFIG_ISCSI_IBFT_FIND +static int __init acpi_find_isa_region(void) +{ + if (ibft_phys_addr) { + ibft_addr = isa_bus_to_virt(ibft_phys_addr); + return 0; + } + return -ENODEV; +} +#else +static int __init acpi_find_isa_region(void) +{ + return -ENODEV; +} +#endif /* * ibft_init() - creates sysfs tree entries for the iBFT data. */ @@ -864,9 +878,7 @@ static int __init ibft_init(void) is called before ACPI tables are parsed and it only does legacy finding. */ - if (ibft_phys_addr) - ibft_addr = isa_bus_to_virt(ibft_phys_addr); - else + if (acpi_find_isa_region()) acpi_find_ibft_region(); if (ibft_addr) { -- 2.27.0
| |