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);
 }
 

Reply via email to