From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D11EEA034F; Mon, 7 Feb 2022 08:50:02 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B624B40685; Mon, 7 Feb 2022 08:50:02 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id C88244067C for ; Mon, 7 Feb 2022 08:50:00 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1644220201; x=1675756201; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=CgK6BjYSz75ysgdd3K4kqDkEroTr3f2Zd1f1aYpSA54=; b=CVL3w6KQyGOnO4xSOxJKba56RtNnVnzUM1LAI7bYpaejDt+EzETVKz47 CgXZlX4Yt072Js65nxu8tocGLPJL7oAKBPdd0kcEj0Lkk6mkAU20L3fEA zLC74DdhO3lm/RUJbzpMkX92BBV6XSJ/vDqV1lOqf1XjJoZI4P4jtPk/F 1EH5Og4Ltn8UASoaEE3qlyRgWF5ogPI9gCQoIxy3ICgMTLM0xQdxmmZJn uWBQPhd4n6Y9s/P7WZuHx6xGJY0GeTD/JuPTRC0uc2cniJJL38Il+xxl2 IvS/Xi/5/iM6axqv6m6JSoXtspNQjvuNj+nf1YWQY9Na4HmqL9Ojf+hJZ Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10250"; a="309408182" X-IronPort-AV: E=Sophos;i="5.88,349,1635231600"; d="scan'208";a="309408182" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Feb 2022 23:49:47 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,349,1635231600"; d="scan'208";a="525039119" Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86]) by orsmga007.jf.intel.com with ESMTP; 06 Feb 2022 23:49:47 -0800 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Sun, 6 Feb 2022 23:49:46 -0800 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Sun, 6 Feb 2022 23:49:46 -0800 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.177) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Sun, 6 Feb 2022 23:49:46 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hnFSuWKsiCYmvne4L2vhl8fJc0emt1sn+x7skX8g4l6syLvbsmRK0+dj/KOgtWaS2o5w/kqgCQr3wze5Xw3SPeyI/ZdbK1dR8BPf1zAuds1sI7b3Yre0jsgOUnuFeZXf+Ng2oA7lOLXc0khlq9SHv50HTKjyWMJD+41IggzIykywWUp+JSEX49yqf/Vwc/YRMAFYAFXUUqeeON8KzJthR+cbvJbvdqko9aEpR5n3KxY2igx2nj/I8DLrnHBxSuMDEqeZmiUvTW4GFZVNxWfu0WJ/+Gx2ff+9l8NvylGbCLN3SDUHpKLwprzY1omDnC/45uZXex081xLJ/FgaZE5ZFQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=CgK6BjYSz75ysgdd3K4kqDkEroTr3f2Zd1f1aYpSA54=; b=SZbCE92XHsvRe766tJ+60vnuIGteDcB8Wfoj6QFJv0rLr2lgBGV2v8Hh4TBzGS/qVOzQk79B9P4+MrMCUPAp/mb3PXg92oBhqiovmwTMZvHvmeJ0wv0FFDFiIioNmu1xv2g7o6Th5IdplyEFQdLTDKLR+Z9xQXBjr7NAU7L5D4Qa+oocZ1oGFGaIlA4tPlcK3OHPNwuxzA4DxosFrwgmIU+bu96ddsZTNytM7JYSMWqYwpPwPLxD2RZv7T0UR9PbUIJ8ORh2w7WpsceUEU4qQ7YwLvJYMsRJHrwH8fHUBFGXFMrGGk/1vR+lPiGQr4K4viP4ujyMy9VuzZrk3bnj4A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from PH0PR11MB4791.namprd11.prod.outlook.com (2603:10b6:510:43::10) by SJ0PR11MB4895.namprd11.prod.outlook.com (2603:10b6:a03:2de::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4951.18; Mon, 7 Feb 2022 07:49:39 +0000 Received: from PH0PR11MB4791.namprd11.prod.outlook.com ([fe80::c08a:3b4b:e8f:c789]) by PH0PR11MB4791.namprd11.prod.outlook.com ([fe80::c08a:3b4b:e8f:c789%5]) with mapi id 15.20.4951.018; Mon, 7 Feb 2022 07:49:39 +0000 From: "Loftus, Ciara" To: "Yigit, Ferruh" , "dev@dpdk.org" CC: "stephen@networkplumber.org" Subject: RE: [PATCH v2] net/af_xdp: re-enable secondary process support Thread-Topic: [PATCH v2] net/af_xdp: re-enable secondary process support Thread-Index: AQHYGcZre2BjnbOHK0u1FA31sKYGiayDcLEAgARI/oA= Date: Mon, 7 Feb 2022 07:49:39 +0000 Message-ID: References: <20220112075406.54121-1-ciara.loftus@intel.com> <20220204125436.30397-1-ciara.loftus@intel.com> <927b094f-2d84-1dbb-0ad5-37dcf1e1c98e@intel.com> In-Reply-To: <927b094f-2d84-1dbb-0ad5-37dcf1e1c98e@intel.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 976f1a2b-2711-4c87-ed1b-08d9ea0e64e1 x-ms-traffictypediagnostic: SJ0PR11MB4895:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7219; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 7uw5ipMmPVSj6w6ib9o1HXvM3/bSE3nv/c6zP4d6WdhXkX+2/kD2TkiTw4BelDM2tNZ8slqTS9kZJ7BRVypQUbdOMm/wMCdgU+/jzYWZ7mc35F2sRZJTwFzW2pG9ZG19wwQR7TQRb71FfCNAEl5vW7vpwiPBnNZyUGZgswHtTcpSsESq4WJ5YsNcmR/BeMqz5qChp/v9gumWlye905BBEvfN3win2NVyq/cYnX2SWEbCQcZmOg0kynt165+c8oRhPeIMFtIOEQk6fTDWTk3Ti1xH0F+yEOMCx10xvvdcD6igG1us85iEyAzJI7pplBQPil6PTEA3eRBlOPnvW5JyD70GH6Q0b86C35RcLRhzvuTO+SK2f0i2NXFve5V/nb0qYGfkw7D/Eb/8bf8X4gXI1E+Xj4m9CPMKVAJWqzXeWXfnzHuK4kenDDQvliewxOjsO0x+KUzVqNPKCzm9JmA7B+UDbNCzH+lg2JJjHop9XCRo7YgSRiOaGZG8S4klAIthY5NL8Kx1hvSHxfI5HESkDM27r6e06A0xyk0EMnrZ/FHekUaqK9ARqBE9ZoWemF80BOr4RiMRVn1+XTHAXvbgvhwYHMEfJOY//rY0qBF8C09if8EQri3x9gf1mXG5gMpxGrX97bV38m0EtGrN4Xnwf4L+KeCxHC2KR7RSiu5g9gpMS467CeH8kSra+ft4Wm8j3SlQAmpVyIPhVQf08rxleNlAYrkdtGt9ggHDq8/7phoWlHliXuTtbajf3bGg3VIp6fwXCVCEWg5TCR3UriVDDzKbo0/2pVstcLfWpCTXr5hPcS1w5bmHSYuxMid7XyJDEimJfftnxcBzLrlnsMRDcg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR11MB4791.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(26005)(4326008)(82960400001)(8676002)(8936002)(52536014)(64756008)(55016003)(66476007)(66446008)(83380400001)(66556008)(33656002)(966005)(508600001)(186003)(86362001)(38100700002)(316002)(7696005)(6506007)(71200400001)(122000001)(110136005)(5660300002)(30864003)(76116006)(66946007)(38070700005)(9686003)(2906002)(53546011); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aVNLeFlPQ0NvNXEza3VoUHp1Z2M2NGlIeFk0RDBiSmJwQmRZQ0hnZ0VIbDZI?= =?utf-8?B?Y0k2d3ZscFc1eSt3a3ZjMkNkWXRoUmZsNDRkY0drNjQ3YlBqN3h2a2YyZGtO?= =?utf-8?B?OWVUQkNWNVRjTmg1TThoT0U1N0ZvUkdjQXV1RE11SzZYUlY3aUNuRHZjRWdI?= =?utf-8?B?Vys0RFJ5dVBqeTVZTHU1YXZnOXpmbkcyUEdXVlV6ZHE0cklxTFVETmc1SHJF?= =?utf-8?B?QmF6T2VMY2psTlZUc3pITVZlNVVML25YaVgvNElMcmgwckl2WnBaSkw1OTRs?= =?utf-8?B?U2NtZVMvVStBT1ZQSmlaSzdPbTl4YTAxYTRpemJUL0JKdGd5bmpvVDlabnFt?= =?utf-8?B?SjlnZitVSE0wY3F6emFWYnY2SFJsLzArajIwdVFHR3pnYVdLTFFBTDBEZzIw?= =?utf-8?B?ZGVoM2Q4Y1VxMHhxeExUdDdZckx6L2k0c0MwN20zcTI3UXpGUmVSdVUrVFpx?= =?utf-8?B?OUJrNnpmZDg2enF1K3g1YXRDUDh0azVNd3p1SHFxQmZhdjlOcWN2RG0zd3lo?= =?utf-8?B?eUljODU4NmFxVnNVYjI0TFo4YURqODVYcHVHNHFDS2pkY1lpZ1ppZUNXZURt?= =?utf-8?B?ajhIZ21LWVM3RVU5dnBqeU9EenFHbWlkUE1FTE5Kemd5L295OGJDVEhEa2hZ?= =?utf-8?B?T2lKVjAxOUtzSUFmcDBtd0R4RFphWHYvZmh4RnFXeGV3cXJ6SnkvUnEzY1VS?= =?utf-8?B?eVRuNWlOaG8wWUtXZWxlZDhoTFJSaTYvMEpjcVRqSDE5NXE5blJEMUdXekl1?= =?utf-8?B?ZnlyNTVxeVB0VHpEbTZTc01xVlg5NGlOMXVFRDNpbDhneTlXZ2VYV2dNTXo1?= =?utf-8?B?eU10RXBZVk0xMVNpWkc5N3V4dm5iZ2IvN3h0UithMDQ0QjFWaDNDT0VRcEk0?= =?utf-8?B?VzNaOVNycnNMbGMyb3JST2NIdzZHSU9YSkV2U1dncElVQkJOU1NGVXFmaDNx?= =?utf-8?B?Z25ac3F5VnJXUHRHellLZXUxZjBFUXF0bVJLZjNweEdSTU95ODZjOXBKcC9q?= =?utf-8?B?cWp0Y284RzEwVFVCaEJYS0ozMUJTUXRkeTRIMjE1d1VnTzhyQ0ZDaXYwWGNI?= =?utf-8?B?c251TVZtMXJiRXRQMHo4NkEvbFVWajhHNTRiQ3BKeU9Rd2ZUSzBZMnZYOG5n?= =?utf-8?B?NEtJSW54TTBSTFF0bkppZlVXMlRNemhqNzFYWWcvUjAwZXdFOUJ4ZXFid0tC?= =?utf-8?B?SEVqeVpXM01odGZGUzdBb0RRNERSSUNnMFhMSFA2MkM1T2J2VHVRaVVCR2Jt?= =?utf-8?B?c3lrbzljTjlPMUF0SStmazYyVVJFMnFzTUVkYVBNZjNQN3RwUkg0ZGVVSm4z?= =?utf-8?B?MkN4RUlXUEs5K1Mza0k2QllNWDFnMGNxalJMVU1tMTJubmQ0dXVmMW8wc3BQ?= =?utf-8?B?SVBmMy85dGxVclV1U3RWN1I3VmJVcUEwSkhHSkpCVFhBODZjWnVqcnFoeGNz?= =?utf-8?B?dFNNMTR3ZjJ6cCt4WS80cFRRMXFMdGJ0R1Y2bXBzUURxNEFWRTZoQWw3WHpi?= =?utf-8?B?K1pHaVNsZlRNemhRVG1STklXT0wrNzNQaGRJWlZqcE8wVjR3aUJVNzkxcEIv?= =?utf-8?B?VkdCUGhGVGNsRHZFbjFIcHdJV1ExYjNhdXVhSnA4cFJmZEpqK3VaSmxIWDd5?= =?utf-8?B?TWxpeG5lMXFVcXcvWlpGbnp6MCsvQXdTbDZRVzlyYUhoQnBvN1JrU2d1Lzlp?= =?utf-8?B?SHRvMU5MaG92dlQyY1JaeW92MFVWZ01YTnNvNVAxaXVMcjZZMWpacHgzMzFk?= =?utf-8?B?UlJ5Z283M0E2eWxYak9sRmpCaGpRU21LM3Bnb0NzcHQrSXZSdnBCM014K0p0?= =?utf-8?B?dnBZM3hSODRaMmhsOW9KTXA0c1BVVGs4Y2llSWpuSDJhcElrYWlwUUdJMnFa?= =?utf-8?B?bklYbVUxV1VwM1J5Uy9XYTNRSGt4bXcrckQxblV3YlRHR0Q2WE1QUW9zeVBI?= =?utf-8?B?T1lwTHM4RXl3MGdQU1d5Um1ERlNva2V2S3JKQmExYjNqbTBlY2pEQXNSZnpR?= =?utf-8?B?YmI1V2VwT0did1liTDF4ZytMYTRjTFVCRnl1OFJHTkNzV3pXczY3QmJQbmRK?= =?utf-8?B?cHVXd21JWDF5dVdJdXJuNUZZUldrNXJGcDArSFFhRGZWQ0JrL1VnREhIcHdj?= =?utf-8?B?eGN4T3NPUURERHlPa2U1ekRaM01tTGpMaFZGVE42RHMrTnErS0hia2RwUkpm?= =?utf-8?B?b0E9PQ==?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB4791.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 976f1a2b-2711-4c87-ed1b-08d9ea0e64e1 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Feb 2022 07:49:39.1511 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: fGqduM6VJrwodVBLohhhcZ4c0k4tZ97AKjcedVf6GmTrgC9uJmmNEgWp8IHBLaXqFj7mVrj/tHmy3fD4n/m7PQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB4895 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org PiANCj4gT24gMi80LzIwMjIgMTI6NTQgUE0sIENpYXJhIExvZnR1cyB3cm90ZToNCj4gPiBTZWNv bmRhcnkgcHJvY2VzcyBzdXBwb3J0IGhhZCBiZWVuIGRpc2FibGVkIGZvciB0aGUgQUZfWERQIFBN RA0KPiA+IGJlY2F1c2UgdGhlcmUgd2FzIG5vIGxvZ2ljIGluIHBsYWNlIHRvIHNoYXJlIHRoZSBB Rl9YRFAgc29ja2V0DQo+ID4gZmlsZSBkZXNjcmlwdG9ycyBiZXR3ZWVuIHRoZSBwcm9jZXNzZXMu IFRoaXMgY29tbWl0IGludHJvZHVjZXMNCj4gPiB0aGlzIGxvZ2ljIHVzaW5nIHRoZSBJUEMgQVBJ cy4NCj4gPg0KPiA+IFNpbmNlIEFGX1hEUCByaW5ncyBhcmUgc2luZ2xlLXByb2R1Y2VyIHNpbmds ZS1jb25zdW1lciwgcngvdHgNCj4gPiBpbiB0aGUgc2Vjb25kYXJ5IHByb2Nlc3MgaXMgZGlzYWJs ZWQuIEhvd2V2ZXIgb3RoZXIgb3BlcmF0aW9ucw0KPiA+IGluY2x1ZGluZyByZXRyaWV2YWwgb2Yg c3RhdHMgYXJlIHBlcm1pdHRlZC4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IENpYXJhIExvZnR1 cyA8Y2lhcmEubG9mdHVzQGludGVsLmNvbT4NCj4gPg0KPiA+IC0tLQ0KPiA+IHYxIC0+IHYyOg0K PiA+ICogUmViYXNlIHRvIG5leHQtbmV0DQo+ID4NCj4gPiBSRkMgLT4gdjE6DQo+ID4gKiBBZGRl ZCBuZXdsaW5lIHRvIGFmX3hkcC5yc3QNCj4gPiAqIEZpeGVkIHNwZWxsaW5nIGVycm9ycw0KPiA+ ICogRml4ZWQgcG90ZW50aWFsIE5VTEwgZGVyZWZlcmVuY2UgaW4gaW5pdF9pbnRlcm5hbHMNCj4g PiAqIEZpeGVkIHBvdGVudGlhbCBmcmVlIG9mIGFkZHJlc3Mtb2YgZXhwcmVzc2lvbiBpbiBhZnhk cF9tcF9yZXF1ZXN0X2Zkcw0KPiA+IC0tLQ0KPiA+ICAgZG9jL2d1aWRlcy9uaWNzL2FmX3hkcC5y c3QgICAgICAgICAgICAgfCAgIDkgKysNCj4gPiAgIGRvYy9ndWlkZXMvbmljcy9mZWF0dXJlcy9h Zl94ZHAuaW5pICAgIHwgICAxICsNCj4gPiAgIGRvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2Vf MjJfMDMucnN0IHwgICAxICsNCj4gPiAgIGRyaXZlcnMvbmV0L2FmX3hkcC9ydGVfZXRoX2FmX3hk cC5jICAgIHwgMjEwDQo+ICsrKysrKysrKysrKysrKysrKysrKysrLS0NCj4gPiAgIDQgZmlsZXMg Y2hhbmdlZCwgMjA3IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlm ZiAtLWdpdCBhL2RvYy9ndWlkZXMvbmljcy9hZl94ZHAucnN0IGIvZG9jL2d1aWRlcy9uaWNzL2Fm X3hkcC5yc3QNCj4gPiBpbmRleCBkYjAyZWExOTg0Li5lYjRlYWIyOGE4IDEwMDY0NA0KPiA+IC0t LSBhL2RvYy9ndWlkZXMvbmljcy9hZl94ZHAucnN0DQo+ID4gKysrIGIvZG9jL2d1aWRlcy9uaWNz L2FmX3hkcC5yc3QNCj4gPiBAQCAtMTQxLDQgKzE0MSwxMyBAQCBMaW1pdGF0aW9ucw0KPiA+ICAg ICBOQVBJIGNvbnRleHQgZnJvbSBhIHdhdGNoZG9nIHRpbWVyIGluc3RlYWQgb2YgZnJvbSBzb2Z0 aXJxcy4gTW9yZQ0KPiBpbmZvcm1hdGlvbg0KPiA+ICAgICBvbiB0aGlzIGZlYXR1cmUgY2FuIGJl IGZvdW5kIGF0IFsxXS4NCj4gPg0KPiA+ICstICoqU2Vjb25kYXJ5IFByb2Nlc3NlcyoqDQo+ID4g Kw0KPiA+ICsgIFJ4IGFuZCBUeCBhcmUgbm90IHN1cHBvcnRlZCBmb3Igc2Vjb25kYXJ5IHByb2Nl c3NlcyBkdWUgdG8gdGhlIHNpbmdsZS0NCj4gcHJvZHVjZXINCj4gPiArICBzaW5nbGUtY29uc3Vt ZXIgbmF0dXJlIG9mIHRoZSBBRl9YRFAgcmluZ3MuIEhvd2V2ZXIgb3RoZXIgb3BlcmF0aW9ucw0K PiBpbmNsdWRpbmcNCj4gPiArICBzdGF0aXN0aWNzIHJldHJpZXZhbCBhcmUgcGVybWl0dGVkLg0K PiANCj4gSGkgQ2lhcmEsDQo+IA0KPiBJc24ndCB0aGlzIGxpbWl0YXRpb24gc2FtZSBmb3IgYWxs IFBNRHMsIGxpa2Ugbm90IGJvdGggcHJpbWFyeSAmIHNlY29uZGFyeSBjYW4NCj4gUngvVHgNCj4g ZnJvbSBzYW1lIHF1ZXVlIGF0IHRoZSBzYW1lIHRpbWUuDQo+IEJ1dCBwcmltYXJ5IGNhbiBpbml0 aWFsbGl6ZSB0aGUgUE1EIGFuZCBzZWNvbmRhcnkgY2FuIGRvIHRoZSBkYXRhcGF0aCwNCj4gb3Ig aXNuJ3QgYWZfeGRwIHN1cHBvcnRzIG11bHRpcGxlIHF1ZXVlLCBpZiBzbyBzb21lIHF1ZXVlcyBj YW4gYmUgdXNlZCBieQ0KPiBwcmltYXJ5IGFuZCBzb21lIGJ5IHNlY29uZGFyeSBmb3IgZGF0YXBh dGguDQo+IA0KPiBJcyB0aGVyZSBhbnloaW5nIHNwZWNpYWwgZm9yIGFmX3hkcCB0aGF0IHByZXZl bnRzIGl0Pw0KDQpIaSBGZXJydWgsDQoNClRoYW5rcyBmb3IgdGhlIHJldmlldy4NCkVhY2ggcXVl dWUgb2YgdGhlIFBNRCBjb3JyZXNwb25kcyB0byBhIG5ldyBBRl9YRFAgc29ja2V0Lg0KRWFjaCBz b2NrZXQgaGFzIGFuIFJYIGFuZCBUWCByaW5nIHRoYXQgaXMgbW1hcHBlZCBmcm9tIHRoZSBrZXJu ZWwgdG8gdXNlcnNwYWNlIGFuZCB0aGlzIG1hcHBpbmcgaXMgb25seSB2YWxpZCBmb3IgdGhlIHBy aW1hcnkgcHJvY2Vzcy4NCkkgZGlkIG5vdCBmaWd1cmUgb3V0IGEgd2F5IHRvIHNoYXJlIHRoYXQg bWFwcGluZyB3aXRoIHRoZSBzZWNvbmRhcnkgcHJvY2VzcyBzdWNjZXNzZnVsbHkuIENhbiB5b3Ug dGhpbmsgb2YgYW55dGhpbmcgdGhhdCBtaWdodCB3b3JrPw0KDQo+IA0KPiA+ICsgIFRoZSBtYXhp bXVtIG51bWJlciBvZiBxdWV1ZXMgcGVybWl0dGVkIGZvciBQTURzIG9wZXJhdGluZyBpbiB0aGlz DQo+IG1vZGVsIGlzIDgNCj4gPiArICBhcyB0aGlzIGlzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBm ZHMgdGhhdCBjYW4gYmUgc2VudCB0aHJvdWdoIHRoZSBJUEMNCj4gQVBJcyBhcw0KPiA+ICsgIGRl ZmluZWQgYnkgUlRFX01QX01BWF9GRF9OVU0uDQo+ID4gKw0KPiA+ICAgICBbMV0gaHR0cHM6Ly9s d24ubmV0L0FydGljbGVzLzgzNzAxMC8NCj4gPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9uaWNz L2ZlYXR1cmVzL2FmX3hkcC5pbmkNCj4gYi9kb2MvZ3VpZGVzL25pY3MvZmVhdHVyZXMvYWZfeGRw LmluaQ0KPiA+IGluZGV4IDU0YjczOGU2MTYuLjhlN2UwNzVhYWYgMTAwNjQ0DQo+ID4gLS0tIGEv ZG9jL2d1aWRlcy9uaWNzL2ZlYXR1cmVzL2FmX3hkcC5pbmkNCj4gPiArKysgYi9kb2MvZ3VpZGVz L25pY3MvZmVhdHVyZXMvYWZfeGRwLmluaQ0KPiA+IEBAIC05LDQgKzksNSBAQCBQb3dlciBtZ210 IGFkZHJlc3MgbW9uaXRvciA9IFkNCj4gPiAgIE1UVSB1cGRhdGUgICAgICAgICAgID0gWQ0KPiA+ ICAgUHJvbWlzY3VvdXMgbW9kZSAgICAgPSBZDQo+ID4gICBTdGF0cyBwZXIgcXVldWUgICAgICA9 IFkNCj4gPiArTXVsdGlwcm9jZXNzIGF3YXJlICAgPSBZDQo+ID4gICB4ODYtNjQgICAgICAgICAg ICAgICA9IFkNCj4gPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8y Ml8wMy5yc3QNCj4gYi9kb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzIyXzAzLnJzdA0KPiA+ IGluZGV4IGJmMmUzZjc4YTkuLmRmZDJjYmJjY2YgMTAwNjQ0DQo+ID4gLS0tIGEvZG9jL2d1aWRl cy9yZWxfbm90ZXMvcmVsZWFzZV8yMl8wMy5yc3QNCj4gPiArKysgYi9kb2MvZ3VpZGVzL3JlbF9u b3Rlcy9yZWxlYXNlXzIyXzAzLnJzdA0KPiA+IEBAIC01OCw2ICs1OCw3IEBAIE5ldyBGZWF0dXJl cw0KPiA+ICAgKiAqKlVwZGF0ZWQgQUZfWERQIFBNRCoqDQo+ID4NCj4gPiAgICAgKiBBZGRlZCBz dXBwb3J0IGZvciBsaWJ4ZHAgPj12MS4yLjIuDQo+ID4gKyAgKiBSZS1lbmFibGVkIHNlY29uZGFy eSBwcm9jZXNzIHN1cHBvcnQuIFJYL1RYIGlzIG5vdCBzdXBwb3J0ZWQuDQo+ID4NCj4gPiAgICog KipVcGRhdGVkIENpc2NvIGVuaWMgZHJpdmVyLioqDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvYWZfeGRwL3J0ZV9ldGhfYWZfeGRwLmMNCj4gYi9kcml2ZXJzL25ldC9hZl94ZHAv cnRlX2V0aF9hZl94ZHAuYw0KPiA+IGluZGV4IDFiNjE5MmZhNDQuLjQwN2Y2ZDhkYmUgMTAwNjQ0 DQo+ID4gLS0tIGEvZHJpdmVycy9uZXQvYWZfeGRwL3J0ZV9ldGhfYWZfeGRwLmMNCj4gPiArKysg Yi9kcml2ZXJzL25ldC9hZl94ZHAvcnRlX2V0aF9hZl94ZHAuYw0KPiA+IEBAIC04MCw2ICs4MCwx OCBAQCBSVEVfTE9HX1JFR0lTVEVSX0RFRkFVTFQoYWZfeGRwX2xvZ3R5cGUsDQo+IE5PVElDRSk7 DQo+ID4NCj4gPiAgICNkZWZpbmUgRVRIX0FGX1hEUF9FVEhfT1ZFUkhFQUQNCj4gCShSVEVfRVRI RVJfSERSX0xFTiArIFJURV9FVEhFUl9DUkNfTEVOKQ0KPiA+DQo+ID4gKyNkZWZpbmUgRVRIX0FG X1hEUF9NUF9LRVkgImFmeGRwX21wX3NlbmRfZmRzIg0KPiA+ICsNCj4gPiArc3RhdGljIGludCBh ZnhkcF9kZXZfY291bnQ7DQo+ID4gKw0KPiA+ICsvKiBNZXNzYWdlIGhlYWRlciB0byBzeW5jaHJv bml6ZSBmZHMgdmlhIElQQyAqLw0KPiA+ICtzdHJ1Y3QgaXBjX2hkciB7DQo+ID4gKwljaGFyIHBv cnRfbmFtZVtSVEVfREVWX05BTUVfTUFYX0xFTl07DQo+ID4gKwkvKiBUaGUgZmlsZSBkZXNjcmlw dG9ycyBhcmUgaW4gdGhlIGRlZGljYXRlZCBwYXJ0DQo+ID4gKwkgKiBvZiB0aGUgVW5peCBtZXNz YWdlIHRvIGJlIHRyYW5zbGF0ZWQgYnkgdGhlIGtlcm5lbC4NCj4gPiArCSAqLw0KPiA+ICt9Ow0K PiA+ICsNCj4gPiAgIHN0cnVjdCB4c2tfdW1lbV9pbmZvIHsNCj4gPiAgIAlzdHJ1Y3QgeHNrX3Vt ZW0gKnVtZW07DQo+ID4gICAJc3RydWN0IHJ0ZV9yaW5nICpidWZfcmluZzsNCj4gPiBAQCAtMTQ3 LDYgKzE1OSwxMCBAQCBzdHJ1Y3QgcG1kX2ludGVybmFscyB7DQo+ID4gICAJc3RydWN0IHBrdF90 eF9xdWV1ZSAqdHhfcXVldWVzOw0KPiA+ICAgfTsNCj4gPg0KPiA+ICtzdHJ1Y3QgcG1kX3Byb2Nl c3NfcHJpdmF0ZSB7DQo+ID4gKwlpbnQgcnhxX3hza19mZHNbUlRFX01BWF9RVUVVRVNfUEVSX1BP UlRdOw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiAgICNkZWZpbmUgRVRIX0FGX1hEUF9JRkFDRV9BUkcJ CQkiaWZhY2UiDQo+ID4gICAjZGVmaW5lIEVUSF9BRl9YRFBfU1RBUlRfUVVFVUVfQVJHCQkic3Rh cnRfcXVldWUiDQo+ID4gICAjZGVmaW5lIEVUSF9BRl9YRFBfUVVFVUVfQ09VTlRfQVJHDQo+IAki cXVldWVfY291bnQiDQo+ID4gQEAgLTc5NSwxMSArODExLDEyIEBAIHN0YXRpYyBpbnQNCj4gPiAg IGV0aF9zdGF0c19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHN0cnVjdCBydGVfZXRoX3N0 YXRzICpzdGF0cykNCj4gPiAgIHsNCj4gPiAgIAlzdHJ1Y3QgcG1kX2ludGVybmFscyAqaW50ZXJu YWxzID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPiArCXN0cnVjdCBwbWRfcHJvY2Vzc19w cml2YXRlICpwcm9jZXNzX3ByaXZhdGUgPSBkZXYtDQo+ID5wcm9jZXNzX3ByaXZhdGU7DQo+ID4g ICAJc3RydWN0IHhkcF9zdGF0aXN0aWNzIHhkcF9zdGF0czsNCj4gPiAgIAlzdHJ1Y3QgcGt0X3J4 X3F1ZXVlICpyeHE7DQo+ID4gICAJc3RydWN0IHBrdF90eF9xdWV1ZSAqdHhxOw0KPiA+ICAgCXNv Y2tsZW5fdCBvcHRsZW47DQo+ID4gLQlpbnQgaSwgcmV0Ow0KPiA+ICsJaW50IGksIHJldCwgZmQ7 DQo+ID4NCj4gPiAgIAlmb3IgKGkgPSAwOyBpIDwgZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXM7IGkr Kykgew0KPiA+ICAgCQlvcHRsZW4gPSBzaXplb2Yoc3RydWN0IHhkcF9zdGF0aXN0aWNzKTsNCj4g PiBAQCAtODE1LDggKzgzMiw5IEBAIGV0aF9zdGF0c19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYsIHN0cnVjdA0KPiBydGVfZXRoX3N0YXRzICpzdGF0cykNCj4gPiAgIAkJc3RhdHMtPmlieXRl cyArPSBzdGF0cy0+cV9pYnl0ZXNbaV07DQo+ID4gICAJCXN0YXRzLT5pbWlzc2VkICs9IHJ4cS0+ c3RhdHMucnhfZHJvcHBlZDsNCj4gPiAgIAkJc3RhdHMtPm9lcnJvcnMgKz0gdHhxLT5zdGF0cy50 eF9kcm9wcGVkOw0KPiA+IC0JCXJldCA9IGdldHNvY2tvcHQoeHNrX3NvY2tldF9fZmQocnhxLT54 c2spLCBTT0xfWERQLA0KPiA+IC0JCQkJWERQX1NUQVRJU1RJQ1MsICZ4ZHBfc3RhdHMsICZvcHRs ZW4pOw0KPiA+ICsJCWZkID0gcHJvY2Vzc19wcml2YXRlLT5yeHFfeHNrX2Zkc1tpXTsNCj4gPiAr CQlyZXQgPSBmZCA+PSAwID8gZ2V0c29ja29wdChmZCwgU09MX1hEUCwgWERQX1NUQVRJU1RJQ1Ms DQo+ID4gKwkJCQkJICAgJnhkcF9zdGF0cywgJm9wdGxlbikgOiAtMTsNCj4gPiAgIAkJaWYgKHJl dCAhPSAwKSB7DQo+ID4gICAJCQlBRl9YRFBfTE9HKEVSUiwgImdldHNvY2tvcHQoKSBmYWlsZWQg Zm9yDQo+IFhEUF9TVEFUSVNUSUNTLlxuIik7DQo+ID4gICAJCQlyZXR1cm4gLTE7DQo+ID4gQEAg LTg4Myw4ICs5MDEsMTAgQEAgZXRoX2Rldl9jbG9zZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikN Cj4gPiAgIAlzdHJ1Y3QgcGt0X3J4X3F1ZXVlICpyeHE7DQo+ID4gICAJaW50IGk7DQo+ID4NCj4g PiAtCWlmIChydGVfZWFsX3Byb2Nlc3NfdHlwZSgpICE9IFJURV9QUk9DX1BSSU1BUlkpDQo+ID4g KwlpZiAocnRlX2VhbF9wcm9jZXNzX3R5cGUoKSAhPSBSVEVfUFJPQ19QUklNQVJZKSB7DQo+ID4g KwkJcnRlX2ZyZWUoZGV2LT5wcm9jZXNzX3ByaXZhdGUpOw0KPiA+ICAgCQlyZXR1cm4gMDsNCj4g PiArCX0NCj4gPg0KPiA+ICAgCUFGX1hEUF9MT0coSU5GTywgIkNsb3NpbmcgQUZfWERQIGV0aGRl diBvbiBudW1hIHNvY2tldCAldVxuIiwNCj4gPiAgIAkJcnRlX3NvY2tldF9pZCgpKTsNCj4gPiBA QCAtMTM0OSw2ICsxMzY5LDcgQEAgZXRoX3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2Rl diAqZGV2LA0KPiA+ICAgCQkgICBzdHJ1Y3QgcnRlX21lbXBvb2wgKm1iX3Bvb2wpDQo+ID4gICB7 DQo+ID4gICAJc3RydWN0IHBtZF9pbnRlcm5hbHMgKmludGVybmFscyA9IGRldi0+ZGF0YS0+ZGV2 X3ByaXZhdGU7DQo+ID4gKwlzdHJ1Y3QgcG1kX3Byb2Nlc3NfcHJpdmF0ZSAqcHJvY2Vzc19wcml2 YXRlID0gZGV2LQ0KPiA+cHJvY2Vzc19wcml2YXRlOw0KPiA+ICAgCXN0cnVjdCBwa3RfcnhfcXVl dWUgKnJ4cTsNCj4gPiAgIAlpbnQgcmV0Ow0KPiA+DQo+ID4gQEAgLTEzODcsNiArMTQwOCw4IEBA IGV0aF9yeF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gPiAgIAlyeHEt PmZkc1swXS5mZCA9IHhza19zb2NrZXRfX2ZkKHJ4cS0+eHNrKTsNCj4gPiAgIAlyeHEtPmZkc1sw XS5ldmVudHMgPSBQT0xMSU47DQo+ID4NCj4gPiArCXByb2Nlc3NfcHJpdmF0ZS0+cnhxX3hza19m ZHNbcnhfcXVldWVfaWRdID0gcnhxLT5mZHNbMF0uZmQ7DQo+ID4gKw0KPiA+ICAgCWRldi0+ZGF0 YS0+cnhfcXVldWVzW3J4X3F1ZXVlX2lkXSA9IHJ4cTsNCj4gPiAgIAlyZXR1cm4gMDsNCj4gPg0K PiA+IEBAIC0xNjg4LDYgKzE3MTEsNyBAQCBpbml0X2ludGVybmFscyhzdHJ1Y3QgcnRlX3ZkZXZf ZGV2aWNlICpkZXYsIGNvbnN0DQo+IGNoYXIgKmlmX25hbWUsDQo+ID4gICB7DQo+ID4gICAJY29u c3QgY2hhciAqbmFtZSA9IHJ0ZV92ZGV2X2RldmljZV9uYW1lKGRldik7DQo+ID4gICAJY29uc3Qg dW5zaWduZWQgaW50IG51bWFfbm9kZSA9IGRldi0+ZGV2aWNlLm51bWFfbm9kZTsNCj4gPiArCXN0 cnVjdCBwbWRfcHJvY2Vzc19wcml2YXRlICpwcm9jZXNzX3ByaXZhdGU7DQo+ID4gICAJc3RydWN0 IHBtZF9pbnRlcm5hbHMgKmludGVybmFsczsNCj4gPiAgIAlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0 aF9kZXY7DQo+ID4gICAJaW50IHJldDsNCj4gPiBAQCAtMTc1Myw5ICsxNzc3LDE3IEBAIGluaXRf aW50ZXJuYWxzKHN0cnVjdCBydGVfdmRldl9kZXZpY2UgKmRldiwNCj4gY29uc3QgY2hhciAqaWZf bmFtZSwNCj4gPiAgIAlpZiAocmV0KQ0KPiA+ICAgCQlnb3RvIGVycl9mcmVlX3R4Ow0KPiA+DQo+ ID4gKwlwcm9jZXNzX3ByaXZhdGUgPSAoc3RydWN0IHBtZF9wcm9jZXNzX3ByaXZhdGUgKikNCj4g PiArCQlydGVfem1hbGxvY19zb2NrZXQobmFtZSwgc2l6ZW9mKHN0cnVjdA0KPiBwbWRfcHJvY2Vz c19wcml2YXRlKSwNCj4gPiArCQkJCSAgIFJURV9DQUNIRV9MSU5FX1NJWkUsIG51bWFfbm9kZSk7 DQo+ID4gKwlpZiAocHJvY2Vzc19wcml2YXRlID09IE5VTEwpIHsNCj4gPiArCQlBRl9YRFBfTE9H KEVSUiwgIkZhaWxlZCB0byBhbGxvYyBtZW1vcnkgZm9yIHByb2Nlc3MNCj4gcHJpdmF0ZVxuIik7 DQo+ID4gKwkJZ290byBlcnJfZnJlZV90eDsNCj4gPiArCX0NCj4gDQo+IE5lZWQgdG8gZnJlZSAn cHJvY2Vzc19wcml2YXRlJyBpbiB0aGUgUE1ELCBpbiAnY2xvc2UoKScgYW5kICdyZW1vdmUoKScg cGF0aHMuDQoNCisxDQoNCj4gDQo+ID4gKw0KPiA+ICAgCWV0aF9kZXYgPSBydGVfZXRoX3ZkZXZf YWxsb2NhdGUoZGV2LCAwKTsNCj4gPiAgIAlpZiAoZXRoX2RldiA9PSBOVUxMKQ0KPiA+IC0JCWdv dG8gZXJyX2ZyZWVfdHg7DQo+ID4gKwkJZ290byBlcnJfZnJlZV9wcDsNCj4gPg0KPiA+ICAgCWV0 aF9kZXYtPmRhdGEtPmRldl9wcml2YXRlID0gaW50ZXJuYWxzOw0KPiA+ICAgCWV0aF9kZXYtPmRh dGEtPmRldl9saW5rID0gcG1kX2xpbms7DQo+ID4gQEAgLTE3NjQsNiArMTc5NiwxMCBAQCBpbml0 X2ludGVybmFscyhzdHJ1Y3QgcnRlX3ZkZXZfZGV2aWNlICpkZXYsDQo+IGNvbnN0IGNoYXIgKmlm X25hbWUsDQo+ID4gICAJZXRoX2Rldi0+ZGV2X29wcyA9ICZvcHM7DQo+ID4gICAJZXRoX2Rldi0+ cnhfcGt0X2J1cnN0ID0gZXRoX2FmX3hkcF9yeDsNCj4gPiAgIAlldGhfZGV2LT50eF9wa3RfYnVy c3QgPSBldGhfYWZfeGRwX3R4Ow0KPiA+ICsJZXRoX2Rldi0+cHJvY2Vzc19wcml2YXRlID0gcHJv Y2Vzc19wcml2YXRlOw0KPiA+ICsNCj4gPiArCWZvciAoaSA9IDA7IGkgPCBxdWV1ZV9jbnQ7IGkr KykNCj4gPiArCQlwcm9jZXNzX3ByaXZhdGUtPnJ4cV94c2tfZmRzW2ldID0gLTE7DQo+ID4NCj4g PiAgICNpZiBkZWZpbmVkKFhEUF9VTUVNX1VOQUxJR05FRF9DSFVOS19GTEFHKQ0KPiA+ICAgCUFG X1hEUF9MT0coSU5GTywgIlplcm8gY29weSBiZXR3ZWVuIHVtZW0gYW5kIG1idWYNCj4gZW5hYmxl ZC5cbiIpOw0KPiA+IEBAIC0xNzcxLDYgKzE4MDcsOCBAQCBpbml0X2ludGVybmFscyhzdHJ1Y3Qg cnRlX3ZkZXZfZGV2aWNlICpkZXYsIGNvbnN0DQo+IGNoYXIgKmlmX25hbWUsDQo+ID4NCj4gPiAg IAlyZXR1cm4gZXRoX2RldjsNCj4gPg0KPiA+ICtlcnJfZnJlZV9wcDoNCj4gPiArCXJ0ZV9mcmVl KHByb2Nlc3NfcHJpdmF0ZSk7DQo+ID4gICBlcnJfZnJlZV90eDoNCj4gPiAgIAlydGVfZnJlZShp bnRlcm5hbHMtPnR4X3F1ZXVlcyk7DQo+ID4gICBlcnJfZnJlZV9yeDoNCj4gPiBAQCAtMTc4MCw2 ICsxODE4LDExNSBAQCBpbml0X2ludGVybmFscyhzdHJ1Y3QgcnRlX3ZkZXZfZGV2aWNlICpkZXYs DQo+IGNvbnN0IGNoYXIgKmlmX25hbWUsDQo+ID4gICAJcmV0dXJuIE5VTEw7DQo+ID4gICB9DQo+ ID4NCj4gPiArLyogU2Vjb25kYXJ5IHByb2Nlc3MgcmVxdWVzdHMgcnhxIGZkcyBmcm9tIHByaW1h cnkuICovDQo+ID4gK3N0YXRpYyBpbnQNCj4gPiArYWZ4ZHBfbXBfcmVxdWVzdF9mZHMoY29uc3Qg Y2hhciAqbmFtZSwgc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQo+ID4gK3sNCj4gPiArCXN0cnVj dCBwbWRfcHJvY2Vzc19wcml2YXRlICpwcm9jZXNzX3ByaXZhdGUgPSBkZXYtDQo+ID5wcm9jZXNz X3ByaXZhdGU7DQo+ID4gKwlzdHJ1Y3QgdGltZXNwZWMgdGltZW91dCA9IHsudHZfc2VjID0gMSwg LnR2X25zZWMgPSAwfTsNCj4gPiArCXN0cnVjdCBydGVfbXBfbXNnIHJlcXVlc3QsICpyZXBseTsN Cj4gPiArCXN0cnVjdCBydGVfbXBfcmVwbHkgcmVwbGllczsNCj4gPiArCXN0cnVjdCBpcGNfaGRy ICpyZXF1ZXN0X3BhcmFtID0gKHN0cnVjdCBpcGNfaGRyICopcmVxdWVzdC5wYXJhbTsNCj4gPiAr CWludCBpLCByZXQ7DQo+ID4gKw0KPiA+ICsJLyogUHJlcGFyZSB0aGUgcmVxdWVzdCAqLw0KPiA+ ICsJbWVtc2V0KCZyZXF1ZXN0LCAwLCBzaXplb2YocmVxdWVzdCkpOw0KPiA+ICsJc3RybGNweShy ZXF1ZXN0Lm5hbWUsIEVUSF9BRl9YRFBfTVBfS0VZLA0KPiBzaXplb2YocmVxdWVzdC5uYW1lKSk7 DQo+ID4gKwlzdHJsY3B5KHJlcXVlc3RfcGFyYW0tPnBvcnRfbmFtZSwgbmFtZSwNCj4gPiArCQlz aXplb2YocmVxdWVzdF9wYXJhbS0+cG9ydF9uYW1lKSk7DQo+ID4gKwlyZXF1ZXN0Lmxlbl9wYXJh bSA9IHNpemVvZigqcmVxdWVzdF9wYXJhbSk7DQo+ID4gKw0KPiA+ICsJLyogU2VuZCB0aGUgcmVx dWVzdCBhbmQgcmVjZWl2ZSB0aGUgcmVwbHkgKi8NCj4gPiArCUFGX1hEUF9MT0coREVCVUcsICJT ZW5kaW5nIElQQyByZXF1ZXN0IGZvciAlc1xuIiwgbmFtZSk7DQo+ID4gKwlyZXQgPSBydGVfbXBf cmVxdWVzdF9zeW5jKCZyZXF1ZXN0LCAmcmVwbGllcywgJnRpbWVvdXQpOw0KPiA+ICsJaWYgKHJl dCA8IDAgfHwgcmVwbGllcy5uYl9yZWNlaXZlZCAhPSAxKSB7DQo+ID4gKwkJQUZfWERQX0xPRyhF UlIsICJGYWlsZWQgdG8gcmVxdWVzdCBmZHMgZnJvbSBwcmltYXJ5OiAlZCIsDQo+ID4gKwkJCSAg IHJ0ZV9lcnJubyk7DQo+ID4gKwkJcmV0dXJuIC0xOw0KPiA+ICsJfQ0KPiA+ICsJcmVwbHkgPSBy ZXBsaWVzLm1zZ3M7DQo+ID4gKwlBRl9YRFBfTE9HKERFQlVHLCAiUmVjZWl2ZWQgSVBDIHJlcGx5 IGZvciAlc1xuIiwgbmFtZSk7DQo+IA0KPiBJIHRoaW5rIG1lc3NhZ2UgY2FuIG1lbnRpb24gIm11 bHRpLXByb2Nlc3MgSVBDIiBmb3IgY2xhcmlmaWNhdGlvbi4NCg0KKzENCg0KPiANCj4gPiArCWlm IChkZXYtPmRhdGEtPm5iX3J4X3F1ZXVlcyAhPSByZXBseS0+bnVtX2Zkcykgew0KPiA+ICsJCUFG X1hEUF9MT0coRVJSLCAiSW5jb3JyZWN0IG51bWJlciBvZiBmZHMgcmVjZWl2ZWQ6ICVkICE9DQo+ ICVkXG4iLA0KPiA+ICsJCQkgICByZXBseS0+bnVtX2ZkcywgZGV2LT5kYXRhLT5uYl9yeF9xdWV1 ZXMpOw0KPiA+ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCWZvciAo aSA9IDA7IGkgPCByZXBseS0+bnVtX2ZkczsgaSsrKQ0KPiA+ICsJCXByb2Nlc3NfcHJpdmF0ZS0+ cnhxX3hza19mZHNbaV0gPSByZXBseS0+ZmRzW2ldOw0KPiA+ICsNCj4gPiArCWZyZWUocmVwbHkp Ow0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qIFByaW1hcnkgcHJvY2Vz cyBzZW5kcyByeHEgZmRzIHRvIHNlY29uZGFyeS4gKi8NCj4gPiArc3RhdGljIGludA0KPiA+ICth ZnhkcF9tcF9zZW5kX2Zkcyhjb25zdCBzdHJ1Y3QgcnRlX21wX21zZyAqcmVxdWVzdCwgY29uc3Qg dm9pZA0KPiAqcGVlcikNCj4gPiArew0KPiA+ICsJc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXY7DQo+ ID4gKwlzdHJ1Y3QgcG1kX3Byb2Nlc3NfcHJpdmF0ZSAqcHJvY2Vzc19wcml2YXRlOw0KPiA+ICsJ c3RydWN0IHJ0ZV9tcF9tc2cgcmVwbHk7DQo+ID4gKwljb25zdCBzdHJ1Y3QgaXBjX2hkciAqcmVx dWVzdF9wYXJhbSA9DQo+ID4gKwkJKGNvbnN0IHN0cnVjdCBpcGNfaGRyICopcmVxdWVzdC0+cGFy YW07DQo+ID4gKwlzdHJ1Y3QgaXBjX2hkciAqcmVwbHlfcGFyYW0gPQ0KPiA+ICsJCShzdHJ1Y3Qg aXBjX2hkciAqKXJlcGx5LnBhcmFtOw0KPiA+ICsJY29uc3QgY2hhciAqcmVxdWVzdF9uYW1lID0g cmVxdWVzdF9wYXJhbS0+cG9ydF9uYW1lOw0KPiA+ICsJdWludDE2X3QgcG9ydF9pZDsNCj4gPiAr CWludCBpLCByZXQ7DQo+ID4gKw0KPiA+ICsJQUZfWERQX0xPRyhERUJVRywgIlJlY2VpdmVkIElQ QyByZXF1ZXN0IGZvciAlc1xuIiwNCj4gcmVxdWVzdF9uYW1lKTsNCj4gPiArDQo+ID4gKwkvKiBG aW5kIHRoZSByZXF1ZXN0ZWQgcG9ydCAqLw0KPiA+ICsJcmV0ID0gcnRlX2V0aF9kZXZfZ2V0X3Bv cnRfYnlfbmFtZShyZXF1ZXN0X25hbWUsICZwb3J0X2lkKTsNCj4gPiArCWlmIChyZXQpIHsNCj4g PiArCQlBRl9YRFBfTE9HKEVSUiwgIkZhaWxlZCB0byBnZXQgcG9ydCBpZCBmb3IgJXNcbiIsDQo+ IHJlcXVlc3RfbmFtZSk7DQo+ID4gKwkJcmV0dXJuIC0xOw0KPiA+ICsJfQ0KPiA+ICsJZGV2ID0g JnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsNCj4gDQo+IEJldHRlciB0byBub3QgYWNjZXNzIHRo ZSBnbG9iYWwgYXJyYXksIHRoZXJlIGlzIGEgbmV3IEFQSSBhbmQgYSBjbGVhbnVwDQo+IGFscmVh ZHkgZG9uZSBbMV0gaW4gb3RoZXIgUE1EcywgY2FuIHlvdSBwbGVhc2UgYXBwbHkgdGhlIHNhbWUg aGVyZS4NCj4gDQo+IFsxXQ0KPiBodHRwczovL3BhdGNoZXMuZHBkay5vcmcvcHJvamVjdC9kcGRr L3BhdGNoLzIwMjIwMjAzMDgyNDEyLjc5MDI4LTEtDQo+IGt1bWFyYXBhcmFtZXNoOTJAZ21haWwu Y29tLw0KDQpUaGFua3MgZm9yIHNoYXJpbmcsIEkgd2Fzbid0IGF3YXJlIG9mIHRoaXMgQVBJLiBJ J2xsIGFkZCBpdCBpbiB0aGUgdjMuDQoNCj4gDQo+ID4gKwlwcm9jZXNzX3ByaXZhdGUgPSBkZXYt PnByb2Nlc3NfcHJpdmF0ZTsNCj4gPiArDQo+ID4gKwkvKiBQb3B1bGF0ZSB0aGUgcmVwbHkgd2l0 aCB0aGUgeHNrIGZkIGZvciBlYWNoIHF1ZXVlICovDQo+ID4gKwlyZXBseS5udW1fZmRzID0gMDsN Cj4gPiArCWlmIChkZXYtPmRhdGEtPm5iX3J4X3F1ZXVlcyA+IFJURV9NUF9NQVhfRkRfTlVNKSB7 DQo+ID4gKwkJQUZfWERQX0xPRyhFUlIsICJOdW1iZXIgb2YgcnggcXVldWVzICglZCkgZXhjZWVk cyBtYXgNCj4gbnVtYmVyIG9mIGZkcyAoJWQpXG4iLA0KPiA+ICsJCQkgICBkZXYtPmRhdGEtPm5i X3J4X3F1ZXVlcywNCj4gUlRFX01QX01BWF9GRF9OVU0pOw0KPiA+ICsJCXJldHVybiAtRUlOVkFM Ow0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCWZvciAoaSA9IDA7IGkgPCBkZXYtPmRhdGEtPm5iX3J4 X3F1ZXVlczsgaSsrKQ0KPiA+ICsJCXJlcGx5LmZkc1tyZXBseS5udW1fZmRzKytdID0gcHJvY2Vz c19wcml2YXRlLQ0KPiA+cnhxX3hza19mZHNbaV07DQo+ID4gKw0KPiA+ICsJLyogU2VuZCB0aGUg cmVwbHkgKi8NCj4gPiArCXN0cmxjcHkocmVwbHkubmFtZSwgcmVxdWVzdC0+bmFtZSwgc2l6ZW9m KHJlcGx5Lm5hbWUpKTsNCj4gPiArCXN0cmxjcHkocmVwbHlfcGFyYW0tPnBvcnRfbmFtZSwgcmVx dWVzdF9uYW1lLA0KPiA+ICsJCXNpemVvZihyZXBseV9wYXJhbS0+cG9ydF9uYW1lKSk7DQo+ID4g KwlyZXBseS5sZW5fcGFyYW0gPSBzaXplb2YoKnJlcGx5X3BhcmFtKTsNCj4gPiArCUFGX1hEUF9M T0coREVCVUcsICJTZW5kaW5nIElQQyByZXBseSBmb3IgJXNcbiIsIHJlcGx5X3BhcmFtLQ0KPiA+ cG9ydF9uYW1lKTsNCj4gPiArCWlmIChydGVfbXBfcmVwbHkoJnJlcGx5LCBwZWVyKSA8IDApIHsN Cj4gPiArCQlBRl9YRFBfTE9HKEVSUiwgIkZhaWxlZCB0byByZXBseSB0byBJUEMgcmVxdWVzdFxu Iik7DQo+ID4gKwkJcmV0dXJuIC0xOw0KPiA+ICsJfQ0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gK30N Cj4gPiArDQo+ID4gKy8qIFNlY29uZGFyeSBwcm9jZXNzIHJ4IGZ1bmN0aW9uLiBSWCBpcyBkaXNh YmxlZCBiZWNhdXNlIHJpbmdzIGFyZSBTUFNDICovDQo+ID4gK3N0YXRpYyB1aW50MTZfdA0KPiA+ ICtldGhfYWZfeGRwX3J4X25vb3Aodm9pZCAqcXVldWUgX19ydGVfdW51c2VkLA0KPiA+ICsJCXN0 cnVjdCBydGVfbWJ1ZiAqKmJ1ZnMgX19ydGVfdW51c2VkLA0KPiA+ICsJCXVpbnQxNl90IG5iX3Br dHMgX19ydGVfdW51c2VkKQ0KPiA+ICt7DQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsN Cj4gPiArLyogU2Vjb25kYXJ5IHByb2Nlc3MgdHggZnVuY3Rpb24uIFRYIGlzIGRpc2FibGVkIGJl Y2F1c2UgcmluZ3MgYXJlIFNQU0MgKi8NCj4gPiArc3RhdGljIHVpbnQxNl90DQo+ID4gK2V0aF9h Zl94ZHBfdHhfbm9vcCh2b2lkICpxdWV1ZSBfX3J0ZV91bnVzZWQsDQo+ID4gKwkJCXN0cnVjdCBy dGVfbWJ1ZiAqKmJ1ZnMgX19ydGVfdW51c2VkLA0KPiA+ICsJCQl1aW50MTZfdCBuYl9wa3RzIF9f cnRlX3VudXNlZCkNCj4gPiArew0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+IA0K PiBOb3cgdGhlcmUgYXJlIG11bHRpcGxlIFBNRHMgdXNpbmcgbm9vcC9kdW1teSBSeC9UeCBidXJz dCBmdW5jdGlvbnMsDQo+IHdoYXQgZG8geW91IHRoaW5rIHRvIGFkZCBzdGF0aWMgaW5saW5lIGZ1 bmN0aW9ucyBpbiB0aGUgJ2V0aGRldl9kcml2ZXIuaCcNCj4gKGFuZCBjbGVhbiBleGlzdGluZyBk cml2ZXJzIHRvIHVzZSBpdCkgd2l0aCBhIHNlcGFyYXRlIHBhdGNoLCBsYXRlciBpbiB0aGlzDQo+ IHBhdGNoIHVzZSB0aG9zZSBmdW5jdGlvbnM/DQoNCisxDQoNCj4gDQo+IA0KPiA+ICAgc3RhdGlj IGludA0KPiA+ICAgcnRlX3BtZF9hZl94ZHBfcHJvYmUoc3RydWN0IHJ0ZV92ZGV2X2RldmljZSAq ZGV2KQ0KPiA+ICAgew0KPiA+IEBAIC0xNzg5LDE5ICsxOTM2LDM5IEBAIHJ0ZV9wbWRfYWZfeGRw X3Byb2JlKHN0cnVjdA0KPiBydGVfdmRldl9kZXZpY2UgKmRldikNCj4gPiAgIAlpbnQgeHNrX3F1 ZXVlX2NudCA9IEVUSF9BRl9YRFBfREZMVF9RVUVVRV9DT1VOVDsNCj4gPiAgIAlpbnQgc2hhcmVk X3VtZW0gPSAwOw0KPiA+ICAgCWNoYXIgcHJvZ19wYXRoW1BBVEhfTUFYXSA9IHsnXDAnfTsNCj4g PiAtCWludCBidXN5X2J1ZGdldCA9IC0xOw0KPiA+ICsJaW50IGJ1c3lfYnVkZ2V0ID0gLTEsIHJl dDsNCj4gPiAgIAlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYgPSBOVUxMOw0KPiA+IC0JY29u c3QgY2hhciAqbmFtZTsNCj4gPiArCWNvbnN0IGNoYXIgKm5hbWUgPSBydGVfdmRldl9kZXZpY2Vf bmFtZShkZXYpOw0KPiA+DQo+ID4gLQlBRl9YRFBfTE9HKElORk8sICJJbml0aWFsaXppbmcgcG1k X2FmX3hkcCBmb3IgJXNcbiIsDQo+ID4gLQkJcnRlX3ZkZXZfZGV2aWNlX25hbWUoZGV2KSk7DQo+ ID4gKwlBRl9YRFBfTE9HKElORk8sICJJbml0aWFsaXppbmcgcG1kX2FmX3hkcCBmb3IgJXNcbiIs IG5hbWUpOw0KPiA+DQo+ID4gLQluYW1lID0gcnRlX3ZkZXZfZGV2aWNlX25hbWUoZGV2KTsNCj4g PiAgIAlpZiAocnRlX2VhbF9wcm9jZXNzX3R5cGUoKSA9PSBSVEVfUFJPQ19TRUNPTkRBUlkpIHsN Cj4gPiAtCQlBRl9YRFBfTE9HKEVSUiwgIkZhaWxlZCB0byBwcm9iZSAlcy4gIg0KPiA+IC0JCQkJ IkFGX1hEUCBQTUQgZG9lcyBub3Qgc3VwcG9ydCBzZWNvbmRhcnkNCj4gcHJvY2Vzc2VzLlxuIiwN Cj4gPiAtCQkJCW5hbWUpOw0KPiA+IC0JCXJldHVybiAtRU5PVFNVUDsNCj4gPiArCQlldGhfZGV2 ID0gcnRlX2V0aF9kZXZfYXR0YWNoX3NlY29uZGFyeShuYW1lKTsNCj4gPiArCQlpZiAoZXRoX2Rl diA9PSBOVUxMKSB7DQo+ID4gKwkJCUFGX1hEUF9MT0coRVJSLCAiRmFpbGVkIHRvIHByb2JlICVz XG4iLCBuYW1lKTsNCj4gPiArCQkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gKwkJfQ0KPiA+ICsJCWV0 aF9kZXYtPmRldl9vcHMgPSAmb3BzOw0KPiA+ICsJCWV0aF9kZXYtPmRldmljZSA9ICZkZXYtPmRl dmljZTsNCj4gPiArCQlldGhfZGV2LT5yeF9wa3RfYnVyc3QgPSBldGhfYWZfeGRwX3J4X25vb3A7 DQo+ID4gKwkJZXRoX2Rldi0+dHhfcGt0X2J1cnN0ID0gZXRoX2FmX3hkcF90eF9ub29wOw0KPiA+ ICsJCWV0aF9kZXYtPnByb2Nlc3NfcHJpdmF0ZSA9IChzdHJ1Y3QgcG1kX3Byb2Nlc3NfcHJpdmF0 ZSAqKQ0KPiA+ICsJCQlydGVfem1hbGxvY19zb2NrZXQobmFtZSwNCj4gPiArCQkJCQkgICBzaXpl b2Yoc3RydWN0DQo+IHBtZF9wcm9jZXNzX3ByaXZhdGUpLA0KPiA+ICsJCQkJCSAgIFJURV9DQUNI RV9MSU5FX1NJWkUsDQo+ID4gKwkJCQkJICAgZXRoX2Rldi0+ZGV2aWNlLT5udW1hX25vZGUpOw0K PiA+ICsJCWlmIChldGhfZGV2LT5wcm9jZXNzX3ByaXZhdGUgPT0gTlVMTCkgew0KPiA+ICsJCQlB Rl9YRFBfTE9HKEVSUiwNCj4gPiArCQkJCSJGYWlsZWQgdG8gYWxsb2MgbWVtb3J5IGZvciBwcm9j ZXNzDQo+IHByaXZhdGVcbiIpOw0KPiA+ICsJCQlyZXR1cm4gLUVOT01FTTsNCj4gPiArCQl9DQo+ ID4gKw0KPiA+ICsJCS8qIE9idGFpbiB0aGUgeHNrIGZkcyBmcm9tIHRoZSBwcmltYXJ5IHByb2Nl c3MuICovDQo+ID4gKwkJaWYgKGFmeGRwX21wX3JlcXVlc3RfZmRzKG5hbWUsIGV0aF9kZXYpKQ0K PiA+ICsJCQlyZXR1cm4gLTE7DQo+ID4gKw0KPiA+ICsJCXJ0ZV9ldGhfZGV2X3Byb2JpbmdfZmlu aXNoKGV0aF9kZXYpOw0KPiA+ICsJCXJldHVybiAwOw0KPiA+ICAgCX0NCj4gPg0KPiA+ICAgCWt2 bGlzdCA9IHJ0ZV9rdmFyZ3NfcGFyc2UocnRlX3ZkZXZfZGV2aWNlX2FyZ3MoZGV2KSwNCj4gdmFs aWRfYXJndW1lbnRzKTsNCj4gPiBAQCAtMTgzNiw2ICsyMDAzLDE3IEBAIHJ0ZV9wbWRfYWZfeGRw X3Byb2JlKHN0cnVjdCBydGVfdmRldl9kZXZpY2UNCj4gKmRldikNCj4gPiAgIAkJcmV0dXJuIC0x Ow0KPiA+ICAgCX0NCj4gPg0KPiA+ICsJLyogUmVnaXN0ZXIgSVBDIGNhbGxiYWNrIHdoaWNoIHNo YXJlcyB4c2sgZmRzIGZyb20gcHJpbWFyeSB0bw0KPiBzZWNvbmRhcnkgKi8NCj4gPiArCWlmICgh YWZ4ZHBfZGV2X2NvdW50KSB7DQo+ID4gKwkJcmV0ID0gcnRlX21wX2FjdGlvbl9yZWdpc3RlcihF VEhfQUZfWERQX01QX0tFWSwNCj4gYWZ4ZHBfbXBfc2VuZF9mZHMpOw0KPiA+ICsJCWlmIChyZXQg PCAwKSB7DQo+ID4gKwkJCUFGX1hEUF9MT0coRVJSLCAiJXM6IEZhaWxlZCB0byByZWdpc3RlciBJ UEMNCj4gY2FsbGJhY2s6ICVzIiwNCj4gPiArCQkJCSAgIG5hbWUsIHN0cmVycm9yKHJ0ZV9lcnJu bykpOw0KPiA+ICsJCQlyZXR1cm4gLTE7DQo+ID4gKwkJfQ0KPiA+ICsJfQ0KPiA+ICsJYWZ4ZHBf ZGV2X2NvdW50Kys7DQo+ID4gKw0KPiA+ICAgCXJ0ZV9ldGhfZGV2X3Byb2JpbmdfZmluaXNoKGV0 aF9kZXYpOw0KPiA+DQo+ID4gICAJcmV0dXJuIDA7DQo+ID4gQEAgLTE4NTgsNiArMjAzNiwxMCBA QCBydGVfcG1kX2FmX3hkcF9yZW1vdmUoc3RydWN0DQo+IHJ0ZV92ZGV2X2RldmljZSAqZGV2KQ0K PiA+ICAgCQlyZXR1cm4gMDsNCj4gPg0KPiA+ICAgCWV0aF9kZXZfY2xvc2UoZXRoX2Rldik7DQo+ ID4gKwlydGVfZnJlZShldGhfZGV2LT5wcm9jZXNzX3ByaXZhdGUpOw0KPiA+ICsJaWYgKGFmeGRw X2Rldl9jb3VudCA9PSAxKQ0KPiA+ICsJCXJ0ZV9tcF9hY3Rpb25fdW5yZWdpc3RlcihFVEhfQUZf WERQX01QX0tFWSk7DQo+ID4gKwlhZnhkcF9kZXZfY291bnQtLTsNCj4gPiAgIAlydGVfZXRoX2Rl dl9yZWxlYXNlX3BvcnQoZXRoX2Rldik7DQo+ID4NCj4gPg0KDQo=