Message ID | 20220401232411.313881-1-dmichail@fungible.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 31ac3bcee47b8628d676bf4080c56b238d0222d1 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] net/fungible: Fix reference to __udivdi3 on 32b builds | expand |
Hello: This patch was applied to netdev/net.git (master) by Jakub Kicinski <kuba@kernel.org>: On Fri, 1 Apr 2022 16:24:11 -0700 you wrote: > 32b builds with CONFIG_PHYS_ADDR_T_64BIT=y, such as i386 PAE, > raise a linker error due to a 64b division: > > ld: drivers/net/ethernet/fungible/funcore/fun_dev.o: in function > `fun_dev_enable': > (.text+0xe1a): undefined reference to `__udivdi3' > > [...] Here is the summary with links: - [net] net/fungible: Fix reference to __udivdi3 on 32b builds https://git.kernel.org/netdev/net/c/31ac3bcee47b You are awesome, thank you!
diff --git a/drivers/net/ethernet/fungible/funcore/fun_dev.c b/drivers/net/ethernet/fungible/funcore/fun_dev.c index 5d7aef73df61..fb5120d90f26 100644 --- a/drivers/net/ethernet/fungible/funcore/fun_dev.c +++ b/drivers/net/ethernet/fungible/funcore/fun_dev.c @@ -586,8 +586,8 @@ static int fun_get_dev_limits(struct fun_dev *fdev) /* Calculate the max QID based on SQ/CQ/doorbell counts. * SQ/CQ doorbells alternate. */ - num_dbs = (pci_resource_len(pdev, 0) - NVME_REG_DBS) / - (fdev->db_stride * 4); + num_dbs = (pci_resource_len(pdev, 0) - NVME_REG_DBS) >> + (2 + NVME_CAP_STRIDE(fdev->cap_reg)); fdev->max_qid = min3(cq_count, sq_count, num_dbs / 2) - 1; fdev->kern_end_qid = fdev->max_qid + 1; return 0;
32b builds with CONFIG_PHYS_ADDR_T_64BIT=y, such as i386 PAE, raise a linker error due to a 64b division: ld: drivers/net/ethernet/fungible/funcore/fun_dev.o: in function `fun_dev_enable': (.text+0xe1a): undefined reference to `__udivdi3' The divisor in the offendinng expression is a power of 2. Change it to use an explicit right shift. Fixes: e1ffcc66818f ("net/fungible: Add service module for Fungible drivers") Reported-by: Randy Dunlap <rdunlap@infradead.org> Signed-off-by: Dimitris Michailidis <dmichail@fungible.com> --- drivers/net/ethernet/fungible/funcore/fun_dev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)