From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v2 4/5] tasklet: Introduce per-cpu tasklet for schedule tasklet. Date: Thu, 25 Aug 2016 15:24:00 -0400 Message-ID: <1472153041-14220-5-git-send-email-konrad.wilk@oracle.com> References: <1472153041-14220-1-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bd0GH-0008BC-H5 for xen-devel@lists.xenproject.org; Thu, 25 Aug 2016 19:24:25 +0000 In-Reply-To: <1472153041-14220-1-git-send-email-konrad.wilk@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, konrad@kernel.org Cc: "Lan, Tianyu" , Kevin Tian , Stefano Stabellini , Wei Liu , Jan Beulich , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Jun Nakajima List-Id: xen-devel@lists.xenproject.org V2l0aCB0aGUgInRhc2tsZXQ6IEludHJvZHVjZSBwZXItY3B1IHRhc2tsZXQgZm9yIHNvZnRpcnEu IgphbmQgInRhc2tsZXQ6IEFkZCBjcm9zcyBDUFUgZmVlZGluZyBvZiBwZXItY3B1IHRhc2tsZXRz LiIKd2UgaGF2ZSBhbGwgdGhlIG5lY2Nlc3NhcnkgcGllY2VzIHRvIHN3YXAgb3ZlciB0aGUKc2No ZWR1bGUgdGFza2xldC4gQXMgc3VjaCB0aGlzIHBhdGNoIGhhcyB0aGUgc2FtZSBsb2dpYwphcyB0 aGUgc29mdGlycSBvbmUgZXhjZXB0IHRoYXQgaXMgdXNlcyBhIGRpZmZlcmVudApuYW1lIGZvciBp dHMgcGVyLWNwdSBsaXN0ICgidGFza2xldF92ZWMiKS4KCkl0IGFsc28gcmVtb3ZlcyB0aGUgb2xk IGltcGxlbWVudGF0aW9uIGluIG9uZSBzd29vcC4KClNpZ25lZC1vZmYtYnk6IEtvbnJhZCBSemVz enV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KLS0tCgpSRkM6IEZpcnN0IHZlcnNp b24KdjE6IFBvc3RlZCwgZm9sa3MgYXNrZWQgaWYgdGlja2V0bG9ja3MgZml4ZWQgaXQuCnYyOiBJ bnRlbCBjb25maXJtZWQgYXQgWFBEUyAyMDE2IHRoYXQgdGhlIHByb2JsZW0gaXMgc3RpbGwgcHJl c2VudAogICAgd2l0aCBsYXJnZSBndWVzdHMuCgpDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1 c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ2M6 ICJMYW4sIFRpYW55dSIgPHRpYW55dS5sYW5AaW50ZWwuY29tPgpDYzogIEtldmluIFRpYW4gPGtl dmluLnRpYW5AaW50ZWwuY29tPgpDYzogSnVuIE5ha2FqaW1hIDxqdW4ubmFrYWppbWFAaW50ZWwu Y29tPgpDYzogR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29tPgpDYzog SWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBTdGVmYW5vIFN0YWJl bGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNjOiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9y Zz4KQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Ci0tLQogeGVuL2NvbW1vbi90YXNr bGV0LmMgfCAxOTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTEyIGluc2VydGlvbnMoKyksIDgxIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vdGFza2xldC5jIGIveGVuL2NvbW1vbi90YXNrbGV0 LmMKaW5kZXggYWIyMzMzOC4uNjE4ZTczYiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi90YXNrbGV0 LmMKKysrIGIveGVuL2NvbW1vbi90YXNrbGV0LmMKQEAgLTI1LDEyICsyNSwxMCBAQCBzdGF0aWMg Ym9vbF90IHRhc2tsZXRzX2luaXRpYWxpc2VkOwogCiBERUZJTkVfUEVSX0NQVSh1bnNpZ25lZCBs b25nLCB0YXNrbGV0X3dvcmtfdG9fZG8pOwogCi1zdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0 IGxpc3RfaGVhZCwgdGFza2xldF9saXN0KTsKLQotLyogUHJvdGVjdHMgYWxsIGxpc3RzIGFuZCB0 YXNrbGV0IHN0cnVjdHVyZXMuICovCi1zdGF0aWMgREVGSU5FX1NQSU5MT0NLKHRhc2tsZXRfbG9j ayk7CisvKiBQcm90ZWN0cyB0aGUgdGFza2xldF9mZWVkZXIgbGlzdC4gKi8KIHN0YXRpYyBERUZJ TkVfU1BJTkxPQ0soZmVlZGVyX2xvY2spOwogCitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0 IGxpc3RfaGVhZCwgdGFza2xldF9saXN0KTsKIHN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3Qg bGlzdF9oZWFkLCBzb2Z0aXJxX2xpc3QpOwogc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBs aXN0X2hlYWQsIHRhc2tsZXRfZmVlZGVyKTsKIApAQCAtNDAsNiArMzgsOCBAQCBzdGF0aWMgdm9p ZCBwZXJjcHVfdGFza2xldF9mZWVkKHZvaWQgKmFyZykKICAgICBzdHJ1Y3QgdGFza2xldCAqdDsK ICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpkc3RfbGlzdDsKICAgICBzdHJ1Y3QgbGlzdF9oZWFkICps aXN0ID0gJl9fZ2V0X2NwdV92YXIodGFza2xldF9mZWVkZXIpOworICAgIHVuc2lnbmVkIGxvbmcg KndvcmtfdG9fZG8gPSAmX19nZXRfY3B1X3Zhcih0YXNrbGV0X3dvcmtfdG9fZG8pOworICAgIGJv b2xfdCBwb2tlID0gMDsKIAogICAgIHNwaW5fbG9ja19pcnFzYXZlKCZmZWVkZXJfbG9jaywgZmxh Z3MpOwogCkBAIC01MiwxMCArNTIsMjMgQEAgc3RhdGljIHZvaWQgcGVyY3B1X3Rhc2tsZXRfZmVl ZCh2b2lkICphcmcpCiAgICAgICAgIEJVR19PTighdC0+aXNfcGVyY3B1KTsKICAgICAgICAgbGlz dF9kZWwoJnQtPmxpc3QpOwogCi0gICAgICAgIGRzdF9saXN0ID0gJl9fZ2V0X2NwdV92YXIoc29m dGlycV9saXN0KTsKKyAgICAgICAgaWYgKCB0LT5pc19zb2Z0aXJxICkKKyAgICAgICAgeworICAg ICAgICAgICAgZHN0X2xpc3QgPSAmX19nZXRfY3B1X3Zhcihzb2Z0aXJxX2xpc3QpOworICAgICAg ICAgICAgcG9rZSA9IDE7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZHN0 X2xpc3QgPSAmX19nZXRfY3B1X3Zhcih0YXNrbGV0X2xpc3QpOworCiAgICAgICAgIGxpc3RfYWRk X3RhaWwoJnQtPmxpc3QsIGRzdF9saXN0KTsKICAgICB9Ci0gICAgcmFpc2Vfc29mdGlycShUQVNL TEVUX1NPRlRJUlEpOworICAgIGlmICggcG9rZSApCisgICAgICAgIHJhaXNlX3NvZnRpcnEoVEFT S0xFVF9TT0ZUSVJRKTsKKyAgICBlbHNlCisgICAgeworICAgICAgICBpZiAoICF0ZXN0X2FuZF9z ZXRfYml0KF9UQVNLTEVUX2VucXVldWVkLCB3b3JrX3RvX2RvKSApCisgICAgICAgICAgICByYWlz ZV9zb2Z0aXJxKFNDSEVEVUxFX1NPRlRJUlEpOworICAgIH0KIG91dDoKICAgICBzcGluX3VubG9j a19pcnFyZXN0b3JlKCZmZWVkZXJfbG9jaywgZmxhZ3MpOwogfQpAQCAtNzAsNyArODMsNiBAQCBz dGF0aWMgdm9pZCB0YXNrbGV0X2VucXVldWUoc3RydWN0IHRhc2tsZXQgKnQpCiAgICAgICAgIHN0 cnVjdCBsaXN0X2hlYWQgKmxpc3Q7CiAKICAgICAgICAgSU5JVF9MSVNUX0hFQUQoJnQtPmxpc3Qp OwotICAgICAgICBCVUdfT04oICF0LT5pc19zb2Z0aXJxICk7CiAKICAgICAgICAgaWYgKCBjcHUg IT0gc21wX3Byb2Nlc3Nvcl9pZCgpICkKICAgICAgICAgewpAQCAtODMsMTUgKzk1LDMyIEBAIHN0 YXRpYyB2b2lkIHRhc2tsZXRfZW5xdWV1ZShzdHJ1Y3QgdGFza2xldCAqdCkKICAgICAgICAgICAg IG9uX3NlbGVjdGVkX2NwdXMoY3B1bWFza19vZihjcHUpLCBwZXJjcHVfdGFza2xldF9mZWVkLCBO VUxMLCAxKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICBpZiAoIHQt PmlzX3NvZnRpcnEgKQorICAgICAgICB7CiAKLSAgICAgICAgbG9jYWxfaXJxX3NhdmUoZmxhZ3Mp OworICAgICAgICAgICAgbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogCi0gICAgICAgIGxpc3QgPSAm X19nZXRfY3B1X3Zhcihzb2Z0aXJxX2xpc3QpOwotICAgICAgICBsaXN0X2FkZF90YWlsKCZ0LT5s aXN0LCBsaXN0KTsKLSAgICAgICAgcmFpc2Vfc29mdGlycShUQVNLTEVUX1NPRlRJUlEpOworICAg ICAgICAgICAgbGlzdCA9ICZfX2dldF9jcHVfdmFyKHNvZnRpcnFfbGlzdCk7CisgICAgICAgICAg ICBsaXN0X2FkZF90YWlsKCZ0LT5saXN0LCBsaXN0KTsKKyAgICAgICAgICAgIHJhaXNlX3NvZnRp cnEoVEFTS0xFVF9TT0ZUSVJRKTsKIAotICAgICAgICBsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7 Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsK KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsK KyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgKndvcmtfdG9fZG8gPSAmX19nZXRfY3B1X3Zhcih0 YXNrbGV0X3dvcmtfdG9fZG8pOworCisgICAgICAgICAgICBsb2NhbF9pcnFfc2F2ZShmbGFncyk7 CisKKyAgICAgICAgICAgIGxpc3QgPSAmX19nZXRfY3B1X3Zhcih0YXNrbGV0X2xpc3QpOworICAg ICAgICAgICAgbGlzdF9hZGRfdGFpbCgmdC0+bGlzdCwgbGlzdCk7CisgICAgICAgICAgICBpZiAo ICF0ZXN0X2FuZF9zZXRfYml0KF9UQVNLTEVUX2VucXVldWVkLCB3b3JrX3RvX2RvKSApCisgICAg ICAgICAgICAgICAgcmFpc2Vfc29mdGlycShTQ0hFRFVMRV9TT0ZUSVJRKTsKKworICAgICAgICAg ICAgbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg ICB9CiAgICAgfQogICAgIGlmICggdC0+aXNfc29mdGlycSApCiAgICAgewpAQCAtOTksMTcgKzEy OCwxMiBAQCBzdGF0aWMgdm9pZCB0YXNrbGV0X2VucXVldWUoc3RydWN0IHRhc2tsZXQgKnQpCiAg ICAgfQogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgKndvcmtfdG9fZG8g PSAmcGVyX2NwdSh0YXNrbGV0X3dvcmtfdG9fZG8sIGNwdSk7Ci0gICAgICAgIGxpc3RfYWRkX3Rh aWwoJnQtPmxpc3QsICZwZXJfY3B1KHRhc2tsZXRfbGlzdCwgY3B1KSk7Ci0gICAgICAgIGlmICgg IXRlc3RfYW5kX3NldF9iaXQoX1RBU0tMRVRfZW5xdWV1ZWQsIHdvcmtfdG9fZG8pICkKLSAgICAg ICAgICAgIGNwdV9yYWlzZV9zb2Z0aXJxKGNwdSwgU0NIRURVTEVfU09GVElSUSk7CisgICAgICAg IEJVRygpOwogICAgIH0KIH0KIAogdm9pZCB0YXNrbGV0X3NjaGVkdWxlX29uX2NwdShzdHJ1Y3Qg dGFza2xldCAqdCwgdW5zaWduZWQgaW50IGNwdSkKIHsKLSAgICB1bnNpZ25lZCBsb25nIGZsYWdz OwotCiAgICAgaWYgKCAhdGFza2xldHNfaW5pdGlhbGlzZWQgfHwgdC0+aXNfZGVhZCApCiAgICAg ICAgIHJldHVybjsKIApAQCAtMTIyLDE2ICsxNDYsNyBAQCB2b2lkIHRhc2tsZXRfc2NoZWR1bGVf b25fY3B1KHN0cnVjdCB0YXNrbGV0ICp0LCB1bnNpZ25lZCBpbnQgY3B1KQogICAgICAgICB9CiAg ICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgc3Bpbl9sb2NrX2lycXNhdmUoJnRhc2tsZXRfbG9j aywgZmxhZ3MpOwotCi0gICAgdC0+c2NoZWR1bGVkX29uID0gY3B1OwotICAgIGlmICggIXQtPmlz X3J1bm5pbmcgKQotICAgIHsKLSAgICAgICAgbGlzdF9kZWwoJnQtPmxpc3QpOwotICAgICAgICB0 YXNrbGV0X2VucXVldWUodCk7Ci0gICAgfQotCi0gICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm dGFza2xldF9sb2NrLCBmbGFncyk7CisgICAgQlVHKCk7CiB9CiAKIHZvaWQgdGFza2xldF9zY2hl ZHVsZShzdHJ1Y3QgdGFza2xldCAqdCkKQEAgLTEzOSwzMiArMTU0LDY3IEBAIHZvaWQgdGFza2xl dF9zY2hlZHVsZShzdHJ1Y3QgdGFza2xldCAqdCkKICAgICB0YXNrbGV0X3NjaGVkdWxlX29uX2Nw dSh0LCBzbXBfcHJvY2Vzc29yX2lkKCkpOwogfQogCi1zdGF0aWMgdm9pZCBkb190YXNrbGV0X3dv cmsodW5zaWduZWQgaW50IGNwdSwgc3RydWN0IGxpc3RfaGVhZCAqbGlzdCkKKy8qIFJldHVybiAw IGlmIHRoZXJlIGlzIG1vcmUgd29yayB0byBiZSBkb25lLiAqLworc3RhdGljIGludCBkb190YXNr bGV0X3dvcmsodm9pZCkKIHsKLSAgICBzdHJ1Y3QgdGFza2xldCAqdDsKKyAgICBzdHJ1Y3QgdGFz a2xldCAqdCA9IE5VTEw7CisgICAgc3RydWN0IGxpc3RfaGVhZCAqaGVhZDsKKyAgICBpbnQgcmMg PSAxOyAvKiBBbGwgZG9uZS4gKi8KIAotICAgIGlmICggdW5saWtlbHkobGlzdF9lbXB0eShsaXN0 KSB8fCBjcHVfaXNfb2ZmbGluZShjcHUpKSApCi0gICAgICAgIHJldHVybjsKKyAgICBsb2NhbF9p cnFfZGlzYWJsZSgpOworICAgIGhlYWQgPSAmX19nZXRfY3B1X3Zhcih0YXNrbGV0X2xpc3QpOwog Ci0gICAgdCA9IGxpc3RfZW50cnkobGlzdC0+bmV4dCwgc3RydWN0IHRhc2tsZXQsIGxpc3QpOwot ICAgIGxpc3RfZGVsX2luaXQoJnQtPmxpc3QpOworICAgIGlmICggIWxpc3RfZW1wdHkoaGVhZCkg KQorICAgIHsKKyAgICAgICAgdCA9IGxpc3RfZW50cnkoaGVhZC0+bmV4dCwgc3RydWN0IHRhc2ts ZXQsIGxpc3QpOwogCi0gICAgQlVHX09OKHQtPmlzX2RlYWQgfHwgdC0+aXNfcnVubmluZyB8fCAo dC0+c2NoZWR1bGVkX29uICE9IGNwdSkpOwotICAgIHQtPnNjaGVkdWxlZF9vbiA9IC0xOwotICAg IHQtPmlzX3J1bm5pbmcgPSAxOworICAgICAgICBpZiAoIGhlYWQtPm5leHQgPT0gaGVhZC0+cHJl diApIC8qIE9uZSBzaW5ndWxhciBpdGVtLiBSZS1pbml0IGhlYWQuICovCisgICAgICAgICAgICBJ TklUX0xJU1RfSEVBRCgmX19nZXRfY3B1X3Zhcih0YXNrbGV0X2xpc3QpKTsKKyAgICAgICAgZWxz ZQorICAgICAgICB7CisgICAgICAgICAgICAvKiBNdWx0aXBsZSBpdGVtcywgdXBkYXRlIGhlYWQg dG8gc2tpcCAndCcuICovCisgICAgICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0OwogCi0g ICAgc3Bpbl91bmxvY2tfaXJxKCZ0YXNrbGV0X2xvY2spOwotICAgIHN5bmNfbG9jYWxfZXhlY3N0 YXRlKCk7Ci0gICAgdC0+ZnVuYyh0LT5kYXRhKTsKLSAgICBzcGluX2xvY2tfaXJxKCZ0YXNrbGV0 X2xvY2spOworICAgICAgICAgICAgLyogT25lIGl0ZW0gcGFzdCAndCcuICovCisgICAgICAgICAg ICBsaXN0ID0gaGVhZC0+bmV4dC0+bmV4dDsKIAotICAgIHQtPmlzX3J1bm5pbmcgPSAwOworICAg ICAgICAgICAgQlVHX09OKGxpc3QgPT0gTlVMTCk7CisKKyAgICAgICAgICAgIC8qIEFuZCB1cGRh dGUgaGVhZCB0byBza2lwICd0Jy4gTm90ZSB0aGF0IHQtPmxpc3QucHJldiBzdGlsbAorICAgICAg ICAgICAgICogcG9pbnRzIHRvIGhlYWQsIGJ1dCB3ZSBkb24ndCBjYXJlIGFzIHdlIG9ubHkgcHJv Y2VzcyBvbmUgdGFza2xldAorICAgICAgICAgICAgICogYW5kIG9uY2UgZG9uZSB0aGUgdGFza2xl dCBsaXN0IGlzIHJlLWluaXQgb25lIHdheSBvciBhbm90aGVyLgorICAgICAgICAgICAgICovCisg ICAgICAgICAgICBoZWFkLT5uZXh0ID0gbGlzdDsKKyAgICAgICAgICAgIHJjID0gMDsgLyogTW9y ZSB3b3JrIHRvIGJlIGRvbmUuICovCisgICAgICAgIH0KKyAgICB9CisgICAgbG9jYWxfaXJxX2Vu YWJsZSgpOwogCi0gICAgaWYgKCB0LT5zY2hlZHVsZWRfb24gPj0gMCApCisgICAgaWYgKCAhdCAp CisgICAgICAgIHJldHVybiAxOyAvKiBOZXZlciBzYXcgaXQgaGFwcGVuZCwgYnV0IHdlIG1pZ2h0 IGhhdmUgYSBzcHVyaW91cyBjYXNlPyAqLworCisgICAgaWYgKCB0YXNrbGV0X3RyeWxvY2sodCkg KQogICAgIHsKLSAgICAgICAgQlVHX09OKHQtPmlzX2RlYWQgfHwgIWxpc3RfZW1wdHkoJnQtPmxp c3QpKTsKLSAgICAgICAgdGFza2xldF9lbnF1ZXVlKHQpOworICAgICAgICBpZiAoICF0ZXN0X2Fu ZF9jbGVhcl9iaXQoVEFTS0xFVF9TVEFURV9TQ0hFRCwgJnQtPnN0YXRlKSApCisgICAgICAgICAg ICAgICAgQlVHKCk7CisgICAgICAgIHN5bmNfbG9jYWxfZXhlY3N0YXRlKCk7CisgICAgICAgIHQt PmZ1bmModC0+ZGF0YSk7CisgICAgICAgIHRhc2tsZXRfdW5sb2NrKHQpOworICAgICAgICBpZiAo IHJjID09IDAgKQorICAgICAgICAgICAgcmFpc2Vfc29mdGlycShUQVNLTEVUX1NPRlRJUlEpOwor ICAgICAgICAvKiBXZSBjb3VsZCByZWluaXQgdGhlIHQtPmxpc3QgYnV0IHRhc2tsZXRfZW5xdWV1 ZSBkb2VzIGl0IGZvciB1cy4gKi8KKyAgICAgICAgcmV0dXJuIHJjOwogICAgIH0KKworICAgIGxv Y2FsX2lycV9kaXNhYmxlKCk7CisKKyAgICBJTklUX0xJU1RfSEVBRCgmdC0+bGlzdCk7CisgICAg bGlzdF9hZGRfdGFpbCgmdC0+bGlzdCwgJl9fZ2V0X2NwdV92YXIodGFza2xldF9saXN0KSk7Cisg ICAgc21wX3dtYigpOworICAgIHJhaXNlX3NvZnRpcnEoVEFTS0xFVF9TT0ZUSVJRKTsKKyAgICBs b2NhbF9pcnFfZW5hYmxlKCk7CisKKyAgICByZXR1cm4gMDsgLyogTW9yZSB0byBkby4gKi8KIH0K IAogdm9pZCBkb190YXNrbGV0X3dvcmtfcGVyY3B1KHZvaWQpCkBAIC0yMzIsNyArMjgyLDYgQEAg dm9pZCBkb190YXNrbGV0KHZvaWQpCiB7CiAgICAgdW5zaWduZWQgaW50IGNwdSA9IHNtcF9wcm9j ZXNzb3JfaWQoKTsKICAgICB1bnNpZ25lZCBsb25nICp3b3JrX3RvX2RvID0gJnBlcl9jcHUodGFz a2xldF93b3JrX3RvX2RvLCBjcHUpOwotICAgIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QgPSAmcGVy X2NwdSh0YXNrbGV0X2xpc3QsIGNwdSk7CiAKICAgICAvKgogICAgICAqIFdvcmsgbXVzdCBiZSBl bnF1ZXVlZCAqYW5kKiBzY2hlZHVsZWQuIE90aGVyd2lzZSB0aGVyZSBpcyBubyB3b3JrIHRvCkBA IC0yNDEsMTcgKzI5MCwxMSBAQCB2b2lkIGRvX3Rhc2tsZXQodm9pZCkKICAgICBpZiAoIGxpa2Vs eSgqd29ya190b19kbyAhPSAoVEFTS0xFVF9lbnF1ZXVlZHxUQVNLTEVUX3NjaGVkdWxlZCkpICkK ICAgICAgICAgcmV0dXJuOwogCi0gICAgc3Bpbl9sb2NrX2lycSgmdGFza2xldF9sb2NrKTsKLQot ICAgIGRvX3Rhc2tsZXRfd29yayhjcHUsIGxpc3QpOwotCi0gICAgaWYgKCBsaXN0X2VtcHR5KGxp c3QpICkKKyAgICBpZiAoIGRvX3Rhc2tsZXRfd29yaygpICkKICAgICB7Ci0gICAgICAgIGNsZWFy X2JpdChfVEFTS0xFVF9lbnF1ZXVlZCwgd29ya190b19kbyk7ICAgICAgICAKKyAgICAgICAgY2xl YXJfYml0KF9UQVNLTEVUX2VucXVldWVkLCB3b3JrX3RvX2RvKTsKICAgICAgICAgcmFpc2Vfc29m dGlycShTQ0hFRFVMRV9TT0ZUSVJRKTsKICAgICB9Ci0KLSAgICBzcGluX3VubG9ja19pcnEoJnRh c2tsZXRfbG9jayk7CiB9CiAKIApAQCAtMjYzLDggKzMwNiw2IEBAIHN0YXRpYyB2b2lkIHRhc2ts ZXRfc29mdGlycV9hY3Rpb24odm9pZCkKIAogdm9pZCB0YXNrbGV0X2tpbGwoc3RydWN0IHRhc2ts ZXQgKnQpCiB7Ci0gICAgdW5zaWduZWQgbG9uZyBmbGFnczsKLQogICAgIGlmICggdC0+aXNfcGVy Y3B1ICkKICAgICB7CiAgICAgICAgIHdoaWxlICggdGVzdF9hbmRfc2V0X2JpdChUQVNLTEVUX1NU QVRFX1NDSEVELCAmdC0+c3RhdGUpICkKQEAgLTI3OCwyNSArMzE5LDYgQEAgdm9pZCB0YXNrbGV0 X2tpbGwoc3RydWN0IHRhc2tsZXQgKnQpCiAgICAgICAgIHQtPmlzX2RlYWQgPSAxOwogICAgICAg ICByZXR1cm47CiAgICAgfQotICAgIHNwaW5fbG9ja19pcnFzYXZlKCZ0YXNrbGV0X2xvY2ssIGZs YWdzKTsKLQotICAgIGlmICggIWxpc3RfZW1wdHkoJnQtPmxpc3QpICkKLSAgICB7Ci0gICAgICAg IEJVR19PTih0LT5pc19kZWFkIHx8IHQtPmlzX3J1bm5pbmcgfHwgKHQtPnNjaGVkdWxlZF9vbiA8 IDApKTsKLSAgICAgICAgbGlzdF9kZWxfaW5pdCgmdC0+bGlzdCk7Ci0gICAgfQotCi0gICAgdC0+ c2NoZWR1bGVkX29uID0gLTE7Ci0gICAgdC0+aXNfZGVhZCA9IDE7Ci0KLSAgICB3aGlsZSAoIHQt PmlzX3J1bm5pbmcgKQotICAgIHsKLSAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdGFz a2xldF9sb2NrLCBmbGFncyk7Ci0gICAgICAgIGNwdV9yZWxheCgpOwotICAgICAgICBzcGluX2xv Y2tfaXJxc2F2ZSgmdGFza2xldF9sb2NrLCBmbGFncyk7Ci0gICAgfQotCi0gICAgc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmdGFza2xldF9sb2NrLCBmbGFncyk7CiB9CiAKIHN0YXRpYyB2b2lkIG1p Z3JhdGVfdGFza2xldHNfZnJvbV9jcHUodW5zaWduZWQgaW50IGNwdSwgc3RydWN0IGxpc3RfaGVh ZCAqbGlzdCkKQEAgLTMwNCw3ICszMjYsNyBAQCBzdGF0aWMgdm9pZCBtaWdyYXRlX3Rhc2tsZXRz X2Zyb21fY3B1KHVuc2lnbmVkIGludCBjcHUsIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpCiAgICAg dW5zaWduZWQgbG9uZyBmbGFnczsKICAgICBzdHJ1Y3QgdGFza2xldCAqdDsKIAotICAgIHNwaW5f bG9ja19pcnFzYXZlKCZ0YXNrbGV0X2xvY2ssIGZsYWdzKTsKKyAgICBzcGluX2xvY2tfaXJxc2F2 ZSgmZmVlZGVyX2xvY2ssIGZsYWdzKTsKIAogICAgIHdoaWxlICggIWxpc3RfZW1wdHkobGlzdCkg KQogICAgIHsKQEAgLTMxNSw3ICszMzcsNyBAQCBzdGF0aWMgdm9pZCBtaWdyYXRlX3Rhc2tsZXRz X2Zyb21fY3B1KHVuc2lnbmVkIGludCBjcHUsIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpCiAgICAg ICAgIHRhc2tsZXRfZW5xdWV1ZSh0KTsKICAgICB9CiAKLSAgICBzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZ0YXNrbGV0X2xvY2ssIGZsYWdzKTsKKyAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZm ZWVkZXJfbG9jaywgZmxhZ3MpOwogfQogCiB2b2lkIHRhc2tsZXRfaW5pdCgKQEAgLTMyNiw2ICsz NDgsNyBAQCB2b2lkIHRhc2tsZXRfaW5pdCgKICAgICB0LT5zY2hlZHVsZWRfb24gPSAtMTsKICAg ICB0LT5mdW5jID0gZnVuYzsKICAgICB0LT5kYXRhID0gZGF0YTsKKyAgICB0LT5pc19wZXJjcHUg PSAxOwogfQogCiB2b2lkIHNvZnRpcnFfdGFza2xldF9pbml0KApAQCAtMzMzLDI2ICszNTYsMzQg QEAgdm9pZCBzb2Z0aXJxX3Rhc2tsZXRfaW5pdCgKIHsKICAgICB0YXNrbGV0X2luaXQodCwgZnVu YywgZGF0YSk7CiAgICAgdC0+aXNfc29mdGlycSA9IDE7Ci0gICAgdC0+aXNfcGVyY3B1ID0gMTsK IH0KIAogc3RhdGljIGludCBjcHVfY2FsbGJhY2soCiAgICAgc3RydWN0IG5vdGlmaWVyX2Jsb2Nr ICpuZmIsIHVuc2lnbmVkIGxvbmcgYWN0aW9uLCB2b2lkICpoY3B1KQogewogICAgIHVuc2lnbmVk IGludCBjcHUgPSAodW5zaWduZWQgbG9uZyloY3B1OworICAgIHVuc2lnbmVkIGxvbmcgKndvcmtf dG9fZG87CiAKICAgICBzd2l0Y2ggKCBhY3Rpb24gKQogICAgIHsKICAgICBjYXNlIENQVV9VUF9Q UkVQQVJFOgotICAgICAgICBJTklUX0xJU1RfSEVBRCgmcGVyX2NwdSh0YXNrbGV0X2xpc3QsIGNw dSkpOwogICAgICAgICBJTklUX0xJU1RfSEVBRCgmcGVyX2NwdShzb2Z0aXJxX2xpc3QsIGNwdSkp OwogICAgICAgICBJTklUX0xJU1RfSEVBRCgmcGVyX2NwdSh0YXNrbGV0X2ZlZWRlciwgY3B1KSk7 CisgICAgICAgIElOSVRfTElTVF9IRUFEKCZwZXJfY3B1KHRhc2tsZXRfbGlzdCwgY3B1KSk7CiAg ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1BVX1VQX0NBTkNFTEVEOgogICAgIGNhc2UgQ1BVX0RF QUQ6Ci0gICAgICAgIG1pZ3JhdGVfdGFza2xldHNfZnJvbV9jcHUoY3B1LCAmcGVyX2NwdSh0YXNr bGV0X2xpc3QsIGNwdSkpOwogICAgICAgICBtaWdyYXRlX3Rhc2tsZXRzX2Zyb21fY3B1KGNwdSwg JnBlcl9jcHUoc29mdGlycV9saXN0LCBjcHUpKTsKICAgICAgICAgbWlncmF0ZV90YXNrbGV0c19m cm9tX2NwdShjcHUsICZwZXJfY3B1KHRhc2tsZXRfZmVlZGVyLCBjcHUpKTsKKyAgICAgICAgbWln cmF0ZV90YXNrbGV0c19mcm9tX2NwdShjcHUsICZwZXJfY3B1KHRhc2tsZXRfbGlzdCwgY3B1KSk7 CisKKyAgICAgICAgd29ya190b19kbyA9ICZwZXJfY3B1KHRhc2tsZXRfd29ya190b19kbywgY3B1 KTsKKyAgICAgICAgaWYgKCB0ZXN0X2JpdChfVEFTS0xFVF9lbnF1ZXVlZCwgd29ya190b19kbykg KQorICAgICAgICB7CisgICAgICAgICAgICB3b3JrX3RvX2RvID0gJl9fZ2V0X2NwdV92YXIodGFz a2xldF93b3JrX3RvX2RvKTsKKyAgICAgICAgICAgIGlmICggIXRlc3RfYW5kX3NldF9iaXQoX1RB U0tMRVRfZW5xdWV1ZWQsIHdvcmtfdG9fZG8pICkKKyAgICAgICAgICAgICAgICByYWlzZV9zb2Z0 aXJxKFNDSEVEVUxFX1NPRlRJUlEpOworICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGRl ZmF1bHQ6CiAgICAgICAgIGJyZWFrOwotLSAKMi40LjExCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==