All of lore.kernel.org
 help / color / mirror / Atom feed
* [bug report] wifi: nxp: add nxpwifi driver for IW61x
@ 2026-08-12  8:11 Dan Carpenter
  0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2026-08-12  8:11 UTC (permalink / raw)
  To: Jeff Chen; +Cc: linux-wireless

Hello Jeff Chen,

Commit 73b01e57ed3e ("wifi: nxp: add nxpwifi driver for IW61x") from
Jun 5, 2026 (linux-next), leads to the following Smatch static
checker warning:

	drivers/net/wireless/nxp/nxpwifi/cfg80211.c:850 nxpwifi_change_vif_to_sta()
	warn: duplicate check 'ret' (previous on line 840)

drivers/net/wireless/nxp/nxpwifi/cfg80211.c
    816 static int
    817 nxpwifi_change_vif_to_sta(struct net_device *dev,
    818                           enum nl80211_iftype curr_iftype,
    819                           enum nl80211_iftype type,
    820                           struct vif_params *params)
    821 {
    822         struct nxpwifi_private *priv;
    823         struct nxpwifi_adapter *adapter;
    824         int ret;
    825 
    826         priv = nxpwifi_netdev_get_priv(dev);
    827 
    828         if (!priv)
    829                 return -EINVAL;
    830 
    831         adapter = priv->adapter;
    832 
    833         nxpwifi_dbg(adapter, INFO,
    834                     "%s: changing role to station\n", dev->name);
    835 
    836         ret = nxpwifi_deinit_priv_params(priv);
    837         if (ret)
    838                 goto done;
    839         ret = nxpwifi_init_new_priv_params(priv, dev, type);
    840         if (ret)
    841                 goto done;
    842 
    843         update_vif_type_counter(adapter, curr_iftype, -1);
    844         update_vif_type_counter(adapter, type, 1);
    845         dev->ieee80211_ptr->iftype = type;
    846 
    847         if (nxpwifi_set_bss_mode(priv))
    848                 return -1;

Was this supposed to be?

	ret = nxpwifi_set_bss_mode(priv);

    849 
--> 850         if (ret)
    851                 goto done;

Dead code.

    852 
    853         ret = nxpwifi_sta_init_cmd(priv, false, false);
    854 
    855 done:
    856         return ret;
    857 }

This email is a free service from the Smatch-CI project [smatch.sf.net].

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [bug report] wifi: nxp: add nxpwifi driver for IW61x
@ 2026-08-12  8:19 Dan Carpenter
  0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2026-08-12  8:19 UTC (permalink / raw)
  To: Jeff Chen; +Cc: linux-wireless

Hello Jeff Chen,

Commit 73b01e57ed3e ("wifi: nxp: add nxpwifi driver for IW61x") from
Jun 5, 2026 (linux-next), leads to the following Smatch static
checker warning:

	drivers/net/wireless/nxp/nxpwifi/main.c:627 _nxpwifi_fw_dpc()
	warn: missing error code here? 'IS_ERR()' failed. 'ret' = '0'

