From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?q?Arve=20Hj=C3=B8nnev=C3=A5g?= Subject: [PATCH 5/9] PM: suspend_block: Switch to list of active and inactive suspend blockers Date: Wed, 29 Apr 2009 20:10:04 -0700 Message-ID: <1241061008-31134-6-git-send-email-arve@android.com> References: <1241061008-31134-1-git-send-email-arve@android.com> <1241061008-31134-2-git-send-email-arve@android.com> <1241061008-31134-3-git-send-email-arve@android.com> <1241061008-31134-4-git-send-email-arve@android.com> <1241061008-31134-5-git-send-email-arve@android.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1241061008-31134-5-git-send-email-arve@android.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-pm-bounces@lists.linux-foundation.org Errors-To: linux-pm-bounces@lists.linux-foundation.org To: linux-pm@lists.linux-foundation.org Cc: ncunningham@crca.org.au, u.luckas@road.de, swetland@google.com List-Id: linux-pm@vger.kernel.org VGhpcyBhbGxvd3MgYWN0aXZlIHN1c3BlbmQgYmxvY2tlcnMgdG8gYmUgbGlzdGVkCgpTaWduZWQt b2ZmLWJ5OiBBcnZlIEhqw7hubmV2w6VnIDxhcnZlQGFuZHJvaWQuY29tPgotLS0KIGluY2x1ZGUv bGludXgvc3VzcGVuZF9ibG9ja2VyLmggfCAgICA2ICsrLQoga2VybmVsL3Bvd2VyL3N1c3BlbmRf YmxvY2tlci5jICB8ICAgODUgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0K IDIgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zdXNwZW5kX2Jsb2NrZXIuaCBiL2luY2x1ZGUvbGludXgv c3VzcGVuZF9ibG9ja2VyLmgKaW5kZXggMjE2ODljZC4uMWZhYTQzMyAxMDA3NTUKLS0tIGEvaW5j bHVkZS9saW51eC9zdXNwZW5kX2Jsb2NrZXIuaAorKysgYi9pbmNsdWRlL2xpbnV4L3N1c3BlbmRf YmxvY2tlci5oCkBAIC0xNiw4ICsxNiwxMSBAQAogI2lmbmRlZiBfTElOVVhfU1VTUEVORF9CTE9D S0VSX0gKICNkZWZpbmUgX0xJTlVYX1NVU1BFTkRfQkxPQ0tFUl9ICiAKKyNpbmNsdWRlIDxsaW51 eC9saXN0Lmg+CisKIC8qKgogICogc3RydWN0IHN1c3BlbmRfYmxvY2tlciAtIHRoZSBiYXNpYyBz dXNwZW5kX2Jsb2NrZXIgc3RydWN0dXJlCisgKiBAbGluazoJTGlzdCBlbnRyeSBmb3IgYWN0aXZl IG9yIGluYWN0aXZlIGxpc3QuCiAgKiBAZmxhZ3M6CVRyYWNrcyBpbml0aWFsaXplZCBhbmQgYWN0 aXZlIHN0YXRlLgogICogQG5hbWU6CU5hbWUgdXNlZCBmb3IgZGVidWdnaW5nLgogICoKQEAgLTI5 LDcgKzMyLDggQEAKIAogc3RydWN0IHN1c3BlbmRfYmxvY2tlciB7CiAjaWZkZWYgQ09ORklHX1NV U1BFTkRfQkxPQ0tFUlMKLQlhdG9taWNfdCAgICAgICAgICAgIGZsYWdzOworCXN0cnVjdCBsaXN0 X2hlYWQgICAgbGluazsKKwlpbnQgICAgICAgICAgICAgICAgIGZsYWdzOwogCWNvbnN0IGNoYXIg ICAgICAgICAqbmFtZTsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9wb3dlci9zdXNw ZW5kX2Jsb2NrZXIuYyBiL2tlcm5lbC9wb3dlci9zdXNwZW5kX2Jsb2NrZXIuYwppbmRleCA2NDJi MGRiLi45NDgzMmNhIDEwMDY0NAotLS0gYS9rZXJuZWwvcG93ZXIvc3VzcGVuZF9ibG9ja2VyLmMK KysrIGIva2VybmVsL3Bvd2VyL3N1c3BlbmRfYmxvY2tlci5jCkBAIC0zMyw5ICszMywxMSBAQCBt b2R1bGVfcGFyYW1fbmFtZWQoZGVidWdfbWFzaywgZGVidWdfbWFzaywgaW50LCBTX0lSVUdPIHwg U19JV1VTUiB8IFNfSVdHUlApOwogI2RlZmluZSBTQl9JTklUSUFMSVpFRCAgICAgICAgICAgICgx VSA8PCA4KQogI2RlZmluZSBTQl9BQ1RJVkUgICAgICAgICAgICAgICAgICgxVSA8PCA5KQogCitz dGF0aWMgREVGSU5FX1NQSU5MT0NLKGxpc3RfbG9jayk7CiBzdGF0aWMgREVGSU5FX1NQSU5MT0NL KHN0YXRlX2xvY2spOwotc3RhdGljIGF0b21pY190IHN1c3BlbmRfYmxvY2tfY291bnQ7Ci1zdGF0 aWMgYXRvbWljX3QgY3VycmVudF9ldmVudF9udW07CitzdGF0aWMgTElTVF9IRUFEKGluYWN0aXZl X2Jsb2NrZXJzKTsKK3N0YXRpYyBMSVNUX0hFQUQoYWN0aXZlX2Jsb2NrZXJzKTsKK3N0YXRpYyBp bnQgY3VycmVudF9ldmVudF9udW07CiBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqc3VzcGVuZF93 b3JrX3F1ZXVlOwogc3RydWN0IHN1c3BlbmRfYmxvY2tlciBtYWluX3N1c3BlbmRfYmxvY2tlcjsK IHN0YXRpYyBzdXNwZW5kX3N0YXRlX3QgcmVxdWVzdGVkX3N1c3BlbmRfc3RhdGUgPSBQTV9TVVNQ RU5EX01FTTsKQEAgLTUzLDYgKzU1LDE0IEBAIHN0YXRpYyBib29sIGVuYWJsZV9zdXNwZW5kX2Js b2NrZXJzOwogCQkJdG0udG1faG91ciwgdG0udG1fbWluLCB0bS50bV9zZWMsIHRzLnR2X25zZWMp OyBcCiAJfSB3aGlsZSAoMCk7CiAKK3N0YXRpYyB2b2lkIHByaW50X2FjdGl2ZV9ibG9ja2Vyc19s b2NrZWQodm9pZCkKK3sKKwlzdHJ1Y3Qgc3VzcGVuZF9ibG9ja2VyICpibG9ja2VyOworCisJbGlz dF9mb3JfZWFjaF9lbnRyeShibG9ja2VyLCAmYWN0aXZlX2Jsb2NrZXJzLCBsaW5rKQorCQlwcl9p bmZvKCJhY3RpdmUgc3VzcGVuZCBibG9ja2VyICVzXG4iLCBibG9ja2VyLT5uYW1lKTsKK30KKwog LyoqCiAgKiBzdXNwZW5kX2lzX2Jsb2NrZWQoKSAtIENoZWNrIGlmIHN1c3BlbmQgc2hvdWxkIGJl IGJsb2NrZWQKICAqCkBAIC02Niw3ICs3Niw3IEBAIGJvb2wgc3VzcGVuZF9pc19ibG9ja2VkKHZv aWQpCiB7CiAJaWYgKCFlbmFibGVfc3VzcGVuZF9ibG9ja2VycykKIAkJcmV0dXJuIDA7Ci0JcmV0 dXJuICEhYXRvbWljX3JlYWQoJnN1c3BlbmRfYmxvY2tfY291bnQpOworCXJldHVybiAhbGlzdF9l bXB0eSgmYWN0aXZlX2Jsb2NrZXJzKTsKIH0KIAogc3RhdGljIHZvaWQgc3VzcGVuZF93b3JrZXIo c3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQpAQCAtODMsMTMgKzkzLDEzIEBAIHJldHJ5OgogCQln b3RvIGFib3J0OwogCX0KIAotCWVudHJ5X2V2ZW50X251bSA9IGF0b21pY19yZWFkKCZjdXJyZW50 X2V2ZW50X251bSk7CisJZW50cnlfZXZlbnRfbnVtID0gY3VycmVudF9ldmVudF9udW07CiAJaWYg KGRlYnVnX21hc2sgJiBERUJVR19TVVNQRU5EKQogCQlwcl9pbmZvKCJzdXNwZW5kOiBlbnRlciBz dXNwZW5kXG4iKTsKIAlyZXQgPSBwbV9zdXNwZW5kKHJlcXVlc3RlZF9zdXNwZW5kX3N0YXRlKTsK IAlpZiAoZGVidWdfbWFzayAmIERFQlVHX0VYSVRfU1VTUEVORCkKIAkJcHJfaW5mb190aW1lKCJz dXNwZW5kOiBleGl0IHN1c3BlbmQsIHJldCA9ICVkICIsIHJldCk7Ci0JaWYgKGF0b21pY19yZWFk KCZjdXJyZW50X2V2ZW50X251bSkgPT0gZW50cnlfZXZlbnRfbnVtKSB7CisJaWYgKGN1cnJlbnRf ZXZlbnRfbnVtID09IGVudHJ5X2V2ZW50X251bSkgewogCQlpZiAoZGVidWdfbWFzayAmIERFQlVH X1NVU1BFTkQpCiAJCQlwcl9pbmZvKCJzdXNwZW5kOiBwbV9zdXNwZW5kIHJldHVybmVkIHdpdGgg bm8gZXZlbnRcbiIpOwogCQlnb3RvIHJldHJ5OwpAQCAtMTI1LDEzICsxMzUsMjAgQEAgc3RhdGlj IHN0cnVjdCBzeXNfZGV2aWNlIHN1c3BlbmRfYmxvY2tfc3lzZGV2ID0gewogICovCiB2b2lkIHN1 c3BlbmRfYmxvY2tlcl9pbml0KHN0cnVjdCBzdXNwZW5kX2Jsb2NrZXIgKmJsb2NrZXIsIGNvbnN0 IGNoYXIgKm5hbWUpCiB7CisJdW5zaWduZWQgbG9uZyBpcnFmbGFncyA9IDA7CisKIAlXQVJOX09O KCFuYW1lKTsKIAogCWlmIChkZWJ1Z19tYXNrICYgREVCVUdfU1VTUEVORF9CTE9DS0VSKQogCQlw cl9pbmZvKCJzdXNwZW5kX2Jsb2NrZXJfaW5pdCBuYW1lPSVzXG4iLCBuYW1lKTsKIAogCWJsb2Nr ZXItPm5hbWUgPSBuYW1lOwotCWF0b21pY19zZXQoJmJsb2NrZXItPmZsYWdzLCBTQl9JTklUSUFM SVpFRCk7CisJYmxvY2tlci0+ZmxhZ3MgPSBTQl9JTklUSUFMSVpFRDsKKwlJTklUX0xJU1RfSEVB RCgmYmxvY2tlci0+bGluayk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmbGlzdF9sb2NrLCBpcnFm bGFncyk7CisJbGlzdF9hZGQoJmJsb2NrZXItPmxpbmssICZpbmFjdGl2ZV9ibG9ja2Vycyk7CisJ c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbGlzdF9sb2NrLCBpcnFmbGFncyk7CiB9CiBFWFBPUlRf U1lNQk9MKHN1c3BlbmRfYmxvY2tlcl9pbml0KTsKIApAQCAtMTQxLDE1ICsxNTgsMTcgQEAgRVhQ T1JUX1NZTUJPTChzdXNwZW5kX2Jsb2NrZXJfaW5pdCk7CiAgKi8KIHZvaWQgc3VzcGVuZF9ibG9j a2VyX2Rlc3Ryb3koc3RydWN0IHN1c3BlbmRfYmxvY2tlciAqYmxvY2tlcikKIHsKLQlpbnQgZmxh Z3M7CisJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKKwlpZiAoV0FSTl9PTighKGJsb2NrZXItPmZs YWdzICYgU0JfSU5JVElBTElaRUQpKSkKKwkJcmV0dXJuOwogCWlmIChkZWJ1Z19tYXNrICYgREVC VUdfU1VTUEVORF9CTE9DS0VSKQogCQlwcl9pbmZvKCJzdXNwZW5kX2Jsb2NrZXJfZGVzdHJveSBu YW1lPSVzXG4iLCBibG9ja2VyLT5uYW1lKTsKLQlmbGFncyA9IGF0b21pY194Y2hnKCZibG9ja2Vy LT5mbGFncywgMCk7Ci0JV0FSTighKGZsYWdzICYgU0JfSU5JVElBTElaRUQpLCAic3VzcGVuZF9i bG9ja2VyX2Rlc3Ryb3kgY2FsbGVkIG9uICIKLQkJCQkJInVuaW5pdGlhbGl6ZWQgc3VzcGVuZF9i bG9ja2VyXG4iKTsKLQlpZiAoZmxhZ3MgPT0gKFNCX0lOSVRJQUxJWkVEIHwgU0JfQUNUSVZFKSkK LQkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJnN1c3BlbmRfYmxvY2tfY291bnQpKQotCQkJcXVl dWVfd29yayhzdXNwZW5kX3dvcmtfcXVldWUsICZzdXNwZW5kX3dvcmspOworCXNwaW5fbG9ja19p cnFzYXZlKCZsaXN0X2xvY2ssIGlycWZsYWdzKTsKKwlibG9ja2VyLT5mbGFncyAmPSB+U0JfSU5J VElBTElaRUQ7CisJbGlzdF9kZWwoJmJsb2NrZXItPmxpbmspOworCWlmICgoYmxvY2tlci0+Zmxh Z3MgJiBTQl9BQ1RJVkUpICYmIGxpc3RfZW1wdHkoJmFjdGl2ZV9ibG9ja2VycykpCisJCXF1ZXVl X3dvcmsoc3VzcGVuZF93b3JrX3F1ZXVlLCAmc3VzcGVuZF93b3JrKTsKKwlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZsaXN0X2xvY2ssIGlycWZsYWdzKTsKIH0KIEVYUE9SVF9TWU1CT0woc3VzcGVu ZF9ibG9ja2VyX2Rlc3Ryb3kpOwogCkBAIC0xNTksMTUgKzE3OCwyMCBAQCBFWFBPUlRfU1lNQk9M KHN1c3BlbmRfYmxvY2tlcl9kZXN0cm95KTsKICAqLwogdm9pZCBzdXNwZW5kX2Jsb2NrKHN0cnVj dCBzdXNwZW5kX2Jsb2NrZXIgKmJsb2NrZXIpCiB7Ci0JV0FSTl9PTighKGF0b21pY19yZWFkKCZi bG9ja2VyLT5mbGFncykgJiBTQl9JTklUSUFMSVpFRCkpOworCXVuc2lnbmVkIGxvbmcgaXJxZmxh Z3M7CisKKwlpZiAoV0FSTl9PTighKGJsb2NrZXItPmZsYWdzICYgU0JfSU5JVElBTElaRUQpKSkK KwkJcmV0dXJuOwogCisJc3Bpbl9sb2NrX2lycXNhdmUoJmxpc3RfbG9jaywgaXJxZmxhZ3MpOwor CWJsb2NrZXItPmZsYWdzIHw9IFNCX0FDVElWRTsKKwlsaXN0X2RlbCgmYmxvY2tlci0+bGluayk7 CiAJaWYgKGRlYnVnX21hc2sgJiBERUJVR19TVVNQRU5EX0JMT0NLRVIpCiAJCXByX2luZm8oInN1 c3BlbmRfYmxvY2s6ICVzXG4iLCBibG9ja2VyLT5uYW1lKTsKLQlpZiAoYXRvbWljX2NtcHhjaGco JmJsb2NrZXItPmZsYWdzLCBTQl9JTklUSUFMSVpFRCwKLQkgICAgU0JfSU5JVElBTElaRUQgfCBT Ql9BQ1RJVkUpID09IFNCX0lOSVRJQUxJWkVEKQotCQlhdG9taWNfaW5jKCZzdXNwZW5kX2Jsb2Nr X2NvdW50KTsKKwlsaXN0X2FkZCgmYmxvY2tlci0+bGluaywgJmFjdGl2ZV9ibG9ja2Vycyk7CiAK LQlhdG9taWNfaW5jKCZjdXJyZW50X2V2ZW50X251bSk7CisJY3VycmVudF9ldmVudF9udW0rKzsK KwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZsaXN0X2xvY2ssIGlycWZsYWdzKTsKIH0KIEVYUE9S VF9TWU1CT0woc3VzcGVuZF9ibG9jayk7CiAKQEAgLTE3OSwxNSArMjAzLDI2IEBAIEVYUE9SVF9T WU1CT0woc3VzcGVuZF9ibG9jayk7CiAgKi8KIHZvaWQgc3VzcGVuZF91bmJsb2NrKHN0cnVjdCBz dXNwZW5kX2Jsb2NrZXIgKmJsb2NrZXIpCiB7Ci0JV0FSTl9PTighKGF0b21pY19yZWFkKCZibG9j a2VyLT5mbGFncykgJiBTQl9JTklUSUFMSVpFRCkpOworCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7 CisKKwlpZiAoV0FSTl9PTighKGJsb2NrZXItPmZsYWdzICYgU0JfSU5JVElBTElaRUQpKSkKKwkJ cmV0dXJuOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmxpc3RfbG9jaywgaXJxZmxhZ3MpOwogCiAJ aWYgKGRlYnVnX21hc2sgJiBERUJVR19TVVNQRU5EX0JMT0NLRVIpCiAJCXByX2luZm8oInN1c3Bl bmRfdW5ibG9jazogJXNcbiIsIGJsb2NrZXItPm5hbWUpOworCWxpc3RfZGVsKCZibG9ja2VyLT5s aW5rKTsKKwlsaXN0X2FkZCgmYmxvY2tlci0+bGluaywgJmluYWN0aXZlX2Jsb2NrZXJzKTsKIAot CWlmIChhdG9taWNfY21weGNoZygmYmxvY2tlci0+ZmxhZ3MsIFNCX0lOSVRJQUxJWkVEIHwgU0Jf QUNUSVZFLAotCSAgICBTQl9JTklUSUFMSVpFRCkgPT0gKFNCX0lOSVRJQUxJWkVEIHwgU0JfQUNU SVZFKSkKLQkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJnN1c3BlbmRfYmxvY2tfY291bnQpKQot CQkJcXVldWVfd29yayhzdXNwZW5kX3dvcmtfcXVldWUsICZzdXNwZW5kX3dvcmspOworCWlmICgo YmxvY2tlci0+ZmxhZ3MgJiBTQl9BQ1RJVkUpICYmIGxpc3RfZW1wdHkoJmFjdGl2ZV9ibG9ja2Vy cykpCisJCXF1ZXVlX3dvcmsoc3VzcGVuZF93b3JrX3F1ZXVlLCAmc3VzcGVuZF93b3JrKTsKKwli bG9ja2VyLT5mbGFncyAmPSB+KFNCX0FDVElWRSk7CisJaWYgKGJsb2NrZXIgPT0gJm1haW5fc3Vz cGVuZF9ibG9ja2VyKSB7CisJCWlmIChkZWJ1Z19tYXNrICYgREVCVUdfU1VTUEVORCkKKwkJCXBy aW50X2FjdGl2ZV9ibG9ja2Vyc19sb2NrZWQoKTsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmbGlzdF9sb2NrLCBpcnFmbGFncyk7CiB9CiBFWFBPUlRfU1lNQk9MKHN1c3BlbmRfdW5ibG9j ayk7CiAKQEAgLTE5OSw5ICsyMzQsOSBAQCBFWFBPUlRfU1lNQk9MKHN1c3BlbmRfdW5ibG9jayk7 CiAgKi8KIGJvb2wgc3VzcGVuZF9ibG9ja2VyX2lzX2FjdGl2ZShzdHJ1Y3Qgc3VzcGVuZF9ibG9j a2VyICpibG9ja2VyKQogewotCVdBUk5fT04oIShhdG9taWNfcmVhZCgmYmxvY2tlci0+ZmxhZ3Mp ICYgU0JfSU5JVElBTElaRUQpKTsKKwlXQVJOX09OKCEoYmxvY2tlci0+ZmxhZ3MgJiBTQl9JTklU SUFMSVpFRCkpOwogCi0JcmV0dXJuICEhKGF0b21pY19yZWFkKCZibG9ja2VyLT5mbGFncykgJiBT Ql9BQ1RJVkUpOworCXJldHVybiAhIShibG9ja2VyLT5mbGFncyAmIFNCX0FDVElWRSk7CiB9CiBF WFBPUlRfU1lNQk9MKHN1c3BlbmRfYmxvY2tlcl9pc19hY3RpdmUpOwogCi0tIAoxLjYuMQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtcG0gbWFp bGluZyBsaXN0CmxpbnV4LXBtQGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlz dHMubGludXgtZm91bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1wbQ==