[GIT PULL] thread fixes

From: Christian Brauner
Date: Thu Nov 21 2019 - 09:31:46 EST


Hi Linus,

This contains a simple fix for the pidfd poll method. In the original patchset
pidfd_poll() was made to return an unsigned int. However, the poll method is
defined to return a __poll_t. While the unsigned int is not a huge deal it's
just nicer to return a __poll_t.

I've decided to send it right before the 5.4 release mainly so that stable
doesn't need to backport it to both 5.4 and 5.3.

The following changes since commit af42d3466bdc8f39806b26f593604fdc54140bcb:

Linux 5.4-rc8 (2019-11-17 14:47:30 -0800)

are available in the Git repository at:

git@xxxxxxxxxxxxxxxxxxx:pub/scm/linux/kernel/git/brauner/linux tags/for-linus-2019-11-21

for you to fetch changes up to 9e77716a75bc6cf54965e5ec069ba7c02b32251c:

fork: fix pidfd_poll()'s return type (2019-11-20 11:48:50 +0100)

/* Testing */
All patches have seen exposure in linux-next and are based on v5.4-rc8.
All pidfd selftests passed.

/* Conflicts */
At the time of creating this PR no merge conflicts were reported from
linux-next.

Please consider pulling these changes from the signed for-linus-2019-11-21 tag.

Thanks!
Christian

----------------------------------------------------------------
for-linus-2019-11-21

----------------------------------------------------------------
Luc Van Oostenryck (1):
fork: fix pidfd_poll()'s return type

kernel/fork.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/kernel/fork.c b/kernel/fork.c
index 55af6931c6ec..13b38794efb5 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -1708,11 +1708,11 @@ static void pidfd_show_fdinfo(struct seq_file *m, struct file *f)
/*
* Poll support for process exit notification.
*/
-static unsigned int pidfd_poll(struct file *file, struct poll_table_struct *pts)
+static __poll_t pidfd_poll(struct file *file, struct poll_table_struct *pts)
{
struct task_struct *task;
struct pid *pid = file->private_data;
- int poll_flags = 0;
+ __poll_t poll_flags = 0;

poll_wait(file, &pid->wait_pidfd, pts);

@@ -1724,7 +1724,7 @@ static unsigned int pidfd_poll(struct file *file, struct poll_table_struct *pts)
* group, then poll(2) should block, similar to the wait(2) family.
*/
if (!task || (task->exit_state && thread_group_empty(task)))
- poll_flags = POLLIN | POLLRDNORM;
+ poll_flags = EPOLLIN | EPOLLRDNORM;
rcu_read_unlock();

return poll_flags;