drivers/net/wireless/nxp/nxpwifi/main.c
    552 static int _nxpwifi_fw_dpc(const struct firmware *firmware, void *context)
    553 {
    554         int ret = 0;
    555         char fmt[64];
    556         struct nxpwifi_adapter *adapter = context;
    557         struct nxpwifi_fw_image fw;
    558         bool init_failed = false;
    559         struct wireless_dev *wdev;
    560         struct completion *fw_done = adapter->fw_done;
    561 
    562         if (!firmware) {
    563                 nxpwifi_dbg(adapter, ERROR,
    564                             "Failed to get firmware %s\n", adapter->fw_name);
    565                 ret = -EINVAL;
    566                 goto err_dnld_fw;
    567         }
    568 
    569         memset(&fw, 0, sizeof(struct nxpwifi_fw_image));
    570         adapter->firmware = firmware;
    571         fw.fw_buf = (u8 *)adapter->firmware->data;
    572         fw.fw_len = adapter->firmware->size;
    573 
    574         if (adapter->if_ops.dnld_fw)
    575                 ret = adapter->if_ops.dnld_fw(adapter, &fw);
    576         else
    577                 ret = nxpwifi_dnld_fw(adapter, &fw);
    578 
    579         if (ret)
    580                 goto err_dnld_fw;
    581 
    582         nxpwifi_dbg(adapter, MSG, "WLAN FW is active\n");
    583 
    584         /* Load optional calibration data */
    585         ret = request_firmware(&adapter->cal_data, cal_data_name, adapter->dev);
    586         if (ret) {
    587                 nxpwifi_dbg(adapter, INFO, "no %s, using default cal\n",
    588                             cal_data_name);
    589                 adapter->cal_data = NULL;
    590         }
    591 
    592         /* enable host interrupt after fw dnld is successful */
    593         if (adapter->if_ops.enable_int) {
    594                 ret = adapter->if_ops.enable_int(adapter);
    595                 if (ret)
    596                         goto err_dnld_fw;
    597         }
    598 
    599         ret = nxpwifi_init_fw(adapter);
    600         if (ret)
    601                 goto err_init_fw;
    602 
    603         maybe_quirk_fw_disable_ds(adapter);
    604 
    605         if (!adapter->wiphy) {
    606                 if (nxpwifi_register_cfg80211(adapter)) {
    607                         nxpwifi_dbg(adapter, ERROR,
    608                                     "cannot register with cfg80211\n");
    609                         goto err_init_fw;

error code not set.

    610                 }
    611         }
    612 
    613         if (nxpwifi_init_channel_scan_gap(adapter)) {
    614                 nxpwifi_dbg(adapter, ERROR,
    615                             "could not init channel stats table\n");
    616                 goto err_init_chan_scan;

not set.
    617         }
    618 
    619         rtnl_lock();
    620         /* Create station interface by default */
    621         wdev = nxpwifi_add_virtual_intf(adapter->wiphy, "mlan%d", NET_NAME_ENUM,
    622                                         NL80211_IFTYPE_STATION, NULL);
    623         if (IS_ERR(wdev)) {
    624                 nxpwifi_dbg(adapter, ERROR,
    625                             "cannot create default STA interface\n");
    626                 rtnl_unlock();
--> 627                 goto err_add_intf;


not set.

    628         }
    629 
    630         wdev = nxpwifi_add_virtual_intf(adapter->wiphy, "uap%d", NET_NAME_ENUM,
    631                                         NL80211_IFTYPE_AP, NULL);
    632         if (IS_ERR(wdev)) {
    633                 nxpwifi_dbg(adapter, ERROR,
    634                             "cannot create AP interface\n");
    635                 rtnl_unlock();
    636                 goto err_add_intf;

error code not set.

    637         }
    638 
    639         rtnl_unlock();
    640 
    641         nxpwifi_drv_get_driver_version(adapter, fmt, sizeof(fmt) - 1);
    642         nxpwifi_dbg(adapter, MSG, "driver_version = %s\n", fmt);
    643         adapter->is_up = true;
    644         goto done;
    645 
    646 err_add_intf:
    647         vfree(adapter->chan_stats);
    648 err_init_chan_scan:
    649         wiphy_unregister(adapter->wiphy);
    650         wiphy_free(adapter->wiphy);
    651 err_init_fw:
    652         if (adapter->if_ops.disable_int)
    653                 adapter->if_ops.disable_int(adapter);
    654 err_dnld_fw:
    655         nxpwifi_dbg(adapter, ERROR,
    656                     "info: %s: unregister device\n", __func__);
    657         if (adapter->if_ops.unregister_dev)
    658                 adapter->if_ops.unregister_dev(adapter);
    659 
    660         set_bit(NXPWIFI_SURPRISE_REMOVED, &adapter->work_flags);
    661         nxpwifi_terminate_workqueue(adapter);
    662 
    663         if (adapter->hw_status == NXPWIFI_HW_STATUS_READY) {
    664                 pr_debug("info: %s: shutdown nxpwifi\n", __func__);
    665                 nxpwifi_shutdown_drv(adapter);
    666                 nxpwifi_free_cmd_buffers(adapter);
    667         }
    668 
    669         init_failed = true;
    670 done:
    671         if (adapter->cal_data) {
    672                 release_firmware(adapter->cal_data);
    673                 adapter->cal_data = NULL;
    674         }
    675         if (adapter->firmware) {
    676                 release_firmware(adapter->firmware);
    677                 adapter->firmware = NULL;
    678         }
    679         if (init_failed)
    680                 nxpwifi_free_adapter(adapter);
    681 
    682         /* Tell all current and future waiters we're finished */
    683         complete_all(fw_done);
    684 
    685         return ret;
    686 }

This email is a free service from the Smatch-CI project [smatch.sf.net].

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-08-12  8:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-12  8:19 [bug report] wifi: nxp: add nxpwifi driver for IW61x Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2026-08-12  8:11 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.