From mboxrd@z Thu Jan 1 00:00:00 1970 From: Meng Xu Subject: [PATCH v2 1/5] xen:rtds: towards work conserving RTDS Date: Fri, 1 Sep 2017 11:58:48 -0400 Message-ID: <1504281532-3766-2-git-send-email-mengxu@cis.upenn.edu> References: <1504281532-3766-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: <1504281532-3766-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 Q2hhbmdlcyBmcm9tIHYxCkNoYW5nZSBYRU5fRE9NQ1RMX1NDSEVEX1JURFNfZXh0cmF0aW1lIHRv IFhFTl9ET01DVExfU0NIRURSVF9leHRyYSBhcwpzdWdnZXN0ZWQgYnkgRGFyaW8KCkNoYW5nZXMg ZnJvbSBSRkMgdjEKUmV3b3JkaW5nIGNvbW1lbnRzIGFuZCBjb21taXQgbWVzc2FnZQpSZW1vdmUg aXNfd29ya19jb25zZXJ2aW5nIGZpZWxkIGZyb20gcnRfdmNwdSBzdHJ1Y3R1cmUKVXNlIG9uZSBi aXQgaW4gVkNQVSdzIGZsYWcgdG8gaW5kaWNhdGUgaWYgYSBWQ1BVIHdpbGwgaGF2ZSBleHRyYSB0 aW1lCkNvcnJlY3QgY29tbWVudHMgc3R5bGUKLS0tCiB4ZW4vY29tbW9uL3NjaGVkX3J0LmMgICAg ICAgfCA5MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIHhl bi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaCB8ICA0ICsrCiAyIGZpbGVzIGNoYW5nZWQsIDgwIGlu c2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2No ZWRfcnQuYyBiL3hlbi9jb21tb24vc2NoZWRfcnQuYwppbmRleCAwYWM1ODE2Li5mYWI2ZjQ5IDEw MDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkX3J0LmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9y dC5jCkBAIC00OSwxMyArNDksMTUgQEAKICAqIEEgUENQVSBpcyBmZWFzaWJsZSBpZiB0aGUgVkNQ VSBjYW4gcnVuIG9uIHRoaXMgUENQVSBhbmQgKHRoZSBQQ1BVIGlzIGlkbGUgb3IKICAqIGhhcyBh IGxvd2VyLXByaW9yaXR5IFZDUFUgcnVubmluZyBvbiBpdC4pCiAgKgotICogRWFjaCBWQ1BVIGhh cyBhIGRlZGljYXRlZCBwZXJpb2QgYW5kIGJ1ZGdldC4KKyAqIEVhY2ggVkNQVSBoYXMgYSBkZWRp Y2F0ZWQgcGVyaW9kLCBidWRnZXQgYW5kIGEgZXh0cmF0aW1lIGZsYWcKICAqIFRoZSBkZWFkbGlu ZSBvZiBhIFZDUFUgaXMgYXQgdGhlIGVuZCBvZiBlYWNoIHBlcmlvZDsKICAqIEEgVkNQVSBoYXMg aXRzIGJ1ZGdldCByZXBsZW5pc2hlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggcGVyaW9kOwog ICogV2hpbGUgc2NoZWR1bGVkLCBhIFZDUFUgYnVybnMgaXRzIGJ1ZGdldC4KICAqIFRoZSBWQ1BV IG5lZWRzIHRvIGZpbmlzaCBpdHMgYnVkZ2V0IGJlZm9yZSBpdHMgZGVhZGxpbmUgaW4gZWFjaCBw ZXJpb2Q7CiAgKiBUaGUgVkNQVSBkaXNjYXJkcyBpdHMgdW51c2VkIGJ1ZGdldCBhdCB0aGUgZW5k IG9mIGVhY2ggcGVyaW9kLgotICogSWYgYSBWQ1BVIHJ1bnMgb3V0IG9mIGJ1ZGdldCBpbiBhIHBl cmlvZCwgaXQgaGFzIHRvIHdhaXQgdW50aWwgbmV4dCBwZXJpb2QuCisgKiBXaGVuIGEgVkNQVSBy dW5zIG91dCBvZiBidWRnZXQgaW4gYSBwZXJpb2QsIGlmIGl0cyBleHRyYXRpbWUgZmxhZyBpcyBz ZXQsCisgKiB0aGUgVkNQVSBpbmNyZWFzZXMgaXRzIHByaW9yaXR5X2xldmVsIGJ5IDEgYW5kIHJl ZmlsbHMgaXRzIGJ1ZGdldDsgb3RoZXJ3aXNlLAorICogaXQgaGFzIHRvIHdhaXQgdW50aWwgbmV4 dCBwZXJpb2QuCiAgKgogICogRWFjaCBWQ1BVIGlzIGltcGxlbWVudGVkIGFzIGEgZGVmZXJhYmxl IHNlcnZlci4KICAqIFdoZW4gYSBWQ1BVIGhhcyBhIHRhc2sgcnVubmluZyBvbiBpdCwgaXRzIGJ1 ZGdldCBpcyBjb250aW51b3VzbHkgYnVybmVkOwpAQCAtNjMsNyArNjUsOCBAQAogICoKICAqIFF1 ZXVlIHNjaGVtZToKICAqIEEgZ2xvYmFsIHJ1bnF1ZXVlIGFuZCBhIGdsb2JhbCBkZXBsZXRlZHF1 ZXVlIGZvciBlYWNoIENQVSBwb29sLgotICogVGhlIHJ1bnF1ZXVlIGhvbGRzIGFsbCBydW5uYWJs ZSBWQ1BVcyB3aXRoIGJ1ZGdldCwgc29ydGVkIGJ5IGRlYWRsaW5lOworICogVGhlIHJ1bnF1ZXVl IGhvbGRzIGFsbCBydW5uYWJsZSBWQ1BVcyB3aXRoIGJ1ZGdldCwKKyAqIHNvcnRlZCBieSBwcmlv cml0eV9sZXZlbCBhbmQgZGVhZGxpbmU7CiAgKiBUaGUgZGVwbGV0ZWRxdWV1ZSBob2xkcyBhbGwg VkNQVXMgd2l0aG91dCBidWRnZXQsIHVuc29ydGVkOwogICoKICAqIE5vdGU6IGNwdW1hc2sgYW5k IGNwdXBvb2wgaXMgc3VwcG9ydGVkLgpAQCAtMTUxLDYgKzE1NCwxNCBAQAogI2RlZmluZSBSVERT X2RlcGxldGVkICgxPDxfX1JURFNfZGVwbGV0ZWQpCiAKIC8qCisgKiBSVERTX2V4dHJhdGltZTog Q2FuIHRoZSB2Y3B1IHJ1biBpbiB0aGUgdGltZSB0aGF0IGlzCisgKiBub3QgcGFydCBvZiBhbnkg cmVhbC10aW1lIHJlc2VydmF0aW9uLCBhbmQgd291bGQgdGhlcmVmb3JlCisgKiBiZSBvdGhlcndp c2UgbGVmdCBpZGxlPworICovCisjZGVmaW5lIF9fUlREU19leHRyYXRpbWUgICAgNAorI2RlZmlu ZSBSVERTX2V4dHJhdGltZSAoMTw8X19SVERTX2V4dHJhdGltZSkKKworLyoKICAqIHJ0IHRyYWNp bmcgZXZlbnRzICgib25seSIgNTEyIGF2YWlsYWJsZSEpLiBDaGVjawogICogaW5jbHVkZS9wdWJs aWMvdHJhY2UuaCBmb3IgbW9yZSBkZXRhaWxzLgogICovCkBAIC0yMDEsNiArMjEyLDggQEAgc3Ry dWN0IHJ0X3ZjcHUgewogICAgIHN0cnVjdCBydF9kb20gKnNkb207CiAgICAgc3RydWN0IHZjcHUg KnZjcHU7CiAKKyAgICB1bnNpZ25lZCBwcmlvcml0eV9sZXZlbDsKKwogICAgIHVuc2lnbmVkIGZs YWdzOyAgICAgICAgICAgICAgLyogbWFyayBfX1JURFNfc2NoZWR1bGVkLCBldGMuLiAqLwogfTsK IApAQCAtMjQ1LDYgKzI1OCwxMSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBsaXN0X2hlYWQgKnJ0 X3JlcGxxKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcykKICAgICByZXR1cm4gJnJ0X3ByaXYo b3BzKS0+cmVwbHE7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBoYXNfZXh0cmF0aW1lKGNvbnN0 IHN0cnVjdCBydF92Y3B1ICpzdmMpCit7CisgICAgcmV0dXJuIChzdmMtPmZsYWdzICYgUlREU19l eHRyYXRpbWUpID8gMSA6IDA7Cit9CisKIC8qCiAgKiBIZWxwZXIgZnVuY3Rpb25zIGZvciBtYW5p cHVsYXRpbmcgdGhlIHJ1bnF1ZXVlLCB0aGUgZGVwbGV0ZWQgcXVldWUsCiAgKiBhbmQgdGhlIHJl cGxlbmlzaG1lbnQgZXZlbnRzIHF1ZXVlLgpAQCAtMjc0LDYgKzI5MiwyMSBAQCB2Y3B1X29uX3Jl cGxxKGNvbnN0IHN0cnVjdCBydF92Y3B1ICpzdmMpCiB9CiAKIC8qCisgKiBJZiB2MSBwcmlvcml0 eSA+PSB2MiBwcmlvcml0eSwgcmV0dXJuIHZhbHVlID4gMAorICogT3RoZXJ3aXNlLCByZXR1cm4g dmFsdWUgPCAwCisgKi8KK3N0YXRpYyBzX3RpbWVfdAorY29tcGFyZV92Y3B1X3ByaW9yaXR5KGNv bnN0IHN0cnVjdCBydF92Y3B1ICp2MSwgY29uc3Qgc3RydWN0IHJ0X3ZjcHUgKnYyKQoreworICAg IGludCBwcmlvID0gdjItPnByaW9yaXR5X2xldmVsIC0gdjEtPnByaW9yaXR5X2xldmVsOworCisg ICAgaWYgKCBwcmlvID09IDAgKQorICAgICAgICByZXR1cm4gdjItPmN1cl9kZWFkbGluZSAtIHYx LT5jdXJfZGVhZGxpbmU7CisKKyAgICByZXR1cm4gcHJpbzsKK30KKworLyoKICAqIERlYnVnIHJl bGF0ZWQgY29kZSwgZHVtcCB2Y3B1L2NwdSBpbmZvcm1hdGlvbgogICovCiBzdGF0aWMgdm9pZApA QCAtMzAzLDYgKzMzNiw3IEBAIHJ0X2R1bXBfdmNwdShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpv cHMsIGNvbnN0IHN0cnVjdCBydF92Y3B1ICpzdmMpCiAgICAgY3B1bGlzdF9zY25wcmludGYoa2V5 aGFuZGxlcl9zY3JhdGNoLCBzaXplb2Yoa2V5aGFuZGxlcl9zY3JhdGNoKSwgbWFzayk7CiAgICAg cHJpbnRrKCJbJTVkLiUtMnVdIGNwdSAldSwgKCUiUFJJX3N0aW1lIiwgJSJQUklfc3RpbWUiKSwi CiAgICAgICAgICAgICIgY3VyX2I9JSJQUklfc3RpbWUiIGN1cl9kPSUiUFJJX3N0aW1lIiBsYXN0 X3N0YXJ0PSUiUFJJX3N0aW1lIlxuIgorICAgICAgICAgICAiIFx0XHQgcHJpb3JpdHlfbGV2ZWw9 JWQgaGFzX2V4dHJhdGltZT0lZFxuIgogICAgICAgICAgICAiIFx0XHQgb25RPSVkIHJ1bm5hYmxl PSVkIGZsYWdzPSV4IGVmZmVjdGl2ZSBoYXJkX2FmZmluaXR5PSVzXG4iLAogICAgICAgICAgICAg c3ZjLT52Y3B1LT5kb21haW4tPmRvbWFpbl9pZCwKICAgICAgICAgICAgIHN2Yy0+dmNwdS0+dmNw dV9pZCwKQEAgLTMxMiw2ICszNDYsOCBAQCBydF9kdW1wX3ZjcHUoY29uc3Qgc3RydWN0IHNjaGVk dWxlciAqb3BzLCBjb25zdCBzdHJ1Y3QgcnRfdmNwdSAqc3ZjKQogICAgICAgICAgICAgc3ZjLT5j dXJfYnVkZ2V0LAogICAgICAgICAgICAgc3ZjLT5jdXJfZGVhZGxpbmUsCiAgICAgICAgICAgICBz dmMtPmxhc3Rfc3RhcnQsCisgICAgICAgICAgICBzdmMtPnByaW9yaXR5X2xldmVsLAorICAgICAg ICAgICAgaGFzX2V4dHJhdGltZShzdmMpLAogICAgICAgICAgICAgdmNwdV9vbl9xKHN2YyksCiAg ICAgICAgICAgICB2Y3B1X3J1bm5hYmxlKHN2Yy0+dmNwdSksCiAgICAgICAgICAgICBzdmMtPmZs YWdzLApAQCAtNDIzLDE1ICs0NTksMTggQEAgcnRfdXBkYXRlX2RlYWRsaW5lKHNfdGltZV90IG5v dywgc3RydWN0IHJ0X3ZjcHUgKnN2YykKICAgICAgKi8KICAgICBzdmMtPmxhc3Rfc3RhcnQgPSBu b3c7CiAgICAgc3ZjLT5jdXJfYnVkZ2V0ID0gc3ZjLT5idWRnZXQ7CisgICAgc3ZjLT5wcmlvcml0 eV9sZXZlbCA9IDA7CiAKICAgICAvKiBUUkFDRSAqLwogICAgIHsKICAgICAgICAgc3RydWN0IF9f cGFja2VkIHsKICAgICAgICAgICAgIHVuc2lnbmVkIHZjcHU6MTYsIGRvbToxNjsKKyAgICAgICAg ICAgIHVuc2lnbmVkIHByaW9yaXR5X2xldmVsOwogICAgICAgICAgICAgdWludDY0X3QgY3VyX2Rl YWRsaW5lLCBjdXJfYnVkZ2V0OwogICAgICAgICB9IGQ7CiAgICAgICAgIGQuZG9tID0gc3ZjLT52 Y3B1LT5kb21haW4tPmRvbWFpbl9pZDsKICAgICAgICAgZC52Y3B1ID0gc3ZjLT52Y3B1LT52Y3B1 X2lkOworICAgICAgICBkLnByaW9yaXR5X2xldmVsID0gc3ZjLT5wcmlvcml0eV9sZXZlbDsKICAg ICAgICAgZC5jdXJfZGVhZGxpbmUgPSAodWludDY0X3QpIHN2Yy0+Y3VyX2RlYWRsaW5lOwogICAg ICAgICBkLmN1cl9idWRnZXQgPSAodWludDY0X3QpIHN2Yy0+Y3VyX2J1ZGdldDsKICAgICAgICAg dHJhY2VfdmFyKFRSQ19SVERTX0JVREdFVF9SRVBMRU5JU0gsIDEsCkBAIC00NTQsNyArNDkzLDcg QEAgcnRfdXBkYXRlX2RlYWRsaW5lKHNfdGltZV90IG5vdywgc3RydWN0IHJ0X3ZjcHUgKnN2YykK ICAqIGNhc2VzLCBpZiB0aGUgdmNwdSB3aXRoIHRoZSBlYXJsaWVzdCBkZWFkbGluZSBpcyB3aGF0 IHdlCiAgKiBhcmUgZGVhbGluZyB3aXRoKS4KICAqLwotc3RhdGljIGlubGluZSBib29sX3QKK3N0 YXRpYyBpbmxpbmUgYm9vbAogZGVhZGxpbmVfcXVldWVfcmVtb3ZlKHN0cnVjdCBsaXN0X2hlYWQg KnF1ZXVlLCBzdHJ1Y3QgbGlzdF9oZWFkICplbGVtKQogewogICAgIGludCBwb3MgPSAwOwpAQCAt NDY2LDcgKzUwNSw3IEBAIGRlYWRsaW5lX3F1ZXVlX3JlbW92ZShzdHJ1Y3QgbGlzdF9oZWFkICpx dWV1ZSwgc3RydWN0IGxpc3RfaGVhZCAqZWxlbSkKICAgICByZXR1cm4gIXBvczsKIH0KIAotc3Rh dGljIGlubGluZSBib29sX3QKK3N0YXRpYyBpbmxpbmUgYm9vbAogZGVhZGxpbmVfcXVldWVfaW5z ZXJ0KHN0cnVjdCBydF92Y3B1ICogKCpxZWxlbSkoc3RydWN0IGxpc3RfaGVhZCAqKSwKICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgcnRfdmNwdSAqc3ZjLCBzdHJ1Y3QgbGlzdF9oZWFkICpl bGVtLAogICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKnF1ZXVlKQpAQCAt NDc3LDcgKzUxNiw3IEBAIGRlYWRsaW5lX3F1ZXVlX2luc2VydChzdHJ1Y3QgcnRfdmNwdSAqICgq cWVsZW0pKHN0cnVjdCBsaXN0X2hlYWQgKiksCiAgICAgbGlzdF9mb3JfZWFjaCAoIGl0ZXIsIHF1 ZXVlICkKICAgICB7CiAgICAgICAgIHN0cnVjdCBydF92Y3B1ICogaXRlcl9zdmMgPSAoKnFlbGVt KShpdGVyKTsKLSAgICAgICAgaWYgKCBzdmMtPmN1cl9kZWFkbGluZSA8PSBpdGVyX3N2Yy0+Y3Vy X2RlYWRsaW5lICkKKyAgICAgICAgaWYgKCBjb21wYXJlX3ZjcHVfcHJpb3JpdHkoc3ZjLCBpdGVy X3N2YykgPiAwICkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBwb3MrKzsKICAgICB9CkBA IC01MzcsOCArNTc2LDkgQEAgcnVucV9pbnNlcnQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3Bz LCBzdHJ1Y3QgcnRfdmNwdSAqc3ZjKQogICAgIEFTU0VSVCggIXZjcHVfb25fcShzdmMpICk7CiAg ICAgQVNTRVJUKCB2Y3B1X29uX3JlcGxxKHN2YykgKTsKIAotICAgIC8qIGFkZCBzdmMgdG8gcnVu cSBpZiBzdmMgc3RpbGwgaGFzIGJ1ZGdldCAqLwotICAgIGlmICggc3ZjLT5jdXJfYnVkZ2V0ID4g MCApCisgICAgLyogYWRkIHN2YyB0byBydW5xIGlmIHN2YyBzdGlsbCBoYXMgYnVkZ2V0IG9yIGl0 cyBleHRyYXRpbWUgaXMgc2V0ICovCisgICAgaWYgKCBzdmMtPmN1cl9idWRnZXQgPiAwIHx8Cisg ICAgICAgICBoYXNfZXh0cmF0aW1lKHN2YykgKQogICAgICAgICBkZWFkbGluZV9ydW5xX2luc2Vy dChzdmMsICZzdmMtPnFfZWxlbSwgcnVucSk7CiAgICAgZWxzZQogICAgICAgICBsaXN0X2FkZCgm c3ZjLT5xX2VsZW0sICZwcnYtPmRlcGxldGVkcSk7CkBAIC04NTcsNiArODk3LDggQEAgcnRfYWxs b2NfdmRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMsIHZv aWQgKmRkKQogICAgIHN2Yy0+dmNwdSA9IHZjOwogICAgIHN2Yy0+bGFzdF9zdGFydCA9IDA7CiAK KyAgICBfX3NldF9iaXQoX19SVERTX2V4dHJhdGltZSwgJnN2Yy0+ZmxhZ3MpOworICAgIHN2Yy0+ cHJpb3JpdHlfbGV2ZWwgPSAwOwogICAgIHN2Yy0+cGVyaW9kID0gUlREU19ERUZBVUxUX1BFUklP RDsKICAgICBpZiAoICFpc19pZGxlX3ZjcHUodmMpICkKICAgICAgICAgc3ZjLT5idWRnZXQgPSBS VERTX0RFRkFVTFRfQlVER0VUOwpAQCAtOTY2LDggKzEwMDgsMTYgQEAgYnVybl9idWRnZXQoY29u c3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgcnRfdmNwdSAqc3ZjLCBzX3RpbWVfdCBu b3cpCiAKICAgICBpZiAoIHN2Yy0+Y3VyX2J1ZGdldCA8PSAwICkKICAgICB7Ci0gICAgICAgIHN2 Yy0+Y3VyX2J1ZGdldCA9IDA7Ci0gICAgICAgIF9fc2V0X2JpdChfX1JURFNfZGVwbGV0ZWQsICZz dmMtPmZsYWdzKTsKKyAgICAgICAgaWYgKCBoYXNfZXh0cmF0aW1lKHN2YykgKQorICAgICAgICB7 CisgICAgICAgICAgICBzdmMtPnByaW9yaXR5X2xldmVsKys7CisgICAgICAgICAgICBzdmMtPmN1 cl9idWRnZXQgPSBzdmMtPmJ1ZGdldDsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAg IHsKKyAgICAgICAgICAgIHN2Yy0+Y3VyX2J1ZGdldCA9IDA7CisgICAgICAgICAgICBfX3NldF9i aXQoX19SVERTX2RlcGxldGVkLCAmc3ZjLT5mbGFncyk7CisgICAgICAgIH0KICAgICB9CiAKICAg ICAvKiBUUkFDRSAqLwpAQCAtOTc2LDExICsxMDI2LDE1IEBAIGJ1cm5fYnVkZ2V0KGNvbnN0IHN0 cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHJ0X3ZjcHUgKnN2Yywgc190aW1lX3Qgbm93KQog ICAgICAgICAgICAgdW5zaWduZWQgdmNwdToxNiwgZG9tOjE2OwogICAgICAgICAgICAgdWludDY0 X3QgY3VyX2J1ZGdldDsKICAgICAgICAgICAgIGludCBkZWx0YTsKKyAgICAgICAgICAgIHVuc2ln bmVkIHByaW9yaXR5X2xldmVsOworICAgICAgICAgICAgYm9vbCBoYXNfZXh0cmF0aW1lOwogICAg ICAgICB9IGQ7CiAgICAgICAgIGQuZG9tID0gc3ZjLT52Y3B1LT5kb21haW4tPmRvbWFpbl9pZDsK ICAgICAgICAgZC52Y3B1ID0gc3ZjLT52Y3B1LT52Y3B1X2lkOwogICAgICAgICBkLmN1cl9idWRn ZXQgPSAodWludDY0X3QpIHN2Yy0+Y3VyX2J1ZGdldDsKICAgICAgICAgZC5kZWx0YSA9IGRlbHRh OworICAgICAgICBkLnByaW9yaXR5X2xldmVsID0gc3ZjLT5wcmlvcml0eV9sZXZlbDsKKyAgICAg ICAgZC5oYXNfZXh0cmF0aW1lID0gc3ZjLT5mbGFncyAmIFJURFNfZXh0cmF0aW1lOwogICAgICAg ICB0cmFjZV92YXIoVFJDX1JURFNfQlVER0VUX0JVUk4sIDEsCiAgICAgICAgICAgICAgICAgICBz aXplb2YoZCksCiAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgY2hhciAqKSAmZCk7CkBAIC0x MDg4LDcgKzExNDIsNyBAQCBydF9zY2hlZHVsZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMs IHNfdGltZV90IG5vdywgYm9vbF90IHRhc2tsZXRfd29ya19zY2hlZAogICAgICAgICAgICAgIHZj cHVfcnVubmFibGUoY3VycmVudCkgJiYKICAgICAgICAgICAgICBzY3Vyci0+Y3VyX2J1ZGdldCA+ IDAgJiYKICAgICAgICAgICAgICAoIGlzX2lkbGVfdmNwdShzbmV4dC0+dmNwdSkgfHwKLSAgICAg ICAgICAgICAgIHNjdXJyLT5jdXJfZGVhZGxpbmUgPD0gc25leHQtPmN1cl9kZWFkbGluZSApICkK KyAgICAgICAgICAgICAgIGNvbXBhcmVfdmNwdV9wcmlvcml0eShzY3Vyciwgc25leHQpID4gMCAp ICkKICAgICAgICAgICAgIHNuZXh0ID0gc2N1cnI7CiAgICAgfQogCkBAIC0xMTk0LDcgKzEyNDgs NyBAQCBydW5xX3RpY2tsZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBydF92 Y3B1ICpuZXcpCiAgICAgICAgIH0KICAgICAgICAgaXRlcl9zdmMgPSBydF92Y3B1KGl0ZXJfdmMp OwogICAgICAgICBpZiAoIGxhdGVzdF9kZWFkbGluZV92Y3B1ID09IE5VTEwgfHwKLSAgICAgICAg ICAgICBpdGVyX3N2Yy0+Y3VyX2RlYWRsaW5lID4gbGF0ZXN0X2RlYWRsaW5lX3ZjcHUtPmN1cl9k ZWFkbGluZSApCisgICAgICAgICAgICAgY29tcGFyZV92Y3B1X3ByaW9yaXR5KGl0ZXJfc3ZjLCBs YXRlc3RfZGVhZGxpbmVfdmNwdSkgPCAwICkKICAgICAgICAgICAgIGxhdGVzdF9kZWFkbGluZV92 Y3B1ID0gaXRlcl9zdmM7CiAKICAgICAgICAgY3B1bWFza19jbGVhcl9jcHUoY3B1LCAmbm90X3Rp Y2tsZWQpOwpAQCAtMTIwMyw3ICsxMjU3LDcgQEAgcnVucV90aWNrbGUoY29uc3Qgc3RydWN0IHNj aGVkdWxlciAqb3BzLCBzdHJ1Y3QgcnRfdmNwdSAqbmV3KQogCiAgICAgLyogMikgY2FuZGljYXRl IGhhcyBoaWdoZXIgcHJpb3JpdHksIGtpY2sgb3V0IGxvd2VzdCBwcmlvcml0eSB2Y3B1ICovCiAg ICAgaWYgKCBsYXRlc3RfZGVhZGxpbmVfdmNwdSAhPSBOVUxMICYmCi0gICAgICAgICBuZXctPmN1 cl9kZWFkbGluZSA8IGxhdGVzdF9kZWFkbGluZV92Y3B1LT5jdXJfZGVhZGxpbmUgKQorICAgICAg ICAgY29tcGFyZV92Y3B1X3ByaW9yaXR5KGxhdGVzdF9kZWFkbGluZV92Y3B1LCBuZXcpIDwgMCAp CiAgICAgewogICAgICAgICBTQ0hFRF9TVEFUX0NSQU5LKHRpY2tsZWRfYnVzeV9jcHUpOwogICAg ICAgICBjcHVfdG9fdGlja2xlID0gbGF0ZXN0X2RlYWRsaW5lX3ZjcHUtPnZjcHUtPnByb2Nlc3Nv cjsKQEAgLTEzOTQsNiArMTQ0OCwxMCBAQCBydF9kb21fY250bCgKICAgICAgICAgICAgICAgICBz dmMgPSBydF92Y3B1KGQtPnZjcHVbbG9jYWxfc2NoZWQudmNwdWlkXSk7CiAgICAgICAgICAgICAg ICAgbG9jYWxfc2NoZWQudS5ydGRzLmJ1ZGdldCA9IHN2Yy0+YnVkZ2V0IC8gTUlDUk9TRUNTKDEp OwogICAgICAgICAgICAgICAgIGxvY2FsX3NjaGVkLnUucnRkcy5wZXJpb2QgPSBzdmMtPnBlcmlv ZCAvIE1JQ1JPU0VDUygxKTsKKyAgICAgICAgICAgICAgICBpZiAoIGhhc19leHRyYXRpbWUoc3Zj KSApCisgICAgICAgICAgICAgICAgICAgIGxvY2FsX3NjaGVkLnUucnRkcy5mbGFncyB8PSBYRU5f RE9NQ1RMX1NDSEVEUlRfZXh0cmE7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg ICAgICAgICBsb2NhbF9zY2hlZC51LnJ0ZHMuZmxhZ3MgJj0gflhFTl9ET01DVExfU0NIRURSVF9l eHRyYTsKICAgICAgICAgICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ss IGZsYWdzKTsKIAogICAgICAgICAgICAgICAgIGlmICggY29weV90b19ndWVzdF9vZmZzZXQob3At PnUudi52Y3B1cywgaW5kZXgsCkBAIC0xNDE4LDYgKzE0NzYsMTAgQEAgcnRfZG9tX2NudGwoCiAg ICAgICAgICAgICAgICAgc3ZjID0gcnRfdmNwdShkLT52Y3B1W2xvY2FsX3NjaGVkLnZjcHVpZF0p OwogICAgICAgICAgICAgICAgIHN2Yy0+cGVyaW9kID0gcGVyaW9kOwogICAgICAgICAgICAgICAg IHN2Yy0+YnVkZ2V0ID0gYnVkZ2V0OworICAgICAgICAgICAgICAgIGlmICggbG9jYWxfc2NoZWQu dS5ydGRzLmZsYWdzICYgWEVOX0RPTUNUTF9TQ0hFRFJUX2V4dHJhICkKKyAgICAgICAgICAgICAg ICAgICAgX19zZXRfYml0KF9fUlREU19leHRyYXRpbWUsICZzdmMtPmZsYWdzKTsKKyAgICAgICAg ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIF9fY2xlYXJfYml0KF9fUlREU19leHRy YXRpbWUsICZzdmMtPmZsYWdzKTsKICAgICAgICAgICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIC8qIFBy b2Nlc3MgYSBtb3N0IDY0IHZDUFVzIHdpdGhvdXQgY2hlY2tpbmcgZm9yIHByZWVtcHRpb25zLiAq LwpAQCAtMTQ5Miw3ICsxNTU0LDcgQEAgc3RhdGljIHZvaWQgcmVwbF90aW1lcl9oYW5kbGVyKHZv aWQgKmRhdGEpewogICAgICAgICB7CiAgICAgICAgICAgICBzdHJ1Y3QgcnRfdmNwdSAqbmV4dF9v bl9ydW5xID0gcV9lbGVtKHJ1bnEtPm5leHQpOwogCi0gICAgICAgICAgICBpZiAoIHN2Yy0+Y3Vy X2RlYWRsaW5lID4gbmV4dF9vbl9ydW5xLT5jdXJfZGVhZGxpbmUgKQorICAgICAgICAgICAgaWYg KCBjb21wYXJlX3ZjcHVfcHJpb3JpdHkoc3ZjLCBuZXh0X29uX3J1bnEpIDwgMCApCiAgICAgICAg ICAgICAgICAgcnVucV90aWNrbGUob3BzLCBuZXh0X29uX3J1bnEpOwogICAgICAgICB9CiAgICAg ICAgIGVsc2UgaWYgKCBfX3Rlc3RfYW5kX2NsZWFyX2JpdChfX1JURFNfZGVwbGV0ZWQsICZzdmMt PmZsYWdzKSAmJgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oIGIveGVu L2luY2x1ZGUvcHVibGljL2RvbWN0bC5oCmluZGV4IDgzYzdjNzUuLmM3NDdhZjAgMTAwNjQ0Ci0t LSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMv ZG9tY3RsLmgKQEAgLTM2MCw2ICszNjAsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9z Y2hlZF9jcmVkaXQyIHsKIHR5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfc2NoZWRfcnRkcyB7CiAg ICAgdWludDMyX3QgcGVyaW9kOwogICAgIHVpbnQzMl90IGJ1ZGdldDsKKy8qIENhbiB0aGlzIHZD UFUgZXhlY3V0ZSBiZXlvbmQgaXRzIHJlc2VydmVkIGFtb3VudCBvZiB0aW1lPyAqLworI2RlZmlu ZSBfWEVOX0RPTUNUTF9TQ0hFRFJUX2V4dHJhICAgMAorI2RlZmluZSBYRU5fRE9NQ1RMX1NDSEVE UlRfZXh0cmEgICAgKDFVPDxfWEVOX0RPTUNUTF9TQ0hFRFJUX2V4dHJhKQorICAgIHVpbnQzMl90 IGZsYWdzOwogfSB4ZW5fZG9tY3RsX3NjaGVkX3J0ZHNfdDsKIAogdHlwZWRlZiBzdHJ1Y3QgeGVu X2RvbWN0bF9zY2hlZHBhcmFtX3ZjcHUgewotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK