Hi! > > More specifically, arch suspend calls swsusp_save(). > > > > It fails and returns the error to the arch asm code, which itself > > returns it to it's caller swsusp_suspend(), which does that: > > > > if ((error = swsusp_arch_suspend())) > > swsusp_free(); > I encounter a similar issue, when swsusp_swap_check failed. > It seems the swsusp_free isn't required in the failure case, > suspend_prepare_image has correctly handled the failure case to me. > Other arch? I wonder why swsusp_free is called after device_power_down > failed as well. No pages are allocated before device_power_down. Agreed, its wrong. Also there's no reason for the swap check to be called (even indirectly) from arch code... Pavel