Commit e322c07f authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Johannes Berg

mac80211: debugfs: improve airtime_flags handler readability

Improve airtime_flags debugfs handler readability reporting configured
airtime flags in both numeric and human readable manner
Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Acked-by: default avatarToke Høiland-Jørgensen <toke@redhat.com>
Link: https://lore.kernel.org/r/9df7e40b45e95bb0b320317831455beaed1ee3ee.1574872357.git.lorenzo@kernel.org
[remove AQL since it's no longer there]
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 7d6aa9ba
...@@ -150,6 +150,59 @@ static const struct file_operations aqm_ops = { ...@@ -150,6 +150,59 @@ static const struct file_operations aqm_ops = {
.llseek = default_llseek, .llseek = default_llseek,
}; };
static ssize_t airtime_flags_read(struct file *file,
char __user *user_buf,
size_t count, loff_t *ppos)
{
struct ieee80211_local *local = file->private_data;
char buf[128] = {}, *pos, *end;
pos = buf;
end = pos + sizeof(buf) - 1;
if (local->airtime_flags & AIRTIME_USE_TX)
pos += scnprintf(pos, end - pos, "AIRTIME_TX\t(%lx)\n",
AIRTIME_USE_TX);
if (local->airtime_flags & AIRTIME_USE_RX)
pos += scnprintf(pos, end - pos, "AIRTIME_RX\t(%lx)\n",
AIRTIME_USE_RX);
return simple_read_from_buffer(user_buf, count, ppos, buf,
strlen(buf));
}
static ssize_t airtime_flags_write(struct file *file,
const char __user *user_buf,
size_t count, loff_t *ppos)
{
struct ieee80211_local *local = file->private_data;
char buf[16];
size_t len;
if (count > sizeof(buf))
return -EINVAL;
if (copy_from_user(buf, user_buf, count))
return -EFAULT;
buf[sizeof(buf) - 1] = 0;
len = strlen(buf);
if (len > 0 && buf[len - 1] == '\n')
buf[len - 1] = 0;
if (kstrtou16(buf, 0, &local->airtime_flags))
return -EINVAL;
return count;
}
static const struct file_operations airtime_flags_ops = {
.write = airtime_flags_write,
.read = airtime_flags_read,
.open = simple_open,
.llseek = default_llseek,
};
static ssize_t aql_txq_limit_read(struct file *file, static ssize_t aql_txq_limit_read(struct file *file,
char __user *user_buf, char __user *user_buf,
size_t count, size_t count,
...@@ -522,8 +575,7 @@ void debugfs_hw_add(struct ieee80211_local *local) ...@@ -522,8 +575,7 @@ void debugfs_hw_add(struct ieee80211_local *local)
if (local->ops->wake_tx_queue) if (local->ops->wake_tx_queue)
DEBUGFS_ADD_MODE(aqm, 0600); DEBUGFS_ADD_MODE(aqm, 0600);
debugfs_create_u16("airtime_flags", 0600, DEBUGFS_ADD_MODE(airtime_flags, 0600);
phyd, &local->airtime_flags);
DEBUGFS_ADD(aql_txq_limit); DEBUGFS_ADD(aql_txq_limit);
debugfs_create_u32("aql_threshold", 0600, debugfs_create_u32("aql_threshold", 0600,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment