From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: [PATCH 17/19] xen: credit2: the private scheduler lock can be an rwlock. Date: Sat, 18 Jun 2016 01:13:21 +0200 Message-ID: <146620520175.29766.18241925321894180259.stgit@Solace.fritz.box> References: <146620492155.29766.10321123657058307698.stgit@Solace.fritz.box> 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 1bE2x4-0004E6-UA for xen-devel@lists.xenproject.org; Fri, 17 Jun 2016 23:13:27 +0000 Received: by mail-wm0-f68.google.com with SMTP id 187so1095259wmz.1 for ; Fri, 17 Jun 2016 16:13:25 -0700 (PDT) In-Reply-To: <146620492155.29766.10321123657058307698.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+Ci0tLQpDYzogR2VvcmdlIER1 bmxhcCA8Z2VvcmdlLmR1bmFscEBjaXRyaXguY29tPgpDYzogQW5zaHVsIE1ha2thciA8YW5zaHVs Lm1ha2thckBjaXRyaXguY29tPgpDYzogRGF2aWQgVnJhYmVsIDxkYXZpZC52cmFiZWxAY2l0cml4 LmNvbT4KLS0tCiB4ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYyB8ICAxMzMgKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4MCBpbnNl cnRpb25zKCspLCA1MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3NjaGVk X2NyZWRpdDIuYyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jCmluZGV4IDNmZGM5MWMuLjkz OTQzZmEgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jCisrKyBiL3hlbi9j b21tb24vc2NoZWRfY3JlZGl0Mi5jCkBAIC04NSwxNyArODUsMzcgQEAKIAogLyoKICAqIExvY2tp bmc6Ci0gKiAtIFNjaGVkdWxlLWxvY2sgaXMgcGVyLXJ1bnF1ZXVlCi0gKiAgKyBQcm90ZWN0cyBy dW5xdWV1ZSBkYXRhLCBydW5xdWV1ZSBpbnNlcnRpb24sICZjCi0gKiAgKyBBbHNvIHByb3RlY3Rz IHVwZGF0ZXMgdG8gcHJpdmF0ZSBzY2hlZCB2Y3B1IHN0cnVjdHVyZQotICogICsgTXVzdCBiZSBn cmFiYmVkIHVzaW5nIHZjcHVfc2NoZWR1bGVfbG9ja19pcnEoKSB0byBtYWtlIHN1cmUgdmNwdS0+ cHJvY2Vzc3IKLSAqICAgIGRvZXNuJ3QgY2hhbmdlIHVuZGVyIG91ciBmZWV0LgotICogLSBQcml2 YXRlIGRhdGEgbG9jawotICogICsgUHJvdGVjdHMgYWNjZXNzIHRvIGdsb2JhbCBkb21haW4gbGlz dAotICogICsgQWxsIG90aGVyIHByaXZhdGUgZGF0YSBpcyB3cml0dGVuIGF0IGluaXQgYW5kIG9u bHkgcmVhZCBhZnRlcndhcmRzLgorICoKKyAqIC0gcnVucXVldWUgbG9jaworICogICsgaXQgaXMg cGVyLXJ1bnF1ZXVlLCBzbzoKKyAqICAgKiBjcHVzIGluIGEgcnVucXVldWUgdGFrZSB0aGUgcnVu cXVldWUgbG9jaywgd2hlbiB1c2luZworICogICAgIHBjcHVfc2NoZWR1bGVfbG9jaygpIC8gdmNw dV9zY2hlZHVsZV9sb2NrKCkgKGFuZCBmcmllbmRzKSwKKyAqICAgKiBhIGNwdSBtYXkgKHRyeSB0 bykgdGFrZSBhICJyZW1vdGUiIHJ1bnF1ZXVlIGxvY2ssIGUuZy4sIGZvcgorICogICAgIGxvYWQg YmFsYW5jaW5nOworICogICsgc2VyaWFsaXplcyBydW5xdWV1ZSBvcGVyYXRpb25zIChyZW1vdmlu ZyBhbmQgaW5zZXJ0aW5nIHZjcHVzKTsKKyAqICArIHByb3RlY3RzIHJ1bnF1ZXVlLXdpZGUgZGF0 YSBpbiBjc2NoZWQyX3J1bnF1ZXVlX2RhdGE7CisgKiAgKyBwcm90ZWN0cyB2Y3B1IHBhcmFtZXRl cnMgaW4gY3NjaGVkMl92Y3B1IGZvciB0aGUgdmNwdSBpbiB0aGUKKyAqICAgIHJ1bnF1ZXVlLgor ICoKKyAqIC0gUHJpdmF0ZSBzY2hlZHVsZXIgbG9jaworICogICsgcHJvdGVjdHMgc2NoZWR1bGVy LXdpZGUgZGF0YSBpbiBjc2NoZWQyX3ByaXZhdGUsIHN1Y2ggYXM6CisgKiAgICogdGhlIGxpc3Qg b2YgZG9tYWlucyBhY3RpdmUgaW4gdGhpcyBzY2hlZHVsZXIsCisgKiAgICogd2hhdCBjcHVzIGFu ZCB3aGF0IHJ1bnF1ZXVlcyBhcmUgYWN0aXZlIGFuZCBpbiB3aGF0CisgKiAgICAgcnVucXVldWUg ZWFjaCBjcHUgaXM7CisgKiAgKyBzZXJpYWxpemVzIHRoZSBvcGVyYXRpb24gb2YgY2hhbmdpbmcg dGhlIHdlaWdodHMgb2YgZG9tYWluczsKKyAqCisgKiAtIFR5cGU6CisgKiAgKyBydW5xdWV1ZSBs b2NrcyBhcmUgJ3JlZ3VsYXInIHNwaW5sb2NrczsKKyAqICArIHRoZSBwcml2YXRlIHNjaGVkdWxl ciBsb2NrIGNhbiBiZSBhbiByd2xvY2suIEluIGZhY3QsIGRhdGEKKyAqICAgIGl0IHByb3RlY3Rz IGlzIG1vZGlmaWVkIG9ubHkgZHVyaW5nIGluaXRpYWxpemF0aW9uLCBjcHVwb29sCisgKiAgICBt YW5pcHVsYXRpb24gYW5kIHdoZW4gY2hhbmdpbmcgd2VpZ2h0cywgYW5kIHJlYWQgaW4gYWxsCisg KiAgICBvdGhlciBjYXNlcyAoZS5nLiwgZHVyaW5nIGxvYWQgYmFsYW5jaW5nKS4KKyAqCiAgKiBP cmRlcmluZzoKLSAqIC0gV2UgZ3JhYiBwcml2YXRlLT5zY2hlZHVsZSB3aGVuIHVwZGF0aW5nIGRv bWFpbiB3ZWlnaHQ7IHNvIHdlCi0gKiAgbXVzdCBuZXZlciBncmFiIHByaXZhdGUgaWYgYSBzY2hl ZHVsZSBsb2NrIGlzIGhlbGQuCisgKiAgKyB0eWxvY2sgbXVzdCBiZSB1c2VkIHdoZW4gd2FudGlu ZyB0byB0YWtlIGEgcnVucXVldWUgbG9jaywKKyAqICAgIGlmIHdlIGFscmVhZHkgaG9sZCBhbm90 aGVyIG9uZTsKKyAqICArIGlmIHRha2luZyBib3RoIGEgcnVucXVldWUgbG9jayBhbmQgdGhlIHBy aXZhdGUgc2NoZWR1bGVyCisgKiAgICBsb2NrIGlzLCB0aGUgbGF0dGVyIG11c3QgYWx3YXlzIGJl IHRha2VuIGZvciBmaXJzdC4KICAqLwogCiAvKgpAQCAtMzQyLDcgKzM2Miw3IEBAIHN0cnVjdCBj c2NoZWQyX3J1bnF1ZXVlX2RhdGEgewogICogU3lzdGVtLXdpZGUgcHJpdmF0ZSBkYXRhCiAgKi8K IHN0cnVjdCBjc2NoZWQyX3ByaXZhdGUgewotICAgIHNwaW5sb2NrX3QgbG9jazsKKyAgICByd2xv Y2tfdCBsb2NrOwogICAgIGNwdW1hc2tfdCBpbml0aWFsaXplZDsgLyogQ1BVIGlzIGluaXRpYWxp emVkIGZvciB0aGlzIHBvb2wgKi8KICAgICAKICAgICBzdHJ1Y3QgbGlzdF9oZWFkIHNkb207IC8q IFVzZWQgbW9zdGx5IGZvciBkdW1wIGtleWhhbmRsZXIuICovCkBAIC0xMzAwLDEzICsxMzIwLDE0 IEBAIHN0YXRpYyB2b2lkCiBjc2NoZWQyX3ZjcHVfd2FrZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVy ICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKIHsKICAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICogY29u c3Qgc3ZjID0gQ1NDSEVEMl9WQ1BVKHZjKTsKKyAgICB1bnNpZ25lZCBpbnQgY3B1ID0gdmMtPnBy b2Nlc3NvcjsKICAgICBzX3RpbWVfdCBub3c7CiAKLSAgICAvKiBTY2hlZHVsZSBsb2NrIHNob3Vs ZCBiZSBoZWxkIGF0IHRoaXMgcG9pbnQuICovCisgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKHBl cl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1KS5zY2hlZHVsZV9sb2NrKSk7CiAKICAgICBBU1NFUlQo IWlzX2lkbGVfdmNwdSh2YykpOwogCi0gICAgaWYgKCB1bmxpa2VseShjdXJyX29uX2NwdSh2Yy0+ cHJvY2Vzc29yKSA9PSB2YykgKQorICAgIGlmICggdW5saWtlbHkoY3Vycl9vbl9jcHUoY3B1KSA9 PSB2YykgKQogICAgIHsKICAgICAgICAgU0NIRURfU1RBVF9DUkFOSyh2Y3B1X3dha2VfcnVubmlu Zyk7CiAgICAgICAgIGdvdG8gb3V0OwpAQCAtMTM5Nyw3ICsxNDE4LDcgQEAgY3NjaGVkMl9jcHVf cGljayhjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKICAgICBB U1NFUlQoIWNwdW1hc2tfZW1wdHkoJnBydi0+YWN0aXZlX3F1ZXVlcykpOwogCiAgICAgLyogTG9j a2luZzoKLSAgICAgKiAtIHZjLT5wcm9jZXNzb3IgaXMgYWxyZWFkeSBsb2NrZWQKKyAgICAgKiAt IFJ1bnF1ZXVlIGxvY2sgb2YgdmMtPnByb2Nlc3NvciBpcyBhbHJlYWR5IGxvY2tlZAogICAgICAq IC0gTmVlZCB0byBncmFiIHBydiBsb2NrIHRvIG1ha2Ugc3VyZSBhY3RpdmUgcnVucXVldWVzIGRv bid0CiAgICAgICogICBjaGFuZ2UKICAgICAgKiAtIE5lZWQgdG8gZ3JhYiBsb2NrcyBmb3Igb3Ro ZXIgcnVucXVldWVzIHdoaWxlIGNoZWNraW5nCkBAIC0xNDEwLDggKzE0MzEsOSBAQCBjc2NoZWQy X2NwdV9waWNrKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjKQog ICAgICAqIGp1c3QgZ3JhYiB0aGUgcHJ2IGxvY2suICBJbnN0ZWFkLCB3ZSdsbCBoYXZlIHRvIHRy eWxvY2ssIGFuZAogICAgICAqIGRvIHNvbWV0aGluZyBlbHNlIHJlYXNvbmFibGUgaWYgd2UgZmFp bC4KICAgICAgKi8KKyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQocGVyX2NwdShzY2hlZHVsZV9k YXRhLCB2Yy0+cHJvY2Vzc29yKS5zY2hlZHVsZV9sb2NrKSk7CiAKLSAgICBpZiAoICFzcGluX3Ry eWxvY2soJnBydi0+bG9jaykgKQorICAgIGlmICggIXJlYWRfdHJ5bG9jaygmcHJ2LT5sb2NrKSAp CiAgICAgewogICAgICAgICAvKiBXZSBtYXkgYmUgaGVyZSBiZWNhdXNlIHNvbWVvbiByZXF1ZXN0 ZWQgdXMgdG8gbWlncmF0ZSAqLwogICAgICAgICBfX2NsZWFyX2JpdChfX0NTRkxBR19ydW5xX21p Z3JhdGVfcmVxdWVzdCwgJnN2Yy0+ZmxhZ3MpOwpAQCAtMTQ5Myw3ICsxNTE1LDcgQEAgY3NjaGVk Ml9jcHVfcGljayhjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykK ICAgICB9CiAKIG91dF91cDoKLSAgICBzcGluX3VubG9jaygmcHJ2LT5sb2NrKTsKKyAgICByZWFk X3VubG9jaygmcHJ2LT5sb2NrKTsKIAogICAgIGlmICggdW5saWtlbHkodGJfaW5pdF9kb25lKSAp CiAgICAgewpAQCAtMTY0NywxNSArMTY2OSwxMyBAQCBzdGF0aWMgdm9pZCBiYWxhbmNlX2xvYWQo Y29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBpbnQgY3B1LCBzX3RpbWVfdCBub3cpCiAgICAg ICogb24gZWl0aGVyIHNpZGUgbWF5IGJlIGVtcHR5KS4KICAgICAgKi8KIAotICAgIC8qIExvY2tp bmc6Ci0gICAgICogLSBwY3B1IHNjaGVkdWxlIGxvY2sgc2hvdWxkIGJlIGFscmVhZHkgbG9ja2Vk Ci0gICAgICovCisgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKHBlcl9jcHUoc2NoZWR1bGVfZGF0 YSwgY3B1KS5zY2hlZHVsZV9sb2NrKSk7CiAgICAgc3QubHJxZCA9IFJRRChvcHMsIGNwdSk7CiAK ICAgICBfX3VwZGF0ZV9ydW5xX2xvYWQob3BzLCBzdC5scnFkLCAwLCBub3cpOwogCiAgcmV0cnk6 Ci0gICAgaWYgKCAhc3Bpbl90cnlsb2NrKCZwcnYtPmxvY2spICkKKyAgICBpZiAoICFyZWFkX3Ry eWxvY2soJnBydi0+bG9jaykgKQogICAgICAgICByZXR1cm47CiAKICAgICBzdC5sb2FkX2RlbHRh ID0gMDsKQEAgLTE2ODYsOCArMTcwNiw4IEBAIHN0YXRpYyB2b2lkIGJhbGFuY2VfbG9hZChjb25z dCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGludCBjcHUsIHNfdGltZV90IG5vdykKICAgICAgICAg c3Bpbl91bmxvY2soJnN0Lm9ycWQtPmxvY2spOwogICAgIH0KIAotICAgIC8qIE1pbmltaXplIGhv bGRpbmcgdGhlIGJpZyBsb2NrICovCi0gICAgc3Bpbl91bmxvY2soJnBydi0+bG9jayk7CisgICAg LyogTWluaW1pemUgaG9sZGluZyB0aGUgcHJpdmF0ZSBzY2hlZHVsZXIgbG9jay4gKi8KKyAgICBy ZWFkX3VubG9jaygmcHJ2LT5sb2NrKTsKICAgICBpZiAoIG1heF9kZWx0YV9ycWkgPT0gLTEgKQog ICAgICAgICBnb3RvIG91dDsKIApAQCAtMTg1NSwxNCArMTg3NSwxOSBAQCBjc2NoZWQyX2RvbV9j bnRsKAogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgaW50IHJjID0gMDsKIAotICAgIC8q IE11c3QgaG9sZCBjc2NoZWQyX3ByaXYgbG9jayB0byByZWFkIGFuZCB1cGRhdGUgc2RvbSwKLSAg ICAgKiBydW5xIGxvY2sgdG8gdXBkYXRlIGNzdmNzLiAqLwotICAgIHNwaW5fbG9ja19pcnFzYXZl KCZwcnYtPmxvY2ssIGZsYWdzKTsKLQorICAgIC8qCisgICAgICogTG9ja2luZzoKKyAgICAgKiAg LSB3ZSBtdXN0IHRha2UgdGhlIHByaXZhdGUgbG9jayBmb3IgYWNjZXNzaW5nIHRoZSB3ZWlnaHRz IG9mIHRoZQorICAgICAqICAgIHZjcHVzIG9mIGQsCisgICAgICogIC0gaW4gdGhlIHB1dGluZm8g Y2FzZSwgd2UgYWxzbyBuZWVkIHRoZSBydW5xdWV1ZSBsb2NrKHMpLCBmb3IKKyAgICAgKiAgICB1 cGRhdGluZyB0aGUgbWF4IHdhaWdodCBvZiB0aGUgcnVucXVldWUocykuCisgICAgICovCiAgICAg c3dpdGNoICggb3AtPmNtZCApCiAgICAgewogICAgIGNhc2UgWEVOX0RPTUNUTF9TQ0hFRE9QX2dl dGluZm86CisgICAgICAgIHJlYWRfbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdzKTsKICAg ICAgICAgb3AtPnUuY3JlZGl0Mi53ZWlnaHQgPSBzZG9tLT53ZWlnaHQ7CisgICAgICAgIHJlYWRf dW5sb2NrX2lycXJlc3RvcmUoJnBydi0+bG9jaywgZmxhZ3MpOwogICAgICAgICBicmVhazsKICAg ICBjYXNlIFhFTl9ET01DVExfU0NIRURPUF9wdXRpbmZvOgogICAgICAgICBpZiAoIG9wLT51LmNy ZWRpdDIud2VpZ2h0ICE9IDAgKQpAQCAtMTg3MCw2ICsxODk1LDggQEAgY3NjaGVkMl9kb21fY250 bCgKICAgICAgICAgICAgIHN0cnVjdCB2Y3B1ICp2OwogICAgICAgICAgICAgaW50IG9sZF93ZWln aHQ7CiAKKyAgICAgICAgICAgIHdyaXRlX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7 CisKICAgICAgICAgICAgIG9sZF93ZWlnaHQgPSBzZG9tLT53ZWlnaHQ7CiAKICAgICAgICAgICAg IHNkb20tPndlaWdodCA9IG9wLT51LmNyZWRpdDIud2VpZ2h0OwpAQCAtMTg3OCwxMSArMTkwNSw2 IEBAIGNzY2hlZDJfZG9tX2NudGwoCiAgICAgICAgICAgICBmb3JfZWFjaF92Y3B1ICggZCwgdiAp CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgc3RydWN0IGNzY2hlZDJfdmNwdSAqc3Zj ID0gQ1NDSEVEMl9WQ1BVKHYpOwotCi0gICAgICAgICAgICAgICAgLyogTkI6IExvY2tpbmcgb3Jk ZXIgaXMgaW1wb3J0YW50IGhlcmUuICBCZWNhdXNlIHdlIGdyYWIgdGhpcyBsb2NrIGhlcmUsIHdl Ci0gICAgICAgICAgICAgICAgICogbXVzdCBuZXZlciBsb2NrIGNzY2hlZDJfcHJpdi5sb2NrIGlm IHdlJ3JlIGhvbGRpbmcgYSBydW5xdWV1ZSBsb2NrLgotICAgICAgICAgICAgICAgICAqIEFsc28s IGNhbGxpbmcgdmNwdV9zY2hlZHVsZV9sb2NrKCkgaXMgZW5vdWdoLCBzaW5jZSBJUlFzIGhhdmUg YWxyZWFkeQotICAgICAgICAgICAgICAgICAqIGJlZW4gZGlzYWJsZWQuICovCiAgICAgICAgICAg ICAgICAgc3BpbmxvY2tfdCAqbG9jayA9IHZjcHVfc2NoZWR1bGVfbG9jayhzdmMtPnZjcHUpOwog CiAgICAgICAgICAgICAgICAgQVNTRVJUKHN2Yy0+cnFkID09IFJRRChvcHMsIHN2Yy0+dmNwdS0+ cHJvY2Vzc29yKSk7CkBAIC0xODkyLDYgKzE5MTQsOCBAQCBjc2NoZWQyX2RvbV9jbnRsKAogCiAg ICAgICAgICAgICAgICAgdmNwdV9zY2hlZHVsZV91bmxvY2sobG9jaywgc3ZjLT52Y3B1KTsKICAg ICAgICAgICAgIH0KKworICAgICAgICAgICAgd3JpdGVfdW5sb2NrX2lycXJlc3RvcmUoJnBydi0+ bG9jaywgZmxhZ3MpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CkBA IC0xODk5LDcgKzE5MjMsNiBAQCBjc2NoZWQyX2RvbV9jbnRsKAogICAgICAgICBicmVhazsKICAg ICB9CiAKLSAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsKIAog ICAgIHJldHVybiByYzsKIH0KQEAgLTE5MDcsNiArMTkzMCw3IEBAIGNzY2hlZDJfZG9tX2NudGwo CiBzdGF0aWMgdm9pZCAqCiBjc2NoZWQyX2FsbG9jX2RvbWRhdGEoY29uc3Qgc3RydWN0IHNjaGVk dWxlciAqb3BzLCBzdHJ1Y3QgZG9tYWluICpkb20pCiB7CisgICAgc3RydWN0IGNzY2hlZDJfcHJp dmF0ZSAqcHJ2ID0gQ1NDSEVEMl9QUklWKG9wcyk7CiAgICAgc3RydWN0IGNzY2hlZDJfZG9tICpz ZG9tOwogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKQEAgLTE5MjAsMTEgKzE5NDQsMTEgQEAg Y3NjaGVkMl9hbGxvY19kb21kYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0 IGRvbWFpbiAqZG9tKQogICAgIHNkb20tPndlaWdodCA9IENTQ0hFRDJfREVGQVVMVF9XRUlHSFQ7 CiAgICAgc2RvbS0+bnJfdmNwdXMgPSAwOwogCi0gICAgc3Bpbl9sb2NrX2lycXNhdmUoJkNTQ0hF RDJfUFJJVihvcHMpLT5sb2NrLCBmbGFncyk7CisgICAgd3JpdGVfbG9ja19pcnFzYXZlKCZwcnYt PmxvY2ssIGZsYWdzKTsKIAogICAgIGxpc3RfYWRkX3RhaWwoJnNkb20tPnNkb21fZWxlbSwgJkNT Q0hFRDJfUFJJVihvcHMpLT5zZG9tKTsKIAotICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJkNT Q0hFRDJfUFJJVihvcHMpLT5sb2NrLCBmbGFncyk7CisgICAgd3JpdGVfdW5sb2NrX2lycXJlc3Rv cmUoJnBydi0+bG9jaywgZmxhZ3MpOwogCiAgICAgcmV0dXJuICh2b2lkICopc2RvbTsKIH0KQEAg LTE5NTEsMTIgKzE5NzUsMTMgQEAgY3NjaGVkMl9mcmVlX2RvbWRhdGEoY29uc3Qgc3RydWN0IHNj aGVkdWxlciAqb3BzLCB2b2lkICpkYXRhKQogewogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAg ICAgc3RydWN0IGNzY2hlZDJfZG9tICpzZG9tID0gZGF0YTsKKyAgICBzdHJ1Y3QgY3NjaGVkMl9w cml2YXRlICpwcnYgPSBDU0NIRUQyX1BSSVYob3BzKTsKIAotICAgIHNwaW5fbG9ja19pcnFzYXZl KCZDU0NIRUQyX1BSSVYob3BzKS0+bG9jaywgZmxhZ3MpOworICAgIHdyaXRlX2xvY2tfaXJxc2F2 ZSgmcHJ2LT5sb2NrLCBmbGFncyk7CiAKICAgICBsaXN0X2RlbF9pbml0KCZzZG9tLT5zZG9tX2Vs ZW0pOwogCi0gICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmQ1NDSEVEMl9QUklWKG9wcyktPmxv Y2ssIGZsYWdzKTsKKyAgICB3cml0ZV91bmxvY2tfaXJxcmVzdG9yZSgmcHJ2LT5sb2NrLCBmbGFn cyk7CiAKICAgICB4ZnJlZShkYXRhKTsKIH0KQEAgLTIxMTAsNyArMjEzNSw3IEBAIGNzY2hlZDJf c2NoZWR1bGUoCiAgICAgcnFkID0gUlFEKG9wcywgY3B1KTsKICAgICBCVUdfT04oIWNwdW1hc2tf dGVzdF9jcHUoY3B1LCAmcnFkLT5hY3RpdmUpKTsKIAotICAgIC8qIFByb3RlY3RlZCBieSBydW5x dWV1ZSBsb2NrICovICAgICAgICAKKyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQocGVyX2NwdShz Y2hlZHVsZV9kYXRhLCBjcHUpLnNjaGVkdWxlX2xvY2spKTsKIAogI2lmbmRlZiBOREVCVUcKICAg ICBpZiAoICFpc19pZGxlX3ZjcHUoc2N1cnItPnZjcHUpICYmIHNjdXJyLT5ycWQgIT0gcnFkKQpA QCAtMjI3NCwxMiArMjI5OSwxMiBAQCBjc2NoZWQyX2R1bXBfcGNwdShjb25zdCBzdHJ1Y3Qgc2No ZWR1bGVyICpvcHMsIGludCBjcHUpCiAKICAgICAvKgogICAgICAqIFdlIG5lZWQgYm90aCBsb2Nr czoKLSAgICAgKiAtIGNzY2hlZDJfZHVtcF92Y3B1KCkgd2FudHMgdG8gYWNjZXNzIGRvbWFpbnMn IHNjaGVkdWxpbmcKLSAgICAgKiAgIHBhcmFtZXRlcnMsIHdoaWNoIGFyZSBwcm90ZWN0ZWQgYnkg dGhlIHByaXZhdGUgc2NoZWR1bGVyIGxvY2s7CisgICAgICogLSBjc2NoZWQyX2R1bXBfdmNwdSgp IHdhbnRzIHRvIGFjY2VzcyBkb21haW5zJyB3ZWlnaHRzLAorICAgICAqICAgd2hpY2ggYXJlIHBy b3RlY3RlZCBieSB0aGUgcHJpdmF0ZSBzY2hlZHVsZXIgbG9jazsKICAgICAgKiAtIHdlIHNjYW4g dGhyb3VnaCB0aGUgcnVucXVldWUsIHNvIHdlIG5lZWQgdGhlIHByb3BlciBydW5xdWV1ZQogICAg ICAqICAgbG9jayAodGhlIG9uZSBvZiB0aGUgcnVucXVldWUgdGhpcyBjcHUgaXMgYXNzb2NpYXRl ZCB0bykuCiAgICAgICovCi0gICAgc3Bpbl9sb2NrX2lycXNhdmUoJnBydi0+bG9jaywgZmxhZ3Mp OworICAgIHJlYWRfbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdzKTsKICAgICBsb2NrID0g cGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpLnNjaGVkdWxlX2xvY2s7CiAgICAgc3Bpbl9sb2Nr KGxvY2spOwogCkBAIC0yMzEwLDcgKzIzMzUsNyBAQCBjc2NoZWQyX2R1bXBfcGNwdShjb25zdCBz dHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGludCBjcHUpCiAgICAgfQogCiAgICAgc3Bpbl91bmxvY2so bG9jayk7Ci0gICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJ2LT5sb2NrLCBmbGFncyk7Cisg ICAgcmVhZF91bmxvY2tfaXJxcmVzdG9yZSgmcHJ2LT5sb2NrLCBmbGFncyk7CiAjdW5kZWYgY3B1 c3RyCiB9CiAKQEAgLTIzMjMsOSArMjM0OCwxMSBAQCBjc2NoZWQyX2R1bXAoY29uc3Qgc3RydWN0 IHNjaGVkdWxlciAqb3BzKQogICAgIGludCBpLCBsb29wOwogI2RlZmluZSBjcHVzdHIga2V5aGFu ZGxlcl9zY3JhdGNoCiAKLSAgICAvKiBXZSBuZWVkIHRoZSBwcml2YXRlIGxvY2sgYXMgd2UgYWNj ZXNzIGdsb2JhbCBzY2hlZHVsZXIgZGF0YQotICAgICAqIGFuZCAoYmVsb3cpIHRoZSBsaXN0IG9m IGFjdGl2ZSBkb21haW5zLiAqLwotICAgIHNwaW5fbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZs YWdzKTsKKyAgICAvKgorICAgICAqIFdlIG5lZWQgdGhlIHByaXZhdGUgc2NoZWR1bGVyIGxvY2sg YXMgd2UgYWNjZXNzIGdsb2JhbAorICAgICAqIHNjaGVkdWxlciBkYXRhIGFuZCAoYmVsb3cpIHRo ZSBsaXN0IG9mIGFjdGl2ZSBkb21haW5zLgorICAgICAqLworICAgIHJlYWRfbG9ja19pcnFzYXZl KCZwcnYtPmxvY2ssIGZsYWdzKTsKIAogICAgIHByaW50aygiQWN0aXZlIHF1ZXVlczogJWRcbiIK ICAgICAgICAgICAgIlx0ZGVmYXVsdC13ZWlnaHQgICAgID0gJWRcbiIsCkBAIC0yMzg2LDcgKzI0 MTMsNyBAQCBjc2NoZWQyX2R1bXAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzKQogICAgICAg ICB9CiAgICAgfQogCi0gICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJ2LT5sb2NrLCBmbGFn cyk7CisgICAgcmVhZF91bmxvY2tfaXJxcmVzdG9yZSgmcHJ2LT5sb2NrLCBmbGFncyk7CiAjdW5k ZWYgY3B1c3RyCiB9CiAKQEAgLTI0ODgsNyArMjUxNSw3IEBAIGluaXRfcGRhdGEoc3RydWN0IGNz Y2hlZDJfcHJpdmF0ZSAqcHJ2LCB1bnNpZ25lZCBpbnQgY3B1KQogICAgIHVuc2lnbmVkIHJxaTsK ICAgICBzdHJ1Y3QgY3NjaGVkMl9ydW5xdWV1ZV9kYXRhICpycWQ7CiAKLSAgICBBU1NFUlQoc3Bp bl9pc19sb2NrZWQoJnBydi0+bG9jaykpOworICAgIEFTU0VSVChyd19pc193cml0ZV9sb2NrZWQo JnBydi0+bG9jaykpOwogICAgIEFTU0VSVCghY3B1bWFza190ZXN0X2NwdShjcHUsICZwcnYtPmlu aXRpYWxpemVkKSk7CiAKICAgICAvKiBGaWd1cmUgb3V0IHdoaWNoIHJ1bnF1ZXVlIHRvIHB1dCBp dCBpbiAqLwpAQCAtMjUyNyw3ICsyNTU0LDcgQEAgY3NjaGVkMl9pbml0X3BkYXRhKGNvbnN0IHN0 cnVjdCBzY2hlZHVsZXIgKm9wcywgdm9pZCAqcGRhdGEsIGludCBjcHUpCiAgICAgICovCiAgICAg QVNTRVJUKCFwZGF0YSk7CiAKLSAgICBzcGluX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFn cyk7CisgICAgd3JpdGVfbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdzKTsKICAgICBvbGRf bG9jayA9IHBjcHVfc2NoZWR1bGVfbG9jayhjcHUpOwogCiAgICAgcnFpID0gaW5pdF9wZGF0YShw cnYsIGNwdSk7CkBAIC0yNTM2LDcgKzI1NjMsNyBAQCBjc2NoZWQyX2luaXRfcGRhdGEoY29uc3Qg c3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpwZGF0YSwgaW50IGNwdSkKIAogICAgIC8qIF9O b3RfIHBjcHVfc2NoZWR1bGVfdW5sb2NrKCk6IHNjaGVkdWxlX2xvY2sgbWF5IGhhdmUgY2hhbmdl ZCEgKi8KICAgICBzcGluX3VubG9jayhvbGRfbG9jayk7Ci0gICAgc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmcHJ2LT5sb2NrLCBmbGFncyk7CisgICAgd3JpdGVfdW5sb2NrX2lycXJlc3RvcmUoJnBy di0+bG9jaywgZmxhZ3MpOwogfQogCiAvKiBDaGFuZ2UgdGhlIHNjaGVkdWxlciBvZiBjcHUgdG8g dXMgKENyZWRpdDIpLiAqLwpAQCAtMjU1OSw3ICsyNTg2LDcgQEAgY3NjaGVkMl9zd2l0Y2hfc2No ZWQoc3RydWN0IHNjaGVkdWxlciAqbmV3X29wcywgdW5zaWduZWQgaW50IGNwdSwKICAgICAgKiBj cHUpIGlzIHdoYXQgaXMgbmVjZXNzYXJ5IHRvIHByZXZlbnQgcmFjZXMuCiAgICAgICovCiAgICAg QVNTRVJUKCFsb2NhbF9pcnFfaXNfZW5hYmxlZCgpKTsKLSAgICBzcGluX2xvY2soJnBydi0+bG9j ayk7CisgICAgd3JpdGVfbG9jaygmcHJ2LT5sb2NrKTsKIAogICAgIGlkbGVfdmNwdVtjcHVdLT5z Y2hlZF9wcml2ID0gdmRhdGE7CiAKQEAgLTI1ODQsNyArMjYxMSw3IEBAIGNzY2hlZDJfc3dpdGNo X3NjaGVkKHN0cnVjdCBzY2hlZHVsZXIgKm5ld19vcHMsIHVuc2lnbmVkIGludCBjcHUsCiAgICAg c21wX21iKCk7CiAgICAgcGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpLnNjaGVkdWxlX2xvY2sg PSAmcHJ2LT5ycWRbcnFpXS5sb2NrOwogCi0gICAgc3Bpbl91bmxvY2soJnBydi0+bG9jayk7Cisg ICAgd3JpdGVfdW5sb2NrKCZwcnYtPmxvY2spOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMjU5NSw3 ICsyNjIyLDcgQEAgY3NjaGVkMl9kZWluaXRfcGRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAq b3BzLCB2b2lkICpwY3B1LCBpbnQgY3B1KQogICAgIHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2Rh dGEgKnJxZDsKICAgICBpbnQgcnFpOwogCi0gICAgc3Bpbl9sb2NrX2lycXNhdmUoJnBydi0+bG9j aywgZmxhZ3MpOworICAgIHdyaXRlX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7CiAK ICAgICAvKgogICAgICAqIGFsbG9jX3BkYXRhIGlzIG5vdCBpbXBsZW1lbnRlZCwgc28gcGNwdSBt dXN0IGJlIE5VTEwuIE9uIHRoZSBvdGhlcgpAQCAtMjYyNiw3ICsyNjUzLDcgQEAgY3NjaGVkMl9k ZWluaXRfcGRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpwY3B1LCBpbnQg Y3B1KQogCiAgICAgX19jcHVtYXNrX2NsZWFyX2NwdShjcHUsICZwcnYtPmluaXRpYWxpemVkKTsK IAotICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBydi0+bG9jaywgZmxhZ3MpOworICAgIHdy aXRlX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsKIAogICAgIHJldHVybjsK IH0KQEAgLTI2NzEsNyArMjY5OCw3IEBAIGNzY2hlZDJfaW5pdChzdHJ1Y3Qgc2NoZWR1bGVyICpv cHMpCiAgICAgICAgIHJldHVybiAtRU5PTUVNOwogICAgIG9wcy0+c2NoZWRfZGF0YSA9IHBydjsK IAotICAgIHNwaW5fbG9ja19pbml0KCZwcnYtPmxvY2spOworICAgIHJ3bG9ja19pbml0KCZwcnYt PmxvY2spOwogICAgIElOSVRfTElTVF9IRUFEKCZwcnYtPnNkb20pOwogCiAgICAgLyogQnV0IHVu LWluaXRpYWxpemUgYWxsIHJ1bnF1ZXVlcyAqLwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==