[bug report] netvsc: fix netvsc_set_channels

Stephen Hemminger stephen at networkplumber.org
Tue Jul 25 15:18:12 UTC 2017


On Tue, 25 Jul 2017 17:29:14 +0300
Dan Carpenter <dan.carpenter at oracle.com> wrote:

> Hello stephen hemminger,
> 
> The patch 7ca4593338e1: "netvsc: fix netvsc_set_channels" from Jul
> 24, 2017, leads to the following static checker warning:
> 
> 	drivers/net/hyperv/netvsc_drv.c:761 netvsc_set_channels()
> 	error: 'nvdev' is not an ERR_PTR
> 
> 	drivers/net/hyperv/netvsc_drv.c:761 netvsc_set_channels()
> 	warn: passing a valid pointer to 'PTR_ERR'
> 
> drivers/net/hyperv/netvsc_drv.c
>    753          memset(&device_info, 0, sizeof(device_info));
>    754          device_info.num_chn = count;
>    755          device_info.ring_size = ring_size;
>    756  
>    757          nvdev = rndis_filter_device_add(dev, &device_info);
>    758          if (!IS_ERR(nvdev)) {
>    759                  netif_set_real_num_tx_queues(net, nvdev->num_chn);
>    760                  netif_set_real_num_rx_queues(net, nvdev->num_chn);
>    761                  ret = PTR_ERR(nvdev);
>                         ^^^^^^^^^^^^^^^^^^^
>    762          } else {
>    763                  device_info.num_chn = orig;
>    764                  rndis_filter_device_add(dev, &device_info);
> 
> Should that be moved here?  It's not immediately clear to me what's
> happening here.
> 
>    765          }
>    766  
>    767          if (was_opened)
>    768                  rndis_filter_open(nvdev);
>    769  
> 
> 
> regards,
> dan carpenter

Thanks, yes this does cause incorrect return value.


More information about the devel mailing list