opnsense-src/sys
Warner Losh d708737568 APM was calling the suspend process from a timeout. This meant that
other timeouts could not happen while suspending, including timeouts
for things like msleep.  This caused the system to hang on suspend
when the cbb was enabled, since its suspend path powered down the
socket which used a timeout to wait for it to be done.

APM now creates a thread when it is enabled, and deletes the thread
when it is disabled.  This thread takes the place of the timeout by
doing its polling every ~.9s.  When the thread is disabled, it will
wakeup early, otherwise it times out and polls the varius things the
old timeout polled (APM events, suspend delays, etc).

This makes my Sony VAIO 505TS suspend/resume correctly when APM is
enabled (ACPI is black listed on my 505TS).

This will likely fix other problems with the suspend path where
drivers would sleep with msleep and/or do other timeouts.  Maybe
there's some special case code that would use DELAY while suspending
and msleep otherwise that can be revisited and removed.

This was also tested by glebius@, who pointed out that in the patch I
sent him, I'd forgotten apm_saver.c

MFC After: 3 weeks
2006-05-25 23:06:38 +00:00
..
amd64 Move clock_lock prototype into <machine/clock.h>, where it is more 2006-05-19 18:53:50 +00:00
arm Use pmap_devmap_bootstrap(), instead of mapping the SACOM1 registers 2006-05-23 12:14:14 +00:00
boot - Replace the entry for the no longer existing lnc(4) module with an 2006-05-14 19:04:12 +00:00
bsm Update src/sys/bsm for OpenBSM 1.0 alpha 5 changes: 2006-03-04 16:54:21 +00:00
cam Forced commit - last checkin got away from me. 2006-05-24 15:26:07 +00:00
coda Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
compat Fix file leaking in translate_path_major_minor. 2006-05-16 17:57:00 +00:00
conf Add in a bunch of things to the mfi driver: 2006-05-18 23:30:48 +00:00
contrib Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
crypto padlock(4) doesn't support explicitly provided keys yet. 2006-04-20 06:31:44 +00:00
ddb Use __LP64__ rather than the PTR64 hack. 2006-05-11 21:59:55 +00:00
dev APM was calling the suspend process from a timeout. This meant that 2006-05-25 23:06:38 +00:00
doc
fs Call vm_object_page_clean() with the object lock held. 2006-05-25 17:16:11 +00:00
gdb add support for copying console messages to a remote gdb 2006-03-23 23:06:14 +00:00
geom Remove the trailing half of a sentence which was clearly superceded 2006-05-24 11:02:32 +00:00
gnu Check for VFS_STATFS() failure in _xfs_mount() and abort the mount 2006-05-05 18:41:56 +00:00
i4b Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
i386 APM was calling the suspend process from a timeout. This meant that 2006-05-25 23:06:38 +00:00
ia64 Add le(4). I could actually only test it on alpha, i386 and sparc64 but 2006-05-17 20:45:45 +00:00
isa Remove various bits of conditional Alpha code and fixup a few comments. 2006-05-12 05:04:46 +00:00
isofs/cd9660 When encountering a ISO_SUSP_CFLAG_ROOT element in Rock Ridge 2006-03-13 22:32:33 +00:00
kern Use getsock() and fput() instead of fgetsock() and fputsock() in 2006-05-25 15:10:13 +00:00
libkern First pass at removing Alpha kernel support. 2006-05-11 22:25:28 +00:00
modules Add cbb, cardbus, pccard and exca to the list of modules. The appear 2006-05-24 16:26:29 +00:00
net Do not call knlist_destroy() in tapclose(). Instead call it when device is 2006-05-17 17:05:02 +00:00
net80211 Ensure outbound data packets in hostap mode are delivered only to 2006-04-28 19:06:15 +00:00
netatalk White space consistency with kasserts. Minor style tweaks. 2006-04-01 16:54:37 +00:00
netatm Chance protocol switch method pru_detach() so that it returns void 2006-04-01 15:42:02 +00:00
netgraph Add new SIOC_HCI_RAW_NODE_LIST_NAMES ioctl. User-space applications can 2006-05-17 00:13:07 +00:00
netinet Implement internal (i.e. inside kernel) packet tagging using mbuf_tags(9). 2006-05-24 13:09:55 +00:00
netinet6 Avoid spurious release of an rtentry. 2006-05-23 00:32:22 +00:00
netipsec Prevent disappearing SAD entries by implementing MPsafe refcounting. 2006-05-20 15:35:36 +00:00
netipx Make this compile without INVARIANTS. 2006-04-11 23:15:47 +00:00
netkey In raw and raw-derived socket types, maintain and enforce invariant that 2006-04-01 15:55:44 +00:00
netnatm style(9) treatment following fixups. 2006-04-23 16:33:56 +00:00
netncp In ncp_sysctl_connstat(), the SLIST_FOREACH() logic to check 'error' 2006-01-14 11:40:32 +00:00
netsmb Retire NETSMBCRYPTO as a kernel option and make its functionality 2006-03-05 22:52:17 +00:00
nfs Fixes for NFS crashes on architectures that require strict alignment. 2005-07-14 20:08:27 +00:00
nfs4client While reviewing NFS client for another PR, noticed this omission in the 2006-05-24 15:56:36 +00:00
nfsclient Call vm_object_page_clean() with the object lock held. 2006-05-25 17:16:11 +00:00
nfsserver Bump up the NFS server dupreq cache limit to 2K (from 64). With a small 2006-04-25 00:21:56 +00:00
opencrypto Remove (now unused) crp_mac field. 2006-05-22 16:27:27 +00:00
pc98 - Add C-bus and ISA front-ends for le(4) so it can actually replace 2006-05-17 21:25:23 +00:00
pccard I don't believe these are used at all, and can be safely removed 2006-01-15 06:49:28 +00:00
pci Rename device name in the last commit. According to PR, the ID is 2006-05-24 11:55:25 +00:00
posix4 Don't allow non-root user to set a scheduler policy, otherwise this could 2006-05-21 00:40:38 +00:00
powerpc Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
rpc Fix up some cut-n-paste damage and some out-of-date comments. 2006-01-20 15:20:41 +00:00
security Reconstitute struct mac_policy_ops by breaking out individual function 2006-04-26 14:18:55 +00:00
sparc64 Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
sys GC long unused hostnamelen and domainnamelen. 2006-05-24 07:54:42 +00:00
tools Fix a leftover "iwi_boot" string. 2006-01-30 16:32:08 +00:00
ufs Take errmsg out of ffs_opts. It is already part of global_opts 2006-05-24 00:12:21 +00:00
vm When allocating a bucket to hold a free'd item in UMA fails, don't 2006-05-21 23:25:32 +00:00
Makefile Reimplementation of world/kernel build options. For details, see: 2006-03-17 18:54:44 +00:00