After updating 2.6.39 -> 3.0 I can't suspend/hibernate anymore. iwlagn driver crashes somewhere in suspend routines. stack: iwlagn_wait_tx_queue_empty+0x41/0xac iwlagn_mac_flush __ieee80211_suspend ? index_show ieee80211_suspend wiphy_suspend legacy_suspend __device_suspend dpm_suspend dpm_suspend_start suspend_devices_and_enter (see URL for camera photo with stack) After unloading iwlagn I'm able to suspend again. 2.6.39 works just fine so it's definitly regression
could you try the follow commit# from wireless-next-2.6 commit 94f9b97be5b3bf67392e43fb7f567721b09142c2 Author: Johannes Berg <johannes.berg@intel.com> Date: Thu Jul 14 16:48:54 2011 +0200 mac80211: be more careful in suspend/resume Thanks Wey
I've bisected it: a70171dce9cd44cb06c7d299eba9fa87a8933045 is the first bad commit dion@laptop:/usr/src/linux-git% git show a70171dce9cd44cb commit a70171dce9cd44cb06c7d299eba9fa87a8933045 Merge: 5a412ad eaef6a9 Author: John W. Linville <linville@tuxdriver.com> Date: Thu May 5 13:32:35 2011 -0400 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem Conflicts: drivers/net/wireless/libertas/if_cs.c drivers/net/wireless/rtlwifi/pci.c net/bluetooth/l2cap_sock.c diff --cc drivers/net/wireless/rtlwifi/base.c index b259f80,d366657..ccb6da3 --- a/drivers/net/wireless/rtlwifi/base.c +++ b/drivers/net/wireless/rtlwifi/base.c @@@ -522,10 -698,10 +698,10 @@@ void rtl_get_tcb_desc(struct ieee80211_ *because hw will nerver use hw_rate *when tcb_desc->use_driver_rate = false *so we never set highest N rate here, - *and N rate will all be controled by FW + *and N rate will all be controlled by FW *when tcb_desc->use_driver_rate = false */ - if (rtlmac->ht_enable) { + if (sta && (sta->ht_cap.ht_supported)) { tcb_desc->hw_rate = _rtl_get_highest_n_rate(hw); } else { if (rtlmac->mode == WIRELESS_MODE_B) { diff --cc net/bluetooth/l2cap_sock.c index 47394a1,09cc7a0..7c4a9ae --- a/net/bluetooth/l2cap_sock.c +++ b/net/bluetooth/l2cap_sock.c @@@ -678,8 -692,8 +692,8 @@@ static int l2cap_sock_setsockopt(struc } if (opt == BT_FLUSHABLE_OFF) { - struct l2cap_conn *conn = l2cap_pi(sk)->conn; + struct l2cap_conn *conn = chan->conn; - /* proceed futher only when we have l2cap_conn and + /* proceed further only when we have l2cap_conn and No Flush support in the LM */ if (!conn || !lmp_no_flush_capable(conn->hcon->hdev)) { err = -EINVAL; I'll try to apply commit from wireless-next-2.6 now
(In reply to comment #1) > could you try the follow commit# from wireless-next-2.6 > > commit 94f9b97be5b3bf67392e43fb7f567721b09142c2 > Author: Johannes Berg <johannes.berg@intel.com> > Date: Thu Jul 14 16:48:54 2011 +0200 > > mac80211: be more careful in suspend/resume It doesn't applies cleanly to v3.0 (one chunk looks like not needed anymore). I've applied rest and can confirm that s2ram works now. Thanks!
Great, thank you very much for reporting Wey
commit from comment #1 merged in v3.1-rc1.