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