From: kbuild test robot <lkp@intel.com>
To: Si-Wei Liu <si-wei.liu@oracle.com>
Cc: kbuild-all@01.org, mst@redhat.com, sridhar.samudrala@intel.com,
stephen@networkplumber.org, davem@davemloft.net, kubakici@wp.pl,
alexander.duyck@gmail.com, jiri@resnulli.us,
netdev@vger.kernel.org,
virtualization@lists.linux-foundation.org, liran.alon@oracle.com,
boris.ostrovsky@oracle.com, vijay.balakrishna@oracle.com,
si-wei liu <si-wei.liu@oracle.com>
Subject: Re: [PATCH net v4] failover: allow name change on IFF_UP slave interfaces
Date: Fri, 29 Mar 2019 21:45:56 +0800 [thread overview]
Message-ID: <201903292115.lNNVjLgD%lkp@intel.com> (raw)
In-Reply-To: <1553816847-28121-1-git-send-email-si-wei.liu@oracle.com>
[-- Attachment #1: Type: text/plain, Size: 5112 bytes --]
Hi Si-Wei,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on net/master]
url: https://github.com/0day-ci/linux/commits/Si-Wei-Liu/failover-allow-name-change-on-IFF_UP-slave-interfaces/20190329-195445
config: x86_64-lkp (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
All errors (new ones prefixed by >>):
net/core/dev.c: In function 'dev_change_name':
>> net/core/dev.c:1252:48: error: passing argument 2 of 'call_netdevice_notifiers_info' from incompatible pointer type [-Werror=incompatible-pointer-types]
call_netdevice_notifiers_info(NETDEV_CHANGE, dev,
^~~
net/core/dev.c:164:12: note: expected 'struct netdev_notifier_info *' but argument is of type 'struct net_device *'
static int call_netdevice_notifiers_info(unsigned long val,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> net/core/dev.c:1252:3: error: too many arguments to function 'call_netdevice_notifiers_info'
call_netdevice_notifiers_info(NETDEV_CHANGE, dev,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/dev.c:164:12: note: declared here
static int call_netdevice_notifiers_info(unsigned long val,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/call_netdevice_notifiers_info +1252 net/core/dev.c
1166
1167 /**
1168 * dev_change_name - change name of a device
1169 * @dev: device
1170 * @newname: name (or format string) must be at least IFNAMSIZ
1171 *
1172 * Change name of a device, can pass format strings "eth%d".
1173 * for wildcarding.
1174 */
1175 int dev_change_name(struct net_device *dev, const char *newname)
1176 {
1177 unsigned char old_assign_type;
1178 char oldname[IFNAMSIZ];
1179 int err = 0;
1180 int ret;
1181 struct net *net;
1182
1183 ASSERT_RTNL();
1184 BUG_ON(!dev_net(dev));
1185
1186 net = dev_net(dev);
1187
1188 /* Allow failover slave to rename even when
1189 * it is up and running.
1190 *
1191 * Failover slaves are special, since userspace
1192 * might rename the slave after the interface
1193 * has been brought up and running due to
1194 * auto-enslavement.
1195 *
1196 * Failover users don't actually care about slave
1197 * name change, as they are only expected to operate
1198 * on master interface directly.
1199 */
1200 if (dev->flags & IFF_UP &&
1201 likely(!(dev->priv_flags & IFF_FAILOVER_SLAVE)))
1202 return -EBUSY;
1203
1204 write_seqcount_begin(&devnet_rename_seq);
1205
1206 if (strncmp(newname, dev->name, IFNAMSIZ) == 0) {
1207 write_seqcount_end(&devnet_rename_seq);
1208 return 0;
1209 }
1210
1211 memcpy(oldname, dev->name, IFNAMSIZ);
1212
1213 err = dev_get_valid_name(net, dev, newname);
1214 if (err < 0) {
1215 write_seqcount_end(&devnet_rename_seq);
1216 return err;
1217 }
1218
1219 if (oldname[0] && !strchr(oldname, '%'))
1220 netdev_info(dev, "renamed from %s\n", oldname);
1221
1222 old_assign_type = dev->name_assign_type;
1223 dev->name_assign_type = NET_NAME_RENAMED;
1224
1225 rollback:
1226 ret = device_rename(&dev->dev, dev->name);
1227 if (ret) {
1228 memcpy(dev->name, oldname, IFNAMSIZ);
1229 dev->name_assign_type = old_assign_type;
1230 write_seqcount_end(&devnet_rename_seq);
1231 return ret;
1232 }
1233
1234 write_seqcount_end(&devnet_rename_seq);
1235
1236 netdev_adjacent_rename_links(dev, oldname);
1237
1238 write_lock_bh(&dev_base_lock);
1239 hlist_del_rcu(&dev->name_hlist);
1240 write_unlock_bh(&dev_base_lock);
1241
1242 synchronize_rcu();
1243
1244 write_lock_bh(&dev_base_lock);
1245 hlist_add_head_rcu(&dev->name_hlist, dev_name_hash(net, dev->name));
1246 write_unlock_bh(&dev_base_lock);
1247
1248 if (unlikely(dev->flags & IFF_UP)) {
1249 struct netdev_notifier_change_info change_info;
1250
1251 change_info.flags_changed = 0;
> 1252 call_netdevice_notifiers_info(NETDEV_CHANGE, dev,
1253 &change_info.info);
1254 }
1255
1256 ret = call_netdevice_notifiers(NETDEV_CHANGENAME, dev);
1257 ret = notifier_to_errno(ret);
1258
1259 if (ret) {
1260 /* err >= 0 after dev_alloc_name() or stores the first errno */
1261 if (err >= 0) {
1262 err = ret;
1263 write_seqcount_begin(&devnet_rename_seq);
1264 memcpy(dev->name, oldname, IFNAMSIZ);
1265 memcpy(oldname, newname, IFNAMSIZ);
1266 dev->name_assign_type = old_assign_type;
1267 old_assign_type = NET_NAME_RENAMED;
1268 goto rollback;
1269 } else {
1270 pr_err("%s: name change rollback failed: %d\n",
1271 dev->name, ret);
1272 }
1273 }
1274
1275 return err;
1276 }
1277
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 26574 bytes --]
next prev parent reply other threads:[~2019-03-29 13:47 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-28 23:47 [PATCH net v4] failover: allow name change on IFF_UP slave interfaces Si-Wei Liu
2019-03-29 5:55 ` Samudrala, Sridhar
2019-03-29 19:50 ` si-wei liu
2019-03-29 22:31 ` Michael S. Tsirkin
2019-03-29 22:58 ` si-wei liu
2019-03-29 13:45 ` kbuild test robot [this message]
2019-03-29 15:15 ` Stephen Hemminger
2019-03-29 15:34 ` Jiri Pirko
2019-03-29 20:01 ` si-wei liu
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=201903292115.lNNVjLgD%lkp@intel.com \
--to=lkp@intel.com \
--cc=alexander.duyck@gmail.com \
--cc=boris.ostrovsky@oracle.com \
--cc=davem@davemloft.net \
--cc=jiri@resnulli.us \
--cc=kbuild-all@01.org \
--cc=kubakici@wp.pl \
--cc=liran.alon@oracle.com \
--cc=mst@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=si-wei.liu@oracle.com \
--cc=sridhar.samudrala@intel.com \
--cc=stephen@networkplumber.org \
--cc=vijay.balakrishna@oracle.com \
--cc=virtualization@lists.linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox