Hi Edward,

I love your patch! Perhaps something to improve:

[auto build test WARNING on net-next/master]

url:    
https://github.com/0day-ci/linux/commits/Edward-Cree/sfc_ef100-driver-for-EF100-family-NICs-part-1/20200703-233750
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 
8c8278a5b1a81e099ba883d8a0f9e3df9bdb1a74
config: x86_64-allyesconfig (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 
ca464639a1c9dd3944eb055ffd2796e8c2e7639f)
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/net/ethernet/sfc/efx_common.c:856:6: warning: variable 'rc2' is used 
>> uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
           if (efx_nic_rev(efx) != EFX_REV_EF100)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/sfc/efx_common.c:858:6: note: uninitialized use occurs 
here
           if (rc2) {
               ^~~
   drivers/net/ethernet/sfc/efx_common.c:856:2: note: remove the 'if' if its 
condition is always true
           if (efx_nic_rev(efx) != EFX_REV_EF100)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/sfc/efx_common.c:818:13: note: initialize the variable 
'rc2' to silence this warning
           int rc, rc2;
                      ^
                       = 0
   1 warning generated.

vim +856 drivers/net/ethernet/sfc/efx_common.c

   809  
   810  /* Reset the NIC using the specified method.  Note that the reset may
   811   * fail, in which case the card will be left in an unusable state.
   812   *
   813   * Caller must hold the rtnl_lock.
   814   */
   815  int efx_reset(struct efx_nic *efx, enum reset_type method)
   816  {
   817          bool disabled;
   818          int rc, rc2;
   819  
   820          netif_info(efx, drv, efx->net_dev, "resetting (%s)\n",
   821                     RESET_TYPE(method));
   822  
   823          efx_device_detach_sync(efx);
   824          /* efx_reset_down() grabs locks that prevent recovery on EF100.
   825           * EF100 reset is handled in the efx_nic_type callback below.
   826           */
   827          if (efx_nic_rev(efx) != EFX_REV_EF100)
   828                  efx_reset_down(efx, method);
   829  
   830          rc = efx->type->reset(efx, method);
   831          if (rc) {
   832                  netif_err(efx, drv, efx->net_dev, "failed to reset 
hardware\n");
   833                  goto out;
   834          }
   835  
   836          /* Clear flags for the scopes we covered.  We assume the NIC and
   837           * driver are now quiescent so that there is no race here.
   838           */
   839          if (method < RESET_TYPE_MAX_METHOD)
   840                  efx->reset_pending &= -(1 << (method + 1));
   841          else /* it doesn't fit into the well-ordered scope hierarchy */
   842                  __clear_bit(method, &efx->reset_pending);
   843  
   844          /* Reinitialise bus-mastering, which may have been turned off 
before
   845           * the reset was scheduled. This is still appropriate, even in 
the
   846           * RESET_TYPE_DISABLE since this driver generally assumes the 
hardware
   847           * can respond to requests.
   848           */
   849          pci_set_master(efx->pci_dev);
   850  
   851  out:
   852          /* Leave device stopped if necessary */
   853          disabled = rc ||
   854                  method == RESET_TYPE_DISABLE ||
   855                  method == RESET_TYPE_RECOVER_OR_DISABLE;
 > 856          if (efx_nic_rev(efx) != EFX_REV_EF100)
   857                  rc2 = efx_reset_up(efx, method, !disabled);
   858          if (rc2) {
   859                  disabled = true;
   860                  if (!rc)
   861                          rc = rc2;
   862          }
   863  
   864          if (disabled) {
   865                  dev_close(efx->net_dev);
   866                  netif_err(efx, drv, efx->net_dev, "has been 
disabled\n");
   867                  efx->state = STATE_DISABLED;
   868          } else {
   869                  netif_dbg(efx, drv, efx->net_dev, "reset complete\n");
   870                  efx_device_attach_if_not_resetting(efx);
   871          }
   872          return rc;
   873  }
   874  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to