Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid

Pull HID fix from Jiri Kosina:
"A regression fix for EPOLLOUT handling in hidraw and uhid"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
HID: hidraw, uhid: Always report EPOLLOUT

+7 -5
+4 -3
drivers/hid/hidraw.c
··· 249 249 static __poll_t hidraw_poll(struct file *file, poll_table *wait) 250 250 { 251 251 struct hidraw_list *list = file->private_data; 252 + __poll_t mask = EPOLLOUT | EPOLLWRNORM; /* hidraw is always writable */ 252 253 253 254 poll_wait(file, &list->hidraw->wait, wait); 254 255 if (list->head != list->tail) 255 - return EPOLLIN | EPOLLRDNORM; 256 + mask |= EPOLLIN | EPOLLRDNORM; 256 257 if (!list->hidraw->exist) 257 - return EPOLLERR | EPOLLHUP; 258 - return EPOLLOUT | EPOLLWRNORM; 258 + mask |= EPOLLERR | EPOLLHUP; 259 + return mask; 259 260 } 260 261 261 262 static int hidraw_open(struct inode *inode, struct file *file)
+3 -2
drivers/hid/uhid.c
··· 766 766 static __poll_t uhid_char_poll(struct file *file, poll_table *wait) 767 767 { 768 768 struct uhid_device *uhid = file->private_data; 769 + __poll_t mask = EPOLLOUT | EPOLLWRNORM; /* uhid is always writable */ 769 770 770 771 poll_wait(file, &uhid->waitq, wait); 771 772 772 773 if (uhid->head != uhid->tail) 773 - return EPOLLIN | EPOLLRDNORM; 774 + mask |= EPOLLIN | EPOLLRDNORM; 774 775 775 - return EPOLLOUT | EPOLLWRNORM; 776 + return mask; 776 777 } 777 778 778 779 static const struct file_operations uhid_fops = {