Hello Miri Korenblit, Commit d1e879ec600f ("wifi: iwlwifi: add iwlmld sub-driver") from Feb 16, 2025 (linux-next), leads to the following Smatch static checker warning: drivers/net/wireless/intel/iwlwifi/mld/d3.c:1978 iwl_mld_wowlan_resume() error: uninitialized symbol 'keep_connection'. drivers/net/wireless/intel/iwlwifi/mld/d3.c 1884 int iwl_mld_wowlan_resume(struct iwl_mld *mld) 1885 { 1886 struct ieee80211_vif *bss_vif; 1887 struct ieee80211_bss_conf *link_conf; 1888 struct iwl_mld_netdetect_res netdetect_res; 1889 struct iwl_mld_resume_data resume_data = { 1890 .notifs_expected = 1891 IWL_D3_NOTIF_WOWLAN_INFO | 1892 IWL_D3_NOTIF_D3_END_NOTIF, 1893 .netdetect_res = &netdetect_res, 1894 }; 1895 int link_id; 1896 int ret; 1897 bool fw_err = false; 1898 bool keep_connection; 1899 1900 lockdep_assert_wiphy(mld->wiphy); 1901 1902 IWL_DEBUG_WOWLAN(mld, "Starting the wowlan resume flow\n"); 1903 1904 mld->trans->system_pm_mode = IWL_PLAT_PM_MODE_DISABLED; 1905 if (!mld->fw_status.in_d3) { 1906 IWL_DEBUG_WOWLAN(mld, 1907 "Device_powered_off() was called during wowlan\n"); 1908 goto err; 1909 } 1910 1911 mld->fw_status.in_d3 = false; 1912 mld->scan.last_start_time_jiffies = jiffies; 1913 1914 bss_vif = iwl_mld_get_bss_vif(mld); 1915 if (WARN_ON(!bss_vif)) 1916 goto err; 1917 1918 /* We can't have several links upon wowlan entry, 1919 * this is enforced in the suspend flow. 1920 */ 1921 WARN_ON(hweight16(bss_vif->active_links) > 1); 1922 link_id = bss_vif->active_links ? __ffs(bss_vif->active_links) : 0; 1923 link_conf = link_conf_dereference_protected(bss_vif, link_id); 1924 1925 if (WARN_ON(!link_conf)) 1926 goto err; 1927 1928 iwl_fw_dbg_read_d3_debug_data(&mld->fwrt); 1929 1930 if (iwl_mld_fw_needs_restart(mld, bss_vif)) { 1931 fw_err = true; 1932 goto err; 1933 } 1934 1935 resume_data.wowlan_status = kzalloc(sizeof(*resume_data.wowlan_status), 1936 GFP_KERNEL); 1937 if (!resume_data.wowlan_status) 1938 return -1; 1939 1940 if (mld->netdetect) 1941 resume_data.notifs_expected |= IWL_D3_ND_MATCH_INFO; 1942 1943 ret = iwl_mld_wait_d3_notif(mld, &resume_data, true); 1944 if (ret) { 1945 IWL_ERR(mld, "Couldn't get the d3 notifs %d\n", ret); 1946 fw_err = true; 1947 goto err; 1948 } 1949 1950 if (resume_data.d3_end_flags & IWL_D0I3_RESET_REQUIRE) { 1951 mld->fw_status.in_hw_restart = true; 1952 goto process_wakeup_results; 1953 } 1954 1955 iwl_mld_update_changed_regdomain(mld); 1956 iwl_mld_update_mac_power(mld, bss_vif, false); 1957 iwl_mld_enable_beacon_filter(mld, link_conf, false); 1958 iwl_mld_update_device_power(mld, false); 1959 1960 if (mld->netdetect) 1961 ret = iwl_mld_scan_stop(mld, IWL_MLD_SCAN_NETDETECT, false); 1962 1963 process_wakeup_results: 1964 if (mld->netdetect) { 1965 iwl_mld_process_netdetect_res(mld, bss_vif, &resume_data); 1966 mld->netdetect = false; mld->netdetect is false but keep_connection is uninitialized. 1967 } else { 1968 keep_connection = 1969 iwl_mld_process_wowlan_status(mld, bss_vif, 1970 resume_data.wowlan_status); 1971 1972 /* EMLSR state will be cleared if the connection is not kept */ 1973 if (keep_connection) 1974 iwl_mld_unblock_emlsr(mld, bss_vif, 1975 IWL_MLD_EMLSR_BLOCKED_WOWLAN); 1976 } 1977 --> 1978 if (!mld->netdetect && !keep_connection) ^^^^^^^^^^^^^^^ Uninitialized 1979 ieee80211_resume_disconnect(bss_vif); 1980 1981 goto out; 1982 1983 err: 1984 if (fw_err) { 1985 mld->trans->state = IWL_TRANS_NO_FW; 1986 set_bit(STATUS_FW_ERROR, &mld->trans->status); 1987 } 1988 1989 mld->fw_status.in_hw_restart = true; 1990 ret = 1; 1991 out: 1992 if (resume_data.wowlan_status) { 1993 kfree(resume_data.wowlan_status->wake_packet); 1994 kfree(resume_data.wowlan_status); 1995 } 1996 1997 return ret; 1998 } regards, dan carpenter