From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id D2FFCA00E6 for ; Sat, 18 May 2019 11:47:44 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id CB7823576; Sat, 18 May 2019 11:47:44 +0200 (CEST) Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-eopbgr810053.outbound.protection.outlook.com [40.107.81.53]) by dpdk.org (Postfix) with ESMTP id 48D1458EC for ; Sat, 18 May 2019 11:47:43 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=AQUANTIA1COM.onmicrosoft.com; s=selector1-AQUANTIA1COM-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BE6SM81EVrTyrXRWenPMiJGYm4H+GSKrcYFdSXTqMC8=; b=sYOSv4Bq8S5Sii0FNAV0VTqGJsRiEdcNuY6vA9bXjbGvLseY+eDEhmc9XwV75zsZUjN2J9ZKuKViRS+MoE+dzKMhsKOupBRO0OpsXqOb3uV/JBeO6K/m1DclOwp/+XN+WKnby4dvTVwXL1dPVVoLFLcJChnTMywBm+BmHmHRp7E= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB3515.namprd11.prod.outlook.com (20.177.220.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1900.16; Sat, 18 May 2019 09:47:41 +0000 Received: from DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::512d:4596:4513:424a]) by DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::512d:4596:4513:424a%5]) with mapi id 15.20.1900.010; Sat, 18 May 2019 09:47:41 +0000 From: Igor Russkikh To: "stable@dpdk.org" , "ktraynor@redhat.com" CC: Pavel Belous , Igor Russkikh , Pavel Belous Thread-Topic: [PATCH 18.11 04/10] net/atlantic: eeprom get/set should consider offset Thread-Index: AQHVDV682Ri7MctErE6vWc2LbkXr2A== Date: Sat, 18 May 2019 09:47:41 +0000 Message-ID: <76d7e0ce0b4be539d723858593a11f626c2ec688.1558172288.git.igor.russkikh@aquantia.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: HE1PR0802CA0019.eurprd08.prod.outlook.com (2603:10a6:3:bd::29) To DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::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: 01779f4f-303b-46fd-57fb-08d6db75dec2 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB3515; x-ms-traffictypediagnostic: DM6PR11MB3515: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:747; x-forefront-prvs: 0041D46242 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(39850400004)(396003)(376002)(366004)(346002)(189003)(199004)(99286004)(50226002)(6436002)(86362001)(14454004)(5660300002)(2501003)(110136005)(54906003)(316002)(118296001)(2906002)(478600001)(53936002)(6512007)(6486002)(8936002)(72206003)(26005)(102836004)(476003)(186003)(11346002)(76176011)(81166006)(2616005)(66066001)(36756003)(66446008)(64756008)(66556008)(68736007)(7736002)(81156014)(305945005)(66476007)(8676002)(446003)(44832011)(25786009)(73956011)(6116002)(66946007)(486006)(107886003)(71190400001)(71200400001)(3846002)(6506007)(386003)(14444005)(4326008)(256004)(52116002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB3515; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: bXPuxiNaikECHpwC+aK4ddLWZgmjOv2n4XALy95jQDSPVSwM8a1PahoJG/WBw18Rq7p/3M+yNrGWvew3amArntfg5aZUehPI9Pv9wiMdrnPCmg1NEsuuhbZV4xQ9uoKtrk6V74jPijT6XBz2PmgyKzH7JegHEpITtClqiWTJrtOkpz5IWOCsdhIL7wFPbeaKgv7ukoTtDbuUUxuX0ygrq0Eih5EDH5pQsmWtAJURmTZd7L8vzIaIZIsEem711+Hg0wPCsM19joh9MtsDjlSdwRdEsGNoM6JI+txW2t5AwSQiXwf8P5m6KchpXQuSYLKUWeCSJ5ik/ZqN3khDQvIn+BOK93T3oGB6GxBBnDWji+PPcFbHsOnLxDsDna+4QdewPnPPOLvJk1d86nLziYAc8LtqkYRMLShHYmhIwfq9Apw= 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: 01779f4f-303b-46fd-57fb-08d6db75dec2 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 May 2019 09:47:41.8086 (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: DM6PR11MB3515 Subject: [dpdk-stable] [PATCH 18.11 04/10] net/atlantic: eeprom get/set should consider offset X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" RnJvbTogUGF2ZWwgQmVsb3VzIDxwYXZlbC5iZWxvdXNAYXF1YW50aWEuY29tPg0KDQpFRVBST00g Z2V0L3NldCBvZmZzZXQgbG9naWMgc2hvdWxkIHRha2Ugb2Zmc2V0IGludG8gYWNjb3VudC4NCkRh dGEgdHJhbnNmZXJzIHRvL2Zyb20gRlcgc2hvdWxkIGFsc28gY29ycmVjdGx5IHVzZQ0KZHdvcmQg YmFzZWQgdHJhbnNmZXIgaW50ZXJmYWNlLCB0YWtpbmcgaW50byBhY2NvdW50IHRoZQ0KcmVtYWlu ZGVyLg0KV2UgYWxzbyBjaGVjayBlcnJvciBjb2RlIHJldHVybmVkIGZyb20gRlcuDQoNCmNjOiBz dGFibGVAZHBkay5vcmcNCkZpeGVzOiBjZTRlOGQ0MTgwOTcgKCJuZXQvYXRsYW50aWM6IGltcGxl bWVudCBFRVBST00gZ2V0L3NldCIpDQpTaWduZWQtb2ZmLWJ5OiBJZ29yIFJ1c3NraWtoIDxpZ29y LnJ1c3NraWtoQGFxdWFudGlhLmNvbT4NClNpZ25lZC1vZmYtYnk6IFBhdmVsIEJlbG91cyA8cGF2 ZWwuYmVsb3VzQGFxdWFudGlhLmNvbT4NClNpZ25lZC1vZmYtYnk6IFBhdmVsIEJlbG91cyA8UGF2 ZWwuQmVsb3VzQGFxdWFudGlhLmNvbT4NCi0tLQ0KIGRyaXZlcnMvbmV0L2F0bGFudGljL2F0bF9l dGhkZXYuYyAgICAgICAgICAgICB8ICAyMCArKystDQogZHJpdmVycy9uZXQvYXRsYW50aWMvYXRs X3R5cGVzLmggICAgICAgICAgICAgIHwgICA2ICstDQogZHJpdmVycy9uZXQvYXRsYW50aWMvaHdf YXRsL2h3X2F0bF91dGlscy5oICAgIHwgIDE2ICstLQ0KIC4uLi9uZXQvYXRsYW50aWMvaHdfYXRs L2h3X2F0bF91dGlsc19mdzJ4LmMgICB8IDEwOSArKysrKysrKysrKysrLS0tLS0NCiA0IGZpbGVz IGNoYW5nZWQsIDEwNCBpbnNlcnRpb25zKCspLCA0NyBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2F0bGFudGljL2F0bF9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2F0bGFu dGljL2F0bF9ldGhkZXYuYw0KaW5kZXggNWJjMDRmNTVjYzIxLi42YjI4OTcwMmQ4NDkgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL25ldC9hdGxhbnRpYy9hdGxfZXRoZGV2LmMNCisrKyBiL2RyaXZlcnMv bmV0L2F0bGFudGljL2F0bF9ldGhkZXYuYw0KQEAgLTExMDYsMjggKzExMDYsNDAgQEAgc3RhdGlj IGludA0KIGF0bF9kZXZfZ2V0X2VlcHJvbShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgc3RydWN0 IHJ0ZV9kZXZfZWVwcm9tX2luZm8gKmVlcHJvbSkNCiB7DQogCXN0cnVjdCBhcV9od19zICpodyA9 IEFUTF9ERVZfUFJJVkFURV9UT19IVyhkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsNCisJaW50IGRl dl9hZGRyID0gU01CVVNfREVWSUNFX0lEOw0KIA0KIAlpZiAoaHctPmFxX2Z3X29wcy0+Z2V0X2Vl cHJvbSA9PSBOVUxMKQ0KIAkJcmV0dXJuIC1FTk9UU1VQOw0KIA0KLQlpZiAoZWVwcm9tLT5sZW5n dGggIT0gU0ZQX0VFUFJPTV9TSVpFIHx8IGVlcHJvbS0+ZGF0YSA9PSBOVUxMKQ0KKwlpZiAoZWVw cm9tLT5sZW5ndGggKyBlZXByb20tPm9mZnNldCA+IFNGUF9FRVBST01fU0laRSB8fA0KKwkgICAg ZWVwcm9tLT5kYXRhID09IE5VTEwpDQogCQlyZXR1cm4gLUVJTlZBTDsNCiANCi0JcmV0dXJuIGh3 LT5hcV9md19vcHMtPmdldF9lZXByb20oaHcsIGVlcHJvbS0+ZGF0YSwgZWVwcm9tLT5sZW5ndGgp Ow0KKwlpZiAoZWVwcm9tLT5tYWdpYykNCisJCWRldl9hZGRyID0gZWVwcm9tLT5tYWdpYzsNCisN CisJcmV0dXJuIGh3LT5hcV9md19vcHMtPmdldF9lZXByb20oaHcsIGRldl9hZGRyLCBlZXByb20t PmRhdGEsDQorCQkJCQkgZWVwcm9tLT5sZW5ndGgsIGVlcHJvbS0+b2Zmc2V0KTsNCiB9DQogDQog c3RhdGljIGludA0KIGF0bF9kZXZfc2V0X2VlcHJvbShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwg c3RydWN0IHJ0ZV9kZXZfZWVwcm9tX2luZm8gKmVlcHJvbSkNCiB7DQogCXN0cnVjdCBhcV9od19z ICpodyA9IEFUTF9ERVZfUFJJVkFURV9UT19IVyhkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsNCisJ aW50IGRldl9hZGRyID0gU01CVVNfREVWSUNFX0lEOw0KIA0KIAlpZiAoaHctPmFxX2Z3X29wcy0+ c2V0X2VlcHJvbSA9PSBOVUxMKQ0KIAkJcmV0dXJuIC1FTk9UU1VQOw0KIA0KLQlpZiAoZWVwcm9t LT5sZW5ndGggIT0gU0ZQX0VFUFJPTV9TSVpFIHx8IGVlcHJvbS0+ZGF0YSA9PSBOVUxMKQ0KKwlp ZiAoZWVwcm9tLT5sZW5ndGggKyBlZXByb20tPm9mZnNldCA+IFNGUF9FRVBST01fU0laRSB8fA0K KwkgICAgZWVwcm9tLT5kYXRhID09IE5VTEwpDQogCQlyZXR1cm4gLUVJTlZBTDsNCiANCi0JcmV0 dXJuIGh3LT5hcV9md19vcHMtPnNldF9lZXByb20oaHcsIGVlcHJvbS0+ZGF0YSwgZWVwcm9tLT5s ZW5ndGgpOw0KKwlpZiAoZWVwcm9tLT5tYWdpYykNCisJCWRldl9hZGRyID0gZWVwcm9tLT5tYWdp YzsNCisNCisJcmV0dXJuIGh3LT5hcV9md19vcHMtPnNldF9lZXByb20oaHcsIGRldl9hZGRyLCBl ZXByb20tPmRhdGEsDQorCQkJCQkgZWVwcm9tLT5sZW5ndGgsIGVlcHJvbS0+b2Zmc2V0KTsNCiB9 DQogDQogc3RhdGljIGludA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2F0bGFudGljL2F0bF90 eXBlcy5oIGIvZHJpdmVycy9uZXQvYXRsYW50aWMvYXRsX3R5cGVzLmgNCmluZGV4IDNkOTBmNmNh ZWZjMi4uOTY2MjI3NDVkNDk1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvYXRsYW50aWMvYXRs X3R5cGVzLmgNCisrKyBiL2RyaXZlcnMvbmV0L2F0bGFudGljL2F0bF90eXBlcy5oDQpAQCAtMTM3 LDkgKzEzNywxMSBAQCBzdHJ1Y3QgYXFfZndfb3BzIHsNCiANCiAJaW50ICgqbGVkX2NvbnRyb2wp KHN0cnVjdCBhcV9od19zICpzZWxmLCB1MzIgbW9kZSk7DQogDQotCWludCAoKmdldF9lZXByb20p KHN0cnVjdCBhcV9od19zICpzZWxmLCB1MzIgKmRhdGEsIHUzMiBsZW4pOw0KKwlpbnQgKCpnZXRf ZWVwcm9tKShzdHJ1Y3QgYXFfaHdfcyAqc2VsZiwgaW50IGRldl9hZGRyLA0KKwkJCXUzMiAqZGF0 YSwgdTMyIGxlbiwgdTMyIG9mZnNldCk7DQogDQotCWludCAoKnNldF9lZXByb20pKHN0cnVjdCBh cV9od19zICpzZWxmLCB1MzIgKmRhdGEsIHUzMiBsZW4pOw0KKwlpbnQgKCpzZXRfZWVwcm9tKShz dHJ1Y3QgYXFfaHdfcyAqc2VsZiwgaW50IGRldl9hZGRyLA0KKwkJCXUzMiAqZGF0YSwgdTMyIGxl biwgdTMyIG9mZnNldCk7DQogfTsNCiANCiBzdHJ1Y3QgYXRsX3N3X3N0YXRzIHsNCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9hdGxhbnRpYy9od19hdGwvaHdfYXRsX3V0aWxzLmggYi9kcml2ZXJz L25ldC9hdGxhbnRpYy9od19hdGwvaHdfYXRsX3V0aWxzLmgNCmluZGV4IDVmM2Y3MDg0NzMxMC4u YjFmMDNmNDJlOGI4IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvYXRsYW50aWMvaHdfYXRsL2h3 X2F0bF91dGlscy5oDQorKysgYi9kcml2ZXJzL25ldC9hdGxhbnRpYy9od19hdGwvaHdfYXRsX3V0 aWxzLmgNCkBAIC0zMzYsMTUgKzMzNiw4IEBAIHN0cnVjdCBvZmZsb2FkX2luZm8gew0KIAl1OCBi dWZbMF07DQogfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSk7DQogDQotc3RydWN0IHNtYnVz X3JlYWRfcmVxdWVzdCB7DQotCXUzMiBvZmZzZXQ7IC8qIG5vdCB1c2VkICovDQotCXUzMiBkZXZp Y2VfaWQ7DQotCXUzMiBhZGRyZXNzOw0KLQl1MzIgbGVuZ3RoOw0KLX0gX19hdHRyaWJ1dGVfXygo X19wYWNrZWRfXykpOw0KLQ0KLXN0cnVjdCBzbWJ1c193cml0ZV9yZXF1ZXN0IHsNCi0JdTMyIG9m ZnNldDsgLyogbm90IHVzZWQgKi8NCitzdHJ1Y3Qgc21idXNfcmVxdWVzdCB7DQorCXUzMiBtc2df aWQ7IC8qIG5vdCB1c2VkICovDQogCXUzMiBkZXZpY2VfaWQ7DQogCXUzMiBhZGRyZXNzOw0KIAl1 MzIgbGVuZ3RoOw0KQEAgLTM4OSw4ICszODIsNiBAQCBlbnVtIGhhbF9hdGxfdXRpbHNfZndfc3Rh dGVfZSB7DQogI2RlZmluZSBIQUxfQVRMQU5USUNfVVRJTFNfRldfTVNHX09GRkxPQURfREVMICAx MFUNCiAjZGVmaW5lIEhBTF9BVExBTlRJQ19VVElMU19GV19NU0dfQ0FCTEVfRElBRyAgIDEzVSAv LyAweGQNCiANCi0jZGVmaW5lIFNNQlVTX1JFQURfUkVRVUVTVCBCSVQoMTMpDQotI2RlZmluZSBT TUJVU19XUklURV9SRVFVRVNUIEJJVCgxNCkNCiAjZGVmaW5lIFNNQlVTX0RFVklDRV9JRCAweDUw DQogDQogZW51bSBod19hdGxfZncyeF9yYXRlIHsNCkBAIC00MTQsNiArNDA1LDkgQEAgZW51bSBo d19hdGxfZncyeF9jYXBzX2xvIHsNCiAJQ0FQU19MT18yUDVHQkFTRVRfRkQsDQogCUNBUFNfTE9f NUdCQVNFVF9GRCwNCiAJQ0FQU19MT18xMEdCQVNFVF9GRCwNCisJQ0FQU19MT19BVVRPTkVHLA0K KwlDQVBTX0xPX1NNQlVTX1JFQUQsDQorCUNBUFNfTE9fU01CVVNfV1JJVEUsDQogfTsNCiANCiBl bnVtIGh3X2F0bF9mdzJ4X2NhcHNfaGkgew0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2F0bGFu dGljL2h3X2F0bC9od19hdGxfdXRpbHNfZncyeC5jIGIvZHJpdmVycy9uZXQvYXRsYW50aWMvaHdf YXRsL2h3X2F0bF91dGlsc19mdzJ4LmMNCmluZGV4IDY4NDFkOWJjZTM5Yy4uZTBmYjg1MGM5YWFj IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvYXRsYW50aWMvaHdfYXRsL2h3X2F0bF91dGlsc19m dzJ4LmMNCisrKyBiL2RyaXZlcnMvbmV0L2F0bGFudGljL2h3X2F0bC9od19hdGxfdXRpbHNfZncy eC5jDQpAQCAtNDg0LDM4ICs0ODQsNDIgQEAgc3RhdGljIGludCBhcV9mdzJ4X2xlZF9jb250cm9s KHN0cnVjdCBhcV9od19zICpzZWxmLCB1MzIgbW9kZSkNCiAJcmV0dXJuIDA7DQogfQ0KIA0KLXN0 YXRpYyBpbnQgYXFfZncyeF9nZXRfZWVwcm9tKHN0cnVjdCBhcV9od19zICpzZWxmLCB1MzIgKmRh dGEsIHUzMiBsZW4pDQorc3RhdGljIGludCBhcV9mdzJ4X2dldF9lZXByb20oc3RydWN0IGFxX2h3 X3MgKnNlbGYsIGludCBkZXZfYWRkciwNCisJCQl1MzIgKmRhdGEsIHUzMiBsZW4sIHUzMiBvZmZz ZXQpDQogew0KLQlpbnQgZXJyID0gMDsNCi0Jc3RydWN0IHNtYnVzX3JlYWRfcmVxdWVzdCByZXF1 ZXN0Ow0KLQl1MzIgbXBpX29wdHM7DQorCXUzMiBieXRlc19yZW1haW5zID0gbGVuICUgc2l6ZW9m KHUzMik7DQorCXUzMiBudW1fZHdvcmRzID0gbGVuIC8gc2l6ZW9mKHUzMik7DQorCXN0cnVjdCBz bWJ1c19yZXF1ZXN0IHJlcXVlc3Q7DQogCXUzMiByZXN1bHQgPSAwOw0KKwl1MzIgbXBpX29wdHM7 DQorCWludCBlcnIgPSAwOw0KIA0KIAlpZiAoc2VsZi0+ZndfdmVyX2FjdHVhbCA8IEhXX0FUTF9G V19GRUFUVVJFX0VFUFJPTSkNCiAJCXJldHVybiAtRU9QTk9UU1VQUDsNCiANCi0JcmVxdWVzdC5k ZXZpY2VfaWQgPSBTTUJVU19ERVZJQ0VfSUQ7DQotCXJlcXVlc3QuYWRkcmVzcyA9IDA7DQorCXJl cXVlc3QubXNnX2lkID0gMDsNCisJcmVxdWVzdC5kZXZpY2VfaWQgPSBkZXZfYWRkcjsNCisJcmVx dWVzdC5hZGRyZXNzID0gb2Zmc2V0Ow0KIAlyZXF1ZXN0Lmxlbmd0aCA9IGxlbjsNCiANCiAJLyog V3JpdGUgU01CVVMgcmVxdWVzdCB0byBjZmcgbWVtb3J5ICovDQogCWVyciA9IGh3X2F0bF91dGls c19md191cGxvYWRfZHdvcmRzKHNlbGYsIHNlbGYtPnJwY19hZGRyLA0KIAkJCQkodTMyICopKHZv aWQgKikmcmVxdWVzdCwNCi0JCQkJUlRFX0FMSUdOKHNpemVvZihyZXF1ZXN0KSwgc2l6ZW9mKHUz MikpKTsNCisJCQkJc2l6ZW9mKHJlcXVlc3QpIC8gc2l6ZW9mKHUzMikpOw0KIA0KIAlpZiAoZXJy IDwgMCkNCiAJCXJldHVybiBlcnI7DQogDQotCS8qIFRvZ2dsZSAweDM2OC5TTUJVU19SRUFEX1JF UVVFU1QgYml0ICovDQorCS8qIFRvZ2dsZSAweDM2OC5DQVBTX0xPX1NNQlVTX1JFQUQgYml0ICov DQogCW1waV9vcHRzID0gYXFfaHdfcmVhZF9yZWcoc2VsZiwgSFdfQVRMX0ZXMlhfTVBJX0NPTlRS T0xfQUREUik7DQotCW1waV9vcHRzIF49IFNNQlVTX1JFQURfUkVRVUVTVDsNCisJbXBpX29wdHMg Xj0gQklUKENBUFNfTE9fU01CVVNfUkVBRCk7DQogDQogCWFxX2h3X3dyaXRlX3JlZyhzZWxmLCBI V19BVExfRlcyWF9NUElfQ09OVFJPTF9BRERSLCBtcGlfb3B0cyk7DQogDQogCS8qIFdhaXQgdW50 aWwgUkVRVUVTVF9CSVQgbWF0Y2hlZCBpbiAweDM3MCAqLw0KIA0KIAlBUV9IV19XQUlUX0ZPUigo YXFfaHdfcmVhZF9yZWcoc2VsZiwgSFdfQVRMX0ZXMlhfTVBJX1NUQVRFX0FERFIpICYNCi0JCVNN QlVTX1JFQURfUkVRVUVTVCkgPT0gKG1waV9vcHRzICYgU01CVVNfUkVBRF9SRVFVRVNUKSwNCisJ CUJJVChDQVBTX0xPX1NNQlVTX1JFQUQpKSA9PSAobXBpX29wdHMgJiBCSVQoQ0FQU19MT19TTUJV U19SRUFEKSksDQogCQkxMFUsIDEwMDAwVSk7DQogDQogCWlmIChlcnIgPCAwKQ0KQEAgLTUyMyw2 NCArNTI3LDEwNiBAQCBzdGF0aWMgaW50IGFxX2Z3MnhfZ2V0X2VlcHJvbShzdHJ1Y3QgYXFfaHdf cyAqc2VsZiwgdTMyICpkYXRhLCB1MzIgbGVuKQ0KIA0KIAllcnIgPSBod19hdGxfdXRpbHNfZndf ZG93bmxkX2R3b3JkcyhzZWxmLCBzZWxmLT5ycGNfYWRkciArIHNpemVvZih1MzIpLA0KIAkJCSZy ZXN1bHQsDQotCQkJUlRFX0FMSUdOKHNpemVvZihyZXN1bHQpLCBzaXplb2YodTMyKSkpOw0KKwkJ CXNpemVvZihyZXN1bHQpIC8gc2l6ZW9mKHUzMikpOw0KIA0KIAlpZiAoZXJyIDwgMCkNCiAJCXJl dHVybiBlcnI7DQogDQotCWlmIChyZXN1bHQgPT0gMCkgew0KKwlpZiAocmVzdWx0KQ0KKwkJcmV0 dXJuIC1FSU87DQorDQorCWlmIChudW1fZHdvcmRzKSB7DQorCQllcnIgPSBod19hdGxfdXRpbHNf ZndfZG93bmxkX2R3b3JkcyhzZWxmLA0KKwkJCXNlbGYtPnJwY19hZGRyICsgc2l6ZW9mKHUzMikg KiAyLA0KKwkJCWRhdGEsDQorCQkJbnVtX2R3b3Jkcyk7DQorDQorCQlpZiAoZXJyIDwgMCkNCisJ CQlyZXR1cm4gZXJyOw0KKwl9DQorDQorCWlmIChieXRlc19yZW1haW5zKSB7DQorCQl1MzIgdmFs ID0gMDsNCisNCiAJCWVyciA9IGh3X2F0bF91dGlsc19md19kb3dubGRfZHdvcmRzKHNlbGYsDQot CQkJCXNlbGYtPnJwY19hZGRyICsgc2l6ZW9mKHUzMikgKiAyLA0KLQkJCQlkYXRhLA0KLQkJCQlS VEVfQUxJR04obGVuLCBzaXplb2YodTMyKSkpOw0KKwkJCXNlbGYtPnJwY19hZGRyICsgKHNpemVv Zih1MzIpICogMikgKw0KKwkJCShudW1fZHdvcmRzICogc2l6ZW9mKHUzMikpLA0KKwkJCSZ2YWws DQorCQkJMSk7DQogDQogCQlpZiAoZXJyIDwgMCkNCiAJCQlyZXR1cm4gZXJyOw0KKw0KKwkJcnRl X21lbWNweSgodTggKilkYXRhICsgbGVuIC0gYnl0ZXNfcmVtYWlucywNCisJCQkmdmFsLCBieXRl c19yZW1haW5zKTsNCiAJfQ0KIA0KIAlyZXR1cm4gMDsNCiB9DQogDQogDQotc3RhdGljIGludCBh cV9mdzJ4X3NldF9lZXByb20oc3RydWN0IGFxX2h3X3MgKnNlbGYsIHUzMiAqZGF0YSwgdTMyIGxl bikNCitzdGF0aWMgaW50IGFxX2Z3Mnhfc2V0X2VlcHJvbShzdHJ1Y3QgYXFfaHdfcyAqc2VsZiwg aW50IGRldl9hZGRyLA0KKwkJCQl1MzIgKmRhdGEsIHUzMiBsZW4sIHUzMiBvZmZzZXQpDQogew0K LQlzdHJ1Y3Qgc21idXNfd3JpdGVfcmVxdWVzdCByZXF1ZXN0Ow0KKwlzdHJ1Y3Qgc21idXNfcmVx dWVzdCByZXF1ZXN0Ow0KIAl1MzIgbXBpX29wdHMsIHJlc3VsdCA9IDA7DQogCWludCBlcnIgPSAw Ow0KIA0KIAlpZiAoc2VsZi0+ZndfdmVyX2FjdHVhbCA8IEhXX0FUTF9GV19GRUFUVVJFX0VFUFJP TSkNCiAJCXJldHVybiAtRU9QTk9UU1VQUDsNCiANCi0JcmVxdWVzdC5kZXZpY2VfaWQgPSBTTUJV U19ERVZJQ0VfSUQ7DQotCXJlcXVlc3QuYWRkcmVzcyA9IDA7DQorCXJlcXVlc3QubXNnX2lkID0g MDsNCisJcmVxdWVzdC5kZXZpY2VfaWQgPSBkZXZfYWRkcjsNCisJcmVxdWVzdC5hZGRyZXNzID0g b2Zmc2V0Ow0KIAlyZXF1ZXN0Lmxlbmd0aCA9IGxlbjsNCiANCiAJLyogV3JpdGUgU01CVVMgcmVx dWVzdCB0byBjZmcgbWVtb3J5ICovDQogCWVyciA9IGh3X2F0bF91dGlsc19md191cGxvYWRfZHdv cmRzKHNlbGYsIHNlbGYtPnJwY19hZGRyLA0KIAkJCQkodTMyICopKHZvaWQgKikmcmVxdWVzdCwN Ci0JCQkJUlRFX0FMSUdOKHNpemVvZihyZXF1ZXN0KSwgc2l6ZW9mKHUzMikpKTsNCisJCQkJc2l6 ZW9mKHJlcXVlc3QpIC8gc2l6ZW9mKHUzMikpOw0KIA0KIAlpZiAoZXJyIDwgMCkNCiAJCXJldHVy biBlcnI7DQogDQogCS8qIFdyaXRlIFNNQlVTIGRhdGEgdG8gY2ZnIG1lbW9yeSAqLw0KLQllcnIg PSBod19hdGxfdXRpbHNfZndfdXBsb2FkX2R3b3JkcyhzZWxmLA0KLQkJCQlzZWxmLT5ycGNfYWRk ciArIHNpemVvZihyZXF1ZXN0KSwNCi0JCQkJKHUzMiAqKSh2b2lkICopZGF0YSwNCi0JCQkJUlRF X0FMSUdOKGxlbiwgc2l6ZW9mKHUzMikpKTsNCisJdTMyIG51bV9kd29yZHMgPSBsZW4gLyBzaXpl b2YodTMyKTsNCisJdTMyIGJ5dGVzX3JlbWFpbnMgPSBsZW4gJSBzaXplb2YodTMyKTsNCiANCi0J aWYgKGVyciA8IDApDQotCQlyZXR1cm4gZXJyOw0KKwlpZiAobnVtX2R3b3Jkcykgew0KKwkJZXJy ID0gaHdfYXRsX3V0aWxzX2Z3X3VwbG9hZF9kd29yZHMoc2VsZiwNCisJCQlzZWxmLT5ycGNfYWRk ciArIHNpemVvZihyZXF1ZXN0KSwNCisJCQkodTMyICopKHZvaWQgKilkYXRhLA0KKwkJCW51bV9k d29yZHMpOw0KKw0KKwkJaWYgKGVyciA8IDApDQorCQkJcmV0dXJuIGVycjsNCisJfQ0KKw0KKwlp ZiAoYnl0ZXNfcmVtYWlucykgew0KKwkJdTMyIHZhbCA9IDA7DQorDQorCQlydGVfbWVtY3B5KCZ2 YWwsICh1OCAqKWRhdGEgKyAoc2l6ZW9mKHUzMikgKiBudW1fZHdvcmRzKSwNCisJCQlieXRlc19y ZW1haW5zKTsNCiANCi0JLyogVG9nZ2xlIDB4MzY4LlNNQlVTX1dSSVRFX1JFUVVFU1QgYml0ICov DQorCQllcnIgPSBod19hdGxfdXRpbHNfZndfdXBsb2FkX2R3b3JkcyhzZWxmLA0KKwkJCXNlbGYt PnJwY19hZGRyICsgc2l6ZW9mKHJlcXVlc3QpICsNCisJCQkobnVtX2R3b3JkcyAqIHNpemVvZih1 MzIpKSwNCisJCQkmdmFsLA0KKwkJCTEpOw0KKw0KKwkJaWYgKGVyciA8IDApDQorCQkJcmV0dXJu IGVycjsNCisJfQ0KKw0KKwkvKiBUb2dnbGUgMHgzNjguQ0FQU19MT19TTUJVU19XUklURSBiaXQg Ki8NCiAJbXBpX29wdHMgPSBhcV9od19yZWFkX3JlZyhzZWxmLCBIV19BVExfRlcyWF9NUElfQ09O VFJPTF9BRERSKTsNCi0JbXBpX29wdHMgXj0gU01CVVNfV1JJVEVfUkVRVUVTVDsNCisJbXBpX29w dHMgXj0gQklUKENBUFNfTE9fU01CVVNfV1JJVEUpOw0KIA0KIAlhcV9od193cml0ZV9yZWcoc2Vs ZiwgSFdfQVRMX0ZXMlhfTVBJX0NPTlRST0xfQUREUiwgbXBpX29wdHMpOw0KIA0KIAkvKiBXYWl0 IHVudGlsIFJFUVVFU1RfQklUIG1hdGNoZWQgaW4gMHgzNzAgKi8NCiAJQVFfSFdfV0FJVF9GT1Io KGFxX2h3X3JlYWRfcmVnKHNlbGYsIEhXX0FUTF9GVzJYX01QSV9TVEFURV9BRERSKSAmDQotCQlT TUJVU19XUklURV9SRVFVRVNUKSA9PSAobXBpX29wdHMgJiBTTUJVU19XUklURV9SRVFVRVNUKSwN CisJCUJJVChDQVBTX0xPX1NNQlVTX1dSSVRFKSkgPT0gKG1waV9vcHRzICYgQklUKENBUFNfTE9f U01CVVNfV1JJVEUpKSwNCiAJCTEwVSwgMTAwMDBVKTsNCiANCiAJaWYgKGVyciA8IDApDQpAQCAt NTg5LDExICs2MzUsMTQgQEAgc3RhdGljIGludCBhcV9mdzJ4X3NldF9lZXByb20oc3RydWN0IGFx X2h3X3MgKnNlbGYsIHUzMiAqZGF0YSwgdTMyIGxlbikNCiAJLyogUmVhZCBzdGF0dXMgb2Ygd3Jp dGUgb3BlcmF0aW9uICovDQogCWVyciA9IGh3X2F0bF91dGlsc19md19kb3dubGRfZHdvcmRzKHNl bGYsIHNlbGYtPnJwY19hZGRyICsgc2l6ZW9mKHUzMiksDQogCQkJCSZyZXN1bHQsDQotCQkJCVJU RV9BTElHTihzaXplb2YocmVzdWx0KSwgc2l6ZW9mKHUzMikpKTsNCisJCQkJc2l6ZW9mKHJlc3Vs dCkgLyBzaXplb2YodTMyKSk7DQogDQogCWlmIChlcnIgPCAwKQ0KIAkJcmV0dXJuIGVycjsNCiAN CisJaWYgKHJlc3VsdCkNCisJCXJldHVybiAtRUlPOw0KKw0KIAlyZXR1cm4gMDsNCiB9DQogDQot LSANCjIuMTcuMQ0KDQo=