From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [sashal-linux-stable:queue-4.19 9/399] drivers/net/ethernet/mellanox/mlx4/main.c:3985:2: error: implicit declaration of function 'devlink_reload_enable'; did you mean 'devlink_region_create'?
Date: Tue, 19 Nov 2019 08:48:12 +0800 [thread overview]
Message-ID: <201911190810.C1EhmpCo%lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 8587 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git queue-4.19
head: 59898ec8a6ae5632f8ecb2a15e25f1f3d715995b
commit: 85908d02670ea00a6172dfe9ef9bba7ea826ed1b [9/399] devlink: disallow reload operation during device cleanup
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 7.4.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 85908d02670ea00a6172dfe9ef9bba7ea826ed1b
# save the attached .config to linux build tree
GCC_VERSION=7.4.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/net/ethernet/mellanox/mlx4/main.c: In function 'mlx4_init_one':
>> drivers/net/ethernet/mellanox/mlx4/main.c:3985:2: error: implicit declaration of function 'devlink_reload_enable'; did you mean 'devlink_region_create'? [-Werror=implicit-function-declaration]
devlink_reload_enable(devlink);
^~~~~~~~~~~~~~~~~~~~~
devlink_region_create
drivers/net/ethernet/mellanox/mlx4/main.c: In function 'mlx4_remove_one':
>> drivers/net/ethernet/mellanox/mlx4/main.c:4097:2: error: implicit declaration of function 'devlink_reload_disable'; did you mean 'devlink_region_destroy'? [-Werror=implicit-function-declaration]
devlink_reload_disable(devlink);
^~~~~~~~~~~~~~~~~~~~~~
devlink_region_destroy
cc1: some warnings being treated as errors
vim +3985 drivers/net/ethernet/mellanox/mlx4/main.c
3944
3945 static int mlx4_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
3946 {
3947 struct devlink *devlink;
3948 struct mlx4_priv *priv;
3949 struct mlx4_dev *dev;
3950 int ret;
3951
3952 printk_once(KERN_INFO "%s", mlx4_version);
3953
3954 devlink = devlink_alloc(&mlx4_devlink_ops, sizeof(*priv));
3955 if (!devlink)
3956 return -ENOMEM;
3957 priv = devlink_priv(devlink);
3958
3959 dev = &priv->dev;
3960 dev->persist = kzalloc(sizeof(*dev->persist), GFP_KERNEL);
3961 if (!dev->persist) {
3962 ret = -ENOMEM;
3963 goto err_devlink_free;
3964 }
3965 dev->persist->pdev = pdev;
3966 dev->persist->dev = dev;
3967 pci_set_drvdata(pdev, dev->persist);
3968 priv->pci_dev_data = id->driver_data;
3969 mutex_init(&dev->persist->device_state_mutex);
3970 mutex_init(&dev->persist->interface_state_mutex);
3971 mutex_init(&dev->persist->pci_status_mutex);
3972
3973 ret = devlink_register(devlink, &pdev->dev);
3974 if (ret)
3975 goto err_persist_free;
3976 ret = devlink_params_register(devlink, mlx4_devlink_params,
3977 ARRAY_SIZE(mlx4_devlink_params));
3978 if (ret)
3979 goto err_devlink_unregister;
3980 mlx4_devlink_set_params_init_values(devlink);
3981 ret = __mlx4_init_one(pdev, id->driver_data, priv);
3982 if (ret)
3983 goto err_params_unregister;
3984
> 3985 devlink_reload_enable(devlink);
3986 pci_save_state(pdev);
3987 return 0;
3988
3989 err_params_unregister:
3990 devlink_params_unregister(devlink, mlx4_devlink_params,
3991 ARRAY_SIZE(mlx4_devlink_params));
3992 err_devlink_unregister:
3993 devlink_unregister(devlink);
3994 err_persist_free:
3995 kfree(dev->persist);
3996 err_devlink_free:
3997 devlink_free(devlink);
3998 return ret;
3999 }
4000
4001 static void mlx4_clean_dev(struct mlx4_dev *dev)
4002 {
4003 struct mlx4_dev_persistent *persist = dev->persist;
4004 struct mlx4_priv *priv = mlx4_priv(dev);
4005 unsigned long flags = (dev->flags & RESET_PERSIST_MASK_FLAGS);
4006
4007 memset(priv, 0, sizeof(*priv));
4008 priv->dev.persist = persist;
4009 priv->dev.flags = flags;
4010 }
4011
4012 static void mlx4_unload_one(struct pci_dev *pdev)
4013 {
4014 struct mlx4_dev_persistent *persist = pci_get_drvdata(pdev);
4015 struct mlx4_dev *dev = persist->dev;
4016 struct mlx4_priv *priv = mlx4_priv(dev);
4017 int pci_dev_data;
4018 int p, i;
4019
4020 if (priv->removed)
4021 return;
4022
4023 /* saving current ports type for further use */
4024 for (i = 0; i < dev->caps.num_ports; i++) {
4025 dev->persist->curr_port_type[i] = dev->caps.port_type[i + 1];
4026 dev->persist->curr_port_poss_type[i] = dev->caps.
4027 possible_type[i + 1];
4028 }
4029
4030 pci_dev_data = priv->pci_dev_data;
4031
4032 mlx4_stop_sense(dev);
4033 mlx4_unregister_device(dev);
4034
4035 for (p = 1; p <= dev->caps.num_ports; p++) {
4036 mlx4_cleanup_port_info(&priv->port[p]);
4037 mlx4_CLOSE_PORT(dev, p);
4038 }
4039
4040 if (mlx4_is_master(dev))
4041 mlx4_free_resource_tracker(dev,
4042 RES_TR_FREE_SLAVES_ONLY);
4043
4044 mlx4_cleanup_default_counters(dev);
4045 if (!mlx4_is_slave(dev))
4046 mlx4_cleanup_counters_table(dev);
4047 mlx4_cleanup_qp_table(dev);
4048 mlx4_cleanup_srq_table(dev);
4049 mlx4_cleanup_cq_table(dev);
4050 mlx4_cmd_use_polling(dev);
4051 mlx4_cleanup_eq_table(dev);
4052 mlx4_cleanup_mcg_table(dev);
4053 mlx4_cleanup_mr_table(dev);
4054 mlx4_cleanup_xrcd_table(dev);
4055 mlx4_cleanup_pd_table(dev);
4056
4057 if (mlx4_is_master(dev))
4058 mlx4_free_resource_tracker(dev,
4059 RES_TR_FREE_STRUCTS_ONLY);
4060
4061 iounmap(priv->kar);
4062 mlx4_uar_free(dev, &priv->driver_uar);
4063 mlx4_cleanup_uar_table(dev);
4064 if (!mlx4_is_slave(dev))
4065 mlx4_clear_steering(dev);
4066 mlx4_free_eq_table(dev);
4067 if (mlx4_is_master(dev))
4068 mlx4_multi_func_cleanup(dev);
4069 mlx4_close_hca(dev);
4070 mlx4_close_fw(dev);
4071 if (mlx4_is_slave(dev))
4072 mlx4_multi_func_cleanup(dev);
4073 mlx4_cmd_cleanup(dev, MLX4_CMD_CLEANUP_ALL);
4074
4075 if (dev->flags & MLX4_FLAG_MSI_X)
4076 pci_disable_msix(pdev);
4077
4078 if (!mlx4_is_slave(dev))
4079 mlx4_free_ownership(dev);
4080
4081 mlx4_slave_destroy_special_qp_cap(dev);
4082 kfree(dev->dev_vfs);
4083
4084 mlx4_clean_dev(dev);
4085 priv->pci_dev_data = pci_dev_data;
4086 priv->removed = 1;
4087 }
4088
4089 static void mlx4_remove_one(struct pci_dev *pdev)
4090 {
4091 struct mlx4_dev_persistent *persist = pci_get_drvdata(pdev);
4092 struct mlx4_dev *dev = persist->dev;
4093 struct mlx4_priv *priv = mlx4_priv(dev);
4094 struct devlink *devlink = priv_to_devlink(priv);
4095 int active_vfs = 0;
4096
> 4097 devlink_reload_disable(devlink);
4098
4099 if (mlx4_is_slave(dev))
4100 persist->interface_state |= MLX4_INTERFACE_STATE_NOWAIT;
4101
4102 mutex_lock(&persist->interface_state_mutex);
4103 persist->interface_state |= MLX4_INTERFACE_STATE_DELETION;
4104 mutex_unlock(&persist->interface_state_mutex);
4105
4106 /* Disabling SR-IOV is not allowed while there are active vf's */
4107 if (mlx4_is_master(dev) && dev->flags & MLX4_FLAG_SRIOV) {
4108 active_vfs = mlx4_how_many_lives_vf(dev);
4109 if (active_vfs) {
4110 pr_warn("Removing PF when there are active VF's !!\n");
4111 pr_warn("Will not disable SR-IOV.\n");
4112 }
4113 }
4114
4115 /* device marked to be under deletion running now without the lock
4116 * letting other tasks to be terminated
4117 */
4118 if (persist->interface_state & MLX4_INTERFACE_STATE_UP)
4119 mlx4_unload_one(pdev);
4120 else
4121 mlx4_info(dev, "%s: interface is down\n", __func__);
4122 mlx4_catas_end(dev);
4123 mlx4_crdump_end(dev);
4124 if (dev->flags & MLX4_FLAG_SRIOV && !active_vfs) {
4125 mlx4_warn(dev, "Disabling SR-IOV\n");
4126 pci_disable_sriov(pdev);
4127 }
4128
4129 pci_release_regions(pdev);
4130 mlx4_pci_disable_device(dev);
4131 devlink_params_unregister(devlink, mlx4_devlink_params,
4132 ARRAY_SIZE(mlx4_devlink_params));
4133 devlink_unregister(devlink);
4134 kfree(dev->persist);
4135 devlink_free(devlink);
4136 }
4137
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 23874 bytes --]
reply other threads:[~2019-11-19 0:48 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=201911190810.C1EhmpCo%lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.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.