iwlwifi: disallow log_event access if interface down

'echo 1 > log_event' generates the bogus "MAC is in deep sleep"
or "Timeout waiting for hardware access" log messages when
the interface is down, we should just disallow accessing the
device through debugfs when it is down.

Signed-off-by: Richard A. Griffiths <richardx.a.griffiths@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Richard A. Griffiths 2012-06-28 13:14:11 -07:00 коммит произвёл Johannes Berg
Родитель bd408b3336
Коммит 0ff1bd35f5
1 изменённых файлов: 5 добавлений и 1 удалений

Просмотреть файл

@ -83,7 +83,7 @@ static ssize_t iwl_dbgfs_##name##_write(struct file *file, \
#define DEBUGFS_READ_FILE_OPS(name) \ #define DEBUGFS_READ_FILE_OPS(name) \
DEBUGFS_READ_FUNC(name); \ DEBUGFS_READ_FUNC(name); \
static const struct file_operations iwl_dbgfs_##name##_ops = { \ static const struct file_operations iwl_dbgfs_##name##_ops = { \
.read = iwl_dbgfs_##name##_read, \ .read = iwl_dbgfs_##name##_read, \
.open = simple_open, \ .open = simple_open, \
.llseek = generic_file_llseek, \ .llseek = generic_file_llseek, \
}; };
@ -2254,6 +2254,10 @@ static ssize_t iwl_dbgfs_log_event_write(struct file *file,
char buf[8]; char buf[8];
int buf_size; int buf_size;
/* check that the interface is up */
if (!iwl_is_ready(priv))
return -EAGAIN;
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
buf_size = min(count, sizeof(buf) - 1); buf_size = min(count, sizeof(buf) - 1);
if (copy_from_user(buf, user_buf, buf_size)) if (copy_from_user(buf, user_buf, buf_size))