All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Mike Rapoport <rppt@kernel.org>
Cc: linux-kernel@vger.kernel.org, vijayendra.suman@oracle.com,
	mlombard@redhat.com, pjones@redhat.com,
	kernel test robot <lkp@intel.com>
Subject: Re: [PATCH] iscsi_ibft: Fix isa_bus_to_virt not working under ARM
Date: Thu, 2 Sep 2021 16:35:03 -0400	[thread overview]
Message-ID: <YTE1dzQ7ytQWW4Ow@char.us.oracle.com> (raw)
In-Reply-To: <YTEGhPnQkgOiOHf7@kernel.org>

On Thu, Sep 02, 2021 at 08:14:44PM +0300, Mike Rapoport wrote:
> On Thu, Sep 02, 2021 at 02:03:13PM +0000, Konrad Rzeszutek Wilk wrote:
> > 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
> 
> I think this declaration should be removed after you added
> acpi_find_ibft_region().
> 
> Before your changes we had ibft_phys_addr defined in iscsi_ibft_find.c for
> CONFIG_ISCSI_IBFT_FIND=y and the declaration above was needed to avoid
> compilation error in ibft_init().
> 
> With the only use of ibft_phys_addr hidden under #ifdef CONFIG_ISCSI_IBFT_FIND
> this declaration actually hides ibft_phys_addr defined in
> iscsi_ibft_find.c.

Yes good idea. I think this below will work rather nicely:

From 799206c1302e8fabfab5a4151e74a2fe90090590 Mon Sep 17 00:00:00 2001
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Date: Wed, 1 Sep 2021 20:22:11 -0400
Subject: [PATCH] iscsi_ibft: Fix isa_bus_to_virt not working under ARM

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>
---
v2: Remove the ibft_phys_addr as it is defined in iscsi_ibft.h
---
 drivers/firmware/iscsi_ibft.c | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/drivers/firmware/iscsi_ibft.c b/drivers/firmware/iscsi_ibft.c
index 612a59e213df..6e9788324fea 100644
--- a/drivers/firmware/iscsi_ibft.c
+++ b/drivers/firmware/iscsi_ibft.c
@@ -86,10 +86,6 @@ MODULE_VERSION(IBFT_ISCSI_VERSION);
 
 static struct acpi_table_ibft *ibft_addr;
 
-#ifndef CONFIG_ISCSI_IBFT_FIND
-phys_addr_t ibft_phys_addr;
-#endif
-
 struct ibft_hdr {
 	u8 id;
 	u8 version;
@@ -851,7 +847,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 +874,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


      reply	other threads:[~2021-09-02 20:35 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-02 14:03 [PATCH] Fix for iBFT compile issues on ARM64 Konrad Rzeszutek Wilk
2021-09-02 14:03 ` [PATCH] iscsi_ibft: Fix isa_bus_to_virt not working under ARM Konrad Rzeszutek Wilk
2021-09-02 17:14   ` Mike Rapoport
2021-09-02 20:35     ` Konrad Rzeszutek Wilk [this message]

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=YTE1dzQ7ytQWW4Ow@char.us.oracle.com \
    --to=konrad.wilk@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=mlombard@redhat.com \
    --cc=pjones@redhat.com \
    --cc=rppt@kernel.org \
    --cc=vijayendra.suman@oracle.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.