Remove the f_version abuse from input. Use seq_private_open() to stash the information for poll. Signed-off-by: Christian Brauner <brauner@xxxxxxxxxx> --- drivers/input/input.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/input/input.c b/drivers/input/input.c index 54c57b267b25..b03ae43707d8 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c @@ -1081,9 +1081,11 @@ static inline void input_wakeup_procfs_readers(void) static __poll_t input_proc_devices_poll(struct file *file, poll_table *wait) { + struct seq_file *m = file->private_data; + poll_wait(file, &input_devices_poll_wait, wait); - if (file->f_version != input_devices_state) { - file->f_version = input_devices_state; + if (*(u64 *)m->private != input_devices_state) { + *(u64 *)m->private = input_devices_state; return EPOLLIN | EPOLLRDNORM; } @@ -1210,7 +1212,7 @@ static const struct seq_operations input_devices_seq_ops = { static int input_proc_devices_open(struct inode *inode, struct file *file) { - return seq_open(file, &input_devices_seq_ops); + return seq_open_private(file, &input_devices_seq_ops, sizeof(u64)); } static const struct proc_ops input_devices_proc_ops = { -- 2.45.2