[Intel-wired-lan] [jkirsher-next-queue:dev-queue 84/87] drivers/net/ethernet/intel/i40e/i40e_ethtool.c:4165:14: error: call to '__cmpxchg_wrong_size' declared with attribute error: Bad argument size for cmpxchg
kbuild test robot
fengguang.wu at intel.com
Sat Sep 2 01:41:16 UTC 2017
tree: https://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git dev-queue
head: 08f91a425600cdae9ff6637b7619ef6e25aa3938
commit: 49f85995faccb903cf9256208c9caa7cb2decaf7 [84/87] i40e/i40evf: organize and re-number feature flags
config: i386-allyesconfig (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
git checkout 49f85995faccb903cf9256208c9caa7cb2decaf7
# save the attached .config to linux build tree
make ARCH=i386
All errors (new ones prefixed by >>):
drivers/net/ethernet/intel/i40e/i40e_ethtool.c: In function 'i40e_set_priv_flags':
drivers/net/ethernet/intel/i40e/i40e_ethtool.c:4155:5: warning: '__ret' may be used uninitialized in this function [-Wmaybe-uninitialized]
if (cmpxchg(&pf->flags, orig_flags, new_flags) != orig_flags) {
^
>> drivers/net/ethernet/intel/i40e/i40e_ethtool.c:4165:14: error: call to '__cmpxchg_wrong_size' declared with attribute error: Bad argument size for cmpxchg
* changed in the code above.
^~~~~~~~~~~~~~~~~
vim +/__cmpxchg_wrong_size +4165 drivers/net/ethernet/intel/i40e/i40e_ethtool.c
7e45ab44 Greg Rose 2015-02-06 4087
9ac77266 Shannon Nelson 2015-08-27 4088 /**
9ac77266 Shannon Nelson 2015-08-27 4089 * i40e_set_priv_flags - set private flags
9ac77266 Shannon Nelson 2015-08-27 4090 * @dev: network interface device structure
9ac77266 Shannon Nelson 2015-08-27 4091 * @flags: bit flags to be set
9ac77266 Shannon Nelson 2015-08-27 4092 **/
9ac77266 Shannon Nelson 2015-08-27 4093 static int i40e_set_priv_flags(struct net_device *dev, u32 flags)
9ac77266 Shannon Nelson 2015-08-27 4094 {
9ac77266 Shannon Nelson 2015-08-27 4095 struct i40e_netdev_priv *np = netdev_priv(dev);
9ac77266 Shannon Nelson 2015-08-27 4096 struct i40e_vsi *vsi = np->vsi;
9ac77266 Shannon Nelson 2015-08-27 4097 struct i40e_pf *pf = vsi->back;
49f85995 Jacob Keller 2017-09-01 4098 u32 orig_flags, new_flags, changed_flags;
aca955d8 Alexander Duyck 2017-03-10 4099 u32 i, j;
827de392 Jesse Brandeburg 2015-11-06 4100
841c950d Jacob Keller 2017-06-23 4101 orig_flags = READ_ONCE(pf->flags);
841c950d Jacob Keller 2017-06-23 4102 new_flags = orig_flags;
827de392 Jesse Brandeburg 2015-11-06 4103
aca955d8 Alexander Duyck 2017-03-10 4104 for (i = 0; i < I40E_PRIV_FLAGS_STR_LEN; i++) {
aca955d8 Alexander Duyck 2017-03-10 4105 const struct i40e_priv_flags *priv_flags;
aca955d8 Alexander Duyck 2017-03-10 4106
aca955d8 Alexander Duyck 2017-03-10 4107 priv_flags = &i40e_gstrings_priv_flags[i];
aca955d8 Alexander Duyck 2017-03-10 4108
aca955d8 Alexander Duyck 2017-03-10 4109 if (flags & BIT(i))
841c950d Jacob Keller 2017-06-23 4110 new_flags |= priv_flags->flag;
aca955d8 Alexander Duyck 2017-03-10 4111 else
841c950d Jacob Keller 2017-06-23 4112 new_flags &= ~(priv_flags->flag);
841c950d Jacob Keller 2017-06-23 4113
841c950d Jacob Keller 2017-06-23 4114 /* If this is a read-only flag, it can't be changed */
841c950d Jacob Keller 2017-06-23 4115 if (priv_flags->read_only &&
841c950d Jacob Keller 2017-06-23 4116 ((orig_flags ^ new_flags) & ~BIT(i)))
841c950d Jacob Keller 2017-06-23 4117 return -EOPNOTSUPP;
aca955d8 Alexander Duyck 2017-03-10 4118 }
aca955d8 Alexander Duyck 2017-03-10 4119
aca955d8 Alexander Duyck 2017-03-10 4120 if (pf->hw.pf_id != 0)
aca955d8 Alexander Duyck 2017-03-10 4121 goto flags_complete;
aca955d8 Alexander Duyck 2017-03-10 4122
aca955d8 Alexander Duyck 2017-03-10 4123 for (j = 0; j < I40E_GL_PRIV_FLAGS_STR_LEN; j++) {
aca955d8 Alexander Duyck 2017-03-10 4124 const struct i40e_priv_flags *priv_flags;
aca955d8 Alexander Duyck 2017-03-10 4125
aca955d8 Alexander Duyck 2017-03-10 4126 priv_flags = &i40e_gl_gstrings_priv_flags[j];
aca955d8 Alexander Duyck 2017-03-10 4127
aca955d8 Alexander Duyck 2017-03-10 4128 if (flags & BIT(i + j))
841c950d Jacob Keller 2017-06-23 4129 new_flags |= priv_flags->flag;
9ac77266 Shannon Nelson 2015-08-27 4130 else
841c950d Jacob Keller 2017-06-23 4131 new_flags &= ~(priv_flags->flag);
841c950d Jacob Keller 2017-06-23 4132
841c950d Jacob Keller 2017-06-23 4133 /* If this is a read-only flag, it can't be changed */
841c950d Jacob Keller 2017-06-23 4134 if (priv_flags->read_only &&
841c950d Jacob Keller 2017-06-23 4135 ((orig_flags ^ new_flags) & ~BIT(i)))
841c950d Jacob Keller 2017-06-23 4136 return -EOPNOTSUPP;
aca955d8 Alexander Duyck 2017-03-10 4137 }
aca955d8 Alexander Duyck 2017-03-10 4138
aca955d8 Alexander Duyck 2017-03-10 4139 flags_complete:
841c950d Jacob Keller 2017-06-23 4140 /* Before we finalize any flag changes, we need to perform some
841c950d Jacob Keller 2017-06-23 4141 * checks to ensure that the changes are supported and safe.
841c950d Jacob Keller 2017-06-23 4142 */
841c950d Jacob Keller 2017-06-23 4143
841c950d Jacob Keller 2017-06-23 4144 /* ATR eviction is not supported on all devices */
841c950d Jacob Keller 2017-06-23 4145 if ((new_flags & I40E_FLAG_HW_ATR_EVICT_ENABLED) &&
841c950d Jacob Keller 2017-06-23 4146 !(pf->hw_features & I40E_HW_ATR_EVICT_CAPABLE))
841c950d Jacob Keller 2017-06-23 4147 return -EOPNOTSUPP;
841c950d Jacob Keller 2017-06-23 4148
841c950d Jacob Keller 2017-06-23 4149 /* Compare and exchange the new flags into place. If we failed, that
49f85995 Jacob Keller 2017-09-01 4150 * is if cmpxchg returns anything but the old value, this means that
841c950d Jacob Keller 2017-06-23 4151 * something else has modified the flags variable since we copied it
841c950d Jacob Keller 2017-06-23 4152 * originally. We'll just punt with an error and log something in the
841c950d Jacob Keller 2017-06-23 4153 * message buffer.
841c950d Jacob Keller 2017-06-23 4154 */
49f85995 Jacob Keller 2017-09-01 @4155 if (cmpxchg(&pf->flags, orig_flags, new_flags) != orig_flags) {
841c950d Jacob Keller 2017-06-23 4156 dev_warn(&pf->pdev->dev,
841c950d Jacob Keller 2017-06-23 4157 "Unable to update pf->flags as it was modified by another thread...\n");
841c950d Jacob Keller 2017-06-23 4158 return -EAGAIN;
841c950d Jacob Keller 2017-06-23 4159 }
841c950d Jacob Keller 2017-06-23 4160
841c950d Jacob Keller 2017-06-23 4161 changed_flags = orig_flags ^ new_flags;
9ac77266 Shannon Nelson 2015-08-27 4162
aca955d8 Alexander Duyck 2017-03-10 4163 /* Process any additional changes needed as a result of flag changes.
aca955d8 Alexander Duyck 2017-03-10 4164 * The changed_flags value reflects the list of bits that were
aca955d8 Alexander Duyck 2017-03-10 @4165 * changed in the code above.
ef17178c Jesse Brandeburg 2015-09-03 4166 */
234dc4e6 Jacob Keller 2016-09-06 4167
aca955d8 Alexander Duyck 2017-03-10 4168 /* Flush current ATR settings if ATR was disabled */
aca955d8 Alexander Duyck 2017-03-10 4169 if ((changed_flags & I40E_FLAG_FD_ATR_ENABLED) &&
aca955d8 Alexander Duyck 2017-03-10 4170 !(pf->flags & I40E_FLAG_FD_ATR_ENABLED)) {
47994c11 Jacob Keller 2017-04-19 4171 pf->flags |= I40E_FLAG_FD_ATR_AUTO_DISABLED;
0da36b97 Jacob Keller 2017-04-19 4172 set_bit(__I40E_FD_FLUSH_REQUESTED, pf->state);
ef17178c Jesse Brandeburg 2015-09-03 4173 }
ef17178c Jesse Brandeburg 2015-09-03 4174
aca955d8 Alexander Duyck 2017-03-10 4175 if (changed_flags & I40E_FLAG_TRUE_PROMISC_SUPPORT) {
aca955d8 Alexander Duyck 2017-03-10 4176 u16 sw_flags = 0, valid_flags = 0;
aca955d8 Alexander Duyck 2017-03-10 4177 int ret;
1cdfd88f Shannon Nelson 2015-09-28 4178
b5569892 Anjali Singhai Jain 2016-05-03 4179 if (!(pf->flags & I40E_FLAG_TRUE_PROMISC_SUPPORT))
b5569892 Anjali Singhai Jain 2016-05-03 4180 sw_flags = I40E_AQ_SET_SWITCH_CFG_PROMISC;
b5569892 Anjali Singhai Jain 2016-05-03 4181 valid_flags = I40E_AQ_SET_SWITCH_CFG_PROMISC;
b5569892 Anjali Singhai Jain 2016-05-03 4182 ret = i40e_aq_set_switch_config(&pf->hw, sw_flags, valid_flags,
b5569892 Anjali Singhai Jain 2016-05-03 4183 NULL);
b5569892 Anjali Singhai Jain 2016-05-03 4184 if (ret && pf->hw.aq.asq_last_status != I40E_AQ_RC_ESRCH) {
b5569892 Anjali Singhai Jain 2016-05-03 4185 dev_info(&pf->pdev->dev,
b5569892 Anjali Singhai Jain 2016-05-03 4186 "couldn't set switch config bits, err %s aq_err %s\n",
b5569892 Anjali Singhai Jain 2016-05-03 4187 i40e_stat_str(&pf->hw, ret),
b5569892 Anjali Singhai Jain 2016-05-03 4188 i40e_aq_str(&pf->hw,
b5569892 Anjali Singhai Jain 2016-05-03 4189 pf->hw.aq.asq_last_status));
b5569892 Anjali Singhai Jain 2016-05-03 4190 /* not a fatal problem, just keep going */
b5569892 Anjali Singhai Jain 2016-05-03 4191 }
b5569892 Anjali Singhai Jain 2016-05-03 4192 }
b5569892 Anjali Singhai Jain 2016-05-03 4193
aca955d8 Alexander Duyck 2017-03-10 4194 /* Issue reset to cause things to take effect, as additional bits
aca955d8 Alexander Duyck 2017-03-10 4195 * are added we will need to create a mask of bits requiring reset
aca955d8 Alexander Duyck 2017-03-10 4196 */
04322606 Mitch Williams 2017-09-01 4197 if (changed_flags & (I40E_FLAG_VEB_STATS_ENABLED |
04322606 Mitch Williams 2017-09-01 4198 I40E_FLAG_LEGACY_RX |
04322606 Mitch Williams 2017-09-01 4199 I40E_FLAG_SOURCE_PRUNING_DISABLED))
373149fc Maciej Sosin 2017-04-05 4200 i40e_do_reset(pf, BIT(__I40E_PF_RESET_REQUESTED), true);
827de392 Jesse Brandeburg 2015-11-06 4201
9ac77266 Shannon Nelson 2015-08-27 4202 return 0;
9ac77266 Shannon Nelson 2015-08-27 4203 }
9ac77266 Shannon Nelson 2015-08-27 4204
:::::: The code at line 4165 was first introduced by commit
:::::: aca955d831a644dc1dc22b60b30ff669567580f9 i40e: Clean up handling of private flags
:::::: TO: Alexander Duyck <alexander.h.duyck at intel.com>
:::::: CC: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 59910 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20170902/d6c935a6/attachment-0001.bin>
More information about the Intel-wired-lan
mailing list