The patch titled s2ram: add arch irq disable/enable hooks has been removed from the -mm tree. Its filename was s2ram-add-arch-irq-disable-enable-hooks.patch This patch was dropped because it was merged into mainline or a subsystem tree ------------------------------------------------------ Subject: s2ram: add arch irq disable/enable hooks From: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> For powermac, we need to do some things between suspending devices and device_power_off, for example setting the decrementer. This patch allows architectures to define arch_s2ram_{en,dis}able_irqs in their asm/suspend.h to have control over this step. Signed-off-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> Acked-by: Pavel Machek <pavel@xxxxxx> Cc: Greg KH <greg@xxxxxxxxx> Cc: Paul Mackerras <paulus@xxxxxxxxx> Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/pm.h | 18 ++++++++++++++++++ kernel/power/main.c | 18 +++++++++++++++--- 2 files changed, 33 insertions(+), 3 deletions(-) diff -puN include/linux/pm.h~s2ram-add-arch-irq-disable-enable-hooks include/linux/pm.h --- a/include/linux/pm.h~s2ram-add-arch-irq-disable-enable-hooks +++ a/include/linux/pm.h @@ -170,6 +170,24 @@ extern int pm_suspend(suspend_state_t st extern int pm_valid_only_mem(suspend_state_t state); +/** + * arch_suspend_disable_irqs - disable IRQs for suspend + * + * Disables IRQs (in the default case). This is a weak symbol in the common + * code and thus allows architectures to override it if more needs to be + * done. Not called for suspend to disk. + */ +extern void arch_suspend_disable_irqs(void); + +/** + * arch_suspend_enable_irqs - enable IRQs after suspend + * + * Enables IRQs (in the default case). This is a weak symbol in the common + * code and thus allows architectures to override it if more needs to be + * done. Not called for suspend to disk. + */ +extern void arch_suspend_enable_irqs(void); + /* * Device power management */ diff -puN kernel/power/main.c~s2ram-add-arch-irq-disable-enable-hooks kernel/power/main.c --- a/kernel/power/main.c~s2ram-add-arch-irq-disable-enable-hooks +++ a/kernel/power/main.c @@ -128,13 +128,24 @@ static int suspend_prepare(suspend_state return error; } +/* default implementation */ +void __attribute__ ((weak)) arch_suspend_disable_irqs(void) +{ + local_irq_disable(); +} + +/* default implementation */ +void __attribute__ ((weak)) arch_suspend_enable_irqs(void) +{ + local_irq_enable(); +} int suspend_enter(suspend_state_t state) { int error = 0; - unsigned long flags; - local_irq_save(flags); + arch_suspend_disable_irqs(); + BUG_ON(!irqs_disabled()); if ((error = device_power_down(PMSG_SUSPEND))) { printk(KERN_ERR "Some devices failed to power down\n"); @@ -143,7 +154,8 @@ int suspend_enter(suspend_state_t state) error = pm_ops->enter(state); device_power_up(); Done: - local_irq_restore(flags); + arch_suspend_enable_irqs(); + BUG_ON(irqs_disabled()); return error; } _ Patches currently in -mm which might be from johannes@xxxxxxxxxxxxxxxx are origin.patch rework-pm_ops-pm_disk_mode-kill-misuse.patch power-management-remove-firmware-disk-mode.patch power-management-implement-pm_opsvalid-for-everybody.patch power-management-implement-pm_opsvalid-for-everybody-fix.patch power-management-force-pm_opsvalid-callback-to-be.patch git-alsa.patch git-powerpc.patch git-powerpc-arch-powerpc-sysdev-timerc-build-fix.patch power-management-remove-some-useless-code-from-arm.patch remove-software_suspend.patch power-management-change-sys-power-disk-display.patch fix-sscanf-%n-match-at-end-of-input-string.patch fix-sscanf-%n-match-at-end-of-input-string-tidy.patch kernel-doc-html-mode-struct-highlights.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html