mirror of
https://github.com/torvalds/linux.git
synced 2026-05-05 23:05:25 -04:00
wifi: iwlwifi: mld: Add support for WIPHY_DEBUGFS_READ_FILE_OPS_MLD macro
Introduced the WIPHY_DEBUGFS_READ_FILE_OPS_MLD macro to enable reading data from the driver while holding the wiphy lock. This will enable read operations with wiphy locked. 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.b0ddb6b0a144.I1fab63f2c6f52fea61cc5d7b27775aed58adfd8d@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
committed by
Johannes Berg
parent
d4c6ca39d6
commit
4b8130a722
@@ -121,6 +121,16 @@ static ssize_t __iwl_dbgfs_##name##_write(struct file *file, \
|
||||
.llseek = generic_file_llseek, \
|
||||
}
|
||||
|
||||
#define WIPHY_DEBUGFS_READ_HANDLER_WRAPPER_MLD(name) \
|
||||
static ssize_t iwl_dbgfs_##name##_read_handler(struct wiphy *wiphy, \
|
||||
struct file *file, char *buf, \
|
||||
size_t count, void *data) \
|
||||
{ \
|
||||
struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy); \
|
||||
struct iwl_mld *mld = IWL_MAC80211_GET_MLD(hw); \
|
||||
return iwl_dbgfs_##name##_read(mld, buf, count); \
|
||||
}
|
||||
|
||||
#define WIPHY_DEBUGFS_WRITE_HANDLER_WRAPPER_MLD(name) \
|
||||
static ssize_t iwl_dbgfs_##name##_write_handler(struct wiphy *wiphy, \
|
||||
struct file *file, char *buf, \
|
||||
@@ -147,6 +157,40 @@ static ssize_t __iwl_dbgfs_##name##_write(struct file *file, \
|
||||
NULL); \
|
||||
}
|
||||
|
||||
#define WIPHY_DEBUGFS_READ_WRAPPER_MLD(name) \
|
||||
WIPHY_DEBUGFS_READ_HANDLER_WRAPPER_MLD(name) \
|
||||
static ssize_t __iwl_dbgfs_##name##_read(struct file *file, \
|
||||
char __user *user_buf, \
|
||||
size_t count, loff_t *ppos) \
|
||||
{ \
|
||||
struct dbgfs_##name##_data *data = file->private_data; \
|
||||
struct iwl_mld *mld = data->arg; \
|
||||
\
|
||||
if (!data->read_done) { \
|
||||
data->read_done = true; \
|
||||
data->rlen = wiphy_locked_debugfs_read(mld->wiphy, \
|
||||
file, data->buf, sizeof(data->buf), \
|
||||
user_buf, count, ppos, \
|
||||
iwl_dbgfs_##name##_read_handler, NULL); \
|
||||
return data->rlen; \
|
||||
} \
|
||||
\
|
||||
if (data->rlen < 0) \
|
||||
return data->rlen; \
|
||||
return simple_read_from_buffer(user_buf, count, ppos, \
|
||||
data->buf, data->rlen); \
|
||||
}
|
||||
|
||||
#define WIPHY_DEBUGFS_READ_FILE_OPS_MLD(name, bufsz) \
|
||||
MLD_DEBUGFS_OPEN_WRAPPER(name, bufsz, struct iwl_mld) \
|
||||
WIPHY_DEBUGFS_READ_WRAPPER_MLD(name) \
|
||||
static const struct file_operations iwl_dbgfs_##name##_ops = { \
|
||||
.read = __iwl_dbgfs_##name##_read, \
|
||||
.open = _iwl_dbgfs_##name##_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
.release = _iwl_dbgfs_release, \
|
||||
}
|
||||
|
||||
#define WIPHY_DEBUGFS_WRITE_FILE_OPS_MLD(name, bufsz) \
|
||||
MLD_DEBUGFS_OPEN_WRAPPER(name, bufsz, struct iwl_mld) \
|
||||
WIPHY_DEBUGFS_WRITE_WRAPPER_MLD(name) \
|
||||
|
||||
Reference in New Issue
Block a user