From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tianyang Chen Subject: [PATCH 1/2] xen: sched: rtds refactor code Date: Sun, 15 May 2016 19:54:49 -0400 Message-ID: <1463356490-9780-2-git-send-email-tiche@seas.upenn.edu> References: <1463356490-9780-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 1b25tc-00084H-FH for xen-devel@lists.xenproject.org; Sun, 15 May 2016 23:56:28 +0000 In-Reply-To: <1463356490-9780-1-git-send-email-tiche@seas.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.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 Y29tbWVudHMgZm9yIFVQREFURV9MSU1JVF9TSElGVC4KClNpZ25lZC1vZmYtYnk6IFRpYW55YW5n IENoZW4gPHRpY2hlQHNlYXMudXBlbm4uZWR1PgotLS0KIHhlbi9jb21tb24vc2NoZWRfcnQuYyB8 ICAxMDYgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDUwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3hlbi9jb21tb24vc2NoZWRfcnQuYyBiL3hlbi9jb21tb24vc2NoZWRfcnQuYwppbmRl eCA3ZjhmNDExLi4xNTg0ZDUzIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkX3J0LmMKKysr IGIveGVuL2NvbW1vbi9zY2hlZF9ydC5jCkBAIC04MCw3ICs4MCw3IEBACiAgKiBpbiBzY2hlZHVs ZS5jCiAgKgogICogVGhlIGZ1bmN0aW9ucyBpbnZvbGVzIFJ1blEgYW5kIG5lZWRzIHRvIGdyYWIg bG9ja3MgYXJlOgotICogICAgdmNwdV9pbnNlcnQsIHZjcHVfcmVtb3ZlLCBjb250ZXh0X3NhdmVk LCBfX3J1bnFfaW5zZXJ0CisgKiAgICB2Y3B1X2luc2VydCwgdmNwdV9yZW1vdmUsIGNvbnRleHRf c2F2ZWQsIHJ1bnFfaW5zZXJ0CiAgKi8KIAogCkBAIC0xMDcsNiArMTA3LDEyIEBACiAgKi8KICNk ZWZpbmUgUlREU19NSU5fQlVER0VUICAgICAoTUlDUk9TRUNTKDEwKSkKIAorLyoKKyAqIFVQREFU RV9MSU1JVF9TSElUOiBhIGNvbnN0YW50IHVzZWQgaW4gcnRfdXBkYXRlX2RlYWRsaW5lKCkuIFdo ZW4gZmluZGluZworICogdGhlIG5leHQgZGVhZGxpbmUsIHBlcmZvcm1pbmcgYWRkaXRpb24gY291 bGQgYmUgZmFzdGVyIGlmIHRoZSBkaWZmZXJlbmNlCisgKiBiZXR3ZWVuIGN1cl9kZWFkbGluZSBh bmQgbm93IGlzIHNtYWxsLiBJZiB0aGUgZGlmZmVyZW5jZSBpcyBiaWdnZXIgdGhhbgorICogMTAy NCAqIHBlcmlvZCwgdXNlIG11bHRpcGxpY2F0aW9uLgorICovCiAjZGVmaW5lIFVQREFURV9MSU1J VF9TSElGVCAgICAgIDEwCiAKIC8qCkBAIC0xNTgsMjUgKzE2NCwyNSBAQAogc3RhdGljIHZvaWQg cmVwbF90aW1lcl9oYW5kbGVyKHZvaWQgKmRhdGEpOwogCiAvKgotICogU3lzdG1lLXdpZGUgcHJp dmF0ZSBkYXRhLCBpbmNsdWRlIGdsb2JhbCBSdW5RdWV1ZS9EZXBsZXRlZFEKKyAqIFN5c3RlbS13 aWRlIHByaXZhdGUgZGF0YSwgaW5jbHVkZSBnbG9iYWwgUnVuUXVldWUvRGVwbGV0ZWRRCiAgKiBH bG9iYWwgbG9jayBpcyByZWZlcmVuY2VkIGJ5IHNjaGVkdWxlX2RhdGEuc2NoZWR1bGVfbG9jayBm cm9tIGFsbAogICogcGh5c2ljYWwgY3B1cy4gSXQgY2FuIGJlIGdyYWJiZWQgdmlhIHZjcHVfc2No ZWR1bGVfbG9ja19pcnEoKQogICovCiBzdHJ1Y3QgcnRfcHJpdmF0ZSB7Ci0gICAgc3BpbmxvY2tf dCBsb2NrOyAgICAgICAgICAgIC8qIHRoZSBnbG9iYWwgY29hcnNlIGdyYW5kIGxvY2sgKi8KLSAg ICBzdHJ1Y3QgbGlzdF9oZWFkIHNkb207ICAgICAgLyogbGlzdCBvZiBhdmFpbGFsYmUgZG9tYWlu cywgdXNlZCBmb3IgZHVtcCAqLwotICAgIHN0cnVjdCBsaXN0X2hlYWQgcnVucTsgICAgICAvKiBv cmRlcmVkIGxpc3Qgb2YgcnVubmFibGUgdmNwdXMgKi8KLSAgICBzdHJ1Y3QgbGlzdF9oZWFkIGRl cGxldGVkcTsgLyogdW5vcmRlcmVkIGxpc3Qgb2YgZGVwbGV0ZWQgdmNwdXMgKi8KLSAgICBzdHJ1 Y3QgbGlzdF9oZWFkIHJlcGxxOyAgICAgLyogb3JkZXJlZCBsaXN0IG9mIHZjcHVzIHRoYXQgbmVl ZCByZXBsZW5pc2htZW50ICovCi0gICAgY3B1bWFza190IHRpY2tsZWQ7ICAgICAgICAgIC8qIGNw dXMgYmVlbiB0aWNrbGVkICovCi0gICAgc3RydWN0IHRpbWVyICpyZXBsX3RpbWVyOyAgIC8qIHJl cGxlbmlzaG1lbnQgdGltZXIgKi8KKyAgICBzcGlubG9ja190IGxvY2s7ICAgICAgICAgICAgIC8q IHRoZSBnbG9iYWwgY29hcnNlIGdyYW5kIGxvY2sgKi8KKyAgICBzdHJ1Y3QgbGlzdF9oZWFkIHNk b207ICAgICAgIC8qIGxpc3Qgb2YgYXZhaWxhbGJlIGRvbWFpbnMsIHVzZWQgZm9yIGR1bXAgKi8K KyAgICBzdHJ1Y3QgbGlzdF9oZWFkIHJ1bnE7ICAgICAgIC8qIG9yZGVyZWQgbGlzdCBvZiBydW5u YWJsZSB2Y3B1cyAqLworICAgIHN0cnVjdCBsaXN0X2hlYWQgZGVwbGV0ZWRxOyAgLyogdW5vcmRl cmVkIGxpc3Qgb2YgZGVwbGV0ZWQgdmNwdXMgKi8KKyAgICBzdHJ1Y3QgbGlzdF9oZWFkIHJlcGxx OyAgICAgIC8qIG9yZGVyZWQgbGlzdCBvZiB2Y3B1cyB0aGF0IG5lZWQgcmVwbGVuaXNobWVudCAq LworICAgIGNwdW1hc2tfdCB0aWNrbGVkOyAgICAgICAgICAgLyogY3B1cyBiZWVuIHRpY2tsZWQg Ki8KKyAgICBzdHJ1Y3QgdGltZXIgKnJlcGxfdGltZXI7ICAgIC8qIHJlcGxlbmlzaG1lbnQgdGlt ZXIgKi8KIH07CiAKIC8qCiAgKiBWaXJ0dWFsIENQVQogICovCiBzdHJ1Y3QgcnRfdmNwdSB7Ci0g ICAgc3RydWN0IGxpc3RfaGVhZCBxX2VsZW07ICAgIC8qIG9uIHRoZSBydW5xL2RlcGxldGVkcSBs aXN0ICovCisgICAgc3RydWN0IGxpc3RfaGVhZCBxX2VsZW07ICAgICAvKiBvbiB0aGUgcnVucS9k ZXBsZXRlZHEgbGlzdCAqLwogICAgIHN0cnVjdCBsaXN0X2hlYWQgcmVwbHFfZWxlbTsgLyogb24g dGhlIHJlcGxlbmlzaG1lbnQgZXZlbnRzIGxpc3QgKi8KIAogICAgIC8qIFVwLXBvaW50ZXJzICov CkBAIC0xODgsMTkgKzE5NCwxOSBAQCBzdHJ1Y3QgcnRfdmNwdSB7CiAgICAgc190aW1lX3QgYnVk Z2V0OwogCiAgICAgLyogVkNQVSBjdXJyZW50IGluZm9tYXRpb24gaW4gbmFub3NlY29uZCAqLwot ICAgIHNfdGltZV90IGN1cl9idWRnZXQ7ICAgICAgICAvKiBjdXJyZW50IGJ1ZGdldCAqLwotICAg IHNfdGltZV90IGxhc3Rfc3RhcnQ7ICAgICAgICAvKiBsYXN0IHN0YXJ0IHRpbWUgKi8KLSAgICBz X3RpbWVfdCBjdXJfZGVhZGxpbmU7ICAgICAgLyogY3VycmVudCBkZWFkbGluZSBmb3IgRURGICov CisgICAgc190aW1lX3QgY3VyX2J1ZGdldDsgICAgICAgICAvKiBjdXJyZW50IGJ1ZGdldCAqLwor ICAgIHNfdGltZV90IGxhc3Rfc3RhcnQ7ICAgICAgICAgLyogbGFzdCBzdGFydCB0aW1lICovCisg ICAgc190aW1lX3QgY3VyX2RlYWRsaW5lOyAgICAgICAvKiBjdXJyZW50IGRlYWRsaW5lIGZvciBF REYgKi8KIAotICAgIHVuc2lnbmVkIGZsYWdzOyAgICAgICAgICAgICAvKiBtYXJrIF9fUlREU19z Y2hlZHVsZWQsIGV0Yy4uICovCisgICAgdW5zaWduZWQgZmxhZ3M7ICAgICAgICAgICAgICAvKiBt YXJrIF9fUlREU19zY2hlZHVsZWQsIGV0Yy4uICovCiB9OwogCiAvKgogICogRG9tYWluCiAgKi8K IHN0cnVjdCBydF9kb20gewotICAgIHN0cnVjdCBsaXN0X2hlYWQgc2RvbV9lbGVtOyAvKiBsaW5r IGxpc3Qgb24gcnRfcHJpdiAqLwotICAgIHN0cnVjdCBkb21haW4gKmRvbTsgICAgICAgICAvKiBw b2ludGVyIHRvIHVwcGVyIGRvbWFpbiAqLworICAgIHN0cnVjdCBsaXN0X2hlYWQgc2RvbV9lbGVt OyAgLyogbGluayBsaXN0IG9uIHJ0X3ByaXYgKi8KKyAgICBzdHJ1Y3QgZG9tYWluICpkb207ICAg ICAgICAgIC8qIHBvaW50ZXIgdG8gdXBwZXIgZG9tYWluICovCiB9OwogCiAvKgpAQCAtMjQxLDEz ICsyNDcsMTMgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgbGlzdF9oZWFkICpydF9yZXBscShjb25z dCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMpCiAgKiBhbmQgdGhlIHJlcGxlbmlzaG1lbnQgZXZlbnRz IHF1ZXVlLgogICovCiBzdGF0aWMgaW50Ci1fX3ZjcHVfb25fcShjb25zdCBzdHJ1Y3QgcnRfdmNw dSAqc3ZjKQordmNwdV9vbl9xKGNvbnN0IHN0cnVjdCBydF92Y3B1ICpzdmMpCiB7CiAgICByZXR1 cm4gIWxpc3RfZW1wdHkoJnN2Yy0+cV9lbGVtKTsKIH0KIAogc3RhdGljIHN0cnVjdCBydF92Y3B1 ICoKLV9fcV9lbGVtKHN0cnVjdCBsaXN0X2hlYWQgKmVsZW0pCitxX2VsZW0oc3RydWN0IGxpc3Rf aGVhZCAqZWxlbSkKIHsKICAgICByZXR1cm4gbGlzdF9lbnRyeShlbGVtLCBzdHJ1Y3QgcnRfdmNw dSwgcV9lbGVtKTsKIH0KQEAgLTMwMyw3ICszMDksNyBAQCBydF9kdW1wX3ZjcHUoY29uc3Qgc3Ry dWN0IHNjaGVkdWxlciAqb3BzLCBjb25zdCBzdHJ1Y3QgcnRfdmNwdSAqc3ZjKQogICAgICAgICAg ICAgc3ZjLT5jdXJfYnVkZ2V0LAogICAgICAgICAgICAgc3ZjLT5jdXJfZGVhZGxpbmUsCiAgICAg ICAgICAgICBzdmMtPmxhc3Rfc3RhcnQsCi0gICAgICAgICAgICBfX3ZjcHVfb25fcShzdmMpLAor ICAgICAgICAgICAgdmNwdV9vbl9xKHN2YyksCiAgICAgICAgICAgICB2Y3B1X3J1bm5hYmxlKHN2 Yy0+dmNwdSksCiAgICAgICAgICAgICBzdmMtPmZsYWdzLAogICAgICAgICAgICAga2V5aGFuZGxl cl9zY3JhdGNoKTsKQEAgLTMzOSwyOCArMzQ1LDI4IEBAIHJ0X2R1bXAoY29uc3Qgc3RydWN0IHNj aGVkdWxlciAqb3BzKQogICAgIHJlcGxxID0gcnRfcmVwbHEob3BzKTsKIAogICAgIHByaW50aygi R2xvYmFsIFJ1blF1ZXVlIGluZm86XG4iKTsKLSAgICBsaXN0X2Zvcl9lYWNoKCBpdGVyLCBydW5x ICkKKyAgICBsaXN0X2Zvcl9lYWNoICggaXRlciwgcnVucSApCiAgICAgewotICAgICAgICBzdmMg PSBfX3FfZWxlbShpdGVyKTsKKyAgICAgICAgc3ZjID0gcV9lbGVtKGl0ZXIpOwogICAgICAgICBy dF9kdW1wX3ZjcHUob3BzLCBzdmMpOwogICAgIH0KIAogICAgIHByaW50aygiR2xvYmFsIERlcGxl dGVkUXVldWUgaW5mbzpcbiIpOwotICAgIGxpc3RfZm9yX2VhY2goIGl0ZXIsIGRlcGxldGVkcSAp CisgICAgbGlzdF9mb3JfZWFjaCAoIGl0ZXIsIGRlcGxldGVkcSApCiAgICAgewotICAgICAgICBz dmMgPSBfX3FfZWxlbShpdGVyKTsKKyAgICAgICAgc3ZjID0gcV9lbGVtKGl0ZXIpOwogICAgICAg ICBydF9kdW1wX3ZjcHUob3BzLCBzdmMpOwogICAgIH0KIAogICAgIHByaW50aygiR2xvYmFsIFJl cGxlbmlzaG1lbnQgRXZlbnRzIGluZm86XG4iKTsKLSAgICBsaXN0X2Zvcl9lYWNoKCBpdGVyLCBy ZXBscSApCisgICAgbGlzdF9mb3JfZWFjaCAoIGl0ZXIsIHJlcGxxICkKICAgICB7CiAgICAgICAg IHN2YyA9IHJlcGxxX2VsZW0oaXRlcik7CiAgICAgICAgIHJ0X2R1bXBfdmNwdShvcHMsIHN2Yyk7 CiAgICAgfQogCiAgICAgcHJpbnRrKCJEb21haW4gaW5mbzpcbiIpOwotICAgIGxpc3RfZm9yX2Vh Y2goIGl0ZXIsICZwcnYtPnNkb20gKQorICAgIGxpc3RfZm9yX2VhY2ggKCBpdGVyLCAmcHJ2LT5z ZG9tICkKICAgICB7CiAgICAgICAgIHN0cnVjdCB2Y3B1ICp2OwogCkBAIC0zODAsNyArMzg2LDcg QEAgcnRfZHVtcChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMpCiAKIC8qCiAgKiB1cGRhdGUg ZGVhZGxpbmUgYW5kIGJ1ZGdldCB3aGVuIG5vdyA+PSBjdXJfZGVhZGxpbmUKLSAqIGl0IG5lZWQg dG8gYmUgdXBkYXRlZCB0byB0aGUgZGVhZGxpbmUgb2YgdGhlIGN1cnJlbnQgcGVyaW9kCisgKiBp dCBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIHRoZSBkZWFkbGluZSBvZiB0aGUgY3VycmVudCBwZXJp b2QKICAqLwogc3RhdGljIHZvaWQKIHJ0X3VwZGF0ZV9kZWFkbGluZShzX3RpbWVfdCBub3csIHN0 cnVjdCBydF92Y3B1ICpzdmMpCkBAIC00NjMsMTQgKzQ2OSwxNCBAQCBkZWFkbGluZV9xdWV1ZV9p bnNlcnQoc3RydWN0IHJ0X3ZjcHUgKiAoKnFlbGVtKShzdHJ1Y3QgbGlzdF9oZWFkICopLAogICAg IHJldHVybiAhcG9zOwogfQogI2RlZmluZSBkZWFkbGluZV9ydW5xX2luc2VydCguLi4pIFwKLSAg ZGVhZGxpbmVfcXVldWVfaW5zZXJ0KCZfX3FfZWxlbSwgIyNfX1ZBX0FSR1NfXykKKyAgZGVhZGxp bmVfcXVldWVfaW5zZXJ0KCZxX2VsZW0sICMjX19WQV9BUkdTX18pCiAjZGVmaW5lIGRlYWRsaW5l X3JlcGxxX2luc2VydCguLi4pIFwKICAgZGVhZGxpbmVfcXVldWVfaW5zZXJ0KCZyZXBscV9lbGVt LCAjI19fVkFfQVJHU19fKQogCiBzdGF0aWMgaW5saW5lIHZvaWQKLV9fcV9yZW1vdmUoc3RydWN0 IHJ0X3ZjcHUgKnN2YykKK3FfcmVtb3ZlKHN0cnVjdCBydF92Y3B1ICpzdmMpCiB7Ci0gICAgQVNT RVJUKCBfX3ZjcHVfb25fcShzdmMpICk7CisgICAgQVNTRVJUKCB2Y3B1X29uX3Eoc3ZjKSApOwog ICAgIGxpc3RfZGVsX2luaXQoJnN2Yy0+cV9lbGVtKTsKIH0KIApAQCAtNTA2LDEzICs1MTIsMTMg QEAgcmVwbHFfcmVtb3ZlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHJ0X3Zj cHUgKnN2YykKICAqIEluc2VydCBzdmMgd2l0aG91dCBidWRnZXQgaW4gRGVwbGV0ZWRRIHVuc29y dGVkOwogICovCiBzdGF0aWMgdm9pZAotX19ydW5xX2luc2VydChjb25zdCBzdHJ1Y3Qgc2NoZWR1 bGVyICpvcHMsIHN0cnVjdCBydF92Y3B1ICpzdmMpCitydW5xX2luc2VydChjb25zdCBzdHJ1Y3Qg c2NoZWR1bGVyICpvcHMsIHN0cnVjdCBydF92Y3B1ICpzdmMpCiB7CiAgICAgc3RydWN0IHJ0X3By aXZhdGUgKnBydiA9IHJ0X3ByaXYob3BzKTsKICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpydW5xID0g cnRfcnVucShvcHMpOwogCiAgICAgQVNTRVJUKCBzcGluX2lzX2xvY2tlZCgmcHJ2LT5sb2NrKSAp OwotICAgIEFTU0VSVCggIV9fdmNwdV9vbl9xKHN2YykgKTsKKyAgICBBU1NFUlQoICF2Y3B1X29u X3Eoc3ZjKSApOwogICAgIEFTU0VSVCggdmNwdV9vbl9yZXBscShzdmMpICk7CiAKICAgICAvKiBh ZGQgc3ZjIHRvIHJ1bnEgaWYgc3ZjIHN0aWxsIGhhcyBidWRnZXQgKi8KQEAgLTg0MCwxMiArODQ2 LDEyIEBAIHJ0X3ZjcHVfaW5zZXJ0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0 IHZjcHUgKnZjKQogICAgIGlmICggbm93ID49IHN2Yy0+Y3VyX2RlYWRsaW5lICkKICAgICAgICAg cnRfdXBkYXRlX2RlYWRsaW5lKG5vdywgc3ZjKTsKIAotICAgIGlmICggIV9fdmNwdV9vbl9xKHN2 YykgJiYgdmNwdV9ydW5uYWJsZSh2YykgKQorICAgIGlmICggIXZjcHVfb25fcShzdmMpICYmIHZj cHVfcnVubmFibGUodmMpICkKICAgICB7CiAgICAgICAgIHJlcGxxX2luc2VydChvcHMsIHN2Yyk7 CiAKICAgICAgICAgaWYgKCAhdmMtPmlzX3J1bm5pbmcgKQotICAgICAgICAgICAgX19ydW5xX2lu c2VydChvcHMsIHN2Yyk7CisgICAgICAgICAgICBydW5xX2luc2VydChvcHMsIHN2Yyk7CiAgICAg fQogICAgIHZjcHVfc2NoZWR1bGVfdW5sb2NrX2lycShsb2NrLCB2Yyk7CiAKQEAgLTg2Nyw4ICs4 NzMsOCBAQCBydF92Y3B1X3JlbW92ZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVj dCB2Y3B1ICp2YykKICAgICBCVUdfT04oIHNkb20gPT0gTlVMTCApOwogCiAgICAgbG9jayA9IHZj cHVfc2NoZWR1bGVfbG9ja19pcnEodmMpOwotICAgIGlmICggX192Y3B1X29uX3Eoc3ZjKSApCi0g ICAgICAgIF9fcV9yZW1vdmUoc3ZjKTsKKyAgICBpZiAoIHZjcHVfb25fcShzdmMpICkKKyAgICAg ICAgcV9yZW1vdmUoc3ZjKTsKIAogICAgIGlmICggdmNwdV9vbl9yZXBscShzdmMpICkKICAgICAg ICAgcmVwbHFfcmVtb3ZlKG9wcyxzdmMpOwpAQCAtOTU1LDcgKzk2MSw3IEBAIGJ1cm5fYnVkZ2V0 KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHJ0X3ZjcHUgKnN2Yywgc190aW1l X3Qgbm93KQogICogbG9jayBpcyBncmFiYmVkIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24K ICAqLwogc3RhdGljIHN0cnVjdCBydF92Y3B1ICoKLV9fcnVucV9waWNrKGNvbnN0IHN0cnVjdCBz Y2hlZHVsZXIgKm9wcywgY29uc3QgY3B1bWFza190ICptYXNrKQorcnVucV9waWNrKGNvbnN0IHN0 cnVjdCBzY2hlZHVsZXIgKm9wcywgY29uc3QgY3B1bWFza190ICptYXNrKQogewogICAgIHN0cnVj dCBsaXN0X2hlYWQgKnJ1bnEgPSBydF9ydW5xKG9wcyk7CiAgICAgc3RydWN0IGxpc3RfaGVhZCAq aXRlcjsKQEAgLTk2NCw5ICs5NzAsOSBAQCBfX3J1bnFfcGljayhjb25zdCBzdHJ1Y3Qgc2NoZWR1 bGVyICpvcHMsIGNvbnN0IGNwdW1hc2tfdCAqbWFzaykKICAgICBjcHVtYXNrX3QgY3B1X2NvbW1v bjsKICAgICBjcHVtYXNrX3QgKm9ubGluZTsKIAotICAgIGxpc3RfZm9yX2VhY2goaXRlciwgcnVu cSkKKyAgICBsaXN0X2Zvcl9lYWNoICggaXRlciwgcnVucSApCiAgICAgewotICAgICAgICBpdGVy X3N2YyA9IF9fcV9lbGVtKGl0ZXIpOworICAgICAgICBpdGVyX3N2YyA9IHFfZWxlbShpdGVyKTsK IAogICAgICAgICAvKiBtYXNrIGNwdV9oYXJkX2FmZmluaXR5ICYgY3B1cG9vbCAmIG1hc2sgKi8K ICAgICAgICAgb25saW5lID0gY3B1cG9vbF9kb21haW5fY3B1bWFzayhpdGVyX3N2Yy0+dmNwdS0+ ZG9tYWluKTsKQEAgLTEwMjgsNyArMTAzNCw3IEBAIHJ0X3NjaGVkdWxlKGNvbnN0IHN0cnVjdCBz Y2hlZHVsZXIgKm9wcywgc190aW1lX3Qgbm93LCBib29sX3QgdGFza2xldF93b3JrX3NjaGVkCiAg ICAgfQogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIHNuZXh0ID0gX19ydW5xX3BpY2sob3BzLCBj cHVtYXNrX29mKGNwdSkpOworICAgICAgICBzbmV4dCA9IHJ1bnFfcGljayhvcHMsIGNwdW1hc2tf b2YoY3B1KSk7CiAgICAgICAgIGlmICggc25leHQgPT0gTlVMTCApCiAgICAgICAgICAgICBzbmV4 dCA9IHJ0X3ZjcHUoaWRsZV92Y3B1W2NwdV0pOwogCkBAIC0xMDUyLDcgKzEwNTgsNyBAQCBydF9z Y2hlZHVsZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHNfdGltZV90IG5vdywgYm9vbF90 IHRhc2tsZXRfd29ya19zY2hlZAogICAgIHsKICAgICAgICAgaWYgKCBzbmV4dCAhPSBzY3VyciAp CiAgICAgICAgIHsKLSAgICAgICAgICAgIF9fcV9yZW1vdmUoc25leHQpOworICAgICAgICAgICAg cV9yZW1vdmUoc25leHQpOwogICAgICAgICAgICAgc2V0X2JpdChfX1JURFNfc2NoZWR1bGVkLCAm c25leHQtPmZsYWdzKTsKICAgICAgICAgfQogICAgICAgICBpZiAoIHNuZXh0LT52Y3B1LT5wcm9j ZXNzb3IgIT0gY3B1ICkKQEAgLTEwODEsOSArMTA4Nyw5IEBAIHJ0X3ZjcHVfc2xlZXAoY29uc3Qg c3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMpCiAKICAgICBpZiAoIGN1cnJf b25fY3B1KHZjLT5wcm9jZXNzb3IpID09IHZjICkKICAgICAgICAgY3B1X3JhaXNlX3NvZnRpcnEo dmMtPnByb2Nlc3NvciwgU0NIRURVTEVfU09GVElSUSk7Ci0gICAgZWxzZSBpZiAoIF9fdmNwdV9v bl9xKHN2YykgKQorICAgIGVsc2UgaWYgKCB2Y3B1X29uX3Eoc3ZjKSApCiAgICAgewotICAgICAg ICBfX3FfcmVtb3ZlKHN2Yyk7CisgICAgICAgIHFfcmVtb3ZlKHN2Yyk7CiAgICAgICAgIHJlcGxx X3JlbW92ZShvcHMsIHN2Yyk7CiAgICAgfQogICAgIGVsc2UgaWYgKCBzdmMtPmZsYWdzICYgUlRE U19kZWxheWVkX3J1bnFfYWRkICkKQEAgLTEyMDEsNyArMTIwNyw3IEBAIHJ0X3ZjcHVfd2FrZShj b25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKICAgICB9CiAKICAg ICAvKiBvbiBSdW5RL0RlcGxldGVkUSwganVzdCB1cGRhdGUgaW5mbyBpcyBvayAqLwotICAgIGlm ICggdW5saWtlbHkoX192Y3B1X29uX3Eoc3ZjKSkgKQorICAgIGlmICggdW5saWtlbHkodmNwdV9v bl9xKHN2YykpICkKICAgICB7CiAgICAgICAgIFNDSEVEX1NUQVRfQ1JBTksodmNwdV93YWtlX29u cnVucSk7CiAgICAgICAgIHJldHVybjsKQEAgLTEyNDUsNyArMTI1MSw3IEBAIHJ0X3ZjcHVfd2Fr ZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKICAgICAvKiBS ZXBsZW5pc2htZW50IGV2ZW50IGdvdCBjYW5jZWxsZWQgd2hlbiB3ZSBibG9ja2VkLiBBZGQgaXQg YmFjay4gKi8KICAgICByZXBscV9pbnNlcnQob3BzLCBzdmMpOwogICAgIC8qIGluc2VydCBzdmMg dG8gcnVucS9kZXBsZXRlZHEgYmVjYXVzZSBzdmMgaXMgbm90IGluIHF1ZXVlIG5vdyAqLwotICAg IF9fcnVucV9pbnNlcnQob3BzLCBzdmMpOworICAgIHJ1bnFfaW5zZXJ0KG9wcywgc3ZjKTsKIAog ICAgIHJ1bnFfdGlja2xlKG9wcywgc3ZjKTsKIH0KQEAgLTEyNjgsNyArMTI3NCw3IEBAIHJ0X2Nv bnRleHRfc2F2ZWQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMp CiAgICAgaWYgKCB0ZXN0X2FuZF9jbGVhcl9iaXQoX19SVERTX2RlbGF5ZWRfcnVucV9hZGQsICZz dmMtPmZsYWdzKSAmJgogICAgICAgICAgbGlrZWx5KHZjcHVfcnVubmFibGUodmMpKSApCiAgICAg ewotICAgICAgICBfX3J1bnFfaW5zZXJ0KG9wcywgc3ZjKTsKKyAgICAgICAgcnVucV9pbnNlcnQo b3BzLCBzdmMpOwogICAgICAgICBydW5xX3RpY2tsZShvcHMsIHN2Yyk7CiAgICAgfQogICAgIGVs c2UKQEAgLTE0MTQsMTAgKzE0MjAsMTAgQEAgc3RhdGljIHZvaWQgcmVwbF90aW1lcl9oYW5kbGVy KHZvaWQgKmRhdGEpewogICAgICAgICBydF91cGRhdGVfZGVhZGxpbmUobm93LCBzdmMpOwogICAg ICAgICBsaXN0X2FkZCgmc3ZjLT5yZXBscV9lbGVtLCAmdG1wX3JlcGxxKTsKIAotICAgICAgICBp ZiAoIF9fdmNwdV9vbl9xKHN2YykgKQorICAgICAgICBpZiAoIHZjcHVfb25fcShzdmMpICkKICAg ICAgICAgewotICAgICAgICAgICAgX19xX3JlbW92ZShzdmMpOwotICAgICAgICAgICAgX19ydW5x X2luc2VydChvcHMsIHN2Yyk7CisgICAgICAgICAgICBxX3JlbW92ZShzdmMpOworICAgICAgICAg ICAgcnVucV9pbnNlcnQob3BzLCBzdmMpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xNDM1LDEy ICsxNDQxLDEyIEBAIHN0YXRpYyB2b2lkIHJlcGxfdGltZXJfaGFuZGxlcih2b2lkICpkYXRhKXsK ICAgICAgICAgaWYgKCBjdXJyX29uX2NwdShzdmMtPnZjcHUtPnByb2Nlc3NvcikgPT0gc3ZjLT52 Y3B1ICYmCiAgICAgICAgICAgICAgIWxpc3RfZW1wdHkocnVucSkgKQogICAgICAgICB7Ci0gICAg ICAgICAgICBzdHJ1Y3QgcnRfdmNwdSAqbmV4dF9vbl9ydW5xID0gX19xX2VsZW0ocnVucS0+bmV4 dCk7CisgICAgICAgICAgICBzdHJ1Y3QgcnRfdmNwdSAqbmV4dF9vbl9ydW5xID0gcV9lbGVtKHJ1 bnEtPm5leHQpOwogCiAgICAgICAgICAgICBpZiAoIHN2Yy0+Y3VyX2RlYWRsaW5lID4gbmV4dF9v bl9ydW5xLT5jdXJfZGVhZGxpbmUgKQogICAgICAgICAgICAgICAgIHJ1bnFfdGlja2xlKG9wcywg bmV4dF9vbl9ydW5xKTsKICAgICAgICAgfQotICAgICAgICBlbHNlIGlmICggX192Y3B1X29uX3Eo c3ZjKSAmJgorICAgICAgICBlbHNlIGlmICggdmNwdV9vbl9xKHN2YykgJiYKICAgICAgICAgICAg ICAgICAgIHRlc3RfYW5kX2NsZWFyX2JpdChfX1JURFNfZGVwbGV0ZWQsICZzdmMtPmZsYWdzKSAp CiAgICAgICAgICAgICBydW5xX3RpY2tsZShvcHMsIHN2Yyk7CiAKLS0gCjEuNy45LjUKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbAo=