From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tianyang Chen Subject: [PATCH] xen: sched: rtds: refactor code Date: Wed, 11 May 2016 11:20:16 -0400 Message-ID: <1462980016-4854-1-git-send-email-tiche@seas.upenn.edu> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b0VyQ-0008Bh-P9 for xen-devel@lists.xenproject.org; Wed, 11 May 2016 15:22:54 +0000 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 Cc: dario.faggioli@citrix.com, Tianyang Chen , george.dunlap@citrix.com, mengxu@cis.upenn.edu List-Id: xen-devel@lists.xenproject.org Tm8gZnVuY3Rpb25hbCBjaGFuZ2U6CiAtVmFyaW91cyBjb2Rpbmcgc3R5bGUgZml4CiAtQWRkZWQg Y29tbWVudHMgZm9yIFVQREFURV9MSU1JVF9TSElGVC4KClVzZSBub24tYXRvbWljIGJpdC1vcHM6 CiAtVmNwdSBmbGFncyBhcmUgY2hlY2tlZCBhbmQgY2xlYXJlZCBhdG9taWNhbGx5LiBQZXJmb3Jt YW5jZSBjYW4gYmUKICBpbXByb3ZlZCB3aXRoIGNvcnJlc3BvbmRpbmcgbm9uLWF0b21pYyB2ZXJz aW9ucyBzaW5jZSBzY2hlZHVsZS5jCiAgYWxyZWFkeSBoYXMgc3Bpbl9sb2NrcyBpbiBwbGFjZS4K ClN1Z2dlc3RlZC1ieTogRGFyaW8gRmFnZ2lvbGkgPGRhcmlvLmZhZ2dpb2xpQGNpdHJpeC5jb20+ ClNpZ25lZC1vZmYtYnk6IFRpYW55YW5nIENoZW4gPHRpY2hlQHNlYXMudXBlbm4uZWR1PgotLS0K IHhlbi9jb21tb24vc2NoZWRfcnQuYyB8ICAxMjIgKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyks IDU4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWRfcnQuYyBiL3hl bi9jb21tb24vc2NoZWRfcnQuYwppbmRleCA3ZjhmNDExLi4xYTE4ZjZkIDEwMDY0NAotLS0gYS94 ZW4vY29tbW9uL3NjaGVkX3J0LmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9ydC5jCkBAIC04MCw3 ICs4MCw3IEBACiAgKiBpbiBzY2hlZHVsZS5jCiAgKgogICogVGhlIGZ1bmN0aW9ucyBpbnZvbGVz IFJ1blEgYW5kIG5lZWRzIHRvIGdyYWIgbG9ja3MgYXJlOgotICogICAgdmNwdV9pbnNlcnQsIHZj cHVfcmVtb3ZlLCBjb250ZXh0X3NhdmVkLCBfX3J1bnFfaW5zZXJ0CisgKiAgICB2Y3B1X2luc2Vy dCwgdmNwdV9yZW1vdmUsIGNvbnRleHRfc2F2ZWQsIHJ1bnFfaW5zZXJ0CiAgKi8KIAogCkBAIC0x MDcsNiArMTA3LDEyIEBACiAgKi8KICNkZWZpbmUgUlREU19NSU5fQlVER0VUICAgICAoTUlDUk9T RUNTKDEwKSkKIAorLyoKKyAqIFVQREFURV9MSU1JVF9TSElUOiBhIGNvbnN0YW50IHVzZWQgaW4g cnRfdXBkYXRlX2RlYWRsaW5lKCkuIFdoZW4gZmluZGluZworICogdGhlIG5leHQgZGVhZGxpbmUs IHBlcmZvcm1pbmcgYWRkaXRpb24gY291bGQgYmUgZmFzdGVyIGlmIHRoZSBkaWZmZXJlbmNlCisg KiBiZXR3ZWVuIGN1cl9kZWFkbGluZSBhbmQgbm93IGlzIHNtYWxsLiBJZiB0aGUgZGlmZmVyZW5j ZSBpcyBiaWdnZXIgdGhhbgorICogMTAyNCAqIHBlcmlvZCwgdXNlIG11bHRpcGxpY2F0aW9uLgor ICovCiAjZGVmaW5lIFVQREFURV9MSU1JVF9TSElGVCAgICAgIDEwCiAKIC8qCkBAIC0xNTgsMjUg KzE2NCwyNSBAQAogc3RhdGljIHZvaWQgcmVwbF90aW1lcl9oYW5kbGVyKHZvaWQgKmRhdGEpOwog CiAvKgotICogU3lzdG1lLXdpZGUgcHJpdmF0ZSBkYXRhLCBpbmNsdWRlIGdsb2JhbCBSdW5RdWV1 ZS9EZXBsZXRlZFEKKyAqIFN5c3RlbS13aWRlIHByaXZhdGUgZGF0YSwgaW5jbHVkZSBnbG9iYWwg UnVuUXVldWUvRGVwbGV0ZWRRCiAgKiBHbG9iYWwgbG9jayBpcyByZWZlcmVuY2VkIGJ5IHNjaGVk dWxlX2RhdGEuc2NoZWR1bGVfbG9jayBmcm9tIGFsbAogICogcGh5c2ljYWwgY3B1cy4gSXQgY2Fu IGJlIGdyYWJiZWQgdmlhIHZjcHVfc2NoZWR1bGVfbG9ja19pcnEoKQogICovCiBzdHJ1Y3QgcnRf cHJpdmF0ZSB7Ci0gICAgc3BpbmxvY2tfdCBsb2NrOyAgICAgICAgICAgIC8qIHRoZSBnbG9iYWwg Y29hcnNlIGdyYW5kIGxvY2sgKi8KLSAgICBzdHJ1Y3QgbGlzdF9oZWFkIHNkb207ICAgICAgLyog bGlzdCBvZiBhdmFpbGFsYmUgZG9tYWlucywgdXNlZCBmb3IgZHVtcCAqLwotICAgIHN0cnVjdCBs aXN0X2hlYWQgcnVucTsgICAgICAvKiBvcmRlcmVkIGxpc3Qgb2YgcnVubmFibGUgdmNwdXMgKi8K LSAgICBzdHJ1Y3QgbGlzdF9oZWFkIGRlcGxldGVkcTsgLyogdW5vcmRlcmVkIGxpc3Qgb2YgZGVw bGV0ZWQgdmNwdXMgKi8KLSAgICBzdHJ1Y3QgbGlzdF9oZWFkIHJlcGxxOyAgICAgLyogb3JkZXJl ZCBsaXN0IG9mIHZjcHVzIHRoYXQgbmVlZCByZXBsZW5pc2htZW50ICovCi0gICAgY3B1bWFza190 IHRpY2tsZWQ7ICAgICAgICAgIC8qIGNwdXMgYmVlbiB0aWNrbGVkICovCi0gICAgc3RydWN0IHRp bWVyICpyZXBsX3RpbWVyOyAgIC8qIHJlcGxlbmlzaG1lbnQgdGltZXIgKi8KKyAgICBzcGlubG9j a190IGxvY2s7ICAgICAgICAgICAgIC8qIHRoZSBnbG9iYWwgY29hcnNlIGdyYW5kIGxvY2sgKi8K KyAgICBzdHJ1Y3QgbGlzdF9oZWFkIHNkb207ICAgICAgIC8qIGxpc3Qgb2YgYXZhaWxhbGJlIGRv bWFpbnMsIHVzZWQgZm9yIGR1bXAgKi8KKyAgICBzdHJ1Y3QgbGlzdF9oZWFkIHJ1bnE7ICAgICAg IC8qIG9yZGVyZWQgbGlzdCBvZiBydW5uYWJsZSB2Y3B1cyAqLworICAgIHN0cnVjdCBsaXN0X2hl YWQgZGVwbGV0ZWRxOyAgLyogdW5vcmRlcmVkIGxpc3Qgb2YgZGVwbGV0ZWQgdmNwdXMgKi8KKyAg ICBzdHJ1Y3QgbGlzdF9oZWFkIHJlcGxxOyAgICAgIC8qIG9yZGVyZWQgbGlzdCBvZiB2Y3B1cyB0 aGF0IG5lZWQgcmVwbGVuaXNobWVudCAqLworICAgIGNwdW1hc2tfdCB0aWNrbGVkOyAgICAgICAg ICAgLyogY3B1cyBiZWVuIHRpY2tsZWQgKi8KKyAgICBzdHJ1Y3QgdGltZXIgKnJlcGxfdGltZXI7 ICAgIC8qIHJlcGxlbmlzaG1lbnQgdGltZXIgKi8KIH07CiAKIC8qCiAgKiBWaXJ0dWFsIENQVQog ICovCiBzdHJ1Y3QgcnRfdmNwdSB7Ci0gICAgc3RydWN0IGxpc3RfaGVhZCBxX2VsZW07ICAgIC8q IG9uIHRoZSBydW5xL2RlcGxldGVkcSBsaXN0ICovCisgICAgc3RydWN0IGxpc3RfaGVhZCBxX2Vs ZW07ICAgICAvKiBvbiB0aGUgcnVucS9kZXBsZXRlZHEgbGlzdCAqLwogICAgIHN0cnVjdCBsaXN0 X2hlYWQgcmVwbHFfZWxlbTsgLyogb24gdGhlIHJlcGxlbmlzaG1lbnQgZXZlbnRzIGxpc3QgKi8K IAogICAgIC8qIFVwLXBvaW50ZXJzICovCkBAIC0xODgsMTkgKzE5NCwxOSBAQCBzdHJ1Y3QgcnRf dmNwdSB7CiAgICAgc190aW1lX3QgYnVkZ2V0OwogCiAgICAgLyogVkNQVSBjdXJyZW50IGluZm9t YXRpb24gaW4gbmFub3NlY29uZCAqLwotICAgIHNfdGltZV90IGN1cl9idWRnZXQ7ICAgICAgICAv KiBjdXJyZW50IGJ1ZGdldCAqLwotICAgIHNfdGltZV90IGxhc3Rfc3RhcnQ7ICAgICAgICAvKiBs YXN0IHN0YXJ0IHRpbWUgKi8KLSAgICBzX3RpbWVfdCBjdXJfZGVhZGxpbmU7ICAgICAgLyogY3Vy cmVudCBkZWFkbGluZSBmb3IgRURGICovCisgICAgc190aW1lX3QgY3VyX2J1ZGdldDsgICAgICAg ICAvKiBjdXJyZW50IGJ1ZGdldCAqLworICAgIHNfdGltZV90IGxhc3Rfc3RhcnQ7ICAgICAgICAg LyogbGFzdCBzdGFydCB0aW1lICovCisgICAgc190aW1lX3QgY3VyX2RlYWRsaW5lOyAgICAgICAv KiBjdXJyZW50IGRlYWRsaW5lIGZvciBFREYgKi8KIAotICAgIHVuc2lnbmVkIGZsYWdzOyAgICAg ICAgICAgICAvKiBtYXJrIF9fUlREU19zY2hlZHVsZWQsIGV0Yy4uICovCisgICAgdW5zaWduZWQg ZmxhZ3M7ICAgICAgICAgICAgICAvKiBtYXJrIF9fUlREU19zY2hlZHVsZWQsIGV0Yy4uICovCiB9 OwogCiAvKgogICogRG9tYWluCiAgKi8KIHN0cnVjdCBydF9kb20gewotICAgIHN0cnVjdCBsaXN0 X2hlYWQgc2RvbV9lbGVtOyAvKiBsaW5rIGxpc3Qgb24gcnRfcHJpdiAqLwotICAgIHN0cnVjdCBk b21haW4gKmRvbTsgICAgICAgICAvKiBwb2ludGVyIHRvIHVwcGVyIGRvbWFpbiAqLworICAgIHN0 cnVjdCBsaXN0X2hlYWQgc2RvbV9lbGVtOyAgLyogbGluayBsaXN0IG9uIHJ0X3ByaXYgKi8KKyAg ICBzdHJ1Y3QgZG9tYWluICpkb207ICAgICAgICAgIC8qIHBvaW50ZXIgdG8gdXBwZXIgZG9tYWlu ICovCiB9OwogCiAvKgpAQCAtMjQxLDEzICsyNDcsMTMgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3Qg bGlzdF9oZWFkICpydF9yZXBscShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMpCiAgKiBhbmQg dGhlIHJlcGxlbmlzaG1lbnQgZXZlbnRzIHF1ZXVlLgogICovCiBzdGF0aWMgaW50Ci1fX3ZjcHVf b25fcShjb25zdCBzdHJ1Y3QgcnRfdmNwdSAqc3ZjKQordmNwdV9vbl9xKGNvbnN0IHN0cnVjdCBy dF92Y3B1ICpzdmMpCiB7CiAgICByZXR1cm4gIWxpc3RfZW1wdHkoJnN2Yy0+cV9lbGVtKTsKIH0K IAogc3RhdGljIHN0cnVjdCBydF92Y3B1ICoKLV9fcV9lbGVtKHN0cnVjdCBsaXN0X2hlYWQgKmVs ZW0pCitxX2VsZW0oc3RydWN0IGxpc3RfaGVhZCAqZWxlbSkKIHsKICAgICByZXR1cm4gbGlzdF9l bnRyeShlbGVtLCBzdHJ1Y3QgcnRfdmNwdSwgcV9lbGVtKTsKIH0KQEAgLTMwMyw3ICszMDksNyBA QCBydF9kdW1wX3ZjcHUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBjb25zdCBzdHJ1Y3Qg cnRfdmNwdSAqc3ZjKQogICAgICAgICAgICAgc3ZjLT5jdXJfYnVkZ2V0LAogICAgICAgICAgICAg c3ZjLT5jdXJfZGVhZGxpbmUsCiAgICAgICAgICAgICBzdmMtPmxhc3Rfc3RhcnQsCi0gICAgICAg ICAgICBfX3ZjcHVfb25fcShzdmMpLAorICAgICAgICAgICAgdmNwdV9vbl9xKHN2YyksCiAgICAg ICAgICAgICB2Y3B1X3J1bm5hYmxlKHN2Yy0+dmNwdSksCiAgICAgICAgICAgICBzdmMtPmZsYWdz LAogICAgICAgICAgICAga2V5aGFuZGxlcl9zY3JhdGNoKTsKQEAgLTMzOSwyOCArMzQ1LDI4IEBA IHJ0X2R1bXAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzKQogICAgIHJlcGxxID0gcnRfcmVw bHEob3BzKTsKIAogICAgIHByaW50aygiR2xvYmFsIFJ1blF1ZXVlIGluZm86XG4iKTsKLSAgICBs aXN0X2Zvcl9lYWNoKCBpdGVyLCBydW5xICkKKyAgICBsaXN0X2Zvcl9lYWNoICggaXRlciwgcnVu cSApCiAgICAgewotICAgICAgICBzdmMgPSBfX3FfZWxlbShpdGVyKTsKKyAgICAgICAgc3ZjID0g cV9lbGVtKGl0ZXIpOwogICAgICAgICBydF9kdW1wX3ZjcHUob3BzLCBzdmMpOwogICAgIH0KIAog ICAgIHByaW50aygiR2xvYmFsIERlcGxldGVkUXVldWUgaW5mbzpcbiIpOwotICAgIGxpc3RfZm9y X2VhY2goIGl0ZXIsIGRlcGxldGVkcSApCisgICAgbGlzdF9mb3JfZWFjaCAoIGl0ZXIsIGRlcGxl dGVkcSApCiAgICAgewotICAgICAgICBzdmMgPSBfX3FfZWxlbShpdGVyKTsKKyAgICAgICAgc3Zj ID0gcV9lbGVtKGl0ZXIpOwogICAgICAgICBydF9kdW1wX3ZjcHUob3BzLCBzdmMpOwogICAgIH0K IAogICAgIHByaW50aygiR2xvYmFsIFJlcGxlbmlzaG1lbnQgRXZlbnRzIGluZm86XG4iKTsKLSAg ICBsaXN0X2Zvcl9lYWNoKCBpdGVyLCByZXBscSApCisgICAgbGlzdF9mb3JfZWFjaCAoIGl0ZXIs IHJlcGxxICkKICAgICB7CiAgICAgICAgIHN2YyA9IHJlcGxxX2VsZW0oaXRlcik7CiAgICAgICAg IHJ0X2R1bXBfdmNwdShvcHMsIHN2Yyk7CiAgICAgfQogCiAgICAgcHJpbnRrKCJEb21haW4gaW5m bzpcbiIpOwotICAgIGxpc3RfZm9yX2VhY2goIGl0ZXIsICZwcnYtPnNkb20gKQorICAgIGxpc3Rf Zm9yX2VhY2ggKCBpdGVyLCAmcHJ2LT5zZG9tICkKICAgICB7CiAgICAgICAgIHN0cnVjdCB2Y3B1 ICp2OwogCkBAIC0zODAsNyArMzg2LDcgQEAgcnRfZHVtcChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVy ICpvcHMpCiAKIC8qCiAgKiB1cGRhdGUgZGVhZGxpbmUgYW5kIGJ1ZGdldCB3aGVuIG5vdyA+PSBj dXJfZGVhZGxpbmUKLSAqIGl0IG5lZWQgdG8gYmUgdXBkYXRlZCB0byB0aGUgZGVhZGxpbmUgb2Yg dGhlIGN1cnJlbnQgcGVyaW9kCisgKiBpdCBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIHRoZSBkZWFk bGluZSBvZiB0aGUgY3VycmVudCBwZXJpb2QKICAqLwogc3RhdGljIHZvaWQKIHJ0X3VwZGF0ZV9k ZWFkbGluZShzX3RpbWVfdCBub3csIHN0cnVjdCBydF92Y3B1ICpzdmMpCkBAIC00NjMsMTQgKzQ2 OSwxNCBAQCBkZWFkbGluZV9xdWV1ZV9pbnNlcnQoc3RydWN0IHJ0X3ZjcHUgKiAoKnFlbGVtKShz dHJ1Y3QgbGlzdF9oZWFkICopLAogICAgIHJldHVybiAhcG9zOwogfQogI2RlZmluZSBkZWFkbGlu ZV9ydW5xX2luc2VydCguLi4pIFwKLSAgZGVhZGxpbmVfcXVldWVfaW5zZXJ0KCZfX3FfZWxlbSwg IyNfX1ZBX0FSR1NfXykKKyAgZGVhZGxpbmVfcXVldWVfaW5zZXJ0KCZxX2VsZW0sICMjX19WQV9B UkdTX18pCiAjZGVmaW5lIGRlYWRsaW5lX3JlcGxxX2luc2VydCguLi4pIFwKICAgZGVhZGxpbmVf cXVldWVfaW5zZXJ0KCZyZXBscV9lbGVtLCAjI19fVkFfQVJHU19fKQogCiBzdGF0aWMgaW5saW5l IHZvaWQKLV9fcV9yZW1vdmUoc3RydWN0IHJ0X3ZjcHUgKnN2YykKK3FfcmVtb3ZlKHN0cnVjdCBy dF92Y3B1ICpzdmMpCiB7Ci0gICAgQVNTRVJUKCBfX3ZjcHVfb25fcShzdmMpICk7CisgICAgQVNT RVJUKCB2Y3B1X29uX3Eoc3ZjKSApOwogICAgIGxpc3RfZGVsX2luaXQoJnN2Yy0+cV9lbGVtKTsK IH0KIApAQCAtNTA2LDEzICs1MTIsMTMgQEAgcmVwbHFfcmVtb3ZlKGNvbnN0IHN0cnVjdCBzY2hl ZHVsZXIgKm9wcywgc3RydWN0IHJ0X3ZjcHUgKnN2YykKICAqIEluc2VydCBzdmMgd2l0aG91dCBi dWRnZXQgaW4gRGVwbGV0ZWRRIHVuc29ydGVkOwogICovCiBzdGF0aWMgdm9pZAotX19ydW5xX2lu c2VydChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBydF92Y3B1ICpzdmMpCity dW5xX2luc2VydChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBydF92Y3B1ICpz dmMpCiB7CiAgICAgc3RydWN0IHJ0X3ByaXZhdGUgKnBydiA9IHJ0X3ByaXYob3BzKTsKICAgICBz dHJ1Y3QgbGlzdF9oZWFkICpydW5xID0gcnRfcnVucShvcHMpOwogCiAgICAgQVNTRVJUKCBzcGlu X2lzX2xvY2tlZCgmcHJ2LT5sb2NrKSApOwotICAgIEFTU0VSVCggIV9fdmNwdV9vbl9xKHN2Yykg KTsKKyAgICBBU1NFUlQoICF2Y3B1X29uX3Eoc3ZjKSApOwogICAgIEFTU0VSVCggdmNwdV9vbl9y ZXBscShzdmMpICk7CiAKICAgICAvKiBhZGQgc3ZjIHRvIHJ1bnEgaWYgc3ZjIHN0aWxsIGhhcyBi dWRnZXQgKi8KQEAgLTg0MCwxMiArODQ2LDEyIEBAIHJ0X3ZjcHVfaW5zZXJ0KGNvbnN0IHN0cnVj dCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjKQogICAgIGlmICggbm93ID49IHN2Yy0+ Y3VyX2RlYWRsaW5lICkKICAgICAgICAgcnRfdXBkYXRlX2RlYWRsaW5lKG5vdywgc3ZjKTsKIAot ICAgIGlmICggIV9fdmNwdV9vbl9xKHN2YykgJiYgdmNwdV9ydW5uYWJsZSh2YykgKQorICAgIGlm ICggIXZjcHVfb25fcShzdmMpICYmIHZjcHVfcnVubmFibGUodmMpICkKICAgICB7CiAgICAgICAg IHJlcGxxX2luc2VydChvcHMsIHN2Yyk7CiAKICAgICAgICAgaWYgKCAhdmMtPmlzX3J1bm5pbmcg KQotICAgICAgICAgICAgX19ydW5xX2luc2VydChvcHMsIHN2Yyk7CisgICAgICAgICAgICBydW5x X2luc2VydChvcHMsIHN2Yyk7CiAgICAgfQogICAgIHZjcHVfc2NoZWR1bGVfdW5sb2NrX2lycShs b2NrLCB2Yyk7CiAKQEAgLTg2Nyw4ICs4NzMsOCBAQCBydF92Y3B1X3JlbW92ZShjb25zdCBzdHJ1 Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKICAgICBCVUdfT04oIHNkb20gPT0g TlVMTCApOwogCiAgICAgbG9jayA9IHZjcHVfc2NoZWR1bGVfbG9ja19pcnEodmMpOwotICAgIGlm ICggX192Y3B1X29uX3Eoc3ZjKSApCi0gICAgICAgIF9fcV9yZW1vdmUoc3ZjKTsKKyAgICBpZiAo IHZjcHVfb25fcShzdmMpICkKKyAgICAgICAgcV9yZW1vdmUoc3ZjKTsKIAogICAgIGlmICggdmNw dV9vbl9yZXBscShzdmMpICkKICAgICAgICAgcmVwbHFfcmVtb3ZlKG9wcyxzdmMpOwpAQCAtOTMw LDcgKzkzNiw3IEBAIGJ1cm5fYnVkZ2V0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3Ry dWN0IHJ0X3ZjcHUgKnN2Yywgc190aW1lX3Qgbm93KQogICAgIGlmICggc3ZjLT5jdXJfYnVkZ2V0 IDw9IDAgKQogICAgIHsKICAgICAgICAgc3ZjLT5jdXJfYnVkZ2V0ID0gMDsKLSAgICAgICAgc2V0 X2JpdChfX1JURFNfZGVwbGV0ZWQsICZzdmMtPmZsYWdzKTsKKyAgICAgICAgX19zZXRfYml0KF9f UlREU19kZXBsZXRlZCwgJnN2Yy0+ZmxhZ3MpOwogICAgIH0KIAogICAgIC8qIFRSQUNFICovCkBA IC05NTUsNyArOTYxLDcgQEAgYnVybl9idWRnZXQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3Bz LCBzdHJ1Y3QgcnRfdmNwdSAqc3ZjLCBzX3RpbWVfdCBub3cpCiAgKiBsb2NrIGlzIGdyYWJiZWQg YmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbgogICovCiBzdGF0aWMgc3RydWN0IHJ0X3ZjcHUg KgotX19ydW5xX3BpY2soY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBjb25zdCBjcHVtYXNr X3QgKm1hc2spCitydW5xX3BpY2soY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBjb25zdCBj cHVtYXNrX3QgKm1hc2spCiB7CiAgICAgc3RydWN0IGxpc3RfaGVhZCAqcnVucSA9IHJ0X3J1bnEo b3BzKTsKICAgICBzdHJ1Y3QgbGlzdF9oZWFkICppdGVyOwpAQCAtOTY0LDkgKzk3MCw5IEBAIF9f cnVucV9waWNrKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgY29uc3QgY3B1bWFza190ICpt YXNrKQogICAgIGNwdW1hc2tfdCBjcHVfY29tbW9uOwogICAgIGNwdW1hc2tfdCAqb25saW5lOwog Ci0gICAgbGlzdF9mb3JfZWFjaChpdGVyLCBydW5xKQorICAgIGxpc3RfZm9yX2VhY2ggKCBpdGVy LCBydW5xICkKICAgICB7Ci0gICAgICAgIGl0ZXJfc3ZjID0gX19xX2VsZW0oaXRlcik7CisgICAg ICAgIGl0ZXJfc3ZjID0gcV9lbGVtKGl0ZXIpOwogCiAgICAgICAgIC8qIG1hc2sgY3B1X2hhcmRf YWZmaW5pdHkgJiBjcHVwb29sICYgbWFzayAqLwogICAgICAgICBvbmxpbmUgPSBjcHVwb29sX2Rv bWFpbl9jcHVtYXNrKGl0ZXJfc3ZjLT52Y3B1LT5kb21haW4pOwpAQCAtMTAyOCw3ICsxMDM0LDcg QEAgcnRfc2NoZWR1bGUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzX3RpbWVfdCBub3cs IGJvb2xfdCB0YXNrbGV0X3dvcmtfc2NoZWQKICAgICB9CiAgICAgZWxzZQogICAgIHsKLSAgICAg ICAgc25leHQgPSBfX3J1bnFfcGljayhvcHMsIGNwdW1hc2tfb2YoY3B1KSk7CisgICAgICAgIHNu ZXh0ID0gcnVucV9waWNrKG9wcywgY3B1bWFza19vZihjcHUpKTsKICAgICAgICAgaWYgKCBzbmV4 dCA9PSBOVUxMICkKICAgICAgICAgICAgIHNuZXh0ID0gcnRfdmNwdShpZGxlX3ZjcHVbY3B1XSk7 CiAKQEAgLTEwNDQsNyArMTA1MCw3IEBAIHJ0X3NjaGVkdWxlKGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgc190aW1lX3Qgbm93LCBib29sX3QgdGFza2xldF93b3JrX3NjaGVkCiAgICAgaWYg KCBzbmV4dCAhPSBzY3VyciAmJgogICAgICAgICAgIWlzX2lkbGVfdmNwdShjdXJyZW50KSAmJgog ICAgICAgICAgdmNwdV9ydW5uYWJsZShjdXJyZW50KSApCi0gICAgICAgIHNldF9iaXQoX19SVERT X2RlbGF5ZWRfcnVucV9hZGQsICZzY3Vyci0+ZmxhZ3MpOworICAgICAgICBfX3NldF9iaXQoX19S VERTX2RlbGF5ZWRfcnVucV9hZGQsICZzY3Vyci0+ZmxhZ3MpOwogCiAgICAgc25leHQtPmxhc3Rf c3RhcnQgPSBub3c7CiAgICAgcmV0LnRpbWUgPSAgLTE7IC8qIGlmIGFuIGlkbGUgdmNwdSBpcyBw aWNrZWQgKi8KQEAgLTEwNTIsOCArMTA1OCw4IEBAIHJ0X3NjaGVkdWxlKGNvbnN0IHN0cnVjdCBz Y2hlZHVsZXIgKm9wcywgc190aW1lX3Qgbm93LCBib29sX3QgdGFza2xldF93b3JrX3NjaGVkCiAg ICAgewogICAgICAgICBpZiAoIHNuZXh0ICE9IHNjdXJyICkKICAgICAgICAgewotICAgICAgICAg ICAgX19xX3JlbW92ZShzbmV4dCk7Ci0gICAgICAgICAgICBzZXRfYml0KF9fUlREU19zY2hlZHVs ZWQsICZzbmV4dC0+ZmxhZ3MpOworICAgICAgICAgICAgcV9yZW1vdmUoc25leHQpOworICAgICAg ICAgICAgX19zZXRfYml0KF9fUlREU19zY2hlZHVsZWQsICZzbmV4dC0+ZmxhZ3MpOwogICAgICAg ICB9CiAgICAgICAgIGlmICggc25leHQtPnZjcHUtPnByb2Nlc3NvciAhPSBjcHUgKQogICAgICAg ICB7CkBAIC0xMDgxLDEzICsxMDg3LDEzIEBAIHJ0X3ZjcHVfc2xlZXAoY29uc3Qgc3RydWN0IHNj aGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMpCiAKICAgICBpZiAoIGN1cnJfb25fY3B1KHZj LT5wcm9jZXNzb3IpID09IHZjICkKICAgICAgICAgY3B1X3JhaXNlX3NvZnRpcnEodmMtPnByb2Nl c3NvciwgU0NIRURVTEVfU09GVElSUSk7Ci0gICAgZWxzZSBpZiAoIF9fdmNwdV9vbl9xKHN2Yykg KQorICAgIGVsc2UgaWYgKCB2Y3B1X29uX3Eoc3ZjKSApCiAgICAgewotICAgICAgICBfX3FfcmVt b3ZlKHN2Yyk7CisgICAgICAgIHFfcmVtb3ZlKHN2Yyk7CiAgICAgICAgIHJlcGxxX3JlbW92ZShv cHMsIHN2Yyk7CiAgICAgfQogICAgIGVsc2UgaWYgKCBzdmMtPmZsYWdzICYgUlREU19kZWxheWVk X3J1bnFfYWRkICkKLSAgICAgICAgY2xlYXJfYml0KF9fUlREU19kZWxheWVkX3J1bnFfYWRkLCAm c3ZjLT5mbGFncyk7CisgICAgICAgIF9fY2xlYXJfYml0KF9fUlREU19kZWxheWVkX3J1bnFfYWRk LCAmc3ZjLT5mbGFncyk7CiB9CiAKIC8qCkBAIC0xMjAxLDcgKzEyMDcsNyBAQCBydF92Y3B1X3dh a2UoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMpCiAgICAgfQog CiAgICAgLyogb24gUnVuUS9EZXBsZXRlZFEsIGp1c3QgdXBkYXRlIGluZm8gaXMgb2sgKi8KLSAg ICBpZiAoIHVubGlrZWx5KF9fdmNwdV9vbl9xKHN2YykpICkKKyAgICBpZiAoIHVubGlrZWx5KHZj cHVfb25fcShzdmMpKSApCiAgICAgewogICAgICAgICBTQ0hFRF9TVEFUX0NSQU5LKHZjcHVfd2Fr ZV9vbnJ1bnEpOwogICAgICAgICByZXR1cm47CkBAIC0xMjI5LDcgKzEyMzUsNyBAQCBydF92Y3B1 X3dha2UoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMpCiAgICAg ICovCiAgICAgaWYgKCB1bmxpa2VseShzdmMtPmZsYWdzICYgUlREU19zY2hlZHVsZWQpICkKICAg ICB7Ci0gICAgICAgIHNldF9iaXQoX19SVERTX2RlbGF5ZWRfcnVucV9hZGQsICZzdmMtPmZsYWdz KTsKKyAgICAgICAgX19zZXRfYml0KF9fUlREU19kZWxheWVkX3J1bnFfYWRkLCAmc3ZjLT5mbGFn cyk7CiAgICAgICAgIC8qCiAgICAgICAgICAqIFRoZSB2Y3B1IGlzIHdha2luZyB1cCBhbHJlYWR5 LCBhbmQgd2UgZGlkbid0IGV2ZW4gaGFkIHRoZSB0aW1lIHRvCiAgICAgICAgICAqIHJlbW92ZSBp dHMgbmV4dCByZXBsZW5pc2htZW50IGV2ZW50IGZyb20gdGhlIHJlcGxlbmlzaG1lbnQgcXVldWUK QEAgLTEyNDUsNyArMTI1MSw3IEBAIHJ0X3ZjcHVfd2FrZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVy ICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKICAgICAvKiBSZXBsZW5pc2htZW50IGV2ZW50IGdvdCBj YW5jZWxsZWQgd2hlbiB3ZSBibG9ja2VkLiBBZGQgaXQgYmFjay4gKi8KICAgICByZXBscV9pbnNl cnQob3BzLCBzdmMpOwogICAgIC8qIGluc2VydCBzdmMgdG8gcnVucS9kZXBsZXRlZHEgYmVjYXVz ZSBzdmMgaXMgbm90IGluIHF1ZXVlIG5vdyAqLwotICAgIF9fcnVucV9pbnNlcnQob3BzLCBzdmMp OworICAgIHJ1bnFfaW5zZXJ0KG9wcywgc3ZjKTsKIAogICAgIHJ1bnFfdGlja2xlKG9wcywgc3Zj KTsKIH0KQEAgLTEyNjAsMTUgKzEyNjYsMTUgQEAgcnRfY29udGV4dF9zYXZlZChjb25zdCBzdHJ1 Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKICAgICBzdHJ1Y3QgcnRfdmNwdSAq c3ZjID0gcnRfdmNwdSh2Yyk7CiAgICAgc3BpbmxvY2tfdCAqbG9jayA9IHZjcHVfc2NoZWR1bGVf bG9ja19pcnEodmMpOwogCi0gICAgY2xlYXJfYml0KF9fUlREU19zY2hlZHVsZWQsICZzdmMtPmZs YWdzKTsKKyAgICBfX2NsZWFyX2JpdChfX1JURFNfc2NoZWR1bGVkLCAmc3ZjLT5mbGFncyk7CiAg ICAgLyogbm90IGluc2VydCBpZGxlIHZjcHUgdG8gcnVucSAqLwogICAgIGlmICggaXNfaWRsZV92 Y3B1KHZjKSApCiAgICAgICAgIGdvdG8gb3V0OwogCi0gICAgaWYgKCB0ZXN0X2FuZF9jbGVhcl9i aXQoX19SVERTX2RlbGF5ZWRfcnVucV9hZGQsICZzdmMtPmZsYWdzKSAmJgorICAgIGlmICggX190 ZXN0X2FuZF9jbGVhcl9iaXQoX19SVERTX2RlbGF5ZWRfcnVucV9hZGQsICZzdmMtPmZsYWdzKSAm JgogICAgICAgICAgbGlrZWx5KHZjcHVfcnVubmFibGUodmMpKSApCiAgICAgewotICAgICAgICBf X3J1bnFfaW5zZXJ0KG9wcywgc3ZjKTsKKyAgICAgICAgcnVucV9pbnNlcnQob3BzLCBzdmMpOwog ICAgICAgICBydW5xX3RpY2tsZShvcHMsIHN2Yyk7CiAgICAgfQogICAgIGVsc2UKQEAgLTE0MTQs MTAgKzE0MjAsMTAgQEAgc3RhdGljIHZvaWQgcmVwbF90aW1lcl9oYW5kbGVyKHZvaWQgKmRhdGEp ewogICAgICAgICBydF91cGRhdGVfZGVhZGxpbmUobm93LCBzdmMpOwogICAgICAgICBsaXN0X2Fk ZCgmc3ZjLT5yZXBscV9lbGVtLCAmdG1wX3JlcGxxKTsKIAotICAgICAgICBpZiAoIF9fdmNwdV9v bl9xKHN2YykgKQorICAgICAgICBpZiAoIHZjcHVfb25fcShzdmMpICkKICAgICAgICAgewotICAg ICAgICAgICAgX19xX3JlbW92ZShzdmMpOwotICAgICAgICAgICAgX19ydW5xX2luc2VydChvcHMs IHN2Yyk7CisgICAgICAgICAgICBxX3JlbW92ZShzdmMpOworICAgICAgICAgICAgcnVucV9pbnNl cnQob3BzLCBzdmMpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xNDM1LDEzICsxNDQxLDEzIEBA IHN0YXRpYyB2b2lkIHJlcGxfdGltZXJfaGFuZGxlcih2b2lkICpkYXRhKXsKICAgICAgICAgaWYg KCBjdXJyX29uX2NwdShzdmMtPnZjcHUtPnByb2Nlc3NvcikgPT0gc3ZjLT52Y3B1ICYmCiAgICAg ICAgICAgICAgIWxpc3RfZW1wdHkocnVucSkgKQogICAgICAgICB7Ci0gICAgICAgICAgICBzdHJ1 Y3QgcnRfdmNwdSAqbmV4dF9vbl9ydW5xID0gX19xX2VsZW0ocnVucS0+bmV4dCk7CisgICAgICAg ICAgICBzdHJ1Y3QgcnRfdmNwdSAqbmV4dF9vbl9ydW5xID0gcV9lbGVtKHJ1bnEtPm5leHQpOwog CiAgICAgICAgICAgICBpZiAoIHN2Yy0+Y3VyX2RlYWRsaW5lID4gbmV4dF9vbl9ydW5xLT5jdXJf ZGVhZGxpbmUgKQogICAgICAgICAgICAgICAgIHJ1bnFfdGlja2xlKG9wcywgbmV4dF9vbl9ydW5x KTsKICAgICAgICAgfQotICAgICAgICBlbHNlIGlmICggX192Y3B1X29uX3Eoc3ZjKSAmJgotICAg ICAgICAgICAgICAgICAgdGVzdF9hbmRfY2xlYXJfYml0KF9fUlREU19kZXBsZXRlZCwgJnN2Yy0+ ZmxhZ3MpICkKKyAgICAgICAgZWxzZSBpZiAoIHZjcHVfb25fcShzdmMpICYmCisgICAgICAgICAg ICAgICAgICBfX3Rlc3RfYW5kX2NsZWFyX2JpdChfX1JURFNfZGVwbGV0ZWQsICZzdmMtPmZsYWdz KSApCiAgICAgICAgICAgICBydW5xX3RpY2tsZShvcHMsIHN2Yyk7CiAKICAgICAgICAgbGlzdF9k ZWwoJnN2Yy0+cmVwbHFfZWxlbSk7Ci0tIAoxLjcuOS41CgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK