From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D0BA9C83007 for ; Tue, 28 Apr 2020 19:57:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9C7E02176D for ; Tue, 28 Apr 2020 19:57:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="q6L/yBMT" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729350AbgD1T5L (ORCPT ); Tue, 28 Apr 2020 15:57:11 -0400 Received: from mail-eopbgr10088.outbound.protection.outlook.com ([40.107.1.88]:13391 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728584AbgD1T5K (ORCPT ); Tue, 28 Apr 2020 15:57:10 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=br15IxX4zkF8BnBmgtJvU/llOrSAGT5UJ0jtW8OL7D7DJ2hxU+vdbOVmxmlfIYkzYqDy9qFtTJ1Dk4F3eOdbXdMedM0E1RH7W2G3i9atr7WTVoqu9gAv6veGFbyNAaW3/pDdldEYeWciFowftUpC9kACLK3IYSV4AWDxrWrPsZwp9UXF4N4mpAKHWguleaOSukNwFCweHtEPcfwA1owbDUSmPmEySk9GE2WInFN/N028jNvwqOOD4LKDDKQ3fHs3hH3LKGla3V3Hc3c1Tp2xYx1O6HVlMukrqxkQG49dFV7D0wF9zx5UjarUf0svsicsBxerFcXDfZ4zXWRZTS6QXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=V3KWG7vDEwzNXMZWLMgldw1z3aM6FgtxAcwLbsvmjhg=; b=Lcf182KyUMtWg/jpGcyz8YwEcKcxHgg4gUHUErtdSN68JRj99ksXPRKlT24LqEbgnOmRsOy3aCeVpZdDPjqItPStjPGdTulTHIkrI92HUnR+ik6VNhT+qpru7eBoQYRA2kIIrW91svdXHHGsb97JwWXkSvxAsP7fLqGeqyzPl/NjVU26MfsFYUETraZ9sdf8OukfwjnoODEm5ZMPQTfMRw8cMQI84l3m60IAdQy1f9V5w0SwGCwIOwdUgkBJwxQU71YGfGZoWG/FHWXb4mV4l7eQLt5JfpRk5dmjQld+tqztz+z+M9BXLGt2nIJ9Ltg1xToaaB699gcuDONQPoW2QQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=V3KWG7vDEwzNXMZWLMgldw1z3aM6FgtxAcwLbsvmjhg=; b=q6L/yBMTJl3zeIDzZ9zORBD3IcZX7nDgCpaoboYuOPCLfjo8fnT0Dvh5ykftVawDBTRJrt0xlJkNKvX/Zc28Is6v55BbSbP5bkqddi+G8HAfxUWvSdbXMd6Bpz2Ygfj3W25+kZk6D60XDcoA0o+Fsnenjk4UzSQFBCdZBVGM5fc= Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) by VI1PR05MB5487.eurprd05.prod.outlook.com (2603:10a6:803:91::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2937.22; Tue, 28 Apr 2020 19:57:02 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::9d19:a564:b84e:7c19]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::9d19:a564:b84e:7c19%7]) with mapi id 15.20.2937.023; Tue, 28 Apr 2020 19:57:01 +0000 From: Saeed Mahameed To: Roi Dayan , Paul Blakey , Oz Shlomo , "xiangxia.m.yue@gmail.com" , "gerlitz.or@gmail.com" CC: "netdev@vger.kernel.org" Subject: Re: [PATCH net-next 1/3] net/mlx5e: Implicitly decap the tunnel packet when necessary Thread-Topic: [PATCH net-next 1/3] net/mlx5e: Implicitly decap the tunnel packet when necessary Thread-Index: AQHWHR1ZxdPMcbOgOEmtKedsWXRszaiO9B2A Date: Tue, 28 Apr 2020 19:57:01 +0000 Message-ID: References: <1588051455-42828-1-git-send-email-xiangxia.m.yue@gmail.com> In-Reply-To: <1588051455-42828-1-git-send-email-xiangxia.m.yue@gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.34.4 (3.34.4-1.fc31) authentication-results: mellanox.com; dkim=none (message not signed) header.d=none;mellanox.com; dmarc=none action=none header.from=mellanox.com; x-originating-ip: [73.15.39.150] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 10980bae-c5d3-4998-abbe-08d7ebae5161 x-ms-traffictypediagnostic: VI1PR05MB5487:|VI1PR05MB5487: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-forefront-prvs: 0387D64A71 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR05MB5102.eurprd05.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(366004)(8936002)(6512007)(66446008)(5660300002)(6506007)(2616005)(66476007)(76116006)(498600001)(30864003)(26005)(86362001)(2906002)(91956017)(8676002)(64756008)(66556008)(66946007)(36756003)(71200400001)(4326008)(110136005)(186003)(6486002)(309714004);DIR:OUT;SFP:1101; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: CnrcR9FZ305BUhIQL3EEOL/QEw8y7WlL1c98u4TQVKbAT7ZkIx2in+Dec9v8HpMlH0Uxgkq3GNB7yE0dfrF+tFGsdIKDPUg96bRYC2w0KOfc0IiUZd+0LFfIZdVhyDxO7R58odobjq9o9fd9COwuhq4HPPrq+LQ2UpN665t4Kq0tHVxZ+gxnf93q8YDIK/6zmp+3+JWnDQmljqlZ1NSnkoNDFwDC6O+dOopgdnDK27AzfhiKR1Rh1ifWHneRMAjf8CPcKERucM00u0r4jUfsBXEKBKrr4qZ5T6VCsiw+f1ZIQ98lBqvkJ/6PE8ZT5OWUz+8pR6dosuBcIaH16Ngq7BOONKfOu2OlXUe056HARSp5TNCJJlGEjZvvWLtE14JoZPLo68cVHAZHo9UfguHrZGzaUaOUCAssss5twqTce0ksvzg0eTz9ZdvaLvL8pYvY/60ejghz0xVyW0fle7JK3v2VS5ZlWI1wVkxgaWHio70= x-ms-exchange-antispam-messagedata: w8PBF5HcbT4tXL97d97GgIWxmi2XaMxIt5fEIGtHHb+vUK1XgJ5UmZ+yvexpdzg6CctivggJyp+P2uyayIo2c8d77EfpKPhdMLvuBBR0KCvNzHX8dGmhjWprgEaZXPYavw6DW9dDkFTetkE+DJaNi+bqe5sOMgJev7m4Ryzq1qCdviryUM7N6lRJgd406IuhOblmJl19JB5oR4UOiL9l+I/Or/67pJXhZG/HBQw2bVCokhImwA4tuENFda5dGYHZrkGDMB95BUZz78F3ItlTcee0D8LbHalOkh8twNA12I8Xecy9LZUuDwrMRhxoYWhtGlhJSfFwxTPOdnH/PJKCL8T0ooXz488udMTGOGmCTru5gcLvxvfrua1T+d1QscPWz+A8A/Mw0NkeYda0l8dvWWBh4b4EQfHmqkN4axaWw3HRaPP3uLCh+eRbUukaIu5lGV+KgWOKREJswQmvIQKwA4Q0GKA1ri3EFQYT6hDhFZn8fTPbuL3CBKOQV3E0qSBECWZMOYB3n1GrHbjxzbfXNZUmhSvomhn15CHvv/JlLu+N+yWuu0Tqv5hfK2g+unEgsGc97MsB5eRqxgTT4nARiO+nK7wrttAJBb193iBnyesbGURPzmn3f9EPc/Q/R1SZ2Yi3qJ6jBxfOZTwH8HT3XDhoO9XCgJ0rhB87Ss52FTKSmpnWs684Iw9zaISChyszhTxoBlkyMKMVPwI4MDSgU1YnHAEMbXlFU+HTlJ3MzLT0FVpyGmbDH418aAPGjdDkuwgbckkiTAAh8bLvJNPixPcKkaYnOju+b1OR82/pudo= Content-Type: text/plain; charset="utf-8" Content-ID: <8387D044869F9840A9DC46A350402750@eurprd05.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 10980bae-c5d3-4998-abbe-08d7ebae5161 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Apr 2020 19:57:01.7177 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: sVbLRjF8GJcnn/EH2wH/KMOn66Ox3/N45c4IOWEL+P2V+grU7gsx5Yd2b0s2pWGcJctyObkda3v/XNNkpq/EeA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB5487 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org T24gVHVlLCAyMDIwLTA0LTI4IGF0IDEzOjI0ICswODAwLCB4aWFuZ3hpYS5tLnl1ZUBnbWFpbC5j b20gd3JvdGU6DQo+IEZyb206IFRvbmdoYW8gWmhhbmcgPHhpYW5neGlhLm0ueXVlQGdtYWlsLmNv bT4NCj4gDQo+IFRoZSBjb21taXQgMGE3ZmNiNzhjYzIxICgibmV0L21seDVlOiBTdXBwb3J0IGlu bmVyIGhlYWRlciByZXdyaXRlDQo+IHdpdGgNCj4gZ290byBhY3Rpb24iKSwgd2lsbCBkZWNhcGl0 YXRlIHRoZSB0dW5uZWwgcGFja2V0cyBpZiB0aGVyZSBpcyBhIGdvdG8NCj4gYWN0aW9uIGluIGNo YWluIDAuIEJ1dCBpbiBzb21lIGNhc2UsIHdlIGRvbid0IHdhbnQgZG8gdGhhdCwgZm9yDQo+IGV4 YW1wbGU6DQo+IA0KDQpSb2ksIFBhdWwsIE96LCBwbGVhc2UgcmV2aWV3Li4gDQoNCg0KPiAkIHRj IGZpbHRlciBhZGQgZGV2ICRWWExBTiBwcm90b2NvbCBpcCBwYXJlbnQgZmZmZjogcHJpbyAxIGNo YWluIDAJDQo+IFwNCj4gCWZsb3dlciBlbmNfZHN0X2lwIDIuMi4yLjEwMCBlbmNfZHN0X3BvcnQg NDc4OQkJCQ0KPiBcDQo+IAlhY3Rpb24gZ290byBjaGFpbiAyDQo+ICQgdGMgZmlsdGVyIGFkZCBk ZXYgJFZYTEFOIHByb3RvY29sIGlwIHBhcmVudCBmZmZmOiBwcmlvIDEgY2hhaW4gMgkNCj4gXA0K PiAJZmxvd2VyIGRzdF9tYWMgMDA6MTE6MjI6MzM6NDQ6NTUgZW5jX3NyY19pcCAyLjIuMi4yMDAJ CQ0KPiBcDQo+IAllbmNfZHN0X2lwIDIuMi4yLjEwMCBlbmNfZHN0X3BvcnQgNDc4OSBlbmNfa2V5 X2lkIDEwMAkJDQo+IFwNCj4gCWFjdGlvbiB0dW5uZWxfa2V5IHVuc2V0IGFjdGlvbiBtaXJyZWQg ZWdyZXNzIHJlZGlyZWN0IGRldg0KPiBlbnAxMzBzMGYwXzANCj4gJCB0YyBmaWx0ZXIgYWRkIGRl diAkVlhMQU4gcHJvdG9jb2wgaXAgcGFyZW50IGZmZmY6IHByaW8gMSBjaGFpbiAyCQ0KPiBcDQo+ IAlmbG93ZXIgZHN0X21hYyAwMDoxMToyMjozMzo0NDo2NiBlbmNfc3JjX2lwIDIuMi4yLjIwMAkJ DQo+IFwNCj4gCWVuY19kc3RfaXAgMi4yLjIuMTAwIGVuY19kc3RfcG9ydCA0Nzg5IGVuY19rZXlf aWQgMjAwCQkNCj4gXA0KPiAJYWN0aW9uIHR1bm5lbF9rZXkgdW5zZXQgYWN0aW9uIG1pcnJlZCBl Z3Jlc3MgcmVkaXJlY3QgZGV2DQo+IGVucDEzMHMwZjBfMQ0KPiANCj4gSW4gdGhpcyBwYXRjaCwg aWYgdGhlcmUgaXMgYSBwZWRpdCBhY3Rpb24gaW4gY2hhaW4sIGRvIHRoZQ0KPiBkZWNhcGl0YXRp b24gYWN0aW9uLg0KPiBpZiB0aGVyZSBhcmUgcGVkaXQgYW5kIGdvdG8gYWN0aW9ucywgZG8gdGhl IGRlY2FwaXRhdGlvbiBhbmQgaWQNCj4gbWFwcGluZyBhY3Rpb24uDQo+IA0KPiA4IHRlc3QgdW5p dHM6DQo+IFsxXToNCj4gJCB0YyBmaWx0ZXIgYWRkIGRldiAkVlhMQU4gcHJvdG9jb2wgaXAgcGFy ZW50IGZmZmY6IHByaW8gMSBjaGFpbiAwCQ0KPiBcDQo+IAlmbG93ZXIgZW5jX2RzdF9pcCAyLjIu Mi4xMDAgZW5jX2RzdF9wb3J0IDQ3ODkJCQkNCj4gXA0KPiAJYWN0aW9uIGdvdG8gY2hhaW4gMg0K PiAkIHRjIGZpbHRlciBhZGQgZGV2ICRWWExBTiBwcm90b2NvbCBpcCBwYXJlbnQgZmZmZjogcHJp byAxIGNoYWluIDIJDQo+IFwNCj4gCWZsb3dlciBlbmNfc3JjX2lwIDIuMi4yLjIwMCBlbmNfZHN0 X2lwIDIuMi4yLjEwMAkJXA0KPiAJZW5jX2RzdF9wb3J0IDQ3ODkgZW5jX2tleV9pZCAxMDAgZHN0 X21hYyAwMDoxMToyMjozMzo0NDo1NQkNCj4gXA0KPiAJYWN0aW9uIHR1bm5lbF9rZXkgdW5zZXQg XA0KPiAJYWN0aW9uIG1pcnJlZCBlZ3Jlc3MgcmVkaXJlY3QgZGV2IGVucDEzMHMwZjBfMA0KPiBb Ml06DQo+ICQgdGMgZmlsdGVyIGFkZCBkZXYgJFZYTEFOIHByb3RvY29sIGlwIHBhcmVudCBmZmZm OiBwcmlvIDEgY2hhaW4gMAkNCj4gXA0KPiAJZmxvd2VyIGVuY19kc3RfaXAgMi4yLjIuMTAwIGVu Y19kc3RfcG9ydCA0Nzg5IGVuY19rZXlfaWQgMTAwCQ0KPiBcDQo+IAlhY3Rpb24gZ290byBjaGFp biAyDQo+ICQgdGMgZmlsdGVyIGFkZCBkZXYgJFZYTEFOIHByb3RvY29sIGlwIHBhcmVudCBmZmZm OiBwcmlvIDEgY2hhaW4gMgkNCj4gXA0KPiAJZmxvd2VyIGVuY19zcmNfaXAgMi4yLjIuMjAwIGVu Y19kc3RfaXAgMi4yLjIuMTAwCQlcDQo+IAllbmNfZHN0X3BvcnQgNDc4OSBlbmNfa2V5X2lkIDEw MCBkc3RfbWFjIDAwOjExOjIyOjMzOjQ0OjU1CQ0KPiBcDQo+IAlhY3Rpb24gcGVkaXQgZXggbXVu Z2UgZXRoIHNyYyBzZXQgMDA6MTE6MjI6MzM6NDQ6ZjAJCQ0KPiBcDQo+IAlhY3Rpb24gbWlycmVk IGVncmVzcyByZWRpcmVjdCBkZXYgZW5wMTMwczBmMF8wDQo+IFszXToNCj4gJCB0YyBmaWx0ZXIg YWRkIGRldiAkVlhMQU4gcHJvdG9jb2wgaXAgcGFyZW50IGZmZmY6IHByaW8gMSBjaGFpbiAwCQ0K PiBcDQo+IAlmbG93ZXIgZW5jX2RzdF9pcCAyLjIuMi4xMDAgZW5jX2RzdF9wb3J0IDQ3ODkgZW5j X2tleV9pZCAxMDAJDQo+IFwNCj4gCWFjdGlvbiBnb3RvIGNoYWluIDINCj4gJCB0YyBmaWx0ZXIg YWRkIGRldiAkVlhMQU4gcHJvdG9jb2wgaXAgcGFyZW50IGZmZmY6IHByaW8gMSBjaGFpbiAyCQ0K PiBcDQo+IAlmbG93ZXIgZW5jX3NyY19pcCAyLjIuMi4yMDAgZW5jX2RzdF9pcCAyLjIuMi4xMDAJ CVwNCj4gCWVuY19kc3RfcG9ydCA0Nzg5IGVuY19rZXlfaWQgMTAwIGRzdF9tYWMgMDA6MTE6MjI6 MzM6NDQ6NTUJDQo+IFwNCj4gCWFjdGlvbiB0dW5uZWxfa2V5IHVuc2V0IFwNCj4gCWFjdGlvbiBw ZWRpdCBleCBtdW5nZSBldGggc3JjIHNldCAwMDoxMToyMjozMzo0NDpmMAkJDQo+IFwNCj4gCWFj dGlvbiBtaXJyZWQgZWdyZXNzIHJlZGlyZWN0IGRldiBlbnAxMzBzMGYwXzANCj4gWzRdOg0KPiAk IHRjIGZpbHRlciBhZGQgZGV2ICRWWExBTiBwcm90b2NvbCBpcCBwYXJlbnQgZmZmZjogcHJpbyAx IGNoYWluIDAJDQo+IFwNCj4gCWZsb3dlciBlbmNfZHN0X2lwIDIuMi4yLjEwMCBlbmNfZHN0X3Bv cnQgNDc4OQkJCQ0KPiBcDQo+IAllbmNfa2V5X2lkIDEwMCBkc3RfbWFjIDAwOjExOjIyOjMzOjQ0 OjU1CQkJXA0KPiAJYWN0aW9uIHBlZGl0IGV4IG11bmdlIGV0aCBzcmMgc2V0IDAwOjExOjIyOjMz OjQ0OmZmIHBpcGUJXA0KPiAJYWN0aW9uIG1pcnJlZCBlZ3Jlc3MgcmVkaXJlY3QgZGV2IGVucDEz MHMwZjBfMA0KPiBbNV06DQo+ICQgdGMgZmlsdGVyIGFkZCBkZXYgJFZYTEFOIHByb3RvY29sIGlw IHBhcmVudCBmZmZmOiBwcmlvIDEgY2hhaW4gMAkNCj4gXA0KPiAJZmxvd2VyIGVuY19zcmNfaXAg Mi4yLjIuMjAwIGVuY19kc3RfaXAgMi4yLjIuMTAwCQlcDQo+IAllbmNfZHN0X3BvcnQgNDc4OSBl bmNfa2V5X2lkIDEwMCBkc3RfbWFjIDAwOjExOjIyOjMzOjQ0OjU1CQ0KPiBcDQo+IAlhY3Rpb24g cGVkaXQgZXggbXVuZ2UgZXRoIHNyYyBzZXQgMDA6MTE6MjI6MzM6NDQ6ZmYJCQ0KPiBcDQo+IAlh Y3Rpb24gZ290byBjaGFpbiAyDQo+ICQgdGMgZmlsdGVyIGFkZCBkZXYgJFZYTEFOIHByb3RvY29s IGlwIHBhcmVudCBmZmZmOiBwcmlvIDEgY2hhaW4gMgkNCj4gXA0KPiAJZmxvd2VyIGVuY19zcmNf aXAgMi4yLjIuMjAwIGVuY19kc3RfaXAgMi4yLjIuMTAwCQlcDQo+IAllbmNfZHN0X3BvcnQgNDc4 OSBlbmNfa2V5X2lkIDEwMCBzcmNfbWFjIDAwOjExOjIyOjMzOjQ0OmZmCQ0KPiBcDQo+IAlhY3Rp b24gdHVubmVsX2tleSB1bnNldAlcDQo+IAlhY3Rpb24gbWlycmVkIGVncmVzcyByZWRpcmVjdCBk ZXYgZW5wMTMwczBmMF8wDQo+IFs2XToNCj4gJCB0YyBmaWx0ZXIgYWRkIGRldiAkVlhMQU4gcHJv dG9jb2wgaXAgcGFyZW50IGZmZmY6IHByaW8gMSBjaGFpbiAwCQ0KPiBcDQo+IAlmbG93ZXIgZW5j X3NyY19pcCAyLjIuMi4yMDAgZW5jX2RzdF9pcCAyLjIuMi4xMDAJCVwNCj4gCWVuY19kc3RfcG9y dCA0Nzg5IGVuY19rZXlfaWQgMTAwIGRzdF9tYWMgMDA6MTE6MjI6MzM6NDQ6NTUJDQo+IFwNCj4g CWFjdGlvbiBwZWRpdCBleCBtdW5nZSBldGggc3JjIHNldCAwMDoxMToyMjozMzo0NDpmZgkJDQo+ IFwNCj4gCWFjdGlvbiBnb3RvIGNoYWluIDINCj4gJCB0YyBmaWx0ZXIgYWRkIGRldiAkVlhMQU4g cHJvdG9jb2wgaXAgcGFyZW50IGZmZmY6IHByaW8gMSBjaGFpbiAyCQ0KPiBcDQo+IAlmbG93ZXIg ZW5jX3NyY19pcCAyLjIuMi4yMDAgZW5jX2RzdF9pcCAyLjIuMi4xMDAJCVwNCj4gCWVuY19kc3Rf cG9ydCA0Nzg5IGVuY19rZXlfaWQgMTAwIHNyY19tYWMgMDA6MTE6MjI6MzM6NDQ6ZmYJDQo+IFwN Cj4gCWFjdGlvbiB0dW5uZWxfa2V5IHVuc2V0IFwNCj4gCWFjdGlvbiBwZWRpdCBleCBtdW5nZSBl dGggc3JjIHNldCAwMDoxMToyMjozMzo0NDpmMAkJDQo+IFwNCj4gCWFjdGlvbiBtaXJyZWQgZWdy ZXNzIHJlZGlyZWN0IGRldiBlbnAxMzBzMGYwXzANCj4gWzddOg0KPiAkIHRjIGZpbHRlciBhZGQg ZGV2ICRWWExBTiBwcm90b2NvbCBpcCBwYXJlbnQgZmZmZjogcHJpbyAxIGNoYWluIDAJDQo+IFwN Cj4gCWZsb3dlciAgZW5jX3NyY19pcCAyLjIuMi4yMDAgZW5jX2RzdF9pcCAyLjIuMi4xMDAJCVwN Cj4gCWVuY19kc3RfcG9ydCA0Nzg5IGVuY19rZXlfaWQgMTAwIGRzdF9tYWMgMDA6MTE6MjI6MzM6 NDQ6NTUJDQo+IFwNCj4gCWFjdGlvbiBwZWRpdCBleCBtdW5nZSBldGggc3JjIHNldCAwMDoxMToy MjozMzo0NDpmZgkJDQo+IFwNCj4gCWFjdGlvbiBnb3RvIGNoYWluIDINCj4gJCB0YyBmaWx0ZXIg YWRkIGRldiAkVlhMQU4gcHJvdG9jb2wgaXAgcGFyZW50IGZmZmY6IHByaW8gMSBjaGFpbiAyCQ0K PiBcDQo+IAlmbG93ZXIgZW5jX3NyY19pcCAyLjIuMi4yMDAgZW5jX2RzdF9pcCAyLjIuMi4xMDAJ CVwNCj4gCWVuY19kc3RfcG9ydCA0Nzg5IGVuY19rZXlfaWQgMTAwIHNyY19tYWMgMDA6MTE6MjI6 MzM6NDQ6ZmYJDQo+IFwNCj4gCWFjdGlvbiBwZWRpdCBleCBtdW5nZSBldGggc3JjIHNldCAwMDox MToyMjozMzo0NDpmMAkJDQo+IFwNCj4gCWFjdGlvbiBnb3RvIGNoYWluIDMNCj4gJCB0YyBmaWx0 ZXIgYWRkIGRldiB2eGxhbjAgcHJvdG9jb2wgaXAgcGFyZW50IGZmZmY6IHByaW8gMSBjaGFpbiAz CQ0KPiBcDQo+IAlmbG93ZXIgZW5jX3NyY19pcCAyLjIuMi4yMDAgZW5jX2RzdF9pcCAyLjIuMi4x MDAJCVwNCj4gCWVuY19kc3RfcG9ydCA0Nzg5IGVuY19rZXlfaWQgMTAwIHNyY19tYWMgMDA6MTE6 MjI6MzM6NDQ6ZjAJDQo+IFwNCj4gCWFjdGlvbiB0dW5uZWxfa2V5IHVuc2V0IFwNCj4gCWFjdGlv biBwZWRpdCBleCBtdW5nZSBldGggc3JjIHNldCAwMDoxMToyMjozMzo0NDpmMQkJDQo+IFwNCj4g CWFjdGlvbiBtaXJyZWQgZWdyZXNzIHJlZGlyZWN0IGRldiBlbnAxMzBzMGYwXzANCj4gWzhdOg0K PiAkIHRjIGZpbHRlciBhZGQgZGV2ICRWWExBTiBwcm90b2NvbCBpcCBwYXJlbnQgZmZmZjogcHJp byAxIGNoYWluIDAJDQo+IFwNCj4gCWZsb3dlciBlbmNfZHN0X2lwIDIuMi4yLjEwMCBlbmNfZHN0 X3BvcnQgNDc4OQkJCQ0KPiBcDQo+IAlhY3Rpb24gZ290byBjaGFpbiAyDQo+ICQgdGMgZmlsdGVy IGFkZCBkZXYgJFZYTEFOIHByb3RvY29sIGlwIHBhcmVudCBmZmZmOiBwcmlvIDEgY2hhaW4gMgkN Cj4gXA0KPiAJZmxvd2VyIGVuY19zcmNfaXAgMi4yLjIuMjAwIGVuY19kc3RfaXAgMi4yLjIuMTAw CQlcDQo+IAllbmNfZHN0X3BvcnQgNDc4OSBlbmNfa2V5X2lkIDEwMCBkc3RfbWFjIDAwOjExOjIy OjMzOjQ0OjU1CQ0KPiBcDQo+IAlhY3Rpb24gcGVkaXQgZXggbXVuZ2UgZXRoIHNyYyBzZXQgMDA6 MTE6MjI6MzM6NDQ6ZjAJCQ0KPiBcDQo+IAlhY3Rpb24gZ290byBjaGFpbiAzDQo+ICQgdGMgZmls dGVyIGFkZCBkZXYgJFZYTEFOIHByb3RvY29sIGlwIHBhcmVudCBmZmZmOiBwcmlvIDEgY2hhaW4g MwkNCj4gXA0KPiAJZmxvd2VyIGVuY19zcmNfaXAgMi4yLjIuMjAwIGVuY19kc3RfaXAgMi4yLjIu MTAwCQlcDQo+IAllbmNfZHN0X3BvcnQgNDc4OSBlbmNfa2V5X2lkIDEwMCBkc3RfbWFjIDAwOjEx OjIyOjMzOjQ0OjU1CQ0KPiBcDQo+IAlhY3Rpb24gcGVkaXQgZXggbXVuZ2UgZXRoIHNyYyBzZXQg MDA6MTE6MjI6MzM6NDQ6ZjEJCQ0KPiBcDQo+IAlhY3Rpb24gZ290byBjaGFpbiA0DQo+ICQgdGMg ZmlsdGVyIGFkZCBkZXYgJFZYTEFOIHByb3RvY29sIGlwIHBhcmVudCBmZmZmOiBwcmlvIDEgY2hh aW4gNAkNCj4gXA0KPiAJZmxvd2VyIGVuY19zcmNfaXAgMi4yLjIuMjAwIGVuY19kc3RfaXAgMi4y LjIuMTAwCQlcDQo+IAllbmNfZHN0X3BvcnQgNDc4OSBlbmNfa2V5X2lkIDEwMCBkc3RfbWFjIDAw OjExOjIyOjMzOjQ0OjU1CQ0KPiBcDQo+IAlhY3Rpb24gcGVkaXQgZXggbXVuZ2UgZXRoIHNyYyBz ZXQgMDA6MTE6MjI6MzM6NDQ6ZjIJCQ0KPiBcDQo+IAlhY3Rpb24gbWlycmVkIGVncmVzcyByZWRp cmVjdCBkZXYgZW5wMTMwczBmMF8wDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBUb25naGFvIFpoYW5n IDx4aWFuZ3hpYS5tLnl1ZUBnbWFpbC5jb20+DQo+IC0tLQ0KPiAgLi4uL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW4vbWFwcGluZy5jICAgfCAyNCArKysrKysNCj4gIC4uLi9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL21hcHBpbmcuaCAgIHwgIDEgKw0KPiAgZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMgICAgfCA5Nw0KPiAr KysrKysrKysrKysrKystLS0tLS0tDQo+ICAzIGZpbGVzIGNoYW5nZWQsIDkyIGluc2VydGlvbnMo KyksIDMwIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbi9tYXBwaW5nLmMNCj4gYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vbWFwcGluZy5jDQo+IGluZGV4IGVhMzIxZTUyODc0 OS4uOTAzMDZkZGU2YjYwIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW4vbWFwcGluZy5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbi9tYXBwaW5nLmMNCj4gQEAgLTc0LDYgKzc0LDMwIEBAIGlu dCBtYXBwaW5nX2FkZChzdHJ1Y3QgbWFwcGluZ19jdHggKmN0eCwgdm9pZA0KPiAqZGF0YSwgdTMy ICppZCkNCj4gIAlyZXR1cm4gZXJyOw0KPiAgfQ0KPiAgDQo+ICtpbnQgbWFwcGluZ19maW5kX2J5 X2RhdGEoc3RydWN0IG1hcHBpbmdfY3R4ICpjdHgsIHZvaWQgKmRhdGEsIHUzMg0KPiAqaWQpDQo+ ICt7DQo+ICsJc3RydWN0IG1hcHBpbmdfaXRlbSAqbWk7DQo+ICsJdTMyIGhhc2hfa2V5Ow0KPiAr DQo+ICsJbXV0ZXhfbG9jaygmY3R4LT5sb2NrKTsNCj4gKw0KPiArCWhhc2hfa2V5ID0gamhhc2go ZGF0YSwgY3R4LT5kYXRhX3NpemUsIDApOw0KPiArCWhhc2hfZm9yX2VhY2hfcG9zc2libGUoY3R4 LT5odCwgbWksIG5vZGUsIGhhc2hfa2V5KSB7DQo+ICsJCWlmICghbWVtY21wKGRhdGEsIG1pLT5k YXRhLCBjdHgtPmRhdGFfc2l6ZSkpDQo+ICsJCQlnb3RvIGZvdW5kOw0KPiArCX0NCj4gKw0KPiAr CW11dGV4X3VubG9jaygmY3R4LT5sb2NrKTsNCj4gKwlyZXR1cm4gLUVOT0VOVDsNCj4gKw0KPiAr Zm91bmQ6DQo+ICsJaWYgKGlkKQ0KPiArCQkqaWQgPSBtaS0+aWQ7DQo+ICsNCj4gKwltdXRleF91 bmxvY2soJmN0eC0+bG9jayk7DQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gIHN0YXRpYyB2 b2lkIG1hcHBpbmdfcmVtb3ZlX2FuZF9mcmVlKHN0cnVjdCBtYXBwaW5nX2N0eCAqY3R4LA0KPiAg CQkJCSAgICBzdHJ1Y3QgbWFwcGluZ19pdGVtICptaSkNCj4gIHsNCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9tYXBwaW5nLmgNCj4gYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vbWFwcGluZy5oDQo+IGlu ZGV4IDI4NTUyNWNjNTQ3MC4uYWY1MDFjOTc5NmI3IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vbWFwcGluZy5oDQo+ICsrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9tYXBwaW5nLmgNCj4gQEAgLTks NiArOSw3IEBADQo+ICBpbnQgbWFwcGluZ19hZGQoc3RydWN0IG1hcHBpbmdfY3R4ICpjdHgsIHZv aWQgKmRhdGEsIHUzMiAqaWQpOw0KPiAgaW50IG1hcHBpbmdfcmVtb3ZlKHN0cnVjdCBtYXBwaW5n X2N0eCAqY3R4LCB1MzIgaWQpOw0KPiAgaW50IG1hcHBpbmdfZmluZChzdHJ1Y3QgbWFwcGluZ19j dHggKmN0eCwgdTMyIGlkLCB2b2lkICpkYXRhKTsNCj4gK2ludCBtYXBwaW5nX2ZpbmRfYnlfZGF0 YShzdHJ1Y3QgbWFwcGluZ19jdHggKmN0eCwgdm9pZCAqZGF0YSwgdTMyDQo+ICppZCk7DQo+ICAN Cj4gIC8qIG1hcHBpbmcgdXNlcyBhbiB4YXJyYXkgdG8gbWFwIGRhdGEgdG8gaWRzIGluIGFkZCgp LCBhbmQgZm9yDQo+IGZpbmQoKS4NCj4gICAqIEZvciBsb2NraW5nLCBpdCB1c2VzIGEgaW50ZXJu YWwgeGFycmF5IHNwaW4gbG9jayBmb3INCj4gYWRkKCkvcmVtb3ZlKCksDQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYw0KPiBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jDQo+IGluZGV4IGE1 NzRjNTg4MjY5YS4uNjRmNWMzZjNkYmIzIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYw0KPiArKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYw0KPiBAQCAtMTc4Niw3ICsxNzg2LDggQEAg c3RhdGljIHZvaWQgbWx4NWVfdGNfZGVsX2Zsb3coc3RydWN0IG1seDVlX3ByaXYNCj4gKnByaXYs DQo+ICAJfQ0KPiAgfQ0KPiAgDQo+IC1zdGF0aWMgaW50IGZsb3dfaGFzX3RjX2Z3ZF9hY3Rpb24o c3RydWN0IGZsb3dfY2xzX29mZmxvYWQgKmYpDQo+ICtzdGF0aWMgaW50IGZsb3dfaGFzX3RjX2Fj dGlvbihzdHJ1Y3QgZmxvd19jbHNfb2ZmbG9hZCAqZiwNCj4gKwkJCSAgICAgIGVudW0gZmxvd19h Y3Rpb25faWQgYWN0aW9uKQ0KPiAgew0KPiAgCXN0cnVjdCBmbG93X3J1bGUgKnJ1bGUgPSBmbG93 X2Nsc19vZmZsb2FkX2Zsb3dfcnVsZShmKTsNCj4gIAlzdHJ1Y3QgZmxvd19hY3Rpb24gKmZsb3df YWN0aW9uID0gJnJ1bGUtPmFjdGlvbjsNCj4gQEAgLTE3OTQsMTIgKzE3OTUsOCBAQCBzdGF0aWMg aW50IGZsb3dfaGFzX3RjX2Z3ZF9hY3Rpb24oc3RydWN0DQo+IGZsb3dfY2xzX29mZmxvYWQgKmYp DQo+ICAJaW50IGk7DQo+ICANCj4gIAlmbG93X2FjdGlvbl9mb3JfZWFjaChpLCBhY3QsIGZsb3df YWN0aW9uKSB7DQo+IC0JCXN3aXRjaCAoYWN0LT5pZCkgew0KPiAtCQljYXNlIEZMT1dfQUNUSU9O X0dPVE86DQo+ICsJCWlmIChhY3QtPmlkID09IGFjdGlvbikNCj4gIAkJCXJldHVybiB0cnVlOw0K PiAtCQlkZWZhdWx0Og0KPiAtCQkJY29udGludWU7DQo+IC0JCX0NCj4gIAl9DQo+ICANCj4gIAly ZXR1cm4gZmFsc2U7DQo+IEBAIC0xODUzLDEwICsxODUwLDM3IEBAIHN0YXRpYyBpbnQgZmxvd19o YXNfdGNfZndkX2FjdGlvbihzdHJ1Y3QNCj4gZmxvd19jbHNfb2ZmbG9hZCAqZikNCj4gIAkgICAg ICAgc2l6ZW9mKCpfX2RzdCkpO1wNCj4gIH0pDQo+ICANCj4gK3N0YXRpYyB2b2lkIG1seDVlX21h a2VfdHVubmVsX21hdGNoX2tleShzdHJ1Y3QgZmxvd19jbHNfb2ZmbG9hZCAqZiwNCj4gKwkJCQkJ c3RydWN0IG5ldF9kZXZpY2UgKmZpbHRlcl9kZXYsDQo+ICsJCQkJCXN0cnVjdCB0dW5uZWxfbWF0 Y2hfa2V5DQo+ICp0dW5uZWxfa2V5KQ0KPiArew0KPiArCXN0cnVjdCBmbG93X3J1bGUgKnJ1bGUg PSBmbG93X2Nsc19vZmZsb2FkX2Zsb3dfcnVsZShmKTsNCj4gKw0KPiArCW1lbXNldCh0dW5uZWxf a2V5LCAwLCBzaXplb2YoKnR1bm5lbF9rZXkpKTsNCj4gKwlDT1BZX0RJU1NFQ1RPUihydWxlLCBG TE9XX0RJU1NFQ1RPUl9LRVlfRU5DX0NPTlRST0wsDQo+ICsJCSAgICAgICAmdHVubmVsX2tleS0+ ZW5jX2NvbnRyb2wpOw0KPiArCWlmICh0dW5uZWxfa2V5LT5lbmNfY29udHJvbC5hZGRyX3R5cGUg PT0NCj4gRkxPV19ESVNTRUNUT1JfS0VZX0lQVjRfQUREUlMpDQo+ICsJCUNPUFlfRElTU0VDVE9S KHJ1bGUsIEZMT1dfRElTU0VDVE9SX0tFWV9FTkNfSVBWNF9BRERSUywNCj4gKwkJCSAgICAgICAm dHVubmVsX2tleS0+ZW5jX2lwdjQpOw0KPiArCWVsc2UNCj4gKwkJQ09QWV9ESVNTRUNUT1IocnVs ZSwgRkxPV19ESVNTRUNUT1JfS0VZX0VOQ19JUFY2X0FERFJTLA0KPiArCQkJICAgICAgICZ0dW5u ZWxfa2V5LT5lbmNfaXB2Nik7DQo+ICsNCj4gKwlDT1BZX0RJU1NFQ1RPUihydWxlLCBGTE9XX0RJ U1NFQ1RPUl9LRVlfRU5DX0lQLCAmdHVubmVsX2tleS0NCj4gPmVuY19pcCk7DQo+ICsJQ09QWV9E SVNTRUNUT1IocnVsZSwgRkxPV19ESVNTRUNUT1JfS0VZX0VOQ19QT1JUUywNCj4gKwkJICAgICAg ICZ0dW5uZWxfa2V5LT5lbmNfdHApOw0KPiArCUNPUFlfRElTU0VDVE9SKHJ1bGUsIEZMT1dfRElT U0VDVE9SX0tFWV9FTkNfS0VZSUQsDQo+ICsJCSAgICAgICAmdHVubmVsX2tleS0+ZW5jX2tleV9p ZCk7DQo+ICsNCj4gKwl0dW5uZWxfa2V5LT5maWx0ZXJfaWZpbmRleCA9IGZpbHRlcl9kZXYtPmlm aW5kZXg7DQo+ICt9DQo+ICsNCj4gIHN0YXRpYyBpbnQgbWx4NWVfZ2V0X2Zsb3dfdHVubmVsX2lk KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LA0KPiAgCQkJCSAgICBzdHJ1Y3QgbWx4NWVfdGNfZmxv dyAqZmxvdywNCj4gIAkJCQkgICAgc3RydWN0IGZsb3dfY2xzX29mZmxvYWQgKmYsDQo+IC0JCQkJ ICAgIHN0cnVjdCBuZXRfZGV2aWNlICpmaWx0ZXJfZGV2KQ0KPiArCQkJCSAgICBzdHJ1Y3QgbmV0 X2RldmljZSAqZmlsdGVyX2RldiwNCj4gKwkJCQkgICAgYm9vbCBzZXRzX21hcHBpbmcsDQo+ICsJ CQkJICAgIGJvb2wgbmVlZHNfbWFwcGluZykNCj4gIHsNCj4gIAlzdHJ1Y3QgZmxvd19ydWxlICpy dWxlID0gZmxvd19jbHNfb2ZmbG9hZF9mbG93X3J1bGUoZik7DQo+ICAJc3RydWN0IG5ldGxpbmtf ZXh0X2FjayAqZXh0YWNrID0gZi0+Y29tbW9uLmV4dGFjazsNCj4gQEAgLTE4NzYsMjIgKzE5MDAs NyBAQCBzdGF0aWMgaW50IG1seDVlX2dldF9mbG93X3R1bm5lbF9pZChzdHJ1Y3QNCj4gbWx4NWVf cHJpdiAqcHJpdiwNCj4gIAl1cGxpbmtfcnByaXYgPSBtbHg1X2Vzd2l0Y2hfZ2V0X3VwbGlua19w cml2KGVzdywgUkVQX0VUSCk7DQo+ICAJdXBsaW5rX3ByaXYgPSAmdXBsaW5rX3Jwcml2LT51cGxp bmtfcHJpdjsNCj4gIA0KPiAtCW1lbXNldCgmdHVubmVsX2tleSwgMCwgc2l6ZW9mKHR1bm5lbF9r ZXkpKTsNCj4gLQlDT1BZX0RJU1NFQ1RPUihydWxlLCBGTE9XX0RJU1NFQ1RPUl9LRVlfRU5DX0NP TlRST0wsDQo+IC0JCSAgICAgICAmdHVubmVsX2tleS5lbmNfY29udHJvbCk7DQo+IC0JaWYgKHR1 bm5lbF9rZXkuZW5jX2NvbnRyb2wuYWRkcl90eXBlID09DQo+IEZMT1dfRElTU0VDVE9SX0tFWV9J UFY0X0FERFJTKQ0KPiAtCQlDT1BZX0RJU1NFQ1RPUihydWxlLCBGTE9XX0RJU1NFQ1RPUl9LRVlf RU5DX0lQVjRfQUREUlMsDQo+IC0JCQkgICAgICAgJnR1bm5lbF9rZXkuZW5jX2lwdjQpOw0KPiAt CWVsc2UNCj4gLQkJQ09QWV9ESVNTRUNUT1IocnVsZSwgRkxPV19ESVNTRUNUT1JfS0VZX0VOQ19J UFY2X0FERFJTLA0KPiAtCQkJICAgICAgICZ0dW5uZWxfa2V5LmVuY19pcHY2KTsNCj4gLQlDT1BZ X0RJU1NFQ1RPUihydWxlLCBGTE9XX0RJU1NFQ1RPUl9LRVlfRU5DX0lQLA0KPiAmdHVubmVsX2tl eS5lbmNfaXApOw0KPiAtCUNPUFlfRElTU0VDVE9SKHJ1bGUsIEZMT1dfRElTU0VDVE9SX0tFWV9F TkNfUE9SVFMsDQo+IC0JCSAgICAgICAmdHVubmVsX2tleS5lbmNfdHApOw0KPiAtCUNPUFlfRElT U0VDVE9SKHJ1bGUsIEZMT1dfRElTU0VDVE9SX0tFWV9FTkNfS0VZSUQsDQo+IC0JCSAgICAgICAm dHVubmVsX2tleS5lbmNfa2V5X2lkKTsNCj4gLQl0dW5uZWxfa2V5LmZpbHRlcl9pZmluZGV4ID0g ZmlsdGVyX2Rldi0+aWZpbmRleDsNCj4gLQ0KPiArCW1seDVlX21ha2VfdHVubmVsX21hdGNoX2tl eShmLCBmaWx0ZXJfZGV2LCAmdHVubmVsX2tleSk7DQo+ICAJZXJyID0gbWFwcGluZ19hZGQodXBs aW5rX3ByaXYtPnR1bm5lbF9tYXBwaW5nLCAmdHVubmVsX2tleSwNCj4gJnR1bl9pZCk7DQo+ICAJ aWYgKGVycikNCj4gIAkJcmV0dXJuIGVycjsNCj4gQEAgLTE5MTUsMTAgKzE5MjQsMTAgQEAgc3Rh dGljIGludCBtbHg1ZV9nZXRfZmxvd190dW5uZWxfaWQoc3RydWN0DQo+IG1seDVlX3ByaXYgKnBy aXYsDQo+ICAJbWFzayA9IGVuY19vcHRzX2lkID8gVFVOTkVMX0lEX01BU0sgOg0KPiAgCQkJICAg ICAoVFVOTkVMX0lEX01BU0sgJiB+RU5DX09QVFNfQklUU19NQVNLKTsNCj4gIA0KPiAtCWlmIChh dHRyLT5jaGFpbikgew0KPiArCWlmIChuZWVkc19tYXBwaW5nKSB7DQo+ICAJCW1seDVlX3RjX21h dGNoX3RvX3JlZ19tYXRjaCgmYXR0ci0+cGFyc2VfYXR0ci0+c3BlYywNCj4gIAkJCQkJICAgIFRV Tk5FTF9UT19SRUcsIHZhbHVlLA0KPiBtYXNrKTsNCj4gLQl9IGVsc2Ugew0KPiArCX0gZWxzZSBp ZiAoc2V0c19tYXBwaW5nKSB7DQo+ICAJCW1vZF9oZHJfYWN0cyA9ICZhdHRyLT5wYXJzZV9hdHRy LT5tb2RfaGRyX2FjdHM7DQo+ICAJCWVyciA9IG1seDVlX3RjX21hdGNoX3RvX3JlZ19zZXQocHJp di0+bWRldiwNCj4gIAkJCQkJCW1vZF9oZHJfYWN0cywNCj4gQEAgLTE5NDEsNiArMTk1MCwyNSBA QCBzdGF0aWMgaW50IG1seDVlX2dldF9mbG93X3R1bm5lbF9pZChzdHJ1Y3QNCj4gbWx4NWVfcHJp diAqcHJpdiwNCj4gIAlyZXR1cm4gZXJyOw0KPiAgfQ0KPiAgDQo+ICtzdGF0aWMgaW50IG1seDVl X2xvb2t1cF9mbG93X3R1bm5lbF9pZChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwNCj4gKwkJCQkg ICAgICAgc3RydWN0IG1seDVlX3RjX2Zsb3cgKmZsb3csDQo+ICsJCQkJICAgICAgIHN0cnVjdCBm bG93X2Nsc19vZmZsb2FkICpmLA0KPiArCQkJCSAgICAgICBzdHJ1Y3QgbmV0X2RldmljZSAqZmls dGVyX2RldiwNCj4gKwkJCQkgICAgICAgdTMyICp0dW5faWQpDQo+ICt7DQo+ICsJc3RydWN0IG1s eDVfcmVwX3VwbGlua19wcml2ICp1cGxpbmtfcHJpdjsNCj4gKwlzdHJ1Y3QgbWx4NWVfcmVwX3By aXYgKnVwbGlua19ycHJpdjsNCj4gKwlzdHJ1Y3QgdHVubmVsX21hdGNoX2tleSB0dW5uZWxfa2V5 Ow0KPiArCXN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdzsNCj4gKw0KPiArCWVzdyA9IHByaXYtPm1k ZXYtPnByaXYuZXN3aXRjaDsNCj4gKwl1cGxpbmtfcnByaXYgPSBtbHg1X2Vzd2l0Y2hfZ2V0X3Vw bGlua19wcml2KGVzdywgUkVQX0VUSCk7DQo+ICsJdXBsaW5rX3ByaXYgPSAmdXBsaW5rX3Jwcml2 LT51cGxpbmtfcHJpdjsNCj4gKw0KPiArCW1seDVlX21ha2VfdHVubmVsX21hdGNoX2tleShmLCBm aWx0ZXJfZGV2LCAmdHVubmVsX2tleSk7DQo+ICsJcmV0dXJuIG1hcHBpbmdfZmluZF9ieV9kYXRh KHVwbGlua19wcml2LT50dW5uZWxfbWFwcGluZywNCj4gJnR1bm5lbF9rZXksIHR1bl9pZCk7DQo+ ICt9DQo+ICsNCj4gIHN0YXRpYyB2b2lkIG1seDVlX3B1dF9mbG93X3R1bm5lbF9pZChzdHJ1Y3Qg bWx4NWVfdGNfZmxvdyAqZmxvdykNCj4gIHsNCj4gIAl1MzIgZW5jX29wdHNfaWQgPSBmbG93LT50 dW5uZWxfaWQgJiBFTkNfT1BUU19CSVRTX01BU0s7DQo+IEBAIC0xOTc2LDE0ICsyMDA0LDIyIEBA IHN0YXRpYyBpbnQgcGFyc2VfdHVubmVsX2F0dHIoc3RydWN0DQo+IG1seDVlX3ByaXYgKnByaXYs DQo+ICAJc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3ID0gcHJpdi0+bWRldi0+cHJpdi5lc3dpdGNo Ow0KPiAgCXN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjayA9IGYtPmNvbW1vbi5leHRhY2s7 DQo+ICAJYm9vbCBuZWVkc19tYXBwaW5nLCBzZXRzX21hcHBpbmc7DQo+ICsJYm9vbCBwZWRpdF9h Y3Rpb247DQo+ICAJaW50IGVycjsNCj4gIA0KPiAgCWlmICghbWx4NWVfaXNfZXN3aXRjaF9mbG93 KGZsb3cpKQ0KPiAgCQlyZXR1cm4gLUVPUE5PVFNVUFA7DQo+ICANCj4gLQluZWVkc19tYXBwaW5n ID0gISFmbG93LT5lc3dfYXR0ci0+Y2hhaW47DQo+IC0Jc2V0c19tYXBwaW5nID0gIWZsb3ctPmVz d19hdHRyLT5jaGFpbiAmJg0KPiBmbG93X2hhc190Y19md2RfYWN0aW9uKGYpOw0KPiAtCSptYXRj aF9pbm5lciA9ICFuZWVkc19tYXBwaW5nOw0KPiArCXBlZGl0X2FjdGlvbiA9IGZsb3dfaGFzX3Rj X2FjdGlvbihmLCBGTE9XX0FDVElPTl9NQU5HTEUpIHx8DQo+ICsJCSAgICAgICBmbG93X2hhc190 Y19hY3Rpb24oZiwgRkxPV19BQ1RJT05fQUREKTsNCj4gKw0KPiArCSptYXRjaF9pbm5lciA9IHBl ZGl0X2FjdGlvbjsNCj4gKwlzZXRzX21hcHBpbmcgPSBwZWRpdF9hY3Rpb24gJiYNCj4gKwkJICAg ICAgIGZsb3dfaGFzX3RjX2FjdGlvbihmLCBGTE9XX0FDVElPTl9HT1RPKTsNCj4gKw0KPiArCW5l ZWRzX21hcHBpbmcgPSAhIWZsb3ctPmVzd19hdHRyLT5jaGFpbiAmJg0KPiArCQkJIW1seDVlX2xv b2t1cF9mbG93X3R1bm5lbF9pZChwcml2LCBmbG93LCBmLA0KPiArCQkJCQkJICAgICBmaWx0ZXJf ZGV2LCBOVUxMKTsNCj4gIA0KPiAgCWlmICgobmVlZHNfbWFwcGluZyB8fCBzZXRzX21hcHBpbmcp ICYmDQo+ICAJICAgICFtbHg1X2Vzd2l0Y2hfcmVnX2MxX2xvb3BiYWNrX2VuYWJsZWQoZXN3KSkg ew0KPiBAQCAtMTk5NCw3ICsyMDMwLDcgQEAgc3RhdGljIGludCBwYXJzZV90dW5uZWxfYXR0cihz dHJ1Y3QgbWx4NWVfcHJpdg0KPiAqcHJpdiwNCj4gIAkJcmV0dXJuIC1FT1BOT1RTVVBQOw0KPiAg CX0NCj4gIA0KPiAtCWlmICghZmxvdy0+ZXN3X2F0dHItPmNoYWluKSB7DQo+ICsJaWYgKCptYXRj aF9pbm5lciAmJiAhbmVlZHNfbWFwcGluZykgew0KPiAgCQllcnIgPSBtbHg1ZV90Y190dW5fcGFy c2UoZmlsdGVyX2RldiwgcHJpdiwgc3BlYywgZiwNCj4gIAkJCQkJIG1hdGNoX2xldmVsKTsNCj4g IAkJaWYgKGVycikgew0KPiBAQCAtMjAxMSw3ICsyMDQ3LDggQEAgc3RhdGljIGludCBwYXJzZV90 dW5uZWxfYXR0cihzdHJ1Y3QgbWx4NWVfcHJpdg0KPiAqcHJpdiwNCj4gIAlpZiAoIW5lZWRzX21h cHBpbmcgJiYgIXNldHNfbWFwcGluZykNCj4gIAkJcmV0dXJuIDA7DQo+ICANCj4gLQlyZXR1cm4g bWx4NWVfZ2V0X2Zsb3dfdHVubmVsX2lkKHByaXYsIGZsb3csIGYsIGZpbHRlcl9kZXYpOw0KPiAr CXJldHVybiBtbHg1ZV9nZXRfZmxvd190dW5uZWxfaWQocHJpdiwgZmxvdywgZiwgZmlsdGVyX2Rl diwNCj4gKwkJCQkJc2V0c19tYXBwaW5nLCBuZWVkc19tYXBwaW5nKTsNCj4gIH0NCj4gIA0KPiAg c3RhdGljIHZvaWQgKmdldF9tYXRjaF9pbm5lcl9oZWFkZXJzX2NyaXRlcmlhKHN0cnVjdCBtbHg1 X2Zsb3dfc3BlYw0KPiAqc3BlYykNCg==