From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH 2/2] xen/sched: don't disable scheduler on cpus during suspend Date: Thu, 14 Mar 2019 10:59:53 +0100 Message-ID: <20190314095953.11752-3-jgross@suse.com> References: <20190314095953.11752-1-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1h4N9e-0000bW-3J for xen-devel@lists.xenproject.org; Thu, 14 Mar 2019 10:00:02 +0000 In-Reply-To: <20190314095953.11752-1-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Juergen Gross , George Dunlap , Dario Faggioli List-Id: xen-devel@lists.xenproject.org VG9kYXkgdGhlcmUgaXMgc3BlY2lhbCBoYW5kbGluZyBpbiBjcHVfZGlzYWJsZV9zY2hlZHVsZXIo KSBmb3Igc3VzcGVuZApieSBmb3JjaW5nIGFsbCB2Y3B1cyB0byB0aGUgYm9vdCBjcHUuIEluIGZh Y3QgdGhlcmUgaXMgbm8gbmVlZCBmb3IgdGhhdAphcyBkdXJpbmcgcmVzdW1lIHRoZSB2Y3B1cyBh cmUgcHV0IG9uIHRoZSBjb3JyZWN0IGNwdXMgYWdhaW4uCgpTbyB3ZSBjYW4ganVzdCBvbWl0IHRo ZSBjYWxsIG9mIGNwdV9kaXNhYmxlX3NjaGVkdWxlcigpIHdoZW4gb2ZmbGluaW5nCmEgY3B1IGR1 ZSB0byBzdXNwZW5kIGFuZCBvbiByZXN1bWluZyB3ZSBjYW4gb21pdCB0YWtpbmcgdGhlIHNjaGVk dWxlCmxvY2sgZm9yIHNlbGVjdGluZyB0aGUgbmV3IHByb2Nlc3Nvci4KCkluIHJlc3RvcmVfdmNw dV9hZmZpbml0eSgpIHdlIHNob3VsZCBiZSBjYXJlZnVsIHdoZW4gYXBwbHlpbmcgYWZmaW5pdHkK YXMgdGhlIGNwdSBtaWdodCBub3QgaGF2ZSBjb21lIGJhY2sgdG8gbGlmZS4gVGhpcyBpbiB0dXJu IGVuYWJsZXMgdXMKdG8gZXZlbiBzdXBwb3J0IGFmZmluaXR5X2Jyb2tlbiBhY3Jvc3Mgc3VzcGVu ZC9yZXN1bWUuCgpTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+ Ci0tLQogeGVuL2NvbW1vbi9jcHVwb29sLmMgIHwgICAyICstCiB4ZW4vY29tbW9uL3NjaGVkdWxl LmMgfCAxNDYgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIDIgZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgMTA2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vY3B1cG9vbC5jIGIveGVuL2NvbW1vbi9jcHVwb29sLmMK aW5kZXggZTg5YmI2N2U3MS4uN2I1Y2UxODQyNiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9jcHVw b29sLmMKKysrIGIveGVuL2NvbW1vbi9jcHVwb29sLmMKQEAgLTMxMyw3ICszMTMsNyBAQCBzdGF0 aWMgbG9uZyBjcHVwb29sX3VuYXNzaWduX2NwdV9oZWxwZXIodm9pZCAqaW5mbykKICAgICAgKiBj cHVfZGlzYWJsZV9zY2hlZHVsZXIoKSwgYW5kIGF0IHRoZSBib3R0b20gb2YgdGhpcyBmdW5jdGlv bi4KICAgICAgKi8KICAgICByY3VfcmVhZF9sb2NrKCZkb21saXN0X3JlYWRfbG9jayk7Ci0gICAg cmV0ID0gY3B1X2Rpc2FibGVfc2NoZWR1bGVyKGNwdSk7CisgICAgcmV0ID0gKHN5c3RlbV9zdGF0 ZSA9PSBTWVNfU1RBVEVfc3VzcGVuZCkgPyAwIDogY3B1X2Rpc2FibGVfc2NoZWR1bGVyKGNwdSk7 CiAgICAgY3B1bWFza19zZXRfY3B1KGNwdSwgJmNwdXBvb2xfZnJlZV9jcHVzKTsKIAogICAgIC8q CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3NjaGVkdWxlLmMgYi94ZW4vY29tbW9uL3NjaGVkdWxl LmMKaW5kZXggNjA3NTVhNjMxZS4uMWFiNGYxODJjZSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9z Y2hlZHVsZS5jCisrKyBiL3hlbi9jb21tb24vc2NoZWR1bGUuYwpAQCAtNTYwLDMzICs1NjAsNiBA QCBzdGF0aWMgdm9pZCB2Y3B1X21vdmVfbG9ja2VkKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBp bnQgbmV3X2NwdSkKICAgICAgICAgdi0+cHJvY2Vzc29yID0gbmV3X2NwdTsKIH0KIAotLyoKLSAq IE1vdmUgYSB2Y3B1IGZyb20gaXRzIGN1cnJlbnQgcHJvY2Vzc29yIHRvIGEgdGFyZ2V0IG5ldyBw cm9jZXNzb3IsCi0gKiB3aXRob3V0IGFza2luZyB0aGUgc2NoZWR1bGVyIHRvIGRvIGFueSBwbGFj ZW1lbnQuIFRoaXMgaXMgaW50ZW5kZWQKLSAqIGZvciBiZWluZyBjYWxsZWQgZnJvbSBzcGVjaWFs IGNvbnRleHRzLCB3aGVyZSB0aGluZ3MgYXJlIHF1aWV0Ci0gKiBlbm91Z2ggdGhhdCBubyBjb250 ZW50aW9uIGlzIHN1cHBvc2VkIHRvIGhhcHBlbiAoaS5lLiwgZHVyaW5nCi0gKiBzaHV0ZG93biBv ciBzb2Z0d2FyZSBzdXNwZW5kLCBsaWtlIEFDUEkgUzMpLgotICovCi1zdGF0aWMgdm9pZCB2Y3B1 X21vdmVfbm9zY2hlZChzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IG5ld19jcHUpCi17Ci0g ICAgdW5zaWduZWQgbG9uZyBmbGFnczsKLSAgICBzcGlubG9ja190ICpsb2NrLCAqbmV3X2xvY2s7 Ci0KLSAgICBBU1NFUlQoc3lzdGVtX3N0YXRlID09IFNZU19TVEFURV9zdXNwZW5kKTsKLSAgICBB U1NFUlQoIXZjcHVfcnVubmFibGUodikgJiYgKGF0b21pY19yZWFkKCZ2LT5wYXVzZV9jb3VudCkg fHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0b21pY19yZWFkKCZ2LT5kb21h aW4tPnBhdXNlX2NvdW50KSkpOwotCi0gICAgbG9jayA9IHBlcl9jcHUoc2NoZWR1bGVfZGF0YSwg di0+cHJvY2Vzc29yKS5zY2hlZHVsZV9sb2NrOwotICAgIG5ld19sb2NrID0gcGVyX2NwdShzY2hl ZHVsZV9kYXRhLCBuZXdfY3B1KS5zY2hlZHVsZV9sb2NrOwotCi0gICAgc2NoZWRfc3Bpbl9sb2Nr X2RvdWJsZShsb2NrLCBuZXdfbG9jaywgJmZsYWdzKTsKLSAgICBBU1NFUlQobmV3X2NwdSAhPSB2 LT5wcm9jZXNzb3IpOwotICAgIHZjcHVfbW92ZV9sb2NrZWQodiwgbmV3X2NwdSk7Ci0gICAgc2No ZWRfc3Bpbl91bmxvY2tfZG91YmxlKGxvY2ssIG5ld19sb2NrLCBmbGFncyk7Ci0KLSAgICBzY2hl ZF9tb3ZlX2lycXModik7Ci19Ci0KIC8qCiAgKiBJbml0aWF0aW5nIG1pZ3JhdGlvbgogICoKQEAg LTczNSwzMSArNzA4LDM2IEBAIHZvaWQgcmVzdG9yZV92Y3B1X2FmZmluaXR5KHN0cnVjdCBkb21h aW4gKmQpCiAKICAgICAgICAgQVNTRVJUKCF2Y3B1X3J1bm5hYmxlKHYpKTsKIAotICAgICAgICBs b2NrID0gdmNwdV9zY2hlZHVsZV9sb2NrX2lycSh2KTsKLQotICAgICAgICBpZiAoIHYtPmFmZmlu aXR5X2Jyb2tlbiApCi0gICAgICAgIHsKLSAgICAgICAgICAgIHNjaGVkX3NldF9hZmZpbml0eSh2 LCB2LT5jcHVfaGFyZF9hZmZpbml0eV9zYXZlZCwgTlVMTCk7Ci0gICAgICAgICAgICB2LT5hZmZp bml0eV9icm9rZW4gPSAwOwotCi0gICAgICAgIH0KLQogICAgICAgICAvKgotICAgICAgICAgKiBE dXJpbmcgc3VzcGVuZCAoaW4gY3B1X2Rpc2FibGVfc2NoZWR1bGVyKCkpLCB3ZSBtb3ZlZCBldmVy eSB2Q1BVCi0gICAgICAgICAqIHRvIEJTUCAod2hpY2gsIGFzIG9mIG5vdywgaXMgcENQVSAwKSwg YXMgYSB0ZW1wb3JhcnkgbWVhc3VyZSB0bwotICAgICAgICAgKiBhbGxvdyB0aGUgbm9uYm9vdCBw cm9jZXNzb3JzIHRvIGhhdmUgdGhlaXIgZGF0YSBzdHJ1Y3R1cmUgZnJlZWQKLSAgICAgICAgICog YW5kIGdvIHRvIHNsZWVwLiBCdXQgbm90aGluZyBndWFyZGFudGVlcyB0aGF0IHRoZSBCU1AgaXMg YSB2YWxpZAotICAgICAgICAgKiBwQ1BVIGZvciBhIHBhcnRpY3VsYXIgZG9tYWluLgorICAgICAg ICAgKiBSZS1hc3NpZ24gdGhlIGluaXRpYWwgcHJvY2Vzc29yIGFzIGFmdGVyIHJlc3VtZSB3ZSBo YXZlIG5vCisgICAgICAgICAqIGd1YXJhbnRlZSB0aGUgb2xkIHByb2Nlc3NvciBoYXMgY29tZSBi YWNrIHRvIGxpZmUgYWdhaW4uCiAgICAgICAgICAqCiAgICAgICAgICAqIFRoZXJlZm9yZSwgaGVy ZSwgYmVmb3JlIGFjdHVhbGx5IHVucGF1c2luZyB0aGUgZG9tYWlucywgd2Ugc2hvdWxkCiAgICAg ICAgICAqIHNldCB2LT5wcm9jZXNzb3Igb2YgZWFjaCBvZiB0aGVpciB2Q1BVcyB0byBzb21ldGhp bmcgdGhhdCB3aWxsCiAgICAgICAgICAqIG1ha2Ugc2Vuc2UgZm9yIHRoZSBzY2hlZHVsZXIgb2Yg dGhlIGNwdXBvb2wgaW4gd2hpY2ggdGhleSBhcmUgaW4uCiAgICAgICAgICAqLwogICAgICAgICBj cHVtYXNrX2FuZChjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSksIHYtPmNwdV9oYXJkX2FmZmluaXR5 LAotICAgICAgICAgICAgICAgICAgICBjcHVwb29sX2RvbWFpbl9jcHVtYXNrKHYtPmRvbWFpbikp OwotICAgICAgICB2LT5wcm9jZXNzb3IgPSBjcHVtYXNrX2FueShjcHVtYXNrX3NjcmF0Y2hfY3B1 KGNwdSkpOworICAgICAgICAgICAgICAgICAgICBjcHVwb29sX2RvbWFpbl9jcHVtYXNrKGQpKTsK KyAgICAgICAgaWYgKCBjcHVtYXNrX2VtcHR5KGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSkgKQor ICAgICAgICB7CisgICAgICAgICAgICBpZiAoIHYtPmFmZmluaXR5X2Jyb2tlbiApCisgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgc2NoZWRfc2V0X2FmZmluaXR5KHYsIHYtPmNwdV9oYXJk X2FmZmluaXR5X3NhdmVkLCBOVUxMKTsKKyAgICAgICAgICAgICAgICB2LT5hZmZpbml0eV9icm9r ZW4gPSAwOworICAgICAgICAgICAgICAgIGNwdW1hc2tfYW5kKGNwdW1hc2tfc2NyYXRjaF9jcHUo Y3B1KSwgdi0+Y3B1X2hhcmRfYWZmaW5pdHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y3B1cG9vbF9kb21haW5fY3B1bWFzayhkKSk7CisgICAgICAgICAgICB9CiAKLSAgICAgICAgc3Bp bl91bmxvY2tfaXJxKGxvY2spOworICAgICAgICAgICAgaWYgKCBjcHVtYXNrX2VtcHR5KGNwdW1h c2tfc2NyYXRjaF9jcHUoY3B1KSkgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHBy aW50ayhYRU5MT0dfREVCVUcgIkJyZWFraW5nIGFmZmluaXR5IGZvciAlcHZcbiIsIHYpOworICAg ICAgICAgICAgICAgIHNjaGVkX3NldF9hZmZpbml0eSh2LCAmY3B1bWFza19hbGwsIE5VTEwpOwor ICAgICAgICAgICAgICAgIGNwdW1hc2tfYW5kKGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwgdi0+ Y3B1X2hhcmRfYWZmaW5pdHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1cG9vbF9k b21haW5fY3B1bWFzayhkKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB2 LT5wcm9jZXNzb3IgPSBjcHVtYXNrX2FueShjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSkpOwogCiAg ICAgICAgIGxvY2sgPSB2Y3B1X3NjaGVkdWxlX2xvY2tfaXJxKHYpOwogICAgICAgICB2LT5wcm9j ZXNzb3IgPSBTQ0hFRF9PUCh2Y3B1X3NjaGVkdWxlcih2KSwgcGlja19jcHUsIHYpOwpAQCAtNzgy LDcgKzc2MCw2IEBAIGludCBjcHVfZGlzYWJsZV9zY2hlZHVsZXIodW5zaWduZWQgaW50IGNwdSkK ICAgICBzdHJ1Y3QgdmNwdSAqdjsKICAgICBzdHJ1Y3QgY3B1cG9vbCAqYzsKICAgICBjcHVtYXNr X3Qgb25saW5lX2FmZmluaXR5OwotICAgIHVuc2lnbmVkIGludCBuZXdfY3B1OwogICAgIGludCBy ZXQgPSAwOwogCiAgICAgYyA9IHBlcl9jcHUoY3B1cG9vbCwgY3B1KTsKQEAgLTgxNCwxNCArNzkx LDcgQEAgaW50IGNwdV9kaXNhYmxlX3NjaGVkdWxlcih1bnNpZ25lZCBpbnQgY3B1KQogICAgICAg ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAg ICBpZiAoc3lzdGVtX3N0YXRlID09IFNZU19TVEFURV9zdXNwZW5kKQotICAgICAgICAgICAgICAg IHsKLSAgICAgICAgICAgICAgICAgICAgY3B1bWFza19jb3B5KHYtPmNwdV9oYXJkX2FmZmluaXR5 X3NhdmVkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi0+Y3B1X2hhcmRfYWZm aW5pdHkpOwotICAgICAgICAgICAgICAgICAgICB2LT5hZmZpbml0eV9icm9rZW4gPSAxOwotICAg ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAg IHByaW50ayhYRU5MT0dfREVCVUcgIkJyZWFraW5nIGFmZmluaXR5IGZvciAlcHZcbiIsIHYpOwor ICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfREVCVUcgIkJyZWFraW5nIGFmZmluaXR5IGZv ciAlcHZcbiIsIHYpOwogCiAgICAgICAgICAgICAgICAgc2NoZWRfc2V0X2FmZmluaXR5KHYsICZj cHVtYXNrX2FsbCwgTlVMTCk7CiAgICAgICAgICAgICB9CkBAIC04MzMsNjAgKzgwMywyNiBAQCBp bnQgY3B1X2Rpc2FibGVfc2NoZWR1bGVyKHVuc2lnbmVkIGludCBjcHUpCiAgICAgICAgICAgICAg ICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIC8qIElmIGl0IGlzIG9u IHRoaXMgY3B1LCB3ZSBtdXN0IHNlbmQgaXQgYXdheS4gKi8KLSAgICAgICAgICAgIGlmICggdW5s aWtlbHkoc3lzdGVtX3N0YXRlID09IFNZU19TVEFURV9zdXNwZW5kKSApCi0gICAgICAgICAgICB7 Ci0gICAgICAgICAgICAgICAgdmNwdV9zY2hlZHVsZV91bmxvY2tfaXJxcmVzdG9yZShsb2NrLCBm bGFncywgdik7Ci0KLSAgICAgICAgICAgICAgICAvKgotICAgICAgICAgICAgICAgICAqIElmIHdl IGFyZSBkb2luZyBhIHNodXRkb3duL3N1c3BlbmQsIGl0IGlzIG5vdCBuZWNlc3NhcnkgdG8KLSAg ICAgICAgICAgICAgICAgKiBhc2sgdGhlIHNjaGVkdWxlciB0byBjaGltZSBpbi4gSW4gZmFjdDoK LSAgICAgICAgICAgICAgICAgKiAgKiB0aGVyZSBpcyBubyByZWFzb24gZm9yIGl0OiB0aGUgZW5k IHJlc3VsdCB3ZSBhcmUgYWZ0ZXIKLSAgICAgICAgICAgICAgICAgKiAgICBpcyBqdXN0ICdhbGwg dGhlIHZjcHVzIG9uIHRoZSBib290IHBjcHUsIGFuZCBubyB2Y3B1Ci0gICAgICAgICAgICAgICAg ICogICAgYW55d2hlcmUgZWxzZScsIHNvIGxldCdzIGp1c3QgZ28gZm9yIGl0OwotICAgICAgICAg ICAgICAgICAqICAqIGl0J3Mgd3JvbmcsIGZvciBjcHVwb29scyB3aXRoIG9ubHkgbm9uLWJvb3Qg cGNwdXMsIGFzCi0gICAgICAgICAgICAgICAgICogICAgdGhlIHNjaGVkdWxlciB3b3VsZCBhbHdh eXMgZmFpbCB0byBzZW5kIHRoZSB2Y3B1cyBhd2F5Ci0gICAgICAgICAgICAgICAgICogICAgZnJv bSB0aGUgbGFzdCBvbmxpbmUgKG5vbiBib290KSBwY3B1IQotICAgICAgICAgICAgICAgICAqCi0g ICAgICAgICAgICAgICAgICogVGhlcmVmb3JlLCBpbiB0aGUgc2h1dGRvd24vc3VzcGVuZCBjYXNl LCB3ZSBqdXN0IHBpY2sgdXAKLSAgICAgICAgICAgICAgICAgKiBvbmUgKHN0aWxsKSBvbmxpbmUg cGNwdS4gTm90ZSB0aGF0LCBhdCB0aGlzIHN0YWdlLCBhbGwKLSAgICAgICAgICAgICAgICAgKiBk b21haW5zIChpbmNsdWRpbmcgZG9tMCkgaGF2ZSBiZWVuIHBhdXNlZCBhbHJlYWR5LCBzbyB3ZQot ICAgICAgICAgICAgICAgICAqIGRvIG5vdCBleHBlY3QgYW55IHZjcHUgYWN0aXZpdHkgYXQgYWxs LgotICAgICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgICAgIGNwdW1hc2tfYW5kbm90KCZv bmxpbmVfYWZmaW5pdHksICZjcHVfb25saW5lX21hcCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjcHVtYXNrX29mKGNwdSkpOwotICAgICAgICAgICAgICAgIEJVR19PTihjcHVtYXNr X2VtcHR5KCZvbmxpbmVfYWZmaW5pdHkpKTsKLSAgICAgICAgICAgICAgICAvKgotICAgICAgICAg ICAgICAgICAqIEFzIGJvb3QgY3B1IGlzLCB1c3VhbGx5LCBwY3B1ICMwLCB1c2luZyBjcHVtYXNr X2ZpcnN0KCkKLSAgICAgICAgICAgICAgICAgKiB3aWxsIG1ha2UgdXMgY29udmVyZ2UgcXVpY2tl ci4KLSAgICAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgICAgICBuZXdfY3B1ID0gY3B1bWFz a19maXJzdCgmb25saW5lX2FmZmluaXR5KTsKLSAgICAgICAgICAgICAgICB2Y3B1X21vdmVfbm9z Y2hlZCh2LCBuZXdfY3B1KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UKLSAgICAg ICAgICAgIHsKLSAgICAgICAgICAgICAgICAvKgotICAgICAgICAgICAgICAgICAqIE9UT0gsIGlm IHRoZSBzeXN0ZW0gaXMgc3RpbGwgbGl2ZSwgYW5kIHdlIGFyZSBoZXJlIGJlY2F1c2UKLSAgICAg ICAgICAgICAgICAgKiB3ZSBhcmUgZG9pbmcgc29tZSBjcHVwb29sIG1hbmlwdWxhdGlvbnM6Ci0g ICAgICAgICAgICAgICAgICogICogd2Ugd2FudCB0byBjYWxsIHRoZSBzY2hlZHVsZXIsIGFuZCBs ZXQgaXQgcmUtZXZhbHVhdGlvbgotICAgICAgICAgICAgICAgICAqICAgIHRoZSBwbGFjZW1lbnQg b2YgdGhlIHZjcHUsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIG5ldwotICAgICAgICAgICAgICAg ICAqICAgIGNwdXBvb2wgY29uZmlndXJhdGlvbjsKLSAgICAgICAgICAgICAgICAgKiAgKiB0aGUg c2NoZWR1bGVyIHdpbGwgYWx3YXlzIGZpbmUgYSBzdWl0YWJsZSBzb2x1dGlvbiwgb3IKLSAgICAg ICAgICAgICAgICAgKiAgICB0aGluZ3Mgd291bGQgaGF2ZSBmYWlsZWQgYmVmb3JlIGdldHRpbmcg aW4gaGVyZS4KLSAgICAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgICAgICB2Y3B1X21pZ3Jh dGVfc3RhcnQodik7Ci0gICAgICAgICAgICAgICAgdmNwdV9zY2hlZHVsZV91bmxvY2tfaXJxcmVz dG9yZShsb2NrLCBmbGFncywgdik7CisgICAgICAgICAgICAvKiBJZiBpdCBpcyBvbiB0aGlzIGNw dSwgd2UgbXVzdCBzZW5kIGl0IGF3YXkuCisgICAgICAgICAgICAgKiBXZSBhcmUgZG9pbmcgc29t ZSBjcHVwb29sIG1hbmlwdWxhdGlvbnM6CisgICAgICAgICAgICAgKiAgKiB3ZSB3YW50IHRvIGNh bGwgdGhlIHNjaGVkdWxlciwgYW5kIGxldCBpdCByZS1ldmFsdWF0aW9uCisgICAgICAgICAgICAg KiAgICB0aGUgcGxhY2VtZW50IG9mIHRoZSB2Y3B1LCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBu ZXcKKyAgICAgICAgICAgICAqICAgIGNwdXBvb2wgY29uZmlndXJhdGlvbjsKKyAgICAgICAgICAg ICAqICAqIHRoZSBzY2hlZHVsZXIgd2lsbCBhbHdheXMgZmluZCBhIHN1aXRhYmxlIHNvbHV0aW9u LCBvcgorICAgICAgICAgICAgICogICAgdGhpbmdzIHdvdWxkIGhhdmUgZmFpbGVkIGJlZm9yZSBn ZXR0aW5nIGluIGhlcmUuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHZjcHVfbWlncmF0 ZV9zdGFydCh2KTsKKyAgICAgICAgICAgIHZjcHVfc2NoZWR1bGVfdW5sb2NrX2lycXJlc3RvcmUo bG9jaywgZmxhZ3MsIHYpOwogCi0gICAgICAgICAgICAgICAgdmNwdV9taWdyYXRlX2ZpbmlzaCh2 KTsKKyAgICAgICAgICAgIHZjcHVfbWlncmF0ZV9maW5pc2godik7CiAKLSAgICAgICAgICAgICAg ICAvKgotICAgICAgICAgICAgICAgICAqIFRoZSBvbmx5IGNhdmVhdCwgaW4gdGhpcyBjYXNlLCBp cyB0aGF0IGlmIGEgdmNwdSBhY3RpdmUgaW4KLSAgICAgICAgICAgICAgICAgKiB0aGUgaHlwZXJ2 aXNvciBpc24ndCBtaWdyYXRhYmxlLiBJbiB0aGlzIGNhc2UsIHRoZSBjYWxsZXIKLSAgICAgICAg ICAgICAgICAgKiBzaG91bGQgdHJ5IGFnYWluIGFmdGVyIHJlbGVhc2luZyBhbmQgcmVhcXVpcmlu ZyBhbGwgbG9ja3MuCi0gICAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgaWYgKCB2 LT5wcm9jZXNzb3IgPT0gY3B1ICkKLSAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVBR0FJTjsK LSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBUaGUgb25seSBj YXZlYXQsIGluIHRoaXMgY2FzZSwgaXMgdGhhdCBpZiBhIHZjcHUgYWN0aXZlIGluCisgICAgICAg ICAgICAgKiB0aGUgaHlwZXJ2aXNvciBpc24ndCBtaWdyYXRhYmxlLiBJbiB0aGlzIGNhc2UsIHRo ZSBjYWxsZXIKKyAgICAgICAgICAgICAqIHNob3VsZCB0cnkgYWdhaW4gYWZ0ZXIgcmVsZWFzaW5n IGFuZCByZWFxdWlyaW5nIGFsbCBsb2Nrcy4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAg aWYgKCB2LT5wcm9jZXNzb3IgPT0gY3B1ICkKKyAgICAgICAgICAgICAgICByZXQgPSAtRUFHQUlO OwogICAgICAgICB9CiAgICAgfQogCi0tIAoyLjE2LjQKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxt YW4vbGlzdGluZm8veGVuLWRldmVs