From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [RFC] cdc-acm: do not drop data from fast devices From: Romain Izard Message-Id: <20180305095539.13698-1-romain.izard.pro@gmail.com> Date: Mon, 5 Mar 2018 10:55:39 +0100 To: Oliver Neukum , Greg Kroah-Hartman Cc: linux-usb@vger.kernel.org, linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org, Romain Izard List-ID: VGhlcmUgYXJlIHNvbWUgZGV2aWNlcyB1c2luZyB0aGVpciBVU0IgQ0RDLUFDTSBpbnRlcmZhY2Vz IGFzIGEgZGVidWcgcG9ydAp0aGF0IGFyZSBhYmxlIHRvIHNlbmQgZGF0YSBhdCBhIHZlcnkgaGln aCBzcGVlZCwgYnV0IHdpdGggdGhlIGN1cnJlbnQKZHJpdmVyIGltcGxlbWVudGF0aW9uIGl0IGlz IG5vdCBwb3NzaWJsZSB0byByZWNlaXZlIGl0IHdoZW4gdXNpbmcgYQpyZWxhdGl2ZWx5IHNsb3cg ZW1iZWRkZWQgc3lzdGVtIHdpdGhvdXQgZHJvcHBpbmcgYW4gaW1wb3J0YW50IHBhcnQgb2YgdGhl CmRhdGEuCgpUaGUgZXhpc3RpbmcgZHJpdmVyIHVzZXMgdGhlIHRocm90dGxpbmcgbWVjaGFuaXNt IG9mIHRoZSBUVFkgbGluZQpkaXNjaXBsaW5lIHRvIHJlZ3VsYXRlIHRoZSBzcGVlZCBvZiB0aGUg ZGF0YSB0cmFuc21pdHRlZCBmcm9tIHRoZSBwb3J0IHRvCnRoZSB1cHBlciBsYXllcnMuIFRoaXMg dGhyb3R0bGluZyBwcmV2ZW50cyBVUkJzIGZyb20gYmVpbmcgcmVzdWJtaXR0ZWQsCnNsb3dpbmcg ZG93biB0aGUgdHJhbnNmZXIgb24gdGhlIFVTQiBsaW5lLiBCdXQgdGhlIGV4aXN0aW5nIGNvZGUg ZG9lcyBub3QKd29yayBjb3JyZWN0bHkgd2hlbiB0aGUgaW50ZXJuYWwgYnVmZmVycmluZyBnZXRz IGZpbGxlZC4KClRoZSBUVFkgYnVmZmVyIGlzIDQwOTYgYnl0ZXMgbGFyZ2UsIHRocm90dGxpbmcg d2hlbiB0aGVyZSBhcmUgb25seSAxMjgKZnJlZSBieXRlcyBsZWZ0LCBhbmQgdW50aHJvdHRsaW5n IHdoZW4gdGhlcmUgYXJlIG9ubHkgMTI4IGJ5dGVzIGF2YWlsYWJsZS4KQnV0IHRoZSBUVFkgYnVm ZmVyIGlzIGZpbGxlZCBmcm9tIGFuIGludGVybWVkaWF0ZSBmbGlwIGJ1ZmZlciB0aGF0CmNvbnRh aW5zIHVwIHRvIDY0IEtpQiBvZiBkYXRhLCBhbmQgZWFjaCB0aW1lIHVudGhyb3R0bGUoKSBpcyBj YWxsZWQgMTYKVVJCcyBhcmUgc2NoZWR1bGVkIGJ5IHRoZSBkcml2ZXIsIHNlbmRpbmcgdXAgdG8g MTYgS2lCIHRvIHRoZSBmbGlwIGJ1ZmZlci4KQXMgdGhlIHJlc3VsdCBvZiB0dHlfaW5zZXJ0X2Zs aXBfc3RyaW5nKCkgaXMgbm90IGNoZWNrZWQgaW4gdGhlIFVSQgpyZWNlcHRpb24gY2FsbGJhY2ss IGRhdGEgY2FuIGJlIGxvc3Qgd2hlbiB0aGUgZmxpcCBidWZmZXIgaXMgZmlsbGVkIGZhc3Rlcgp0 aGFuIHRoZSBUVFkgaXMgZW1wdGllZC4KCk1vcmVvdmVyLCBhcyB0aGUgVVJCIGNhbGxiYWNrcyBh cmUgY2FsbGVkIGZyb20gYSB0YXNrbGV0IGNvbnRleHQsIHdoZXJlYXMKdGhyb3R0bGluZyBpcyBj YWxsZWQgZnJvbSB0aGUgc3lzdGVtIHdvcmtxdWV1ZSwgaXQgaXMgcG9zc2libGUgZm9yIHRoZQp0 aHJvdHRsaW5nIHRvIGJlIGRlbGF5ZWQgYnkgaGlnaCB0cmFmZmljIGluIHRoZSB0YXNrbGV0LiBB cyBhIHJlc3VsdCwKY29tcGxldGVkIFVSQnMgY2FuIGJlIHJlc3VibWl0dGVkIGV2ZW4gaWYgdGhl IGZsaXAgYnVmZmVyIGlzIGZ1bGwsIGFuZCB3ZQpyZXF1ZXN0IG1vcmUgZGF0YSBmcm9tIHRoZSBk ZXZpY2Ugb25seSB0byBkcm9wIGl0IGltbWVkaWF0ZWx5LgoKVG8gcHJldmVudCB0aGlzIHByb2Js ZW0sIHRoZSBVUkJzIHdob3NlIGRhdGEgZGlkIG5vdCByZWFjaCB0aGUgZmxpcCBidWZmZXIKYXJl IHBsYWNlZCBpbiBhIHdhaXRpbmcgbGlzdCwgd2hpY2ggaXMgb25seSBwcm9jZXNzZWQgd2hlbiB0 aGUgc2VyaWFsIHBvcnQKaXMgdW50aHJvdHRsZWQuCgpTaWduZWQtb2ZmLWJ5OiBSb21haW4gSXph cmQgPHJvbWFpbi5pemFyZC5wcm9AZ21haWwuY29tPgotLS0KClRoaXMgaXMgd29ya2luZyB3aGVu IHVzaW5nIHRoZSBub3JtYWwgbGluZSBkaXNjaXBsaW5lIG9uIHR0eUFDTS4gQnV0CnRoZXJlIGlz IGEgYmlnIGhvbGUgaW4gdGhpczogb3RoZXIgbGluZSBkaXNjaXBsaW5lcyBkbyBub3QgdXNlIHRo cm90dGxpbmcKYW5kIHRodXMgdW50aHJvdHRsZSBpcyBuZXZlciBjYWxsZWQuIFRoZSBVUkJzIHdp bGwgbmV2ZXIgZ2V0IHJlc3VibWl0dGVkLAphbmQgdGhlIHBvcnQgaXMgZGVhZC4gVW5mb3J0dW5h dGVseSwgdGhlcmUgaXMgbm8gbm90aWZpY2F0aW9uIHdoZW4gdGhlCmZsaXAgYnVmZmVyIGlzIHJl YWR5IHRvIHJlY2VpdmUgbmV3IGRhdGEsIHNvIHRoZSBvbmx5IGFsdGVybmF0aXZlIHdvdWxkCmJl IHRvIHNjaGVkdWxlIGEgdGltZXIgcG9sbGluZyB0aGUgZmxpcCBidWZmZXIuIEJ1dCB3aXRoIGFu IGFkZGl0aW9uYWwKYXN5bmNocm9ub3VzIHByb2Nlc3MgaW4gdGhlIG1peCwgdGhlIGNvZGUgc3Rh cnRzIHRvIGJlIHZlcnkgYnJpdHRsZS4KCkkgYmVsaWV2ZSB0aGlzIGlzc3VlIGlzIG5vdCBsaW1p dGVkIHRvIHR0eUFDTS4gQXMgdGhlIFRUWSBsYXllciBpcyBub3QKcGVyZm9ybWFuY2Utb3JpZW50 ZWQsIGl0IGNhbiBiZSBlYXN5IHRvIG92ZXJ3aGVsbSBkZXZpY2VzIHdpdGggYSBsb3cKYXZhaWxh YmxlIHByb2Nlc3NpbmcgcG93ZXIuIEluIG15IGNhc2UsIGEgbW9kZW0gc2VuZGluZyBhIHN1c3Rh aW5lZCAyIE1CL3MKb24gYSBkZWJ1ZyBwb3J0IChleHBvcnRlZCBhcyBhIENEQy1BQ00gcG9ydCkg d2FzIGVub3VnaCB0byB0cmlnZ2VyIHRoZQppc3N1ZS4gVGhlIGNvZGUgaGFuZGxpbmcgdGhlIENE Qy1BQ00gY2xhc3MgYW5kIHRoZSBnZW5lcmljIFVTQiBzZXJpYWwgcG9ydAppcyB2ZXJ5IHNpbWls YXIgd2hlbiBpdCBjb21lcyB0byBVUkIgaGFuZGxpbmcsIHNvIGFsbCBkcml2ZXJzIHRoYXQgcmVs eSBvbgp0aGF0IGNvZGUgaGF2ZSB0aGUgc2FtZSBpc3N1ZS4KCkJ1dCBpbiBnZW5lcmFsLCBpdCBz ZWVtcyB0byBtZSB0aGF0IHRoZXJlIGlzIG5vIGNvZGUgaW4gdGhlIGtlcm5lbCB0aGF0CmNoZWNr cyB0aGUgcmV0dXJuIHZhbHVlIG9mIHR0eV9pbnNlcnRfZmxpcF9zdHJpbmcoKS4gVGhpcyBtZWFu cyB0aGF0IHdlCmFyZSB3b3JraW5nIHdpdGggdGhlIGFzc3VtcHRpb24gdGhhdCB0aGUga2VybmVs IHdpbGwgY29uc3VtZSB0aGUgZGF0YQpmYXN0ZXIgdGhhbiB0aGUgc291cmNlIGNhbiBzZW5kIGl0 LCBvciB0aGF0IHRoZSB1cHBlciBsYXllciB3aWxsIGJlCmFibGUgb3Igd2lsbGluZyB0byB0aHJv dHRsZSBpdCBmYXN0IGVub3VnaCB0byBhdm9pZCBsb3NpbmcgZGF0YS4KCgotLS0KIGRyaXZlcnMv dXNiL2NsYXNzL2NkYy1hY20uYyB8IDgwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLQogZHJpdmVycy91c2IvY2xhc3MvY2RjLWFjbS5oIHwgIDQgKysrCiAyIGZp bGVzIGNoYW5nZWQsIDc1IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy91c2IvY2xhc3MvY2RjLWFjbS5jIGIvZHJpdmVycy91c2IvY2xhc3MvY2RjLWFj bS5jCmluZGV4IDdiMzY2YTZjMGI0OS4uODMzZmEwYTQzZGRkIDEwMDY0NAotLS0gYS9kcml2ZXJz L3VzYi9jbGFzcy9jZGMtYWNtLmMKKysrIGIvZHJpdmVycy91c2IvY2xhc3MvY2RjLWFjbS5jCkBA IC0xNTAsMTIgKzE1MCwxOCBAQCBzdGF0aWMgaW5saW5lIGludCBhY21fc2V0X2NvbnRyb2woc3Ry dWN0IGFjbSAqYWNtLCBpbnQgY29udHJvbCkKIHN0YXRpYyB2b2lkIGFjbV9raWxsX3VyYnMoc3Ry dWN0IGFjbSAqYWNtKQogewogCWludCBpOworCXN0cnVjdCBhY21fcmIgKnJiLCAqdDsKIAogCXVz Yl9raWxsX3VyYihhY20tPmN0cmx1cmIpOwogCWZvciAoaSA9IDA7IGkgPCBBQ01fTlc7IGkrKykK IAkJdXNiX2tpbGxfdXJiKGFjbS0+d2JbaV0udXJiKTsKIAlmb3IgKGkgPSAwOyBpIDwgYWNtLT5y eF9idWZsaW1pdDsgaSsrKQogCQl1c2Jfa2lsbF91cmIoYWNtLT5yZWFkX3VyYnNbaV0pOworCWxp c3RfZm9yX2VhY2hfZW50cnlfc2FmZShyYiwgdCwgJmFjbS0+d2FpdF9saXN0LCBub2RlKSB7CisJ CXNldF9iaXQocmItPmluZGV4LCAmYWNtLT5yZWFkX3VyYnNfZnJlZSk7CisJCXJiLT5vZmZzZXQg PSAwOworCQlsaXN0X2RlbF9pbml0KCZyYi0+bm9kZSk7CisJfQogfQogCiAvKgpAQCAtNDU0LDE0 ICs0NjAsMjcgQEAgc3RhdGljIGludCBhY21fc3VibWl0X3JlYWRfdXJicyhzdHJ1Y3QgYWNtICph Y20sIGdmcF90IG1lbV9mbGFncykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgYWNtX3By b2Nlc3NfcmVhZF91cmIoc3RydWN0IGFjbSAqYWNtLCBzdHJ1Y3QgdXJiICp1cmIpCitzdGF0aWMg aW50IGFjbV9wcm9jZXNzX3JlYWRfdXJiKHN0cnVjdCBhY20gKmFjbSwgc3RydWN0IHVyYiAqdXJi KQogeworCWludCBmbGlwcGVkLCByZW1haW5kZXI7CisJc3RydWN0IGFjbV9yYiAqcmIgPSB1cmIt PmNvbnRleHQ7CiAJaWYgKCF1cmItPmFjdHVhbF9sZW5ndGgpCi0JCXJldHVybjsKKwkJcmV0dXJu IDA7CisJZmxpcHBlZCA9IHR0eV9pbnNlcnRfZmxpcF9zdHJpbmcoJmFjbS0+cG9ydCwKKwkJCXVy Yi0+dHJhbnNmZXJfYnVmZmVyICsgcmItPm9mZnNldCwKKwkJCXVyYi0+YWN0dWFsX2xlbmd0aCAt IHJiLT5vZmZzZXQpOworCXJiLT5vZmZzZXQgKz0gZmxpcHBlZDsKKwlyZW1haW5kZXIgPSB1cmIt PmFjdHVhbF9sZW5ndGggLSByYi0+b2Zmc2V0OworCWlmIChyZW1haW5kZXIgIT0gMCkKKwkJZGV2 X2RiZygmYWNtLT5kYXRhLT5kZXYsCisJCQkicmVtYWluaW5nIGRhdGE6IHVzYiAlZCBsZW4gJWQg b2Zmc2V0ICVkIGZsaXBwZWQgJWRcbiIsCisJCQlyYi0+aW5kZXgsIHVyYi0+YWN0dWFsX2xlbmd0 aCwgcmItPm9mZnNldCwgZmxpcHBlZCk7CisJZWxzZQorCQlyYi0+b2Zmc2V0ID0gMDsKIAotCXR0 eV9pbnNlcnRfZmxpcF9zdHJpbmcoJmFjbS0+cG9ydCwgdXJiLT50cmFuc2Zlcl9idWZmZXIsCi0J CQl1cmItPmFjdHVhbF9sZW5ndGgpOwogCXR0eV9mbGlwX2J1ZmZlcl9wdXNoKCZhY20tPnBvcnQp OworCisJcmV0dXJuIHJlbWFpbmRlcjsKIH0KIAogc3RhdGljIHZvaWQgYWNtX3JlYWRfYnVsa19j YWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIpCkBAIC00NzQsMTcgKzQ5MywyOSBAQCBzdGF0aWMgdm9p ZCBhY21fcmVhZF9idWxrX2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYikKIAlkZXZfdmRiZygmYWNt LT5kYXRhLT5kZXYsICJnb3QgdXJiICVkLCBsZW4gJWQsIHN0YXR1cyAlZFxuIiwKIAkJcmItPmlu ZGV4LCB1cmItPmFjdHVhbF9sZW5ndGgsIHN0YXR1cyk7CiAKLQlzZXRfYml0KHJiLT5pbmRleCwg JmFjbS0+cmVhZF91cmJzX2ZyZWUpOwotCiAJaWYgKCFhY20tPmRldikgewogCQlkZXZfZGJnKCZh Y20tPmRhdGEtPmRldiwgIiVzIC0gZGlzY29ubmVjdGVkXG4iLCBfX2Z1bmNfXyk7CisJCXNldF9i aXQocmItPmluZGV4LCAmYWNtLT5yZWFkX3VyYnNfZnJlZSk7CiAJCXJldHVybjsKIAl9CiAKKwlp ZiAoc3RhdHVzID09IDApIHsKKwkJaW50IHJlbSA9IHVyYi0+YWN0dWFsX2xlbmd0aDsKKworCQl1 c2JfbWFya19sYXN0X2J1c3koYWNtLT5kZXYpOworCQlpZiAobGlzdF9lbXB0eV9jYXJlZnVsKCZh Y20tPndhaXRfbGlzdCkpCisJCQlyZW0gPSBhY21fcHJvY2Vzc19yZWFkX3VyYihhY20sIHVyYik7 CisJCWlmIChyZW0pIHsKKwkJCWRldl92ZGJnKCZhY20tPmRhdGEtPmRldiwKKwkJCQkicXVldWlu ZyB1cmIgJWRcbiIsIHJiLT5pbmRleCk7CisJCQlsaXN0X2FkZF90YWlsKCZyYi0+bm9kZSwgJmFj bS0+d2FpdF9saXN0KTsKKwkJCXJldHVybjsKKwkJfQorCX0KKwlzZXRfYml0KHJiLT5pbmRleCwg JmFjbS0+cmVhZF91cmJzX2ZyZWUpOworCiAJc3dpdGNoIChzdGF0dXMpIHsKIAljYXNlIDA6Ci0J CXVzYl9tYXJrX2xhc3RfYnVzeShhY20tPmRldik7Ci0JCWFjbV9wcm9jZXNzX3JlYWRfdXJiKGFj bSwgdXJiKTsKIAkJYnJlYWs7CiAJY2FzZSAtRVBJUEU6CiAJCXNldF9iaXQoRVZFTlRfUlhfU1RB TEwsICZhY20tPmZsYWdzKTsKQEAgLTUxOCw2ICs1NDksOCBAQCBzdGF0aWMgdm9pZCBhY21fcmVh ZF9idWxrX2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYikKIAkJYWNtX3N1Ym1pdF9yZWFkX3VyYihh Y20sIHJiLT5pbmRleCwgR0ZQX0FUT01JQyk7CiAJfSBlbHNlIHsKIAkJc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmYWNtLT5yZWFkX2xvY2ssIGZsYWdzKTsKKwkJZGV2X3ZkYmcoJmFjbS0+ZGF0YS0+ ZGV2LAorCQkJInVyYiAlZCBpcyBzdXNwZW5kZWQgYnkgdGhyb3R0bGluZ1xuIiwgcmItPmluZGV4 KTsKIAl9CiB9CiAKQEAgLTU0OSw4ICs1ODIsMTQgQEAgc3RhdGljIHZvaWQgYWNtX3NvZnRpbnQo c3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCiAJaWYgKHRlc3RfYml0KEVWRU5UX1JYX1NUQUxM LCAmYWNtLT5mbGFncykpIHsKIAkJaWYgKCEodXNiX2F1dG9wbV9nZXRfaW50ZXJmYWNlKGFjbS0+ ZGF0YSkpKSB7CisJCQlzdHJ1Y3QgYWNtX3JiICpyYiwgKnQ7CiAJCQlmb3IgKGkgPSAwOyBpIDwg YWNtLT5yeF9idWZsaW1pdDsgaSsrKQogCQkJCXVzYl9raWxsX3VyYihhY20tPnJlYWRfdXJic1tp XSk7CisJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocmIsIHQsICZhY20tPndhaXRfbGlzdCwg bm9kZSkgeworCQkJCXNldF9iaXQocmItPmluZGV4LCAmYWNtLT5yZWFkX3VyYnNfZnJlZSk7CisJ CQkJcmItPm9mZnNldCA9IDA7CisJCQkJbGlzdF9kZWxfaW5pdCgmcmItPm5vZGUpOworCQkJfQog CQkJdXNiX2NsZWFyX2hhbHQoYWNtLT5kZXYsIGFjbS0+aW4pOwogCQkJYWNtX3N1Ym1pdF9yZWFk X3VyYnMoYWNtLCBHRlBfS0VSTkVMKTsKIAkJCXVzYl9hdXRvcG1fcHV0X2ludGVyZmFjZShhY20t PmRhdGEpOwpAQCAtOTAxLDE0ICs5NDAsMzIgQEAgc3RhdGljIHZvaWQgYWNtX3R0eV91bnRocm90 dGxlKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpCiB7CiAJc3RydWN0IGFjbSAqYWNtID0gdHR5LT5k cml2ZXJfZGF0YTsKIAl1bnNpZ25lZCBpbnQgd2FzX3Rocm90dGxlZDsKKwlzdHJ1Y3QgYWNtX3Ji ICpyYiwgKnQ7CisJYm9vbCBwcm9jZXNzZWQgPSBmYWxzZTsKKwlpbnQgcmVtID0gMDsKIAogCXNw aW5fbG9ja19pcnEoJmFjbS0+cmVhZF9sb2NrKTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2Fm ZShyYiwgdCwgJmFjbS0+d2FpdF9saXN0LCBub2RlKSB7CisJCWRldl92ZGJnKCZhY20tPmRhdGEt PmRldiwgInByb2Nlc3NpbmcgdXJiICVkOiAlZC8lZFxuIiwKKwkJCXJiLT5pbmRleCwgcmItPm9m ZnNldCwgcmItPnVyYi0+YWN0dWFsX2xlbmd0aCk7CisJCXJlbSA9IGFjbV9wcm9jZXNzX3JlYWRf dXJiKGFjbSwgcmItPnVyYik7CisJCWlmIChyZW0pIHsKKwkJCXNwaW5fdW5sb2NrX2lycSgmYWNt LT5yZWFkX2xvY2spOworCQkJcmV0dXJuOworCQl9CisJCXByb2Nlc3NlZCA9IHRydWU7CisJCXNl dF9iaXQocmItPmluZGV4LCAmYWNtLT5yZWFkX3VyYnNfZnJlZSk7CisJCXJiLT5vZmZzZXQgPSAw OworCQlsaXN0X2RlbF9pbml0KCZyYi0+bm9kZSk7CisJfQorCiAJd2FzX3Rocm90dGxlZCA9IGFj bS0+dGhyb3R0bGVkOwogCWFjbS0+dGhyb3R0bGVkID0gMDsKIAlhY20tPnRocm90dGxlX3JlcSA9 IDA7CiAJc3Bpbl91bmxvY2tfaXJxKCZhY20tPnJlYWRfbG9jayk7CiAKLQlpZiAod2FzX3Rocm90 dGxlZCkKKwlpZiAod2FzX3Rocm90dGxlZCB8fCBwcm9jZXNzZWQpCiAJCWFjbV9zdWJtaXRfcmVh ZF91cmJzKGFjbSwgR0ZQX0tFUk5FTCk7CiB9CiAKQEAgLTE0MzAsNiArMTQ4Nyw4IEBAIHN0YXRp YyBpbnQgYWNtX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLAogCWlmICghYWNtLT5j dHJsdXJiKQogCQlnb3RvIGFsbG9jX2ZhaWw1OwogCisJSU5JVF9MSVNUX0hFQUQoJmFjbS0+d2Fp dF9saXN0KTsKKwogCWZvciAoaSA9IDA7IGkgPCBudW1fcnhfYnVmOyBpKyspIHsKIAkJc3RydWN0 IGFjbV9yYiAqcmIgPSAmKGFjbS0+cmVhZF9idWZmZXJzW2ldKTsKIAkJc3RydWN0IHVyYiAqdXJi OwpAQCAtMTQ0NSw2ICsxNTA0LDkgQEAgc3RhdGljIGludCBhY21fcHJvYmUoc3RydWN0IHVzYl9p bnRlcmZhY2UgKmludGYsCiAJCWlmICghdXJiKQogCQkJZ290byBhbGxvY19mYWlsNjsKIAorCQly Yi0+b2Zmc2V0ID0gMDsKKwkJcmItPnVyYiA9IHVyYjsKKwkJSU5JVF9MSVNUX0hFQUQoJnJiLT5u b2RlKTsKIAkJdXJiLT50cmFuc2Zlcl9mbGFncyB8PSBVUkJfTk9fVFJBTlNGRVJfRE1BX01BUDsK IAkJdXJiLT50cmFuc2Zlcl9kbWEgPSByYi0+ZG1hOwogCQlpZiAodXNiX2VuZHBvaW50X3hmZXJf aW50KGVwcmVhZCkpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jbGFzcy9jZGMtYWNtLmggYi9k cml2ZXJzL3VzYi9jbGFzcy9jZGMtYWNtLmgKaW5kZXggZWFjYzExNmU4M2RhLi5jZWU4NDlhNzkz NzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NsYXNzL2NkYy1hY20uaAorKysgYi9kcml2ZXJz L3VzYi9jbGFzcy9jZGMtYWNtLmgKQEAgLTc3LDcgKzc3LDEwIEBAIHN0cnVjdCBhY21fcmIgewog CXVuc2lnbmVkIGNoYXIJCSpiYXNlOwogCWRtYV9hZGRyX3QJCWRtYTsKIAlpbnQJCQlpbmRleDsK KwlzdHJ1Y3QgdXJiCQkqdXJiOwogCXN0cnVjdCBhY20JCSppbnN0YW5jZTsKKwl1bnNpZ25lZCBp bnQJCW9mZnNldDsKKwlzdHJ1Y3QgbGlzdF9oZWFkCW5vZGU7CiB9OwogCiBzdHJ1Y3QgYWNtIHsK QEAgLTk2LDYgKzk5LDcgQEAgc3RydWN0IGFjbSB7CiAJdW5zaWduZWQgbG9uZyByZWFkX3VyYnNf ZnJlZTsKIAlzdHJ1Y3QgdXJiICpyZWFkX3VyYnNbQUNNX05SXTsKIAlzdHJ1Y3QgYWNtX3JiIHJl YWRfYnVmZmVyc1tBQ01fTlJdOworCXN0cnVjdCBsaXN0X2hlYWQgd2FpdF9saXN0OwogCXN0cnVj dCBhY21fd2IgKnB1dGJ1ZmZlcjsJCQkvKiBmb3IgYWNtX3R0eV9wdXRfY2hhcigpICovCiAJaW50 IHJ4X2J1ZmxpbWl0OwogCXNwaW5sb2NrX3QgcmVhZF9sb2NrOwo=