All of lore.kernel.org
 help / color / mirror / Atom feed
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.