[dpdk-stable] please check if patch 'net/cxgbe: fix other misc build issues for Windows' is applicable to LTS release 17.11.6

Yongseok Koh yskoh at mellanox.com
Fri Mar 8 19:09:01 CET 2019


Hi,

Even though the patch doesn't have "Cc: stable at dpdk.org" tag or "Fixes:" tag,
the commit log says it fixes some issue. Tags might be mistakenly missed. We
don't want to miss any fixes for stable releases. That's why I'm sending this
email.

Please send backports if you think the patch should be merged to LTS release 17.11.6
Or, let me know if you have any comments, say, need more time, or it's worthless
to backport it. And please send it to "stable at dpdk.org", but not "dev at dpdk.org".

FYI, branch 17.11 is located at tree:
   git://dpdk.org/dpdk-stable

It'd be great if you could do that in one or two weeks. Also, please add a
heading line like below before the commit log body:
    [ backported from upstream commit xxx ]

Example: http://dpdk.org/browse/dpdk-stable/commit/?h=16.07&id=c4831394c7d1944d8ec27d52c22997f20d19718e

Also please mention the target LTS in the subject line, as we have
more than one at the same time, for example:

    [PATCH 17.11] foo/bar: fix baz

With git send-email, this can be achieved by appending the parameter:

    --subject-prefix='17.11'


Thanks.

Yongseok

---
>From fdd552100626750096235eca5c9ecfd2c627dac8 Mon Sep 17 00:00:00 2001
From: Rahul Lakkireddy <rahul.lakkireddy at chelsio.com>
Date: Wed, 19 Dec 2018 21:58:26 +0530
Subject: [PATCH] net/cxgbe: fix other misc build issues for Windows

Fix following build errors reported by Intel C++ compiler in Windows
build.

C:\> t4_hw.c(5105): warning #147: declaration is incompatible with
"int t4_bar2_sge_qregs(struct adapter *, unsigned int, unsigned int,
u64={uint64_t={unsigned __int64}} *, unsigned int *)"
(declared at line 524 of "..\..\..\..\drivers\net\cxgbe\base\common.h")
    int t4_bar2_sge_qregs(struct adapter *adapter, unsigned int qid,
        ^

C:\> cxgbe_filter.c(42): error : expected an expression
        n_user_filters = mult_frac(adap->tids.nftids,
                         ^

C:\> sge.c(400): error : expression must be a pointer to a complete
object type
                  (uint16_t)(RTE_PTR_ALIGN((char *)mbuf->buf_addr +
                             ^

Build Environment:
1. Target OS: Microsoft Windows Server 2016
2. Compiler: Intel C++ Compiler from Intel Parallel Studio XE 2019 [1]
3. Development Tools:
   3.1 Microsoft Visual Studio 2017 Professional
   3.2 Windows Software Development Kit (SDK) v10.0.17763
   3.3 Windows Driver Kit (WDK) v10.0.17763

[1] https://software.intel.com/en-us/parallel-studio-xe

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy at chelsio.com>
---
 drivers/net/cxgbe/base/common.h  |  2 +-
 drivers/net/cxgbe/cxgbe_compat.h | 14 +++++++-------
 drivers/net/cxgbe/sge.c          |  3 ++-
 3 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/drivers/net/cxgbe/base/common.h b/drivers/net/cxgbe/base/common.h
index 84311fc95..973d4d7dd 100644
--- a/drivers/net/cxgbe/base/common.h
+++ b/drivers/net/cxgbe/base/common.h
@@ -522,7 +522,7 @@ void t4_read_rss_key(struct adapter *adap, u32 *key);
 
 enum t4_bar2_qtype { T4_BAR2_QTYPE_EGRESS, T4_BAR2_QTYPE_INGRESS };
 int t4_bar2_sge_qregs(struct adapter *adapter, unsigned int qid,
-		      unsigned int qtype, u64 *pbar2_qoffset,
+		      enum t4_bar2_qtype qtype, u64 *pbar2_qoffset,
 		      unsigned int *pbar2_qid);
 
 int t4_init_sge_params(struct adapter *adapter);
diff --git a/drivers/net/cxgbe/cxgbe_compat.h b/drivers/net/cxgbe/cxgbe_compat.h
index 686ca6e0a..edc8ea57d 100644
--- a/drivers/net/cxgbe/cxgbe_compat.h
+++ b/drivers/net/cxgbe/cxgbe_compat.h
@@ -276,12 +276,12 @@ static inline void writel_relaxed(unsigned int val, volatile void __iomem *addr)
  * Multiplies an integer by a fraction, while avoiding unnecessary
  * overflow or loss of precision.
  */
-#define mult_frac(x, numer, denom)(                     \
-{                                                       \
-	typeof(x) quot = (x) / (denom);                 \
-	typeof(x) rem  = (x) % (denom);                 \
-	(quot * (numer)) + ((rem * (numer)) / (denom)); \
-}                                                       \
-)
+static inline unsigned int mult_frac(unsigned int x, unsigned int numer,
+				     unsigned int denom)
+{
+	unsigned int quot = x / denom;
+	unsigned int rem = x % denom;
 
+	return (quot * numer) + ((rem * numer) / denom);
+}
 #endif /* _CXGBE_COMPAT_H_ */
diff --git a/drivers/net/cxgbe/sge.c b/drivers/net/cxgbe/sge.c
index bf0afb138..673c4fbb3 100644
--- a/drivers/net/cxgbe/sge.c
+++ b/drivers/net/cxgbe/sge.c
@@ -397,7 +397,8 @@ static unsigned int refill_fl_usembufs(struct adapter *adap, struct sge_fl *q,
 
 		rte_mbuf_refcnt_set(mbuf, 1);
 		mbuf->data_off =
-			(uint16_t)(RTE_PTR_ALIGN((char *)mbuf->buf_addr +
+			(uint16_t)((char *)
+				   RTE_PTR_ALIGN((char *)mbuf->buf_addr +
 						 RTE_PKTMBUF_HEADROOM,
 						 adap->sge.fl_align) -
 				   (char *)mbuf->buf_addr);
-- 
2.11.0



More information about the stable mailing list