Hello Rafael, As suggested I have added the relevant information in the changelog. The patch is below: > For completness, below is the information from the Romit's introductory message > (Romit, I really think that should go into the chagelog): Kicks out frozen bdi flusher task out of the refrigerator when the said task needs to exit. Steps to reproduce this. 1) Mount a file system from MMC/SD card. 2) Unmount the file system. This creates a flusher task. 3) Attempt suspend to RAM. System is unresponsive. This is because the bdi flusher thread is already in the refrigerator and will remain so until it is thawed. The MMC driver suspend routine ultimately will issue a 'kthread_stop' on the bdi flusher thread and will block until the flusher thread is exited. Since the bdi flusher thread is in the refrigerator it never cleans up until thawed. Signed-off-by: Romit Dasgupta <romit@xxxxxx> --- diff --git a/mm/backing-dev.c b/mm/backing-dev.c index 5a37e20..c757b05 100644 --- a/mm/backing-dev.c +++ b/mm/backing-dev.c @@ -606,8 +606,11 @@ static void bdi_wb_shutdown(struct backing_dev_info *bdi) * Finally, kill the kernel threads. We don't need to be RCU * safe anymore, since the bdi is gone from visibility. */ - list_for_each_entry(wb, &bdi->wb_list, list) + list_for_each_entry(wb, &bdi->wb_list, list) { + if (unlikely(frozen(wb->task))) + wb->task->flags &= ~PF_FROZEN; kthread_stop(wb->task); + } } void bdi_unregister(struct backing_dev_info *bdi) _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm