From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00050.outbound.protection.outlook.com [40.107.0.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 06A5D3B29E for ; Tue, 19 Mar 2019 16:08:57 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=darbyshire-bryant.me.uk; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pQ5pV99td3ZQdGSQ207d153Z8Cqla8LvdVLYJ7r0F7s=; b=CF74jr2wncbyS2REmo2/TYbl+z6vB9mEmV68mUCBB7t6CyiUhRO6gBABHL+Bf6SoARujOrgLFpZ8kODiXP8D0BcLvWVv/jKqHZTaMSpHHmqxwMM8e1ApPRWSIqfG/8jU/b4MA9Q4IovSQe1RfYe7DoLN2AbYhz2JdZdDfESA8/o= Received: from VI1PR0302MB2750.eurprd03.prod.outlook.com (10.171.105.143) by VI1PR0302MB2639.eurprd03.prod.outlook.com (10.171.104.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1709.13; Tue, 19 Mar 2019 20:08:56 +0000 Received: from VI1PR0302MB2750.eurprd03.prod.outlook.com ([fe80::a8fc:70f:5750:d2d8]) by VI1PR0302MB2750.eurprd03.prod.outlook.com ([fe80::a8fc:70f:5750:d2d8%9]) with mapi id 15.20.1709.015; Tue, 19 Mar 2019 20:08:56 +0000 From: Kevin Darbyshire-Bryant To: Cake List Thread-Topic: act_conndscp Thread-Index: AQHU3o+V0krsmLCp20udW+vqBkE70Q== Date: Tue, 19 Mar 2019 20:08:56 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=kevin@darbyshire-bryant.me.uk; x-originating-ip: [2a02:c7f:1240:ee00::c904] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 37042cae-fb07-4bbd-59fc-08d6aca6b798 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(7021145)(8989299)(4534185)(7022145)(4603075)(4627221)(201702281549075)(8990200)(7048125)(7024125)(7027125)(7023125)(5600127)(711020)(4605104)(2017052603328)(7153060)(49563074)(7193020); SRVR:VI1PR0302MB2639; x-ms-traffictypediagnostic: VI1PR0302MB2639: x-microsoft-antispam-prvs: x-forefront-prvs: 0981815F2F x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(376002)(346002)(39830400003)(366004)(136003)(199004)(189003)(476003)(2616005)(97736004)(486006)(33656002)(186003)(81156014)(8676002)(508600001)(36756003)(14454004)(8936002)(68736007)(5660300002)(74482002)(46003)(256004)(81166006)(6116002)(7736002)(25786009)(6512007)(86362001)(102836004)(6506007)(305945005)(558084003)(99286004)(106356001)(105586002)(2906002)(83716004)(316002)(71190400001)(71200400001)(53936002)(6486002)(82746002)(6916009)(99936001)(6436002)(7116003); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0302MB2639; H:VI1PR0302MB2750.eurprd03.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: darbyshire-bryant.me.uk does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: eCampxaiExgeGPp1rmgleSuFtIPqDAoPm463iAe0/BArDrenshNcXPt0q9yl8drSC7l0oawvJOdFKPNPBiHmrI6WcTUjJong9q1rfxR0trNnsTAZ4qIBC+M8JNAHQ2c0JCG0ZW6P0y2NgpN+i2QlYS7wKmgo4v6QR0LwurqbRwzNg3DbizrCTCaoc1u7eC0sd6b+wxKS2q+/kjzS1YTpxoI18weVUiQzMnErAoulxNuO1/wcutCvek8y7VyvHPKFbqA26f71DoAICJdbzxkjxAudDZI7AjMLhjZBRHi6g2SUHI2u9CFMIS4GERz+lvDcHygcfJiObn4n3JJir0lqjFV0FbXPRuwkaUjbyP3U+IRR/fiAxDMR87/b1rjZoSV0lPPHNM6qjrnTkgUuh89c62cRXtJ11rUHWo6njWgJzkg= Content-Type: multipart/mixed; boundary="_004_AC91C6259B9C49B893EA62CF398206B4darbyshirebryantmeuk_" MIME-Version: 1.0 X-OriginatorOrg: darbyshire-bryant.me.uk X-MS-Exchange-CrossTenant-Network-Message-Id: 37042cae-fb07-4bbd-59fc-08d6aca6b798 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Mar 2019 20:08:56.2445 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9151708b-c553-406f-8e56-694f435154a4 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB2639 Subject: [Cake] act_conndscp X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Mar 2019 20:08:58 -0000 --_004_AC91C6259B9C49B893EA62CF398206B4darbyshirebryantmeuk_ Content-Type: text/plain; charset="utf-8" Content-ID: <0BE43190C5C52749B4AA24E5628BAFFE@eurprd03.prod.outlook.com> Content-Transfer-Encoding: base64 SeKAmW0gbm90IGxvb2tpbmcgZm9yd2FyZCB0byB0aGUgcmVzcG9uc2UvcyBmcm9tIHVwc3RyZWFt IGJ1dCB3ZSBzaGFsbCBzZWUgOi0pDQoNCkhlcmUgYXJlIHRoZSBwYXRjaGVzIGZvciBhIG5ldyB0 YyBhY3Rpb24gY29ubmRzY3AgLSBib3RoIHRoZSBrZXJuZWwgbW9kdWxlIGFuZCB0Y+KAmXMgY29u dHJvbCBvZiBpdC4NCg0KDQoNCg0KQ2hlZXJzLA0KDQpLZXZpbiBELUINCg0KZ3BnOiAwMTJDIEFD QjIgMjhDNiBDNTNFIDk3NzUgIDkxMjMgQjNBMiAzODlCIDlERTIgMzM0QQ0K --_004_AC91C6259B9C49B893EA62CF398206B4darbyshirebryantmeuk_ Content-Type: application/octet-stream; name="0001-initial-experimental-support-for-act_conndscp.patch" Content-Description: 0001-initial-experimental-support-for-act_conndscp.patch Content-Disposition: attachment; filename="0001-initial-experimental-support-for-act_conndscp.patch"; size=6961; creation-date="Tue, 19 Mar 2019 20:08:56 GMT"; modification-date="Tue, 19 Mar 2019 20:08:56 GMT" Content-ID: <7D77FFBDA16574468B6D8B62AEDE132F@eurprd03.prod.outlook.com> Content-Transfer-Encoding: base64 RnJvbSBkZDY3ODVjMTA2ODEzMWIwYmE2MzY3MTMxNDcyMjhkMWJlNTNmZmQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLZXZpbiBEYXJieXNoaXJlLUJyeWFudCA8bGRpckBkYXJieXNo aXJlLWJyeWFudC5tZS51az4KRGF0ZTogRnJpLCAxNSBNYXIgMjAxOSAwOTozNTozNyArMDAwMApT dWJqZWN0OiBbUEFUQ0hdIGluaXRpYWwgZXhwZXJpbWVudGFsIHN1cHBvcnQgZm9yIGFjdF9jb25u ZHNjcAoKU2lnbmVkLW9mZi1ieTogS2V2aW4gRGFyYnlzaGlyZS1CcnlhbnQgPGxkaXJAZGFyYnlz aGlyZS1icnlhbnQubWUudWs+Ci0tLQogaW5jbHVkZS91YXBpL2xpbnV4L3RjX2FjdC90Y19jb25u ZHNjcC5oIHwgIDMzICsrKysKIHRjL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMSArCiB0Yy9tX2Nvbm5kc2NwLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMDMg KysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDIzNyBpbnNlcnRpb25z KCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS91YXBpL2xpbnV4L3RjX2FjdC90Y19jb25u ZHNjcC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGMvbV9jb25uZHNjcC5jCgpkaWZmIC0tZ2l0IGEv aW5jbHVkZS91YXBpL2xpbnV4L3RjX2FjdC90Y19jb25uZHNjcC5oIGIvaW5jbHVkZS91YXBpL2xp bnV4L3RjX2FjdC90Y19jb25uZHNjcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwLi5lODU3ODMzYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC90Y19h Y3QvdGNfY29ubmRzY3AuaApAQCAtMCwwICsxLDMzIEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqLworI2lmbmRlZiBfX1VBUElf VENfQ09OTkRTQ1BfSAorI2RlZmluZSBfX1VBUElfVENfQ09OTkRTQ1BfSAorCisjaW5jbHVkZSA8 bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9wa3RfY2xzLmg+CisKKyNkZWZpbmUgVENB X0FDVF9DT05ORFNDUCA5OQorCitzdHJ1Y3QgdGNfY29ubmRzY3AgeworCXRjX2dlbjsKKwlfX3Ux NiB6b25lOworCV9fdTMyIG1hc2s7CisJX191MzIgc3RhdGVtYXNrOworCV9fdTggbW9kZTsKKwlf X3U4IG1hc2tzaGlmdDsKK307CisKK2VudW0geworCVRDQV9DT05ORFNDUF9VTlNQRUMsCisJVENB X0NPTk5EU0NQX1BBUk1TLAorCVRDQV9DT05ORFNDUF9UTSwKKwlUQ0FfQ09OTkRTQ1BfUEFELAor CV9fVENBX0NPTk5EU0NQX01BWAorfTsKKyNkZWZpbmUgVENBX0NPTk5EU0NQX01BWCAoX19UQ0Ff Q09OTkRTQ1BfTUFYIC0gMSkKKworZW51bSB7CisJQ09OTkRTQ1BfRkxBR19HRVREU0NQCT0gQklU KDApLAorCUNPTk5EU0NQX0ZMQUdfU0VURFNDUAk9IEJJVCgxKQorfTsKKworI2VuZGlmCmRpZmYg LS1naXQgYS90Yy9NYWtlZmlsZSBiL3RjL01ha2VmaWxlCmluZGV4IDJlZGFmMmM4Li42YWI2NGYw ZiAxMDA2NDQKLS0tIGEvdGMvTWFrZWZpbGUKKysrIGIvdGMvTWFrZWZpbGUKQEAgLTQ3LDYgKzQ3 LDcgQEAgVENNT0RVTEVTICs9IG1fc2tibW9kLm8KIFRDTU9EVUxFUyArPSBtX2NzdW0ubwogVENN T0RVTEVTICs9IG1fc2ltcGxlLm8KIFRDTU9EVUxFUyArPSBtX3ZsYW4ubworVENNT0RVTEVTICs9 IG1fY29ubmRzY3AubwogVENNT0RVTEVTICs9IG1fY29ubm1hcmsubwogVENNT0RVTEVTICs9IG1f YnBmLm8KIFRDTU9EVUxFUyArPSBtX3R1bm5lbF9rZXkubwpkaWZmIC0tZ2l0IGEvdGMvbV9jb25u ZHNjcC5jIGIvdGMvbV9jb25uZHNjcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwLi41NmM3YTU1NQotLS0gL2Rldi9udWxsCisrKyBiL3RjL21fY29ubmRzY3AuYwpAQCAtMCww ICsxLDIwMyBAQAorLyoKKyAqIG1fY29ubmRzY3AuYwkJbmV0ZmlsdGVyIGNvbm5kc2NwIGRzY3A8 LT5jb25udHJhY2sgbWFyayBhY3Rpb24KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTkgS2V2aW4g RGFyYnlzaGlyZS1CcnlhbnQgPGxkaXJAZGFyYnlzaGlyZS1icnlhbnQubWUudWs+CisgKgorICog VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCisgKiB2ZXJzaW9uIDIsIGFzIHB1Ymxpc2hlZCBi eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKKyAq IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI QU5UQUJJTElUWSBvcgorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvcgorICogbW9yZSBkZXRhaWxzLgorICoK KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFsb25nIHdpdGgKKyAqIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcz4uCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+Cisj aW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RyaW5n Lmg+CisjaW5jbHVkZSAidXRpbHMuaCIKKyNpbmNsdWRlICJ0Y191dGlsLmgiCisjaW5jbHVkZSA8 bGludXgvdGNfYWN0L3RjX2Nvbm5kc2NwLmg+CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29ubmRz Y3BfbW9kZXNbXSA9IHsKKwkiP2ludmFsaWQiLAorCSJnZXQiLAorCSJzZXQiLAorCSJib3RoIiwK K307CisKK3N0YXRpYyB2b2lkCitleHBsYWluKHZvaWQpCit7CisJZnByaW50ZihzdGRlcnIsICJV c2FnZTogLi4uIGNvbm5kc2NwIG1hc2sgTUFTSyBzdGF0ZW1hc2sgU1RBVEVNQVNLIG1vZGUgc2V0 L2dldC9ib3RoIFt6b25lIFpPTkVdIFtDT05UUk9MXSBbaW5kZXggPElOREVYPl1cbiIpOworCWZw cmludGYoc3RkZXJyLCAid2hlcmUgOlxuIgorCQkiXHRNQVNLIGlzIHRoZSBiaXRtYXNrIHRvIHN0 b3JlL3Jlc3RvcmUgRFNDUFxuIgorCQkiXHRTVEFURU1BU0sgaXMgdGhlIGJpdG1hc2sgdG8gZGV0 ZXJtaW5lIGNvbmRpdGlvbmFsIHN0b3JpbmcvcmVzdG9yaW5nXG4iCisJCSJcdE1PREUgZ2V0ICh0 eXBpY2FsbHkgaW5ncmVzcykgc2V0ICh0eXBpY2FsbHkgZWdyZXNzKVxuIgorCQkiXHRaT05FIGlz IHRoZSBjb25udHJhY2sgem9uZVxuIgorCQkiXHRDT05UUk9MIDo9IHJlY2xhc3NpZnkgfCBwaXBl IHwgZHJvcCB8IGNvbnRpbnVlIHwgb2sgfFxuIgorCQkiXHQgICAgICAgICAgIGdvdG8gY2hhaW4g PENIQUlOX0lOREVYPlxuIik7Cit9CisKK3N0YXRpYyB2b2lkCit1c2FnZSh2b2lkKQoreworCWV4 cGxhaW4oKTsKKwlleGl0KC0xKTsKK30KKworc3RhdGljIGludAorcGFyc2VfY29ubmRzY3Aoc3Ry dWN0IGFjdGlvbl91dGlsICphLCBpbnQgKmFyZ2NfcCwgY2hhciAqKiphcmd2X3AsIGludCB0Y2Ff aWQsCisJICAgICAgc3RydWN0IG5sbXNnaGRyICpuKQoreworCXN0cnVjdCB0Y19jb25uZHNjcCBz ZWwgPSB7fTsKKwljaGFyICoqYXJndiA9ICphcmd2X3A7CisJaW50IGFyZ2MgPSAqYXJnY19wOwor CWludCBvayA9IDA7CisJc3RydWN0IHJ0YXR0ciAqdGFpbDsKKworCXdoaWxlIChhcmdjID4gMCkg eworCQlpZiAobWF0Y2hlcygqYXJndiwgImNvbm5kc2NwIikgPT0gMCkgeworCQkJb2sgPSAxOwor CQkJYXJnYy0tOworCQkJYXJndisrOworCQl9IGVsc2UgaWYgKG1hdGNoZXMoKmFyZ3YsICJoZWxw IikgPT0gMCkgeworCQkJdXNhZ2UoKTsKKwkJfSBlbHNlIHsKKwkJCWJyZWFrOworCQl9CisKKwl9 CisKKwlpZiAoIW9rKSB7CisJCWV4cGxhaW4oKTsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmIChh cmdjKSB7CisJCWlmIChtYXRjaGVzKCphcmd2LCAibWFzayIpID09IDApIHsKKwkJCU5FWFRfQVJH KCk7CisJCQlpZiAoZ2V0X3UzMigmc2VsLm1hc2ssICphcmd2LCAwKSkgeworCQkJCWZwcmludGYo c3RkZXJyLCAiY29ubmRzY3A6IElsbGVnYWwgXCJtYXNrXCJcbiIpOworCQkJCXJldHVybiAtMTsK KwkJCX0KKwkJCWFyZ2MtLTsKKwkJCWFyZ3YrKzsKKwkJfQorCX0KKworCWlmIChhcmdjKSB7CisJ CWlmIChtYXRjaGVzKCphcmd2LCAic3RhdGVtYXNrIikgPT0gMCkgeworCQkJTkVYVF9BUkcoKTsK KwkJCWlmIChnZXRfdTMyKCZzZWwuc3RhdGVtYXNrLCAqYXJndiwgMCkpIHsKKwkJCQlmcHJpbnRm KHN0ZGVyciwgImNvbm5kc2NwOiBJbGxlZ2FsIFwic3RhdGVtYXNrXCJcbiIpOworCQkJCXJldHVy biAtMTsKKwkJCX0KKwkJCWFyZ2MtLTsKKwkJCWFyZ3YrKzsKKwkJfQorCX0KKworCWlmIChhcmdj KSB7CisJCWlmIChtYXRjaGVzKCphcmd2LCAibW9kZSIpID09IDApIHsKKwkJCU5FWFRfQVJHKCk7 CisJCQlpZiAobWF0Y2hlcygqYXJndiwgInNldCIpID09IDApCisJCQkJc2VsLm1vZGUgfD0gQ09O TkRTQ1BfRkxBR19TRVREU0NQOworCQkJZWxzZSBpZiAobWF0Y2hlcygqYXJndiwgImdldCIpID09 IDApCisJCQkJc2VsLm1vZGUgfD0gQ09OTkRTQ1BfRkxBR19HRVREU0NQOworCQkJZWxzZSBpZiAo bWF0Y2hlcygqYXJndiwgImJvdGgiKSA9PSAwKQorCQkJCXNlbC5tb2RlIHw9IChDT05ORFNDUF9G TEFHX0dFVERTQ1AgfCBDT05ORFNDUF9GTEFHX1NFVERTQ1ApOworCQkJZWxzZSB7CisJCQkJZnBy aW50ZihzdGRlcnIsICJjb25uZHNjcDogSWxsZWdhbCBcIm1vZGVcIlxuIik7CisJCQkJcmV0dXJu IC0xOworCQkJfQorCQkJYXJnYy0tOworCQkJYXJndisrOworCQl9CisJfQorCisJaWYgKGFyZ2Mp IHsKKwkJaWYgKG1hdGNoZXMoKmFyZ3YsICJ6b25lIikgPT0gMCkgeworCQkJTkVYVF9BUkcoKTsK KwkJCWlmIChnZXRfdTE2KCZzZWwuem9uZSwgKmFyZ3YsIDEwKSkgeworCQkJCWZwcmludGYoc3Rk ZXJyLCAiY29ubmRzY3A6IElsbGVnYWwgXCJ6b25lXCJcbiIpOworCQkJCXJldHVybiAtMTsKKwkJ CX0KKwkJCWFyZ2MtLTsKKwkJCWFyZ3YrKzsKKwkJfQorCX0KKworCXBhcnNlX2FjdGlvbl9jb250 cm9sX2RmbHQoJmFyZ2MsICZhcmd2LCAmc2VsLmFjdGlvbiwgZmFsc2UsIFRDX0FDVF9QSVBFKTsK KworCWlmIChhcmdjKSB7CisJCWlmIChtYXRjaGVzKCphcmd2LCAiaW5kZXgiKSA9PSAwKSB7CisJ CQlORVhUX0FSRygpOworCQkJaWYgKGdldF91MzIoJnNlbC5pbmRleCwgKmFyZ3YsIDEwKSkgewor CQkJCWZwcmludGYoc3RkZXJyLCAiY29ubmRzY3A6IElsbGVnYWwgXCJpbmRleFwiXG4iKTsKKwkJ CQlyZXR1cm4gLTE7CisJCQl9CisJCQlhcmdjLS07CisJCQlhcmd2Kys7CisJCX0KKwl9CisKKwl0 YWlsID0gYWRkYXR0cl9uZXN0KG4sIE1BWF9NU0csIHRjYV9pZCk7CisJYWRkYXR0cl9sKG4sIE1B WF9NU0csIFRDQV9DT05ORFNDUF9QQVJNUywgJnNlbCwgc2l6ZW9mKHNlbCkpOworCWFkZGF0dHJf bmVzdF9lbmQobiwgdGFpbCk7CisKKwkqYXJnY19wID0gYXJnYzsKKwkqYXJndl9wID0gYXJndjsK KwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBwcmludF9jb25uZHNjcChzdHJ1Y3QgYWN0aW9u X3V0aWwgKmF1LCBGSUxFICpmLCBzdHJ1Y3QgcnRhdHRyICphcmcpCit7CisJc3RydWN0IHJ0YXR0 ciAqdGJbVENBX0NPTk5EU0NQX01BWCArIDFdOworCXN0cnVjdCB0Y19jb25uZHNjcCAqY2k7CisK KwlpZiAoYXJnID09IE5VTEwpCisJCXJldHVybiAtMTsKKworCXBhcnNlX3J0YXR0cl9uZXN0ZWQo dGIsIFRDQV9DT05ORFNDUF9NQVgsIGFyZyk7CisJaWYgKHRiW1RDQV9DT05ORFNDUF9QQVJNU10g PT0gTlVMTCkgeworCQlwcmludF9zdHJpbmcoUFJJTlRfRlAsIE5VTEwsICIlcyIsICJbTlVMTCBj b25uZHNjcCBwYXJhbWV0ZXJzXSIpOworCQlyZXR1cm4gLTE7CisJfQorCisJY2kgPSBSVEFfREFU QSh0YltUQ0FfQ09OTkRTQ1BfUEFSTVNdKTsKKworCXByaW50X3N0cmluZyhQUklOVF9BTlksICJr aW5kIiwgIiVzICIsICJjb25uZHNjcCIpOworCXByaW50X3VpbnQoUFJJTlRfQU5ZLCAiem9uZSIs ICJ6b25lICV1IiwgY2ktPnpvbmUpOworCXByaW50X2FjdGlvbl9jb250cm9sKGYsICIgIiwgY2kt PmFjdGlvbiwgIiIpOworCisJcHJpbnRfc3RyaW5nKFBSSU5UX0ZQLCBOVUxMLCAiJXMiLCBfU0xf KTsKKwlwcmludF91aW50KFBSSU5UX0FOWSwgImluZGV4IiwgIlx0IGluZGV4ICV1IiwgY2ktPmlu ZGV4KTsKKwlwcmludF9pbnQoUFJJTlRfQU5ZLCAicmVmIiwgIiByZWYgJWQiLCBjaS0+cmVmY250 KTsKKwlwcmludF9pbnQoUFJJTlRfQU5ZLCAiYmluZCIsICIgYmluZCAlZCIsIGNpLT5iaW5kY250 KTsKKwlwcmludF91aW50KFBSSU5UX0FOWSwgIm1hc2siLCAiIG1hc2sgMHglMDh4IiwgY2ktPm1h c2spOworCXByaW50X3VpbnQoUFJJTlRfQU5ZLCAic3RhdGVtYXNrIiwgIiBzdGF0ZW1hc2sgMHgl MDh4IiwgY2ktPnN0YXRlbWFzayk7CisJcHJpbnRfc3RyaW5nKFBSSU5UX0FOWSwgIm1vZGUiLCAi IG1vZGUgJXMiLCBjb25uZHNjcF9tb2Rlc1tjaS0+bW9kZSAmIDB4M10pOworCisJaWYgKHNob3df c3RhdHMpIHsKKwkJaWYgKHRiW1RDQV9DT05ORFNDUF9UTV0pIHsKKwkJCXN0cnVjdCB0Y2ZfdCAq dG0gPSBSVEFfREFUQSh0YltUQ0FfQ09OTkRTQ1BfVE1dKTsKKworCQkJcHJpbnRfdG0oZiwgdG0p OworCQl9CisJfQorCXByaW50X3N0cmluZyhQUklOVF9GUCwgTlVMTCwgIiVzIiwgX1NMXyk7CisK KwlyZXR1cm4gMDsKK30KKworc3RydWN0IGFjdGlvbl91dGlsIGNvbm5kc2NwX2FjdGlvbl91dGls ID0geworCS5pZCA9ICJjb25uZHNjcCIsCisJLnBhcnNlX2FvcHQgPSBwYXJzZV9jb25uZHNjcCwK KwkucHJpbnRfYW9wdCA9IHByaW50X2Nvbm5kc2NwLAorfTsKLS0gCjIuMTcuMiAoQXBwbGUgR2l0 LTExMykKCg== --_004_AC91C6259B9C49B893EA62CF398206B4darbyshirebryantmeuk_ Content-Type: application/octet-stream; name="0001-net-sched-Introduce-conndscp-action-5.0.patch" Content-Description: 0001-net-sched-Introduce-conndscp-action-5.0.patch Content-Disposition: attachment; filename="0001-net-sched-Introduce-conndscp-action-5.0.patch"; size=15340; creation-date="Tue, 19 Mar 2019 20:08:56 GMT"; modification-date="Tue, 19 Mar 2019 20:08:56 GMT" Content-ID: Content-Transfer-Encoding: base64 RnJvbSAyN2NhYTM0NjhiMjQxYmU4NmUzMjIwZDQ1ZTYyOTc3NDFkNWQ1MGI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLZXZpbiBEYXJieXNoaXJlLUJyeWFudCA8bGRpckBkYXJieXNo aXJlLWJyeWFudC5tZS51az4KRGF0ZTogV2VkLCAxMyBNYXIgMjAxOSAyMDo1NDo0OSArMDAwMApT dWJqZWN0OiBbUEFUQ0hdIG5ldDogc2NoZWQ6IEludHJvZHVjZSBjb25uZHNjcCBhY3Rpb24KCkNv bm5kc2NwIGlzIGEgbmV3IHRjIGZpbHRlciBhY3Rpb24gbW9kdWxlLiAgSXQgaXMgZGVzaWduZWQg dG8gY29weSBEU0NQcwp0byBjb25udHJhY2sgbWFya3MgYW5kIHRoZSByZXZlcnNlIG9wZXJhdGlv biBvZiBjb25udHJhY2sgbWFyayBjb250YWluZWQKRFNDUHMgdG8gdGhlIGRpZmZzZXJ2IGZpZWxk IG9mIHN1aXRhYmxlIHNrYnMuCgpUaGUgZmVhdHVyZSBpcyBpbnRlbmRlZCBmb3IgdXNlIGFuZCBo YXMgYmVlbiBmb3VuZCB1c2VmdWwgZm9yIHJlc3RvcmluZwppbmdyZXNzIGNsYXNzaWZpY2F0aW9u cyBiYXNlZCBvbiBlZ3Jlc3MgY2xhc3NpZmljYXRpb25zIGFjcm9zcyBsaW5rcwp0aGF0IGJsZWFj aCBvciBvdGhlcndpc2UgY2hhbmdlIERTQ1AsIHR5cGljYWxseSBob21lIElTUCBJbnRlcm5ldCBs aW5rcy4KUmVzdG9yaW5nIERTQ1Agb24gaW5ncmVzcyBvbiB0aGUgV0FOIGxpbmsgYWxsb3dzIHFk aXNjcyBzdWNoIGFzIENBS0UgdG8Kc2hhcGUgaW5ib3VuZCBwYWNrZXRzIGFjY29yZGluZyB0byBw b2xpY2llcyB0aGF0IGFyZSBlYXNpZXIgdG8gaW1wbGVtZW50Cm9uIGVncmVzcy4KCkluZ3Jlc3Mg Y2xhc3NpZmljYXRpb24gaXMgdHJhZGl0aW9uYWxseSBhIGNoYWxsZW5naW5nIHRhc2sgc2luY2UK aXB0YWJsZXMgcnVsZXMgaGF2ZW4ndCB5ZXQgcnVuIGFuZCB0YyBmaWx0ZXIvZUJQRiBwcm9ncmFt cyBhcmUgcHJlLU5BVApsb29rdXBzLCBoZW5jZSBhcmUgdW5hYmxlIHRvIHNlZSBpbnRlcm5hbCBJ UHY0IGFkZHJlc3NlcyBhcyB1c2VkIG9uIHRoZQp0eXBpY2FsIGhvbWUgbWFzcXVlcmFkaW5nIGdh dGV3YXkuCgpjb25uZHNjcCB1bmRlcnN0YW5kcyB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnM6Cgpt YXNrIC0gYSAzMiBiaXQgbWFzayBvZiBhdCBsZWFzdCA2IGNvbnRpZ3VvdXMgYml0cyB3aGVyZSBj b25uZHNjcCB3aWxsCnBsYWNlIHRoZSBEU0NQIGluIGNvbm50cmFjayBtYXJrLiAgVGhlIERTQ1Ag aXMgbGVmdC1zaGlmdGVkIGJ5IHRoZQpudW1iZXIgb2YgdW5zZXQgbG93ZXIgYml0cyBvZiB0aGUg bWFzayBiZWZvcmUgc3RvcmluZyBpbnRvIHRoZSBtYXJrCmZpZWxkLgoKc3RhdGVtYXNrIC0gYSAz MiBiaXQgbWFzayBvZiAodXN1YWxseSkgMSBiaXQgbGVuZ3RoLCBvdXRzaWRlIHRoZSBhcmVhCnNw ZWNpZmllZCBieSBtYXNrLiAgVGhpcyByZXByZXNlbnRzIGEgY29uZGl0aW9uYWwgb3BlcmF0aW9u IGZsYWcgLSBnZXQKd2lsbCBvbmx5IHN0b3JlIHRoZSBEU0NQIGlmIHRoZSBmbGFnIGlzIHVuc2V0 LiAgc2V0IHdpbGwgb25seSByZXN0b3JlCnRoZSBEU0NQIGlmIHRoZSBmbGFnIGlzIHNldC4gIFRo aXMgaXMgdXNlZnVsIHRvIGltcGxlbWVudCBhICdvbmUgc2hvdCcKaXB0YWJsZXMgYmFzZWQgY2xh c3NpZmljYXRpb24gd2hlcmUgdGhlICdjb21wbGljYXRlZCcgaXB0YWJsZXMgcnVsZXMgYXJlCm9u bHkgcnVuIG9uY2UgdG8gY2xhc3NpZnkgdGhlIGNvbm5lY3Rpb24gb24gaW5pdGlhbCAoZWdyZXNz KSBwYWNrZXQgYW5kCnN1YnNlcXVlbnQgcGFja2V0cyBhcmUgYWxsIG1hcmtlZC9yZXN0b3JlZCB3 aXRoIHRoZSBzYW1lIERTQ1AuICBBIG1hc2sKb2YgemVybyBkaXNhYmxlcyB0aGUgY29uZGl0aW9u YWwgYmVoYXZpb3VyLgoKbW9kZSAtIGdldC9zZXQvYm90aCAtIGdldCBzdG9yZXMgdGhlIERTQ1Ag aW50byB0aGUgbWFyaywgc2V0IHJlc3RvcmVzCnRoZSBEU0NQIGludG8gdGhlIGRpZmZzZXJ2IGZp ZWxkIGZyb20gdGhlIG1hcmssIGJvdGggJ2dldHMnIHRoZSBtYXJrIGFuZAp0aGVuICdzZXRzJyBp dCBpbiB0aGF0IG9yZGVyLgoKb3B0aW9uYWwgcGFyYW1ldGVyczoKCnpvbmUgLSBjb25udHJhY2sg em9uZQoKY29udHJvbCAtIGFjdGlvbiByZWxhdGVkIGNvbnRyb2wgKHJlY2xhc3NpZnkgfCBwaXBl IHwgZHJvcCB8IGNvbnRpbnVlIHwKb2sgfCBnb3RvIGNoYWluIDxDSEFJTl9JTkRFWD4KClNpZ25l ZC1vZmYtYnk6IEtldmluIERhcmJ5c2hpcmUtQnJ5YW50IDxsZGlyQGRhcmJ5c2hpcmUtYnJ5YW50 Lm1lLnVrPgotLS0KIGluY2x1ZGUvbmV0L3RjX2FjdC90Y19jb25uZHNjcC5oICAgICAgICAgIHwg IDE5ICsrCiBpbmNsdWRlL3VhcGkvbGludXgvdGNfYWN0L3RjX2Nvbm5kc2NwLmggICB8ICAzMyAr KysKIG5ldC9zY2hlZC9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEzICsKIG5l dC9zY2hlZC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIG5ldC9zY2hl ZC9hY3RfY29ubmRzY3AuYyAgICAgICAgICAgICAgICAgIHwgMzMzICsrKysrKysrKysrKysrKysr KysrKysKIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3RjLXRlc3RpbmcvY29uZmlnIHwgICAxICsK IDYgZmlsZXMgY2hhbmdlZCwgNDAwIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBp bmNsdWRlL25ldC90Y19hY3QvdGNfY29ubmRzY3AuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1 ZGUvdWFwaS9saW51eC90Y19hY3QvdGNfY29ubmRzY3AuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IG5l dC9zY2hlZC9hY3RfY29ubmRzY3AuYwoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3RjX2FjdC90 Y19jb25uZHNjcC5oIGIvaW5jbHVkZS9uZXQvdGNfYWN0L3RjX2Nvbm5kc2NwLmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40Y2IzMjhmYzQ4N2QKLS0tIC9kZXYvbnVs bAorKysgYi9pbmNsdWRlL25ldC90Y19hY3QvdGNfY29ubmRzY3AuaApAQCAtMCwwICsxLDE5IEBA CisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworI2lmbmRlZiBfX05FVF9U Q19DT05ORFNDUF9ICisjZGVmaW5lIF9fTkVUX1RDX0NPTk5EU0NQX0gKKworI2luY2x1ZGUgPG5l dC9hY3RfYXBpLmg+CisKK3N0cnVjdCB0Y2ZfY29ubmRzY3BfaW5mbyB7CisJc3RydWN0IHRjX2Fj dGlvbiBjb21tb247CisJc3RydWN0IG5ldCAqbmV0OworCXUxNiB6b25lOworCXUzMiBtYXNrOwor CXUzMiBzdGF0ZW1hc2s7CisJdTggbW9kZTsKKwl1OCBtYXNrc2hpZnQ7Cit9OworCisjZGVmaW5l IHRvX2Nvbm5kc2NwKGEpICgoc3RydWN0IHRjZl9jb25uZHNjcF9pbmZvICopYSkKKworI2VuZGlm IC8qIF9fTkVUX1RDX0NPTk5EU0NQX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51 eC90Y19hY3QvdGNfY29ubmRzY3AuaCBiL2luY2x1ZGUvdWFwaS9saW51eC90Y19hY3QvdGNfY29u bmRzY3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjA4OTdiNWQ2 YjBjZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC90Y19hY3QvdGNfY29u bmRzY3AuaApAQCAtMCwwICsxLDMzIEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BM LTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqLworI2lmbmRlZiBfX1VBUElfVENfQ09OTkRT Q1BfSAorI2RlZmluZSBfX1VBUElfVENfQ09OTkRTQ1BfSAorCisjaW5jbHVkZSA8bGludXgvdHlw ZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9wa3RfY2xzLmg+CisKKyNkZWZpbmUgVENBX0FDVF9DT05O RFNDUCAyNworCitzdHJ1Y3QgdGNfY29ubmRzY3AgeworCXRjX2dlbjsKKwlfX3UxNiB6b25lOwor CV9fdTMyIG1hc2s7CisJX191MzIgc3RhdGVtYXNrOworCV9fdTggbW9kZTsKKwlfX3U4IG1hc2tz aGlmdDsKK307CisKK2VudW0geworCVRDQV9DT05ORFNDUF9VTlNQRUMsCisJVENBX0NPTk5EU0NQ X1BBUk1TLAorCVRDQV9DT05ORFNDUF9UTSwKKwlUQ0FfQ09OTkRTQ1BfUEFELAorCV9fVENBX0NP Tk5EU0NQX01BWAorfTsKKyNkZWZpbmUgVENBX0NPTk5EU0NQX01BWCAoX19UQ0FfQ09OTkRTQ1Bf TUFYIC0gMSkKKworZW51bSB7CisJQ09OTkRTQ1BfRkxBR19HRVREU0NQCT0gQklUKDApLAorCUNP Tk5EU0NQX0ZMQUdfU0VURFNDUAk9IEJJVCgxKQorfTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9u ZXQvc2NoZWQvS2NvbmZpZyBiL25ldC9zY2hlZC9LY29uZmlnCmluZGV4IDFiOWFmZGVlNWJhOS4u ZjQzNzg4YjlkMzMyIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvS2NvbmZpZworKysgYi9uZXQvc2No ZWQvS2NvbmZpZwpAQCAtODY1LDYgKzg2NSwxOSBAQCBjb25maWcgTkVUX0FDVF9CUEYKIAkgIFRv IGNvbXBpbGUgdGhpcyBjb2RlIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKIAkgIG1v ZHVsZSB3aWxsIGJlIGNhbGxlZCBhY3RfYnBmLgogCitjb25maWcgTkVUX0FDVF9DT05ORFNDUAor ICAgICAgICB0cmlzdGF0ZSAiRFNDUCB0byBOZXRmaWx0ZXIgQ29ubmVjdGlvbiBNYXJrIFN0b3Jl L1JldHJpZXZlciIKKyAgICAgICAgZGVwZW5kcyBvbiBORVRfQ0xTX0FDVCAmJiBORVRGSUxURVIg JiYgSVBfTkZfSVBUQUJMRVMKKyAgICAgICAgZGVwZW5kcyBvbiBORl9DT05OVFJBQ0sgJiYgTkZf Q09OTlRSQUNLX01BUksKKyAgICAgICAgLS0taGVscC0tLQorCSAgU2F5IFkgaGVyZSB0byBhbGxv dyBzdG9yaW5nIG9mIERTQ1AgaW50byBjb25uIG1hcmsKKwkgIGFuZCB2aWNlIHZlcmNhCisKKwkg IElmIHVuc3VyZSwgc2F5IE4uCisKKwkgIFRvIGNvbXBpbGUgdGhpcyBjb2RlIGFzIGEgbW9kdWxl LCBjaG9vc2UgTSBoZXJlOiB0aGUKKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBhY3RfY29ubm1h cmsuCisKIGNvbmZpZyBORVRfQUNUX0NPTk5NQVJLCiAgICAgICAgIHRyaXN0YXRlICJOZXRmaWx0 ZXIgQ29ubmVjdGlvbiBNYXJrIFJldHJpZXZlciIKICAgICAgICAgZGVwZW5kcyBvbiBORVRfQ0xT X0FDVCAmJiBORVRGSUxURVIgJiYgSVBfTkZfSVBUQUJMRVMKZGlmZiAtLWdpdCBhL25ldC9zY2hl ZC9NYWtlZmlsZSBiL25ldC9zY2hlZC9NYWtlZmlsZQppbmRleCA4YTQwNDMxZDdiNWMuLmI3ODE5 ODk0NDYxOCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL01ha2VmaWxlCisrKyBiL25ldC9zY2hlZC9N YWtlZmlsZQpAQCAtMjAsNiArMjAsNyBAQCBvYmotJChDT05GSUdfTkVUX0FDVF9TS0JFRElUKQkr PSBhY3Rfc2tiZWRpdC5vCiBvYmotJChDT05GSUdfTkVUX0FDVF9DU1VNKQkrPSBhY3RfY3N1bS5v CiBvYmotJChDT05GSUdfTkVUX0FDVF9WTEFOKQkrPSBhY3Rfdmxhbi5vCiBvYmotJChDT05GSUdf TkVUX0FDVF9CUEYpCSs9IGFjdF9icGYubworb2JqLSQoQ09ORklHX05FVF9BQ1RfQ09OTkRTQ1Ap CSs9IGFjdF9jb25uZHNjcC5vCiBvYmotJChDT05GSUdfTkVUX0FDVF9DT05OTUFSSykJKz0gYWN0 X2Nvbm5tYXJrLm8KIG9iai0kKENPTkZJR19ORVRfQUNUX1NLQk1PRCkJKz0gYWN0X3NrYm1vZC5v CiBvYmotJChDT05GSUdfTkVUX0FDVF9JRkUpCSs9IGFjdF9pZmUubwpkaWZmIC0tZ2l0IGEvbmV0 L3NjaGVkL2FjdF9jb25uZHNjcC5jIGIvbmV0L3NjaGVkL2FjdF9jb25uZHNjcC5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOGVlODdlMmFiODE0Ci0tLSAvZGV2L251 bGwKKysrIGIvbmV0L3NjaGVkL2FjdF9jb25uZHNjcC5jCkBAIC0wLDAgKzEsMzMzIEBACisvKiBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAq LworLyogbmV0L3NjaGVkL2FjdF9jb25uZHNjcC5jICBuZXRmaWx0ZXIgY29ubmRzY3AgZHNjcDwt PmNvbm5tYXJrIGFjdGlvbgorICoKKyAqIENvcHlyaWdodCAoYykgMjAxOSBLZXZpbiBEYXJieXNo aXJlLUJyeWFudCA8bGRpckBkYXJieXNoaXJlLWJyeWFudC5tZS51az4KKyAqCisgKiBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNs dWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8 bGludXgvc2tidWZmLmg+CisjaW5jbHVkZSA8bGludXgvcnRuZXRsaW5rLmg+CisjaW5jbHVkZSA8 bGludXgvcGt0X2Nscy5oPgorI2luY2x1ZGUgPGxpbnV4L2lwLmg+CisjaW5jbHVkZSA8bGludXgv aXB2Ni5oPgorI2luY2x1ZGUgPG5ldC9uZXRsaW5rLmg+CisjaW5jbHVkZSA8bmV0L3BrdF9zY2hl ZC5oPgorI2luY2x1ZGUgPG5ldC9hY3RfYXBpLmg+CisjaW5jbHVkZSA8dWFwaS9saW51eC90Y19h Y3QvdGNfY29ubmRzY3AuaD4KKyNpbmNsdWRlIDxuZXQvdGNfYWN0L3RjX2Nvbm5kc2NwLmg+CisK KyNpbmNsdWRlIDxuZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFjay5oPgorI2luY2x1ZGUgPG5ldC9u ZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2NvcmUuaD4KKyNpbmNsdWRlIDxuZXQvbmV0ZmlsdGVyL25m X2Nvbm50cmFja19lY2FjaGUuaD4KKyNpbmNsdWRlIDxuZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFj a196b25lcy5oPgorCitzdGF0aWMgdW5zaWduZWQgaW50IGNvbm5kc2NwX25ldF9pZDsKK3N0YXRp YyBzdHJ1Y3QgdGNfYWN0aW9uX29wcyBhY3RfY29ubmRzY3Bfb3BzOworCitzdGF0aWMgdm9pZCB0 Y2ZfY29ubmRzY3BfZ2V0KHN0cnVjdCBuZl9jb25uICpjdCwgc3RydWN0IHRjZl9jb25uZHNjcF9p bmZvICpjYSwKKwkJCSAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IHByb3RvKQoreworCXUz MiBuZXdtYXJrOworCXU4IGRzY3A7CisKKwkvKiBtYXJrIGRvZXMgbm90IGNvbnRhaW4gRFNDUCBz byBzdG9yZSBEU0NQIGJpdHMgaW50byBjLT5tYXJrICovCisJc3dpdGNoIChwcm90bykgeworCWNh c2UgTkZQUk9UT19JUFY0OgorCQlkc2NwID0gaXB2NF9nZXRfZHNmaWVsZChpcF9oZHIoc2tiKSkg Pj4gMjsKKwkJYnJlYWs7CisJY2FzZSBORlBST1RPX0lQVjY6CisJCWRzY3AgPSBpcHY2X2dldF9k c2ZpZWxkKGlwdjZfaGRyKHNrYikpID4+IDI7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWRzY3Ag PSAwOworCQlicmVhazsKKwl9CisJbmV3bWFyayA9IGN0LT5tYXJrICYgfihjYS0+bWFzayB8IGNh LT5zdGF0ZW1hc2spOworCW5ld21hcmsgfD0gKGRzY3AgPDwgY2EtPm1hc2tzaGlmdCkgfCBjYS0+ c3RhdGVtYXNrOworCWlmIChjdC0+bWFyayAhPSBuZXdtYXJrKSB7CisJCS8qIHVzaW5nIHJlcXVl dWVzIHN0YXRzIHRvIGNvdW50IGhvdyBtYW55IGNvbm5tYXJrIHVwZGF0ZXMgKi8KKwkJY2EtPnRj Zl9xc3RhdHMucmVxdWV1ZXMrKzsKKwkJY3QtPm1hcmsgPSBuZXdtYXJrOworCQluZl9jb25udHJh Y2tfZXZlbnRfY2FjaGUoSVBDVF9NQVJLLCBjdCk7CisJfQorfQorCitzdGF0aWMgdm9pZCB0Y2Zf Y29ubmRzY3Bfc2V0KHN0cnVjdCBuZl9jb25uICpjdCwgc3RydWN0IHRjZl9jb25uZHNjcF9pbmZv ICpjYSwKKwkJCSAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IHByb3RvKQoreworCXU4IG5l d2RzY3A7CisKKwluZXdkc2NwID0gKCgoY3QtPm1hcmsgJiBjYS0+bWFzaykgPj4gY2EtPm1hc2tz aGlmdCkgPDwgMikgJgorCQkgICAgIH5JTkVUX0VDTl9NQVNLOworCisJLyogbWFyayBjb250YWlu cyBEU0NQIHNvIHJlc3RvcmUgRFNDUCBiaXRzIGZyb20gYy0+bWFyayBpbnRvIGRpZmZzZXJ2ICov CisJLyogdXNpbmcgb3ZlcmxpbWl0cyBzdGF0cyB0byBjb3VudCBob3cgbWFueSBEU0NQIHVwZGF0 ZXMgKi8KKwlzd2l0Y2ggKHByb3RvKSB7CisJY2FzZSBORlBST1RPX0lQVjQ6CisJCWlmICgoaXB2 NF9nZXRfZHNmaWVsZChpcF9oZHIoc2tiKSkgJiB+SU5FVF9FQ05fTUFTSykgIT0KKwkJICAgICBu ZXdkc2NwKSB7CisJCQlpcHY0X2NoYW5nZV9kc2ZpZWxkKGlwX2hkcihza2IpLCBJTkVUX0VDTl9N QVNLLAorCQkJCQkgICAgbmV3ZHNjcCk7CisJCQljYS0+dGNmX3FzdGF0cy5vdmVybGltaXRzKys7 CisJCX0KKwkJYnJlYWs7CisJY2FzZSBORlBST1RPX0lQVjY6CisJCWlmICgoaXB2Nl9nZXRfZHNm aWVsZChpcHY2X2hkcihza2IpKSAmCisJCSAgICAgfklORVRfRUNOX01BU0spICE9IG5ld2RzY3Ap IHsKKwkJCWlwdjZfY2hhbmdlX2RzZmllbGQoaXB2Nl9oZHIoc2tiKSwgSU5FVF9FQ05fTUFTSywK KwkJCQkJICAgIG5ld2RzY3ApOworCQkJY2EtPnRjZl9xc3RhdHMub3ZlcmxpbWl0cysrOworCQl9 CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KK30KKworc3RhdGljIGludCB0Y2Zf Y29ubmRzY3BfYWN0KHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCB0Y19hY3Rpb24g KmEsCisJCQkgICAgc3RydWN0IHRjZl9yZXN1bHQgKnJlcykKK3sKKwljb25zdCBzdHJ1Y3QgbmZf Y29ubnRyYWNrX3R1cGxlX2hhc2ggKnRoYXNoOworCXN0cnVjdCBuZl9jb25udHJhY2tfdHVwbGUg dHVwbGU7CisJZW51bSBpcF9jb25udHJhY2tfaW5mbyBjdGluZm87CisJc3RydWN0IHRjZl9jb25u ZHNjcF9pbmZvICpjYSA9IHRvX2Nvbm5kc2NwKGEpOworCXN0cnVjdCBuZl9jb25udHJhY2tfem9u ZSB6b25lOworCXN0cnVjdCBuZl9jb25uICpjdDsKKwlpbnQgcHJvdG87CisKKwlzcGluX2xvY2so JmNhLT50Y2ZfbG9jayk7CisJdGNmX2xhc3R1c2VfdXBkYXRlKCZjYS0+dGNmX3RtKTsKKwlic3Rh dHNfdXBkYXRlKCZjYS0+dGNmX2JzdGF0cywgc2tiKTsKKworCWlmIChza2ItPnByb3RvY29sID09 IGh0b25zKEVUSF9QX0lQKSkgeworCQlpZiAoc2tiLT5sZW4gPCBzaXplb2Yoc3RydWN0IGlwaGRy KSkKKwkJCWdvdG8gb3V0OworCisJCXByb3RvID0gTkZQUk9UT19JUFY0OworCX0gZWxzZSBpZiAo c2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF9JUFY2KSkgeworCQlpZiAoc2tiLT5sZW4gPCBz aXplb2Yoc3RydWN0IGlwdjZoZHIpKQorCQkJZ290byBvdXQ7CisKKwkJcHJvdG8gPSBORlBST1RP X0lQVjY7CisJfSBlbHNlIHsKKwkJZ290byBvdXQ7CisJfQorCisJY3QgPSBuZl9jdF9nZXQoc2ti LCAmY3RpbmZvKTsKKwlpZiAoY3QpIHsKKwkJaWYgKGNhLT5tb2RlICYgQ09OTkRTQ1BfRkxBR19T RVREU0NQICYmCisJCSAgICAoIWNhLT5zdGF0ZW1hc2sgfHwgKGN0LT5tYXJrICYgY2EtPnN0YXRl bWFzaykpKQorCQkJdGNmX2Nvbm5kc2NwX3NldChjdCwgY2EsIHNrYiwgcHJvdG8pOworCQllbHNl IGlmIChjYS0+bW9kZSAmIENPTk5EU0NQX0ZMQUdfR0VURFNDUCAmJgorCQkJICghY2EtPnN0YXRl bWFzayB8fCAhKGN0LT5tYXJrICYgY2EtPnN0YXRlbWFzaykpKQorCQkJdGNmX2Nvbm5kc2NwX2dl dChjdCwgY2EsIHNrYiwgcHJvdG8pOworCQlnb3RvIG91dDsKKwl9CisKKwlpZiAoIW5mX2N0X2dl dF90dXBsZXByKHNrYiwgc2tiX25ldHdvcmtfb2Zmc2V0KHNrYiksCisJCQkgICAgICAgcHJvdG8s IGNhLT5uZXQsICZ0dXBsZSkpCisJCWdvdG8gb3V0OworCisJem9uZS5pZCA9IGNhLT56b25lOwor CXpvbmUuZGlyID0gTkZfQ1RfREVGQVVMVF9aT05FX0RJUjsKKworCXRoYXNoID0gbmZfY29ubnRy YWNrX2ZpbmRfZ2V0KGNhLT5uZXQsICZ6b25lLCAmdHVwbGUpOworCWlmICghdGhhc2gpCisJCWdv dG8gb3V0OworCisJY3QgPSBuZl9jdF90dXBsZWhhc2hfdG9fY3RyYWNrKHRoYXNoKTsKKwlpZiAo Y2EtPm1vZGUgJiBDT05ORFNDUF9GTEFHX1NFVERTQ1AgJiYKKwkgICAgKCFjYS0+c3RhdGVtYXNr IHx8IChjdC0+bWFyayAmIGNhLT5zdGF0ZW1hc2spKSkKKwkJdGNmX2Nvbm5kc2NwX3NldChjdCwg Y2EsIHNrYiwgcHJvdG8pOworCWVsc2UgaWYgKGNhLT5tb2RlICYgQ09OTkRTQ1BfRkxBR19HRVRE U0NQICYmCisJCSAoIWNhLT5zdGF0ZW1hc2sgfHwgIShjdC0+bWFyayAmIGNhLT5zdGF0ZW1hc2sp KSkKKwkJdGNmX2Nvbm5kc2NwX2dldChjdCwgY2EsIHNrYiwgcHJvdG8pOworCW5mX2N0X3B1dChj dCk7CisKK291dDoKKwlzcGluX3VubG9jaygmY2EtPnRjZl9sb2NrKTsKKwlyZXR1cm4gY2EtPnRj Zl9hY3Rpb247Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBjb25uZHNjcF9w b2xpY3lbVENBX0NPTk5EU0NQX01BWCArIDFdID0geworCVtUQ0FfQ09OTkRTQ1BfUEFSTVNdID0g eyAubGVuID0gc2l6ZW9mKHN0cnVjdCB0Y19jb25uZHNjcCkgfSwKK307CisKK3N0YXRpYyB2b2lk IGNvbm5kc2NwX3Bhcm1zZXQoc3RydWN0IHRjZl9jb25uZHNjcF9pbmZvICpjaSwKKwkJCSAgICAg c3RydWN0IHRjX2Nvbm5kc2NwICpwYXJtKQoreworCWNpLT50Y2ZfYWN0aW9uID0gcGFybS0+YWN0 aW9uOworCWNpLT56b25lID0gcGFybS0+em9uZTsKKwljaS0+bWFzayA9IHBhcm0tPm1hc2s7CisJ Y2ktPm1hc2tzaGlmdCA9IGNpLT5tYXNrID8gX19mZnMoY2ktPm1hc2spIDogMDsKKwljaS0+c3Rh dGVtYXNrID0gcGFybS0+c3RhdGVtYXNrOworCWNpLT5tb2RlID0gcGFybS0+bW9kZTsKKworCS8q IGxldCdzIG5vdCB0cnVzdCB1c2Vyc3BhY2UgZW50aXJlbHkgKi8KKwkvKiBuZWVkIGF0IGxlYXN0 IGNvbnRpZ3VvdXMgNiBiaXQgbWFzayAqLworCWlmICgoMHgzZiAmIChjaS0+bWFzayA+PiBjaS0+ bWFza3NoaWZ0KSkgIT0gMHgzZikKKwkJY2ktPm1vZGUgPSAwOworCWlmIChjaS0+bWFzayAmIGNp LT5zdGF0ZW1hc2spCisJCWNpLT5tb2RlID0gMDsKK30KKworc3RhdGljIGludCB0Y2ZfY29ubmRz Y3BfaW5pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKm5sYSwKKwkJCSAgICAgc3Ry dWN0IG5sYXR0ciAqZXN0LCBzdHJ1Y3QgdGNfYWN0aW9uICoqYSwKKwkJCSAgICAgaW50IG92ciwg aW50IGJpbmQsIGJvb2wgcnRubF9oZWxkLAorCQkJICAgICBzdHJ1Y3QgbmV0bGlua19leHRfYWNr ICpleHRhY2spCit7CisJc3RydWN0IHRjX2FjdGlvbl9uZXQgKnRuID0gbmV0X2dlbmVyaWMobmV0 LCBjb25uZHNjcF9uZXRfaWQpOworCXN0cnVjdCBubGF0dHIgKnRiW1RDQV9DT05ORFNDUF9NQVgg KyAxXTsKKwlzdHJ1Y3QgdGNmX2Nvbm5kc2NwX2luZm8gKmNpOworCXN0cnVjdCB0Y19jb25uZHNj cCAqcGFybTsKKwlpbnQgcmV0ID0gMDsKKworCWlmICghbmxhKQorCQlyZXR1cm4gLUVJTlZBTDsK KworCXJldCA9IG5sYV9wYXJzZV9uZXN0ZWQodGIsIFRDQV9DT05ORFNDUF9NQVgsIG5sYSwgY29u bmRzY3BfcG9saWN5LAorCQkJICAgICAgIE5VTEwpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4g cmV0OworCisJaWYgKCF0YltUQ0FfQ09OTkRTQ1BfUEFSTVNdKQorCQlyZXR1cm4gLUVJTlZBTDsK KworCXBhcm0gPSBubGFfZGF0YSh0YltUQ0FfQ09OTkRTQ1BfUEFSTVNdKTsKKworCXJldCA9IHRj Zl9pZHJfY2hlY2tfYWxsb2ModG4sICZwYXJtLT5pbmRleCwgYSwgYmluZCk7CisJaWYgKCFyZXQp IHsKKwkJcmV0ID0gdGNmX2lkcl9jcmVhdGUodG4sIHBhcm0tPmluZGV4LCBlc3QsIGEsCisJCQkJ ICAgICAmYWN0X2Nvbm5kc2NwX29wcywgYmluZCwgZmFsc2UpOworCQlpZiAocmV0KQorCQkJcmV0 dXJuIHJldDsKKworCQljaSA9IHRvX2Nvbm5kc2NwKCphKTsKKwkJY2ktPm5ldCA9IG5ldDsKKwkJ Y29ubmRzY3BfcGFybXNldChjaSwgcGFybSk7CisKKwkJdGNmX2lkcl9pbnNlcnQodG4sICphKTsK KwkJcmV0ID0gQUNUX1BfQ1JFQVRFRDsKKwl9IGVsc2UgaWYgKHJldCA+IDApIHsKKwkJY2kgPSB0 b19jb25uZHNjcCgqYSk7CisJCWlmIChiaW5kKQorCQkJcmV0dXJuIDA7CisJCXRjZl9pZHJfcmVs ZWFzZSgqYSwgYmluZCk7CisJCWlmICghb3ZyKQorCQkJcmV0dXJuIC1FRVhJU1Q7CisJCS8qIHJl cGxhY2luZyBhY3Rpb24gYW5kIHpvbmUgKi8KKwkJc3Bpbl9sb2NrX2JoKCZjaS0+dGNmX2xvY2sp OworCQljb25uZHNjcF9wYXJtc2V0KGNpLCBwYXJtKTsKKwkJc3Bpbl91bmxvY2tfYmgoJmNpLT50 Y2ZfbG9jayk7CisJCXJldCA9IDA7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGlu bGluZSBpbnQgdGNmX2Nvbm5kc2NwX2R1bXAoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHRj X2FjdGlvbiAqYSwKKwkJCQkgICAgaW50IGJpbmQsIGludCByZWYpCit7CisJdW5zaWduZWQgY2hh ciAqYiA9IHNrYl90YWlsX3BvaW50ZXIoc2tiKTsKKwlzdHJ1Y3QgdGNmX2Nvbm5kc2NwX2luZm8g KmNpID0gdG9fY29ubmRzY3AoYSk7CisJc3RydWN0IHRjX2Nvbm5kc2NwIG9wdCA9IHsKKwkJLmlu ZGV4ICAgPSBjaS0+dGNmX2luZGV4LAorCQkucmVmY250ICA9IHJlZmNvdW50X3JlYWQoJmNpLT50 Y2ZfcmVmY250KSAtIHJlZiwKKwkJLmJpbmRjbnQgPSBhdG9taWNfcmVhZCgmY2ktPnRjZl9iaW5k Y250KSAtIGJpbmQsCisJfTsKKwlzdHJ1Y3QgdGNmX3QgdDsKKworCXNwaW5fbG9ja19iaCgmY2kt PnRjZl9sb2NrKTsKKwlvcHQuYWN0aW9uID0gY2ktPnRjZl9hY3Rpb247CisJb3B0LnpvbmUgPSBj aS0+em9uZTsKKwlvcHQubWFzayA9IGNpLT5tYXNrOworCW9wdC5zdGF0ZW1hc2sgPSBjaS0+c3Rh dGVtYXNrOworCW9wdC5tb2RlID0gY2ktPm1vZGU7CisKKwlpZiAobmxhX3B1dChza2IsIFRDQV9D T05ORFNDUF9QQVJNUywgc2l6ZW9mKG9wdCksICZvcHQpKQorCQlnb3RvIG5sYV9wdXRfZmFpbHVy ZTsKKworCXRjZl90bV9kdW1wKCZ0LCAmY2ktPnRjZl90bSk7CisJaWYgKG5sYV9wdXRfNjRiaXQo c2tiLCBUQ0FfQ09OTkRTQ1BfVE0sIHNpemVvZih0KSwgJnQsCisJCQkgIFRDQV9DT05ORFNDUF9Q QUQpKQorCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsKKwlzcGluX3VubG9ja19iaCgmY2ktPnRjZl9s b2NrKTsKKworCXJldHVybiBza2ItPmxlbjsKKworbmxhX3B1dF9mYWlsdXJlOgorCXNwaW5fdW5s b2NrX2JoKCZjaS0+dGNmX2xvY2spOworCW5sbXNnX3RyaW0oc2tiLCBiKTsKKwlyZXR1cm4gLTE7 Cit9CisKK3N0YXRpYyBpbnQgdGNmX2Nvbm5kc2NwX3dhbGtlcihzdHJ1Y3QgbmV0ICpuZXQsIHN0 cnVjdCBza19idWZmICpza2IsCisJCQkgICAgICAgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNi LCBpbnQgdHlwZSwKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdGNfYWN0aW9uX29wcyAqb3BzLAor CQkJICAgICAgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaykKK3sKKwlzdHJ1Y3QgdGNf YWN0aW9uX25ldCAqdG4gPSBuZXRfZ2VuZXJpYyhuZXQsIGNvbm5kc2NwX25ldF9pZCk7CisKKwly ZXR1cm4gdGNmX2dlbmVyaWNfd2Fsa2VyKHRuLCBza2IsIGNiLCB0eXBlLCBvcHMsIGV4dGFjayk7 Cit9CisKK3N0YXRpYyBpbnQgdGNmX2Nvbm5kc2NwX3NlYXJjaChzdHJ1Y3QgbmV0ICpuZXQsIHN0 cnVjdCB0Y19hY3Rpb24gKiphLCB1MzIgaW5kZXgpCit7CisJc3RydWN0IHRjX2FjdGlvbl9uZXQg KnRuID0gbmV0X2dlbmVyaWMobmV0LCBjb25uZHNjcF9uZXRfaWQpOworCisJcmV0dXJuIHRjZl9p ZHJfc2VhcmNoKHRuLCBhLCBpbmRleCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdGNfYWN0aW9uX29w cyBhY3RfY29ubmRzY3Bfb3BzID0geworCS5raW5kCQk9CSJjb25uZHNjcCIsCisJLnR5cGUJCT0J VENBX0FDVF9DT05ORFNDUCwKKwkub3duZXIJCT0JVEhJU19NT0RVTEUsCisJLmFjdAkJPQl0Y2Zf Y29ubmRzY3BfYWN0LAorCS5kdW1wCQk9CXRjZl9jb25uZHNjcF9kdW1wLAorCS5pbml0CQk9CXRj Zl9jb25uZHNjcF9pbml0LAorCS53YWxrCQk9CXRjZl9jb25uZHNjcF93YWxrZXIsCisJLmxvb2t1 cAkJPQl0Y2ZfY29ubmRzY3Bfc2VhcmNoLAorCS5zaXplCQk9CXNpemVvZihzdHJ1Y3QgdGNmX2Nv bm5kc2NwX2luZm8pLAorfTsKKworc3RhdGljIF9fbmV0X2luaXQgaW50IGNvbm5kc2NwX2luaXRf bmV0KHN0cnVjdCBuZXQgKm5ldCkKK3sKKwlzdHJ1Y3QgdGNfYWN0aW9uX25ldCAqdG4gPSBuZXRf Z2VuZXJpYyhuZXQsIGNvbm5kc2NwX25ldF9pZCk7CisKKwlyZXR1cm4gdGNfYWN0aW9uX25ldF9p bml0KHRuLCAmYWN0X2Nvbm5kc2NwX29wcyk7Cit9CisKK3N0YXRpYyB2b2lkIF9fbmV0X2V4aXQg Y29ubmRzY3BfZXhpdF9uZXQoc3RydWN0IGxpc3RfaGVhZCAqbmV0X2xpc3QpCit7CisJdGNfYWN0 aW9uX25ldF9leGl0KG5ldF9saXN0LCBjb25uZHNjcF9uZXRfaWQpOworfQorCitzdGF0aWMgc3Ry dWN0IHBlcm5ldF9vcGVyYXRpb25zIGNvbm5kc2NwX25ldF9vcHMgPSB7CisJLmluaXQgPSBjb25u ZHNjcF9pbml0X25ldCwKKwkuZXhpdF9iYXRjaCA9IGNvbm5kc2NwX2V4aXRfbmV0LAorCS5pZCAg ID0gJmNvbm5kc2NwX25ldF9pZCwKKwkuc2l6ZSA9IHNpemVvZihzdHJ1Y3QgdGNfYWN0aW9uX25l dCksCit9OworCitzdGF0aWMgaW50IF9faW5pdCBjb25uZHNjcF9pbml0X21vZHVsZSh2b2lkKQor eworCXJldHVybiB0Y2ZfcmVnaXN0ZXJfYWN0aW9uKCZhY3RfY29ubmRzY3Bfb3BzLCAmY29ubmRz Y3BfbmV0X29wcyk7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBjb25uZHNjcF9jbGVhbnVwX21v ZHVsZSh2b2lkKQoreworCXRjZl91bnJlZ2lzdGVyX2FjdGlvbigmYWN0X2Nvbm5kc2NwX29wcywg JmNvbm5kc2NwX25ldF9vcHMpOworfQorCittb2R1bGVfaW5pdChjb25uZHNjcF9pbml0X21vZHVs ZSk7Cittb2R1bGVfZXhpdChjb25uZHNjcF9jbGVhbnVwX21vZHVsZSk7CitNT0RVTEVfQVVUSE9S KCJLZXZpbiBEYXJieXNoaXJlLUJyeWFudCA8bGRpckBkYXJieXNoaXJlLWJyeWFudC5tZS51az4i KTsKK01PRFVMRV9ERVNDUklQVElPTigiRFNDUCB0byBDb25uZWN0aW9uIHRyYWNraW5nIG1hcmsg c3RvcmluZy9yZXN0b3JpbmciKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBh L3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3RjLXRlc3RpbmcvY29uZmlnIGIvdG9vbHMvdGVzdGlu Zy9zZWxmdGVzdHMvdGMtdGVzdGluZy9jb25maWcKaW5kZXggMjAzMzAyMDY1NDU4Li45ZDFmZGRj ZmI4ODcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3RjLXRlc3RpbmcvY29u ZmlnCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3RjLXRlc3RpbmcvY29uZmlnCkBAIC0z Nyw2ICszNyw3IEBAIENPTkZJR19ORVRfQUNUX1NLQkVESVQ9bQogQ09ORklHX05FVF9BQ1RfQ1NV TT1tCiBDT05GSUdfTkVUX0FDVF9WTEFOPW0KIENPTkZJR19ORVRfQUNUX0JQRj1tCitDT05GSUdf TkVUX0FDVF9DT05ORFNDUD1tCiBDT05GSUdfTkVUX0FDVF9DT05OTUFSSz1tCiBDT05GSUdfTkVU X0FDVF9TS0JNT0Q9bQogQ09ORklHX05FVF9BQ1RfSUZFPW0KLS0gCjIuMTcuMiAoQXBwbGUgR2l0 LTExMykKCg== --_004_AC91C6259B9C49B893EA62CF398206B4darbyshirebryantmeuk_ Content-Type: application/octet-stream; name="0001-net-sched-Introduce-conndscp-action-14.4.patch" Content-Description: 0001-net-sched-Introduce-conndscp-action-14.4.patch Content-Disposition: attachment; filename="0001-net-sched-Introduce-conndscp-action-14.4.patch"; size=14578; creation-date="Tue, 19 Mar 2019 20:08:56 GMT"; modification-date="Tue, 19 Mar 2019 20:08:56 GMT" Content-ID: <72169A2500333540B6C25C8CA1BE2EA6@eurprd03.prod.outlook.com> Content-Transfer-Encoding: base64 RnJvbSA1MjZhZDdkZDEyMjFhMTc2YWZlYTI4ZDBiNDVlNDY5ZjVjZmM0NmM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLZXZpbiBEYXJieXNoaXJlLUJyeWFudCA8bGRpckBkYXJieXNo aXJlLWJyeWFudC5tZS51az4KRGF0ZTogV2VkLCAxMyBNYXIgMjAxOSAyMDo1NDo0OSArMDAwMApT dWJqZWN0OiBbUEFUQ0hdIG5ldDogc2NoZWQ6IEludHJvZHVjZSBjb25uZHNjcCBhY3Rpb24KCldp dGggbmVydm91c25lc3MgYW5kIHRyZXBpZGF0aW9uIEknbSBzdWJtaXR0aW5nIHRoZSBhdHRhY2hl ZCBSRkMgcGF0Y2gKZm9yICdjb25uZHNjcCcuCgpDb25uZHNjcCBpcyBhIG5ldyB0YyBmaWx0ZXIg YWN0aW9uIG1vZHVsZS4gIEl0IGlzIGRlc2lnbmVkIHRvIGNvcHkgRFNDUHMKdG8gY29ubnRyYWNr IG1hcmtzIGFuZCB0aGUgcmV2ZXJzZSBvcGVyYXRpb24gb2YgY29ubnRyYWNrIG1hcmsgY29udGFp bmVkCkRTQ1BzIHRvIHRoZSBkaWZmc2VydiBmaWVsZCBvZiBzdWl0YWJsZSBza2JzLgoKVGhlIGZl YXR1cmUgaXMgaW50ZW5kZWQgZm9yIHVzZSBhbmQgaGFzIGJlZW4gZm91bmQgdXNlZnVsIGZvciBy ZXN0b3JpbmcKaW5ncmVzcyBjbGFzc2lmaWNhdGlvbnMgYmFzZWQgb24gZWdyZXNzIGNsYXNzaWZp Y2F0aW9ucyBhY3Jvc3MgbGlua3MKdGhhdCBibGVhY2ggb3Igb3RoZXJ3aXNlIGNoYW5nZSBEU0NQ LCB0eXBpY2FsbHkgaG9tZSBJU1AgSW50ZXJuZXQgbGlua3MuClJlc3RvcmluZyBEU0NQIG9uIGlu Z3Jlc3Mgb24gdGhlIFdBTiBsaW5rIGFsbG93cyBxZGlzY3Mgc3VjaCBhcyBDQUtFIHRvCnNoYXBl IGluYm91bmQgcGFja2V0cyBhY2NvcmRpbmcgdG8gcG9saWNpZXMgdGhhdCBhcmUgZWFzaWVyIHRv IGltcGxlbWVudApvbiBlZ3Jlc3MuCgpJbmdyZXNzIGNsYXNzaWZpY2F0aW9uIGlzIHRyYWRpdGlv bmFsbHkgYSBjaGFsbGVuZ2luZyB0YXNrIHNpbmNlCmlwdGFibGVzIHJ1bGVzIGhhdmVuJ3QgeWV0 IHJ1biBhbmQgdGMgZmlsdGVyL2VCUEYgcHJvZ3JhbXMgYXJlIHByZS1OQVQKbG9va3VwcywgaGVu Y2UgYXJlIHVuYWJsZSB0byBzZWUgaW50ZXJuYWwgSVB2NCBhZGRyZXNzZXMgYXMgdXNlZCBvbiB0 aGUKdHlwaWNhbCBob21lIG1hc3F1ZXJhZGluZyBnYXRld2F5LgoKY29ubmRzY3AgdW5kZXJzdGFu ZHMgdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzOgoKbWFzayAtIGEgMzIgYml0IG1hc2sgb2YgYXQg bGVhc3QgNiBjb250aWd1b3VzIGJpdHMgd2hlcmUgY29ubmRzY3Agd2lsbApwbGFjZSB0aGUgRFND UCBpbiBjb25udHJhY2sgbWFyay4gIFRoZSBEU0NQIGlzIGxlZnQtc2hpZnRlZCBieSB0aGUKbnVt YmVyIG9mIHVuc2V0IGxvd2VyIGJpdHMgb2YgdGhlIG1hc2sgYmVmb3JlIHN0b3JpbmcgaW50byB0 aGUgbWFyawpmaWVsZC4KCnN0YXRlbWFzayAtIGEgMzIgYml0IG1hc2sgb2YgKHVzdWFsbHkpIDEg Yml0IGxlbmd0aCwgb3V0c2lkZSB0aGUgYXJlYQpzcGVjaWZpZWQgYnkgbWFzay4gIFRoaXMgcmVw cmVzZW50cyBhIGNvbmRpdGlvbmFsIG9wZXJhdGlvbiBmbGFnIC0gZ2V0CndpbGwgb25seSBzdG9y ZSB0aGUgRFNDUCBpZiB0aGUgZmxhZyBpcyB1bnNldC4gIHNldCB3aWxsIG9ubHkgcmVzdG9yZQp0 aGUgRFNDUCBpZiB0aGUgZmxhZyBpcyBzZXQuICBUaGlzIGlzIHVzZWZ1bCB0byBpbXBsZW1lbnQg YSAnb25lIHNob3QnCmlwdGFibGVzIGJhc2VkIGNsYXNzaWZpY2F0aW9uIHdoZXJlIHRoZSAnY29t cGxpY2F0ZWQnIGlwdGFibGVzIHJ1bGVzIGFyZQpvbmx5IHJ1biBvbmNlIHRvIGNsYXNzaWZ5IHRo ZSBjb25uZWN0aW9uIG9uIGluaXRpYWwgKGVncmVzcykgcGFja2V0IGFuZApzdWJzZXF1ZW50IHBh Y2tldHMgYXJlIGFsbCBtYXJrZWQvcmVzdG9yZWQgd2l0aCB0aGUgc2FtZSBEU0NQLiAgQSBtYXNr Cm9mIHplcm8gZGlzYWJsZXMgdGhlIGNvbmRpdGlvbmFsIGJlaGF2aW91ci4KCm1vZGUgLSBnZXQv c2V0L2JvdGggLSBnZXQgc3RvcmVzIHRoZSBEU0NQIGludG8gdGhlIG1hcmssIHNldCByZXN0b3Jl cwp0aGUgRFNDUCBpbnRvIHRoZSBkaWZmc2VydiBmaWVsZCBmcm9tIHRoZSBtYXJrLCBib3RoICdn ZXRzJyB0aGUgbWFyayBhbmQKdGhlbiAnc2V0cycgaXQgaW4gdGhhdCBvcmRlci4KCm9wdGlvbmFs IHBhcmFtZXRlcnM6Cgp6b25lIC0gY29ubnRyYWNrIHpvbmUKCmNvbnRyb2wgLSBhY3Rpb24gcmVs YXRlZCBjb250cm9sIChyZWNsYXNzaWZ5IHwgcGlwZSB8IGRyb3AgfCBjb250aW51ZSB8Cm9rIHwg Z290byBjaGFpbiA8Q0hBSU5fSU5ERVg+CgpTaWduZWQtb2ZmLWJ5OiBLZXZpbiBEYXJieXNoaXJl LUJyeWFudCA8bGRpckBkYXJieXNoaXJlLWJyeWFudC5tZS51az4KLS0tCiBpbmNsdWRlL25ldC90 Y19hY3QvdGNfY29ubmRzY3AuaCAgICAgICAgfCAgMTkgKysKIGluY2x1ZGUvdWFwaS9saW51eC90 Y19hY3QvdGNfY29ubmRzY3AuaCB8ICAzMyArKysKIG5ldC9zY2hlZC9LY29uZmlnICAgICAgICAg ICAgICAgICAgICAgICB8ICAxMyArCiBuZXQvc2NoZWQvTWFrZWZpbGUgICAgICAgICAgICAgICAg ICAgICAgfCAgIDEgKwogbmV0L3NjaGVkL2FjdF9jb25uZHNjcC5jICAgICAgICAgICAgICAgIHwg MzI3ICsrKysrKysrKysrKysrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAzOTMgaW5zZXJ0 aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbmV0L3RjX2FjdC90Y19jb25uZHNj cC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS91YXBpL2xpbnV4L3RjX2FjdC90Y19jb25u ZHNjcC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgbmV0L3NjaGVkL2FjdF9jb25uZHNjcC5jCgpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9uZXQvdGNfYWN0L3RjX2Nvbm5kc2NwLmggYi9pbmNsdWRlL25ldC90 Y19hY3QvdGNfY29ubmRzY3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjRjYjMyOGZjNDg3ZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmV0L3RjX2FjdC90 Y19jb25uZHNjcC5oCkBAIC0wLDAgKzEsMTkgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wICovCisjaWZuZGVmIF9fTkVUX1RDX0NPTk5EU0NQX0gKKyNkZWZpbmUgX19ORVRf VENfQ09OTkRTQ1BfSAorCisjaW5jbHVkZSA8bmV0L2FjdF9hcGkuaD4KKworc3RydWN0IHRjZl9j b25uZHNjcF9pbmZvIHsKKwlzdHJ1Y3QgdGNfYWN0aW9uIGNvbW1vbjsKKwlzdHJ1Y3QgbmV0ICpu ZXQ7CisJdTE2IHpvbmU7CisJdTMyIG1hc2s7CisJdTMyIHN0YXRlbWFzazsKKwl1OCBtb2RlOwor CXU4IG1hc2tzaGlmdDsKK307CisKKyNkZWZpbmUgdG9fY29ubmRzY3AoYSkgKChzdHJ1Y3QgdGNm X2Nvbm5kc2NwX2luZm8gKilhKQorCisjZW5kaWYgLyogX19ORVRfVENfQ09OTkRTQ1BfSCAqLwpk aWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L3RjX2FjdC90Y19jb25uZHNjcC5oIGIvaW5j bHVkZS91YXBpL2xpbnV4L3RjX2FjdC90Y19jb25uZHNjcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uZTg1NzgzM2I4N2JkCi0tLSAvZGV2L251bGwKKysrIGIvaW5j bHVkZS91YXBpL2xpbnV4L3RjX2FjdC90Y19jb25uZHNjcC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8q IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3Rl ICovCisjaWZuZGVmIF9fVUFQSV9UQ19DT05ORFNDUF9ICisjZGVmaW5lIF9fVUFQSV9UQ19DT05O RFNDUF9ICisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L3BrdF9j bHMuaD4KKworI2RlZmluZSBUQ0FfQUNUX0NPTk5EU0NQIDk5CisKK3N0cnVjdCB0Y19jb25uZHNj cCB7CisJdGNfZ2VuOworCV9fdTE2IHpvbmU7CisJX191MzIgbWFzazsKKwlfX3UzMiBzdGF0ZW1h c2s7CisJX191OCBtb2RlOworCV9fdTggbWFza3NoaWZ0OworfTsKKworZW51bSB7CisJVENBX0NP Tk5EU0NQX1VOU1BFQywKKwlUQ0FfQ09OTkRTQ1BfUEFSTVMsCisJVENBX0NPTk5EU0NQX1RNLAor CVRDQV9DT05ORFNDUF9QQUQsCisJX19UQ0FfQ09OTkRTQ1BfTUFYCit9OworI2RlZmluZSBUQ0Ff Q09OTkRTQ1BfTUFYIChfX1RDQV9DT05ORFNDUF9NQVggLSAxKQorCitlbnVtIHsKKwlDT05ORFND UF9GTEFHX0dFVERTQ1AJPSBCSVQoMCksCisJQ09OTkRTQ1BfRkxBR19TRVREU0NQCT0gQklUKDEp Cit9OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9LY29uZmlnIGIvbmV0L3NjaGVk L0tjb25maWcKaW5kZXggZTcwZWQyNjQ4NWEyLi40OGRjNTI0M2YxOTYgMTAwNjQ0Ci0tLSBhL25l dC9zY2hlZC9LY29uZmlnCisrKyBiL25ldC9zY2hlZC9LY29uZmlnCkBAIC03OTYsNiArNzk2LDE5 IEBAIGNvbmZpZyBORVRfQUNUX0JQRgogCSAgVG8gY29tcGlsZSB0aGlzIGNvZGUgYXMgYSBtb2R1 bGUsIGNob29zZSBNIGhlcmU6IHRoZQogCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGFjdF9icGYu CiAKK2NvbmZpZyBORVRfQUNUX0NPTk5EU0NQCisgICAgICAgIHRyaXN0YXRlICJEU0NQIHRvIE5l dGZpbHRlciBDb25uZWN0aW9uIE1hcmsgU3RvcmUvUmV0cmlldmVyIgorICAgICAgICBkZXBlbmRz IG9uIE5FVF9DTFNfQUNUICYmIE5FVEZJTFRFUiAmJiBJUF9ORl9JUFRBQkxFUworICAgICAgICBk ZXBlbmRzIG9uIE5GX0NPTk5UUkFDSyAmJiBORl9DT05OVFJBQ0tfTUFSSworICAgICAgICAtLS1o ZWxwLS0tCisJICBTYXkgWSBoZXJlIHRvIGFsbG93IHN0b3Jpbmcgb2YgRFNDUCBpbnRvIGNvbm4g bWFyaworCSAgYW5kIHZpY2UgdmVyY2EKKworCSAgSWYgdW5zdXJlLCBzYXkgTi4KKworCSAgVG8g Y29tcGlsZSB0aGlzIGNvZGUgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQorCSAgbW9k dWxlIHdpbGwgYmUgY2FsbGVkIGFjdF9jb25ubWFyay4KKwogY29uZmlnIE5FVF9BQ1RfQ09OTk1B UksKICAgICAgICAgdHJpc3RhdGUgIk5ldGZpbHRlciBDb25uZWN0aW9uIE1hcmsgUmV0cmlldmVy IgogICAgICAgICBkZXBlbmRzIG9uIE5FVF9DTFNfQUNUICYmIE5FVEZJTFRFUiAmJiBJUF9ORl9J UFRBQkxFUwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL01ha2VmaWxlIGIvbmV0L3NjaGVkL01ha2Vm aWxlCmluZGV4IDllNDNhNDcyMWVmOC4uYWU3MDFiYWU4YjJmIDEwMDY0NAotLS0gYS9uZXQvc2No ZWQvTWFrZWZpbGUKKysrIGIvbmV0L3NjaGVkL01ha2VmaWxlCkBAIC0yMCw2ICsyMCw3IEBAIG9i ai0kKENPTkZJR19ORVRfQUNUX1NLQkVESVQpCSs9IGFjdF9za2JlZGl0Lm8KIG9iai0kKENPTkZJ R19ORVRfQUNUX0NTVU0pCSs9IGFjdF9jc3VtLm8KIG9iai0kKENPTkZJR19ORVRfQUNUX1ZMQU4p CSs9IGFjdF92bGFuLm8KIG9iai0kKENPTkZJR19ORVRfQUNUX0JQRikJKz0gYWN0X2JwZi5vCitv YmotJChDT05GSUdfTkVUX0FDVF9DT05ORFNDUCkJKz0gYWN0X2Nvbm5kc2NwLm8KIG9iai0kKENP TkZJR19ORVRfQUNUX0NPTk5NQVJLKQkrPSBhY3RfY29ubm1hcmsubwogb2JqLSQoQ09ORklHX05F VF9BQ1RfU0tCTU9EKQkrPSBhY3Rfc2tibW9kLm8KIG9iai0kKENPTkZJR19ORVRfQUNUX0lGRSkJ Kz0gYWN0X2lmZS5vCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvYWN0X2Nvbm5kc2NwLmMgYi9uZXQv c2NoZWQvYWN0X2Nvbm5kc2NwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi43OGJkMWQ4YWMyNWIKLS0tIC9kZXYvbnVsbAorKysgYi9uZXQvc2NoZWQvYWN0X2Nvbm5k c2NwLmMKQEAgLTAsMCArMSwzMjcgQEAKKy8qCisgKiBuZXQvc2NoZWQvYWN0X2Nvbm5kc2NwLmMg IG5ldGZpbHRlciBjb25uZHNjcCBkc2NwPC0+Y29ubm1hcmsgYWN0aW9uCisgKgorICogQ29weXJp Z2h0IChjKSAyMDE5IEtldmluIERhcmJ5c2hpcmUtQnJ5YW50IDxsZGlyQGRhcmJ5c2hpcmUtYnJ5 YW50Lm1lLnVrPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg b3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKi8KKworI2luY2x1 ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxs aW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9za2J1ZmYuaD4KKyNpbmNsdWRlIDxsaW51 eC9ydG5ldGxpbmsuaD4KKyNpbmNsdWRlIDxsaW51eC9wa3RfY2xzLmg+CisjaW5jbHVkZSA8bGlu dXgvaXAuaD4KKyNpbmNsdWRlIDxsaW51eC9pcHY2Lmg+CisjaW5jbHVkZSA8bmV0L25ldGxpbmsu aD4KKyNpbmNsdWRlIDxuZXQvcGt0X3NjaGVkLmg+CisjaW5jbHVkZSA8bmV0L2FjdF9hcGkuaD4K KyNpbmNsdWRlIDx1YXBpL2xpbnV4L3RjX2FjdC90Y19jb25uZHNjcC5oPgorI2luY2x1ZGUgPG5l dC90Y19hY3QvdGNfY29ubmRzY3AuaD4KKworI2luY2x1ZGUgPG5ldC9uZXRmaWx0ZXIvbmZfY29u bnRyYWNrLmg+CisjaW5jbHVkZSA8bmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfY29yZS5oPgor I2luY2x1ZGUgPG5ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2VjYWNoZS5oPgorI2luY2x1ZGUg PG5ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3pvbmVzLmg+CisKK3N0YXRpYyB1bnNpZ25lZCBp bnQgY29ubmRzY3BfbmV0X2lkOworc3RhdGljIHN0cnVjdCB0Y19hY3Rpb25fb3BzIGFjdF9jb25u ZHNjcF9vcHM7CisKK3N0YXRpYyB2b2lkIHRjZl9jb25uZHNjcF9nZXQoc3RydWN0IG5mX2Nvbm4g KmN0LCBzdHJ1Y3QgdGNmX2Nvbm5kc2NwX2luZm8gKmNhLAorCQkJICAgICBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBpbnQgcHJvdG8pCit7CisJdTMyIG5ld21hcms7CisJdTggZHNjcDsKKworCS8qIG1h cmsgZG9lcyBub3QgY29udGFpbiBEU0NQIHNvIHN0b3JlIERTQ1AgYml0cyBpbnRvIGMtPm1hcmsg Ki8KKwlzd2l0Y2ggKHByb3RvKSB7CisJY2FzZSBORlBST1RPX0lQVjQ6CisJCWRzY3AgPSBpcHY0 X2dldF9kc2ZpZWxkKGlwX2hkcihza2IpKSA+PiAyOworCQlicmVhazsKKwljYXNlIE5GUFJPVE9f SVBWNjoKKwkJZHNjcCA9IGlwdjZfZ2V0X2RzZmllbGQoaXB2Nl9oZHIoc2tiKSkgPj4gMjsKKwkJ YnJlYWs7CisJZGVmYXVsdDoKKwkJZHNjcCA9IDA7CisJCWJyZWFrOworCX0KKwluZXdtYXJrID0g Y3QtPm1hcmsgJiB+KGNhLT5tYXNrIHwgY2EtPnN0YXRlbWFzayk7CisJbmV3bWFyayB8PSAoZHNj cCA8PCBjYS0+bWFza3NoaWZ0KSB8IGNhLT5zdGF0ZW1hc2s7CisJaWYgKGN0LT5tYXJrICE9IG5l d21hcmspIHsKKwkJLyogdXNpbmcgcmVxdWV1ZXMgc3RhdHMgdG8gY291bnQgaG93IG1hbnkgY29u bm1hcmsgdXBkYXRlcyAqLworCQljYS0+dGNmX3FzdGF0cy5yZXF1ZXVlcysrOworCQljdC0+bWFy ayA9IG5ld21hcms7CisJCW5mX2Nvbm50cmFja19ldmVudF9jYWNoZShJUENUX01BUkssIGN0KTsK Kwl9Cit9CisKK3N0YXRpYyB2b2lkIHRjZl9jb25uZHNjcF9zZXQoc3RydWN0IG5mX2Nvbm4gKmN0 LCBzdHJ1Y3QgdGNmX2Nvbm5kc2NwX2luZm8gKmNhLAorCQkJICAgICBzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCBpbnQgcHJvdG8pCit7CisJdTggbmV3ZHNjcDsKKworCW5ld2RzY3AgPSAoKChjdC0+bWFy ayAmIGNhLT5tYXNrKSA+PiBjYS0+bWFza3NoaWZ0KSA8PCAyKSAmCisJCSAgICAgfklORVRfRUNO X01BU0s7CisKKwkvKiBtYXJrIGNvbnRhaW5zIERTQ1Agc28gcmVzdG9yZSBEU0NQIGJpdHMgZnJv bSBjLT5tYXJrIGludG8gZGlmZnNlcnYgKi8KKwkvKiB1c2luZyBvdmVybGltaXRzIHN0YXRzIHRv IGNvdW50IGhvdyBtYW55IERTQ1AgdXBkYXRlcyAqLworCXN3aXRjaCAocHJvdG8pIHsKKwljYXNl IE5GUFJPVE9fSVBWNDoKKwkJaWYgKChpcHY0X2dldF9kc2ZpZWxkKGlwX2hkcihza2IpKSAmIH5J TkVUX0VDTl9NQVNLKSAhPQorCQkgICAgIG5ld2RzY3ApIHsKKwkJCWlwdjRfY2hhbmdlX2RzZmll bGQoaXBfaGRyKHNrYiksIElORVRfRUNOX01BU0ssCisJCQkJCSAgICBuZXdkc2NwKTsKKwkJCWNh LT50Y2ZfcXN0YXRzLm92ZXJsaW1pdHMrKzsKKwkJfQorCQlicmVhazsKKwljYXNlIE5GUFJPVE9f SVBWNjoKKwkJaWYgKChpcHY2X2dldF9kc2ZpZWxkKGlwdjZfaGRyKHNrYikpICYKKwkJICAgICB+ SU5FVF9FQ05fTUFTSykgIT0gbmV3ZHNjcCkgeworCQkJaXB2Nl9jaGFuZ2VfZHNmaWVsZChpcHY2 X2hkcihza2IpLCBJTkVUX0VDTl9NQVNLLAorCQkJCQkgICAgbmV3ZHNjcCk7CisJCQljYS0+dGNm X3FzdGF0cy5vdmVybGltaXRzKys7CisJCX0KKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7 CisJfQorfQorCitzdGF0aWMgaW50IHRjZl9jb25uZHNjcF9hY3Qoc3RydWN0IHNrX2J1ZmYgKnNr YiwgY29uc3Qgc3RydWN0IHRjX2FjdGlvbiAqYSwKKwkJCSAgICBzdHJ1Y3QgdGNmX3Jlc3VsdCAq cmVzKQoreworCWNvbnN0IHN0cnVjdCBuZl9jb25udHJhY2tfdHVwbGVfaGFzaCAqdGhhc2g7CisJ c3RydWN0IG5mX2Nvbm50cmFja190dXBsZSB0dXBsZTsKKwllbnVtIGlwX2Nvbm50cmFja19pbmZv IGN0aW5mbzsKKwlzdHJ1Y3QgdGNmX2Nvbm5kc2NwX2luZm8gKmNhID0gdG9fY29ubmRzY3AoYSk7 CisJc3RydWN0IG5mX2Nvbm50cmFja196b25lIHpvbmU7CisJc3RydWN0IG5mX2Nvbm4gKmN0Owor CWludCBwcm90bzsKKworCXNwaW5fbG9jaygmY2EtPnRjZl9sb2NrKTsKKwl0Y2ZfbGFzdHVzZV91 cGRhdGUoJmNhLT50Y2ZfdG0pOworCWJzdGF0c191cGRhdGUoJmNhLT50Y2ZfYnN0YXRzLCBza2Ip OworCisJaWYgKHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVApKSB7CisJCWlmIChza2It PmxlbiA8IHNpemVvZihzdHJ1Y3QgaXBoZHIpKQorCQkJZ290byBvdXQ7CisKKwkJcHJvdG8gPSBO RlBST1RPX0lQVjQ7CisJfSBlbHNlIGlmIChza2ItPnByb3RvY29sID09IGh0b25zKEVUSF9QX0lQ VjYpKSB7CisJCWlmIChza2ItPmxlbiA8IHNpemVvZihzdHJ1Y3QgaXB2NmhkcikpCisJCQlnb3Rv IG91dDsKKworCQlwcm90byA9IE5GUFJPVE9fSVBWNjsKKwl9IGVsc2UgeworCQlnb3RvIG91dDsK Kwl9CisKKwljdCA9IG5mX2N0X2dldChza2IsICZjdGluZm8pOworCWlmIChjdCkgeworCQlpZiAo Y2EtPm1vZGUgJiBDT05ORFNDUF9GTEFHX1NFVERTQ1AgJiYKKwkJICAgICghY2EtPnN0YXRlbWFz ayB8fCAoY3QtPm1hcmsgJiBjYS0+c3RhdGVtYXNrKSkpCisJCQl0Y2ZfY29ubmRzY3Bfc2V0KGN0 LCBjYSwgc2tiLCBwcm90byk7CisJCWVsc2UgaWYgKGNhLT5tb2RlICYgQ09OTkRTQ1BfRkxBR19H RVREU0NQICYmCisJCQkgKCFjYS0+c3RhdGVtYXNrIHx8ICEoY3QtPm1hcmsgJiBjYS0+c3RhdGVt YXNrKSkpCisJCQl0Y2ZfY29ubmRzY3BfZ2V0KGN0LCBjYSwgc2tiLCBwcm90byk7CisJCWdvdG8g b3V0OworCX0KKworCWlmICghbmZfY3RfZ2V0X3R1cGxlcHIoc2tiLCBza2JfbmV0d29ya19vZmZz ZXQoc2tiKSwKKwkJCSAgICAgICBwcm90bywgY2EtPm5ldCwgJnR1cGxlKSkKKwkJZ290byBvdXQ7 CisKKwl6b25lLmlkID0gY2EtPnpvbmU7CisJem9uZS5kaXIgPSBORl9DVF9ERUZBVUxUX1pPTkVf RElSOworCisJdGhhc2ggPSBuZl9jb25udHJhY2tfZmluZF9nZXQoY2EtPm5ldCwgJnpvbmUsICZ0 dXBsZSk7CisJaWYgKCF0aGFzaCkKKwkJZ290byBvdXQ7CisKKwljdCA9IG5mX2N0X3R1cGxlaGFz aF90b19jdHJhY2sodGhhc2gpOworCWlmIChjYS0+bW9kZSAmIENPTk5EU0NQX0ZMQUdfU0VURFND UCAmJgorCSAgICAoIWNhLT5zdGF0ZW1hc2sgfHwgKGN0LT5tYXJrICYgY2EtPnN0YXRlbWFzaykp KQorCQl0Y2ZfY29ubmRzY3Bfc2V0KGN0LCBjYSwgc2tiLCBwcm90byk7CisJZWxzZSBpZiAoY2Et Pm1vZGUgJiBDT05ORFNDUF9GTEFHX0dFVERTQ1AgJiYKKwkJICghY2EtPnN0YXRlbWFzayB8fCAh KGN0LT5tYXJrICYgY2EtPnN0YXRlbWFzaykpKQorCQl0Y2ZfY29ubmRzY3BfZ2V0KGN0LCBjYSwg c2tiLCBwcm90byk7CisJbmZfY3RfcHV0KGN0KTsKKworb3V0OgorCXNwaW5fdW5sb2NrKCZjYS0+ dGNmX2xvY2spOworCXJldHVybiBjYS0+dGNmX2FjdGlvbjsKK30KKworc3RhdGljIGNvbnN0IHN0 cnVjdCBubGFfcG9saWN5IGNvbm5kc2NwX3BvbGljeVtUQ0FfQ09OTkRTQ1BfTUFYICsgMV0gPSB7 CisJW1RDQV9DT05ORFNDUF9QQVJNU10gPSB7IC5sZW4gPSBzaXplb2Yoc3RydWN0IHRjX2Nvbm5k c2NwKSB9LAorfTsKKworc3RhdGljIHZvaWQgY29ubmRzY3BfcGFybXNldChzdHJ1Y3QgdGNmX2Nv bm5kc2NwX2luZm8gKmNpLAorCQkJICAgICBzdHJ1Y3QgdGNfY29ubmRzY3AgKnBhcm0pCit7CisJ Y2ktPnRjZl9hY3Rpb24gPSBwYXJtLT5hY3Rpb247CisJY2ktPnpvbmUgPSBwYXJtLT56b25lOwor CWNpLT5tYXNrID0gcGFybS0+bWFzazsKKwljaS0+bWFza3NoaWZ0ID0gY2ktPm1hc2sgPyBfX2Zm cyhjaS0+bWFzaykgOiAwOworCWNpLT5zdGF0ZW1hc2sgPSBwYXJtLT5zdGF0ZW1hc2s7CisJY2kt Pm1vZGUgPSBwYXJtLT5tb2RlOworCisJLyogbGV0J3Mgbm90IHRydXN0IHVzZXJzcGFjZSBlbnRp cmVseSAqLworCS8qIG5lZWQgYXQgbGVhc3QgY29udGlndW91cyA2IGJpdCBtYXNrICovCisJaWYg KCgweDNmICYgKGNpLT5tYXNrID4+IGNpLT5tYXNrc2hpZnQpKSAhPSAweDNmKQorCQljaS0+bW9k ZSA9IDA7CisJaWYgKGNpLT5tYXNrICYgY2ktPnN0YXRlbWFzaykKKwkJY2ktPm1vZGUgPSAwOwor fQorCitzdGF0aWMgaW50IHRjZl9jb25uZHNjcF9pbml0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0 IG5sYXR0ciAqbmxhLAorCQkJICAgICBzdHJ1Y3QgbmxhdHRyICplc3QsIHN0cnVjdCB0Y19hY3Rp b24gKiphLAorCQkJICAgICBpbnQgb3ZyLCBpbnQgYmluZCkKK3sKKwlzdHJ1Y3QgdGNfYWN0aW9u X25ldCAqdG4gPSBuZXRfZ2VuZXJpYyhuZXQsIGNvbm5kc2NwX25ldF9pZCk7CisJc3RydWN0IG5s YXR0ciAqdGJbVENBX0NPTk5EU0NQX01BWCArIDFdOworCXN0cnVjdCB0Y2ZfY29ubmRzY3BfaW5m byAqY2k7CisJc3RydWN0IHRjX2Nvbm5kc2NwICpwYXJtOworCWludCByZXQgPSAwOworCisJaWYg KCFubGEpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0ID0gbmxhX3BhcnNlX25lc3RlZCh0Yiwg VENBX0NPTk5EU0NQX01BWCwgbmxhLCBjb25uZHNjcF9wb2xpY3ksCisJCQkgICAgICAgTlVMTCk7 CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwlpZiAoIXRiW1RDQV9DT05ORFNDUF9Q QVJNU10pCisJCXJldHVybiAtRUlOVkFMOworCisJcGFybSA9IG5sYV9kYXRhKHRiW1RDQV9DT05O RFNDUF9QQVJNU10pOworCisJaWYgKCF0Y2ZfaWRyX2NoZWNrKHRuLCBwYXJtLT5pbmRleCwgYSwg YmluZCkpIHsKKwkJcmV0ID0gdGNmX2lkcl9jcmVhdGUodG4sIHBhcm0tPmluZGV4LCBlc3QsIGEs CisJCQkJICAgICAmYWN0X2Nvbm5kc2NwX29wcywgYmluZCwgZmFsc2UpOworCQlpZiAocmV0KQor CQkJcmV0dXJuIHJldDsKKworCQljaSA9IHRvX2Nvbm5kc2NwKCphKTsKKwkJY2ktPm5ldCA9IG5l dDsKKwkJY29ubmRzY3BfcGFybXNldChjaSwgcGFybSk7CisKKwkJdGNmX2lkcl9pbnNlcnQodG4s ICphKTsKKwkJcmV0ID0gQUNUX1BfQ1JFQVRFRDsKKwl9IGVsc2UgaWYgKHJldCA+IDApIHsKKwkJ Y2kgPSB0b19jb25uZHNjcCgqYSk7CisJCWlmIChiaW5kKQorCQkJcmV0dXJuIDA7CisJCXRjZl9p ZHJfcmVsZWFzZSgqYSwgYmluZCk7CisJCWlmICghb3ZyKQorCQkJcmV0dXJuIC1FRVhJU1Q7CisJ CS8qIHJlcGxhY2luZyBhY3Rpb24gYW5kIHpvbmUgKi8KKwkJY29ubmRzY3BfcGFybXNldChjaSwg cGFybSk7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGlubGluZSBpbnQgdGNmX2Nv bm5kc2NwX2R1bXAoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHRjX2FjdGlvbiAqYSwKKwkJ CQkgICAgaW50IGJpbmQsIGludCByZWYpCit7CisJdW5zaWduZWQgY2hhciAqYiA9IHNrYl90YWls X3BvaW50ZXIoc2tiKTsKKwlzdHJ1Y3QgdGNmX2Nvbm5kc2NwX2luZm8gKmNpID0gdG9fY29ubmRz Y3AoYSk7CisKKwlzdHJ1Y3QgdGNfY29ubmRzY3Agb3B0ID0geworCQkuaW5kZXggICA9IGNpLT50 Y2ZfaW5kZXgsCisJCS5yZWZjbnQgID0gY2ktPnRjZl9yZWZjbnQgLSByZWYsCisJCS5iaW5kY250 ID0gY2ktPnRjZl9iaW5kY250IC0gYmluZCwKKwkJLmFjdGlvbiA9IGNpLT50Y2ZfYWN0aW9uLAor CQkuem9uZSA9IGNpLT56b25lLAorCQkubWFzayA9IGNpLT5tYXNrLAorCQkuc3RhdGVtYXNrID0g Y2ktPnN0YXRlbWFzaywKKwkJLm1vZGUgPSBjaS0+bW9kZSwKKwl9OworCXN0cnVjdCB0Y2ZfdCB0 OworCisJaWYgKG5sYV9wdXQoc2tiLCBUQ0FfQ09OTkRTQ1BfUEFSTVMsIHNpemVvZihvcHQpLCAm b3B0KSkKKwkJZ290byBubGFfcHV0X2ZhaWx1cmU7CisKKwl0Y2ZfdG1fZHVtcCgmdCwgJmNpLT50 Y2ZfdG0pOworCWlmIChubGFfcHV0XzY0Yml0KHNrYiwgVENBX0NPTk5EU0NQX1RNLCBzaXplb2Yo dCksICZ0LAorCQkJICBUQ0FfQ09OTkRTQ1BfUEFEKSkKKwkJZ290byBubGFfcHV0X2ZhaWx1cmU7 CisKKwlyZXR1cm4gc2tiLT5sZW47CisKK25sYV9wdXRfZmFpbHVyZToKKwlzcGluX3VubG9ja19i aCgmY2ktPnRjZl9sb2NrKTsKKwlubG1zZ190cmltKHNrYiwgYik7CisJcmV0dXJuIC0xOworfQor CitzdGF0aWMgaW50IHRjZl9jb25uZHNjcF93YWxrZXIoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiLAorCQkJICAgICAgIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYiwgaW50 IHR5cGUsCisJCQkgICAgICAgY29uc3Qgc3RydWN0IHRjX2FjdGlvbl9vcHMgKm9wcykKK3sKKwlz dHJ1Y3QgdGNfYWN0aW9uX25ldCAqdG4gPSBuZXRfZ2VuZXJpYyhuZXQsIGNvbm5kc2NwX25ldF9p ZCk7CisKKwlyZXR1cm4gdGNmX2dlbmVyaWNfd2Fsa2VyKHRuLCBza2IsIGNiLCB0eXBlLCBvcHMp OworfQorCitzdGF0aWMgaW50IHRjZl9jb25uZHNjcF9zZWFyY2goc3RydWN0IG5ldCAqbmV0LCBz dHJ1Y3QgdGNfYWN0aW9uICoqYSwgdTMyIGluZGV4KQoreworCXN0cnVjdCB0Y19hY3Rpb25fbmV0 ICp0biA9IG5ldF9nZW5lcmljKG5ldCwgY29ubmRzY3BfbmV0X2lkKTsKKworCXJldHVybiB0Y2Zf aWRyX3NlYXJjaCh0biwgYSwgaW5kZXgpOworfQorCitzdGF0aWMgc3RydWN0IHRjX2FjdGlvbl9v cHMgYWN0X2Nvbm5kc2NwX29wcyA9IHsKKwkua2luZAkJPQkiY29ubmRzY3AiLAorCS50eXBlCQk9 CVRDQV9BQ1RfQ09OTkRTQ1AsCisJLm93bmVyCQk9CVRISVNfTU9EVUxFLAorCS5hY3QJCT0JdGNm X2Nvbm5kc2NwX2FjdCwKKwkuZHVtcAkJPQl0Y2ZfY29ubmRzY3BfZHVtcCwKKwkuaW5pdAkJPQl0 Y2ZfY29ubmRzY3BfaW5pdCwKKwkud2FsawkJPQl0Y2ZfY29ubmRzY3Bfd2Fsa2VyLAorCS5sb29r dXAJCT0JdGNmX2Nvbm5kc2NwX3NlYXJjaCwKKwkuc2l6ZQkJPQlzaXplb2Yoc3RydWN0IHRjZl9j b25uZHNjcF9pbmZvKSwKK307CisKK3N0YXRpYyBfX25ldF9pbml0IGludCBjb25uZHNjcF9pbml0 X25ldChzdHJ1Y3QgbmV0ICpuZXQpCit7CisJc3RydWN0IHRjX2FjdGlvbl9uZXQgKnRuID0gbmV0 X2dlbmVyaWMobmV0LCBjb25uZHNjcF9uZXRfaWQpOworCisJcmV0dXJuIHRjX2FjdGlvbl9uZXRf aW5pdCh0biwgJmFjdF9jb25uZHNjcF9vcHMpOworfQorCitzdGF0aWMgdm9pZCBfX25ldF9leGl0 IGNvbm5kc2NwX2V4aXRfbmV0KHN0cnVjdCBuZXQgKm5ldCkKK3sKKwlzdHJ1Y3QgdGNfYWN0aW9u X25ldCAqdG4gPSBuZXRfZ2VuZXJpYyhuZXQsIGNvbm5kc2NwX25ldF9pZCk7CisKKwl0Y19hY3Rp b25fbmV0X2V4aXQodG4pOworfQorCitzdGF0aWMgc3RydWN0IHBlcm5ldF9vcGVyYXRpb25zIGNv bm5kc2NwX25ldF9vcHMgPSB7CisJLmluaXQgPSBjb25uZHNjcF9pbml0X25ldCwKKwkuZXhpdCA9 IGNvbm5kc2NwX2V4aXRfbmV0LAorCS5pZCAgID0gJmNvbm5kc2NwX25ldF9pZCwKKwkuc2l6ZSA9 IHNpemVvZihzdHJ1Y3QgdGNfYWN0aW9uX25ldCksCit9OworCitzdGF0aWMgaW50IF9faW5pdCBj b25uZHNjcF9pbml0X21vZHVsZSh2b2lkKQoreworCXJldHVybiB0Y2ZfcmVnaXN0ZXJfYWN0aW9u KCZhY3RfY29ubmRzY3Bfb3BzLCAmY29ubmRzY3BfbmV0X29wcyk7Cit9CisKK3N0YXRpYyB2b2lk IF9fZXhpdCBjb25uZHNjcF9jbGVhbnVwX21vZHVsZSh2b2lkKQoreworCXRjZl91bnJlZ2lzdGVy X2FjdGlvbigmYWN0X2Nvbm5kc2NwX29wcywgJmNvbm5kc2NwX25ldF9vcHMpOworfQorCittb2R1 bGVfaW5pdChjb25uZHNjcF9pbml0X21vZHVsZSk7Cittb2R1bGVfZXhpdChjb25uZHNjcF9jbGVh bnVwX21vZHVsZSk7CitNT0RVTEVfQVVUSE9SKCJLZXZpbiBEYXJieXNoaXJlLUJyeWFudCA8bGRp ckBkYXJieXNoaXJlLWJyeWFudC5tZS51az4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiRFNDUCB0 byBDb25uZWN0aW9uIHRyYWNraW5nIG1hcmsgc3RvcmluZy9yZXN0b3JpbmciKTsKK01PRFVMRV9M SUNFTlNFKCJHUEwiKTsKLS0gCjIuMTcuMiAoQXBwbGUgR2l0LTExMykKCg== --_004_AC91C6259B9C49B893EA62CF398206B4darbyshirebryantmeuk_--