All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Helgaas <helgaas@kernel.org>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Ray Jui <rjui@broadcom.com>, Hauke Mehrtens <hauke@hauke-m.de>,
	linux-arm-kernel@lists.infradead.org,
	Kevin Hilman <khilman@kernel.org>,
	Tyler Baker <tyler.baker@linaro.org>,
	lkml <linux-kernel@vger.kernel.org>,
	Olof Johansson <olof@lixom.net>, Mark Brown <broonie@kernel.org>,
	bcm-kernel-feedback-list@broadcom.com,
	Linux PCI <linux-pci@vger.kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>
Subject: Re: [PATCH v2] PCI: iproc: fix 32-bit build error
Date: Thu, 15 Oct 2015 16:01:13 -0500	[thread overview]
Message-ID: <20151015210113.GA13636@localhost> (raw)
In-Reply-To: <5754881.OPA6La0Zg0@wuerfel>

On Thu, Oct 15, 2015 at 09:40:45PM +0200, Arnd Bergmann wrote:
> The iproc PCI driver tries to figure out whether the MMIO window has
> a valid size, but does this using a 64-bit modulo operation, which
> is not allowed on 32-bit kernels and leads to a link error:
> 
> drivers/built-in.o: In function `iproc_pcie_setup':
> :(.text+0x4b798): undefined reference to `__aeabi_uldivmod'
> 
> This works around that error by using the div64_u64() function
> provided by the kernel. While this is an expensive operation,
> it is harmless because we only call it during the probing
> of the driver.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Acked-by: Ray Jui <rjui@broadcom.com>
> Fixes: 0ab99ca8eb6c ("PCI: iproc: Fix compile warnings")

