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

Attachment: .config.gz
Description: application/gzip

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to