Commit 7dfb71030f7636a0d65200158113c37764552f93
Committed by
Linus Torvalds
1 parent
8a05aac263
Exists in
master
and in
4 other branches
[PATCH] Add include/linux/freezer.h and move definitions from sched.h
Move process freezing functions from include/linux/sched.h to freezer.h, so that modifications to the freezer or the kernel configuration don't require recompiling just about everything. [akpm@osdl.org: fix ueagle driver] Signed-off-by: Nigel Cunningham <nigel@suspend2.net> Cc: "Rafael J. Wysocki" <rjw@sisk.pl> Cc: Pavel Machek <pavel@ucw.cz> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Showing 64 changed files with 147 additions and 101 deletions Side-by-side Diff
- arch/arm/kernel/signal.c
- arch/avr32/kernel/signal.c
- arch/frv/kernel/signal.c
- arch/h8300/kernel/signal.c
- arch/i386/kernel/io_apic.c
- arch/m32r/kernel/signal.c
- arch/powerpc/kernel/signal_32.c
- arch/sh/kernel/signal.c
- arch/sh64/kernel/signal.c
- drivers/block/pktcdvd.c
- drivers/char/hvc_console.c
- drivers/edac/edac_mc.c
- drivers/ieee1394/nodemgr.c
- drivers/input/gameport/gameport.c
- drivers/input/serio/serio.c
- drivers/macintosh/therm_adt746x.c
- drivers/macintosh/via-pmu.c
- drivers/macintosh/windfarm_core.c
- drivers/md/md.c
- drivers/media/dvb/dvb-core/dvb_frontend.c
- drivers/media/video/msp3400-driver.c
- drivers/media/video/tvaudio.c
- drivers/media/video/video-buf-dvb.c
- drivers/media/video/vivi.c
- drivers/mfd/ucb1x00-ts.c
- drivers/net/irda/stir4200.c
- drivers/net/wireless/airo.c
- drivers/pcmcia/cs.c
- drivers/pnp/pnpbios/core.c
- drivers/usb/atm/ueagle-atm.c
- drivers/usb/core/hub.c
- drivers/usb/gadget/file_storage.c
- drivers/usb/storage/usb.c
- drivers/w1/w1.c
- fs/afs/kafsasyncd.c
- fs/afs/kafstimod.c
- fs/cifs/cifsfs.c
- fs/cifs/connect.c
- fs/jbd/journal.c
- fs/jbd2/journal.c
- fs/jffs/intrep.c
- fs/jffs2/background.c
- fs/jfs/jfs_logmgr.c
- fs/jfs/jfs_txnmgr.c
- fs/lockd/clntproc.c
- fs/xfs/linux-2.6/xfs_buf.c
- fs/xfs/linux-2.6/xfs_super.c
- include/linux/freezer.h
- include/linux/sched.h
- init/do_mounts_initrd.c
- kernel/audit.c
- kernel/power/disk.c
- kernel/power/main.c
- kernel/power/process.c
- kernel/power/user.c
- kernel/rtmutex-tester.c
- kernel/sched.c
- kernel/signal.c
- mm/pdflush.c
- mm/vmscan.c
- net/rxrpc/krxiod.c
- net/rxrpc/krxsecd.c
- net/rxrpc/krxtimod.c
- net/sunrpc/svcsock.c
arch/arm/kernel/signal.c
arch/avr32/kernel/signal.c
arch/frv/kernel/signal.c
arch/h8300/kernel/signal.c
arch/i386/kernel/io_apic.c
arch/m32r/kernel/signal.c
arch/powerpc/kernel/signal_32.c
arch/sh/kernel/signal.c
arch/sh64/kernel/signal.c
drivers/block/pktcdvd.c
drivers/char/hvc_console.c
drivers/edac/edac_mc.c
drivers/ieee1394/nodemgr.c
drivers/input/gameport/gameport.c
drivers/input/serio/serio.c
drivers/macintosh/therm_adt746x.c
drivers/macintosh/via-pmu.c
drivers/macintosh/windfarm_core.c
drivers/md/md.c
... | ... | @@ -39,10 +39,10 @@ |
39 | 39 | #include <linux/raid/bitmap.h> |
40 | 40 | #include <linux/sysctl.h> |
41 | 41 | #include <linux/buffer_head.h> /* for invalidate_bdev */ |
42 | -#include <linux/suspend.h> | |
43 | 42 | #include <linux/poll.h> |
44 | 43 | #include <linux/mutex.h> |
45 | 44 | #include <linux/ctype.h> |
45 | +#include <linux/freezer.h> | |
46 | 46 | |
47 | 47 | #include <linux/init.h> |
48 | 48 |
drivers/media/dvb/dvb-core/dvb_frontend.c
drivers/media/video/msp3400-driver.c
... | ... | @@ -56,7 +56,7 @@ |
56 | 56 | #include <media/tvaudio.h> |
57 | 57 | #include <media/msp3400.h> |
58 | 58 | #include <linux/kthread.h> |
59 | -#include <linux/suspend.h> | |
59 | +#include <linux/freezer.h> | |
60 | 60 | #include "msp3400-driver.h" |
61 | 61 | |
62 | 62 | /* ---------------------------------------------------------------------- */ |
drivers/media/video/tvaudio.c
drivers/media/video/video-buf-dvb.c
drivers/media/video/vivi.c
drivers/mfd/ucb1x00-ts.c
drivers/net/irda/stir4200.c
drivers/net/wireless/airo.c
drivers/pcmcia/cs.c
drivers/pnp/pnpbios/core.c
drivers/usb/atm/ueagle-atm.c
drivers/usb/core/hub.c
drivers/usb/gadget/file_storage.c
drivers/usb/storage/usb.c
drivers/w1/w1.c
fs/afs/kafsasyncd.c
fs/afs/kafstimod.c
fs/cifs/cifsfs.c
fs/cifs/connect.c
fs/jbd/journal.c
fs/jbd2/journal.c
fs/jffs/intrep.c
fs/jffs2/background.c
fs/jfs/jfs_logmgr.c
... | ... | @@ -67,7 +67,7 @@ |
67 | 67 | #include <linux/kthread.h> |
68 | 68 | #include <linux/buffer_head.h> /* for sync_blockdev() */ |
69 | 69 | #include <linux/bio.h> |
70 | -#include <linux/suspend.h> | |
70 | +#include <linux/freezer.h> | |
71 | 71 | #include <linux/delay.h> |
72 | 72 | #include <linux/mutex.h> |
73 | 73 | #include "jfs_incore.h" |
fs/jfs/jfs_txnmgr.c
fs/lockd/clntproc.c
fs/xfs/linux-2.6/xfs_buf.c
fs/xfs/linux-2.6/xfs_super.c
include/linux/freezer.h
1 | +/* Freezer declarations */ | |
2 | + | |
3 | +#ifdef CONFIG_PM | |
4 | +/* | |
5 | + * Check if a process has been frozen | |
6 | + */ | |
7 | +static inline int frozen(struct task_struct *p) | |
8 | +{ | |
9 | + return p->flags & PF_FROZEN; | |
10 | +} | |
11 | + | |
12 | +/* | |
13 | + * Check if there is a request to freeze a process | |
14 | + */ | |
15 | +static inline int freezing(struct task_struct *p) | |
16 | +{ | |
17 | + return p->flags & PF_FREEZE; | |
18 | +} | |
19 | + | |
20 | +/* | |
21 | + * Request that a process be frozen | |
22 | + * FIXME: SMP problem. We may not modify other process' flags! | |
23 | + */ | |
24 | +static inline void freeze(struct task_struct *p) | |
25 | +{ | |
26 | + p->flags |= PF_FREEZE; | |
27 | +} | |
28 | + | |
29 | +/* | |
30 | + * Sometimes we may need to cancel the previous 'freeze' request | |
31 | + */ | |
32 | +static inline void do_not_freeze(struct task_struct *p) | |
33 | +{ | |
34 | + p->flags &= ~PF_FREEZE; | |
35 | +} | |
36 | + | |
37 | +/* | |
38 | + * Wake up a frozen process | |
39 | + */ | |
40 | +static inline int thaw_process(struct task_struct *p) | |
41 | +{ | |
42 | + if (frozen(p)) { | |
43 | + p->flags &= ~PF_FROZEN; | |
44 | + wake_up_process(p); | |
45 | + return 1; | |
46 | + } | |
47 | + return 0; | |
48 | +} | |
49 | + | |
50 | +/* | |
51 | + * freezing is complete, mark process as frozen | |
52 | + */ | |
53 | +static inline void frozen_process(struct task_struct *p) | |
54 | +{ | |
55 | + p->flags = (p->flags & ~PF_FREEZE) | PF_FROZEN; | |
56 | +} | |
57 | + | |
58 | +extern void refrigerator(void); | |
59 | +extern int freeze_processes(void); | |
60 | +extern void thaw_processes(void); | |
61 | + | |
62 | +static inline int try_to_freeze(void) | |
63 | +{ | |
64 | + if (freezing(current)) { | |
65 | + refrigerator(); | |
66 | + return 1; | |
67 | + } else | |
68 | + return 0; | |
69 | +} | |
70 | +#else | |
71 | +static inline int frozen(struct task_struct *p) { return 0; } | |
72 | +static inline int freezing(struct task_struct *p) { return 0; } | |
73 | +static inline void freeze(struct task_struct *p) { BUG(); } | |
74 | +static inline int thaw_process(struct task_struct *p) { return 1; } | |
75 | +static inline void frozen_process(struct task_struct *p) { BUG(); } | |
76 | + | |
77 | +static inline void refrigerator(void) {} | |
78 | +static inline int freeze_processes(void) { BUG(); return 0; } | |
79 | +static inline void thaw_processes(void) {} | |
80 | + | |
81 | +static inline int try_to_freeze(void) { return 0; } | |
82 | + | |
83 | + | |
84 | +#endif |
include/linux/sched.h
... | ... | @@ -1618,87 +1618,6 @@ |
1618 | 1618 | |
1619 | 1619 | extern void normalize_rt_tasks(void); |
1620 | 1620 | |
1621 | -#ifdef CONFIG_PM | |
1622 | -/* | |
1623 | - * Check if a process has been frozen | |
1624 | - */ | |
1625 | -static inline int frozen(struct task_struct *p) | |
1626 | -{ | |
1627 | - return p->flags & PF_FROZEN; | |
1628 | -} | |
1629 | - | |
1630 | -/* | |
1631 | - * Check if there is a request to freeze a process | |
1632 | - */ | |
1633 | -static inline int freezing(struct task_struct *p) | |
1634 | -{ | |
1635 | - return p->flags & PF_FREEZE; | |
1636 | -} | |
1637 | - | |
1638 | -/* | |
1639 | - * Request that a process be frozen | |
1640 | - * FIXME: SMP problem. We may not modify other process' flags! | |
1641 | - */ | |
1642 | -static inline void freeze(struct task_struct *p) | |
1643 | -{ | |
1644 | - p->flags |= PF_FREEZE; | |
1645 | -} | |
1646 | - | |
1647 | -/* | |
1648 | - * Sometimes we may need to cancel the previous 'freeze' request | |
1649 | - */ | |
1650 | -static inline void do_not_freeze(struct task_struct *p) | |
1651 | -{ | |
1652 | - p->flags &= ~PF_FREEZE; | |
1653 | -} | |
1654 | - | |
1655 | -/* | |
1656 | - * Wake up a frozen process | |
1657 | - */ | |
1658 | -static inline int thaw_process(struct task_struct *p) | |
1659 | -{ | |
1660 | - if (frozen(p)) { | |
1661 | - p->flags &= ~PF_FROZEN; | |
1662 | - wake_up_process(p); | |
1663 | - return 1; | |
1664 | - } | |
1665 | - return 0; | |
1666 | -} | |
1667 | - | |
1668 | -/* | |
1669 | - * freezing is complete, mark process as frozen | |
1670 | - */ | |
1671 | -static inline void frozen_process(struct task_struct *p) | |
1672 | -{ | |
1673 | - p->flags = (p->flags & ~PF_FREEZE) | PF_FROZEN; | |
1674 | -} | |
1675 | - | |
1676 | -extern void refrigerator(void); | |
1677 | -extern int freeze_processes(void); | |
1678 | -extern void thaw_processes(void); | |
1679 | - | |
1680 | -static inline int try_to_freeze(void) | |
1681 | -{ | |
1682 | - if (freezing(current)) { | |
1683 | - refrigerator(); | |
1684 | - return 1; | |
1685 | - } else | |
1686 | - return 0; | |
1687 | -} | |
1688 | -#else | |
1689 | -static inline int frozen(struct task_struct *p) { return 0; } | |
1690 | -static inline int freezing(struct task_struct *p) { return 0; } | |
1691 | -static inline void freeze(struct task_struct *p) { BUG(); } | |
1692 | -static inline int thaw_process(struct task_struct *p) { return 1; } | |
1693 | -static inline void frozen_process(struct task_struct *p) { BUG(); } | |
1694 | - | |
1695 | -static inline void refrigerator(void) {} | |
1696 | -static inline int freeze_processes(void) { BUG(); return 0; } | |
1697 | -static inline void thaw_processes(void) {} | |
1698 | - | |
1699 | -static inline int try_to_freeze(void) { return 0; } | |
1700 | - | |
1701 | -#endif /* CONFIG_PM */ | |
1702 | 1621 | #endif /* __KERNEL__ */ |
1703 | 1622 | |
1704 | 1623 | #endif |
init/do_mounts_initrd.c
kernel/audit.c
kernel/power/disk.c
kernel/power/main.c
kernel/power/process.c
kernel/power/user.c
kernel/rtmutex-tester.c
kernel/sched.c
kernel/signal.c
mm/pdflush.c
mm/vmscan.c
net/rxrpc/krxiod.c
net/rxrpc/krxsecd.c
net/rxrpc/krxtimod.c