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: Tue, 5 May 2009 21:18:45 -0700 Message-ID: <1241583529-5092-6-git-send-email-arve@android.com> References: <1241583529-5092-1-git-send-email-arve@android.com> <1241583529-5092-2-git-send-email-arve@android.com> <1241583529-5092-3-git-send-email-arve@android.com> <1241583529-5092-4-git-send-email-arve@android.com> <1241583529-5092-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: <1241583529-5092-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 ZW5kX2Jsb2NrZXIuYyBiL2tlcm5lbC9wb3dlci9zdXNwZW5kX2Jsb2NrZXIuYwppbmRleCA2Yjlj YTJkLi5jYWI5ZTlhIDEwMDY0NAotLS0gYS9rZXJuZWwvcG93ZXIvc3VzcGVuZF9ibG9ja2VyLmMK KysrIGIva2VybmVsL3Bvd2VyL3N1c3BlbmRfYmxvY2tlci5jCkBAIC0zMiw5ICszMiwxMSBAQCBt b2R1bGVfcGFyYW1fbmFtZWQoZGVidWdfbWFzaywgZGVidWdfbWFzaywgaW50LCBTX0lSVUdPIHwg U19JV1VTUiB8IFNfSVdHUlApOwogI2RlZmluZSBTQl9JTklUSUFMSVpFRCAgICAgICAgICAgICgx VSA8PCA4KQogI2RlZmluZSBTQl9BQ1RJVkUgICAgICAgICAgICAgICAgICgxVSA8PCA5KQogCitz dGF0aWMgREVGSU5FX1NQSU5MT0NLKGxpc3RfbG9jayk7CiBzdGF0aWMgREVGSU5FX1NQSU5MT0NL KHN0YXRlX2xvY2spOwotc3RhdGljIGF0b21pY190IHN1c3BlbmRfYmxvY2tfY291bnQ7Ci1zdGF0 aWMgYXRvbWljX3QgY3VycmVudF9ldmVudF9udW07CitzdGF0aWMgTElTVF9IRUFEKGluYWN0aXZl X2Jsb2NrZXJzKTsKK3N0YXRpYyBMSVNUX0hFQUQoYWN0aXZlX2Jsb2NrZXJzKTsKK3N0YXRpYyBp bnQgY3VycmVudF9ldmVudF9udW07CiBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqc3VzcGVuZF93 b3JrX3F1ZXVlOwogc3RydWN0IHN1c3BlbmRfYmxvY2tlciBtYWluX3N1c3BlbmRfYmxvY2tlcjsK IHN0YXRpYyBzdXNwZW5kX3N0YXRlX3QgcmVxdWVzdGVkX3N1c3BlbmRfc3RhdGUgPSBQTV9TVVNQ RU5EX01FTTsKQEAgLTUyLDYgKzU0LDE0IEBAIHN0YXRpYyBib29sIGVuYWJsZV9zdXNwZW5kX2Js b2NrZXJzOwogCQkJdG0udG1faG91ciwgdG0udG1fbWluLCB0bS50bV9zZWMsIHRzLnR2X25zZWMp OyBcCiAJfSB3aGlsZSAoMCk7CiAKK3N0YXRpYyB2b2lkIHByaW50X2FjdGl2ZV9ibG9ja2Vyc19s b2NrZWQodm9pZCkKK3sKKwlzdHJ1Y3Qgc3VzcGVuZF9ibG9ja2VyICpibG9ja2VyOworCisJbGlz dF9mb3JfZWFjaF9lbnRyeShibG9ja2VyLCAmYWN0aXZlX2Jsb2NrZXJzLCBsaW5rKQorCQlwcl9p bmZvKCJhY3RpdmUgc3VzcGVuZCBibG9ja2VyICVzXG4iLCBibG9ja2VyLT5uYW1lKTsKK30KKwog LyoqCiAgKiBzdXNwZW5kX2lzX2Jsb2NrZWQoKSAtIENoZWNrIGlmIHN1c3BlbmQgc2hvdWxkIGJl IGJsb2NrZWQKICAqCkBAIC02NSw3ICs3NSw3IEBAIGJvb2wgc3VzcGVuZF9pc19ibG9ja2VkKHZv aWQpCiB7CiAJaWYgKCFlbmFibGVfc3VzcGVuZF9ibG9ja2VycykKIAkJcmV0dXJuIDA7Ci0JcmV0 dXJuICEhYXRvbWljX3JlYWQoJnN1c3BlbmRfYmxvY2tfY291bnQpOworCXJldHVybiAhbGlzdF9l bXB0eSgmYWN0aXZlX2Jsb2NrZXJzKTsKIH0KIAogc3RhdGljIHZvaWQgc3VzcGVuZF93b3JrZXIo c3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQpAQCAtNzUsMTMgKzg1LDEzIEBAIHN0YXRpYyB2b2lk IHN1c3BlbmRfd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAogCWVuYWJsZV9zdXNw ZW5kX2Jsb2NrZXJzID0gdHJ1ZTsKIAl3aGlsZSAoIXN1c3BlbmRfaXNfYmxvY2tlZCgpKSB7Ci0J CWVudHJ5X2V2ZW50X251bSA9IGF0b21pY19yZWFkKCZjdXJyZW50X2V2ZW50X251bSk7CisJCWVu dHJ5X2V2ZW50X251bSA9IGN1cnJlbnRfZXZlbnRfbnVtOwogCQlpZiAoZGVidWdfbWFzayAmIERF QlVHX1NVU1BFTkQpCiAJCQlwcl9pbmZvKCJzdXNwZW5kOiBlbnRlciBzdXNwZW5kXG4iKTsKIAkJ cmV0ID0gcG1fc3VzcGVuZChyZXF1ZXN0ZWRfc3VzcGVuZF9zdGF0ZSk7CiAJCWlmIChkZWJ1Z19t YXNrICYgREVCVUdfRVhJVF9TVVNQRU5EKQogCQkJcHJfaW5mb190aW1lKCJzdXNwZW5kOiBleGl0 IHN1c3BlbmQsIHJldCA9ICVkICIsIHJldCk7Ci0JCWlmIChhdG9taWNfcmVhZCgmY3VycmVudF9l dmVudF9udW0pID09IGVudHJ5X2V2ZW50X251bSkKKwkJaWYgKGN1cnJlbnRfZXZlbnRfbnVtID09 IGVudHJ5X2V2ZW50X251bSkKIAkJCXByX2luZm8oInN1c3BlbmQ6IHBtX3N1c3BlbmQgcmV0dXJu ZWQgd2l0aCBubyBldmVudFxuIik7CiAJfQogCWVuYWJsZV9zdXNwZW5kX2Jsb2NrZXJzID0gZmFs c2U7CkBAIC05OCwxMyArMTA4LDIwIEBAIHN0YXRpYyBERUNMQVJFX1dPUksoc3VzcGVuZF93b3Jr LCBzdXNwZW5kX3dvcmtlcik7CiAgKi8KIHZvaWQgc3VzcGVuZF9ibG9ja2VyX2luaXQoc3RydWN0 IHN1c3BlbmRfYmxvY2tlciAqYmxvY2tlciwgY29uc3QgY2hhciAqbmFtZSkKIHsKKwl1bnNpZ25l ZCBsb25nIGlycWZsYWdzID0gMDsKKwogCVdBUk5fT04oIW5hbWUpOwogCiAJaWYgKGRlYnVnX21h c2sgJiBERUJVR19TVVNQRU5EX0JMT0NLRVIpCiAJCXByX2luZm8oInN1c3BlbmRfYmxvY2tlcl9p bml0IG5hbWU9JXNcbiIsIG5hbWUpOwogCiAJYmxvY2tlci0+bmFtZSA9IG5hbWU7Ci0JYXRvbWlj X3NldCgmYmxvY2tlci0+ZmxhZ3MsIFNCX0lOSVRJQUxJWkVEKTsKKwlibG9ja2VyLT5mbGFncyA9 IFNCX0lOSVRJQUxJWkVEOworCUlOSVRfTElTVF9IRUFEKCZibG9ja2VyLT5saW5rKTsKKworCXNw aW5fbG9ja19pcnFzYXZlKCZsaXN0X2xvY2ssIGlycWZsYWdzKTsKKwlsaXN0X2FkZCgmYmxvY2tl ci0+bGluaywgJmluYWN0aXZlX2Jsb2NrZXJzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZs aXN0X2xvY2ssIGlycWZsYWdzKTsKIH0KIEVYUE9SVF9TWU1CT0woc3VzcGVuZF9ibG9ja2VyX2lu aXQpOwogCkBAIC0xMTQsMTUgKzEzMSwxNyBAQCBFWFBPUlRfU1lNQk9MKHN1c3BlbmRfYmxvY2tl cl9pbml0KTsKICAqLwogdm9pZCBzdXNwZW5kX2Jsb2NrZXJfZGVzdHJveShzdHJ1Y3Qgc3VzcGVu ZF9ibG9ja2VyICpibG9ja2VyKQogewotCWludCBmbGFnczsKKwl1bnNpZ25lZCBsb25nIGlycWZs YWdzOworCWlmIChXQVJOX09OKCEoYmxvY2tlci0+ZmxhZ3MgJiBTQl9JTklUSUFMSVpFRCkpKQor CQlyZXR1cm47CiAJaWYgKGRlYnVnX21hc2sgJiBERUJVR19TVVNQRU5EX0JMT0NLRVIpCiAJCXBy X2luZm8oInN1c3BlbmRfYmxvY2tlcl9kZXN0cm95IG5hbWU9JXNcbiIsIGJsb2NrZXItPm5hbWUp OwotCWZsYWdzID0gYXRvbWljX3hjaGcoJmJsb2NrZXItPmZsYWdzLCAwKTsKLQlXQVJOKCEoZmxh Z3MgJiBTQl9JTklUSUFMSVpFRCksICJzdXNwZW5kX2Jsb2NrZXJfZGVzdHJveSBjYWxsZWQgb24g IgotCQkJCQkidW5pbml0aWFsaXplZCBzdXNwZW5kX2Jsb2NrZXJcbiIpOwotCWlmIChmbGFncyA9 PSAoU0JfSU5JVElBTElaRUQgfCBTQl9BQ1RJVkUpKQotCQlpZiAoYXRvbWljX2RlY19hbmRfdGVz dCgmc3VzcGVuZF9ibG9ja19jb3VudCkpCi0JCQlxdWV1ZV93b3JrKHN1c3BlbmRfd29ya19xdWV1 ZSwgJnN1c3BlbmRfd29yayk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmxpc3RfbG9jaywgaXJxZmxh Z3MpOworCWJsb2NrZXItPmZsYWdzICY9IH5TQl9JTklUSUFMSVpFRDsKKwlsaXN0X2RlbCgmYmxv Y2tlci0+bGluayk7CisJaWYgKChibG9ja2VyLT5mbGFncyAmIFNCX0FDVElWRSkgJiYgbGlzdF9l bXB0eSgmYWN0aXZlX2Jsb2NrZXJzKSkKKwkJcXVldWVfd29yayhzdXNwZW5kX3dvcmtfcXVldWUs ICZzdXNwZW5kX3dvcmspOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmxpc3RfbG9jaywgaXJx ZmxhZ3MpOwogfQogRVhQT1JUX1NZTUJPTChzdXNwZW5kX2Jsb2NrZXJfZGVzdHJveSk7CiAKQEAg LTEzMiwxNSArMTUxLDIwIEBAIEVYUE9SVF9TWU1CT0woc3VzcGVuZF9ibG9ja2VyX2Rlc3Ryb3kp OwogICovCiB2b2lkIHN1c3BlbmRfYmxvY2soc3RydWN0IHN1c3BlbmRfYmxvY2tlciAqYmxvY2tl cikKIHsKLQlXQVJOX09OKCEoYXRvbWljX3JlYWQoJmJsb2NrZXItPmZsYWdzKSAmIFNCX0lOSVRJ QUxJWkVEKSk7CisJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKKworCWlmIChXQVJOX09OKCEoYmxv Y2tlci0+ZmxhZ3MgJiBTQl9JTklUSUFMSVpFRCkpKQorCQlyZXR1cm47CiAKKwlzcGluX2xvY2tf aXJxc2F2ZSgmbGlzdF9sb2NrLCBpcnFmbGFncyk7CisJYmxvY2tlci0+ZmxhZ3MgfD0gU0JfQUNU SVZFOworCWxpc3RfZGVsKCZibG9ja2VyLT5saW5rKTsKIAlpZiAoZGVidWdfbWFzayAmIERFQlVH X1NVU1BFTkRfQkxPQ0tFUikKIAkJcHJfaW5mbygic3VzcGVuZF9ibG9jazogJXNcbiIsIGJsb2Nr ZXItPm5hbWUpOwotCWlmIChhdG9taWNfY21weGNoZygmYmxvY2tlci0+ZmxhZ3MsIFNCX0lOSVRJ QUxJWkVELAotCSAgICBTQl9JTklUSUFMSVpFRCB8IFNCX0FDVElWRSkgPT0gU0JfSU5JVElBTEla RUQpCi0JCWF0b21pY19pbmMoJnN1c3BlbmRfYmxvY2tfY291bnQpOworCWxpc3RfYWRkKCZibG9j a2VyLT5saW5rLCAmYWN0aXZlX2Jsb2NrZXJzKTsKIAotCWF0b21pY19pbmMoJmN1cnJlbnRfZXZl bnRfbnVtKTsKKwljdXJyZW50X2V2ZW50X251bSsrOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo Jmxpc3RfbG9jaywgaXJxZmxhZ3MpOwogfQogRVhQT1JUX1NZTUJPTChzdXNwZW5kX2Jsb2NrKTsK IApAQCAtMTUyLDE1ICsxNzYsMjYgQEAgRVhQT1JUX1NZTUJPTChzdXNwZW5kX2Jsb2NrKTsKICAq Lwogdm9pZCBzdXNwZW5kX3VuYmxvY2soc3RydWN0IHN1c3BlbmRfYmxvY2tlciAqYmxvY2tlcikK IHsKLQlXQVJOX09OKCEoYXRvbWljX3JlYWQoJmJsb2NrZXItPmZsYWdzKSAmIFNCX0lOSVRJQUxJ WkVEKSk7CisJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKKworCWlmIChXQVJOX09OKCEoYmxvY2tl ci0+ZmxhZ3MgJiBTQl9JTklUSUFMSVpFRCkpKQorCQlyZXR1cm47CisKKwlzcGluX2xvY2tfaXJx c2F2ZSgmbGlzdF9sb2NrLCBpcnFmbGFncyk7CiAKIAlpZiAoZGVidWdfbWFzayAmIERFQlVHX1NV U1BFTkRfQkxPQ0tFUikKIAkJcHJfaW5mbygic3VzcGVuZF91bmJsb2NrOiAlc1xuIiwgYmxvY2tl ci0+bmFtZSk7CisJbGlzdF9kZWwoJmJsb2NrZXItPmxpbmspOworCWxpc3RfYWRkKCZibG9ja2Vy LT5saW5rLCAmaW5hY3RpdmVfYmxvY2tlcnMpOwogCi0JaWYgKGF0b21pY19jbXB4Y2hnKCZibG9j a2VyLT5mbGFncywgU0JfSU5JVElBTElaRUQgfCBTQl9BQ1RJVkUsCi0JICAgIFNCX0lOSVRJQUxJ WkVEKSA9PSAoU0JfSU5JVElBTElaRUQgfCBTQl9BQ1RJVkUpKQotCQlpZiAoYXRvbWljX2RlY19h bmRfdGVzdCgmc3VzcGVuZF9ibG9ja19jb3VudCkpCi0JCQlxdWV1ZV93b3JrKHN1c3BlbmRfd29y a19xdWV1ZSwgJnN1c3BlbmRfd29yayk7CisJaWYgKChibG9ja2VyLT5mbGFncyAmIFNCX0FDVElW RSkgJiYgbGlzdF9lbXB0eSgmYWN0aXZlX2Jsb2NrZXJzKSkKKwkJcXVldWVfd29yayhzdXNwZW5k X3dvcmtfcXVldWUsICZzdXNwZW5kX3dvcmspOworCWJsb2NrZXItPmZsYWdzICY9IH4oU0JfQUNU SVZFKTsKKwlpZiAoYmxvY2tlciA9PSAmbWFpbl9zdXNwZW5kX2Jsb2NrZXIpIHsKKwkJaWYgKGRl YnVnX21hc2sgJiBERUJVR19TVVNQRU5EKQorCQkJcHJpbnRfYWN0aXZlX2Jsb2NrZXJzX2xvY2tl ZCgpOworCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZsaXN0X2xvY2ssIGlycWZsYWdzKTsK IH0KIEVYUE9SVF9TWU1CT0woc3VzcGVuZF91bmJsb2NrKTsKIApAQCAtMTcyLDkgKzIwNyw5IEBA IEVYUE9SVF9TWU1CT0woc3VzcGVuZF91bmJsb2NrKTsKICAqLwogYm9vbCBzdXNwZW5kX2Jsb2Nr ZXJfaXNfYWN0aXZlKHN0cnVjdCBzdXNwZW5kX2Jsb2NrZXIgKmJsb2NrZXIpCiB7Ci0JV0FSTl9P TighKGF0b21pY19yZWFkKCZibG9ja2VyLT5mbGFncykgJiBTQl9JTklUSUFMSVpFRCkpOworCVdB Uk5fT04oIShibG9ja2VyLT5mbGFncyAmIFNCX0lOSVRJQUxJWkVEKSk7CiAKLQlyZXR1cm4gISEo YXRvbWljX3JlYWQoJmJsb2NrZXItPmZsYWdzKSAmIFNCX0FDVElWRSk7CisJcmV0dXJuICEhKGJs b2NrZXItPmZsYWdzICYgU0JfQUNUSVZFKTsKIH0KIEVYUE9SVF9TWU1CT0woc3VzcGVuZF9ibG9j a2VyX2lzX2FjdGl2ZSk7CiAKLS0gCjEuNi4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpsaW51eC1wbSBtYWlsaW5nIGxpc3QKbGludXgtcG1AbGlzdHMu bGludXgtZm91bmRhdGlvbi5vcmcKaHR0cHM6Ly9saXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2xpbnV4LXBt