Re: [PATCH 03/32] fs: introduce new ->get_poll_head and ->poll_mask methods

From: Christoph Hellwig
Date: Thu Jan 11 2018 - 03:28:22 EST


On Thu, Jan 11, 2018 at 05:22:00AM +0000, Al Viro wrote:
> Whee... The very first ->poll() instance in alphabetic order on pathnames:
> in arch/cris/arch-v10/drivers/gpio.c
>
> static __poll_t gpio_poll(struct file *file, poll_table *wait)
> {
> __poll_t mask = 0;
> struct gpio_private *priv = file->private_data;
> unsigned long data;
> unsigned long flags;
>
> spin_lock_irqsave(&gpio_lock, flags);
>
> poll_wait(file, &priv->alarm_wq, wait);
>
> IOW, we are doing poll_wait() (== possible GFP_KERNEL __get_free_page()) under
> a spinlock...

Yes. Another god reason to separate poll_wait and the actual
event check callback..