All of lore.kernel.org
 help / color / mirror / Atom feed
* [bug report] iwlwifi: support loading the reduced power table from UEFI
@ 2021-06-25 13:00 Dan Carpenter
  0 siblings, 0 replies; only message in thread
From: Dan Carpenter @ 2021-06-25 13:00 UTC (permalink / raw)
  To: luciano.coelho; +Cc: linux-wireless

Hello Luca Coelho,

The patch 9dad325f9d57: "iwlwifi: support loading the reduced power
table from UEFI" from Jun 21, 2021, leads to the following static
checker warning:

	drivers/net/wireless/intel/iwlwifi/fw/pnvm.c:332 iwl_pnvm_load()
	error: uninitialized symbol 'len'.

drivers/net/wireless/intel/iwlwifi/fw/pnvm.c
   256  int iwl_pnvm_load(struct iwl_trans *trans,
   257                    struct iwl_notif_wait_data *notif_wait)
   258  {
   259          u8 *data;
   260          size_t len;
                ^^^^^^^^^^

   261          struct pnvm_sku_package *package;
   262          struct iwl_notification_wait pnvm_wait;
   263          static const u16 ntf_cmds[] = { WIDE_ID(REGULATORY_AND_NVM_GROUP,
   264                                                  PNVM_INIT_COMPLETE_NTFY) };
   265          int ret;
   266  
   267          /* if the SKU_ID is empty, there's nothing to do */
   268          if (!trans->sku_id[0] && !trans->sku_id[1] && !trans->sku_id[2])
   269                  return 0;
   270  
   271          /*
   272           * If we already loaded (or tried to load) it before, we just
   273           * need to set it again.
   274           */
   275          if (trans->pnvm_loaded) {
   276                  ret = iwl_trans_set_pnvm(trans, NULL, 0);
   277                  if (ret)
   278                          return ret;
   279                  goto skip_parse;
                        ^^^^^^^^^^^^^^^

   280          }
   281  
   282          /* First attempt to get the PNVM from BIOS */
   283          package = iwl_uefi_get_pnvm(trans, &len);
   284          if (!IS_ERR_OR_NULL(package)) {
   285                  data = kmemdup(package->data, len, GFP_KERNEL);
   286  
   287                  /* free package regardless of whether kmemdup succeeded */
   288                  kfree(package);
   289  
   290                  if (data) {
   291                          /* we need only the data size */
   292                          len -= sizeof(*package);
   293                          goto parse;
   294                  }
   295          }
   296  
   297          /* If it's not available, try from the filesystem */
   298          ret = iwl_pnvm_get_from_fs(trans, &data, &len);
   299          if (ret) {
   300                  /*
   301                   * Pretend we've loaded it - at least we've tried and
   302                   * couldn't load it at all, so there's no point in
   303                   * trying again over and over.
   304                   */
   305                  trans->pnvm_loaded = true;
   306  
   307                  goto skip_parse;
   308          }
   309  
   310  parse:
   311          iwl_pnvm_parse(trans, data, len);
   312  
   313          kfree(data);
   314  
   315  skip_parse:
   316          data = NULL;
   317          /* now try to get the reduce power table, if not loaded yet */
   318          if (!trans->reduce_power_loaded) {
   319                  data = iwl_uefi_get_reduced_power(trans, &len);
   320                  if (IS_ERR_OR_NULL(data)) {
   321                          /*
   322                           * Pretend we've loaded it - at least we've tried and
   323                           * couldn't load it at all, so there's no point in
   324                           * trying again over and over.
   325                           */
   326                          trans->reduce_power_loaded = true;
   327  
   328                          goto skip_reduce_power;
   329                  }
   330          }
   331  
   332          ret = iwl_trans_set_reduce_power(trans, data, len);
                                                              ^^^
Uninitialized

   333          if (ret)
   334                  IWL_DEBUG_FW(trans,
   335                               "Failed to set reduce power table %d\n",
   336                               ret);
   337          kfree(data);
   338  
   339  skip_reduce_power:
   340          iwl_init_notification_wait(notif_wait, &pnvm_wait,
   341                                     ntf_cmds, ARRAY_SIZE(ntf_cmds),
   342                                     iwl_pnvm_complete_fn, trans);
   343  

regards,
dan carpenter

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-06-25 13:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-06-25 13:00 [bug report] iwlwifi: support loading the reduced power table from UEFI Dan Carpenter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.