From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jamal Hadi Salim Subject: Re: [PATCH net-next v10 0/4] net sched actions: improve dump performance Date: Sun, 11 Jun 2017 08:06:12 -0400 Message-ID: References: <1497182026-11594-1-git-send-email-jhs@emojatatu.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------6898A43B6FBF8964B73D3B19" Cc: netdev@vger.kernel.org, jiri@resnulli.us, xiyou.wangcong@gmail.com, eric.dumazet@gmail.com, simon.horman@netronome.com, mrv@mojatatu.com To: davem@davemloft.net Return-path: Received: from mail-it0-f45.google.com ([209.85.214.45]:35249 "EHLO mail-it0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751743AbdFKMGP (ORCPT ); Sun, 11 Jun 2017 08:06:15 -0400 Received: by mail-it0-f45.google.com with SMTP id m62so14233121itc.0 for ; Sun, 11 Jun 2017 05:06:14 -0700 (PDT) In-Reply-To: <1497182026-11594-1-git-send-email-jhs@emojatatu.com> Content-Language: en-GB Sender: netdev-owner@vger.kernel.org List-ID: This is a multi-part message in MIME format. --------------6898A43B6FBF8964B73D3B19 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Attached iproute2 used for testing these features.. cheers, jamal --------------6898A43B6FBF8964B73D3B19 Content-Type: text/plain; charset=UTF-8; name="patch-large-dump-iproute2" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch-large-dump-iproute2" ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggMThkZTdkYy4uZWQzYzEw YSAxMDA2NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTQ1LDcgKzQ1LDcg QEAgSE9TVENDID89ICQoQ0MpCiBERUZJTkVTICs9IC1EX0dOVV9TT1VSQ0UKICMgVHVybiBv biB0cmFuc3BhcmVudCBzdXBwb3J0IGZvciBMRlMKIERFRklORVMgKz0gLURfRklMRV9PRkZT RVRfQklUUz02NCAtRF9MQVJHRUZJTEVfU09VUkNFIC1EX0xBUkdFRklMRTY0X1NPVVJDRQot Q0NPUFRTID0gLU8yCitDQ09QVFMgPSAtZwogV0ZMQUdTIDo9IC1XYWxsIC1Xc3RyaWN0LXBy b3RvdHlwZXMgIC1XbWlzc2luZy1wcm90b3R5cGVzCiBXRkxBR1MgKz0gLVdtaXNzaW5nLWRl Y2xhcmF0aW9ucyAtV29sZC1zdHlsZS1kZWZpbml0aW9uIC1XZm9ybWF0PTIKIApkaWZmIC0t Z2l0IGEvaW5jbHVkZS9saW51eC9ydG5ldGxpbmsuaCBiL2luY2x1ZGUvbGludXgvcnRuZXRs aW5rLmgKaW5kZXggYTk2ZGI4My4uOTg4ZWJjMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51 eC9ydG5ldGxpbmsuaAorKysgYi9pbmNsdWRlL2xpbnV4L3J0bmV0bGluay5oCkBAIC0xLDUg KzEsNSBAQAotI2lmbmRlZiBfX0xJTlVYX1JUTkVUTElOS19ICi0jZGVmaW5lIF9fTElOVVhf UlRORVRMSU5LX0gKKyNpZm5kZWYgX1VBUElfX0xJTlVYX1JUTkVUTElOS19ICisjZGVmaW5l IF9VQVBJX19MSU5VWF9SVE5FVExJTktfSAogCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4K ICNpbmNsdWRlIDxsaW51eC9uZXRsaW5rLmg+CkBAIC0xNzksNiArMTc5LDIzIEBAIHN0cnVj dCBydGF0dHIgewogI2RlZmluZSBSVEFfREFUQShydGEpICAgKCh2b2lkKikoKChjaGFyKiko cnRhKSkgKyBSVEFfTEVOR1RIKDApKSkKICNkZWZpbmUgUlRBX1BBWUxPQUQocnRhKSAoKGlu dCkoKHJ0YSktPnJ0YV9sZW4pIC0gUlRBX0xFTkdUSCgwKSkKIAorLyogR2VuZXJpYyBiaXRm bGFncyBhdHRyaWJ1dGUgY29udGVudCBzZW50IHRvIHRoZSBrZXJuZWwuCisgKgorICogVGhl IG5sYV9mbGFnX3ZhbHVlcyBpcyBhIGJpdG1hcCB0aGF0IGRlZmluZXMgdGhlIHZhbHVlcyBi ZWluZyBzZXQKKyAqIFRoZSBubGFfZmxhZ19zZWxlY3RvciBpcyBhIGJpdG1hc2sgdGhhdCBk ZWZpbmVzIHdoaWNoIHZhbHVlIGlzIGxlZ2l0CisgKgorICogRXhhbXBsZXM6CisgKiAgbmxh X2ZsYWdfdmFsdWVzID0gMHgwLCBhbmQgbmxhX2ZsYWdfc2VsZWN0b3IgPSAweDEKKyAqICBp bXBsaWVzIHdlIGFyZSBzZWxlY3RpbmcgYml0IDEgYW5kIHdlIHdhbnQgdG8gc2V0IGl0cyB2 YWx1ZSB0byAwLgorICoKKyAqICBubGFfZmxhZ192YWx1ZXMgPSAweDIsIGFuZCBubGFfZmxh Z19zZWxlY3RvciA9IDB4MgorICogIGltcGxpZXMgd2UgYXJlIHNlbGVjdGluZyBiaXQgMiBh bmQgd2Ugd2FudCB0byBzZXQgaXRzIHZhbHVlIHRvIDEuCisgKgorICovCitzdHJ1Y3QgX19u bGFfYml0X2ZsYWdzIHsKKwlfX3UzMiBubGFfZmxhZ192YWx1ZXM7CisJX191MzIgbmxhX2Zs YWdfc2VsZWN0b3I7Cit9OwogCiAKIApAQCAtMjc4LDYgKzI5NSw3IEBAIGVudW0gcnRfc2Nv cGVfdCB7CiAjZGVmaW5lIFJUTV9GX0VRVUFMSVpFCQkweDQwMAkvKiBNdWx0aXBhdGggZXF1 YWxpemVyOiBOSQkqLwogI2RlZmluZSBSVE1fRl9QUkVGSVgJCTB4ODAwCS8qIFByZWZpeCBh ZGRyZXNzZXMJCSovCiAjZGVmaW5lIFJUTV9GX0xPT0tVUF9UQUJMRQkweDEwMDAJLyogc2V0 IHJ0bV90YWJsZSB0byBGSUIgbG9va3VwIHJlc3VsdCAqLworI2RlZmluZSBSVE1fRl9GSUJf TUFUQ0gJICAgICAgICAweDIwMDAJLyogcmV0dXJuIGZ1bGwgZmliIGxvb2t1cCBtYXRjaCAq LwogCiAvKiBSZXNlcnZlZCB0YWJsZSBpZGVudGlmaWVycyAqLwogCkBAIC01NDksNiArNTY3 LDcgQEAgZW51bSB7CiAJVENBX1NUQUIsCiAJVENBX1BBRCwKIAlUQ0FfRFVNUF9JTlZJU0lC TEUsCisJVENBX0NIQUlOLAogCV9fVENBX01BWAogfTsKIApAQCAtNTgxLDYgKzYwMCw3IEBA IGVudW0gewogCiAjZGVmaW5lIE5EVVNFUk9QVF9NQVgJKF9fTkRVU0VST1BUX01BWCAtIDEp CiAKKyNpZm5kZWYgX19LRVJORUxfXwogLyogUlRuZXRsaW5rIG11bHRpY2FzdCBncm91cHMg LSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3IgdXNlcnNwYWNlICovCiAjZGVmaW5lIFJU TUdSUF9MSU5LCQkxCiAjZGVmaW5lIFJUTUdSUF9OT1RJRlkJCTIKQEAgLTYwMSw2ICs2MjEs NyBAQCBlbnVtIHsKICNkZWZpbmUgUlRNR1JQX0RFQ25ldF9ST1VURSAgICAgMHg0MDAwCiAK ICNkZWZpbmUgUlRNR1JQX0lQVjZfUFJFRklYCTB4MjAwMDAKKyNlbmRpZgogCiAvKiBSVG5l dGxpbmsgbXVsdGljYXN0IGdyb3VwcyAqLwogZW51bSBydG5ldGxpbmtfZ3JvdXBzIHsKQEAg LTY3MiwxMCArNjkzLDI5IEBAIHN0cnVjdCB0Y2Ftc2cgewogCXVuc2lnbmVkIGNoYXIJdGNh X19wYWQxOwogCXVuc2lnbmVkIHNob3J0CXRjYV9fcGFkMjsKIH07CisKK2VudW0geworCVRD QV9ST09UX1VOU1BFQywKKwlUQ0FfUk9PVF9UQUIsCisjZGVmaW5lIFRDQV9BQ1RfVEFCIFRD QV9ST09UX1RBQgorI2RlZmluZSBUQ0FBX01BWCBUQ0FfUk9PVF9UQUIKKwlUQ0FfUk9PVF9G TEFHUywKKwlUQ0FfUk9PVF9DT1VOVCwKKwlUQ0FfUk9PVF9USU1FX0RFTFRBLCAvKiBpbiBt c2VjcyAqLworCV9fVENBX1JPT1RfTUFYLAorI2RlZmluZQlUQ0FfUk9PVF9NQVggKF9fVENB X1JPT1RfTUFYIC0gMSkKK307CisKICNkZWZpbmUgVEFfUlRBKHIpICAoKHN0cnVjdCBydGF0 dHIqKSgoKGNoYXIqKShyKSkgKyBOTE1TR19BTElHTihzaXplb2Yoc3RydWN0IHRjYW1zZykp KSkKICNkZWZpbmUgVEFfUEFZTE9BRChuKSBOTE1TR19QQVlMT0FEKG4sc2l6ZW9mKHN0cnVj dCB0Y2Ftc2cpKQotI2RlZmluZSBUQ0FfQUNUX1RBQiAxIC8qIGF0dHIgdHlwZSBtdXN0IGJl ID49MSAqLwkKLSNkZWZpbmUgVENBQV9NQVggMQorLyogdGNhbXNnIGZsYWdzIHN0b3JlZCBp biBhdHRyaWJ1dGUgVENBX1JPT1RfRkxBR1MKKyAqCisgKiBUQ0FfRkxBR19MQVJHRV9EVU1Q X09OIHVzZXItPmtlcm5lbCB0byByZXF1ZXN0IGZvciBsYXJnZXIgdGhhbiBUQ0FfQUNUX01B WF9QUklPCisgKiBhY3Rpb25zIGluIGEgZHVtcC4gQWxsIGR1bXAgcmVzcG9uc2VzIHdpbGwg Y29udGFpbiB0aGUgbnVtYmVyIG9mIGFjdGlvbnMKKyAqIGJlaW5nIGR1bXBlZCBzdG9yZWQg aW4gZm9yIHVzZXIgYXBwJ3MgY29uc3VtcHRpb24gaW4gVENBX1JPT1RfQ09VTlQKKyAqCisg Ki8KKyNkZWZpbmUgVENBX0ZMQUdfTEFSR0VfRFVNUF9PTgkJKDEgPDwgMCkKIAogLyogTmV3 IGV4dGVuZGVkIGluZm8gZmlsdGVycyBmb3IgSUZMQV9FWFRfTUFTSyAqLwogI2RlZmluZSBS VEVYVF9GSUxURVJfVkYJCSgxIDw8IDApCkBAIC02ODcsNCArNzI3LDQgQEAgc3RydWN0IHRj YW1zZyB7CiAKIAogCi0jZW5kaWYgLyogX19MSU5VWF9SVE5FVExJTktfSCAqLworI2VuZGlm IC8qIF9VQVBJX19MSU5VWF9SVE5FVExJTktfSCAqLwpkaWZmIC0tZ2l0IGEvdGMvZl9iYXNp Yy5jIGIvdGMvZl9iYXNpYy5jCmluZGV4IGQ2NjM2NjguLjgzNzBlYTYgMTAwNjQ0Ci0tLSBh L3RjL2ZfYmFzaWMuYworKysgYi90Yy9mX2Jhc2ljLmMKQEAgLTEzNSw3ICsxMzUsNyBAQCBz dGF0aWMgaW50IGJhc2ljX3ByaW50X29wdChzdHJ1Y3QgZmlsdGVyX3V0aWwgKnF1LCBGSUxF ICpmLAogCX0KIAogCWlmICh0YltUQ0FfQkFTSUNfQUNUXSkgewotCQl0Y19wcmludF9hY3Rp b24oZiwgdGJbVENBX0JBU0lDX0FDVF0pOworCQl0Y19wcmludF9hY3Rpb24oZiwgdGJbVENB X0JBU0lDX0FDVF0sIDApOwogCX0KIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvdGMvZl9i cGYuYyBiL3RjL2ZfYnBmLmMKaW5kZXggNzVjNDRjMC4uNjU4MTI5MyAxMDA2NDQKLS0tIGEv dGMvZl9icGYuYworKysgYi90Yy9mX2JwZi5jCkBAIC0yMzYsNyArMjM2LDcgQEAgc3RhdGlj IGludCBicGZfcHJpbnRfb3B0KHN0cnVjdCBmaWx0ZXJfdXRpbCAqcXUsIEZJTEUgKmYsCiAJ fQogCiAJaWYgKHRiW1RDQV9CUEZfQUNUXSkKLQkJdGNfcHJpbnRfYWN0aW9uKGYsIHRiW1RD QV9CUEZfQUNUXSk7CisJCXRjX3ByaW50X2FjdGlvbihmLCB0YltUQ0FfQlBGX0FDVF0sIDAp OwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS90Yy9mX2Nncm91cC5jIGIvdGMvZl9j Z3JvdXAuYwppbmRleCBlY2Y5OTA5Li42MzM3MDBlIDEwMDY0NAotLS0gYS90Yy9mX2Nncm91 cC5jCisrKyBiL3RjL2ZfY2dyb3VwLmMKQEAgLTEwMiw3ICsxMDIsNyBAQCBzdGF0aWMgaW50 IGNncm91cF9wcmludF9vcHQoc3RydWN0IGZpbHRlcl91dGlsICpxdSwgRklMRSAqZiwKIAl9 CiAKIAlpZiAodGJbVENBX0NHUk9VUF9BQ1RdKQotCQl0Y19wcmludF9hY3Rpb24oZiwgdGJb VENBX0NHUk9VUF9BQ1RdKTsKKwkJdGNfcHJpbnRfYWN0aW9uKGYsIHRiW1RDQV9DR1JPVVBf QUNUXSwgMCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3RjL2ZfZmxvdy5jIGIv dGMvZl9mbG93LmMKaW5kZXggMDlkZGNhYS4uYjE1NzEwNCAxMDA2NDQKLS0tIGEvdGMvZl9m bG93LmMKKysrIGIvdGMvZl9mbG93LmMKQEAgLTM0Nyw3ICszNDcsNyBAQCBzdGF0aWMgaW50 IGZsb3dfcHJpbnRfb3B0KHN0cnVjdCBmaWx0ZXJfdXRpbCAqZnUsIEZJTEUgKmYsIHN0cnVj dCBydGF0dHIgKm9wdCwKIAkJdGNfcHJpbnRfcG9saWNlKGYsIHRiW1RDQV9GTE9XX1BPTElD RV0pOwogCWlmICh0YltUQ0FfRkxPV19BQ1RdKSB7CiAJCWZwcmludGYoZiwgIlxuIik7Ci0J CXRjX3ByaW50X2FjdGlvbihmLCB0YltUQ0FfRkxPV19BQ1RdKTsKKwkJdGNfcHJpbnRfYWN0 aW9uKGYsIHRiW1RDQV9GTE9XX0FDVF0sIDApOwogCX0KIAlyZXR1cm4gMDsKIH0KZGlmZiAt LWdpdCBhL3RjL2ZfZmxvd2VyLmMgYi90Yy9mX2Zsb3dlci5jCmluZGV4IGViYzYzY2EuLmQw MTVhZGUgMTAwNjQ0Ci0tLSBhL3RjL2ZfZmxvd2VyLmMKKysrIGIvdGMvZl9mbG93ZXIuYwpA QCAtMTE3OSw3ICsxMTc5LDcgQEAgc3RhdGljIGludCBmbG93ZXJfcHJpbnRfb3B0KHN0cnVj dCBmaWx0ZXJfdXRpbCAqcXUsIEZJTEUgKmYsCiAJfQogCiAJaWYgKHRiW1RDQV9GTE9XRVJf QUNUXSkKLQkJdGNfcHJpbnRfYWN0aW9uKGYsIHRiW1RDQV9GTE9XRVJfQUNUXSk7CisJCXRj X3ByaW50X2FjdGlvbihmLCB0YltUQ0FfRkxPV0VSX0FDVF0sIDApOwogCiAJcmV0dXJuIDA7 CiB9CmRpZmYgLS1naXQgYS90Yy9mX2Z3LmMgYi90Yy9mX2Z3LmMKaW5kZXggNzkwYmVmOS4u YzM5Nzg5YiAxMDA2NDQKLS0tIGEvdGMvZl9mdy5jCisrKyBiL3RjL2ZfZncuYwpAQCAtMTYw LDcgKzE2MCw3IEBAIHN0YXRpYyBpbnQgZndfcHJpbnRfb3B0KHN0cnVjdCBmaWx0ZXJfdXRp bCAqcXUsIEZJTEUgKmYsIHN0cnVjdCBydGF0dHIgKm9wdCwgX191CiAKIAlpZiAodGJbVENB X0ZXX0FDVF0pIHsKIAkJZnByaW50ZihmLCAiXG4iKTsKLQkJdGNfcHJpbnRfYWN0aW9uKGYs IHRiW1RDQV9GV19BQ1RdKTsKKwkJdGNfcHJpbnRfYWN0aW9uKGYsIHRiW1RDQV9GV19BQ1Rd LCAwKTsKIAl9CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS90Yy9mX21hdGNoYWxsLmMg Yi90Yy9mX21hdGNoYWxsLmMKaW5kZXggNWE1MWU3NS4uZDc4NjYwZSAxMDA2NDQKLS0tIGEv dGMvZl9tYXRjaGFsbC5jCisrKyBiL3RjL2ZfbWF0Y2hhbGwuYwpAQCAtMTQ1LDcgKzE0NSw3 IEBAIHN0YXRpYyBpbnQgbWF0Y2hhbGxfcHJpbnRfb3B0KHN0cnVjdCBmaWx0ZXJfdXRpbCAq cXUsIEZJTEUgKmYsCiAJfQogCiAJaWYgKHRiW1RDQV9NQVRDSEFMTF9BQ1RdKQotCQl0Y19w cmludF9hY3Rpb24oZiwgdGJbVENBX01BVENIQUxMX0FDVF0pOworCQl0Y19wcmludF9hY3Rp b24oZiwgdGJbVENBX01BVENIQUxMX0FDVF0sIDApOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYg LS1naXQgYS90Yy9mX3JvdXRlLmMgYi90Yy9mX3JvdXRlLmMKaW5kZXggMzA1MTRjNC4uZTg4 MzEzZiAxMDA2NDQKLS0tIGEvdGMvZl9yb3V0ZS5jCisrKyBiL3RjL2Zfcm91dGUuYwpAQCAt MTY4LDcgKzE2OCw3IEBAIHN0YXRpYyBpbnQgcm91dGVfcHJpbnRfb3B0KHN0cnVjdCBmaWx0 ZXJfdXRpbCAqcXUsIEZJTEUgKmYsIHN0cnVjdCBydGF0dHIgKm9wdCwKIAlpZiAodGJbVENB X1JPVVRFNF9QT0xJQ0VdKQogCQl0Y19wcmludF9wb2xpY2UoZiwgdGJbVENBX1JPVVRFNF9Q T0xJQ0VdKTsKIAlpZiAodGJbVENBX1JPVVRFNF9BQ1RdKQotCQl0Y19wcmludF9hY3Rpb24o ZiwgdGJbVENBX1JPVVRFNF9BQ1RdKTsKKwkJdGNfcHJpbnRfYWN0aW9uKGYsIHRiW1RDQV9S T1VURTRfQUNUXSwgMCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3RjL2ZfcnN2 cC5jIGIvdGMvZl9yc3ZwLmMKaW5kZXggOTRiZmJlZi4uNjVjYWViNCAxMDA2NDQKLS0tIGEv dGMvZl9yc3ZwLmMKKysrIGIvdGMvZl9yc3ZwLmMKQEAgLTQwMiw3ICs0MDIsNyBAQCBzdGF0 aWMgaW50IHJzdnBfcHJpbnRfb3B0KHN0cnVjdCBmaWx0ZXJfdXRpbCAqcXUsIEZJTEUgKmYs IHN0cnVjdCBydGF0dHIgKm9wdCwgXwogCX0KIAogCWlmICh0YltUQ0FfUlNWUF9BQ1RdKSB7 Ci0JCXRjX3ByaW50X2FjdGlvbihmLCB0YltUQ0FfUlNWUF9BQ1RdKTsKKwkJdGNfcHJpbnRf YWN0aW9uKGYsIHRiW1RDQV9SU1ZQX0FDVF0sIDApOwogCX0KIAlpZiAodGJbVENBX1JTVlBf UE9MSUNFXSkKIAkJdGNfcHJpbnRfcG9saWNlKGYsIHRiW1RDQV9SU1ZQX1BPTElDRV0pOwpk aWZmIC0tZ2l0IGEvdGMvZl90Y2luZGV4LmMgYi90Yy9mX3RjaW5kZXguYwppbmRleCA3ODRj ODkwLi5kZDFjYjQ3IDEwMDY0NAotLS0gYS90Yy9mX3RjaW5kZXguYworKysgYi90Yy9mX3Rj aW5kZXguYwpAQCAtMTczLDcgKzE3Myw3IEBAIHN0YXRpYyBpbnQgdGNpbmRleF9wcmludF9v cHQoc3RydWN0IGZpbHRlcl91dGlsICpxdSwgRklMRSAqZiwKIAl9CiAJaWYgKHRiW1RDQV9U Q0lOREVYX0FDVF0pIHsKIAkJZnByaW50ZihmLCAiXG4iKTsKLQkJdGNfcHJpbnRfYWN0aW9u KGYsIHRiW1RDQV9UQ0lOREVYX0FDVF0pOworCQl0Y19wcmludF9hY3Rpb24oZiwgdGJbVENB X1RDSU5ERVhfQUNUXSwgMCk7CiAJfQogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvdGMv Zl91MzIuYyBiL3RjL2ZfdTMyLmMKaW5kZXggZmY3MDBlOS4uNGFiYjJmYSAxMDA2NDQKLS0t IGEvdGMvZl91MzIuYworKysgYi90Yy9mX3UzMi5jCkBAIC0xMzM3LDcgKzEzMzcsNyBAQCBz dGF0aWMgaW50IHUzMl9wcmludF9vcHQoc3RydWN0IGZpbHRlcl91dGlsICpxdSwgRklMRSAq Ziwgc3RydWN0IHJ0YXR0ciAqb3B0LAogCX0KIAogCWlmICh0YltUQ0FfVTMyX0FDVF0pCi0J CXRjX3ByaW50X2FjdGlvbihmLCB0YltUQ0FfVTMyX0FDVF0pOworCQl0Y19wcmludF9hY3Rp b24oZiwgdGJbVENBX1UzMl9BQ1RdLCAwKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0 IGEvdGMvbV9hY3Rpb24uYyBiL3RjL21fYWN0aW9uLmMKaW5kZXggNmViZTg1ZS4uODhhMzc3 YyAxMDA2NDQKLS0tIGEvdGMvbV9hY3Rpb24uYworKysgYi90Yy9tX2FjdGlvbi5jCkBAIC0z NDYsMjEgKzM0NiwyNCBAQCB0Y19wcmludF9hY3Rpb25fZmx1c2goRklMRSAqZiwgY29uc3Qg c3RydWN0IHJ0YXR0ciAqYXJnKQogfQogCiBpbnQKLXRjX3ByaW50X2FjdGlvbihGSUxFICpm LCBjb25zdCBzdHJ1Y3QgcnRhdHRyICphcmcpCit0Y19wcmludF9hY3Rpb24oRklMRSAqZiwg Y29uc3Qgc3RydWN0IHJ0YXR0ciAqYXJnLCB1bnNpZ25lZCBzaG9ydCB0b3RfYWN0cykKIHsK IAogCWludCBpOwotCXN0cnVjdCBydGF0dHIgKnRiW1RDQV9BQ1RfTUFYX1BSSU8gKyAxXTsK IAogCWlmIChhcmcgPT0gTlVMTCkKIAkJcmV0dXJuIDA7CiAKLQlwYXJzZV9ydGF0dHJfbmVz dGVkKHRiLCBUQ0FfQUNUX01BWF9QUklPLCBhcmcpOworCWlmICghdG90X2FjdHMpCisJCXRv dF9hY3RzID0gVENBX0FDVF9NQVhfUFJJTzsKKworCXN0cnVjdCBydGF0dHIgKnRiW3RvdF9h Y3RzICsgMV07CisJcGFyc2VfcnRhdHRyX25lc3RlZCh0YiwgdG90X2FjdHMsIGFyZyk7CiAK IAlpZiAodGFiX2ZsdXNoICYmIE5VTEwgIT0gdGJbMF0gICYmIE5VTEwgPT0gdGJbMV0pCiAJ CXJldHVybiB0Y19wcmludF9hY3Rpb25fZmx1c2goZiwgdGJbMF0pOwogCi0JZm9yIChpID0g MDsgaSA8IFRDQV9BQ1RfTUFYX1BSSU87IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCB0b3Rf YWN0czsgaSsrKSB7CiAJCWlmICh0YltpXSkgewogCQkJZnByaW50ZihmLCAiXG5cdGFjdGlv biBvcmRlciAlZDogIiwgaSk7CiAJCQlpZiAodGNfcHJpbnRfb25lX2FjdGlvbihmLCB0Yltp XSkgPCAwKSB7CkBAIC0zODAsNyArMzgzLDggQEAgaW50IHByaW50X2FjdGlvbihjb25zdCBz dHJ1Y3Qgc29ja2FkZHJfbmwgKndobywKIAlGSUxFICpmcCA9IChGSUxFICopYXJnOwogCXN0 cnVjdCB0Y2Ftc2cgKnQgPSBOTE1TR19EQVRBKG4pOwogCWludCBsZW4gPSBuLT5ubG1zZ19s ZW47Ci0Jc3RydWN0IHJ0YXR0ciAqdGJbVENBQV9NQVgrMV07CisJX191MzIgKnRvdF9hY3Rz ID0gTlVMTDsKKwlzdHJ1Y3QgcnRhdHRyICp0YltUQ0FfUk9PVF9NQVgrMV07CiAKIAlsZW4g LT0gTkxNU0dfTEVOR1RIKHNpemVvZigqdCkpOwogCkBAIC0zODksOCArMzkzLDEyIEBAIGlu dCBwcmludF9hY3Rpb24oY29uc3Qgc3RydWN0IHNvY2thZGRyX25sICp3aG8sCiAJCXJldHVy biAtMTsKIAl9CiAKLQlwYXJzZV9ydGF0dHIodGIsIFRDQUFfTUFYLCBUQV9SVEEodCksIGxl bik7CisJcGFyc2VfcnRhdHRyKHRiLCBUQ0FfUk9PVF9NQVgsIFRBX1JUQSh0KSwgbGVuKTsK KworCWlmICh0YltUQ0FfUk9PVF9DT1VOVF0pCisJCXRvdF9hY3RzID0gUlRBX0RBVEEodGJb VENBX1JPT1RfQ09VTlRdKTsKIAorCWZwcmludGYoZnAsICJ0b3RhbCBhY3RzICVkIFxuIiwg dG90X2FjdHM/KnRvdF9hY3RzOjApOwogCWlmICh0YltUQ0FfQUNUX1RBQl0gPT0gTlVMTCkg ewogCQlpZiAobi0+bmxtc2dfdHlwZSAhPSBSVE1fR0VUQUNUSU9OKQogCQkJZnByaW50Zihz dGRlcnIsICJwcmludF9hY3Rpb246IE5VTEwga2luZFxuIik7CkBAIC00MTQsNyArNDIyLDkg QEAgaW50IHByaW50X2FjdGlvbihjb25zdCBzdHJ1Y3Qgc29ja2FkZHJfbmwgKndobywKIAkJ CWZwcmludGYoZnAsICJSZXBsYWNlZCBhY3Rpb24gIik7CiAJCX0KIAl9Ci0JdGNfcHJpbnRf YWN0aW9uKGZwLCB0YltUQ0FfQUNUX1RBQl0pOworCisKKwl0Y19wcmludF9hY3Rpb24oZnAs IHRiW1RDQV9BQ1RfVEFCXSwgdG90X2FjdHM/KnRvdF9hY3RzOjApOwogCiAJcmV0dXJuIDA7 CiB9CkBAIC00MjcsNyArNDM3LDcgQEAgc3RhdGljIGludCB0Y19hY3Rpb25fZ2QoaW50IGNt ZCwgdW5zaWduZWQgaW50IGZsYWdzLCBpbnQgKmFyZ2NfcCwgY2hhciAqKiphcmd2X3AKIAlj aGFyICoqYXJndiA9ICphcmd2X3A7CiAJaW50IHByaW8gPSAwOwogCWludCByZXQgPSAwOwot CV9fdTMyIGk7CisJX191MzIgaSA9IDA7CiAJc3RydWN0IHJ0YXR0ciAqdGFpbDsKIAlzdHJ1 Y3QgcnRhdHRyICp0YWlsMjsKIAlzdHJ1Y3Qgbmxtc2doZHIgKmFucyA9IE5VTEw7CkBAIC00 OTgsNyArNTA4LDggQEAgc3RhdGljIGludCB0Y19hY3Rpb25fZ2QoaW50IGNtZCwgdW5zaWdu ZWQgaW50IGZsYWdzLCBpbnQgKmFyZ2NfcCwgY2hhciAqKiphcmd2X3AKIAkJdGFpbDIgPSBO TE1TR19UQUlMKCZyZXEubik7CiAJCWFkZGF0dHJfbCgmcmVxLm4sIE1BWF9NU0csICsrcHJp bywgTlVMTCwgMCk7CiAJCWFkZGF0dHJfbCgmcmVxLm4sIE1BWF9NU0csIFRDQV9BQ1RfS0lO RCwgaywgc3RybGVuKGspICsgMSk7Ci0JCWFkZGF0dHIzMigmcmVxLm4sIE1BWF9NU0csIFRD QV9BQ1RfSU5ERVgsIGkpOworCQlpZiAoaSA+IDApCisJCQlhZGRhdHRyMzIoJnJlcS5uLCBN QVhfTVNHLCBUQ0FfQUNUX0lOREVYLCBpKTsKIAkJdGFpbDItPnJ0YV9sZW4gPSAodm9pZCAq KSBOTE1TR19UQUlMKCZyZXEubikgLSAodm9pZCAqKSB0YWlsMjsKIAogCX0KQEAgLTU2MSwx MiArNTcyLDE2IEBAIHN0YXRpYyBpbnQgdGNfYWN0aW9uX21vZGlmeShpbnQgY21kLCB1bnNp Z25lZCBpbnQgZmxhZ3MsIGludCAqYXJnY19wLCBjaGFyICoqKmFyCiAJcmV0dXJuIHJldDsK IH0KIAotc3RhdGljIGludCB0Y19hY3RfbGlzdF9vcl9mbHVzaChpbnQgYXJnYywgY2hhciAq KmFyZ3YsIGludCBldmVudCkKK3N0YXRpYyBpbnQgdGNfYWN0X2xpc3Rfb3JfZmx1c2goaW50 ICphcmdjX3AsIGNoYXIgKioqYXJndl9wLCBpbnQgZXZlbnQpCiB7CisJc3RydWN0IHJ0YXR0 ciAqdGFpbCwgKnRhaWwyLCAqdGFpbDMsICp0YWlsNDsKIAlpbnQgcmV0ID0gMCwgcHJpbyA9 IDAsIG1zZ19zaXplID0gMDsKLQljaGFyIGtbMTZdOwotCXN0cnVjdCBydGF0dHIgKnRhaWws ICp0YWlsMjsKIAlzdHJ1Y3QgYWN0aW9uX3V0aWwgKmEgPSBOVUxMOworCXN0cnVjdCBfX25s YV9iaXRfZmxhZ3MgZmxhZ19zZWxlY3QgPSB7IDAgfTsKKwljaGFyICoqYXJndiA9ICphcmd2 X3A7CisJX191MzIgbXNlY19zaW5jZSA9IDA7CisJaW50IGFyZ2MgPSAqYXJnY19wOworCWNo YXIga1sxNl07CiAJc3RydWN0IHsKIAkJc3RydWN0IG5sbXNnaGRyICAgICAgICAgbjsKIAkJ c3RydWN0IHRjYW1zZyAgICAgICAgICAgdDsKQEAgLTU5NywxMSArNjEyLDM4IEBAIHN0YXRp YyBpbnQgdGNfYWN0X2xpc3Rfb3JfZmx1c2goaW50IGFyZ2MsIGNoYXIgKiphcmd2LCBpbnQg ZXZlbnQpCiAJfQogCXN0cm5jcHkoaywgKmFyZ3YsIHNpemVvZihrKSAtIDEpOwogCisJYXJn YyAtPSAxOworCWFyZ3YgKz0gMTsKKworCWZwcmludGYoc3RkZXJyLCAiJWQ6IDwlcz5cbiIs IGFyZ2MsICphcmd2KTsKKworCWlmIChhcmdjICYmIChzdHJjbXAoKmFyZ3YsICJzaW5jZSIp ID09IDApKSB7CisJICAgIE5FWFRfQVJHKCk7CisJICAgIGlmIChnZXRfdTMyKCZtc2VjX3Np bmNlLCAqYXJndiwgMCkpCisJCSAgICBpbnZhcmcoImR1bXAgdGltZSBcInNpbmNlXCIgaXMg aW52YWxpZCIsICphcmd2KTsKKwl9CisKIAlhZGRhdHRyX2woJnJlcS5uLCBNQVhfTVNHLCAr K3ByaW8sIE5VTEwsIDApOwogCWFkZGF0dHJfbCgmcmVxLm4sIE1BWF9NU0csIFRDQV9BQ1Rf S0lORCwgaywgc3RybGVuKGspICsgMSk7CiAJdGFpbDItPnJ0YV9sZW4gPSAodm9pZCAqKSBO TE1TR19UQUlMKCZyZXEubikgLSAodm9pZCAqKSB0YWlsMjsKIAl0YWlsLT5ydGFfbGVuID0g KHZvaWQgKikgTkxNU0dfVEFJTCgmcmVxLm4pIC0gKHZvaWQgKikgdGFpbDsKIAorCXRhaWwz ID0gTkxNU0dfVEFJTCgmcmVxLm4pOworCWZsYWdfc2VsZWN0Lm5sYV9mbGFnX3ZhbHVlcyB8 PSBUQ0FfRkxBR19MQVJHRV9EVU1QX09OOworCWZsYWdfc2VsZWN0Lm5sYV9mbGFnX3NlbGVj dG9yIHw9IFRDQV9GTEFHX0xBUkdFX0RVTVBfT047CisjaWYgMAorCWZsYWdfc2VsZWN0Lm5s YV9mbGFnX3ZhbHVlcyB8PSA4OyAvKiB0ZXN0IHJlamVjdGlvbiAqLworCWZsYWdfc2VsZWN0 Lm5sYV9mbGFnX3NlbGVjdG9yIHw9IDg7IC8qIHRlc3QgcmVqZWN0aW9uICovCisjZW5kaWYK KwlhZGRhdHRyX2woJnJlcS5uLCBNQVhfTVNHLCBUQ0FfUk9PVF9GTEFHUywgJmZsYWdfc2Vs ZWN0LAorCQkgIHNpemVvZihzdHJ1Y3QgX19ubGFfYml0X2ZsYWdzKSk7CisJdGFpbDMtPnJ0 YV9sZW4gPSAodm9pZCAqKSBOTE1TR19UQUlMKCZyZXEubikgLSAodm9pZCAqKSB0YWlsMzsK KwlpZiAobXNlY19zaW5jZSkgeworCQlmcHJpbnRmKHN0ZGVyciwgIlhYWDogc2luY2UgJWRc biIsIG1zZWNfc2luY2UpOworCQl0YWlsNCA9IE5MTVNHX1RBSUwoJnJlcS5uKTsKKwkJYWRk YXR0cjMyKCZyZXEubiwgTUFYX01TRywgVENBX1JPT1RfVElNRV9ERUxUQSwgbXNlY19zaW5j ZSk7CisJCXRhaWw0LT5ydGFfbGVuID0gKHZvaWQgKikgTkxNU0dfVEFJTCgmcmVxLm4pIC0g KHZvaWQgKikgdGFpbDQ7CisJfQogCW1zZ19zaXplID0gTkxNU0dfQUxJR04ocmVxLm4ubmxt c2dfbGVuKSAtIE5MTVNHX0FMSUdOKHNpemVvZihzdHJ1Y3Qgbmxtc2doZHIpKTsKIAogCWlm IChldmVudCA9PSBSVE1fR0VUQUNUSU9OKSB7CkBAIC02MjYsNiArNjY4LDggQEAgc3RhdGlj IGludCB0Y19hY3RfbGlzdF9vcl9mbHVzaChpbnQgYXJnYywgY2hhciAqKmFyZ3YsIGludCBl dmVudCkKIAogYmFkX3ZhbDoKIAorCSphcmdjX3AgPSBhcmdjOworCSphcmd2X3AgPSBhcmd2 OwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTY1NSwxMyArNjk5LDIxIEBAIGludCBkb19hY3Rp b24oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJCWFjdF91c2FnZSgpOwogCQkJCXJldHVy biAtMTsKIAkJCX0KLQkJCXJldHVybiB0Y19hY3RfbGlzdF9vcl9mbHVzaChhcmdjLTIsIGFy Z3YrMiwgUlRNX0dFVEFDVElPTik7CisKKwkJCWFyZ2MgLT0gMjsKKwkJCWFyZ3YgKz0gMjsK KwkJCXJldHVybiB0Y19hY3RfbGlzdF9vcl9mbHVzaCgmYXJnYywgJmFyZ3YsCisJCQkJCQkg ICAgUlRNX0dFVEFDVElPTik7CiAJCX0gZWxzZSBpZiAobWF0Y2hlcygqYXJndiwgImZsdXNo IikgPT0gMCkgewogCQkJaWYgKGFyZ2MgPD0gMikgewogCQkJCWFjdF91c2FnZSgpOwogCQkJ CXJldHVybiAtMTsKIAkJCX0KLQkJCXJldHVybiB0Y19hY3RfbGlzdF9vcl9mbHVzaChhcmdj LTIsIGFyZ3YrMiwgUlRNX0RFTEFDVElPTik7CisKKwkJCWFyZ2MgLT0gMjsKKwkJCWFyZ3Yg Kz0gMjsKKwkJCXJldHVybiB0Y19hY3RfbGlzdF9vcl9mbHVzaCgmYXJnYywgJmFyZ3YsCisJ CQkJCQkgICAgUlRNX0RFTEFDVElPTik7CiAJCX0gZWxzZSBpZiAobWF0Y2hlcygqYXJndiwg ImhlbHAiKSA9PSAwKSB7CiAJCQlhY3RfdXNhZ2UoKTsKIAkJCXJldHVybiAtMTsKZGlmZiAt LWdpdCBhL3RjL3RjX3V0aWwuaCBiL3RjL3RjX3V0aWwuaAppbmRleCA0ZGIyNmM2Li5hZjU3 OGY5IDEwMDY0NAotLS0gYS90Yy90Y191dGlsLmgKKysrIGIvdGMvdGNfdXRpbC5oCkBAIC0x MDYsNyArMTA2LDcgQEAgaW50IGFjdF9wYXJzZV9wb2xpY2Uoc3RydWN0IGFjdGlvbl91dGls ICphLCBpbnQgKmFyZ2NfcCwKIAkJICAgICBjaGFyICoqKmFyZ3ZfcCwgaW50IHRjYV9pZCwg c3RydWN0IG5sbXNnaGRyICpuKTsKIGludCBwcmludF9wb2xpY2Uoc3RydWN0IGFjdGlvbl91 dGlsICphLCBGSUxFICpmLCBzdHJ1Y3QgcnRhdHRyICp0Yik7CiBpbnQgcG9saWNlX3ByaW50 X3hzdGF0cyhzdHJ1Y3QgYWN0aW9uX3V0aWwgKmEsIEZJTEUgKmYsIHN0cnVjdCBydGF0dHIg KnRiKTsKLWludCB0Y19wcmludF9hY3Rpb24oRklMRSAqZiwgY29uc3Qgc3RydWN0IHJ0YXR0 ciAqdGIpOworaW50IHRjX3ByaW50X2FjdGlvbihGSUxFICpmLCBjb25zdCBzdHJ1Y3QgcnRh dHRyICp0YiwgdW5zaWduZWQgc2hvcnQgdG90X2FjdHMpOwogaW50IHRjX3ByaW50X2lwdChG SUxFICpmLCBjb25zdCBzdHJ1Y3QgcnRhdHRyICp0Yik7CiBpbnQgcGFyc2VfYWN0aW9uKGlu dCAqYXJnY19wLCBjaGFyICoqKmFyZ3ZfcCwgaW50IHRjYV9pZCwgc3RydWN0IG5sbXNnaGRy ICpuKTsKIHZvaWQgcHJpbnRfdG0oRklMRSAqZiwgY29uc3Qgc3RydWN0IHRjZl90ICp0bSk7 Cg== --------------6898A43B6FBF8964B73D3B19--