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..

Reply via email to