From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: [PATCH v2 10/11] xen: credit2: the private scheduler lock can be an rwlock. Date: Fri, 15 Jul 2016 16:50:18 +0200 Message-ID: <146859421885.10217.4343438485432953690.stgit@Solace.fritz.box> References: <146859397891.10217.10155969474613302167.stgit@Solace.fritz.box> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bO4Ra-0006cG-Qo for xen-devel@lists.xenproject.org; Fri, 15 Jul 2016 14:50:23 +0000 Received: by mail-wm0-f65.google.com with SMTP id q128so2483929wma.1 for ; Fri, 15 Jul 2016 07:50:21 -0700 (PDT) In-Reply-To: <146859397891.10217.10155969474613302167.stgit@Solace.fritz.box> 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: Anshul Makkar , George Dunlap , David Vrabel List-Id: xen-devel@lists.xenproject.org SW4gZmFjdCwgdGhlIGRhdGEgaXQgcHJvdGVjdHMgb25seSBjaGFuZ2UgZWl0aGVyIGF0IGluaXQt dGltZSwKZHVyaW5nIGNwdXBvb2xzIG1hbmlwdWxhdGlvbiwgb3Igd2hlbiBjaGFuZ2luZyBkb21h aW5zJyB3ZWlnaHRzLgpJbiBhbGwgb3RoZXIgY2FzZXMgKG5hbWVseSwgbG9hZCBiYWxhbmNpbmcs IHJlYWRpbmcgd2VpZ2h0cwphbmQgc3RhdHVzIGR1bXBpbmcpLCBpbmZvcm1hdGlvbiBpcyBvbmx5 IHJlYWQuCgpUaGVyZWZvcmUsIGxldCB0aGUgbG9jayBiZSBhbiByZWFkL3dyaXRlIG9uZS4gVGhp cyBtZWFucyB0aGVyZQppcyBubyBmdWxsIHNlcmlhbGl6YXRpb24gcG9pbnQgZm9yIHRoZSB3aG9s ZSBzY2hlZHVsZXIgYW5kCmZvciBhbGwgdGhlIHBDUFVzIG9mIHRoZSBob3N0IGFueSBsb25nZXIu CgpUaGlzIGlzIHBhcnRpY3VsYXJseSBnb29kIGZvciBzY2FsYWJpbGl0eSAoZXNwZWNpYWxseSB3 aGVuIGRvaW5nCmxvYWQgYmFsYW5jaW5nKS4KCkFsc28sIHVwZGF0ZSB0aGUgaGlnaCBsZXZlbCBk ZXNjcmlwdGlvbiBvZiB0aGUgbG9ja2luZyBkaXNjaXBsaW5lLAphbmQgdGFrZSB0aGUgY2hhbmNl IGZvciByZXdvcmRpbmcgaXQgYSBsaXR0bGUgYml0IChhcyB3ZWxsIGFzCmZvciBhZGRpbmcgYSBj b3VwbGUgb2YgbG9ja2luZyByZWxhdGVkIEFTU0VSVCgpLXMpLgoKU2lnbmVkLW9mZi1ieTogRGFy aW8gRmFnZ2lvbGkgPGRhcmlvLmZhZ2dpb2xpQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBHZW9y Z2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+Ci0tLQpDYzogQW5zaHVsIE1ha2th ciA8YW5zaHVsLm1ha2thckBjaXRyaXguY29tPgpDYzogRGF2aWQgVnJhYmVsIDxkYXZpZC52cmFi ZWxAY2l0cml4LmNvbT4KLS0tCiB4ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYyB8ICAxMzMgKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCA4MCBpbnNlcnRpb25zKCspLCA1MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vY29t bW9uL3NjaGVkX2NyZWRpdDIuYyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jCmluZGV4IGJl MjdiYTMuLmIzM2JhN2EgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jCisr KyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jCkBAIC05MCwxNyArOTAsMzcgQEAKIAogLyoK ICAqIExvY2tpbmc6Ci0gKiAtIFNjaGVkdWxlLWxvY2sgaXMgcGVyLXJ1bnF1ZXVlCi0gKiAgKyBQ cm90ZWN0cyBydW5xdWV1ZSBkYXRhLCBydW5xdWV1ZSBpbnNlcnRpb24sICZjCi0gKiAgKyBBbHNv IHByb3RlY3RzIHVwZGF0ZXMgdG8gcHJpdmF0ZSBzY2hlZCB2Y3B1IHN0cnVjdHVyZQotICogICsg TXVzdCBiZSBncmFiYmVkIHVzaW5nIHZjcHVfc2NoZWR1bGVfbG9ja19pcnEoKSB0byBtYWtlIHN1 cmUgdmNwdS0+cHJvY2Vzc3IKLSAqICAgIGRvZXNuJ3QgY2hhbmdlIHVuZGVyIG91ciBmZWV0Lgot ICogLSBQcml2YXRlIGRhdGEgbG9jawotICogICsgUHJvdGVjdHMgYWNjZXNzIHRvIGdsb2JhbCBk b21haW4gbGlzdAotICogICsgQWxsIG90aGVyIHByaXZhdGUgZGF0YSBpcyB3cml0dGVuIGF0IGlu aXQgYW5kIG9ubHkgcmVhZCBhZnRlcndhcmRzLgorICoKKyAqIC0gcnVucXVldWUgbG9jaworICog ICsgaXQgaXMgcGVyLXJ1bnF1ZXVlLCBzbzoKKyAqICAgKiBjcHVzIGluIGEgcnVucXVldWUgdGFr ZSB0aGUgcnVucXVldWUgbG9jaywgd2hlbiB1c2luZworICogICAgIHBjcHVfc2NoZWR1bGVfbG9j aygpIC8gdmNwdV9zY2hlZHVsZV9sb2NrKCkgKGFuZCBmcmllbmRzKSwKKyAqICAgKiBhIGNwdSBt YXkgKHRyeSB0bykgdGFrZSBhICJyZW1vdGUiIHJ1bnF1ZXVlIGxvY2ssIGUuZy4sIGZvcgorICog ICAgIGxvYWQgYmFsYW5jaW5nOworICogICsgc2VyaWFsaXplcyBydW5xdWV1ZSBvcGVyYXRpb25z IChyZW1vdmluZyBhbmQgaW5zZXJ0aW5nIHZjcHVzKTsKKyAqICArIHByb3RlY3RzIHJ1bnF1ZXVl LXdpZGUgZGF0YSBpbiBjc2NoZWQyX3J1bnF1ZXVlX2RhdGE7CisgKiAgKyBwcm90ZWN0cyB2Y3B1 IHBhcmFtZXRlcnMgaW4gY3NjaGVkMl92Y3B1IGZvciB0aGUgdmNwdSBpbiB0aGUKKyAqICAgIHJ1 bnF1ZXVlLgorICoKKyAqIC0gUHJpdmF0ZSBzY2hlZHVsZXIgbG9jaworICogICsgcHJvdGVjdHMg c2NoZWR1bGVyLXdpZGUgZGF0YSBpbiBjc2NoZWQyX3ByaXZhdGUsIHN1Y2ggYXM6CisgKiAgICog dGhlIGxpc3Qgb2YgZG9tYWlucyBhY3RpdmUgaW4gdGhpcyBzY2hlZHVsZXIsCisgKiAgICogd2hh dCBjcHVzIGFuZCB3aGF0IHJ1bnF1ZXVlcyBhcmUgYWN0aXZlIGFuZCBpbiB3aGF0CisgKiAgICAg cnVucXVldWUgZWFjaCBjcHUgaXM7CisgKiAgKyBzZXJpYWxpemVzIHRoZSBvcGVyYXRpb24gb2Yg Y2hhbmdpbmcgdGhlIHdlaWdodHMgb2YgZG9tYWluczsKKyAqCisgKiAtIFR5cGU6CisgKiAgKyBy dW5xdWV1ZSBsb2NrcyBhcmUgJ3JlZ3VsYXInIHNwaW5sb2NrczsKKyAqICArIHRoZSBwcml2YXRl IHNjaGVkdWxlciBsb2NrIGNhbiBiZSBhbiByd2xvY2suIEluIGZhY3QsIGRhdGEKKyAqICAgIGl0 IHByb3RlY3RzIGlzIG1vZGlmaWVkIG9ubHkgZHVyaW5nIGluaXRpYWxpemF0aW9uLCBjcHVwb29s CisgKiAgICBtYW5pcHVsYXRpb24gYW5kIHdoZW4gY2hhbmdpbmcgd2VpZ2h0cywgYW5kIHJlYWQg aW4gYWxsCisgKiAgICBvdGhlciBjYXNlcyAoZS5nLiwgZHVyaW5nIGxvYWQgYmFsYW5jaW5nKS4K KyAqCiAgKiBPcmRlcmluZzoKLSAqIC0gV2UgZ3JhYiBwcml2YXRlLT5zY2hlZHVsZSB3aGVuIHVw ZGF0aW5nIGRvbWFpbiB3ZWlnaHQ7IHNvIHdlCi0gKiAgbXVzdCBuZXZlciBncmFiIHByaXZhdGUg aWYgYSBzY2hlZHVsZSBsb2NrIGlzIGhlbGQuCisgKiAgKyB0eWxvY2sgbXVzdCBiZSB1c2VkIHdo ZW4gd2FudGluZyB0byB0YWtlIGEgcnVucXVldWUgbG9jaywKKyAqICAgIGlmIHdlIGFscmVhZHkg aG9sZCBhbm90aGVyIG9uZTsKKyAqICArIGlmIHRha2luZyBib3RoIGEgcnVucXVldWUgbG9jayBh bmQgdGhlIHByaXZhdGUgc2NoZWR1bGVyCisgKiAgICBsb2NrIGlzLCB0aGUgbGF0dGVyIG11c3Qg YWx3YXlzIGJlIHRha2VuIGZvciBmaXJzdC4KICAqLwogCiAvKgpAQCAtMzQ1LDcgKzM2NSw3IEBA IHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgewogICogU3lzdGVtLXdpZGUgcHJpdmF0ZSBk YXRhCiAgKi8KIHN0cnVjdCBjc2NoZWQyX3ByaXZhdGUgewotICAgIHNwaW5sb2NrX3QgbG9jazsK KyAgICByd2xvY2tfdCBsb2NrOwogICAgIGNwdW1hc2tfdCBpbml0aWFsaXplZDsgLyogQ1BVIGlz IGluaXRpYWxpemVkIGZvciB0aGlzIHBvb2wgKi8KICAgICAKICAgICBzdHJ1Y3QgbGlzdF9oZWFk IHNkb207IC8qIFVzZWQgbW9zdGx5IGZvciBkdW1wIGtleWhhbmRsZXIuICovCkBAIC0xMzAyLDEz ICsxMzIyLDE0IEBAIHN0YXRpYyB2b2lkCiBjc2NoZWQyX3ZjcHVfd2FrZShjb25zdCBzdHJ1Y3Qg c2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKIHsKICAgICBzdHJ1Y3QgY3NjaGVkMl92 Y3B1ICogY29uc3Qgc3ZjID0gQ1NDSEVEMl9WQ1BVKHZjKTsKKyAgICB1bnNpZ25lZCBpbnQgY3B1 ID0gdmMtPnByb2Nlc3NvcjsKICAgICBzX3RpbWVfdCBub3c7CiAKLSAgICAvKiBTY2hlZHVsZSBs b2NrIHNob3VsZCBiZSBoZWxkIGF0IHRoaXMgcG9pbnQuICovCisgICAgQVNTRVJUKHNwaW5faXNf bG9ja2VkKHBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1KS5zY2hlZHVsZV9sb2NrKSk7CiAKICAg ICBBU1NFUlQoIWlzX2lkbGVfdmNwdSh2YykpOwogCi0gICAgaWYgKCB1bmxpa2VseShjdXJyX29u X2NwdSh2Yy0+cHJvY2Vzc29yKSA9PSB2YykgKQorICAgIGlmICggdW5saWtlbHkoY3Vycl9vbl9j cHUoY3B1KSA9PSB2YykgKQogICAgIHsKICAgICAgICAgU0NIRURfU1RBVF9DUkFOSyh2Y3B1X3dh a2VfcnVubmluZyk7CiAgICAgICAgIGdvdG8gb3V0OwpAQCAtMTM5OSw3ICsxNDIwLDcgQEAgY3Nj aGVkMl9jcHVfcGljayhjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2 YykKICAgICBBU1NFUlQoIWNwdW1hc2tfZW1wdHkoJnBydi0+YWN0aXZlX3F1ZXVlcykpOwogCiAg ICAgLyogTG9ja2luZzoKLSAgICAgKiAtIHZjLT5wcm9jZXNzb3IgaXMgYWxyZWFkeSBsb2NrZWQK KyAgICAgKiAtIFJ1bnF1ZXVlIGxvY2sgb2YgdmMtPnByb2Nlc3NvciBpcyBhbHJlYWR5IGxvY2tl ZAogICAgICAqIC0gTmVlZCB0byBncmFiIHBydiBsb2NrIHRvIG1ha2Ugc3VyZSBhY3RpdmUgcnVu cXVldWVzIGRvbid0CiAgICAgICogICBjaGFuZ2UKICAgICAgKiAtIE5lZWQgdG8gZ3JhYiBsb2Nr cyBmb3Igb3RoZXIgcnVucXVldWVzIHdoaWxlIGNoZWNraW5nCkBAIC0xNDEyLDggKzE0MzMsOSBA QCBjc2NoZWQyX2NwdV9waWNrKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZj cHUgKnZjKQogICAgICAqIGp1c3QgZ3JhYiB0aGUgcHJ2IGxvY2suICBJbnN0ZWFkLCB3ZSdsbCBo YXZlIHRvIHRyeWxvY2ssIGFuZAogICAgICAqIGRvIHNvbWV0aGluZyBlbHNlIHJlYXNvbmFibGUg aWYgd2UgZmFpbC4KICAgICAgKi8KKyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQocGVyX2NwdShz Y2hlZHVsZV9kYXRhLCB2Yy0+cHJvY2Vzc29yKS5zY2hlZHVsZV9sb2NrKSk7CiAKLSAgICBpZiAo ICFzcGluX3RyeWxvY2soJnBydi0+bG9jaykgKQorICAgIGlmICggIXJlYWRfdHJ5bG9jaygmcHJ2 LT5sb2NrKSApCiAgICAgewogICAgICAgICAvKiBXZSBtYXkgYmUgaGVyZSBiZWNhdXNlIHNvbWVv bmUgcmVxdWVzdGVkIHVzIHRvIG1pZ3JhdGUuICovCiAgICAgICAgIF9fY2xlYXJfYml0KF9fQ1NG TEFHX3J1bnFfbWlncmF0ZV9yZXF1ZXN0LCAmc3ZjLT5mbGFncyk7CkBAIC0xNDk1LDcgKzE1MTcs NyBAQCBjc2NoZWQyX2NwdV9waWNrKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0 IHZjcHUgKnZjKQogICAgIH0KIAogb3V0X3VwOgotICAgIHNwaW5fdW5sb2NrKCZwcnYtPmxvY2sp OworICAgIHJlYWRfdW5sb2NrKCZwcnYtPmxvY2spOwogCiAgICAgaWYgKCB1bmxpa2VseSh0Yl9p bml0X2RvbmUpICkKICAgICB7CkBAIC0xNjQ3LDE1ICsxNjY5LDEzIEBAIHN0YXRpYyB2b2lkIGJh bGFuY2VfbG9hZChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGludCBjcHUsIHNfdGltZV90 IG5vdykKICAgICAgKiBvbiBlaXRoZXIgc2lkZSBtYXkgYmUgZW1wdHkpLgogICAgICAqLwogCi0g ICAgLyogTG9ja2luZzoKLSAgICAgKiAtIHBjcHUgc2NoZWR1bGUgbG9jayBzaG91bGQgYmUgYWxy ZWFkeSBsb2NrZWQKLSAgICAgKi8KKyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQocGVyX2NwdShz Y2hlZHVsZV9kYXRhLCBjcHUpLnNjaGVkdWxlX2xvY2spKTsKICAgICBzdC5scnFkID0gUlFEKG9w cywgY3B1KTsKIAogICAgIF9fdXBkYXRlX3J1bnFfbG9hZChvcHMsIHN0LmxycWQsIDAsIG5vdyk7 CiAKIHJldHJ5OgotICAgIGlmICggIXNwaW5fdHJ5bG9jaygmcHJ2LT5sb2NrKSApCisgICAgaWYg KCAhcmVhZF90cnlsb2NrKCZwcnYtPmxvY2spICkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc3Qu bG9hZF9kZWx0YSA9IDA7CkBAIC0xNjg1LDggKzE3MDUsOCBAQCByZXRyeToKICAgICAgICAgc3Bp bl91bmxvY2soJnN0Lm9ycWQtPmxvY2spOwogICAgIH0KIAotICAgIC8qIE1pbmltaXplIGhvbGRp bmcgdGhlIGJpZyBsb2NrICovCi0gICAgc3Bpbl91bmxvY2soJnBydi0+bG9jayk7CisgICAgLyog TWluaW1pemUgaG9sZGluZyB0aGUgcHJpdmF0ZSBzY2hlZHVsZXIgbG9jay4gKi8KKyAgICByZWFk X3VubG9jaygmcHJ2LT5sb2NrKTsKICAgICBpZiAoIG1heF9kZWx0YV9ycWkgPT0gLTEgKQogICAg ICAgICBnb3RvIG91dDsKIApAQCAtMTg1NCwxNCArMTg3NCwxOSBAQCBjc2NoZWQyX2RvbV9jbnRs KAogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgaW50IHJjID0gMDsKIAotICAgIC8qIE11 c3QgaG9sZCBjc2NoZWQyX3ByaXYgbG9jayB0byByZWFkIGFuZCB1cGRhdGUgc2RvbSwKLSAgICAg KiBydW5xIGxvY2sgdG8gdXBkYXRlIGNzdmNzLiAqLwotICAgIHNwaW5fbG9ja19pcnFzYXZlKCZw cnYtPmxvY2ssIGZsYWdzKTsKLQorICAgIC8qCisgICAgICogTG9ja2luZzoKKyAgICAgKiAgLSB3 ZSBtdXN0IHRha2UgdGhlIHByaXZhdGUgbG9jayBmb3IgYWNjZXNzaW5nIHRoZSB3ZWlnaHRzIG9m IHRoZQorICAgICAqICAgIHZjcHVzIG9mIGQsCisgICAgICogIC0gaW4gdGhlIHB1dGluZm8gY2Fz ZSwgd2UgYWxzbyBuZWVkIHRoZSBydW5xdWV1ZSBsb2NrKHMpLCBmb3IKKyAgICAgKiAgICB1cGRh dGluZyB0aGUgbWF4IHdhaWdodCBvZiB0aGUgcnVucXVldWUocykuCisgICAgICovCiAgICAgc3dp dGNoICggb3AtPmNtZCApCiAgICAgewogICAgIGNhc2UgWEVOX0RPTUNUTF9TQ0hFRE9QX2dldGlu Zm86CisgICAgICAgIHJlYWRfbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdzKTsKICAgICAg ICAgb3AtPnUuY3JlZGl0Mi53ZWlnaHQgPSBzZG9tLT53ZWlnaHQ7CisgICAgICAgIHJlYWRfdW5s b2NrX2lycXJlc3RvcmUoJnBydi0+bG9jaywgZmxhZ3MpOwogICAgICAgICBicmVhazsKICAgICBj YXNlIFhFTl9ET01DVExfU0NIRURPUF9wdXRpbmZvOgogICAgICAgICBpZiAoIG9wLT51LmNyZWRp dDIud2VpZ2h0ICE9IDAgKQpAQCAtMTg2OSw2ICsxODk0LDggQEAgY3NjaGVkMl9kb21fY250bCgK ICAgICAgICAgICAgIHN0cnVjdCB2Y3B1ICp2OwogICAgICAgICAgICAgaW50IG9sZF93ZWlnaHQ7 CiAKKyAgICAgICAgICAgIHdyaXRlX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7CisK ICAgICAgICAgICAgIG9sZF93ZWlnaHQgPSBzZG9tLT53ZWlnaHQ7CiAKICAgICAgICAgICAgIHNk b20tPndlaWdodCA9IG9wLT51LmNyZWRpdDIud2VpZ2h0OwpAQCAtMTg3NywxMSArMTkwNCw2IEBA IGNzY2hlZDJfZG9tX2NudGwoCiAgICAgICAgICAgICBmb3JfZWFjaF92Y3B1ICggZCwgdiApCiAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgc3RydWN0IGNzY2hlZDJfdmNwdSAqc3ZjID0g Q1NDSEVEMl9WQ1BVKHYpOwotCi0gICAgICAgICAgICAgICAgLyogTkI6IExvY2tpbmcgb3JkZXIg aXMgaW1wb3J0YW50IGhlcmUuICBCZWNhdXNlIHdlIGdyYWIgdGhpcyBsb2NrIGhlcmUsIHdlCi0g ICAgICAgICAgICAgICAgICogbXVzdCBuZXZlciBsb2NrIGNzY2hlZDJfcHJpdi5sb2NrIGlmIHdl J3JlIGhvbGRpbmcgYSBydW5xdWV1ZSBsb2NrLgotICAgICAgICAgICAgICAgICAqIEFsc28sIGNh bGxpbmcgdmNwdV9zY2hlZHVsZV9sb2NrKCkgaXMgZW5vdWdoLCBzaW5jZSBJUlFzIGhhdmUgYWxy ZWFkeQotICAgICAgICAgICAgICAgICAqIGJlZW4gZGlzYWJsZWQuICovCiAgICAgICAgICAgICAg ICAgc3BpbmxvY2tfdCAqbG9jayA9IHZjcHVfc2NoZWR1bGVfbG9jayhzdmMtPnZjcHUpOwogCiAg ICAgICAgICAgICAgICAgQVNTRVJUKHN2Yy0+cnFkID09IFJRRChvcHMsIHN2Yy0+dmNwdS0+cHJv Y2Vzc29yKSk7CkBAIC0xODkxLDYgKzE5MTMsOCBAQCBjc2NoZWQyX2RvbV9jbnRsKAogCiAgICAg ICAgICAgICAgICAgdmNwdV9zY2hlZHVsZV91bmxvY2sobG9jaywgc3ZjLT52Y3B1KTsKICAgICAg ICAgICAgIH0KKworICAgICAgICAgICAgd3JpdGVfdW5sb2NrX2lycXJlc3RvcmUoJnBydi0+bG9j aywgZmxhZ3MpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CkBAIC0x ODk4LDcgKzE5MjIsNiBAQCBjc2NoZWQyX2RvbV9jbnRsKAogICAgICAgICBicmVhazsKICAgICB9 CiAKLSAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsKIAogICAg IHJldHVybiByYzsKIH0KQEAgLTE5MDYsNiArMTkyOSw3IEBAIGNzY2hlZDJfZG9tX2NudGwoCiBz dGF0aWMgdm9pZCAqCiBjc2NoZWQyX2FsbG9jX2RvbWRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxl ciAqb3BzLCBzdHJ1Y3QgZG9tYWluICpkb20pCiB7CisgICAgc3RydWN0IGNzY2hlZDJfcHJpdmF0 ZSAqcHJ2ID0gQ1NDSEVEMl9QUklWKG9wcyk7CiAgICAgc3RydWN0IGNzY2hlZDJfZG9tICpzZG9t OwogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKQEAgLTE5MTksMTEgKzE5NDMsMTEgQEAgY3Nj aGVkMl9hbGxvY19kb21kYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IGRv bWFpbiAqZG9tKQogICAgIHNkb20tPndlaWdodCA9IENTQ0hFRDJfREVGQVVMVF9XRUlHSFQ7CiAg ICAgc2RvbS0+bnJfdmNwdXMgPSAwOwogCi0gICAgc3Bpbl9sb2NrX2lycXNhdmUoJkNTQ0hFRDJf UFJJVihvcHMpLT5sb2NrLCBmbGFncyk7CisgICAgd3JpdGVfbG9ja19pcnFzYXZlKCZwcnYtPmxv Y2ssIGZsYWdzKTsKIAogICAgIGxpc3RfYWRkX3RhaWwoJnNkb20tPnNkb21fZWxlbSwgJkNTQ0hF RDJfUFJJVihvcHMpLT5zZG9tKTsKIAotICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJkNTQ0hF RDJfUFJJVihvcHMpLT5sb2NrLCBmbGFncyk7CisgICAgd3JpdGVfdW5sb2NrX2lycXJlc3RvcmUo JnBydi0+bG9jaywgZmxhZ3MpOwogCiAgICAgcmV0dXJuICh2b2lkICopc2RvbTsKIH0KQEAgLTE5 NTAsMTIgKzE5NzQsMTMgQEAgY3NjaGVkMl9mcmVlX2RvbWRhdGEoY29uc3Qgc3RydWN0IHNjaGVk dWxlciAqb3BzLCB2b2lkICpkYXRhKQogewogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAg c3RydWN0IGNzY2hlZDJfZG9tICpzZG9tID0gZGF0YTsKKyAgICBzdHJ1Y3QgY3NjaGVkMl9wcml2 YXRlICpwcnYgPSBDU0NIRUQyX1BSSVYob3BzKTsKIAotICAgIHNwaW5fbG9ja19pcnFzYXZlKCZD U0NIRUQyX1BSSVYob3BzKS0+bG9jaywgZmxhZ3MpOworICAgIHdyaXRlX2xvY2tfaXJxc2F2ZSgm cHJ2LT5sb2NrLCBmbGFncyk7CiAKICAgICBsaXN0X2RlbF9pbml0KCZzZG9tLT5zZG9tX2VsZW0p OwogCi0gICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmQ1NDSEVEMl9QUklWKG9wcyktPmxvY2ss IGZsYWdzKTsKKyAgICB3cml0ZV91bmxvY2tfaXJxcmVzdG9yZSgmcHJ2LT5sb2NrLCBmbGFncyk7 CiAKICAgICB4ZnJlZShkYXRhKTsKIH0KQEAgLTIxMDksNyArMjEzNCw3IEBAIGNzY2hlZDJfc2No ZWR1bGUoCiAgICAgcnFkID0gUlFEKG9wcywgY3B1KTsKICAgICBCVUdfT04oIWNwdW1hc2tfdGVz dF9jcHUoY3B1LCAmcnFkLT5hY3RpdmUpKTsKIAotICAgIC8qIFByb3RlY3RlZCBieSBydW5xdWV1 ZSBsb2NrICovICAgICAgICAKKyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQocGVyX2NwdShzY2hl ZHVsZV9kYXRhLCBjcHUpLnNjaGVkdWxlX2xvY2spKTsKIAogICAgIEJVR19PTighaXNfaWRsZV92 Y3B1KHNjdXJyLT52Y3B1KSAmJiBzY3Vyci0+cnFkICE9IHJxZCk7CiAKQEAgLTIyNDgsMTIgKzIy NzMsMTIgQEAgY3NjaGVkMl9kdW1wX3BjcHUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBp bnQgY3B1KQogCiAgICAgLyoKICAgICAgKiBXZSBuZWVkIGJvdGggbG9ja3M6Ci0gICAgICogLSBj c2NoZWQyX2R1bXBfdmNwdSgpIHdhbnRzIHRvIGFjY2VzcyBkb21haW5zJyBzY2hlZHVsaW5nCi0g ICAgICogICBwYXJhbWV0ZXJzLCB3aGljaCBhcmUgcHJvdGVjdGVkIGJ5IHRoZSBwcml2YXRlIHNj aGVkdWxlciBsb2NrOworICAgICAqIC0gY3NjaGVkMl9kdW1wX3ZjcHUoKSB3YW50cyB0byBhY2Nl c3MgZG9tYWlucycgd2VpZ2h0cywKKyAgICAgKiAgIHdoaWNoIGFyZSBwcm90ZWN0ZWQgYnkgdGhl IHByaXZhdGUgc2NoZWR1bGVyIGxvY2s7CiAgICAgICogLSB3ZSBzY2FuIHRocm91Z2ggdGhlIHJ1 bnF1ZXVlLCBzbyB3ZSBuZWVkIHRoZSBwcm9wZXIgcnVucXVldWUKICAgICAgKiAgIGxvY2sgKHRo ZSBvbmUgb2YgdGhlIHJ1bnF1ZXVlIHRoaXMgY3B1IGlzIGFzc29jaWF0ZWQgdG8pLgogICAgICAq LwotICAgIHNwaW5fbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdzKTsKKyAgICByZWFkX2xv Y2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7CiAgICAgbG9jayA9IHBlcl9jcHUoc2NoZWR1 bGVfZGF0YSwgY3B1KS5zY2hlZHVsZV9sb2NrOwogICAgIHNwaW5fbG9jayhsb2NrKTsKIApAQCAt MjI4NCw3ICsyMzA5LDcgQEAgY3NjaGVkMl9kdW1wX3BjcHUoY29uc3Qgc3RydWN0IHNjaGVkdWxl ciAqb3BzLCBpbnQgY3B1KQogICAgIH0KIAogICAgIHNwaW5fdW5sb2NrKGxvY2spOwotICAgIHNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJnBydi0+bG9jaywgZmxhZ3MpOworICAgIHJlYWRfdW5sb2Nr X2lycXJlc3RvcmUoJnBydi0+bG9jaywgZmxhZ3MpOwogI3VuZGVmIGNwdXN0cgogfQogCkBAIC0y Mjk3LDkgKzIzMjIsMTEgQEAgY3NjaGVkMl9kdW1wKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9w cykKICAgICBpbnQgaSwgbG9vcDsKICNkZWZpbmUgY3B1c3RyIGtleWhhbmRsZXJfc2NyYXRjaAog Ci0gICAgLyogV2UgbmVlZCB0aGUgcHJpdmF0ZSBsb2NrIGFzIHdlIGFjY2VzcyBnbG9iYWwgc2No ZWR1bGVyIGRhdGEKLSAgICAgKiBhbmQgKGJlbG93KSB0aGUgbGlzdCBvZiBhY3RpdmUgZG9tYWlu cy4gKi8KLSAgICBzcGluX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7CisgICAgLyoK KyAgICAgKiBXZSBuZWVkIHRoZSBwcml2YXRlIHNjaGVkdWxlciBsb2NrIGFzIHdlIGFjY2VzcyBn bG9iYWwKKyAgICAgKiBzY2hlZHVsZXIgZGF0YSBhbmQgKGJlbG93KSB0aGUgbGlzdCBvZiBhY3Rp dmUgZG9tYWlucy4KKyAgICAgKi8KKyAgICByZWFkX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBm bGFncyk7CiAKICAgICBwcmludGsoIkFjdGl2ZSBxdWV1ZXM6ICVkXG4iCiAgICAgICAgICAgICJc dGRlZmF1bHQtd2VpZ2h0ICAgICA9ICVkXG4iLApAQCAtMjM2MCw3ICsyMzg3LDcgQEAgY3NjaGVk Ml9kdW1wKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcykKICAgICAgICAgfQogICAgIH0KIAot ICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBydi0+bG9jaywgZmxhZ3MpOworICAgIHJlYWRf dW5sb2NrX2lycXJlc3RvcmUoJnBydi0+bG9jaywgZmxhZ3MpOwogI3VuZGVmIGNwdXN0cgogfQog CkBAIC0yNDYyLDcgKzI0ODksNyBAQCBpbml0X3BkYXRhKHN0cnVjdCBjc2NoZWQyX3ByaXZhdGUg KnBydiwgdW5zaWduZWQgaW50IGNwdSkKICAgICB1bnNpZ25lZCBycWk7CiAgICAgc3RydWN0IGNz Y2hlZDJfcnVucXVldWVfZGF0YSAqcnFkOwogCi0gICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZw cnYtPmxvY2spKTsKKyAgICBBU1NFUlQocndfaXNfd3JpdGVfbG9ja2VkKCZwcnYtPmxvY2spKTsK ICAgICBBU1NFUlQoIWNwdW1hc2tfdGVzdF9jcHUoY3B1LCAmcHJ2LT5pbml0aWFsaXplZCkpOwog CiAgICAgLyogRmlndXJlIG91dCB3aGljaCBydW5xdWV1ZSB0byBwdXQgaXQgaW4gKi8KQEAgLTI1 MDEsNyArMjUyOCw3IEBAIGNzY2hlZDJfaW5pdF9wZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVy ICpvcHMsIHZvaWQgKnBkYXRhLCBpbnQgY3B1KQogICAgICAqLwogICAgIEFTU0VSVCghcGRhdGEp OwogCi0gICAgc3Bpbl9sb2NrX2lycXNhdmUoJnBydi0+bG9jaywgZmxhZ3MpOworICAgIHdyaXRl X2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7CiAgICAgb2xkX2xvY2sgPSBwY3B1X3Nj aGVkdWxlX2xvY2soY3B1KTsKIAogICAgIHJxaSA9IGluaXRfcGRhdGEocHJ2LCBjcHUpOwpAQCAt MjUxMCw3ICsyNTM3LDcgQEAgY3NjaGVkMl9pbml0X3BkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgdm9pZCAqcGRhdGEsIGludCBjcHUpCiAKICAgICAvKiBfTm90XyBwY3B1X3NjaGVk dWxlX3VubG9jaygpOiBzY2hlZHVsZV9sb2NrIG1heSBoYXZlIGNoYW5nZWQhICovCiAgICAgc3Bp bl91bmxvY2sob2xkX2xvY2spOwotICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBydi0+bG9j aywgZmxhZ3MpOworICAgIHdyaXRlX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdz KTsKIH0KIAogLyogQ2hhbmdlIHRoZSBzY2hlZHVsZXIgb2YgY3B1IHRvIHVzIChDcmVkaXQyKS4g Ki8KQEAgLTI1MzMsNyArMjU2MCw3IEBAIGNzY2hlZDJfc3dpdGNoX3NjaGVkKHN0cnVjdCBzY2hl ZHVsZXIgKm5ld19vcHMsIHVuc2lnbmVkIGludCBjcHUsCiAgICAgICogY3B1KSBpcyB3aGF0IGlz IG5lY2Vzc2FyeSB0byBwcmV2ZW50IHJhY2VzLgogICAgICAqLwogICAgIEFTU0VSVCghbG9jYWxf aXJxX2lzX2VuYWJsZWQoKSk7Ci0gICAgc3Bpbl9sb2NrKCZwcnYtPmxvY2spOworICAgIHdyaXRl X2xvY2soJnBydi0+bG9jayk7CiAKICAgICBpZGxlX3ZjcHVbY3B1XS0+c2NoZWRfcHJpdiA9IHZk YXRhOwogCkBAIC0yNTU4LDcgKzI1ODUsNyBAQCBjc2NoZWQyX3N3aXRjaF9zY2hlZChzdHJ1Y3Qg c2NoZWR1bGVyICpuZXdfb3BzLCB1bnNpZ25lZCBpbnQgY3B1LAogICAgIHNtcF9tYigpOwogICAg IHBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1KS5zY2hlZHVsZV9sb2NrID0gJnBydi0+cnFkW3Jx aV0ubG9jazsKIAotICAgIHNwaW5fdW5sb2NrKCZwcnYtPmxvY2spOworICAgIHdyaXRlX3VubG9j aygmcHJ2LT5sb2NrKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTI1NjksNyArMjU5Niw3IEBAIGNz Y2hlZDJfZGVpbml0X3BkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgdm9pZCAqcGNw dSwgaW50IGNwdSkKICAgICBzdHJ1Y3QgY3NjaGVkMl9ydW5xdWV1ZV9kYXRhICpycWQ7CiAgICAg aW50IHJxaTsKIAotICAgIHNwaW5fbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdzKTsKKyAg ICB3cml0ZV9sb2NrX2lycXNhdmUoJnBydi0+bG9jaywgZmxhZ3MpOwogCiAgICAgLyoKICAgICAg KiBhbGxvY19wZGF0YSBpcyBub3QgaW1wbGVtZW50ZWQsIHNvIHBjcHUgbXVzdCBiZSBOVUxMLiBP biB0aGUgb3RoZXIKQEAgLTI2MDAsNyArMjYyNyw3IEBAIGNzY2hlZDJfZGVpbml0X3BkYXRhKGNv bnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgdm9pZCAqcGNwdSwgaW50IGNwdSkKIAogICAgIF9f Y3B1bWFza19jbGVhcl9jcHUoY3B1LCAmcHJ2LT5pbml0aWFsaXplZCk7CiAKLSAgICBzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsKKyAgICB3cml0ZV91bmxvY2tfaXJx cmVzdG9yZSgmcHJ2LT5sb2NrLCBmbGFncyk7CiAKICAgICByZXR1cm47CiB9CkBAIC0yNjUxLDcg KzI2NzgsNyBAQCBjc2NoZWQyX2luaXQoc3RydWN0IHNjaGVkdWxlciAqb3BzKQogICAgICAgICBy ZXR1cm4gLUVOT01FTTsKICAgICBvcHMtPnNjaGVkX2RhdGEgPSBwcnY7CiAKLSAgICBzcGluX2xv Y2tfaW5pdCgmcHJ2LT5sb2NrKTsKKyAgICByd2xvY2tfaW5pdCgmcHJ2LT5sb2NrKTsKICAgICBJ TklUX0xJU1RfSEVBRCgmcHJ2LT5zZG9tKTsKIAogICAgIC8qIEJ1dCB1bi1pbml0aWFsaXplIGFs bCBydW5xdWV1ZXMgKi8KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0 dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK