From mboxrd@z Thu Jan 1 00:00:00 1970 From: kbuild test robot Subject: Re: [PATCH net-next] net: stmmac: Add support for U32 TC filter using Flexible RX Parser Date: Fri, 4 May 2018 20:04:24 +0800 Message-ID: <201805041945.3gZMiFtY%fengguang.wu@intel.com> References: <9f57f98ef35360619001882fdcf0d7ef0558863f.1525351447.git.joabreu@synopsys.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: kbuild-all@01.org, netdev@vger.kernel.org, Jose Abreu , "David S. Miller" , Joao Pinto , Vitor Soares , Giuseppe Cavallaro , Alexandre Torgue To: Jose Abreu Return-path: Received: from mga18.intel.com ([134.134.136.126]:47724 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751001AbeEDMEq (ORCPT ); Fri, 4 May 2018 08:04:46 -0400 Content-Disposition: inline In-Reply-To: <9f57f98ef35360619001882fdcf0d7ef0558863f.1525351447.git.joabreu@synopsys.com> Sender: netdev-owner@vger.kernel.org List-ID: Hi Jose, I love your patch! Perhaps something to improve: [auto build test WARNING on net-next/master] url: https://github.com/0day-ci/linux/commits/Jose-Abreu/net-stmmac-Add-support-for-U32-TC-filter-using-Flexible-RX-Parser/20180504-164205 reproduce: # apt-get install sparse make ARCH=x86_64 allmodconfig make C=1 CF=-D__CHECK_ENDIAN__ sparse warnings: (new ones prefixed by >>) >> drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c:104:14: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [unsigned] [usertype] data @@ got ed int [unsigned] [usertype] data @@ drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c:104:14: expected unsigned int [unsigned] [usertype] data drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c:104:14: got restricted __be32 [usertype] val >> drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c:105:14: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [unsigned] [usertype] mask @@ got ed int [unsigned] [usertype] mask @@ drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c:105:14: expected unsigned int [unsigned] [usertype] mask drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c:105:14: got restricted __be32 [usertype] mask vim +104 drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c 89 90 static int tc_fill_entry(struct stmmac_priv *priv, 91 struct tc_cls_u32_offload *cls) 92 { 93 struct stmmac_tc_entry *entry, *frag = NULL; 94 struct tc_u32_sel *sel = cls->knode.sel; 95 u32 off, data, mask, real_off, rem; 96 u32 prio = cls->common.prio; 97 int ret; 98 99 /* Only 1 match per entry */ 100 if (sel->nkeys <= 0 || sel->nkeys > 1) 101 return -EINVAL; 102 103 off = sel->keys[0].off << sel->offshift; > 104 data = sel->keys[0].val; > 105 mask = sel->keys[0].mask; 106 107 switch (ntohs(cls->common.protocol)) { 108 case ETH_P_ALL: 109 break; 110 case ETH_P_IP: 111 off += ETH_HLEN; 112 break; 113 default: 114 return -EINVAL; 115 } 116 117 if (off > priv->tc_off_max) 118 return -EINVAL; 119 120 real_off = off / 4; 121 rem = off % 4; 122 123 entry = tc_find_entry(priv, cls, true); 124 if (!entry) 125 return -EINVAL; 126 127 if (rem) { 128 frag = tc_find_entry(priv, cls, true); 129 if (!frag) { 130 ret = -EINVAL; 131 goto err_unuse; 132 } 133 134 entry->frag_ptr = frag; 135 entry->val.match_en = (mask << (rem * 8)) & 136 GENMASK(31, rem * 8); 137 entry->val.match_data = (data << (rem * 8)) & 138 GENMASK(31, rem * 8); 139 entry->val.frame_offset = real_off; 140 entry->prio = prio; 141 142 frag->val.match_en = (mask >> (rem * 8)) & 143 GENMASK(rem * 8 - 1, 0); 144 frag->val.match_data = (data >> (rem * 8)) & 145 GENMASK(rem * 8 - 1, 0); 146 frag->val.frame_offset = real_off + 1; 147 frag->prio = prio; 148 frag->is_frag = true; 149 } else { 150 entry->frag_ptr = NULL; 151 entry->val.match_en = mask; 152 entry->val.match_data = data; 153 entry->val.frame_offset = real_off; 154 entry->prio = prio; 155 } 156 157 ret = tc_fill_actions(entry, frag, cls); 158 if (ret) 159 goto err_unuse; 160 161 return 0; 162 163 err_unuse: 164 if (frag) 165 frag->in_use = false; 166 entry->in_use = false; 167 return ret; 168 } 169 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation