wifi: iwlwifi: mld: Ensure wiphy lock is held during debugfs read operations
authorPagadala Yesu Anjaneyulu <pagadala.yesu.anjaneyulu@intel.com>
Wed, 12 Mar 2025 22:22:26 +0000 (00:22 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 18 Mar 2025 08:51:24 +0000 (09:51 +0100)
The WIPHY_DEBUGFS_READ_WRITE_FILE_OPS_MLD macro is intended to call
read/write handlers with the wiphy lock held. However, the current
implementation uses the MLD_DEBUGFS_READ_WRAPPER macro, which does
not hold the wiphy lock during read operations. This fix updates
the WIPHY_DEBUGFS_READ_WRITE_FILE_OPS_MLD macro to use the
WIPHY_DEBUGFS_READ_WRAPPER_MLD macro instead, ensuring that the
wiphy lock is held during both read and write operations.

Signed-off-by: Pagadala Yesu Anjaneyulu <pagadala.yesu.anjaneyulu@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250313002008.2001d2335e9d.I607a8bd12efc6d1190cef1fca44279dbdd2756ea@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mld/debugfs.c
drivers/net/wireless/intel/iwlwifi/mld/debugfs.h

index 1d4b2ad..c67dbbf 100644 (file)
@@ -178,8 +178,7 @@ iwl_dbgfs_he_sniffer_params_write(struct iwl_mld *mld, char *buf,
 }
 
 static ssize_t
-iwl_dbgfs_he_sniffer_params_read(struct iwl_mld *mld, size_t count,
-                                char *buf)
+iwl_dbgfs_he_sniffer_params_read(struct iwl_mld *mld, char *buf, size_t count)
 {
        return scnprintf(buf, count,
                         "%d %02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx\n",
index 900aaed..eeba353 100644 (file)
@@ -204,10 +204,10 @@ static ssize_t __iwl_dbgfs_##name##_read(struct file *file,               \
 #define WIPHY_DEBUGFS_READ_WRITE_FILE_OPS_MLD(name, bufsz)             \
        MLD_DEBUGFS_OPEN_WRAPPER(name, bufsz, struct iwl_mld)           \
        WIPHY_DEBUGFS_WRITE_WRAPPER_MLD(name)                           \
-       MLD_DEBUGFS_READ_WRAPPER(name)                                  \
+       WIPHY_DEBUGFS_READ_WRAPPER_MLD(name)                            \
        static const struct file_operations iwl_dbgfs_##name##_ops = {  \
                .write = __iwl_dbgfs_##name##_write,                    \
-               .read = _iwl_dbgfs_##name##_read,                       \
+               .read = __iwl_dbgfs_##name##_read,                      \
                .open = _iwl_dbgfs_##name##_open,                       \
                .llseek = generic_file_llseek,                          \
                .release = _iwl_dbgfs_release,                          \