From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by dpdk.space (Postfix) with ESMTP id EBE91A0096
	for <public@inbox.dpdk.org>; Wed, 10 Apr 2019 13:19:32 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id B3BBD5F14;
	Wed, 10 Apr 2019 13:19:01 +0200 (CEST)
Received: from NAM03-CO1-obe.outbound.protection.outlook.com
 (mail-eopbgr790052.outbound.protection.outlook.com [40.107.79.52])
 by dpdk.org (Postfix) with ESMTP id 7274E5F14
 for <dev@dpdk.org>; Wed, 10 Apr 2019 13:18:59 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TAU4QqAneoiLAZuDzhjiczJqo5UnGW969KjMuFmWrVo=;
 b=JNwLqp3zGGfzl4fb+e/ivhHKo8+XqXvyu6bBOAKrkUUs0epVndF9RqNa7TaRqXd+MaR6uFvfO5LlvzkIIuE9iWEtRP9uKJwr3+2bKJ3SKBQ3vUCVrcaT3iTnakdhSt5tAExMaDIi0womZfO+8KcWDA50LBHcIi3XDqsiFoidpkE=
Received: from BN8PR11MB3618.namprd11.prod.outlook.com (20.178.219.85) by
 BN8PR11MB3540.namprd11.prod.outlook.com (20.178.218.78) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.1771.21; Wed, 10 Apr 2019 11:18:58 +0000
Received: from BN8PR11MB3618.namprd11.prod.outlook.com
 ([fe80::9d38:1845:842d:a489]) by BN8PR11MB3618.namprd11.prod.outlook.com
 ([fe80::9d38:1845:842d:a489%3]) with mapi id 15.20.1771.016; Wed, 10 Apr 2019
 11:18:58 +0000
From: Igor Russkikh <Igor.Russkikh@aquantia.com>
To: "dev@dpdk.org" <dev@dpdk.org>
CC: Pavel Belous <Pavel.Belous@aquantia.com>, Wenzhuo Lu
 <wenzhuo.lu@intel.com>, Jingjing Wu <jingjing.wu@intel.com>, Bernard
 Iremonger <bernard.iremonger@intel.com>, John McNamara
 <john.mcnamara@intel.com>, Marko Kovacevic <marko.kovacevic@intel.com>,
 Konstantin Ananyev <konstantin.ananyev@intel.com>, Thomas Monjalon
 <thomas@monjalon.net>, Ferruh Yigit <ferruh.yigit@intel.com>, Andrew
 Rybchenko <arybchenko@solarflare.com>, Igor Russkikh
 <Igor.Russkikh@aquantia.com>
Thread-Topic: [PATCH  05/10] net/atlantic: macsec configuration code
Thread-Index: AQHU748wESZ28zL9VkOgPhS73FnaAQ==
Date: Wed, 10 Apr 2019 11:18:57 +0000
Message-ID:
 <9ac2dcf2607b5eafff3e08d54e5236b12900ed38.1554894242.git.igor.russkikh@aquantia.com>
References: <cover.1554894242.git.igor.russkikh@aquantia.com>
In-Reply-To: <cover.1554894242.git.igor.russkikh@aquantia.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-clientproxiedby: BYAPR05CA0061.namprd05.prod.outlook.com
 (2603:10b6:a03:74::38) To BN8PR11MB3618.namprd11.prod.outlook.com
 (2603:10b6:408:85::21)
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=Igor.Russkikh@aquantia.com; 
x-ms-exchange-messagesentrepresentingtype: 1
x-mailer: git-send-email 2.17.1
x-originating-ip: [95.79.108.179]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: cd096549-7dbb-47d8-058f-08d6bda6530a
x-microsoft-antispam: BCL:0; PCL:0;
 RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600139)(711020)(4605104)(2017052603328)(7193020);
 SRVR:BN8PR11MB3540; 
