Search Linux Wireless

[bug report] wlcore: sdio: check for valid platform device data before suspend

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Eyal Reizer,

The patch 6e91d48371e7: "wlcore: sdio: check for valid platform
device data before suspend" from May 28, 2018, leads to the following
static checker warning:

	drivers/net/wireless/ti/wlcore/sdio.c:404 wl1271_suspend()
	warn: missing error code here? 'platform_get_drvdata()' failed. 'ret' = '0'

drivers/net/wireless/ti/wlcore/sdio.c
   391  #ifdef CONFIG_PM
   392  static int wl1271_suspend(struct device *dev)
   393  {
   394          /* Tell MMC/SDIO core it's OK to power down the card
   395           * (if it isn't already), but not to remove it completely */
   396          struct sdio_func *func = dev_to_sdio_func(dev);
   397          struct wl12xx_sdio_glue *glue = sdio_get_drvdata(func);
   398          struct wl1271 *wl = platform_get_drvdata(glue->core);
   399          mmc_pm_flag_t sdio_flags;
   400          int ret = 0;
   401  
   402          if (!wl) {
   403                  dev_err(dev, "no wilink module was probed\n");
   404                  goto out;

We should set -ENOMEM or something?

   405          }
   406  
   407          dev_dbg(dev, "wl1271 suspend. wow_enabled: %d\n",
   408                  wl->wow_enabled);
   409  
   410          /* check whether sdio should keep power */
   411          if (wl->wow_enabled) {
   412                  sdio_flags = sdio_get_host_pm_caps(func);
   413  
   414                  if (!(sdio_flags & MMC_PM_KEEP_POWER)) {
   415                          dev_err(dev, "can't keep power while host "
   416                                       "is suspended\n");
   417                          ret = -EINVAL;
   418                          goto out;
   419                  }
   420  
   421                  /* keep power while host suspended */
   422                  ret = sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER);
   423                  if (ret) {
   424                          dev_err(dev, "error while trying to keep power\n");
   425                          goto out;
   426                  }
   427          }
   428  out:
   429          return ret;
   430  }

regards,
dan carpenter



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux