From mboxrd@z Thu Jan 1 00:00:00 1970 From: Meng Xu Subject: [PATCH v4 1/5] xen:rtds: towards work conserving RTDS Date: Wed, 11 Oct 2017 14:02:02 -0400 Message-ID: <1507744926-3950-2-git-send-email-mengxu@cis.upenn.edu> References: <1507744926-3950-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: <1507744926-3950-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: wei.liu2@citrix.com, george.dunlap@eu.citrix.com, dario.faggioli@citrix.com, ian.jackson@eu.citrix.com, xumengpanda@gmail.com, Meng Xu List-Id: xen-devel@lists.xenproject.org TWFrZSBSVERTIHNjaGVkdWxlciB3b3JrIGNvbnNlcnZpbmcgd2l0aG91dCBicmVha2luZyB0aGUg cmVhbC10aW1lIGd1YXJhbnRlZXMuCgpWQ1BVIG1vZGVsOgpFYWNoIHJlYWwtdGltZSBWQ1BVIGlz IGV4dGVuZGVkIHRvIGhhdmUgYW4gZXh0cmF0aW1lIGZsYWcKYW5kIGEgcHJpb3JpdHlfbGV2ZWwg ZmllbGQuCldoZW4gYSBWQ1BVJ3MgYnVkZ2V0IGlzIGRlcGxldGVkIGluIHRoZSBjdXJyZW50IHBl cmlvZCwKaWYgaXQgaGFzIGV4dHJhdGltZSBmbGFnIHNldCwKaXRzIHByaW9yaXR5X2xldmVsIHdp bGwgaW5jcmVhc2UgYnkgMSBhbmQgaXRzIGJ1ZGdldCB3aWxsIGJlIHJlZmlsbGVkOwpvdGhld3Jp c2UsIHRoZSBWQ1BVIHdpbGwgYmUgbW92ZWQgdG8gdGhlIGRlcGxldGVkcS4KClNjaGVkdWxpbmcg cG9saWN5IGlzIG1vZGlmaWVkIGdsb2JhbCBFREY6CkEgVkNQVSB2MSBoYXMgaGlnaGVyIHByaW9y aXR5IHRoYW4gYW5vdGhlciBWQ1BVIHYyIGlmCihpKSB2MSBoYXMgc21hbGxlciBwcmlvcml0eV9s ZXZlOyBvcgooaWkpIHYxIGhhcyB0aGUgc2FtZSBwcmlvcml0eV9sZXZlbCBidXQgaGFzIGEgc21h bGxlciBkZWFkbGluZQoKUXVldWUgbWFuYWdlbWVudDoKUnVuIHF1ZXVlIGhvbGRzIFZDUFVzIHdp dGggZXh0cmF0aW1lIGZsYWcgc2V0IGFuZCBWQ1BVcyB3aXRoCnJlbWFpbmluZyBidWRnZXQuIFJ1 biBxdWV1ZSBpcyBzb3J0ZWQgaW4gaW5jcmVhc2luZyBvcmRlciBvZiBWQ1BVcyBwcmlvcml0aWVz LgpEZXBsZXRlZCBxdWV1ZSBob2xkcyBWQ1BVcyB3aGljaCBoYXZlIGV4dHJhdGltZSBmbGFnIGNs ZWFyZWQgYW5kIGRlcGxldGVkIGJ1ZGdldC4KUmVwbGVuaXNoZWQgcXVldWUgaXMgbm90IG1vZGlm aWVkLgoKRGlzdHJpYnV0aW9uIG9mIHNwYXJlIGJhbmR3aWR0aApTcGFyZSBiYW5kd2lkdGggaXMg ZGlzdHJpYnV0ZWQgYW1vbmcgYWxsIFZDUFVzIHdpdGggZXh0cmF0aW1lIGZsYWcgc2V0LApwcm9w b3J0aW9uYWwgdG8gdGhlc2UgVkNQVXMgdXRpbGl6YXRpb25zCgpTaWduZWQtb2ZmLWJ5OiBNZW5n IFh1IDxtZW5neHVAY2lzLnVwZW5uLmVkdT4KUmV2aWV3ZWQtYnk6IERhcmlvIEZhZ2dpb2xpIDxy YWlzdGxpbkBsaW51eC5pdD4KCi0tLQpDaGFuZ2VzIGZyb20gdjIKRXhwbGFpbiBob3cgdG8gZGlz dHJpYnV0ZSBzcGFyZSBiYW5kd2lkdGggaW4gY29tbWl0IGxvZwpNaW5vciBjaGFuZ2UgaW4gaGFz X2V4dHJhdGltZSBmdW5jdGlvbiB3aXRob3V0IGZ1bmN0aW9uYWxpdHkgY2hhbmdlLgoKQ2hhbmdl cyBmcm9tIHYxCkNoYW5nZSBYRU5fRE9NQ1RMX1NDSEVEX1JURFNfZXh0cmF0aW1lIHRvIFhFTl9E T01DVExfU0NIRURSVF9leHRyYSBhcwpzdWdnZXN0ZWQgYnkgRGFyaW8KCkNoYW5nZXMgZnJvbSBS RkMgdjEKUmV3b3JkaW5nIGNvbW1lbnRzIGFuZCBjb21taXQgbWVzc2FnZQpSZW1vdmUgaXNfd29y a19jb25zZXJ2aW5nIGZpZWxkIGZyb20gcnRfdmNwdSBzdHJ1Y3R1cmUKVXNlIG9uZSBiaXQgaW4g VkNQVSdzIGZsYWcgdG8gaW5kaWNhdGUgaWYgYSBWQ1BVIHdpbGwgaGF2ZSBleHRyYSB0aW1lCkNv cnJlY3QgY29tbWVudHMgc3R5bGUKLS0tCiB4ZW4vY29tbW9uL3NjaGVkX3J0LmMgICAgICAgfCA5 MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIHhlbi9pbmNs dWRlL3B1YmxpYy9kb21jdGwuaCB8ICA0ICsrCiAyIGZpbGVzIGNoYW5nZWQsIDgwIGluc2VydGlv bnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWRfcnQu YyBiL3hlbi9jb21tb24vc2NoZWRfcnQuYwppbmRleCA1YzUxY2Q5Li5iNzcwMjg3IDEwMDY0NAot LS0gYS94ZW4vY29tbW9uL3NjaGVkX3J0LmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9ydC5jCkBA IC00OSwxMyArNDksMTUgQEAKICAqIEEgUENQVSBpcyBmZWFzaWJsZSBpZiB0aGUgVkNQVSBjYW4g cnVuIG9uIHRoaXMgUENQVSBhbmQgKHRoZSBQQ1BVIGlzIGlkbGUgb3IKICAqIGhhcyBhIGxvd2Vy LXByaW9yaXR5IFZDUFUgcnVubmluZyBvbiBpdC4pCiAgKgotICogRWFjaCBWQ1BVIGhhcyBhIGRl ZGljYXRlZCBwZXJpb2QgYW5kIGJ1ZGdldC4KKyAqIEVhY2ggVkNQVSBoYXMgYSBkZWRpY2F0ZWQg cGVyaW9kLCBidWRnZXQgYW5kIGEgZXh0cmF0aW1lIGZsYWcKICAqIFRoZSBkZWFkbGluZSBvZiBh IFZDUFUgaXMgYXQgdGhlIGVuZCBvZiBlYWNoIHBlcmlvZDsKICAqIEEgVkNQVSBoYXMgaXRzIGJ1 ZGdldCByZXBsZW5pc2hlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggcGVyaW9kOwogICogV2hp bGUgc2NoZWR1bGVkLCBhIFZDUFUgYnVybnMgaXRzIGJ1ZGdldC4KICAqIFRoZSBWQ1BVIG5lZWRz IHRvIGZpbmlzaCBpdHMgYnVkZ2V0IGJlZm9yZSBpdHMgZGVhZGxpbmUgaW4gZWFjaCBwZXJpb2Q7 CiAgKiBUaGUgVkNQVSBkaXNjYXJkcyBpdHMgdW51c2VkIGJ1ZGdldCBhdCB0aGUgZW5kIG9mIGVh Y2ggcGVyaW9kLgotICogSWYgYSBWQ1BVIHJ1bnMgb3V0IG9mIGJ1ZGdldCBpbiBhIHBlcmlvZCwg aXQgaGFzIHRvIHdhaXQgdW50aWwgbmV4dCBwZXJpb2QuCisgKiBXaGVuIGEgVkNQVSBydW5zIG91 dCBvZiBidWRnZXQgaW4gYSBwZXJpb2QsIGlmIGl0cyBleHRyYXRpbWUgZmxhZyBpcyBzZXQsCisg KiB0aGUgVkNQVSBpbmNyZWFzZXMgaXRzIHByaW9yaXR5X2xldmVsIGJ5IDEgYW5kIHJlZmlsbHMg aXRzIGJ1ZGdldDsgb3RoZXJ3aXNlLAorICogaXQgaGFzIHRvIHdhaXQgdW50aWwgbmV4dCBwZXJp b2QuCiAgKgogICogRWFjaCBWQ1BVIGlzIGltcGxlbWVudGVkIGFzIGEgZGVmZXJhYmxlIHNlcnZl ci4KICAqIFdoZW4gYSBWQ1BVIGhhcyBhIHRhc2sgcnVubmluZyBvbiBpdCwgaXRzIGJ1ZGdldCBp cyBjb250aW51b3VzbHkgYnVybmVkOwpAQCAtNjMsNyArNjUsOCBAQAogICoKICAqIFF1ZXVlIHNj aGVtZToKICAqIEEgZ2xvYmFsIHJ1bnF1ZXVlIGFuZCBhIGdsb2JhbCBkZXBsZXRlZHF1ZXVlIGZv ciBlYWNoIENQVSBwb29sLgotICogVGhlIHJ1bnF1ZXVlIGhvbGRzIGFsbCBydW5uYWJsZSBWQ1BV cyB3aXRoIGJ1ZGdldCwgc29ydGVkIGJ5IGRlYWRsaW5lOworICogVGhlIHJ1bnF1ZXVlIGhvbGRz IGFsbCBydW5uYWJsZSBWQ1BVcyB3aXRoIGJ1ZGdldCwKKyAqIHNvcnRlZCBieSBwcmlvcml0eV9s ZXZlbCBhbmQgZGVhZGxpbmU7CiAgKiBUaGUgZGVwbGV0ZWRxdWV1ZSBob2xkcyBhbGwgVkNQVXMg d2l0aG91dCBidWRnZXQsIHVuc29ydGVkOwogICoKICAqIE5vdGU6IGNwdW1hc2sgYW5kIGNwdXBv b2wgaXMgc3VwcG9ydGVkLgpAQCAtMTUxLDYgKzE1NCwxNCBAQAogI2RlZmluZSBSVERTX2RlcGxl dGVkICgxPDxfX1JURFNfZGVwbGV0ZWQpCiAKIC8qCisgKiBSVERTX2V4dHJhdGltZTogQ2FuIHRo ZSB2Y3B1IHJ1biBpbiB0aGUgdGltZSB0aGF0IGlzCisgKiBub3QgcGFydCBvZiBhbnkgcmVhbC10 aW1lIHJlc2VydmF0aW9uLCBhbmQgd291bGQgdGhlcmVmb3JlCisgKiBiZSBvdGhlcndpc2UgbGVm dCBpZGxlPworICovCisjZGVmaW5lIF9fUlREU19leHRyYXRpbWUgICAgNAorI2RlZmluZSBSVERT X2V4dHJhdGltZSAoMTw8X19SVERTX2V4dHJhdGltZSkKKworLyoKICAqIHJ0IHRyYWNpbmcgZXZl bnRzICgib25seSIgNTEyIGF2YWlsYWJsZSEpLiBDaGVjawogICogaW5jbHVkZS9wdWJsaWMvdHJh Y2UuaCBmb3IgbW9yZSBkZXRhaWxzLgogICovCkBAIC0yMDEsNiArMjEyLDggQEAgc3RydWN0IHJ0 X3ZjcHUgewogICAgIHN0cnVjdCBydF9kb20gKnNkb207CiAgICAgc3RydWN0IHZjcHUgKnZjcHU7 CiAKKyAgICB1bnNpZ25lZCBwcmlvcml0eV9sZXZlbDsKKwogICAgIHVuc2lnbmVkIGZsYWdzOyAg ICAgICAgICAgICAgLyogbWFyayBfX1JURFNfc2NoZWR1bGVkLCBldGMuLiAqLwogfTsKIApAQCAt MjQ1LDYgKzI1OCwxMSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBsaXN0X2hlYWQgKnJ0X3JlcGxx KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcykKICAgICByZXR1cm4gJnJ0X3ByaXYob3BzKS0+ cmVwbHE7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBoYXNfZXh0cmF0aW1lKGNvbnN0IHN0cnVj dCBydF92Y3B1ICpzdmMpCit7CisgICAgcmV0dXJuIHN2Yy0+ZmxhZ3MgJiBSVERTX2V4dHJhdGlt ZTsKK30KKwogLyoKICAqIEhlbHBlciBmdW5jdGlvbnMgZm9yIG1hbmlwdWxhdGluZyB0aGUgcnVu cXVldWUsIHRoZSBkZXBsZXRlZCBxdWV1ZSwKICAqIGFuZCB0aGUgcmVwbGVuaXNobWVudCBldmVu dHMgcXVldWUuCkBAIC0yNzQsNiArMjkyLDIxIEBAIHZjcHVfb25fcmVwbHEoY29uc3Qgc3RydWN0 IHJ0X3ZjcHUgKnN2YykKIH0KIAogLyoKKyAqIElmIHYxIHByaW9yaXR5ID49IHYyIHByaW9yaXR5 LCByZXR1cm4gdmFsdWUgPiAwCisgKiBPdGhlcndpc2UsIHJldHVybiB2YWx1ZSA8IDAKKyAqLwor c3RhdGljIHNfdGltZV90Citjb21wYXJlX3ZjcHVfcHJpb3JpdHkoY29uc3Qgc3RydWN0IHJ0X3Zj cHUgKnYxLCBjb25zdCBzdHJ1Y3QgcnRfdmNwdSAqdjIpCit7CisgICAgaW50IHByaW8gPSB2Mi0+ cHJpb3JpdHlfbGV2ZWwgLSB2MS0+cHJpb3JpdHlfbGV2ZWw7CisKKyAgICBpZiAoIHByaW8gPT0g MCApCisgICAgICAgIHJldHVybiB2Mi0+Y3VyX2RlYWRsaW5lIC0gdjEtPmN1cl9kZWFkbGluZTsK KworICAgIHJldHVybiBwcmlvOworfQorCisvKgogICogRGVidWcgcmVsYXRlZCBjb2RlLCBkdW1w IHZjcHUvY3B1IGluZm9ybWF0aW9uCiAgKi8KIHN0YXRpYyB2b2lkCkBAIC0zMDMsNiArMzM2LDcg QEAgcnRfZHVtcF92Y3B1KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgY29uc3Qgc3RydWN0 IHJ0X3ZjcHUgKnN2YykKICAgICBjcHVsaXN0X3NjbnByaW50ZihrZXloYW5kbGVyX3NjcmF0Y2gs IHNpemVvZihrZXloYW5kbGVyX3NjcmF0Y2gpLCBtYXNrKTsKICAgICBwcmludGsoIlslNWQuJS0y dV0gY3B1ICV1LCAoJSJQUklfc3RpbWUiLCAlIlBSSV9zdGltZSIpLCIKICAgICAgICAgICAgIiBj dXJfYj0lIlBSSV9zdGltZSIgY3VyX2Q9JSJQUklfc3RpbWUiIGxhc3Rfc3RhcnQ9JSJQUklfc3Rp bWUiXG4iCisgICAgICAgICAgICIgXHRcdCBwcmlvcml0eV9sZXZlbD0lZCBoYXNfZXh0cmF0aW1l PSVkXG4iCiAgICAgICAgICAgICIgXHRcdCBvblE9JWQgcnVubmFibGU9JWQgZmxhZ3M9JXggZWZm ZWN0aXZlIGhhcmRfYWZmaW5pdHk9JXNcbiIsCiAgICAgICAgICAgICBzdmMtPnZjcHUtPmRvbWFp bi0+ZG9tYWluX2lkLAogICAgICAgICAgICAgc3ZjLT52Y3B1LT52Y3B1X2lkLApAQCAtMzEyLDYg KzM0Niw4IEBAIHJ0X2R1bXBfdmNwdShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGNvbnN0 IHN0cnVjdCBydF92Y3B1ICpzdmMpCiAgICAgICAgICAgICBzdmMtPmN1cl9idWRnZXQsCiAgICAg ICAgICAgICBzdmMtPmN1cl9kZWFkbGluZSwKICAgICAgICAgICAgIHN2Yy0+bGFzdF9zdGFydCwK KyAgICAgICAgICAgIHN2Yy0+cHJpb3JpdHlfbGV2ZWwsCisgICAgICAgICAgICBoYXNfZXh0cmF0 aW1lKHN2YyksCiAgICAgICAgICAgICB2Y3B1X29uX3Eoc3ZjKSwKICAgICAgICAgICAgIHZjcHVf cnVubmFibGUoc3ZjLT52Y3B1KSwKICAgICAgICAgICAgIHN2Yy0+ZmxhZ3MsCkBAIC00MjMsMTUg KzQ1OSwxOCBAQCBydF91cGRhdGVfZGVhZGxpbmUoc190aW1lX3Qgbm93LCBzdHJ1Y3QgcnRfdmNw dSAqc3ZjKQogICAgICAqLwogICAgIHN2Yy0+bGFzdF9zdGFydCA9IG5vdzsKICAgICBzdmMtPmN1 cl9idWRnZXQgPSBzdmMtPmJ1ZGdldDsKKyAgICBzdmMtPnByaW9yaXR5X2xldmVsID0gMDsKIAog ICAgIC8qIFRSQUNFICovCiAgICAgewogICAgICAgICBzdHJ1Y3QgX19wYWNrZWQgewogICAgICAg ICAgICAgdW5zaWduZWQgdmNwdToxNiwgZG9tOjE2OworICAgICAgICAgICAgdW5zaWduZWQgcHJp b3JpdHlfbGV2ZWw7CiAgICAgICAgICAgICB1aW50NjRfdCBjdXJfZGVhZGxpbmUsIGN1cl9idWRn ZXQ7CiAgICAgICAgIH0gZDsKICAgICAgICAgZC5kb20gPSBzdmMtPnZjcHUtPmRvbWFpbi0+ZG9t YWluX2lkOwogICAgICAgICBkLnZjcHUgPSBzdmMtPnZjcHUtPnZjcHVfaWQ7CisgICAgICAgIGQu cHJpb3JpdHlfbGV2ZWwgPSBzdmMtPnByaW9yaXR5X2xldmVsOwogICAgICAgICBkLmN1cl9kZWFk bGluZSA9ICh1aW50NjRfdCkgc3ZjLT5jdXJfZGVhZGxpbmU7CiAgICAgICAgIGQuY3VyX2J1ZGdl dCA9ICh1aW50NjRfdCkgc3ZjLT5jdXJfYnVkZ2V0OwogICAgICAgICB0cmFjZV92YXIoVFJDX1JU RFNfQlVER0VUX1JFUExFTklTSCwgMSwKQEAgLTQ1NCw3ICs0OTMsNyBAQCBydF91cGRhdGVfZGVh ZGxpbmUoc190aW1lX3Qgbm93LCBzdHJ1Y3QgcnRfdmNwdSAqc3ZjKQogICogY2FzZXMsIGlmIHRo ZSB2Y3B1IHdpdGggdGhlIGVhcmxpZXN0IGRlYWRsaW5lIGlzIHdoYXQgd2UKICAqIGFyZSBkZWFs aW5nIHdpdGgpLgogICovCi1zdGF0aWMgaW5saW5lIGJvb2xfdAorc3RhdGljIGlubGluZSBib29s CiBkZWFkbGluZV9xdWV1ZV9yZW1vdmUoc3RydWN0IGxpc3RfaGVhZCAqcXVldWUsIHN0cnVjdCBs aXN0X2hlYWQgKmVsZW0pCiB7CiAgICAgaW50IHBvcyA9IDA7CkBAIC00NjYsNyArNTA1LDcgQEAg ZGVhZGxpbmVfcXVldWVfcmVtb3ZlKHN0cnVjdCBsaXN0X2hlYWQgKnF1ZXVlLCBzdHJ1Y3QgbGlz dF9oZWFkICplbGVtKQogICAgIHJldHVybiAhcG9zOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2xf dAorc3RhdGljIGlubGluZSBib29sCiBkZWFkbGluZV9xdWV1ZV9pbnNlcnQoc3RydWN0IHJ0X3Zj cHUgKiAoKnFlbGVtKShzdHJ1Y3QgbGlzdF9oZWFkICopLAogICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBydF92Y3B1ICpzdmMsIHN0cnVjdCBsaXN0X2hlYWQgKmVsZW0sCiAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqcXVldWUpCkBAIC00NzcsNyArNTE2LDcgQEAg ZGVhZGxpbmVfcXVldWVfaW5zZXJ0KHN0cnVjdCBydF92Y3B1ICogKCpxZWxlbSkoc3RydWN0IGxp c3RfaGVhZCAqKSwKICAgICBsaXN0X2Zvcl9lYWNoICggaXRlciwgcXVldWUgKQogICAgIHsKICAg ICAgICAgc3RydWN0IHJ0X3ZjcHUgKiBpdGVyX3N2YyA9ICgqcWVsZW0pKGl0ZXIpOwotICAgICAg ICBpZiAoIHN2Yy0+Y3VyX2RlYWRsaW5lIDw9IGl0ZXJfc3ZjLT5jdXJfZGVhZGxpbmUgKQorICAg ICAgICBpZiAoIGNvbXBhcmVfdmNwdV9wcmlvcml0eShzdmMsIGl0ZXJfc3ZjKSA+IDAgKQogICAg ICAgICAgICAgYnJlYWs7CiAgICAgICAgIHBvcysrOwogICAgIH0KQEAgLTUzNyw4ICs1NzYsOSBA QCBydW5xX2luc2VydChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBydF92Y3B1 ICpzdmMpCiAgICAgQVNTRVJUKCAhdmNwdV9vbl9xKHN2YykgKTsKICAgICBBU1NFUlQoIHZjcHVf b25fcmVwbHEoc3ZjKSApOwogCi0gICAgLyogYWRkIHN2YyB0byBydW5xIGlmIHN2YyBzdGlsbCBo YXMgYnVkZ2V0ICovCi0gICAgaWYgKCBzdmMtPmN1cl9idWRnZXQgPiAwICkKKyAgICAvKiBhZGQg c3ZjIHRvIHJ1bnEgaWYgc3ZjIHN0aWxsIGhhcyBidWRnZXQgb3IgaXRzIGV4dHJhdGltZSBpcyBz ZXQgKi8KKyAgICBpZiAoIHN2Yy0+Y3VyX2J1ZGdldCA+IDAgfHwKKyAgICAgICAgIGhhc19leHRy YXRpbWUoc3ZjKSApCiAgICAgICAgIGRlYWRsaW5lX3J1bnFfaW5zZXJ0KHN2YywgJnN2Yy0+cV9l bGVtLCBydW5xKTsKICAgICBlbHNlCiAgICAgICAgIGxpc3RfYWRkKCZzdmMtPnFfZWxlbSwgJnBy di0+ZGVwbGV0ZWRxKTsKQEAgLTg1Nyw2ICs4OTcsOCBAQCBydF9hbGxvY192ZGF0YShjb25zdCBz dHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2Yywgdm9pZCAqZGQpCiAgICAgc3Zj LT52Y3B1ID0gdmM7CiAgICAgc3ZjLT5sYXN0X3N0YXJ0ID0gMDsKIAorICAgIF9fc2V0X2JpdChf X1JURFNfZXh0cmF0aW1lLCAmc3ZjLT5mbGFncyk7CisgICAgc3ZjLT5wcmlvcml0eV9sZXZlbCA9 IDA7CiAgICAgc3ZjLT5wZXJpb2QgPSBSVERTX0RFRkFVTFRfUEVSSU9EOwogICAgIGlmICggIWlz X2lkbGVfdmNwdSh2YykgKQogICAgICAgICBzdmMtPmJ1ZGdldCA9IFJURFNfREVGQVVMVF9CVURH RVQ7CkBAIC05NjYsOCArMTAwOCwxNiBAQCBidXJuX2J1ZGdldChjb25zdCBzdHJ1Y3Qgc2NoZWR1 bGVyICpvcHMsIHN0cnVjdCBydF92Y3B1ICpzdmMsIHNfdGltZV90IG5vdykKIAogICAgIGlmICgg c3ZjLT5jdXJfYnVkZ2V0IDw9IDAgKQogICAgIHsKLSAgICAgICAgc3ZjLT5jdXJfYnVkZ2V0ID0g MDsKLSAgICAgICAgX19zZXRfYml0KF9fUlREU19kZXBsZXRlZCwgJnN2Yy0+ZmxhZ3MpOworICAg ICAgICBpZiAoIGhhc19leHRyYXRpbWUoc3ZjKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHN2 Yy0+cHJpb3JpdHlfbGV2ZWwrKzsKKyAgICAgICAgICAgIHN2Yy0+Y3VyX2J1ZGdldCA9IHN2Yy0+ YnVkZ2V0OworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAg c3ZjLT5jdXJfYnVkZ2V0ID0gMDsKKyAgICAgICAgICAgIF9fc2V0X2JpdChfX1JURFNfZGVwbGV0 ZWQsICZzdmMtPmZsYWdzKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIC8qIFRSQUNFICovCkBA IC05NzYsMTEgKzEwMjYsMTUgQEAgYnVybl9idWRnZXQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAq b3BzLCBzdHJ1Y3QgcnRfdmNwdSAqc3ZjLCBzX3RpbWVfdCBub3cpCiAgICAgICAgICAgICB1bnNp Z25lZCB2Y3B1OjE2LCBkb206MTY7CiAgICAgICAgICAgICB1aW50NjRfdCBjdXJfYnVkZ2V0Owog ICAgICAgICAgICAgaW50IGRlbHRhOworICAgICAgICAgICAgdW5zaWduZWQgcHJpb3JpdHlfbGV2 ZWw7CisgICAgICAgICAgICBib29sIGhhc19leHRyYXRpbWU7CiAgICAgICAgIH0gZDsKICAgICAg ICAgZC5kb20gPSBzdmMtPnZjcHUtPmRvbWFpbi0+ZG9tYWluX2lkOwogICAgICAgICBkLnZjcHUg PSBzdmMtPnZjcHUtPnZjcHVfaWQ7CiAgICAgICAgIGQuY3VyX2J1ZGdldCA9ICh1aW50NjRfdCkg c3ZjLT5jdXJfYnVkZ2V0OwogICAgICAgICBkLmRlbHRhID0gZGVsdGE7CisgICAgICAgIGQucHJp b3JpdHlfbGV2ZWwgPSBzdmMtPnByaW9yaXR5X2xldmVsOworICAgICAgICBkLmhhc19leHRyYXRp bWUgPSBzdmMtPmZsYWdzICYgUlREU19leHRyYXRpbWU7CiAgICAgICAgIHRyYWNlX3ZhcihUUkNf UlREU19CVURHRVRfQlVSTiwgMSwKICAgICAgICAgICAgICAgICAgIHNpemVvZihkKSwKICAgICAg ICAgICAgICAgICAgICh1bnNpZ25lZCBjaGFyICopICZkKTsKQEAgLTEwODgsNyArMTE0Miw3IEBA IHJ0X3NjaGVkdWxlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc190aW1lX3Qgbm93LCBi b29sX3QgdGFza2xldF93b3JrX3NjaGVkCiAgICAgICAgICAgICAgdmNwdV9ydW5uYWJsZShjdXJy ZW50KSAmJgogICAgICAgICAgICAgIHNjdXJyLT5jdXJfYnVkZ2V0ID4gMCAmJgogICAgICAgICAg ICAgICggaXNfaWRsZV92Y3B1KHNuZXh0LT52Y3B1KSB8fAotICAgICAgICAgICAgICAgc2N1cnIt PmN1cl9kZWFkbGluZSA8PSBzbmV4dC0+Y3VyX2RlYWRsaW5lICkgKQorICAgICAgICAgICAgICAg Y29tcGFyZV92Y3B1X3ByaW9yaXR5KHNjdXJyLCBzbmV4dCkgPiAwICkgKQogICAgICAgICAgICAg c25leHQgPSBzY3VycjsKICAgICB9CiAKQEAgLTExOTQsNyArMTI0OCw3IEBAIHJ1bnFfdGlja2xl KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHJ0X3ZjcHUgKm5ldykKICAgICAg ICAgfQogICAgICAgICBpdGVyX3N2YyA9IHJ0X3ZjcHUoaXRlcl92Yyk7CiAgICAgICAgIGlmICgg bGF0ZXN0X2RlYWRsaW5lX3ZjcHUgPT0gTlVMTCB8fAotICAgICAgICAgICAgIGl0ZXJfc3ZjLT5j dXJfZGVhZGxpbmUgPiBsYXRlc3RfZGVhZGxpbmVfdmNwdS0+Y3VyX2RlYWRsaW5lICkKKyAgICAg ICAgICAgICBjb21wYXJlX3ZjcHVfcHJpb3JpdHkoaXRlcl9zdmMsIGxhdGVzdF9kZWFkbGluZV92 Y3B1KSA8IDAgKQogICAgICAgICAgICAgbGF0ZXN0X2RlYWRsaW5lX3ZjcHUgPSBpdGVyX3N2YzsK IAogICAgICAgICBjcHVtYXNrX2NsZWFyX2NwdShjcHUsICZub3RfdGlja2xlZCk7CkBAIC0xMjAz LDcgKzEyNTcsNyBAQCBydW5xX3RpY2tsZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0 cnVjdCBydF92Y3B1ICpuZXcpCiAKICAgICAvKiAyKSBjYW5kaWNhdGUgaGFzIGhpZ2hlciBwcmlv cml0eSwga2ljayBvdXQgbG93ZXN0IHByaW9yaXR5IHZjcHUgKi8KICAgICBpZiAoIGxhdGVzdF9k ZWFkbGluZV92Y3B1ICE9IE5VTEwgJiYKLSAgICAgICAgIG5ldy0+Y3VyX2RlYWRsaW5lIDwgbGF0 ZXN0X2RlYWRsaW5lX3ZjcHUtPmN1cl9kZWFkbGluZSApCisgICAgICAgICBjb21wYXJlX3ZjcHVf cHJpb3JpdHkobGF0ZXN0X2RlYWRsaW5lX3ZjcHUsIG5ldykgPCAwICkKICAgICB7CiAgICAgICAg IFNDSEVEX1NUQVRfQ1JBTksodGlja2xlZF9idXN5X2NwdSk7CiAgICAgICAgIGNwdV90b190aWNr bGUgPSBsYXRlc3RfZGVhZGxpbmVfdmNwdS0+dmNwdS0+cHJvY2Vzc29yOwpAQCAtMTM5NCw2ICsx NDQ4LDEwIEBAIHJ0X2RvbV9jbnRsKAogICAgICAgICAgICAgICAgIHN2YyA9IHJ0X3ZjcHUoZC0+ dmNwdVtsb2NhbF9zY2hlZC52Y3B1aWRdKTsKICAgICAgICAgICAgICAgICBsb2NhbF9zY2hlZC51 LnJ0ZHMuYnVkZ2V0ID0gc3ZjLT5idWRnZXQgLyBNSUNST1NFQ1MoMSk7CiAgICAgICAgICAgICAg ICAgbG9jYWxfc2NoZWQudS5ydGRzLnBlcmlvZCA9IHN2Yy0+cGVyaW9kIC8gTUlDUk9TRUNTKDEp OworICAgICAgICAgICAgICAgIGlmICggaGFzX2V4dHJhdGltZShzdmMpICkKKyAgICAgICAgICAg ICAgICAgICAgbG9jYWxfc2NoZWQudS5ydGRzLmZsYWdzIHw9IFhFTl9ET01DVExfU0NIRURSVF9l eHRyYTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGxvY2FsX3Nj aGVkLnUucnRkcy5mbGFncyAmPSB+WEVOX0RPTUNUTF9TQ0hFRFJUX2V4dHJhOwogICAgICAgICAg ICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBydi0+bG9jaywgZmxhZ3MpOwogCiAgICAg ICAgICAgICAgICAgaWYgKCBjb3B5X3RvX2d1ZXN0X29mZnNldChvcC0+dS52LnZjcHVzLCBpbmRl eCwKQEAgLTE0MTgsNiArMTQ3NiwxMCBAQCBydF9kb21fY250bCgKICAgICAgICAgICAgICAgICBz dmMgPSBydF92Y3B1KGQtPnZjcHVbbG9jYWxfc2NoZWQudmNwdWlkXSk7CiAgICAgICAgICAgICAg ICAgc3ZjLT5wZXJpb2QgPSBwZXJpb2Q7CiAgICAgICAgICAgICAgICAgc3ZjLT5idWRnZXQgPSBi dWRnZXQ7CisgICAgICAgICAgICAgICAgaWYgKCBsb2NhbF9zY2hlZC51LnJ0ZHMuZmxhZ3MgJiBY RU5fRE9NQ1RMX1NDSEVEUlRfZXh0cmEgKQorICAgICAgICAgICAgICAgICAgICBfX3NldF9iaXQo X19SVERTX2V4dHJhdGltZSwgJnN2Yy0+ZmxhZ3MpOworICAgICAgICAgICAgICAgIGVsc2UKKyAg ICAgICAgICAgICAgICAgICAgX19jbGVhcl9iaXQoX19SVERTX2V4dHJhdGltZSwgJnN2Yy0+Zmxh Z3MpOwogICAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBydi0+bG9jaywg ZmxhZ3MpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgLyogUHJvY2VzcyBhIG1vc3QgNjQg dkNQVXMgd2l0aG91dCBjaGVja2luZyBmb3IgcHJlZW1wdGlvbnMuICovCkBAIC0xNDkyLDcgKzE1 NTQsNyBAQCBzdGF0aWMgdm9pZCByZXBsX3RpbWVyX2hhbmRsZXIodm9pZCAqZGF0YSl7CiAgICAg ICAgIHsKICAgICAgICAgICAgIHN0cnVjdCBydF92Y3B1ICpuZXh0X29uX3J1bnEgPSBxX2VsZW0o cnVucS0+bmV4dCk7CiAKLSAgICAgICAgICAgIGlmICggc3ZjLT5jdXJfZGVhZGxpbmUgPiBuZXh0 X29uX3J1bnEtPmN1cl9kZWFkbGluZSApCisgICAgICAgICAgICBpZiAoIGNvbXBhcmVfdmNwdV9w cmlvcml0eShzdmMsIG5leHRfb25fcnVucSkgPCAwICkKICAgICAgICAgICAgICAgICBydW5xX3Rp Y2tsZShvcHMsIG5leHRfb25fcnVucSk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoIF9f dGVzdF9hbmRfY2xlYXJfYml0KF9fUlREU19kZXBsZXRlZCwgJnN2Yy0+ZmxhZ3MpICYmCmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMv ZG9tY3RsLmgKaW5kZXggODg1MzQ0NS4uNzAwMjdhYiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv cHVibGljL2RvbWN0bC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaApAQCAtMzQy LDYgKzM0MiwxMCBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9jcmVkaXQyIHsKIHN0cnVjdCB4 ZW5fZG9tY3RsX3NjaGVkX3J0ZHMgewogICAgIHVpbnQzMl90IHBlcmlvZDsKICAgICB1aW50MzJf dCBidWRnZXQ7CisvKiBDYW4gdGhpcyB2Q1BVIGV4ZWN1dGUgYmV5b25kIGl0cyByZXNlcnZlZCBh bW91bnQgb2YgdGltZT8gKi8KKyNkZWZpbmUgX1hFTl9ET01DVExfU0NIRURSVF9leHRyYSAgIDAK KyNkZWZpbmUgWEVOX0RPTUNUTF9TQ0hFRFJUX2V4dHJhICAgICgxVTw8X1hFTl9ET01DVExfU0NI RURSVF9leHRyYSkKKyAgICB1aW50MzJfdCBmbGFnczsKIH07CiAKIHR5cGVkZWYgc3RydWN0IHhl bl9kb21jdGxfc2NoZWRwYXJhbV92Y3B1IHsKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==