This'll be a post-2.6.33 regression.
This:
: [22456.252166] s2ram: page allocation failure. order:4, mode:0x4010
: [22456.252172] Pid: 23558, comm: s2ram Not tainted 2.6.34-rc1 #1
: [22456.252175] Call Trace:
: [22456.252187] [<ffffffff810b8dc9>] __alloc_pages_nodemask+0x565/0x60c
: [22456.252195] [<ffffffff810de879>] alloc_pages_current+0x90/0x99
: [22456.252201] [<ffffffff810b7a9e>] __get_free_pages+0x9/0x46
: [22456.252221] [<ffffffffa03b4bdd>] iwl_tx_queue_init+0xf2/0x2a1 [iwlcore]
: [22456.252227] [<ffffffffa03b4f12>] iwl_txq_ctx_reset+0x186/0x20c [iwlcore]
: [22456.252233] [<ffffffffa03ae41c>] iwl_hw_nic_init+0x124/0x139 [iwlcore]
Rafael, this is fallout from 452aa6999e6703ffbddd7f6ea124d3968915f3e3
("mm/pm: force GFP_NOIO during suspend/hibernation and resume").
Wireless was previously doing this stupidly-large allocation with
GFP_KERNEL. But I think the above change is what flipped it to
__GFP_WAIT, which caused the page allocator to go into lame-and-sucky
mode, so the allocation failed.
(btw, that was a bug - 452aa6999e6703ffbddd7f6ea124d3968915f3e3 should
have cleared the __GFP_WAIT bit too).
--