From: kbuild test robot <fengguang.wu@intel.com>
To: intel-wired-lan@osuosl.org
Subject: [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
Date: Sat, 2 Sep 2017 09:41:16 +0800 [thread overview]
Message-ID: <201709020913.pcw87O2v%fengguang.wu@intel.com> (raw)
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@intel.com>
:::::: CC: Jeff Kirsher <jeffrey.t.kirsher@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>
next reply other threads:[~2017-09-02 1:41 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-02 1:41 kbuild test robot [this message]
2017-09-05 21:59 ` [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 Keller, Jacob E
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201709020913.pcw87O2v%fengguang.wu@intel.com \
--to=fengguang.wu@intel.com \
--cc=intel-wired-lan@osuosl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.