Yes, I add pm_runtime_irq_safe() too, but in 8250_dw.c there are sleep() in intel lpss runtime_resume function, So if using spin_lock, there are lots of issue. That is what I want said, we can't restrict there are no sleep function in runtime PM callback. Thanks, Huiquan -----Original Message----- From: Tony Lindgren [mailto:tony@xxxxxxxxxxx] Sent: Friday, March 6, 2015 12:41 AM To: Zhong, Huiquan Cc: Sebastian Andrzej Siewior; linux-serial@xxxxxxxxxxxxxxx; mika.westerberg@xxxxxxxxxxxxxxx; alan@xxxxxxxxxxxxxxx Subject: Re: tty: serial: 8250_core runtime pm issue * Zhong, Huiquan <huiquan.zhong@xxxxxxxxx> [150302 18:08]: > I know, we will use dummy RX data to wake up. > > The question is that is it ok to call pm_runtime_get_sync() in spin_lock context and interrupt context. > > You can see all the uart operations are protected by spin_lock. > > spin_lock_irqsave(&uport->lock, flags); > uport->ops->stop_rx(uport); > spin_unlock_irqrestore(&uport->lock, flags); The last time I tried to remove pm_runtime_irq_safe() from 8250_omap.c/omap-serial.c, I started seeing all kind of issues. Maybe you need to add pm_runtime_irq_safe() too? BTW, I'm trying to get Linux generic wakeirq handling patches ready for posting that removes most of the wakeirq related code from drivers. Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html