> -----Original Message----- > From: Dan Carpenter [mailto:dan.carpenter@xxxxxxxxxx] > Sent: Tuesday, October 23, 2012 1:47 AM > To: KY Srinivasan > Cc: gregkh@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > devel@xxxxxxxxxxxxxxxxxxxxxx; olaf@xxxxxxxxx; apw@xxxxxxxxxxxxx; > jasowang@xxxxxxxxxx > Subject: Re: 3.7 RC1 > > On Mon, Oct 22, 2012 at 04:37:45PM -0700, K. Y. Srinivasan wrote: > > > > While testing 3.7 RC1 I discovered that invoking the function > orderly_poweroff() > > from an interrupt context will trigger an ASSERT(). This was not the case till > > recently. The comment preceding the orderly_poweroff() function claims that > this > > function can be invoked from any context and in the current Hyper-V util driver, > > we support host-driven orderly shut down of the guest by invoking this > > orderly_poweroff() function in the context of the message callback. This code > has > > been working for a very long time and it is broken now. Is my assumption that > > orderly_poweroff() could be invoked from the interrupt context a wrong > assumption? > > You can't call orderly_poweroff() from interrupt context. Thanks Dan; I am curious to understand the basis for your assertion. As I noted earlier the documentation for this function clearly says it can be called from any context. Furthermore, __orderly_poweroff(), the helper function allocates memory with the GFP_ATOMIC flag set. Lastly, the behavior of orderly_poweroff() has been such that this function could be called from interrupt context for a very long time and something has changed now. For what it is worth, there are other users in the kernel (in 3.7 RC1) that are invoking the orderly_poweroff() function from interrupt context other than the Hyper-V shutdown handler: fsl_hv_shutdown_isr() in drivers/virt/fsl_hypervisor.c. I suspect there are other users as well that have made this similar assumption. Regards, K. Y _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel