* [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:11 [bug report] wifi: nxp: add nxpwifi driver for IW61x Dan Carpenter
-- strict thread matches above, loose matches on Subject: below --
2026-08-12 8:19 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.