Please check the the returns on lines 9782 and 9793.
---------- Forwarded message ----------
Date: Wed, 23 Jun 2021 19:03:13 +0800
From: kernel test robot <lkp(a)intel.com>
To: kbuild(a)lists.01.org
Cc: lkp(a)intel.com, Julia Lawall <julia.lawall(a)lip6.fr>
Subject: [jpirko-mlxsw:linecards_bu5 50/110] net/core/devlink.c:9793:2-8:
preceding lock on line 9774
CC: kbuild-all(a)lists.01.org
TO: Jiri Pirko <jiri(a)nvidia.com>
tree:
https://github.com/jpirko/linux_mlxsw linecards_bu5
head: ac32eea04a0d84715c80f82df76faa5944665c31
commit: d54bba0f8a351c19ac1afe5ab901b430712f38f4 [50/110] devlink: implement line card
provisioning
:::::: branch date: 6 days ago
:::::: commit date: 6 days ago
config: sparc-randconfig-c004-20210622 (attached as .config)
compiler: sparc-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Julia Lawall <julia.lawall(a)lip6.fr>
cocci warnings: (new ones prefixed by >>)
> net/core/devlink.c:9793:2-8: preceding lock on line 9774
vim +9793 net/core/devlink.c
d54bba0f8a351c Jiri Pirko 2020-12-31 9751
d54bba0f8a351c Jiri Pirko 2020-12-31 9752
3ed099532e7d71 Jiri Pirko 2020-12-28 9753 /**
3ed099532e7d71 Jiri Pirko 2020-12-28 9754 * devlink_linecard_create - Create devlink
linecard
3ed099532e7d71 Jiri Pirko 2020-12-28 9755 *
3ed099532e7d71 Jiri Pirko 2020-12-28 9756 * @devlink: devlink
d54bba0f8a351c Jiri Pirko 2020-12-31 9757 * @linecard: devlink linecard
3ed099532e7d71 Jiri Pirko 2020-12-28 9758 * @linecard_index: driver-specific numerical
identifier of the linecard
3ed099532e7d71 Jiri Pirko 2020-12-28 9759 *
3ed099532e7d71 Jiri Pirko 2020-12-28 9760 * Create devlink linecard instance with
provided linecard index.
3ed099532e7d71 Jiri Pirko 2020-12-28 9761 * Caller can use any indexing, even
hw-related one.
3ed099532e7d71 Jiri Pirko 2020-12-28 9762 */
d54bba0f8a351c Jiri Pirko 2020-12-31 9763 struct devlink_linecard *
d54bba0f8a351c Jiri Pirko 2020-12-31 9764 devlink_linecard_create(struct devlink
*devlink, unsigned int linecard_index,
d54bba0f8a351c Jiri Pirko 2020-12-31 9765 const struct devlink_linecard_ops *ops,
void *priv)
3ed099532e7d71 Jiri Pirko 2020-12-28 9766 {
3ed099532e7d71 Jiri Pirko 2020-12-28 9767 struct devlink_linecard *linecard;
d54bba0f8a351c Jiri Pirko 2020-12-31 9768 int err;
d54bba0f8a351c Jiri Pirko 2020-12-31 9769
d54bba0f8a351c Jiri Pirko 2020-12-31 9770 if (WARN_ON(!ops || !ops->provision ||
!ops->unprovision ||
d54bba0f8a351c Jiri Pirko 2020-12-31 9771 !ops->types_count ||
!ops->types_get))
d54bba0f8a351c Jiri Pirko 2020-12-31 9772 return ERR_PTR(-EINVAL);
3ed099532e7d71 Jiri Pirko 2020-12-28 9773
3ed099532e7d71 Jiri Pirko 2020-12-28 @9774 mutex_lock(&devlink->lock);
3ed099532e7d71 Jiri Pirko 2020-12-28 9775 if (devlink_linecard_index_exists(devlink,
linecard_index)) {
3ed099532e7d71 Jiri Pirko 2020-12-28 9776 mutex_unlock(&devlink->lock);
3ed099532e7d71 Jiri Pirko 2020-12-28 9777 return ERR_PTR(-EEXIST);
3ed099532e7d71 Jiri Pirko 2020-12-28 9778 }
3ed099532e7d71 Jiri Pirko 2020-12-28 9779
3ed099532e7d71 Jiri Pirko 2020-12-28 9780 linecard = kzalloc(sizeof(*linecard),
GFP_KERNEL);
3ed099532e7d71 Jiri Pirko 2020-12-28 9781 if (!linecard)
3ed099532e7d71 Jiri Pirko 2020-12-28 9782 return ERR_PTR(-ENOMEM);
3ed099532e7d71 Jiri Pirko 2020-12-28 9783
3ed099532e7d71 Jiri Pirko 2020-12-28 9784 linecard->devlink = devlink;
3ed099532e7d71 Jiri Pirko 2020-12-28 9785 linecard->index = linecard_index;
d54bba0f8a351c Jiri Pirko 2020-12-31 9786 linecard->ops = ops;
d54bba0f8a351c Jiri Pirko 2020-12-31 9787 linecard->priv = priv;
d54bba0f8a351c Jiri Pirko 2020-12-31 9788 linecard->state =
DEVLINK_LINECARD_STATE_UNPROVISIONED;
d54bba0f8a351c Jiri Pirko 2020-12-31 9789
d54bba0f8a351c Jiri Pirko 2020-12-31 9790 err = devlink_linecard_types_init(linecard);
d54bba0f8a351c Jiri Pirko 2020-12-31 9791 if (err) {
d54bba0f8a351c Jiri Pirko 2020-12-31 9792 kfree(linecard);
d54bba0f8a351c Jiri Pirko 2020-12-31 @9793 return ERR_PTR(err);
d54bba0f8a351c Jiri Pirko 2020-12-31 9794 }
d54bba0f8a351c Jiri Pirko 2020-12-31 9795
3ed099532e7d71 Jiri Pirko 2020-12-28 9796 list_add_tail(&linecard->list,
&devlink->linecard_list);
3ed099532e7d71 Jiri Pirko 2020-12-28 9797 devlink_linecard_notify(linecard,
DEVLINK_CMD_LINECARD_NEW);
3ed099532e7d71 Jiri Pirko 2020-12-28 9798 mutex_unlock(&devlink->lock);
3ed099532e7d71 Jiri Pirko 2020-12-28 9799 return linecard;
3ed099532e7d71 Jiri Pirko 2020-12-28 9800 }
3ed099532e7d71 Jiri Pirko 2020-12-28 9801 EXPORT_SYMBOL_GPL(devlink_linecard_create);
3ed099532e7d71 Jiri Pirko 2020-12-28 9802
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org