wifi: iwlwifi: fw: Fix debugfs command sending
authorMukesh Sisodiya <mukesh.sisodiya@intel.com>
Wed, 4 Oct 2023 09:36:32 +0000 (12:36 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 23 Oct 2023 10:21:48 +0000 (12:21 +0200)
During debugfs command handling transport function is used directly,
this bypasses the locking used by runtime operation function
and leads to a kernel warning when two commands are
sent in parallel.

Fix it by using runtime operations function when sending
debugfs command.

Signed-off-by: Mukesh Sisodiya <mukesh.sisodiya@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20231004123422.4f80ac90658a.Ia1dfa1195c919f3002fe08db3eefbd2bfa921bbf@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/debugfs.c

index b8d4a4d571e774fc0cd172dd7fc12e008700cc15..751a125a1566f87c8a734c6cfb55a5a4ea7c7381 100644 (file)
@@ -141,7 +141,11 @@ static int iwl_dbgfs_enabled_severities_write(struct iwl_fw_runtime *fwrt,
 
        event_cfg.enabled_severities = cpu_to_le32(enabled_severities);
 
-       ret = iwl_trans_send_cmd(fwrt->trans, &hcmd);
+       if (fwrt->ops && fwrt->ops->send_hcmd)
+               ret = fwrt->ops->send_hcmd(fwrt->ops_ctx, &hcmd);
+       else
+               ret = -EPERM;
+
        IWL_INFO(fwrt,
                 "sent host event cfg with enabled_severities: %u, ret: %d\n",
                 enabled_severities, ret);