lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201804222244.mPr5M9Mf%fengguang.wu@intel.com>
Date:   Sun, 22 Apr 2018 23:41:40 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Sridhar Samudrala <sridhar.samudrala@...el.com>
Cc:     kbuild-all@...org, mst@...hat.com, stephen@...workplumber.org,
        davem@...emloft.net, netdev@...r.kernel.org,
        virtualization@...ts.linux-foundation.org,
        virtio-dev@...ts.oasis-open.org, jesse.brandeburg@...el.com,
        alexander.h.duyck@...el.com, kubakici@...pl,
        sridhar.samudrala@...el.com, jasowang@...hat.com,
        loseweigh@...il.com, jiri@...nulli.us
Subject: Re: [PATCH v7 net-next 4/4] netvsc: refactor notifier/event handling
 code to use the failover framework

Hi Sridhar,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on net/master]
[also build test ERROR on v4.17-rc1]
[cannot apply to net-next/master next-20180420]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Sridhar-Samudrala/Enable-virtio_net-to-act-as-a-standby-for-a-passthru-device/20180422-210557
config: x86_64-allyesdebian (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All error/warnings (new ones prefixed by >>):

   In file included from drivers/net/hyperv/netvsc_drv.c:46:0:
   include/net/failover.h:67:1: error: expected identifier or '(' before '{' token
    {
    ^
   include/net/failover.h:78:16: warning: 'struct pfailover' declared inside parameter list will not be visible outside of this definition or declaration
            struct pfailover **pfailover);
                   ^~~~~~~~~
   include/net/failover.h:79:1: error: expected identifier or '(' before '{' token
    {
    ^
   drivers/net/hyperv/netvsc_drv.c: In function 'netvsc_probe':
>> drivers/net/hyperv/netvsc_drv.c:2020:5: error: passing argument 3 of 'failover_register' from incompatible pointer type [-Werror=incompatible-pointer-types]
        &net_device_ctx->failover);
        ^
   In file included from drivers/net/hyperv/netvsc_drv.c:46:0:
   include/net/failover.h:77:5: note: expected 'struct pfailover **' but argument is of type 'struct failover **'
    int failover_register(struct net_device *standby_dev, struct failover_ops *ops,
        ^~~~~~~~~~~~~~~~~
   drivers/net/hyperv/netvsc_drv.c: At top level:
   include/net/failover.h:65:5: warning: 'failover_create' declared 'static' but never defined [-Wunused-function]
    int failover_create(struct net_device *standby_dev,
        ^~~~~~~~~~~~~~~
>> include/net/failover.h:77:5: warning: 'failover_register' used but never defined
    int failover_register(struct net_device *standby_dev, struct failover_ops *ops,
        ^~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
--
   In file included from drivers/net//hyperv/netvsc_drv.c:46:0:
   include/net/failover.h:67:1: error: expected identifier or '(' before '{' token
    {
    ^
   include/net/failover.h:78:16: warning: 'struct pfailover' declared inside parameter list will not be visible outside of this definition or declaration
            struct pfailover **pfailover);
                   ^~~~~~~~~
   include/net/failover.h:79:1: error: expected identifier or '(' before '{' token
    {
    ^
   drivers/net//hyperv/netvsc_drv.c: In function 'netvsc_probe':
   drivers/net//hyperv/netvsc_drv.c:2020:5: error: passing argument 3 of 'failover_register' from incompatible pointer type [-Werror=incompatible-pointer-types]
        &net_device_ctx->failover);
        ^
   In file included from drivers/net//hyperv/netvsc_drv.c:46:0:
   include/net/failover.h:77:5: note: expected 'struct pfailover **' but argument is of type 'struct failover **'
    int failover_register(struct net_device *standby_dev, struct failover_ops *ops,
        ^~~~~~~~~~~~~~~~~
   drivers/net//hyperv/netvsc_drv.c: At top level:
   include/net/failover.h:65:5: warning: 'failover_create' declared 'static' but never defined [-Wunused-function]
    int failover_create(struct net_device *standby_dev,
        ^~~~~~~~~~~~~~~
>> include/net/failover.h:77:5: warning: 'failover_register' used but never defined
    int failover_register(struct net_device *standby_dev, struct failover_ops *ops,
        ^~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +/failover_register +2020 drivers/net/hyperv/netvsc_drv.c

  1929	
  1930	static int netvsc_probe(struct hv_device *dev,
  1931				const struct hv_vmbus_device_id *dev_id)
  1932	{
  1933		struct net_device *net = NULL;
  1934		struct net_device_context *net_device_ctx;
  1935		struct netvsc_device_info device_info;
  1936		struct netvsc_device *nvdev;
  1937		int ret = -ENOMEM;
  1938	
  1939		net = alloc_etherdev_mq(sizeof(struct net_device_context),
  1940					VRSS_CHANNEL_MAX);
  1941		if (!net)
  1942			goto no_net;
  1943	
  1944		netif_carrier_off(net);
  1945	
  1946		netvsc_init_settings(net);
  1947	
  1948		net_device_ctx = netdev_priv(net);
  1949		net_device_ctx->device_ctx = dev;
  1950		net_device_ctx->msg_enable = netif_msg_init(debug, default_msg);
  1951		if (netif_msg_probe(net_device_ctx))
  1952			netdev_dbg(net, "netvsc msg_enable: %d\n",
  1953				   net_device_ctx->msg_enable);
  1954	
  1955		hv_set_drvdata(dev, net);
  1956	
  1957		INIT_DELAYED_WORK(&net_device_ctx->dwork, netvsc_link_change);
  1958	
  1959		spin_lock_init(&net_device_ctx->lock);
  1960		INIT_LIST_HEAD(&net_device_ctx->reconfig_events);
  1961		INIT_DELAYED_WORK(&net_device_ctx->vf_takeover, netvsc_vf_setup);
  1962	
  1963		net_device_ctx->vf_stats
  1964			= netdev_alloc_pcpu_stats(struct netvsc_vf_pcpu_stats);
  1965		if (!net_device_ctx->vf_stats)
  1966			goto no_stats;
  1967	
  1968		net->netdev_ops = &device_ops;
  1969		net->ethtool_ops = &ethtool_ops;
  1970		SET_NETDEV_DEV(net, &dev->device);
  1971	
  1972		/* We always need headroom for rndis header */
  1973		net->needed_headroom = RNDIS_AND_PPI_SIZE;
  1974	
  1975		/* Initialize the number of queues to be 1, we may change it if more
  1976		 * channels are offered later.
  1977		 */
  1978		netif_set_real_num_tx_queues(net, 1);
  1979		netif_set_real_num_rx_queues(net, 1);
  1980	
  1981		/* Notify the netvsc driver of the new device */
  1982		memset(&device_info, 0, sizeof(device_info));
  1983		device_info.num_chn = VRSS_CHANNEL_DEFAULT;
  1984		device_info.send_sections = NETVSC_DEFAULT_TX;
  1985		device_info.send_section_size = NETVSC_SEND_SECTION_SIZE;
  1986		device_info.recv_sections = NETVSC_DEFAULT_RX;
  1987		device_info.recv_section_size = NETVSC_RECV_SECTION_SIZE;
  1988	
  1989		nvdev = rndis_filter_device_add(dev, &device_info);
  1990		if (IS_ERR(nvdev)) {
  1991			ret = PTR_ERR(nvdev);
  1992			netdev_err(net, "unable to add netvsc device (ret %d)\n", ret);
  1993			goto rndis_failed;
  1994		}
  1995	
  1996		memcpy(net->dev_addr, device_info.mac_adr, ETH_ALEN);
  1997	
  1998		/* hw_features computed in rndis_netdev_set_hwcaps() */
  1999		net->features = net->hw_features |
  2000			NETIF_F_HIGHDMA | NETIF_F_SG |
  2001			NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX;
  2002		net->vlan_features = net->features;
  2003	
  2004		netdev_lockdep_set_classes(net);
  2005	
  2006		/* MTU range: 68 - 1500 or 65521 */
  2007		net->min_mtu = NETVSC_MTU_MIN;
  2008		if (nvdev->nvsp_version >= NVSP_PROTOCOL_VERSION_2)
  2009			net->max_mtu = NETVSC_MTU - ETH_HLEN;
  2010		else
  2011			net->max_mtu = ETH_DATA_LEN;
  2012	
  2013		ret = register_netdev(net);
  2014		if (ret != 0) {
  2015			pr_err("Unable to register netdev.\n");
  2016			goto register_failed;
  2017		}
  2018	
  2019		ret = failover_register(net, &netvsc_failover_ops,
> 2020					&net_device_ctx->failover);
  2021		if (ret != 0)
  2022			goto err_failover;
  2023	
  2024		return ret;
  2025	
  2026	err_failover:
  2027		unregister_netdev(net);
  2028	register_failed:
  2029		rndis_filter_device_remove(dev, nvdev);
  2030	rndis_failed:
  2031		free_percpu(net_device_ctx->vf_stats);
  2032	no_stats:
  2033		hv_set_drvdata(dev, NULL);
  2034		free_netdev(net);
  2035	no_net:
  2036		return ret;
  2037	}
  2038	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Download attachment ".config.gz" of type "application/gzip" (39371 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