This *looks* like it should be fixing 90e4032eeaf2 ("PCI: iproc: Add
outbound mapping support"), not 0ab99ca8eb6c.

90e4032eeaf2 added the "if (size % ob->window_size)".

Is this more subtle than that?

> ---
> On Thursday 15 October 2015 09:19:27 Ray Jui wrote:
> > On 10/15/2015 9:00 AM, Bjorn Helgaas wrote:
> > > 
> > > Ping; I can easily fix up the static, but it'd be nice to have real acks
> > > from Ray and Hauke.
> 
> 
> Argh, I knew there was one patch from my build fixes that I needed to
> redo, I just couldn't find it again. Thanks for the reminder.
> 
> 
> diff --git a/drivers/pci/host/pcie-iproc.c b/drivers/pci/host/pcie-iproc.c
> index f3481ddff344..9193951ae861 100644
> --- a/drivers/pci/host/pcie-iproc.c
> +++ b/drivers/pci/host/pcie-iproc.c
> @@ -241,6 +241,7 @@ static int iproc_pcie_setup_ob(struct iproc_pcie *pcie, u64 axi_addr,
>  	struct iproc_pcie_ob *ob = &pcie->ob;
>  	unsigned i;
>  	u64 max_size = (u64)ob->window_size * MAX_NUM_OB_WINDOWS;
> +	u64 remainder;
>  
>  	if (size > max_size) {
>  		dev_err(pcie->dev,
> @@ -249,7 +250,8 @@ static int iproc_pcie_setup_ob(struct iproc_pcie *pcie, u64 axi_addr,
>  		return -EINVAL;
>  	}
>  
> -	if (size % ob->window_size) {
> +	div64_u64_rem(size, ob->window_size, &remainder);
> +	if (remainder) {
>  		dev_err(pcie->dev,
>  			"res size %pap needs to be multiple of window size %pap\n",
>  			&size, &ob->window_size);
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: helgaas@kernel.org (Bjorn Helgaas)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2] PCI: iproc: fix 32-bit build error
Date: Thu, 15 Oct 2015 16:01:13 -0500	[thread overview]
Message-ID: <20151015210113.GA13636@localhost> (raw)
In-Reply-To: <5754881.OPA6La0Zg0@wuerfel>

On Thu, Oct 15, 2015 at 09:40:45PM +0200, Arnd Bergmann wrote:
> The iproc PCI driver tries to figure out whether the MMIO window has
> a valid size, but does this using a 64-bit modulo operation, which
> is not allowed on 32-bit kernels and leads to a link error:
> 
> drivers/built-in.o: In function `iproc_pcie_setup':
> :(.text+0x4b798): undefined reference to `__aeabi_uldivmod'
> 
> This works around that error by using the div64_u64() function
> provided by the kernel. While this is an expensive operation,
> it is harmless because we only call it during the probing
> of the driver.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Acked-by: Ray Jui <rjui@broadcom.com>
> Fixes: 0ab99ca8eb6c ("PCI: iproc: Fix compile warnings")

This *looks* like it should be fixing 90e4032eeaf2 ("PCI: iproc: Add
outbound mapping support"), not 0ab99ca8eb6c.

90e4032eeaf2 added the "if (size % ob->window_size)".

Is this more subtle than that?

> ---
> On Thursday 15 October 2015 09:19:27 Ray Jui wrote:
> > On 10/15/2015 9:00 AM, Bjorn Helgaas wrote:
> > > 
> > > Ping; I can easily fix up the static, but it'd be nice to have real acks
> > > from Ray and Hauke.
> 
> 
> Argh, I knew there was one patch from my build fixes that I needed to
> redo, I just couldn't find it again. Thanks for the reminder.
> 
> 
> diff --git a/drivers/pci/host/pcie-iproc.c b/drivers/pci/host/pcie-iproc.c
> index f3481ddff344..9193951ae861 100644
> --- a/drivers/pci/host/pcie-iproc.c
> +++ b/drivers/pci/host/pcie-iproc.c
> @@ -241,6 +241,7 @@ static int iproc_pcie_setup_ob(struct iproc_pcie *pcie, u64 axi_addr,
>  	struct iproc_pcie_ob *ob = &pcie->ob;
>  	unsigned i;
>  	u64 max_size = (u64)ob->window_size * MAX_NUM_OB_WINDOWS;
> +	u64 remainder;
>  
>  	if (size > max_size) {
>  		dev_err(pcie->dev,
> @@ -249,7 +250,8 @@ static int iproc_pcie_setup_ob(struct iproc_pcie *pcie, u64 axi_addr,
>  		return -EINVAL;
>  	}
>  
> -	if (size % ob->window_size) {
> +	div64_u64_rem(size, ob->window_size, &remainder);
> +	if (remainder) {
>  		dev_err(pcie->dev,
>  			"res size %pap needs to be multiple of window size %pap\n",
>  			&size, &ob->window_size);
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2015-10-15 21:01 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-16  0:39 [PATCH 0/8] Broadcom iProc PCIe fixes and outbound mapping support Ray Jui
2015-09-16  0:39 ` Ray Jui
2015-09-16  0:39 ` [PATCH 1/8] PCI: iproc: Fix code comment Ray Jui
2015-09-16  0:39   ` Ray Jui
2015-09-16  0:39 ` [PATCH 2/8] PCI: iproc: Remove unused code Ray Jui
2015-09-16  0:39   ` Ray Jui
2015-09-16  0:39 ` [PATCH 3/8] PCI: iproc: Remove ARCH specific flag Ray Jui
2015-09-16  0:39   ` Ray Jui
2015-09-16  0:39 ` [PATCH 4/8] PCI: iproc: Fix PCIe reset logic Ray Jui
2015-09-16  0:39   ` Ray Jui
2015-09-16  0:39 ` [PATCH 5/8] PCI: iproc: Improve link detection logic Ray Jui
2015-09-16  0:39   ` Ray Jui
2015-09-16  0:39 ` [PATCH 6/8] PCI: iproc: Update iProc PCIe device tree bindings Ray Jui
2015-09-16  0:39   ` Ray Jui
2015-09-16  0:39 ` [PATCH 7/8] PCI: iproc: Add outbound mapping support Ray Jui
2015-09-16  0:39   ` Ray Jui
2015-10-13 17:58   ` Kevin Hilman
2015-10-13 17:58     ` Kevin Hilman
2015-10-13 17:58     ` Kevin Hilman
2015-10-13 20:02     ` [PATCH] PCI: iproc: fix 32-bit build error Arnd Bergmann
2015-10-13 20:02       ` Arnd Bergmann
2015-10-13 20:06       ` Hauke Mehrtens
2015-10-13 20:06         ` Hauke Mehrtens
2015-10-13 20:11         ` Ray Jui
2015-10-13 20:11           ` Ray Jui
2015-10-13 21:00           ` Arnd Bergmann
2015-10-13 21:00             ` Arnd Bergmann
2015-10-15 16:00             ` Bjorn Helgaas
2015-10-15 16:00               ` Bjorn Helgaas
2015-10-15 16:19               ` Ray Jui
2015-10-15 16:19                 ` Ray Jui
2015-10-15 19:40                 ` [PATCH v2] " Arnd Bergmann
2015-10-15 19:40                   ` Arnd Bergmann
2015-10-15 20:57                   ` Hauke Mehrtens
2015-10-15 20:57                     ` Hauke Mehrtens
2015-10-15 21:01                   ` Bjorn Helgaas [this message]
2015-10-15 21:01                     ` Bjorn Helgaas
2015-10-16  9:47                     ` Arnd Bergmann
2015-10-16  9:47                       ` Arnd Bergmann
2015-10-16 13:23                       ` Bjorn Helgaas
2015-10-16 13:23                         ` Bjorn Helgaas
2015-10-13 21:21       ` [PATCH] " Kevin Hilman
2015-10-13 21:21         ` Kevin Hilman
2015-09-16  0:39 ` [PATCH 8/8] PCI: iproc: Fix compile warnings Ray Jui
2015-09-16  0:39   ` Ray Jui
2015-09-25 23:21 ` [PATCH 0/8] Broadcom iProc PCIe fixes and outbound mapping support Bjorn Helgaas
2015-09-25 23:21   ` Bjorn Helgaas

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=20151015210113.GA13636@localhost \
    --to=helgaas@kernel.org \
    --cc=arnd@arndb.de \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=bhelgaas@google.com \
    --cc=broonie@kernel.org \
    --cc=hauke@hauke-m.de \
    --cc=khilman@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=olof@lixom.net \
    --cc=rjui@broadcom.com \
    --cc=tyler.baker@linaro.org \
    /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.