Module Name: src
Committed By: yamaguchi
Date: Wed Dec 11 01:51:23 UTC 2019
Modified Files:
src/sys/dev/pci: if_ixl.c
Log Message:
Not use _LP64 but sizeof(bus_addr_t) for getting size of address
It makes ixl(4) be able to work on ILP32
pointed out by thorpej@. thanks.
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/dev/pci/if_ixl.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/pci/if_ixl.c
diff -u src/sys/dev/pci/if_ixl.c:1.1 src/sys/dev/pci/if_ixl.c:1.2
--- src/sys/dev/pci/if_ixl.c:1.1 Tue Dec 10 12:08:52 2019
+++ src/sys/dev/pci/if_ixl.c Wed Dec 11 01:51:22 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: if_ixl.c,v 1.1 2019/12/10 12:08:52 yamaguchi Exp $ */
+/* $NetBSD: if_ixl.c,v 1.2 2019/12/11 01:51:22 yamaguchi Exp $ */
/*
* Copyright (c) 2013-2015, Intel Corporation
@@ -803,21 +803,36 @@ static const struct ixl_aq_regs ixl_pf_a
bus_space_barrier((_s)->sc_memt, (_s)->sc_memh, (_r), (_l), (_o))
#define ixl_flush(_s) (void)ixl_rd((_s), I40E_GLGEN_STAT)
#define ixl_nqueues(_sc) (1 << ((_sc)->sc_nqueue_pairs - 1))
-#ifdef _LP64
-#define ixl_dmamem_hi(_ixm) (uint32_t)(IXL_DMA_DVA(_ixm) >> 32)
-#else
-#define ixl_dmamem_hi(_ixm) 0
-#endif
-#define ixl_dmamem_lo(_ixm) (uint32_t)IXL_DMA_DVA(_ixm)
+
+static inline uint32_t
+ixl_dmamem_hi(struct ixl_dmamem *ixm)
+{
+ uint32_t val;
+
+ if (sizeof(IXL_DMA_DVA(ixm)) > 4)
+ val = (uint32_t)(IXL_DMA_DVA(ixm) >> 32);
+ else
+ val = 0;
+
+ return val;
+}
+
+static inline uint32_t
+ixl_dmamem_lo(struct ixl_dmamem *ixm)
+{
+
+ return (uint32_t)IXL_DMA_DVA(ixm);
+}
static inline void
ixl_aq_dva(struct ixl_aq_desc *iaq, bus_addr_t addr)
{
-#ifdef _LP64
- iaq->iaq_param[2] = htole32(addr >> 32);
-#else
- iaq->iaq_param[2] = htole32(0);
-#endif
+
+ if (sizeof(addr) > 4)
+ iaq->iaq_param[2] = htole32(addr >> 32);
+ else
+ iaq->iaq_param[2] = htole32(0);
+
iaq->iaq_param[3] = htole32(addr);
}