From mboxrd@z Thu Jan 1 00:00:00 1970 From: Meng Xu Subject: [PATCH v1 1/3] xen:rtds: towards work conserving RTDS Date: Sun, 6 Aug 2017 12:22:41 -0400 Message-ID: <1502036563-4275-2-git-send-email-mengxu@cis.upenn.edu> References: <1502036563-4275-1-git-send-email-mengxu@cis.upenn.edu> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1502036563-4275-1-git-send-email-mengxu@cis.upenn.edu> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: george.dunlap@eu.citrix.com, dario.faggioli@citrix.com, ian.jackson@eu.citrix.com, xumengpanda@gmail.com, Meng Xu , wei.liu@citrix.com List-Id: xen-devel@lists.xenproject.org TWFrZSBSVERTIHNjaGVkdWxlciB3b3JrIGNvbnNlcnZpbmcgd2l0aG91dCBicmVha2luZyB0aGUg cmVhbC10aW1lIGd1YXJhbnRlZXMuCgpWQ1BVIG1vZGVsOgpFYWNoIHJlYWwtdGltZSBWQ1BVIGlz IGV4dGVuZGVkIHRvIGhhdmUgYW4gZXh0cmF0aW1lIGZsYWcKYW5kIGEgcHJpb3JpdHlfbGV2ZWwg ZmllbGQuCldoZW4gYSBWQ1BVJ3MgYnVkZ2V0IGlzIGRlcGxldGVkIGluIHRoZSBjdXJyZW50IHBl cmlvZCwKaWYgaXQgaGFzIGV4dHJhdGltZSBmbGFnIHNldCwKaXRzIHByaW9yaXR5X2xldmVsIHdp bGwgaW5jcmVhc2UgYnkgMSBhbmQgaXRzIGJ1ZGdldCB3aWxsIGJlIHJlZmlsbGVkOwpvdGhld3Jp c2UsIHRoZSBWQ1BVIHdpbGwgYmUgbW92ZWQgdG8gdGhlIGRlcGxldGVkcS4KClNjaGVkdWxpbmcg cG9saWN5IGlzIG1vZGlmaWVkIGdsb2JhbCBFREY6CkEgVkNQVSB2MSBoYXMgaGlnaGVyIHByaW9y aXR5IHRoYW4gYW5vdGhlciBWQ1BVIHYyIGlmCihpKSB2MSBoYXMgc21hbGxlciBwcmlvcml0eV9s ZXZlOyBvcgooaWkpIHYxIGhhcyB0aGUgc2FtZSBwcmlvcml0eV9sZXZlbCBidXQgaGFzIGEgc21h bGxlciBkZWFkbGluZQoKUXVldWUgbWFuYWdlbWVudDoKUnVuIHF1ZXVlIGhvbGRzIFZDUFVzIHdp dGggZXh0cmF0aW1lIGZsYWcgc2V0IGFuZCBWQ1BVcyB3aXRoCnJlbWFpbmluZyBidWRnZXQuIFJ1 biBxdWV1ZSBpcyBzb3J0ZWQgaW4gaW5jcmVhc2luZyBvcmRlciBvZiBWQ1BVcyBwcmlvcml0aWVz LgpEZXBsZXRlZCBxdWV1ZSBob2xkcyBWQ1BVcyB3aGljaCBoYXZlIGV4dHJhdGltZSBmbGFnIGNs ZWFyZWQgYW5kIGRlcGxldGVkIGJ1ZGdldC4KUmVwbGVuaXNoZWQgcXVldWUgaXMgbm90IG1vZGlm aWVkLgoKU2lnbmVkLW9mZi1ieTogTWVuZyBYdSA8bWVuZ3h1QGNpcy51cGVubi5lZHU+CgotLS0K Q2hhbmdlcyBmcm9tIFJGQyB2MQpSZXdvcmRpbmcgY29tbWVudHMgYW5kIGNvbW1pdCBtZXNzYWdl ClJlbW92ZSBpc193b3JrX2NvbnNlcnZpbmcgZmllbGQgZnJvbSBydF92Y3B1IHN0cnVjdHVyZQpV c2Ugb25lIGJpdCBpbiBWQ1BVJ3MgZmxhZyB0byBpbmRpY2F0ZSBpZiBhIFZDUFUgd2lsbCBoYXZl IGV4dHJhIHRpbWUKQ29ycmVjdCBjb21tZW50cyBzdHlsZQotLS0KIHhlbi9jb21tb24vc2NoZWRf cnQuYyAgICAgICB8IDkwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLQogeGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oIHwgIDMgKysKIDIgZmlsZXMgY2hhbmdl ZCwgNzkgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2Nv bW1vbi9zY2hlZF9ydC5jIGIveGVuL2NvbW1vbi9zY2hlZF9ydC5jCmluZGV4IDM5ZjZiZWUuLjRl MDQ4YjkgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWRfcnQuYworKysgYi94ZW4vY29tbW9u L3NjaGVkX3J0LmMKQEAgLTQ5LDEzICs0OSwxNSBAQAogICogQSBQQ1BVIGlzIGZlYXNpYmxlIGlm IHRoZSBWQ1BVIGNhbiBydW4gb24gdGhpcyBQQ1BVIGFuZCAodGhlIFBDUFUgaXMgaWRsZSBvcgog ICogaGFzIGEgbG93ZXItcHJpb3JpdHkgVkNQVSBydW5uaW5nIG9uIGl0LikKICAqCi0gKiBFYWNo IFZDUFUgaGFzIGEgZGVkaWNhdGVkIHBlcmlvZCBhbmQgYnVkZ2V0LgorICogRWFjaCBWQ1BVIGhh cyBhIGRlZGljYXRlZCBwZXJpb2QsIGJ1ZGdldCBhbmQgYSBleHRyYXRpbWUgZmxhZwogICogVGhl IGRlYWRsaW5lIG9mIGEgVkNQVSBpcyBhdCB0aGUgZW5kIG9mIGVhY2ggcGVyaW9kOwogICogQSBW Q1BVIGhhcyBpdHMgYnVkZ2V0IHJlcGxlbmlzaGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBw ZXJpb2Q7CiAgKiBXaGlsZSBzY2hlZHVsZWQsIGEgVkNQVSBidXJucyBpdHMgYnVkZ2V0LgogICog VGhlIFZDUFUgbmVlZHMgdG8gZmluaXNoIGl0cyBidWRnZXQgYmVmb3JlIGl0cyBkZWFkbGluZSBp biBlYWNoIHBlcmlvZDsKICAqIFRoZSBWQ1BVIGRpc2NhcmRzIGl0cyB1bnVzZWQgYnVkZ2V0IGF0 IHRoZSBlbmQgb2YgZWFjaCBwZXJpb2QuCi0gKiBJZiBhIFZDUFUgcnVucyBvdXQgb2YgYnVkZ2V0 IGluIGEgcGVyaW9kLCBpdCBoYXMgdG8gd2FpdCB1bnRpbCBuZXh0IHBlcmlvZC4KKyAqIFdoZW4g YSBWQ1BVIHJ1bnMgb3V0IG9mIGJ1ZGdldCBpbiBhIHBlcmlvZCwgaWYgaXRzIGV4dHJhdGltZSBm bGFnIGlzIHNldCwKKyAqIHRoZSBWQ1BVIGluY3JlYXNlcyBpdHMgcHJpb3JpdHlfbGV2ZWwgYnkg MSBhbmQgcmVmaWxscyBpdHMgYnVkZ2V0OyBvdGhlcndpc2UsCisgKiBpdCBoYXMgdG8gd2FpdCB1 bnRpbCBuZXh0IHBlcmlvZC4KICAqCiAgKiBFYWNoIFZDUFUgaXMgaW1wbGVtZW50ZWQgYXMgYSBk ZWZlcmFibGUgc2VydmVyLgogICogV2hlbiBhIFZDUFUgaGFzIGEgdGFzayBydW5uaW5nIG9uIGl0 LCBpdHMgYnVkZ2V0IGlzIGNvbnRpbnVvdXNseSBidXJuZWQ7CkBAIC02Myw3ICs2NSw4IEBACiAg KgogICogUXVldWUgc2NoZW1lOgogICogQSBnbG9iYWwgcnVucXVldWUgYW5kIGEgZ2xvYmFsIGRl cGxldGVkcXVldWUgZm9yIGVhY2ggQ1BVIHBvb2wuCi0gKiBUaGUgcnVucXVldWUgaG9sZHMgYWxs IHJ1bm5hYmxlIFZDUFVzIHdpdGggYnVkZ2V0LCBzb3J0ZWQgYnkgZGVhZGxpbmU7CisgKiBUaGUg cnVucXVldWUgaG9sZHMgYWxsIHJ1bm5hYmxlIFZDUFVzIHdpdGggYnVkZ2V0LAorICogc29ydGVk IGJ5IHByaW9yaXR5X2xldmVsIGFuZCBkZWFkbGluZTsKICAqIFRoZSBkZXBsZXRlZHF1ZXVlIGhv bGRzIGFsbCBWQ1BVcyB3aXRob3V0IGJ1ZGdldCwgdW5zb3J0ZWQ7CiAgKgogICogTm90ZTogY3B1 bWFzayBhbmQgY3B1cG9vbCBpcyBzdXBwb3J0ZWQuCkBAIC0xNTEsNiArMTU0LDE0IEBACiAjZGVm aW5lIFJURFNfZGVwbGV0ZWQgKDE8PF9fUlREU19kZXBsZXRlZCkKIAogLyoKKyAqIFJURFNfZXh0 cmF0aW1lOiBDYW4gdGhlIHZjcHUgcnVuIGluIHRoZSB0aW1lIHRoYXQgaXMKKyAqIG5vdCBwYXJ0 IG9mIGFueSByZWFsLXRpbWUgcmVzZXJ2YXRpb24sIGFuZCB3b3VsZCB0aGVyZWZvcmUKKyAqIGJl IG90aGVyd2lzZSBsZWZ0IGlkbGU/CisgKi8KKyNkZWZpbmUgX19SVERTX2V4dHJhdGltZSAgICA0 CisjZGVmaW5lIFJURFNfZXh0cmF0aW1lICgxPDxfX1JURFNfZXh0cmF0aW1lKQorCisvKgogICog cnQgdHJhY2luZyBldmVudHMgKCJvbmx5IiA1MTIgYXZhaWxhYmxlISkuIENoZWNrCiAgKiBpbmNs dWRlL3B1YmxpYy90cmFjZS5oIGZvciBtb3JlIGRldGFpbHMuCiAgKi8KQEAgLTIwMSw2ICsyMTIs OCBAQCBzdHJ1Y3QgcnRfdmNwdSB7CiAgICAgc3RydWN0IHJ0X2RvbSAqc2RvbTsKICAgICBzdHJ1 Y3QgdmNwdSAqdmNwdTsKIAorICAgIHVuc2lnbmVkIHByaW9yaXR5X2xldmVsOworCiAgICAgdW5z aWduZWQgZmxhZ3M7ICAgICAgICAgICAgICAvKiBtYXJrIF9fUlREU19zY2hlZHVsZWQsIGV0Yy4u ICovCiB9OwogCkBAIC0yNDUsNiArMjU4LDExIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGxpc3Rf aGVhZCAqcnRfcmVwbHEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzKQogICAgIHJldHVybiAm cnRfcHJpdihvcHMpLT5yZXBscTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGhhc19leHRyYXRp bWUoY29uc3Qgc3RydWN0IHJ0X3ZjcHUgKnN2YykKK3sKKyAgICByZXR1cm4gKHN2Yy0+ZmxhZ3Mg JiBSVERTX2V4dHJhdGltZSkgPyAxIDogMDsKK30KKwogLyoKICAqIEhlbHBlciBmdW5jdGlvbnMg Zm9yIG1hbmlwdWxhdGluZyB0aGUgcnVucXVldWUsIHRoZSBkZXBsZXRlZCBxdWV1ZSwKICAqIGFu ZCB0aGUgcmVwbGVuaXNobWVudCBldmVudHMgcXVldWUuCkBAIC0yNzQsNiArMjkyLDIxIEBAIHZj cHVfb25fcmVwbHEoY29uc3Qgc3RydWN0IHJ0X3ZjcHUgKnN2YykKIH0KIAogLyoKKyAqIElmIHYx IHByaW9yaXR5ID49IHYyIHByaW9yaXR5LCByZXR1cm4gdmFsdWUgPiAwCisgKiBPdGhlcndpc2Us IHJldHVybiB2YWx1ZSA8IDAKKyAqLworc3RhdGljIHNfdGltZV90Citjb21wYXJlX3ZjcHVfcHJp b3JpdHkoY29uc3Qgc3RydWN0IHJ0X3ZjcHUgKnYxLCBjb25zdCBzdHJ1Y3QgcnRfdmNwdSAqdjIp Cit7CisgICAgaW50IHByaW8gPSB2Mi0+cHJpb3JpdHlfbGV2ZWwgLSB2MS0+cHJpb3JpdHlfbGV2 ZWw7CisKKyAgICBpZiAoIHByaW8gPT0gMCApCisgICAgcmV0dXJuIHYyLT5jdXJfZGVhZGxpbmUg LSB2MS0+Y3VyX2RlYWRsaW5lOworCisgICAgcmV0dXJuIHByaW87Cit9CisKKy8qCiAgKiBEZWJ1 ZyByZWxhdGVkIGNvZGUsIGR1bXAgdmNwdS9jcHUgaW5mb3JtYXRpb24KICAqLwogc3RhdGljIHZv aWQKQEAgLTMwMyw2ICszMzYsNyBAQCBydF9kdW1wX3ZjcHUoY29uc3Qgc3RydWN0IHNjaGVkdWxl ciAqb3BzLCBjb25zdCBzdHJ1Y3QgcnRfdmNwdSAqc3ZjKQogICAgIGNwdWxpc3Rfc2NucHJpbnRm KGtleWhhbmRsZXJfc2NyYXRjaCwgc2l6ZW9mKGtleWhhbmRsZXJfc2NyYXRjaCksIG1hc2spOwog ICAgIHByaW50aygiWyU1ZC4lLTJ1XSBjcHUgJXUsICglIlBSSV9zdGltZSIsICUiUFJJX3N0aW1l IiksIgogICAgICAgICAgICAiIGN1cl9iPSUiUFJJX3N0aW1lIiBjdXJfZD0lIlBSSV9zdGltZSIg bGFzdF9zdGFydD0lIlBSSV9zdGltZSJcbiIKKyAgICAgICAgICAgIiBcdFx0IHByaW9yaXR5X2xl dmVsPSVkIGhhc19leHRyYXRpbWU9JWRcbiIKICAgICAgICAgICAgIiBcdFx0IG9uUT0lZCBydW5u YWJsZT0lZCBmbGFncz0leCBlZmZlY3RpdmUgaGFyZF9hZmZpbml0eT0lc1xuIiwKICAgICAgICAg ICAgIHN2Yy0+dmNwdS0+ZG9tYWluLT5kb21haW5faWQsCiAgICAgICAgICAgICBzdmMtPnZjcHUt PnZjcHVfaWQsCkBAIC0zMTIsNiArMzQ2LDggQEAgcnRfZHVtcF92Y3B1KGNvbnN0IHN0cnVjdCBz Y2hlZHVsZXIgKm9wcywgY29uc3Qgc3RydWN0IHJ0X3ZjcHUgKnN2YykKICAgICAgICAgICAgIHN2 Yy0+Y3VyX2J1ZGdldCwKICAgICAgICAgICAgIHN2Yy0+Y3VyX2RlYWRsaW5lLAogICAgICAgICAg ICAgc3ZjLT5sYXN0X3N0YXJ0LAorICAgICAgICAgICAgc3ZjLT5wcmlvcml0eV9sZXZlbCwKKyAg ICAgICAgICAgIGhhc19leHRyYXRpbWUoc3ZjKSwKICAgICAgICAgICAgIHZjcHVfb25fcShzdmMp LAogICAgICAgICAgICAgdmNwdV9ydW5uYWJsZShzdmMtPnZjcHUpLAogICAgICAgICAgICAgc3Zj LT5mbGFncywKQEAgLTQyMywxNSArNDU5LDE4IEBAIHJ0X3VwZGF0ZV9kZWFkbGluZShzX3RpbWVf dCBub3csIHN0cnVjdCBydF92Y3B1ICpzdmMpCiAgICAgICovCiAgICAgc3ZjLT5sYXN0X3N0YXJ0 ID0gbm93OwogICAgIHN2Yy0+Y3VyX2J1ZGdldCA9IHN2Yy0+YnVkZ2V0OworICAgIHN2Yy0+cHJp b3JpdHlfbGV2ZWwgPSAwOwogCiAgICAgLyogVFJBQ0UgKi8KICAgICB7CiAgICAgICAgIHN0cnVj dCBfX3BhY2tlZCB7CiAgICAgICAgICAgICB1bnNpZ25lZCB2Y3B1OjE2LCBkb206MTY7CisgICAg ICAgICAgICB1bnNpZ25lZCBwcmlvcml0eV9sZXZlbDsKICAgICAgICAgICAgIHVpbnQ2NF90IGN1 cl9kZWFkbGluZSwgY3VyX2J1ZGdldDsKICAgICAgICAgfSBkOwogICAgICAgICBkLmRvbSA9IHN2 Yy0+dmNwdS0+ZG9tYWluLT5kb21haW5faWQ7CiAgICAgICAgIGQudmNwdSA9IHN2Yy0+dmNwdS0+ dmNwdV9pZDsKKyAgICAgICAgZC5wcmlvcml0eV9sZXZlbCA9IHN2Yy0+cHJpb3JpdHlfbGV2ZWw7 CiAgICAgICAgIGQuY3VyX2RlYWRsaW5lID0gKHVpbnQ2NF90KSBzdmMtPmN1cl9kZWFkbGluZTsK ICAgICAgICAgZC5jdXJfYnVkZ2V0ID0gKHVpbnQ2NF90KSBzdmMtPmN1cl9idWRnZXQ7CiAgICAg ICAgIHRyYWNlX3ZhcihUUkNfUlREU19CVURHRVRfUkVQTEVOSVNILCAxLApAQCAtNDU0LDcgKzQ5 Myw3IEBAIHJ0X3VwZGF0ZV9kZWFkbGluZShzX3RpbWVfdCBub3csIHN0cnVjdCBydF92Y3B1ICpz dmMpCiAgKiBjYXNlcywgaWYgdGhlIHZjcHUgd2l0aCB0aGUgZWFybGllc3QgZGVhZGxpbmUgaXMg d2hhdCB3ZQogICogYXJlIGRlYWxpbmcgd2l0aCkuCiAgKi8KLXN0YXRpYyBpbmxpbmUgYm9vbF90 CitzdGF0aWMgaW5saW5lIGJvb2wKIGRlYWRsaW5lX3F1ZXVlX3JlbW92ZShzdHJ1Y3QgbGlzdF9o ZWFkICpxdWV1ZSwgc3RydWN0IGxpc3RfaGVhZCAqZWxlbSkKIHsKICAgICBpbnQgcG9zID0gMDsK QEAgLTQ2Niw3ICs1MDUsNyBAQCBkZWFkbGluZV9xdWV1ZV9yZW1vdmUoc3RydWN0IGxpc3RfaGVh ZCAqcXVldWUsIHN0cnVjdCBsaXN0X2hlYWQgKmVsZW0pCiAgICAgcmV0dXJuICFwb3M7CiB9CiAK LXN0YXRpYyBpbmxpbmUgYm9vbF90CitzdGF0aWMgaW5saW5lIGJvb2wKIGRlYWRsaW5lX3F1ZXVl X2luc2VydChzdHJ1Y3QgcnRfdmNwdSAqICgqcWVsZW0pKHN0cnVjdCBsaXN0X2hlYWQgKiksCiAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJ0X3ZjcHUgKnN2Yywgc3RydWN0IGxpc3RfaGVh ZCAqZWxlbSwKICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpxdWV1ZSkK QEAgLTQ3Nyw3ICs1MTYsNyBAQCBkZWFkbGluZV9xdWV1ZV9pbnNlcnQoc3RydWN0IHJ0X3ZjcHUg KiAoKnFlbGVtKShzdHJ1Y3QgbGlzdF9oZWFkICopLAogICAgIGxpc3RfZm9yX2VhY2ggKCBpdGVy LCBxdWV1ZSApCiAgICAgewogICAgICAgICBzdHJ1Y3QgcnRfdmNwdSAqIGl0ZXJfc3ZjID0gKCpx ZWxlbSkoaXRlcik7Ci0gICAgICAgIGlmICggc3ZjLT5jdXJfZGVhZGxpbmUgPD0gaXRlcl9zdmMt PmN1cl9kZWFkbGluZSApCisgICAgICAgIGlmICggY29tcGFyZV92Y3B1X3ByaW9yaXR5KHN2Yywg aXRlcl9zdmMpID4gMCApCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgcG9zKys7CiAgICAg fQpAQCAtNTM3LDggKzU3Niw5IEBAIHJ1bnFfaW5zZXJ0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIg Km9wcywgc3RydWN0IHJ0X3ZjcHUgKnN2YykKICAgICBBU1NFUlQoICF2Y3B1X29uX3Eoc3ZjKSAp OwogICAgIEFTU0VSVCggdmNwdV9vbl9yZXBscShzdmMpICk7CiAKLSAgICAvKiBhZGQgc3ZjIHRv IHJ1bnEgaWYgc3ZjIHN0aWxsIGhhcyBidWRnZXQgKi8KLSAgICBpZiAoIHN2Yy0+Y3VyX2J1ZGdl dCA+IDAgKQorICAgIC8qIGFkZCBzdmMgdG8gcnVucSBpZiBzdmMgc3RpbGwgaGFzIGJ1ZGdldCBv ciBpdHMgZXh0cmF0aW1lIGlzIHNldCAqLworICAgIGlmICggc3ZjLT5jdXJfYnVkZ2V0ID4gMCB8 fAorICAgICAgICAgaGFzX2V4dHJhdGltZShzdmMpICkKICAgICAgICAgZGVhZGxpbmVfcnVucV9p bnNlcnQoc3ZjLCAmc3ZjLT5xX2VsZW0sIHJ1bnEpOwogICAgIGVsc2UKICAgICAgICAgbGlzdF9h ZGQoJnN2Yy0+cV9lbGVtLCAmcHJ2LT5kZXBsZXRlZHEpOwpAQCAtODU3LDYgKzg5Nyw4IEBAIHJ0 X2FsbG9jX3ZkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZj LCB2b2lkICpkZCkKICAgICBzdmMtPnZjcHUgPSB2YzsKICAgICBzdmMtPmxhc3Rfc3RhcnQgPSAw OwogCisgICAgX19zZXRfYml0KF9fUlREU19leHRyYXRpbWUsICZzdmMtPmZsYWdzKTsKKyAgICBz dmMtPnByaW9yaXR5X2xldmVsID0gMDsKICAgICBzdmMtPnBlcmlvZCA9IFJURFNfREVGQVVMVF9Q RVJJT0Q7CiAgICAgaWYgKCAhaXNfaWRsZV92Y3B1KHZjKSApCiAgICAgICAgIHN2Yy0+YnVkZ2V0 ID0gUlREU19ERUZBVUxUX0JVREdFVDsKQEAgLTk2Niw4ICsxMDA4LDE2IEBAIGJ1cm5fYnVkZ2V0 KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHJ0X3ZjcHUgKnN2Yywgc190aW1l X3Qgbm93KQogCiAgICAgaWYgKCBzdmMtPmN1cl9idWRnZXQgPD0gMCApCiAgICAgewotICAgICAg ICBzdmMtPmN1cl9idWRnZXQgPSAwOwotICAgICAgICBfX3NldF9iaXQoX19SVERTX2RlcGxldGVk LCAmc3ZjLT5mbGFncyk7CisgICAgICAgIGlmICggaGFzX2V4dHJhdGltZShzdmMpICkKKyAgICAg ICAgeworICAgICAgICAgICAgc3ZjLT5wcmlvcml0eV9sZXZlbCsrOworICAgICAgICAgICAgc3Zj LT5jdXJfYnVkZ2V0ID0gc3ZjLT5idWRnZXQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAg ICAgICB7CisgICAgICAgICAgICBzdmMtPmN1cl9idWRnZXQgPSAwOworICAgICAgICAgICAgX19z ZXRfYml0KF9fUlREU19kZXBsZXRlZCwgJnN2Yy0+ZmxhZ3MpOworICAgICAgICB9CiAgICAgfQog CiAgICAgLyogVFJBQ0UgKi8KQEAgLTk3NiwxMSArMTAyNiwxNSBAQCBidXJuX2J1ZGdldChjb25z dCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBydF92Y3B1ICpzdmMsIHNfdGltZV90IG5v dykKICAgICAgICAgICAgIHVuc2lnbmVkIHZjcHU6MTYsIGRvbToxNjsKICAgICAgICAgICAgIHVp bnQ2NF90IGN1cl9idWRnZXQ7CiAgICAgICAgICAgICBpbnQgZGVsdGE7CisgICAgICAgICAgICB1 bnNpZ25lZCBwcmlvcml0eV9sZXZlbDsKKyAgICAgICAgICAgIGJvb2wgaGFzX2V4dHJhdGltZTsK ICAgICAgICAgfSBkOwogICAgICAgICBkLmRvbSA9IHN2Yy0+dmNwdS0+ZG9tYWluLT5kb21haW5f aWQ7CiAgICAgICAgIGQudmNwdSA9IHN2Yy0+dmNwdS0+dmNwdV9pZDsKICAgICAgICAgZC5jdXJf YnVkZ2V0ID0gKHVpbnQ2NF90KSBzdmMtPmN1cl9idWRnZXQ7CiAgICAgICAgIGQuZGVsdGEgPSBk ZWx0YTsKKyAgICAgICAgZC5wcmlvcml0eV9sZXZlbCA9IHN2Yy0+cHJpb3JpdHlfbGV2ZWw7Cisg ICAgICAgIGQuaGFzX2V4dHJhdGltZSA9IHN2Yy0+ZmxhZ3MgJiBSVERTX2V4dHJhdGltZTsKICAg ICAgICAgdHJhY2VfdmFyKFRSQ19SVERTX0JVREdFVF9CVVJOLCAxLAogICAgICAgICAgICAgICAg ICAgc2l6ZW9mKGQpLAogICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGNoYXIgKikgJmQpOwpA QCAtMTA4OCw3ICsxMTQyLDcgQEAgcnRfc2NoZWR1bGUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAq b3BzLCBzX3RpbWVfdCBub3csIGJvb2xfdCB0YXNrbGV0X3dvcmtfc2NoZWQKICAgICAgICAgICAg ICB2Y3B1X3J1bm5hYmxlKGN1cnJlbnQpICYmCiAgICAgICAgICAgICAgc2N1cnItPmN1cl9idWRn ZXQgPiAwICYmCiAgICAgICAgICAgICAgKCBpc19pZGxlX3ZjcHUoc25leHQtPnZjcHUpIHx8Ci0g ICAgICAgICAgICAgICBzY3Vyci0+Y3VyX2RlYWRsaW5lIDw9IHNuZXh0LT5jdXJfZGVhZGxpbmUg KSApCisgICAgICAgICAgICAgICBjb21wYXJlX3ZjcHVfcHJpb3JpdHkoc2N1cnIsIHNuZXh0KSA+ IDAgKSApCiAgICAgICAgICAgICBzbmV4dCA9IHNjdXJyOwogICAgIH0KIApAQCAtMTE5OCwxMyAr MTI1MiwxMyBAQCBydW5xX3RpY2tsZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVj dCBydF92Y3B1ICpuZXcpCiAgICAgICAgIH0KICAgICAgICAgaXRlcl9zdmMgPSBydF92Y3B1KGl0 ZXJfdmMpOwogICAgICAgICBpZiAoIGxhdGVzdF9kZWFkbGluZV92Y3B1ID09IE5VTEwgfHwKLSAg ICAgICAgICAgICBpdGVyX3N2Yy0+Y3VyX2RlYWRsaW5lID4gbGF0ZXN0X2RlYWRsaW5lX3ZjcHUt PmN1cl9kZWFkbGluZSApCisgICAgICAgICAgICAgY29tcGFyZV92Y3B1X3ByaW9yaXR5KGl0ZXJf c3ZjLCBsYXRlc3RfZGVhZGxpbmVfdmNwdSkgPCAwICkKICAgICAgICAgICAgIGxhdGVzdF9kZWFk bGluZV92Y3B1ID0gaXRlcl9zdmM7CiAgICAgfQogCiAgICAgLyogMykgY2FuZGljYXRlIGhhcyBo aWdoZXIgcHJpb3JpdHksIGtpY2sgb3V0IGxvd2VzdCBwcmlvcml0eSB2Y3B1ICovCiAgICAgaWYg KCBsYXRlc3RfZGVhZGxpbmVfdmNwdSAhPSBOVUxMICYmCi0gICAgICAgICBuZXctPmN1cl9kZWFk bGluZSA8IGxhdGVzdF9kZWFkbGluZV92Y3B1LT5jdXJfZGVhZGxpbmUgKQorICAgICAgICAgY29t cGFyZV92Y3B1X3ByaW9yaXR5KGxhdGVzdF9kZWFkbGluZV92Y3B1LCBuZXcpIDwgMCApCiAgICAg ewogICAgICAgICBTQ0hFRF9TVEFUX0NSQU5LKHRpY2tsZWRfYnVzeV9jcHUpOwogICAgICAgICBj cHVfdG9fdGlja2xlID0gbGF0ZXN0X2RlYWRsaW5lX3ZjcHUtPnZjcHUtPnByb2Nlc3NvcjsKQEAg LTEzOTUsNiArMTQ0OSwxMCBAQCBydF9kb21fY250bCgKICAgICAgICAgICAgICAgICBzdmMgPSBy dF92Y3B1KGQtPnZjcHVbbG9jYWxfc2NoZWQudmNwdWlkXSk7CiAgICAgICAgICAgICAgICAgbG9j YWxfc2NoZWQudS5ydGRzLmJ1ZGdldCA9IHN2Yy0+YnVkZ2V0IC8gTUlDUk9TRUNTKDEpOwogICAg ICAgICAgICAgICAgIGxvY2FsX3NjaGVkLnUucnRkcy5wZXJpb2QgPSBzdmMtPnBlcmlvZCAvIE1J Q1JPU0VDUygxKTsKKyAgICAgICAgICAgICAgICBpZiAoIGhhc19leHRyYXRpbWUoc3ZjKSApCisg ICAgICAgICAgICAgICAgICAgIGxvY2FsX3NjaGVkLnUucnRkcy5mbGFncyB8PSBYRU5fRE9NQ1RM X1NDSEVEX1JURFNfZXh0cmF0aW1lOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg ICAgICAgICAgbG9jYWxfc2NoZWQudS5ydGRzLmZsYWdzICY9IH5YRU5fRE9NQ1RMX1NDSEVEX1JU RFNfZXh0cmF0aW1lOwogICAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBy di0+bG9jaywgZmxhZ3MpOwogCiAgICAgICAgICAgICAgICAgaWYgKCBjb3B5X3RvX2d1ZXN0X29m ZnNldChvcC0+dS52LnZjcHVzLCBpbmRleCwKQEAgLTE0MTksNiArMTQ3NywxMCBAQCBydF9kb21f Y250bCgKICAgICAgICAgICAgICAgICBzdmMgPSBydF92Y3B1KGQtPnZjcHVbbG9jYWxfc2NoZWQu dmNwdWlkXSk7CiAgICAgICAgICAgICAgICAgc3ZjLT5wZXJpb2QgPSBwZXJpb2Q7CiAgICAgICAg ICAgICAgICAgc3ZjLT5idWRnZXQgPSBidWRnZXQ7CisgICAgICAgICAgICAgICAgaWYgKCBsb2Nh bF9zY2hlZC51LnJ0ZHMuZmxhZ3MgJiBYRU5fRE9NQ1RMX1NDSEVEX1JURFNfZXh0cmF0aW1lICkK KyAgICAgICAgICAgICAgICAgICAgX19zZXRfYml0KF9fUlREU19leHRyYXRpbWUsICZzdmMtPmZs YWdzKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIF9fY2xlYXJf Yml0KF9fUlREU19leHRyYXRpbWUsICZzdmMtPmZsYWdzKTsKICAgICAgICAgICAgICAgICBzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsKICAgICAgICAgICAgIH0KICAg ICAgICAgICAgIC8qIFByb2Nlc3MgYSBtb3N0IDY0IHZDUFVzIHdpdGhvdXQgY2hlY2tpbmcgZm9y IHByZWVtcHRpb25zLiAqLwpAQCAtMTQ5Myw3ICsxNTU1LDcgQEAgc3RhdGljIHZvaWQgcmVwbF90 aW1lcl9oYW5kbGVyKHZvaWQgKmRhdGEpewogICAgICAgICB7CiAgICAgICAgICAgICBzdHJ1Y3Qg cnRfdmNwdSAqbmV4dF9vbl9ydW5xID0gcV9lbGVtKHJ1bnEtPm5leHQpOwogCi0gICAgICAgICAg ICBpZiAoIHN2Yy0+Y3VyX2RlYWRsaW5lID4gbmV4dF9vbl9ydW5xLT5jdXJfZGVhZGxpbmUgKQor ICAgICAgICAgICAgaWYgKCBjb21wYXJlX3ZjcHVfcHJpb3JpdHkoc3ZjLCBuZXh0X29uX3J1bnEp IDwgMCApCiAgICAgICAgICAgICAgICAgcnVucV90aWNrbGUob3BzLCBuZXh0X29uX3J1bnEpOwog ICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKCBfX3Rlc3RfYW5kX2NsZWFyX2JpdChfX1JURFNf ZGVwbGV0ZWQsICZzdmMtPmZsYWdzKSAmJgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGlj L2RvbWN0bC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oCmluZGV4IDA2NjljMzEuLmJh NWRhYTkgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaAorKysgYi94ZW4v aW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgKQEAgLTM2MCw2ICszNjAsOSBAQCB0eXBlZGVmIHN0cnVj dCB4ZW5fZG9tY3RsX3NjaGVkX2NyZWRpdDIgewogdHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9z Y2hlZF9ydGRzIHsKICAgICB1aW50MzJfdCBwZXJpb2Q7CiAgICAgdWludDMyX3QgYnVkZ2V0Owor I2RlZmluZSBfWEVOX0RPTUNUTF9TQ0hFRF9SVERTX2V4dHJhdGltZSAwCisjZGVmaW5lIFhFTl9E T01DVExfU0NIRURfUlREU19leHRyYXRpbWUgICgxVTw8X1hFTl9ET01DVExfU0NIRURfUlREU19l eHRyYXRpbWUpCisgICAgdWludDMyX3QgZmxhZ3M7CiB9IHhlbl9kb21jdGxfc2NoZWRfcnRkc190 OwogCiB0eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkcGFyYW1fdmNwdSB7Ci0tIAoxLjku MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=