From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0088.outbound.protection.outlook.com [104.47.34.88]) by dpdk.org (Postfix) with ESMTP id 3DC3CDED for ; Tue, 1 May 2018 00:50:17 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=onevmw.onmicrosoft.com; s=selector1-vmware-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Q+ihVe0jfCh2FomFZhc1Vuujl3s4H87p6F/Svvsdaps=; b=nPcbIm1vPxkufO9kHE1QfqwGQMKHv2oePudncF0dvjfIKhkt52e0rxVkxHYiaXolpY8AeZSVKDSpo3rdwfxZLCfcLKpq2qnvmp9kzSGBcmoFQ+0zFIiGIQ7laYCeVOzaH+VTmAvr83ini1rXkHF5Nsq9NinYZL7nfP45C3hyWtk= Received: from BN6PR05MB3267.namprd05.prod.outlook.com (10.172.147.17) by BN6PR05MB3011.namprd05.prod.outlook.com (10.173.19.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.735.5; Mon, 30 Apr 2018 22:50:15 +0000 Received: from BN6PR05MB3267.namprd05.prod.outlook.com ([fe80::6184:cfeb:9c1d:7637]) by BN6PR05MB3267.namprd05.prod.outlook.com ([fe80::6184:cfeb:9c1d:7637%9]) with mapi id 15.20.0735.006; Mon, 30 Apr 2018 22:50:14 +0000 From: Yong Wang To: Louis Luo CC: "dev@dpdk.org" , Louis Luo Thread-Topic: [PATCH] net/vmxnet3: convert to new rx offload api Thread-Index: AQHT4NGE80knzu5fU0CmOfq5HzxPBqQZ6XfQ Date: Mon, 30 Apr 2018 22:50:14 +0000 Message-ID: References: <1525126835-21775-1-git-send-email-llouis@vmware.com> In-Reply-To: <1525126835-21775-1-git-send-email-llouis@vmware.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=yongwang@vmware.com; x-originating-ip: [66.170.99.2] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; BN6PR05MB3011; 7:ONENBAlEIZegFQDlqg10lVVsd0Ppifw5foKx5miKjjN56zc/7nXArQlN2YFhazcSVh+R+o5a9+q9Rv90yamWz86qzpNiYWgldXxkjlv8RLC08Hcs98sOCjOKv1HK/zqc0ccOvazyMXj7jE+60rJsYWn0X9pe1gJFfCa81cKxjuEnUorcjERpVoxZeIU4rnr6Nkk40OvgCT02+DxtTmYrGV7OOwpO0rGr5+zNZ0rYZn6/xXcKjkMLjrGJoU2ttvsi; 20:1TMnfqYDvH6kAg4Gn+CU8k7WjbpB/9HYjZWoux2VUoa1tyJpXD7rU9SH2Ne7fHaMePN8T4dFtue9tnKhsx8rHXE1QrMWp/HVDrsuXPa/VGRAlbh+ORo5wZKCocztzCTuROj6pgyNt2VZqtmN3fMa8I7TOgmxFiZnNKZjH3BOm4I= x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR; x-forefront-antispam-report: SFV:SKI; SCL:-1; SFV:NSPM; SFS:(10009020)(39380400002)(376002)(346002)(366004)(396003)(39860400002)(189003)(199004)(13464003)(53936002)(11346002)(476003)(486006)(446003)(4326008)(6862004)(3660700001)(3846002)(6116002)(305945005)(74316002)(3280700002)(5660300001)(33656002)(54906003)(106356001)(97736004)(229853002)(6436002)(6636002)(316002)(6246003)(68736007)(9686003)(105586002)(107886003)(55016002)(8676002)(76176011)(478600001)(5250100002)(102836004)(8936002)(81166006)(2900100001)(66066001)(99286004)(7696005)(81156014)(2906002)(6506007)(86362001)(26005)(25786009)(7736002)(53546011)(14454004)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR05MB3011; H:BN6PR05MB3267.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(2017052603328)(7153060)(7193020); SRVR:BN6PR05MB3011; x-ms-traffictypediagnostic: BN6PR05MB3011: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(61668805478150); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231254)(944501410)(52105095)(93006095)(93001095)(10201501046)(3002001)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123562045)(20161123558120)(6072148)(201708071742011); SRVR:BN6PR05MB3011; BCL:0; PCL:0; RULEID:; SRVR:BN6PR05MB3011; x-forefront-prvs: 0658BAF71F received-spf: None (protection.outlook.com: vmware.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: 1Cx/ekVn3Nt+Y1/TjrJZXOtXZfyjK3bVReHThOQTMjvH6UUj0LNvn2MLYh9dxeX+rjlXubc73cmirbHupJDpwGXqeUZf/b5wPjBHH+hsOEUr/plkyK74+yqtIUYlmcduA9hhI09kFImrHqoQOEyto3Wl7Fk0sQp03SsPI8Y91sujXQDkNZ5cISw6pq6xbxoi spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: d1b1513e-cdf1-42ce-0246-08d5aeecbcb0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-Network-Message-Id: d1b1513e-cdf1-42ce-0246-08d5aeecbcb0 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Apr 2018 22:50:14.1807 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR05MB3011 Subject: Re: [dpdk-dev] [PATCH] net/vmxnet3: convert to new rx offload api X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Apr 2018 22:50:17 -0000 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMb3VpcyBMdW8gW21haWx0bzps bG91aXNAdm13YXJlLmNvbV0NCj4gU2VudDogTW9uZGF5LCBBcHJpbCAzMCwgMjAxOCAzOjIxIFBN DQo+IFRvOiBZb25nIFdhbmcgPHlvbmd3YW5nQHZtd2FyZS5jb20+DQo+IENjOiBkZXZAZHBkay5v cmc7IExvdWlzIEx1byA8bGxvdWlzQHZtd2FyZS5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSF0gbmV0 L3ZteG5ldDM6IGNvbnZlcnQgdG8gbmV3IHJ4IG9mZmxvYWQgYXBpDQo+IA0KPiBFdGhkZXYgUlgg b2ZmbG9hZHMgQVBJIGhhcyBjaGFuZ2VkIHNpbmNlOiBjb21taXQgY2UxN2VkZGVmYzIwDQo+ICgi ZXRoZGV2OiBpbnRyb2R1Y2UgUnggcXVldWUgb2ZmbG9hZHMgQVBJIikNCj4gDQo+IFRoaXMgcGF0 Y2ggYWRvcHRzIHRoZSBuZXcgUlggT2ZmbG9hZCBBUEkgaW4gdm14bmV0MyBkcml2ZXIuDQo+IA0K PiBTaWduZWQtb2ZmLWJ5OiBMb3VpcyBMdW8gPGxsb3Vpc0B2bXdhcmUuY29tPg0KDQpBY2tlZC1i eTogWW9uZyBXYW5nIDx5b25nd2FuZ0B2bXdhcmUuY29tPg0KDQo+IC0tLQ0KPiAgZHJpdmVycy9u ZXQvdm14bmV0My92bXhuZXQzX2V0aGRldi5jIHwgNjENCj4gKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tDQo+ICAxIGZpbGUgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwgMTYg ZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdm14bmV0My92bXhu ZXQzX2V0aGRldi5jDQo+IGIvZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2V0aGRldi5jDQo+ IGluZGV4IDQ1Njg1MjEuLmQ5ZDViZGEgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L3ZteG5l dDMvdm14bmV0M19ldGhkZXYuYw0KPiArKysgYi9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNf ZXRoZGV2LmMNCj4gQEAgLTQyLDYgKzQyLDIzIEBADQo+IA0KPiAgI2RlZmluZQlWTVhORVQzX1RY X01BWF9TRUcJVUlOVDhfTUFYDQo+IA0KPiArI2RlZmluZSBWTVhORVQzX1RYX09GRkxPQURfQ0FQ CQlcDQo+ICsJKERFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwJXA0KPiArCSBERVZfVFhfT0ZG TE9BRF9JUFY0X0NLU1VNIHwJXA0KPiArCSBERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAlcDQo+ ICsJIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CVwNCj4gKwkgREVWX1RYX09GRkxPQURfVENQ X1RTTyB8CVwNCj4gKwkgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUykNCj4gKw0KPiArI2RlZmlu ZSBWTVhORVQzX1JYX09GRkxPQURfQ0FQCQlcDQo+ICsJKERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RS SVAgfAlcDQo+ICsJIERFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAlcDQo+ICsJIERFVl9SWF9PRkZM T0FEX0lQVjRfQ0tTVU0gfAlcDQo+ICsJIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CVwNCj4g KwkgREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwJXA0KPiArCSBERVZfUlhfT0ZGTE9BRF9UQ1Bf TFJPIHwJXA0KPiArCSBERVZfUlhfT0ZGTE9BRF9KVU1CT19GUkFNRSkNCj4gKw0KPiAgc3RhdGlj IGludCBldGhfdm14bmV0M19kZXZfaW5pdChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYpOw0K PiAgc3RhdGljIGludCBldGhfdm14bmV0M19kZXZfdW5pbml0KHN0cnVjdCBydGVfZXRoX2RldiAq ZXRoX2Rldik7DQo+ICBzdGF0aWMgaW50IHZteG5ldDNfZGV2X2NvbmZpZ3VyZShzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldik7DQo+IEBAIC0zNzYsOSArMzkzLDI1IEBAIHZteG5ldDNfZGV2X2NvbmZp Z3VyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gIAljb25zdCBzdHJ1Y3QgcnRlX21lbXpv bmUgKm16Ow0KPiAgCXN0cnVjdCB2bXhuZXQzX2h3ICpodyA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZh dGU7DQo+ICAJc2l6ZV90IHNpemU7DQo+ICsJdWludDY0X3Qgcnhfb2ZmbG9hZHMgPSBkZXYtPmRh dGEtPmRldl9jb25mLnJ4bW9kZS5vZmZsb2FkczsNCj4gKwl1aW50NjRfdCB0eF9vZmZsb2FkcyA9 IGRldi0+ZGF0YS0+ZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzOw0KPiANCj4gIAlQTURfSU5JVF9G VU5DX1RSQUNFKCk7DQo+IA0KPiArCWlmICgocnhfb2ZmbG9hZHMgJiBWTVhORVQzX1JYX09GRkxP QURfQ0FQKSAhPSByeF9vZmZsb2Fkcykgew0KPiArCQlSVEVfTE9HKEVSUiwgUE1ELCAiUmVxdWVz dGVkIFJYIG9mZmxvYWRzIDB4JWx4Ig0KPiArCQkJIiBkbyBub3QgbWF0Y2ggc3VwcG9ydGVkIDB4 JWx4XG4iLA0KPiArCQkJcnhfb2ZmbG9hZHMsDQo+ICh1aW50NjRfdClWTVhORVQzX1JYX09GRkxP QURfQ0FQKTsNCj4gKwkJcmV0dXJuIC1FTk9UU1VQOw0KPiArCX0NCj4gKw0KPiArCWlmICgodHhf b2ZmbG9hZHMgJiBWTVhORVQzX1RYX09GRkxPQURfQ0FQKSAhPSB0eF9vZmZsb2Fkcykgew0KPiAr CQlSVEVfTE9HKEVSUiwgUE1ELCAiUmVxdWVzdGVkIFRYIG9mZmxvYWRzIDB4JWx4Ig0KPiArCQkJ IiBkbyBub3QgbWF0Y2ggc3VwcG9ydGVkIDB4JWx4XG4iLA0KPiArCQkJdHhfb2ZmbG9hZHMsICh1 aW50NjRfdClWTVhORVQzX1RYX09GRkxPQURfQ0FQKTsNCj4gKwkJcmV0dXJuIC1FTk9UU1VQOw0K PiArCX0NCj4gKw0KPiAgCWlmIChkZXYtPmRhdGEtPm5iX3R4X3F1ZXVlcyA+IFZNWE5FVDNfTUFY X1RYX1FVRVVFUyB8fA0KPiAgCSAgICBkZXYtPmRhdGEtPm5iX3J4X3F1ZXVlcyA+IFZNWE5FVDNf TUFYX1JYX1FVRVVFUykgew0KPiAgCQlQTURfSU5JVF9MT0coRVJSLCAiRVJST1I6IE51bWJlciBv ZiBxdWV1ZXMgbm90DQo+IHN1cHBvcnRlZCIpOw0KPiBAQCAtNTY3LDYgKzYwMCw3IEBAIHZteG5l dDNfc2V0dXBfZHJpdmVyX3NoYXJlZChzdHJ1Y3QgcnRlX2V0aF9kZXYNCj4gKmRldikNCj4gIAl1 aW50MzJfdCBtdHUgPSBkZXYtPmRhdGEtPm10dTsNCj4gIAlWbXhuZXQzX0RyaXZlclNoYXJlZCAq c2hhcmVkID0gaHctPnNoYXJlZDsNCj4gIAlWbXhuZXQzX0RTRGV2UmVhZCAqZGV2UmVhZCA9ICZz aGFyZWQtPmRldlJlYWQ7DQo+ICsJdWludDY0X3Qgcnhfb2ZmbG9hZHMgPSBkZXYtPmRhdGEtPmRl dl9jb25mLnJ4bW9kZS5vZmZsb2FkczsNCj4gIAl1aW50MzJfdCBpOw0KPiAgCWludCByZXQ7DQo+ IA0KPiBAQCAtNjQ0LDEwICs2NzgsMTAgQEAgdm14bmV0M19zZXR1cF9kcml2ZXJfc2hhcmVkKHN0 cnVjdCBydGVfZXRoX2Rldg0KPiAqZGV2KQ0KPiAgCWRldlJlYWQtPnJ4RmlsdGVyQ29uZi5yeE1v ZGUgPSAwOw0KPiANCj4gIAkvKiBTZXR0aW5nIHVwIGZlYXR1cmUgZmxhZ3MgKi8NCj4gLQlpZiAo ZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUuaHdfaXBfY2hlY2tzdW0pDQo+ICsJaWYgKHJ4X29m ZmxvYWRzICYgREVWX1JYX09GRkxPQURfQ0hFQ0tTVU0pDQo+ICAJCWRldlJlYWQtPm1pc2MudXB0 RmVhdHVyZXMgfD0gVk1YTkVUM19GX1JYQ1NVTTsNCj4gDQo+IC0JaWYgKGRldi0+ZGF0YS0+ZGV2 X2NvbmYucnhtb2RlLmVuYWJsZV9scm8pIHsNCj4gKwlpZiAocnhfb2ZmbG9hZHMgJiBERVZfUlhf T0ZGTE9BRF9UQ1BfTFJPKSB7DQo+ICAJCWRldlJlYWQtPm1pc2MudXB0RmVhdHVyZXMgfD0gVk1Y TkVUM19GX0xSTzsNCj4gIAkJZGV2UmVhZC0+bWlzYy5tYXhOdW1SeFNHID0gMDsNCj4gIAl9DQo+ IEBAIC0xMDUwLDE3ICsxMDg0LDEwIEBAIHZteG5ldDNfZGV2X2luZm9fZ2V0KHN0cnVjdCBydGVf ZXRoX2RldiAqZGV2DQo+IF9fcnRlX3VudXNlZCwNCj4gIAkJLm5iX210dV9zZWdfbWF4ID0gVk1Y TkVUM19NQVhfVFhEX1BFUl9QS1QsDQo+ICAJfTsNCj4gDQo+IC0JZGV2X2luZm8tPnJ4X29mZmxv YWRfY2FwYSA9DQo+IC0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfA0KPiAtCQlERVZfUlhf T0ZGTE9BRF9VRFBfQ0tTVU0gfA0KPiAtCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfA0KPiAt CQlERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPOw0KPiAtDQo+IC0JZGV2X2luZm8tPnR4X29mZmxvYWRf Y2FwYSA9DQo+IC0JCURFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwNCj4gLQkJREVWX1RYX09G RkxPQURfVENQX0NLU1VNIHwNCj4gLQkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwNCj4gLQkJ REVWX1RYX09GRkxPQURfVENQX1RTTzsNCj4gKwlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhID0g Vk1YTkVUM19SWF9PRkZMT0FEX0NBUDsNCj4gKwlkZXZfaW5mby0+cnhfcXVldWVfb2ZmbG9hZF9j YXBhID0gMDsNCj4gKwlkZXZfaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0gVk1YTkVUM19UWF9PRkZM T0FEX0NBUDsNCj4gKwlkZXZfaW5mby0+dHhfcXVldWVfb2ZmbG9hZF9jYXBhID0gMDsNCj4gIH0N Cj4gDQo+ICBzdGF0aWMgY29uc3QgdWludDMyX3QgKg0KPiBAQCAtMTE1NCw4ICsxMTgxLDkgQEAg dm14bmV0M19kZXZfcHJvbWlzY3VvdXNfZGlzYWJsZShzdHJ1Y3QNCj4gcnRlX2V0aF9kZXYgKmRl dikNCj4gIHsNCj4gIAlzdHJ1Y3Qgdm14bmV0M19odyAqaHcgPSBkZXYtPmRhdGEtPmRldl9wcml2 YXRlOw0KPiAgCXVpbnQzMl90ICp2Zl90YWJsZSA9IGh3LT5zaGFyZWQtPmRldlJlYWQucnhGaWx0 ZXJDb25mLnZmVGFibGU7DQo+ICsJdWludDY0X3Qgcnhfb2ZmbG9hZHMgPSBkZXYtPmRhdGEtPmRl dl9jb25mLnJ4bW9kZS5vZmZsb2FkczsNCj4gDQo+IC0JaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYu cnhtb2RlLmh3X3ZsYW5fZmlsdGVyKQ0KPiArCWlmIChyeF9vZmZsb2FkcyAmIERFVl9SWF9PRkZM T0FEX1ZMQU5fRklMVEVSKQ0KPiAgCQltZW1jcHkodmZfdGFibGUsIGh3LT5zaGFkb3dfdmZ0YSwN Cj4gVk1YTkVUM19WRlRfVEFCTEVfU0laRSk7DQo+ICAJZWxzZQ0KPiAgCQltZW1zZXQodmZfdGFi bGUsIDB4ZmYsIFZNWE5FVDNfVkZUX1RBQkxFX1NJWkUpOw0KPiBAQCAtMTIxNyw5ICsxMjQ1LDEw IEBAIHZteG5ldDNfZGV2X3ZsYW5fb2ZmbG9hZF9zZXQoc3RydWN0DQo+IHJ0ZV9ldGhfZGV2ICpk ZXYsIGludCBtYXNrKQ0KPiAgCXN0cnVjdCB2bXhuZXQzX2h3ICpodyA9IGRldi0+ZGF0YS0+ZGV2 X3ByaXZhdGU7DQo+ICAJVm14bmV0M19EU0RldlJlYWQgKmRldlJlYWQgPSAmaHctPnNoYXJlZC0+ ZGV2UmVhZDsNCj4gIAl1aW50MzJfdCAqdmZfdGFibGUgPSBkZXZSZWFkLT5yeEZpbHRlckNvbmYu dmZUYWJsZTsNCj4gKwl1aW50NjRfdCByeF9vZmZsb2FkcyA9IGRldi0+ZGF0YS0+ZGV2X2NvbmYu cnhtb2RlLm9mZmxvYWRzOw0KPiANCj4gIAlpZiAobWFzayAmIEVUSF9WTEFOX1NUUklQX01BU0sp IHsNCj4gLQkJaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLmh3X3ZsYW5fc3RyaXApDQo+ ICsJCWlmIChyeF9vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVApDQo+ICAJCQlk ZXZSZWFkLT5taXNjLnVwdEZlYXR1cmVzIHw9IFVQVDFfRl9SWFZMQU47DQo+ICAJCWVsc2UNCj4g IAkJCWRldlJlYWQtPm1pc2MudXB0RmVhdHVyZXMgJj0gflVQVDFfRl9SWFZMQU47DQo+IEBAIC0x MjI5LDcgKzEyNTgsNyBAQCB2bXhuZXQzX2Rldl92bGFuX29mZmxvYWRfc2V0KHN0cnVjdA0KPiBy dGVfZXRoX2RldiAqZGV2LCBpbnQgbWFzaykNCj4gIAl9DQo+IA0KPiAgCWlmIChtYXNrICYgRVRI X1ZMQU5fRklMVEVSX01BU0spIHsNCj4gLQkJaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2Rl Lmh3X3ZsYW5fZmlsdGVyKQ0KPiArCQlpZiAocnhfb2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9W TEFOX0ZJTFRFUikNCj4gIAkJCW1lbWNweSh2Zl90YWJsZSwgaHctPnNoYWRvd192ZnRhLA0KPiBW TVhORVQzX1ZGVF9UQUJMRV9TSVpFKTsNCj4gIAkJZWxzZQ0KPiAgCQkJbWVtc2V0KHZmX3RhYmxl LCAweGZmLCBWTVhORVQzX1ZGVF9UQUJMRV9TSVpFKTsNCj4gLS0NCj4gMi43LjQNCg0K