From ac4932873d9464aad9f9381a380080cafbace19c Mon Sep 17 00:00:00 2001 From: Julien Moutinho Date: Thu, 15 Jul 2010 23:27:56 -0700 Subject: [PATCH] --- yaml --- r: 202217 b: refs/heads/master c: 4d4bf995ea873cc213c5abc5402af46ef490b8fd h: refs/heads/master i: 202215: b128683b25e1cb18a2f91aec2f674625fa9180b8 v: v3 --- [refs] | 2 +- trunk/drivers/input/mousedev.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 13204d036e0c..e596ff5b9d65 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 20da92de8ec3c1d4ba7e5aca322d38b6ce634932 +refs/heads/master: 4d4bf995ea873cc213c5abc5402af46ef490b8fd diff --git a/trunk/drivers/input/mousedev.c b/trunk/drivers/input/mousedev.c index d7a7a2fce745..d8f68f77007b 100644 --- a/trunk/drivers/input/mousedev.c +++ b/trunk/drivers/input/mousedev.c @@ -765,10 +765,15 @@ static unsigned int mousedev_poll(struct file *file, poll_table *wait) { struct mousedev_client *client = file->private_data; struct mousedev *mousedev = client->mousedev; + unsigned int mask; poll_wait(file, &mousedev->wait, wait); - return ((client->ready || client->buffer) ? (POLLIN | POLLRDNORM) : 0) | - (mousedev->exist ? 0 : (POLLHUP | POLLERR)); + + mask = mousedev->exist ? POLLOUT | POLLWRNORM : POLLHUP | POLLERR; + if (client->ready || client->buffer) + mask |= POLLIN | POLLRDNORM; + + return mask; } static const struct file_operations mousedev_fops = {