x-ms-traffictypediagnostic: BN8PR11MB3540:
x-microsoft-antispam-prvs: <BN8PR11MB3540CA780E9CE4D771F86E67982E0@BN8PR11MB3540.namprd11.prod.outlook.com>
x-forefront-prvs: 00032065B2
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(396003)(39850400004)(376002)(366004)(136003)(346002)(199004)(189003)(486006)(107886003)(6506007)(316002)(2616005)(386003)(54906003)(7416002)(53936002)(8936002)(68736007)(446003)(6916009)(476003)(72206003)(2501003)(105586002)(11346002)(44832011)(99286004)(2351001)(52116002)(186003)(26005)(118296001)(106356001)(14454004)(102836004)(76176011)(71200400001)(81156014)(7736002)(14444005)(8676002)(81166006)(25786009)(256004)(6116002)(5660300002)(71190400001)(1730700003)(5640700003)(2906002)(66066001)(6512007)(478600001)(6486002)(50226002)(305945005)(97736004)(4326008)(3846002)(36756003)(6436002)(86362001);
 DIR:OUT; SFP:1101; SCL:1; SRVR:BN8PR11MB3540;
 H:BN8PR11MB3618.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: aquantia.com does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: fVyVuV/8gcMsVsctxxE7F7l4BXB5Of5nrn13v/+W6wUi02mcIISXNxSW4tOFXRvB+LR5WAWz30M/TWxlXR7l1Ft8GdUZcqScUupVz85q5nu0GoXVLudT7BqM53eUsaP/3KaDn35KWBcxvaHiEHaPdP1PbvuVb41fSsr1JQFfaCBvvYVzyZ5KldU3PN/OptBqGoCsp+NjO2hce45mpbbzTinyzxK3Vro2ywv7s50mKGogKsFrWcMgnu4fd6nribq3pyX0SIhipmWpSCK+3az8NFO/qn5kTU6gVEQtahuZ4CX7K2XHvjm0K3SQfbMJbROCCA7x5ik9Nt2TvMqAvcOjwxNUa8mVHjN4RVegR1S98/XLlBX38QPDKlTeD4hc5foNNXMUen0VkiAdBqlgSkHTwu33Ty0hArbbsDtNbFlwJEg=
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: aquantia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cd096549-7dbb-47d8-058f-08d6bda6530a
X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Apr 2019 11:18:57.8362 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 83e2e134-991c-4ede-8ced-34d47e38e6b1
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR11MB3540
Subject: [dpdk-dev] [PATCH  05/10] net/atlantic: macsec configuration code
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>
Message-ID: <20190410111857.Rfq_IYLcNwGKWhAl2LPUmT6wto5-TJkEgi6n6LyY0V4@z>

