From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: [PATCH v3 2/5] drm/dp_mst: Start tracking per-port VCPI allocations Date: Tue, 6 Nov 2018 20:21:14 -0500 Message-ID: <20181107012116.17332-3-lyude@redhat.com> References: <20181107012116.17332-1-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181107012116.17332-1-lyude-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: intel-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: intel-gfx@lists.freedesktop.org VGhlcmUgaGFzIGJlZW4gYSBUT0RPIHdhaXRpbmcgZm9yIHF1aXRlIGEgbG9uZyB0aW1lIGluCmRy bV9kcF9tc3RfdG9wb2xvZ3kuYzoKCgkvKiBXZSBjYW5ub3QgcmVseSBvbiBwb3J0LT52Y3BpLm51 bV9zbG90cyB0byB1cGRhdGUKCSAqIHRvcG9sb2d5X3N0YXRlLT5hdmFpbF9zbG90cyBhcyB0aGUg cG9ydCBtYXkgbm90IGV4aXN0IGlmIHRoZSBwYXJlbnQKCSAqIGJyYW5jaCBkZXZpY2Ugd2FzIHVu cGx1Z2dlZC4gVGhpcyBzaG91bGQgYmUgZml4ZWQgYnkgdHJhY2tpbmcKCSAqIHBlci1wb3J0IHNs b3QgYWxsb2NhdGlvbiBpbiBkcm1fZHBfbXN0X3RvcG9sb2d5X3N0YXRlIGluc3RlYWQgb2YKCSAq IGRlcGVuZGluZyBvbiB0aGUgY2FsbGVyIHRvIHRlbGwgdXMgaG93IG1hbnkgc2xvdHMgdG8gcmVs ZWFzZS4KCSAqLwoKVGhhdCdzIG5vdCB0aGUgb25seSByZWFzb24gd2Ugc2hvdWxkIGZpeCB0aGlz OiBmb3JjaW5nIHRoZSBkcml2ZXIgdG8KdHJhY2sgdGhlIFZDUEkgYWxsb2NhdGlvbnMgdGhyb3Vn aG91dCBhIHN0YXRlJ3MgYXRvbWljIGNoZWNrIGlzCmVycm9yIHByb25lLCBiZWNhdXNlIGl0IG1l YW5zIHRoYXQgZXh0cmEgY2FyZSBoYXMgdG8gYmUgdGFrZW4gd2l0aCB0aGUKb3JkZXIgdGhhdCBk cm1fZHBfYXRvbWljX2ZpbmRfdmNwaV9zbG90cygpIGFuZApkcm1fZHBfYXRvbWljX3JlbGVhc2Vf dmNwaV9zbG90cygpIGFyZSBjYWxsZWQgaW4gaW4gb3JkZXIgdG8gZW5zdXJlCmlkZW1wb3RlbmN5 LiBDdXJyZW50bHkgdGhlIG9ubHkgZHJpdmVyIGFjdHVhbGx5IHVzaW5nIHRoZXNlIGhlbHBlcnMs Cmk5MTUsIGRvZXNuJ3QgZXZlbiBkbyB0aGlzIGNvcnJlY3RseTogbXVsdGlwbGUgLT5iZXN0X2Vu Y29kZXIoKSBjaGVja3MKd2l0aCBpOTE1J3MgY3VycmVudCBpbXBsZW1lbnRhdGlvbiB3b3VsZCBu b3QgYmUgaWRlbXBvdGVudCBhbmQgd291bGQKb3Zlci1hbGxvY2F0ZSBWQ1BJIHNsb3RzLCBzb21l dGhpbmcgSSBsZWFybmVkIHRyeWluZyB0byBpbXBsZW1lbnQKZmFsbGJhY2sgcmV0cmFpbmluZyBp biBNU1QuCgpTbzogc2ltcGxpZnkgdGhpcyB3aG9sZSBtZXNzLCBhbmQgdGVhY2ggZHJtX2RwX2F0 b21pY19maW5kX3ZjcGlfc2xvdHMoKQphbmQgZHJtX2RwX2F0b21pY19yZWxlYXNlX3ZjcGlfc2xv dHMoKSB0byB0cmFjayB0aGUgVkNQSSBhbGxvY2F0aW9ucyBmb3IKZWFjaCBwb3J0LiBUaGlzIGFs bG93cyB1cyB0byBlbnN1cmUgaWRlbXBvdGVuY3kgd2l0aG91dCBoYXZpbmcgdG8gcmVseQpvbiB0 aGUgZHJpdmVyIGFzIG11Y2guIEFkZGl0aW9uYWxseTogdGhlIGRyaXZlciBkb2Vzbid0IG5lZWQg dG8gZG8gYW55CmtpbmQgb2YgVkNQSSBzbG90IHRyYWNraW5nIGFueW1vcmUgaWYgaXQgZG9lc24n dCBuZWVkIGl0IGZvciBpdCdzIG93bgppbnRlcm5hbCBzdGF0ZS4KCkFkZGl0aW9uYWxseTsgdGhp cyBhZGRzIGEgbmV3IGRybV9kcF9tc3RfYXRvbWljX2NoZWNrKCkgaGVscGVyIHdoaWNoCm11c3Qg YmUgdXNlZCBieSBhdG9taWMgZHJpdmVycyB0byBwZXJmb3JtIHZhbGlkaXR5IGNoZWNrcyBmb3Ig dGhlIG5ldwpWQ1BJIGFsbG9jYXRpb25zIGluY3VycmVkIGJ5IGEgc3RhdGUuCgpBbHNvOiB1cGRh dGUgdGhlIGRvY3VtZW50YXRpb24gYW5kIG1ha2UgaXQgbW9yZSBvYnZpb3VzIHRoYXQgdGhlc2UK L211c3QvIGJlIGNhbGxlZCBieSAvYWxsLyBhdG9taWMgZHJpdmVycyBzdXBwb3J0aW5nIE1TVC4K CkNoYW5nZXMgc2luY2UgdjI6CiAtIFVzZSBrbWVtZHVwKCkgZm9yIGR1cGxpY2F0aW5nIE1TVCBz dGF0ZSAtIGRhbnZldAogLSBNb3ZlIHBvcnQgdmFsaWRhdGlvbiBvdXQgb2YgZHVwbGljYXRlIHN0 YXRlIGNhbGxiYWNrIC0gZGFudmV0CiAtIEhhbmRsZSBsb29waW5nIHRocm91Z2ggTVNUIHRvcG9s b2d5IHN0YXRlcyBpbgogICBkcm1fZHBfbXN0X2F0b21pY19jaGVjaygpIHNvIHRoZSBkcml2ZXIg ZG9lc24ndCBoYXZlIHRvIGRvIGl0CiAtIEZpeCBkb2N1bWVudGF0aW9uIGluIGRybV9kcF9hdG9t aWNfZmluZF92Y3BpX3Nsb3RzKCkKIC0gTW92ZSB0aGUgYXRvbWljIGNoZWNrIGZvciBlYWNoIGlu ZGl2aWR1YWwgdG9wb2xvZ3kgc3RhdGUgaW50byBpdCdzCiAgIG93biBmdW5jdGlvbiwgcmVkdWNl cyBpbmRlbnRpbmcKIC0gRG9uJ3QgY29uc2lkZXIgInN0YWxlIiBNU1QgcG9ydHMgd2hlbiBjYWxj dWxhdGluZyB0aGUgYmFuZHdpZHRoCiAgIHJlcXVpcmVtZW50cy4gVGhpcyBpcyBuZWVkZWQgYmVj YXVzZSBvcmlnaW5hbGx5IHdlIHJlbGllZCBvbiB0aGUKICAgc3RhdGUgZHVwbGljYXRpb24gZnVu Y3Rpb25zIHRvIHBydW5lIGFueSBzdGFsZSBwb3J0cyBmcm9tIHRoZSBuZXcKICAgc3RhdGUsIHdo aWNoIHdvdWxkIHByZXZlbnQgdXMgZnJvbSBpbmNvcnJlY3RseSBjb25zaWRlcmluZyB0aGVpcgog ICBiYW5kd2lkdGggcmVxdWlyZW1lbnRzIGFsb25nc2lkZSBsZWdpdGltYXRlIG5ldyBwYXlsb2Fk cy4KIC0gQWRkIGZ1bmN0aW9uIHJlZmVyZW5jZXMgaW4gZHJtX2RwX2F0b21pY19yZWxlYXNlX3Zj cGlfc2xvdHMoKSAtIGRhbnZldAogLSBBbm5vdGF0ZSBhdG9taWMgVkNQSSBhbmQgYXRvbWljIGNo ZWNrIGZ1bmN0aW9ucyB3aXRoIF9fbXVzdF9jaGVjawogICAtIGRhbnZldAoKQ2hhbmdlcyBzaW5j ZSB2MToKIC0gRG9uJ3QgdXNlIHRoZSBub3ctcmVtb3ZlZCAtPmF0b21pY19jaGVjaygpIGZvciBw cml2YXRlIG9iamVjdHMgaG9vaywKICAganVzdCBnaXZlIGRyaXZlcnMgYSBmdW5jdGlvbiB0byBj YWxsIHRoZW1zZWx2ZXMKClNpZ25lZC1vZmYtYnk6IEx5dWRlIFBhdWwgPGx5dWRlQHJlZGhhdC5j b20+CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgotLS0KIGRyaXZl cnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMgfCAyMjIgKysrKysrKysrKysrKysrKysr KysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgfCAgIDQgKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMgICB8ICAzMSArKy0tCiBpbmNsdWRl L2RybS9kcm1fZHBfbXN0X2hlbHBlci5oICAgICAgIHwgIDIzICsrLQogNCBmaWxlcyBjaGFuZ2Vk LCAyMjUgaW5zZXJ0aW9ucygrKSwgNTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBf bXN0X3RvcG9sb2d5LmMKaW5kZXggOGMzY2ZhYzQzN2Y0Li43NDgyM2FmYjI2MmUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYwpAQCAtMjYxNCwyMSArMjYxNCwzNCBAQCBzdGF0 aWMgaW50IGRybV9kcF9pbml0X3ZjcGkoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICpt Z3IsCiB9CiAKIC8qKgotICogZHJtX2RwX2F0b21pY19maW5kX3ZjcGlfc2xvdHMoKSAtIEZpbmQg YW5kIGFkZCB2Y3BpIHNsb3RzIHRvIHRoZSBzdGF0ZQorICogZHJtX2RwX2F0b21pY19maW5kX3Zj cGlfc2xvdHMoKSAtIEZpbmQgYW5kIGFkZCBWQ1BJIHNsb3RzIHRvIHRoZSBzdGF0ZQogICogQHN0 YXRlOiBnbG9iYWwgYXRvbWljIHN0YXRlCiAgKiBAbWdyOiBNU1QgdG9wb2xvZ3kgbWFuYWdlciBm b3IgdGhlIHBvcnQKICAqIEBwb3J0OiBwb3J0IHRvIGZpbmQgdmNwaSBzbG90cyBmb3IKICAqIEBw Ym46IGJhbmR3aWR0aCByZXF1aXJlZCBmb3IgdGhlIG1vZGUgaW4gUEJOCiAgKgotICogUkVUVVJO UzoKLSAqIFRvdGFsIHNsb3RzIGluIHRoZSBhdG9taWMgc3RhdGUgYXNzaWduZWQgZm9yIHRoaXMg cG9ydCBvciBlcnJvcgorICogQWxsb2NhdGVzIFZDUEkgc2xvdHMgdG8gQHBvcnQsIHJlcGxhY2lu ZyBhbnkgcHJldmlvdXMgVkNQSSBhbGxvY2F0aW9ucyBpdAorICogbWF5IGhhdmUgaGFkLiBBbnkg YXRvbWljIGRyaXZlcnMgd2hpY2ggc3VwcG9ydCBNU1QgbXVzdCBjYWxsIHRoaXMgZnVuY3Rpb24K KyAqIGluIHRoZWlyICZkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MuYXRvbWljX2NoZWNrKCkgY2Fs bGJhY2sgdG8gY2hhbmdlIHRoZQorICogY3VycmVudCBWQ1BJIGFsbG9jYXRpb24gZm9yIHRoZSBu ZXcgc3RhdGUuIFRoZSBhbGxvY2F0aW9ucyBhcmUgbm90IGNoZWNrZWQKKyAqIGFnYWluc3QgdGhl IGJhbmR3aWR0aCByZXN0cmFpbnRzIG9mIEBtZ3IgdW50aWwgdGhlIGRyaXZlciBjYWxscworICog ZHJtX2RwX21zdF9hdG9taWNfY2hlY2soKS4KKyAqCisgKiBTZWUgYWxzbzoKKyAqIGRybV9kcF9h dG9taWNfcmVsZWFzZV92Y3BpX3Nsb3RzKCkKKyAqIGRybV9kcF9tc3RfYXRvbWljX2NoZWNrKCkK KyAqCisgKiBSZXR1cm5zOgorICogVG90YWwgc2xvdHMgaW4gdGhlIGF0b21pYyBzdGF0ZSBhc3Np Z25lZCBmb3IgdGhpcyBwb3J0LCBvciBhIG5lZ2F0aXZlIGVycm9yCisgKiBjb2RlIGlmIHRoZSBw b3J0IG5vIGxvbmdlciBleGlzdHMKICAqLwogaW50IGRybV9kcF9hdG9taWNfZmluZF92Y3BpX3Ns b3RzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgIHN0cnVjdCBkcm1fZHBf bXN0X3RvcG9sb2d5X21nciAqbWdyLAogCQkJCSAgc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9y dCwgaW50IHBibikKIHsKIAlzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9zdGF0ZSAqdG9wb2xv Z3lfc3RhdGU7Ci0JaW50IHJlcV9zbG90czsKKwlzdHJ1Y3QgZHJtX2RwX3ZjcGlfYWxsb2NhdGlv biAqcG9zLCAqdmNwaSA9IE5VTEw7CisJaW50IHByZXZfc2xvdHMsIHJlcV9zbG90cywgcmV0Owog CiAJdG9wb2xvZ3lfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9tc3RfdG9wb2xvZ3lfc3RhdGUoc3Rh dGUsIG1ncik7CiAJaWYgKElTX0VSUih0b3BvbG9neV9zdGF0ZSkpCkBAIC0yNjM3LDIwICsyNjUw LDQxIEBAIGludCBkcm1fZHBfYXRvbWljX2ZpbmRfdmNwaV9zbG90cyhzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUsCiAJcG9ydCA9IGRybV9kcF9nZXRfdmFsaWRhdGVkX3BvcnRfcmVmKG1n ciwgcG9ydCk7CiAJaWYgKHBvcnQgPT0gTlVMTCkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JcmVxX3Ns b3RzID0gRElWX1JPVU5EX1VQKHBibiwgbWdyLT5wYm5fZGl2KTsKLQlEUk1fREVCVUdfS01TKCJ2 Y3BpIHNsb3RzIHJlcT0lZCwgYXZhaWw9JWRcbiIsCi0JCQlyZXFfc2xvdHMsIHRvcG9sb2d5X3N0 YXRlLT5hdmFpbF9zbG90cyk7CiAKLQlpZiAocmVxX3Nsb3RzID4gdG9wb2xvZ3lfc3RhdGUtPmF2 YWlsX3Nsb3RzKSB7Ci0JCWRybV9kcF9wdXRfcG9ydChwb3J0KTsKLQkJcmV0dXJuIC1FTk9TUEM7 CisJLyogRmluZCB0aGUgY3VycmVudCBhbGxvY2F0aW9uIGZvciB0aGlzIHBvcnQsIGlmIGFueSAq LworCWxpc3RfZm9yX2VhY2hfZW50cnkocG9zLCAmdG9wb2xvZ3lfc3RhdGUtPnZjcGlzLCBuZXh0 KSB7CisJCWlmIChwb3MtPnBvcnQgPT0gcG9ydCkgeworCQkJdmNwaSA9IHBvczsKKwkJCXByZXZf c2xvdHMgPSB2Y3BpLT52Y3BpOworCQkJYnJlYWs7CisJCX0KIAl9CisJaWYgKCF2Y3BpKQorCQlw cmV2X3Nsb3RzID0gMDsKKworCXJlcV9zbG90cyA9IERJVl9ST1VORF9VUChwYm4sIG1nci0+cGJu X2Rpdik7CiAKLQl0b3BvbG9neV9zdGF0ZS0+YXZhaWxfc2xvdHMgLT0gcmVxX3Nsb3RzOwotCURS TV9ERUJVR19LTVMoInZjcGkgc2xvdHMgYXZhaWw9JWQiLCB0b3BvbG9neV9zdGF0ZS0+YXZhaWxf c2xvdHMpOworCURSTV9ERUJVR19LTVMoIltDT05ORUNUT1I6JWQ6JXNdIFtNU1QgUE9SVDolcF0g dmNwaSAlZCAtPiAlZFxuIiwKKwkJICAgICAgcG9ydC0+Y29ubmVjdG9yLT5iYXNlLmlkLCBwb3J0 LT5jb25uZWN0b3ItPm5hbWUsIHBvcnQsCisJCSAgICAgIHByZXZfc2xvdHMsIHJlcV9zbG90cyk7 CiAKKwkvKiBBZGQgdGhlIG5ldyBhbGxvY2F0aW9uIHRvIHRoZSBzdGF0ZSAqLworCWlmICghdmNw aSkgeworCQl2Y3BpID0ga3phbGxvYyhzaXplb2YoKnZjcGkpLCBHRlBfS0VSTkVMKTsKKwkJaWYg KCF2Y3BpKSB7CisJCQlyZXQgPSAtRU5PTUVNOworCQkJZ290byBvdXQ7CisJCX0KKworCQl2Y3Bp LT5wb3J0ID0gcG9ydDsKKwkJbGlzdF9hZGQoJnZjcGktPm5leHQsICZ0b3BvbG9neV9zdGF0ZS0+ dmNwaXMpOworCX0KKwl2Y3BpLT52Y3BpID0gcmVxX3Nsb3RzOworCisJcmV0ID0gcmVxX3Nsb3Rz Oworb3V0OgogCWRybV9kcF9wdXRfcG9ydChwb3J0KTsKLQlyZXR1cm4gcmVxX3Nsb3RzOworCXJl dHVybiByZXQ7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9kcF9hdG9taWNfZmluZF92Y3BpX3Nsb3Rz KTsKIApAQCAtMjY1OCwzMiArMjY5Miw1MCBAQCBFWFBPUlRfU1lNQk9MKGRybV9kcF9hdG9taWNf ZmluZF92Y3BpX3Nsb3RzKTsKICAqIGRybV9kcF9hdG9taWNfcmVsZWFzZV92Y3BpX3Nsb3RzKCkg LSBSZWxlYXNlIGFsbG9jYXRlZCB2Y3BpIHNsb3RzCiAgKiBAc3RhdGU6IGdsb2JhbCBhdG9taWMg c3RhdGUKICAqIEBtZ3I6IE1TVCB0b3BvbG9neSBtYW5hZ2VyIGZvciB0aGUgcG9ydAotICogQHNs b3RzOiBudW1iZXIgb2YgdmNwaSBzbG90cyB0byByZWxlYXNlCisgKiBAcG9ydDogVGhlIHBvcnQg dG8gcmVsZWFzZSB0aGUgVkNQSSBzbG90cyBmcm9tCiAgKgotICogUkVUVVJOUzoKLSAqIDAgaWYg QHNsb3RzIHdlcmUgYWRkZWQgYmFjayB0byAmZHJtX2RwX21zdF90b3BvbG9neV9zdGF0ZS0+YXZh aWxfc2xvdHMgb3IKLSAqIG5lZ2F0aXZlIGVycm9yIGNvZGUKKyAqIFJlbGVhc2VzIGFueSBWQ1BJ IHNsb3RzIHRoYXQgaGF2ZSBiZWVuIGFsbG9jYXRlZCB0byBhIHBvcnQgaW4gdGhlIGF0b21pYwor ICogc3RhdGUuIEFueSBhdG9taWMgZHJpdmVycyB3aGljaCBzdXBwb3J0IE1TVCBtdXN0IGNhbGwg dGhpcyBmdW5jdGlvbiBpbgorICogdGhlaXIgJmRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzLmF0 b21pY19jaGVjaygpIGNhbGxiYWNrIHdoZW4gdGhlCisgKiBjb25uZWN0b3Igd2lsbCBubyBsb25n ZXIgaGF2ZSBWQ1BJIGFsbG9jYXRlZCAoZS5nLiBiZWNhdXNlIGl0J3MgQ1JUQyB3YXMKKyAqIHJl bW92ZWQpLgorICoKKyAqIEl0IGlzIE9LIHRvIGNhbGwgdGhpcyBldmVuIGlmIEBwb3J0IGhhcyBi ZWVuIHJlbW92ZWQgZnJvbSB0aGUgc3lzdGVtLCBpbgorICogd2hpY2ggY2FzZSBpdCB3aWxsIGp1 c3QgYW1vdW50IHRvIGEgbm8tb3AuCisgKgorICogU2VlIGFsc286CisgKiBkcm1fZHBfYXRvbWlj X2ZpbmRfdmNwaV9zbG90cygpCisgKiBkcm1fZHBfbXN0X2F0b21pY19jaGVjaygpCisgKgorICog UmV0dXJuczoKKyAqIDAgaWYgYWxsIHNsb3RzIGZvciB0aGlzIHBvcnQgd2VyZSBhZGRlZCBiYWNr IHRvCisgKiAmZHJtX2RwX21zdF90b3BvbG9neV9zdGF0ZS5hdmFpbF9zbG90cyBvciBuZWdhdGl2 ZSBlcnJvciBjb2RlCiAgKi8KIGludCBkcm1fZHBfYXRvbWljX3JlbGVhc2VfdmNwaV9zbG90cyhz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkJICAgICBzdHJ1Y3QgZHJtX2RwX21z dF90b3BvbG9neV9tZ3IgKm1nciwKLQkJCQkgICAgIGludCBzbG90cykKKwkJCQkgICAgIHN0cnVj dCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQpCiB7CiAJc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lf c3RhdGUgKnRvcG9sb2d5X3N0YXRlOworCXN0cnVjdCBkcm1fZHBfdmNwaV9hbGxvY2F0aW9uICp0 bXAsICpwb3M7CiAKIAl0b3BvbG9neV9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X21zdF90b3BvbG9n eV9zdGF0ZShzdGF0ZSwgbWdyKTsKIAlpZiAoSVNfRVJSKHRvcG9sb2d5X3N0YXRlKSkKIAkJcmV0 dXJuIFBUUl9FUlIodG9wb2xvZ3lfc3RhdGUpOwogCi0JLyogV2UgY2Fubm90IHJlbHkgb24gcG9y dC0+dmNwaS5udW1fc2xvdHMgdG8gdXBkYXRlCi0JICogdG9wb2xvZ3lfc3RhdGUtPmF2YWlsX3Ns b3RzIGFzIHRoZSBwb3J0IG1heSBub3QgZXhpc3QgaWYgdGhlIHBhcmVudAotCSAqIGJyYW5jaCBk ZXZpY2Ugd2FzIHVucGx1Z2dlZC4gVGhpcyBzaG91bGQgYmUgZml4ZWQgYnkgdHJhY2tpbmcKLQkg KiBwZXItcG9ydCBzbG90IGFsbG9jYXRpb24gaW4gZHJtX2RwX21zdF90b3BvbG9neV9zdGF0ZSBp bnN0ZWFkIG9mCi0JICogZGVwZW5kaW5nIG9uIHRoZSBjYWxsZXIgdG8gdGVsbCB1cyBob3cgbWFu eSBzbG90cyB0byByZWxlYXNlLgotCSAqLwotCXRvcG9sb2d5X3N0YXRlLT5hdmFpbF9zbG90cyAr PSBzbG90czsKLQlEUk1fREVCVUdfS01TKCJ2Y3BpIHNsb3RzIHJlbGVhc2VkPSVkLCBhdmFpbD0l ZFxuIiwKLQkJCXNsb3RzLCB0b3BvbG9neV9zdGF0ZS0+YXZhaWxfc2xvdHMpOworCWxpc3RfZm9y X2VhY2hfZW50cnlfc2FmZShwb3MsIHRtcCwgJnRvcG9sb2d5X3N0YXRlLT52Y3BpcywgbmV4dCkg eworCQlpZiAocG9zLT5wb3J0ID09IHBvcnQpIHsKKwkJCWxpc3RfZGVsKCZwb3MtPm5leHQpOwor CQkJRFJNX0RFQlVHX0tNUygiW01TVCBQT1JUOiVwXSB2Y3BpICVkIC0+IDBcbiIsCisJCQkJICAg ICAgcG9ydCwgcG9zLT52Y3BpKTsKIAorCQkJa2ZyZWUocG9zKTsKKwkJCXJldHVybiAwOworCQl9 CisJfQorCisJLyogSWYgbm8gYWxsb2NhdGlvbiB3YXMgZm91bmQsIGFsbCB0aGF0IG1lYW5zIGlz IHRoYXQgdGhlIHBvcnQgd2FzCisJICogZGVzdHJveWVkIHNpbmNlIHRoZSBsYXN0IGF0b21pYyBj b21taXQuIFRoYXQncyBPSyEKKwkgKi8KIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0woZHJt X2RwX2F0b21pY19yZWxlYXNlX3ZjcGlfc2xvdHMpOwpAQCAtMzExMiwxNSArMzE2NCwzNCBAQCBz dGF0aWMgdm9pZCBkcm1fZHBfZGVzdHJveV9jb25uZWN0b3Jfd29yayhzdHJ1Y3Qgd29ya19zdHJ1 Y3QgKndvcmspCiBzdGF0aWMgc3RydWN0IGRybV9wcml2YXRlX3N0YXRlICoKIGRybV9kcF9tc3Rf ZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fcHJpdmF0ZV9vYmogKm9iaikKIHsKLQlzdHJ1Y3Qg ZHJtX2RwX21zdF90b3BvbG9neV9zdGF0ZSAqc3RhdGU7CisJc3RydWN0IGRybV9kcF9tc3RfdG9w b2xvZ3lfc3RhdGUgKnN0YXRlLCAqb2xkX3N0YXRlID0KKwkJdG9fZHBfbXN0X3RvcG9sb2d5X3N0 YXRlKG9iai0+c3RhdGUpOworCXN0cnVjdCBkcm1fZHBfdmNwaV9hbGxvY2F0aW9uICpwb3MsICp2 Y3BpOwogCi0Jc3RhdGUgPSBrbWVtZHVwKG9iai0+c3RhdGUsIHNpemVvZigqc3RhdGUpLCBHRlBf S0VSTkVMKTsKKwlzdGF0ZSA9IGttZW1kdXAob2xkX3N0YXRlLCBzaXplb2YoKnN0YXRlKSwgR0ZQ X0tFUk5FTCk7CiAJaWYgKCFzdGF0ZSkKIAkJcmV0dXJuIE5VTEw7CiAKIAlfX2RybV9hdG9taWNf aGVscGVyX3ByaXZhdGVfb2JqX2R1cGxpY2F0ZV9zdGF0ZShvYmosICZzdGF0ZS0+YmFzZSk7CiAK KwlJTklUX0xJU1RfSEVBRCgmc3RhdGUtPnZjcGlzKTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnko cG9zLCAmb2xkX3N0YXRlLT52Y3BpcywgbmV4dCkgeworCQl2Y3BpID0ga21lbWR1cChwb3MsIHNp emVvZigqdmNwaSksIEdGUF9LRVJORUwpOworCQlpZiAoIXZjcGkpCisJCQlnb3RvIGZhaWxfYWxs b2M7CisKKwkJbGlzdF9hZGQoJnZjcGktPm5leHQsICZzdGF0ZS0+dmNwaXMpOworCX0KKwogCXJl dHVybiAmc3RhdGUtPmJhc2U7CisKK2ZhaWxfYWxsb2M6CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9z YWZlKHBvcywgdmNwaSwgJnN0YXRlLT52Y3BpcywgbmV4dCkKKwkJa2ZyZWUocG9zKTsKKwlrZnJl ZShzdGF0ZSk7CisKKwlyZXR1cm4gTlVMTDsKIH0KIAogc3RhdGljIHZvaWQgZHJtX2RwX21zdF9k ZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fcHJpdmF0ZV9vYmogKm9iaiwKQEAgLTMxMjgsMTQgKzMx OTksOTkgQEAgc3RhdGljIHZvaWQgZHJtX2RwX21zdF9kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1f cHJpdmF0ZV9vYmogKm9iaiwKIHsKIAlzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9zdGF0ZSAq bXN0X3N0YXRlID0KIAkJdG9fZHBfbXN0X3RvcG9sb2d5X3N0YXRlKHN0YXRlKTsKKwlzdHJ1Y3Qg ZHJtX2RwX3ZjcGlfYWxsb2NhdGlvbiAqcG9zLCAqdG1wOworCisJbGlzdF9mb3JfZWFjaF9lbnRy eV9zYWZlKHBvcywgdG1wLCAmbXN0X3N0YXRlLT52Y3BpcywgbmV4dCkKKwkJa2ZyZWUocG9zKTsK IAogCWtmcmVlKG1zdF9zdGF0ZSk7CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3ByaXZh dGVfc3RhdGVfZnVuY3MgbXN0X3N0YXRlX2Z1bmNzID0geworc3RhdGljIGlubGluZSBpbnQKK2Ry bV9kcF9tc3RfYXRvbWljX2NoZWNrX3RvcG9sb2d5X3N0YXRlKHN0cnVjdCBkcm1fZHBfbXN0X3Rv cG9sb2d5X21nciAqbWdyLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9z dGF0ZSAqbXN0X3N0YXRlKQoreworCXN0cnVjdCBkcm1fZHBfdmNwaV9hbGxvY2F0aW9uICp2Y3Bp OworCXN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQ7CisJaW50IGF2YWlsX3Nsb3RzID0gNjMs IHJldDsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkodmNwaSwgJm1zdF9zdGF0ZS0+dmNwaXMsIG5l eHQpIHsKKwkJLyogUG9ydHMgdGhhdCBubyBsb25nZXIgZXhpc3Qgc2hvdWxkbid0IGJlIGNvdW50 ZWQgdG93YXJkcyB0aGUKKwkJICogYmFuZHdpZHRoIHJlcXVpcmVtZW50cyBmb3IgdGhlIHN0YXRl LCBzbyBza2lwIHRoZW0KKwkJICovCisJCXBvcnQgPSBkcm1fZHBfZ2V0X3ZhbGlkYXRlZF9wb3J0 X3JlZihtZ3IsIHZjcGktPnBvcnQpOworCQlpZiAoIXBvcnQpIHsKKwkJCURSTV9ERUJVR19BVE9N SUMoIltNU1QgUE9SVDolcF0gaXMgc3RhbGUsIHNraXBwaW5nIGNoZWNrc1xuIiwKKwkJCQkJIHZj cGktPnBvcnQpOworCQkJY29udGludWU7CisJCX0KKworCQlEUk1fREVCVUdfQVRPTUlDKCJbTVNU IFBPUlQ6JXBdIHJlcXVpcmVzICVkIHZjcGkgc2xvdHNcbiIsCisJCQkJIHZjcGktPnBvcnQsIHZj cGktPnZjcGkpOworCisJCWF2YWlsX3Nsb3RzIC09IHZjcGktPnZjcGk7CisJCWlmIChhdmFpbF9z bG90cyA8IDApIHsKKwkJCURSTV9ERUJVR19BVE9NSUMoIltNU1QgUE9SVDolcF0gbm90IGVub3Vn aCB2Y3BpIHNsb3RzIGluIG1zdF9zdGF0ZSAlcCAoYXZhaWw9JWQpXG4iLAorCQkJCQkgdmNwaS0+ cG9ydCwgbXN0X3N0YXRlLAorCQkJCQkgYXZhaWxfc2xvdHMgKyB2Y3BpLT52Y3BpKTsKKwkJCXJl dCA9IC1FTk9TUEM7CisJCQlnb3RvIHBvcnRfZmFpbDsKKwkJfQorCisJCWRybV9kcF9wdXRfcG9y dChwb3J0KTsKKwl9CisJRFJNX0RFQlVHX0FUT01JQygiW01TVCBNR1I6JXBdIG1zdF9zdGF0ZSAl cCB2Y3BpIGF2YWlsPSVkIHVzZWQ9JWRcbiIsCisJCQkgbWdyLCBtc3Rfc3RhdGUsIGF2YWlsX3Ns b3RzLAorCQkJIDYzIC0gYXZhaWxfc2xvdHMpOworCisJcmV0dXJuIDA7Citwb3J0X2ZhaWw6CisJ ZHJtX2RwX3B1dF9wb3J0KHBvcnQpOworCXJldHVybiByZXQ7Cit9CisKKy8qKgorICogZHJtX2Rw X21zdF9hdG9taWNfY2hlY2sgLSBDaGVjayB0aGF0IHRoZSBuZXcgc3RhdGUgb2YgYW4gTVNUIHRv cG9sb2d5IGluIGFuCisgKiBhdG9taWMgdXBkYXRlIGlzIHZhbGlkCisgKiBAc3RhdGU6IFBvaW50 ZXIgdG8gdGhlIG5ldyAmc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfc3RhdGUKKyAqCisgKiBD aGVja3MgdGhlIGdpdmVuIHRvcG9sb2d5IHN0YXRlIGZvciBhbiBhdG9taWMgdXBkYXRlIHRvIGVu c3VyZSB0aGF0IGl0J3MKKyAqIHZhbGlkLiBUaGlzIGluY2x1ZGVzIGNoZWNraW5nIHdoZXRoZXIg dGhlcmUncyBlbm91Z2ggYmFuZHdpZHRoIHRvIHN1cHBvcnQKKyAqIHRoZSBuZXcgVkNQSSBhbGxv Y2F0aW9ucyBpbiB0aGUgYXRvbWljIHVwZGF0ZS4KKyAqCisgKiBBbnkgYXRvbWljIGRyaXZlcnMg c3VwcG9ydGluZyBEUCBNU1QgbXVzdCBtYWtlIHN1cmUgdG8gY2FsbCB0aGlzIGFmdGVyCisgKiBj aGVja2luZyB0aGUgcmVzdCBvZiB0aGVpciBzdGF0ZSBpbiB0aGVpcgorICogJmRybV9tb2RlX2Nv bmZpZ19mdW5jcy5hdG9taWNfY2hlY2soKSBjYWxsYmFjay4KKyAqCisgKiBTZWUgYWxzbzoKKyAq IGRybV9kcF9hdG9taWNfZmluZF92Y3BpX3Nsb3RzKCkKKyAqIGRybV9kcF9hdG9taWNfcmVsZWFz ZV92Y3BpX3Nsb3RzKCkKKyAqCisgKiBSZXR1cm5zOgorICoKKyAqIDAgaWYgdGhlIG5ldyBzdGF0 ZSBpcyB2YWxpZCwgbmVnYXRpdmUgZXJyb3IgY29kZSBvdGhlcndpc2UuCisgKi8KK2ludCBkcm1f ZHBfbXN0X2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCit7CisJ c3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3I7CisJc3RydWN0IGRybV9kcF9tc3Rf dG9wb2xvZ3lfc3RhdGUgKm1zdF9zdGF0ZTsKKwlpbnQgaSwgcmV0ID0gMDsKKworCWZvcl9lYWNo X25ld19tc3RfbWdyX2luX3N0YXRlKHN0YXRlLCBtZ3IsIG1zdF9zdGF0ZSwgaSkgeworCQlyZXQg PSBkcm1fZHBfbXN0X2F0b21pY19jaGVja190b3BvbG9neV9zdGF0ZShtZ3IsIG1zdF9zdGF0ZSk7 CisJCWlmIChyZXQpCisJCQlicmVhazsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorRVhQT1JUX1NZ TUJPTChkcm1fZHBfbXN0X2F0b21pY19jaGVjayk7CisKK2NvbnN0IHN0cnVjdCBkcm1fcHJpdmF0 ZV9zdGF0ZV9mdW5jcyBkcm1fZHBfbXN0X3RvcG9sb2d5X3N0YXRlX2Z1bmNzID0gewogCS5hdG9t aWNfZHVwbGljYXRlX3N0YXRlID0gZHJtX2RwX21zdF9kdXBsaWNhdGVfc3RhdGUsCiAJLmF0b21p Y19kZXN0cm95X3N0YXRlID0gZHJtX2RwX21zdF9kZXN0cm95X3N0YXRlLAogfTsKK0VYUE9SVF9T WU1CT0woZHJtX2RwX21zdF90b3BvbG9neV9zdGF0ZV9mdW5jcyk7CiAKIC8qKgogICogZHJtX2F0 b21pY19nZXRfbXN0X3RvcG9sb2d5X3N0YXRlOiBnZXQgTVNUIHRvcG9sb2d5IHN0YXRlCkBAIC0z MjEzLDEzICszMzY5LDExIEBAIGludCBkcm1fZHBfbXN0X3RvcG9sb2d5X21ncl9pbml0KHN0cnVj dCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAogCQlyZXR1cm4gLUVOT01FTTsKIAogCW1z dF9zdGF0ZS0+bWdyID0gbWdyOwotCi0JLyogbWF4LiB0aW1lIHNsb3RzIC0gb25lIHNsb3QgZm9y IE1UUCBoZWFkZXIgKi8KLQltc3Rfc3RhdGUtPmF2YWlsX3Nsb3RzID0gNjM7CisJSU5JVF9MSVNU X0hFQUQoJm1zdF9zdGF0ZS0+dmNwaXMpOwogCiAJZHJtX2F0b21pY19wcml2YXRlX29ial9pbml0 KCZtZ3ItPmJhc2UsCiAJCQkJICAgICZtc3Rfc3RhdGUtPmJhc2UsCi0JCQkJICAgICZtc3Rfc3Rh dGVfZnVuY3MpOworCQkJCSAgICAmZHJtX2RwX21zdF90b3BvbG9neV9zdGF0ZV9mdW5jcyk7CiAK IAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBiYmY4 Y2EyMWE3YTIuLjg3NDljZjYxYTZhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YwpAQCAtMTI1NTMsNiArMTI1NTMsMTAgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY2hlY2so c3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkgICAgICAgIlttb2Rlc2V0XSIgOiAiW2Zhc3Rz ZXRdIik7CiAJfQogCisJcmV0ID0gZHJtX2RwX21zdF9hdG9taWNfY2hlY2soc3RhdGUpOworCWlm IChyZXQpCisJCXJldHVybiByZXQ7CisKIAlpZiAoYW55X21zKSB7CiAJCXJldCA9IGludGVsX21v ZGVzZXRfY2hlY2tzKHN0YXRlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHBfbXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwppbmRl eCA4YjcxZDY0ZWJkOWQuLmFhZjkwNDczOGI3OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHBfbXN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBf bXN0LmMKQEAgLTExNCwyOCArMTE0LDMxIEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfbXN0X2F0b21p Y19jaGVjayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCXN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZTsKIAlzdHJ1Y3QgZHJtX2NydGMgKm9sZF9jcnRj OwogCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKLQlpbnQgc2xvdHMsIHJldCA9 IDA7CisJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0KKwkJdG9faW50 ZWxfY29ubmVjdG9yKGNvbm5lY3Rvcik7CisJc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdy ICptZ3IgPQorCQkmaW50ZWxfY29ubmVjdG9yLT5tc3RfcG9ydC0+bXN0X21ncjsKKwlzdHJ1Y3Qg ZHJtX2RwX21zdF9wb3J0ICpwb3J0ID0gaW50ZWxfY29ubmVjdG9yLT5wb3J0OworCWludCByZXQg PSAwOwogCiAJb2xkX2Nvbm5fc3RhdGUgPSBkcm1fYXRvbWljX2dldF9vbGRfY29ubmVjdG9yX3N0 YXRlKHN0YXRlLCBjb25uZWN0b3IpOwogCW9sZF9jcnRjID0gb2xkX2Nvbm5fc3RhdGUtPmNydGM7 CiAJaWYgKCFvbGRfY3J0YykKIAkJcmV0dXJuIHJldDsKIAotCWNydGNfc3RhdGUgPSBkcm1fYXRv bWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgb2xkX2NydGMpOwotCXNsb3RzID0gdG9faW50 ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKS0+ZHBfbV9uLnR1OwotCWlmIChkcm1fYXRvbWljX2Ny dGNfbmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKSAmJiBzbG90cyA+IDApIHsKLQkJc3RydWN0IGRy bV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3I7Ci0JCXN0cnVjdCBkcm1fZW5jb2RlciAqb2xkX2Vu Y29kZXI7CisJLyogRnJlZSBWQ1BJLCBzaW5jZSBjb21wdXRlX2NvbmZpZygpIHdvbid0IGJlIHJ1 biAqLworCWlmICghbmV3X2Nvbm5fc3RhdGUtPmNydGMpIHsKKwkJY3J0Y19zdGF0ZSA9IGRybV9h dG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBvbGRfY3J0Yyk7CiAKLQkJb2xkX2VuY29k ZXIgPSBvbGRfY29ubl9zdGF0ZS0+YmVzdF9lbmNvZGVyOwotCQltZ3IgPSAmZW5jX3RvX21zdChv bGRfZW5jb2RlciktPnByaW1hcnktPmRwLm1zdF9tZ3I7Ci0KLQkJcmV0ID0gZHJtX2RwX2F0b21p Y19yZWxlYXNlX3ZjcGlfc2xvdHMoc3RhdGUsIG1nciwgc2xvdHMpOwotCQlpZiAocmV0KQotCQkJ RFJNX0RFQlVHX0tNUygiZmFpbGVkIHJlbGVhc2luZyAlZCB2Y3BpIHNsb3RzOiVkXG4iLCBzbG90 cywgcmV0KTsKLQkJZWxzZQotCQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKS0+ZHBf bV9uLnR1ID0gMDsKKwkJcmV0ID0gZHJtX2RwX2F0b21pY19yZWxlYXNlX3ZjcGlfc2xvdHMoc3Rh dGUsIG1nciwgcG9ydCk7CisJCWlmIChyZXQpIHsKKwkJCURSTV9ERUJVR19LTVMoImZhaWxlZCBy ZWxlYXNpbmcgdmNwaSBzbG90czogJWRcbiIsCisJCQkJICAgICAgcmV0KTsKKwkJCXJldHVybiBy ZXQ7CisJCX0KKwkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKS0+ZHBfbV9uLnR1ID0g MDsKIAl9CisKIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1f ZHBfbXN0X2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2RwX21zdF9oZWxwZXIuaAppbmRleCAz ZmFjZWI2NmY1Y2IuLjA4YjY3OTQ4YjhmOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Rw X21zdF9oZWxwZXIuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fZHBfbXN0X2hlbHBlci5oCkBAIC00 MDYsOSArNDA2LDE1IEBAIHN0cnVjdCBkcm1fZHBfcGF5bG9hZCB7CiAKICNkZWZpbmUgdG9fZHBf bXN0X3RvcG9sb2d5X3N0YXRlKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgZHJtX2RwX21zdF90 b3BvbG9neV9zdGF0ZSwgYmFzZSkKIAorc3RydWN0IGRybV9kcF92Y3BpX2FsbG9jYXRpb24gewor CXN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQ7CisJaW50IHZjcGk7CisJc3RydWN0IGxpc3Rf aGVhZCBuZXh0OworfTsKKwogc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfc3RhdGUgewogCXN0 cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZSBiYXNlOwotCWludCBhdmFpbF9zbG90czsKKwlzdHJ1Y3Qg bGlzdF9oZWFkIHZjcGlzOwogCXN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyOwog fTsKIApAQCAtNjE5LDE0ICs2MjUsMTcgQEAgdm9pZCBkcm1fZHBfbXN0X3RvcG9sb2d5X21ncl9z dXNwZW5kKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyKTsKIGludCBkcm1fZHBf bXN0X3RvcG9sb2d5X21ncl9yZXN1bWUoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICpt Z3IpOwogc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfc3RhdGUgKmRybV9hdG9taWNfZ2V0X21z dF90b3BvbG9neV9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkJCQkJ CSAgICBzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1ncik7Ci1pbnQgZHJtX2RwX2F0 b21pY19maW5kX3ZjcGlfc2xvdHMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAotCQkJ CSAgc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsCi0JCQkJICBzdHJ1Y3QgZHJt X2RwX21zdF9wb3J0ICpwb3J0LCBpbnQgcGJuKTsKLWludCBkcm1fZHBfYXRvbWljX3JlbGVhc2Vf dmNwaV9zbG90cyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCi0JCQkJICAgICBzdHJ1 Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKLQkJCQkgICAgIGludCBzbG90cyk7Citp bnQgX19tdXN0X2NoZWNrCitkcm1fZHBfYXRvbWljX2ZpbmRfdmNwaV9zbG90cyhzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgICAgICBzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9n eV9tZ3IgKm1nciwKKwkJCSAgICAgIHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQsIGludCBw Ym4pOworaW50IF9fbXVzdF9jaGVjaworZHJtX2RwX2F0b21pY19yZWxlYXNlX3ZjcGlfc2xvdHMo c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJCSBzdHJ1Y3QgZHJtX2RwX21zdF90 b3BvbG9neV9tZ3IgKm1nciwKKwkJCQkgc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCk7CiBp bnQgZHJtX2RwX3NlbmRfcG93ZXJfdXBkb3duX3BoeShzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9n eV9tZ3IgKm1nciwKIAkJCQkgc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCwgYm9vbCBwb3dl cl91cCk7CitpbnQgX19tdXN0X2NoZWNrIGRybV9kcF9tc3RfYXRvbWljX2NoZWNrKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CiAKIGV4dGVybiBjb25zdCBzdHJ1Y3QgZHJtX3ByaXZh dGVfc3RhdGVfZnVuY3MgZHJtX2RwX21zdF90b3BvbG9neV9zdGF0ZV9mdW5jczsKIAotLSAKMi4x OS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOb3V2 ZWF1IG1haWxpbmcgbGlzdApOb3V2ZWF1QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL25vdXZlYXUK