Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/pci Not use _LP64 but sizeof(bus_addr_t) for getting...



details:   https://anonhg.NetBSD.org/src/rev/4049b681a287
branches:  trunk
changeset: 847114:4049b681a287
user:      yamaguchi <yamaguchi%NetBSD.org@localhost>
date:      Wed Dec 11 01:51:22 2019 +0000

description:
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.

diffstat:

 sys/dev/pci/if_ixl.c |  39 +++++++++++++++++++++++++++------------
 1 files changed, 27 insertions(+), 12 deletions(-)

diffs (57 lines):

diff -r 3b54dc437e63 -r 4049b681a287 sys/dev/pci/if_ixl.c
--- a/sys/dev/pci/if_ixl.c      Tue Dec 10 22:30:34 2019 +0000
+++ b/sys/dev/pci/if_ixl.c      Wed Dec 11 01:51:22 2019 +0000
@@ -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 @@
     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);
 }
 



Home | Main Index | Thread Index | Old Index