RnJvbTogUGF2ZWwgQmVsb3VzIDxwYXZlbC5iZWxvdXNAYXF1YW50aWEuY29tPg0KDQpUaGlzIGlz
IGEgZHJpdmVyIHNpZGUgb2YgbWFjc2VjIGNvbmZpZ3VyYXRpb24gcm91dGluZXMuDQpJdCBmaWxs
cyBpbiBjb25maWcgc3RydWN0dXJlcyBhbmQgc2VuZHMgcmVxdWVzdHMgdG8gRlcNCmZvciBjb25m
aWd1cmF0aW9uIGFjdGl2aXRpZXMuDQoNCldlIGFsc28gZGVjbGFyZSBtYWNzZWMgb2ZmbG9hZCBi
aXRzIGluIERQREsgb2ZmbG9hZCBjYXBhYmlsaXRpZXMNCg0KU2lnbmVkLW9mZi1ieTogUGF2ZWwg
QmVsb3VzIDxwYXZlbC5iZWxvdXNAYXF1YW50aWEuY29tPg0KU2lnbmVkLW9mZi1ieTogSWdvciBS
dXNza2lraCA8aWdvci5ydXNza2lraEBhcXVhbnRpYS5jb20+DQotLS0NCiBkcml2ZXJzL25ldC9h
dGxhbnRpYy9hdGxfZXRoZGV2LmMgfCAyMjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
DQogMSBmaWxlIGNoYW5nZWQsIDIyMCBpbnNlcnRpb25zKCspDQoNCmRpZmYgLS1naXQgYS9kcml2
ZXJzL25ldC9hdGxhbnRpYy9hdGxfZXRoZGV2LmMgYi9kcml2ZXJzL25ldC9hdGxhbnRpYy9hdGxf
ZXRoZGV2LmMNCmluZGV4IDgzMjc4NjNjZDliNi4uNTAyZWY1MzA4YjRkIDEwMDY0NA0KLS0tIGEv
ZHJpdmVycy9uZXQvYXRsYW50aWMvYXRsX2V0aGRldi5jDQorKysgYi9kcml2ZXJzL25ldC9hdGxh
bnRpYy9hdGxfZXRoZGV2LmMNCkBAIC0xMjIsNiArMTIyLDE4IEBAIHN0YXRpYyBpbnQgZXRoX2F0
bF9wY2lfcmVtb3ZlKHN0cnVjdCBydGVfcGNpX2RldmljZSAqcGNpX2Rldik7DQogc3RhdGljIHZv
aWQgYXRsX2Rldl9pbmZvX2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCiAJCQkJc3RydWN0
IHJ0ZV9ldGhfZGV2X2luZm8gKmRldl9pbmZvKTsNCiANCitzdGF0aWMgaW50IGF0bF9tYWNzZWNf
ZW5hYmxlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50OF90IGVuY3IsDQorCQkJICAgICB1
aW50OF90IHJlcGxfcHJvdCk7DQorc3RhdGljIGludCBhdGxfbWFjc2VjX2Rpc2FibGUoc3RydWN0
IHJ0ZV9ldGhfZGV2ICpkZXYpOw0KK3N0YXRpYyBpbnQgYXRsX21hY3NlY19jb25maWdfdHhzYyhz
dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDhfdCAqbWFjKTsNCitzdGF0aWMgaW50IGF0bF9t
YWNzZWNfY29uZmlnX3J4c2Moc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQorCQkJCSAgdWludDhf
dCAqbWFjLCB1aW50MTZfdCBwaSk7DQorc3RhdGljIGludCBhdGxfbWFjc2VjX3NlbGVjdF90eHNh
KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50OF90IGlkeCwNCisJCQkJICB1aW50OF90IGFu
LCB1aW50MzJfdCBwbiwgdWludDhfdCAqa2V5KTsNCisNCitzdGF0aWMgaW50IGF0bF9tYWNzZWNf
c2VsZWN0X3J4c2Eoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQ4X3QgaWR4LA0KKwkJCQkg
IHVpbnQ4X3QgYW4sIHVpbnQzMl90IHBuLCB1aW50OF90ICprZXkpOw0KKw0KIGludCBhdGxfbG9n
dHlwZV9pbml0Ow0KIGludCBhdGxfbG9ndHlwZV9kcml2ZXI7DQogDQpAQCAtMTY3LDYgKzE3OSw3
IEBAIHN0YXRpYyBzdHJ1Y3QgcnRlX3BjaV9kcml2ZXIgcnRlX2F0bF9wbWQgPSB7DQogCQkJfCBE
RVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gXA0KIAkJCXwgREVWX1JYX09GRkxPQURfVENQX0NLU1VN
IFwNCiAJCQl8IERFVl9SWF9PRkZMT0FEX0pVTUJPX0ZSQU1FIFwNCisJCQl8IERFVl9SWF9PRkZM
T0FEX01BQ1NFQ19TVFJJUCBcDQogCQkJfCBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUikNCiAN
CiAjZGVmaW5lIEFUTF9UWF9PRkZMT0FEUyAoREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgXA0K
QEAgLTE3NCw2ICsxODcsNyBAQCBzdGF0aWMgc3RydWN0IHJ0ZV9wY2lfZHJpdmVyIHJ0ZV9hdGxf
cG1kID0gew0KIAkJCXwgREVWX1RYX09GRkxPQURfVURQX0NLU1VNIFwNCiAJCQl8IERFVl9UWF9P
RkZMT0FEX1RDUF9DS1NVTSBcDQogCQkJfCBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIFwNCisJCQl8
IERFVl9UWF9PRkZMT0FEX01BQ1NFQ19JTlNFUlQgXA0KIAkJCXwgREVWX1RYX09GRkxPQURfTVVM
VElfU0VHUykNCiANCiBzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9ldGhfZGVzY19saW0gcnhfZGVz
Y19saW0gPSB7DQpAQCAtMjk1LDYgKzMwOSwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGV0aF9k
ZXZfb3BzIGF0bF9ldGhfZGV2X29wcyA9IHsNCiAJLnJldGFfcXVlcnkgICAgICAgICAgID0gYXRs
X3JldGFfcXVlcnksDQogCS5yc3NfaGFzaF91cGRhdGUgICAgICA9IGF0bF9yc3NfaGFzaF91cGRh
dGUsDQogCS5yc3NfaGFzaF9jb25mX2dldCAgICA9IGF0bF9yc3NfaGFzaF9jb25mX2dldCwNCisN
CisJLm1hY3NlY19lbmFibGUgICAgICAgID0gYXRsX21hY3NlY19lbmFibGUsDQorCS5tYWNzZWNf
ZGlzYWJsZSAgICAgICA9IGF0bF9tYWNzZWNfZGlzYWJsZSwNCisJLm1hY3NlY19jb25maWdfcnhz
YyAgID0gYXRsX21hY3NlY19jb25maWdfcnhzYywNCisJLm1hY3NlY19jb25maWdfdHhzYyAgID0g
YXRsX21hY3NlY19jb25maWdfdHhzYywNCisJLm1hY3NlY19zZWxlY3RfcnhzYSAgID0gYXRsX21h
Y3NlY19zZWxlY3RfcnhzYSwNCisJLm1hY3NlY19zZWxlY3RfdHhzYSAgID0gYXRsX21hY3NlY19z
ZWxlY3RfdHhzYSwNCiB9Ow0KIA0KIHN0YXRpYyBpbmxpbmUgaW50MzJfdA0KQEAgLTY5OCw2ICs3
MTksMjA1IEBAIGF0bF9kZXZfcmVzZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQogCXJldHVy
biByZXQ7DQogfQ0KIA0KK3N0YXRpYyBpbnQNCithdGxfZGV2X2NvbmZpZ3VyZV9tYWNzZWMoc3Ry
dWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQorew0KKwlzdHJ1Y3QgYXFfaHdfcyAqaHcgPSBBVExfREVW
X1BSSVZBVEVfVE9fSFcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7DQorCXN0cnVjdCBhcV9od19j
ZmdfcyAqY2YgPSBBVExfREVWX1BSSVZBVEVfVE9fQ0ZHKGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUp
Ow0KKwlzdHJ1Y3QgYXFfbWFjc2VjX2NvbmZpZyAqYXFjZmcgPSAmY2YtPmFxX21hY3NlYzsNCisJ
c3RydWN0IG1hY3NlY19tc2dfZndfcmVxdWVzdCBtc2dfbWFjc2VjOw0KKwlzdHJ1Y3QgbWFjc2Vj
X21zZ19md19yZXNwb25zZSByZXNwb25zZTsNCisNCisJaWYgKCFhcWNmZy0+Y29tbW9uLm1hY3Nl
Y19lbmFibGVkIHx8DQorCSAgICBody0+YXFfZndfb3BzLT5zZW5kX21hY3NlY19yZXEgPT0gTlVM
TCkNCisJCXJldHVybiAwOw0KKw0KKwltZW1zZXQoJm1zZ19tYWNzZWMsIDAsIHNpemVvZihtc2df
bWFjc2VjKSk7DQorDQorCS8qIENyZWF0aW5nIHNldCBvZiBzYy9zYSBzdHJ1Y3R1cmVzIGZyb20g
cGFyYW1ldGVycyBwcm92aWRlZCBieSBEUERLICovDQorDQorCS8qIENvbmZpZ3VyZSBtYWNzZWMg
Ki8NCisJbXNnX21hY3NlYy5tc2dfdHlwZSA9IG1hY3NlY19jZmdfbXNnOw0KKwltc2dfbWFjc2Vj
LmNmZy5lbmFibGVkID0gYXFjZmctPmNvbW1vbi5tYWNzZWNfZW5hYmxlZDsNCisJbXNnX21hY3Nl
Yy5jZmcuaW50ZXJydXB0c19lbmFibGVkID0gMTsNCisNCisJaHctPmFxX2Z3X29wcy0+c2VuZF9t
YWNzZWNfcmVxKGh3LCAmbXNnX21hY3NlYywgJnJlc3BvbnNlKTsNCisNCisJaWYgKHJlc3BvbnNl
LnJlc3VsdCkNCisJCXJldHVybiAtMTsNCisNCisJbWVtc2V0KCZtc2dfbWFjc2VjLCAwLCBzaXpl
b2YobXNnX21hY3NlYykpOw0KKw0KKwkvKiBDb25maWd1cmUgVFggU0MgKi8NCisNCisJbXNnX21h
Y3NlYy5tc2dfdHlwZSA9IG1hY3NlY19hZGRfdHhfc2NfbXNnOw0KKwltc2dfbWFjc2VjLnR4c2Mu
aW5kZXggPSAwOyAvKiBUWFNDIGFsd2F5cyBvbmUgKD8/KSAqLw0KKwltc2dfbWFjc2VjLnR4c2Mu
cHJvdGVjdCA9IGFxY2ZnLT5jb21tb24uZW5jcnlwdGlvbl9lbmFibGVkOw0KKw0KKwkvKiBNQUMg
YWRkciBmb3IgVFggKi8NCisJbXNnX21hY3NlYy50eHNjLm1hY19zYVswXSA9IHJ0ZV9ic3dhcDMy
KGFxY2ZnLT50eHNjLm1hY1sxXSk7DQorCW1zZ19tYWNzZWMudHhzYy5tYWNfc2FbMV0gPSBydGVf
YnN3YXAzMihhcWNmZy0+dHhzYy5tYWNbMF0pOw0KKwltc2dfbWFjc2VjLnR4c2Muc2FfbWFzayA9
IDB4M2Y7DQorDQorCW1zZ19tYWNzZWMudHhzYy5kYV9tYXNrID0gMDsNCisJbXNnX21hY3NlYy50
eHNjLnRjaSA9IDB4MEI7DQorCW1zZ19tYWNzZWMudHhzYy5jdXJyX2FuID0gMDsgLyogU0EgaW5k
ZXggd2hpY2ggY3VycmVudGx5IHVzZWQgKi8NCisNCisJLyoNCisJICogQ3JlYXRpbmcgU0NJIChT
ZWN1cmUgQ2hhbm5lbCBJZGVudGlmaWVyKS4NCisJICogU0NJIGNvbnN0cnVjdGVkIGZyb20gU291
cmNlIE1BQyBhbmQgUG9ydCBpZGVudGlmaWVyDQorCSAqLw0KKwl1aW50MzJfdCBzY2lfaGlfcGFy
dCA9IChtc2dfbWFjc2VjLnR4c2MubWFjX3NhWzFdIDw8IDE2KSB8DQorCQkJICAgICAgIChtc2df
bWFjc2VjLnR4c2MubWFjX3NhWzBdID4+IDE2KTsNCisJdWludDMyX3Qgc2NpX2xvd19wYXJ0ID0g
KG1zZ19tYWNzZWMudHhzYy5tYWNfc2FbMF0gPDwgMTYpOw0KKw0KKwl1aW50MzJfdCBwb3J0X2lk
ZW50aWZpZXIgPSAxOw0KKw0KKwltc2dfbWFjc2VjLnR4c2Muc2NpWzFdID0gc2NpX2hpX3BhcnQ7
DQorCW1zZ19tYWNzZWMudHhzYy5zY2lbMF0gPSBzY2lfbG93X3BhcnQgfCBwb3J0X2lkZW50aWZp
ZXI7DQorDQorCWh3LT5hcV9md19vcHMtPnNlbmRfbWFjc2VjX3JlcShodywgJm1zZ19tYWNzZWMs
ICZyZXNwb25zZSk7DQorDQorCWlmIChyZXNwb25zZS5yZXN1bHQpDQorCQlyZXR1cm4gLTE7DQor
DQorCW1lbXNldCgmbXNnX21hY3NlYywgMCwgc2l6ZW9mKG1zZ19tYWNzZWMpKTsNCisNCisJLyog
Q29uZmlndXJlIFJYIFNDICovDQorDQorCW1zZ19tYWNzZWMubXNnX3R5cGUgPSBtYWNzZWNfYWRk
X3J4X3NjX21zZzsNCisJbXNnX21hY3NlYy5yeHNjLmluZGV4ID0gYXFjZmctPnJ4c2MucGk7DQor
CW1zZ19tYWNzZWMucnhzYy5yZXBsYXlfcHJvdGVjdCA9DQorCQlhcWNmZy0+Y29tbW9uLnJlcGxh
eV9wcm90ZWN0aW9uX2VuYWJsZWQ7DQorCW1zZ19tYWNzZWMucnhzYy5hbnRpX3JlcGxheV93aW5k
b3cgPSAwOw0KKw0KKwkvKiBNQUMgYWRkciBmb3IgUlggKi8NCisJbXNnX21hY3NlYy5yeHNjLm1h
Y19kYVswXSA9IHJ0ZV9ic3dhcDMyKGFxY2ZnLT5yeHNjLm1hY1sxXSk7DQorCW1zZ19tYWNzZWMu
cnhzYy5tYWNfZGFbMV0gPSBydGVfYnN3YXAzMihhcWNmZy0+cnhzYy5tYWNbMF0pOw0KKwltc2df
bWFjc2VjLnJ4c2MuZGFfbWFzayA9IDA7Ly8weDNmOw0KKw0KKwltc2dfbWFjc2VjLnJ4c2Muc2Ff
bWFzayA9IDA7DQorDQorCWh3LT5hcV9md19vcHMtPnNlbmRfbWFjc2VjX3JlcShodywgJm1zZ19t
YWNzZWMsICZyZXNwb25zZSk7DQorDQorCWlmIChyZXNwb25zZS5yZXN1bHQpDQorCQlyZXR1cm4g
LTE7DQorDQorCW1lbXNldCgmbXNnX21hY3NlYywgMCwgc2l6ZW9mKG1zZ19tYWNzZWMpKTsNCisN
CisJLyogQ29uZmlndXJlIFJYIFNDICovDQorDQorCW1zZ19tYWNzZWMubXNnX3R5cGUgPSBtYWNz
ZWNfYWRkX3R4X3NhX21zZzsNCisJbXNnX21hY3NlYy50eHNhLmluZGV4ID0gYXFjZmctPnR4c2Eu
aWR4Ow0KKwltc2dfbWFjc2VjLnR4c2EubmV4dF9wbiA9IGFxY2ZnLT50eHNhLnBuOw0KKw0KKwlt
c2dfbWFjc2VjLnR4c2Eua2V5WzBdID0gcnRlX2Jzd2FwMzIoYXFjZmctPnR4c2Eua2V5WzNdKTsN
CisJbXNnX21hY3NlYy50eHNhLmtleVsxXSA9IHJ0ZV9ic3dhcDMyKGFxY2ZnLT50eHNhLmtleVsy
XSk7DQorCW1zZ19tYWNzZWMudHhzYS5rZXlbMl0gPSBydGVfYnN3YXAzMihhcWNmZy0+dHhzYS5r
ZXlbMV0pOw0KKwltc2dfbWFjc2VjLnR4c2Eua2V5WzNdID0gcnRlX2Jzd2FwMzIoYXFjZmctPnR4
c2Eua2V5WzBdKTsNCisNCisJaHctPmFxX2Z3X29wcy0+c2VuZF9tYWNzZWNfcmVxKGh3LCAmbXNn
X21hY3NlYywgJnJlc3BvbnNlKTsNCisNCisJaWYgKHJlc3BvbnNlLnJlc3VsdCkNCisJCXJldHVy
biAtMTsNCisNCisJbWVtc2V0KCZtc2dfbWFjc2VjLCAwLCBzaXplb2YobXNnX21hY3NlYykpOw0K
Kw0KKwkvKiBDb25maWd1cmUgUlggU0EgKi8NCisNCisJbXNnX21hY3NlYy5tc2dfdHlwZSA9IG1h
Y3NlY19hZGRfcnhfc2FfbXNnOw0KKwltc2dfbWFjc2VjLnJ4c2EuaW5kZXggPSBhcWNmZy0+cnhz
YS5pZHg7DQorCW1zZ19tYWNzZWMucnhzYS5uZXh0X3BuID0gYXFjZmctPnJ4c2EucG47DQorDQor
CW1zZ19tYWNzZWMucnhzYS5rZXlbMF0gPSBydGVfYnN3YXAzMihhcWNmZy0+cnhzYS5rZXlbM10p
Ow0KKwltc2dfbWFjc2VjLnJ4c2Eua2V5WzFdID0gcnRlX2Jzd2FwMzIoYXFjZmctPnJ4c2Eua2V5
WzJdKTsNCisJbXNnX21hY3NlYy5yeHNhLmtleVsyXSA9IHJ0ZV9ic3dhcDMyKGFxY2ZnLT5yeHNh
LmtleVsxXSk7DQorCW1zZ19tYWNzZWMucnhzYS5rZXlbM10gPSBydGVfYnN3YXAzMihhcWNmZy0+
cnhzYS5rZXlbMF0pOw0KKw0KKwlody0+YXFfZndfb3BzLT5zZW5kX21hY3NlY19yZXEoaHcsICZt
c2dfbWFjc2VjLCAmcmVzcG9uc2UpOw0KKw0KKwlpZiAocmVzcG9uc2UucmVzdWx0KQ0KKwkJcmV0
dXJuIC0xOw0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGludCBhdGxfbWFjc2VjX2Vu
YWJsZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCisJCQkgICAgIHVpbnQ4X3QgZW5jciwgdWlu
dDhfdCByZXBsX3Byb3QpDQorew0KKwlzdHJ1Y3QgYXFfaHdfY2ZnX3MgKmNmZyA9DQorCQlBVExf
REVWX1BSSVZBVEVfVE9fQ0ZHKGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOw0KKw0KKwljZmctPmFx
X21hY3NlYy5jb21tb24ubWFjc2VjX2VuYWJsZWQgPSAxOw0KKwljZmctPmFxX21hY3NlYy5jb21t
b24uZW5jcnlwdGlvbl9lbmFibGVkID0gZW5jcjsNCisJY2ZnLT5hcV9tYWNzZWMuY29tbW9uLnJl
cGxheV9wcm90ZWN0aW9uX2VuYWJsZWQgPSByZXBsX3Byb3Q7DQorDQorCXJldHVybiAwOw0KK30N
CisNCitzdGF0aWMgaW50IGF0bF9tYWNzZWNfZGlzYWJsZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRl
dikNCit7DQorCXN0cnVjdCBhcV9od19jZmdfcyAqY2ZnID0NCisJCUFUTF9ERVZfUFJJVkFURV9U
T19DRkcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7DQorDQorCWNmZy0+YXFfbWFjc2VjLmNvbW1v
bi5tYWNzZWNfZW5hYmxlZCA9IDA7DQorDQorCXJldHVybiAwOw0KK30NCisNCitzdGF0aWMgaW50
IGF0bF9tYWNzZWNfY29uZmlnX3R4c2Moc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQ4X3Qg
Km1hYykNCit7DQorCXN0cnVjdCBhcV9od19jZmdfcyAqY2ZnID0NCisJCUFUTF9ERVZfUFJJVkFU
RV9UT19DRkcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7DQorDQorCW1lbXNldCgmY2ZnLT5hcV9t
YWNzZWMudHhzYy5tYWMsIDAsIHNpemVvZihjZmctPmFxX21hY3NlYy50eHNjLm1hYykpOw0KKwlt
ZW1jcHkoKHVpbnQ4X3QgKikmY2ZnLT5hcV9tYWNzZWMudHhzYy5tYWMgKyAyLCBtYWMsIEVUSEVS
X0FERFJfTEVOKTsNCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQgYXRsX21hY3Nl
Y19jb25maWdfcnhzYyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCisJCQkJICB1aW50OF90ICpt
YWMsIHVpbnQxNl90IHBpKQ0KK3sNCisJc3RydWN0IGFxX2h3X2NmZ19zICpjZmcgPQ0KKwkJQVRM
X0RFVl9QUklWQVRFX1RPX0NGRyhkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsNCisNCisJbWVtc2V0
KCZjZmctPmFxX21hY3NlYy5yeHNjLm1hYywgMCwgc2l6ZW9mKGNmZy0+YXFfbWFjc2VjLnJ4c2Mu
bWFjKSk7DQorCW1lbWNweSgodWludDhfdCAqKSZjZmctPmFxX21hY3NlYy5yeHNjLm1hYyArIDIs
IG1hYywgRVRIRVJfQUREUl9MRU4pOw0KKwljZmctPmFxX21hY3NlYy5yeHNjLnBpID0gcGk7DQor
DQorCXJldHVybiAwOw0KK30NCisNCitzdGF0aWMgaW50IGF0bF9tYWNzZWNfc2VsZWN0X3R4c2Eo
c3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQorCQkJCSAgdWludDhfdCBpZHgsIHVpbnQ4X3QgYW4s
DQorCQkJCSAgdWludDMyX3QgcG4sIHVpbnQ4X3QgKmtleSkNCit7DQorCXN0cnVjdCBhcV9od19j
ZmdfcyAqY2ZnID0NCisJCUFUTF9ERVZfUFJJVkFURV9UT19DRkcoZGV2LT5kYXRhLT5kZXZfcHJp
dmF0ZSk7DQorDQorCWNmZy0+YXFfbWFjc2VjLnR4c2EuaWR4ID0gaWR4Ow0KKwljZmctPmFxX21h
Y3NlYy50eHNhLnBuID0gcG47DQorCWNmZy0+YXFfbWFjc2VjLnR4c2EuYW4gPSBhbjsNCisNCisJ
bWVtY3B5KCZjZmctPmFxX21hY3NlYy50eHNhLmtleSwga2V5LCAxNik7DQorCXJldHVybiAwOw0K
K30NCisNCitzdGF0aWMgaW50IGF0bF9tYWNzZWNfc2VsZWN0X3J4c2Eoc3RydWN0IHJ0ZV9ldGhf
ZGV2ICpkZXYsDQorCQkJCSAgdWludDhfdCBpZHgsIHVpbnQ4X3QgYW4sDQorCQkJCSAgdWludDMy
X3QgcG4sIHVpbnQ4X3QgKmtleSkNCit7DQorCXN0cnVjdCBhcV9od19jZmdfcyAqY2ZnID0NCisJ
CUFUTF9ERVZfUFJJVkFURV9UT19DRkcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7DQorDQorCWNm
Zy0+YXFfbWFjc2VjLnJ4c2EuaWR4ID0gaWR4Ow0KKwljZmctPmFxX21hY3NlYy5yeHNhLnBuID0g
cG47DQorCWNmZy0+YXFfbWFjc2VjLnJ4c2EuYW4gPSBhbjsNCisNCisJbWVtY3B5KCZjZmctPmFx
X21hY3NlYy5yeHNhLmtleSwga2V5LCAxNik7DQorCXJldHVybiAwOw0KK30NCiANCiBzdGF0aWMg
aW50DQogYXRsX2Rldl9zdGF0c19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHN0cnVjdCBy
dGVfZXRoX3N0YXRzICpzdGF0cykNCi0tIA0KMi4xNy4xDQoNCg==