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 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 275F2EC874B for ; Thu, 7 Sep 2023 18:56:44 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 91C6110E11A; Thu, 7 Sep 2023 18:56:44 +0000 (UTC) Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id CE7D810E0AA for ; Thu, 7 Sep 2023 18:56:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1694113002; x=1725649002; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=wnB1VVYAaL3OTU796uAhC7Y8eq5CqpJoV0w97dzz5S8=; b=WooA2DO8X/+HQc1sxBZX5D7mJhm0lORyUAF4OU+aHutnFh7FjhKJDxfT OSNSlAjn6/j/hTmxvJaSGGt/sLCwZaKPZtobttgtAapYTE/QslxtppFkL V7yvKPogpk/kB2S9VyHtXKlBwRdZAX1bsxpJiiR9Dft8icLm9yEyoChSw 1BoZNb9YVU7zF7mbImCILg3gX7PzG3dQQ/IJYr17HyqL9DqsxKQU3zo1m ad/Fk73FfXPDc/YjmQglyo69FNsCjoHguErsZHD5CzVhjzywaHd9Y3hQk 9qZ2+TrED4bvnCtCy6uqlODvJ1U282toOsuqIKRP+Elr25nopw1En9HlA Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10826"; a="463834169" X-IronPort-AV: E=Sophos;i="6.02,235,1688454000"; d="scan'208";a="463834169" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Sep 2023 11:56:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10826"; a="865774989" X-IronPort-AV: E=Sophos;i="6.02,235,1688454000"; d="scan'208";a="865774989" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga004.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 07 Sep 2023 11:56:42 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Thu, 7 Sep 2023 11:56:40 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Thu, 7 Sep 2023 11:56:40 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Thu, 7 Sep 2023 11:56:40 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.176) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.27; Thu, 7 Sep 2023 11:56:38 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZYPvSodw9EH05d6k3a/8xu42KMPBPTI6LC3PmALBPc2IVhS1wAfNJwjXYYBeBTodJjBLCiW3JP/UTZZtlIxGIrUvfcYkFzIlM8V40i2M3xYGB+hwwFGPuwUngfOwbBCEzNYCtMnMhNW8PmXlg6uSXPtrVm6sTKJl//bMrrpJYeVwYnjPIi0Y1QjyHb7m1r+kpgqU9LV0JH0XWVA6HkODINYv6J2iVYBxmHilM9sK7Kja/ODH9QTaElIn6B7Ef7lQJpY8dpb7RoBf8h8ff3jSXAxTdWFTLv7jtHwzX5OFrz0l+/PHz9/39gvnbmn7N5LPHsS/bT/jnxTRLW4bQMLrTg== 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=wnB1VVYAaL3OTU796uAhC7Y8eq5CqpJoV0w97dzz5S8=; b=Au33JdCdXv0wBu5AslxmPDxzi5NS/SkSbkKlvkuwhgd3Fs9F4SPMUQQq1fJOMBAksv4DXm7cDKSP4oMMpard+Fg34ArjGqbRWECBkKYoFzSeuQE8FHXfRNZsq2p18t2DgUb8fLNQx1sTLbfDQzg1/a+Tgm9Inehj3be9BYb+bdtD70WkEI9X5wjrCKn49PqRImfzK/+WwXxUL04jyI3x2L5emPuTCDKde3lcZ2mbozpT4a6wXWefDmH7f9ctNeumW5rHArl98QMO5nnYEJAZruVJB+zINUUe0ErwCQkF0JW0hhRDfrcwPN0/aaN5Bp23AQ9smWPZR7ujEwOZBdCgWQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM4PR11MB8179.namprd11.prod.outlook.com (2603:10b6:8:18e::22) by CH3PR11MB8706.namprd11.prod.outlook.com (2603:10b6:610:1d1::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.36; Thu, 7 Sep 2023 18:56:31 +0000 Received: from DM4PR11MB8179.namprd11.prod.outlook.com ([fe80::8e21:274a:64d1:5de]) by DM4PR11MB8179.namprd11.prod.outlook.com ([fe80::8e21:274a:64d1:5de%4]) with mapi id 15.20.6745.034; Thu, 7 Sep 2023 18:56:30 +0000 From: "Souza, Jose" To: "intel-xe@lists.freedesktop.org" , "Auld, Matthew" Thread-Topic: [RFC 5/5] drm/xe/uapi: support pat_index selection with vm_bind Thread-Index: AQHZ2pYR0AWHnEV100SnrRZuaM23YrAPxNaA Date: Thu, 7 Sep 2023 18:56:30 +0000 Message-ID: <43819243fdde89dcccd93350c154bb738de697eb.camel@intel.com> References: <20230829162840.73444-7-matthew.auld@intel.com> <20230829162840.73444-12-matthew.auld@intel.com> In-Reply-To: <20230829162840.73444-12-matthew.auld@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR11MB8179:EE_|CH3PR11MB8706:EE_ x-ms-office365-filtering-correlation-id: 576f3016-15e5-4521-5253-08dbafd425d9 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: WlCoGDW23YRIcsy2U5Z2/F/bskWROO6ewI5kg9ShJ6rVr6TIwzvnfFI0kUFToULa5f762mheG97RBMNG7OBm2pEYJT5kQRjvuUBNVINKqtWeOs3W+OFqD3O3Tq/R/PrjzAtJht9LNpSsK4chxOeRGd6ps1fuhOgZdAszfpzvr7OQTV8ZkRtmr7ho8V2XGgILtoh13MjdhThZ0WsulTmi1hPFO6SnVlUh7AvVPLpnqtMaNMiTgNGKxmBhVEcyx9kP228gInsV+nGWxxkmJ03fnJ6+JUuCxD3Be2et0LELGmjcbZKbeZRDC00lAEp247qFD0njd/LThumh89GgmkOVrm8t16pIrGx6jDQ7m/FuSCSF5i2zXhp25jxKx2lXGqac9Jd7Bo5NsqEevoXj4lUZrMohLycstuBldZ02aTFt84SX7zm51+GrVGXagEseKw8kKkI1XSkmzSyga+2z6tk5yyQxVy4w+obGCjcHF2XEBrAf04vKHNj5gE0v7pXkxQOm5Xn/2Kg+bXEWlNj8S3AT1571jniSWw59Y68onH4feahTNu9zxK3OGodNEkNVVVDaVDY/TGY1qEePWV2aL8vhZH5l4mNC+EpugCiycjq8/uU= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB8179.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(346002)(366004)(39860400002)(376002)(396003)(136003)(186009)(1800799009)(451199024)(122000001)(82960400001)(38070700005)(38100700002)(36756003)(86362001)(478600001)(2906002)(6512007)(110136005)(71200400001)(76116006)(6506007)(6486002)(91956017)(8676002)(8936002)(5660300002)(66446008)(66556008)(66476007)(316002)(6636002)(64756008)(30864003)(66946007)(41300700001)(66574015)(83380400001)(26005)(2616005)(559001)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TnJQUmJSOG5FOThKM2ROdHlEQVRnQ2UwWmp5OGNyWHdWMTlzM2dUdHVLZk95?= =?utf-8?B?SVllZlNHL01LL3VyQkJzamFRajVHdEt5ZHpPdnIxRFlDZjZ6N1FoTUNEbm52?= =?utf-8?B?ZlVpYnp4aU5jSUtjRzFlelJ3VnlnZklidlVqL1o1cXlKRFUzUE11UlBURzBv?= =?utf-8?B?N0NhcUhHNWxXQ3JhM3AweE9ySkVDNkFEcUZ6UHdBdDZkWXhYa2FyN0JReld4?= =?utf-8?B?RTVwVmpMZmlIYWRjR2hyei9tbmVhUVlJaU1iUWZkT0c2am1CT25wRWxFVVBT?= =?utf-8?B?aTBzS0VDbXdMejM0TzE2UGFtdTE2K2taVkozVllzeHpmL1h3TUI2VUhzbWc5?= =?utf-8?B?N3lHODFoQVZpd0lpcFVkRGhQVVRrNW5BTWRId2RzWWtibS9Fb3A0MHR2b0VL?= =?utf-8?B?cDBSNU53MjdtZ1ZpWnBONHVZYk01cG0wa2tLTzRJcXUxQkEreUNkdVd4akw1?= =?utf-8?B?ckloZFVaSFdicXNPRHNVTkdPUlEzVzFFMzRSYmxObmYwSFdWSDNOZkJ3K0t3?= =?utf-8?B?RjU0Nms3VzI2OElOZ3BHaVlaTzBZUmZGQ2REQTJoRW9BOTJuZndDT1dOak5I?= =?utf-8?B?RFdVZEt6QkJId1MzOTliU3BNeE9DTy9uZWdmVG91VlplcFc4Q2xDcEVDVk9M?= =?utf-8?B?cWgwVEI0ZDd3SHYxaTJLd0lzOTZFTXV5M1NGdEdCMEVCb2ZBMlVlbjVuYlVw?= =?utf-8?B?WnhmRVFMMTh4U29OTUdTYk5ZUFhQend5ajk3eEtxTnE3NW5wVzZiazE1b0lH?= =?utf-8?B?eWo5VkNpRFk3YkQxYWdaaUU2RFFsbFZkUW5Hb0YzSDhFejJxWDhoSWdtby9W?= =?utf-8?B?ZGZpRVN4U05MV1hISGMzZXpUK1lHZmdNMjVLM1ZpOWsxQWVmQ3hkUllidXF2?= =?utf-8?B?L3R5Ymh3UU1YaDYvd3ZyNDZ2QVB3SUtuRTlMTzh6NTc1QnJvd1VLKzdyaHVk?= =?utf-8?B?em5CVjY1bzVJdWYvNDhpdXZQeEQ0NnNkZm9HV2NLWmNsYnFaeXNOQ2lqTndt?= =?utf-8?B?OXhkQ1p0ZHQvOHJLdFJPLzBNMlJoU2Z5R3RFdGdIRVcvT21FWGRlcWNsSmRI?= =?utf-8?B?ZWlkWTVDR0FuekFTeHF1aXRueGVOZW1BMWJzNXBOSjJ1Q3pjLzJIeW02ampR?= =?utf-8?B?Mm1SMlpyZ3ZJa3h1TFYyaFhGYmgxRlRoWXk3QUZ5Q3plZFgwUEVWRlF5MCti?= =?utf-8?B?YzU2TFNWYmt3ZnlzNTQyeFlKMjNXOFRyUEU4UGptRWxzWGVYZXBTS2NKdjBH?= =?utf-8?B?NWRPNWtteDc5eityQjBUTTVnblkvdUc0cDd1OTlmNWFxRFNTMlRJRC9qcE5j?= =?utf-8?B?MVJmOWc5TXlackhsdGRwY29zaUd0YXY4MmQ5eC85Nm9aSkNUNUNYUVRwZnZF?= =?utf-8?B?bzRUcDJJRHdaM2Z1VlZhQUsyc3U2S1FES3dack8xNDJ5bW00aGV5SVJpaHJs?= =?utf-8?B?aDhXejUwYyticm0xN0lpRmpVdjhpZVRGTG5KeEJQSjJja3JreXhIb2dSY29r?= =?utf-8?B?aTI5UGErdytvRXFjZjVpOG9weUlCL0o5K2F1T05EQkFqRmt3ZVdyMDhuSnR5?= =?utf-8?B?czNPR0t5eEExWjgzUlpKc1krMW5TSUZBci9uK0RYZEpJVzljaW5JR01TZTBB?= =?utf-8?B?bm5qRFgzSFBNMldGMjFweGtlclZFLzhYRjNqai9rL1YzTnd5Mmp1Z1hBYUFQ?= =?utf-8?B?V1FVNVV3d1I0OGovVERTRDVkRUg5ZFc2SWkrZmJMT2dIMWRjS1ZDS3FnNDk2?= =?utf-8?B?MWE5anQvRGxOZTdSczR4TDlFYzk2TXpCdjBaU0JMUTk0ZHI5QlhwekN6YTZi?= =?utf-8?B?RFdSd3AyL3JmVm9xUUpiVTUwMmtmSURZOTFSSnlCaGtoRksrdC92T0haM3o0?= =?utf-8?B?MGx2QkNZUmpZOEhPZkxSWXRJanpLVW42V0dlTnJLbzJwL20yZ2xPRHZkNXRn?= =?utf-8?B?RDZ1TVN2azlIRFBNdHdCQ2tuV2Q0WTc0ZE9JMGllOVNXN3BlVkl5RkhJMmZB?= =?utf-8?B?RWZEcXJHU1RyVlVFdGU5dGtqYXR5M2wxWnZXK1E2Q1djTU5SajlrMU4xbUdr?= =?utf-8?B?cFBGSGc1NnZZTGh1YlhJRWJTdlpld2JEeitEOFpHbHMrMWxJZUpUNEhNaFRl?= =?utf-8?B?QWZ0VDdoUlRWdGUvNHNlYmg4M3lWUE1KZ0RXV2NjM2dkd1dJMFhFN3NSZitY?= =?utf-8?B?dXc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <6A31ECF215B9B44B8D38AB445EC578E4@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB8179.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 576f3016-15e5-4521-5253-08dbafd425d9 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Sep 2023 18:56:30.5924 (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: 6UDXk5L8d31yq1zQ6tCNxCEcdaqRvDqa8925Y71RZy3kk6TUN0RRUvK8zhU11fBTSIM1kpMxK17OF93vSkgWYg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR11MB8706 X-OriginatorOrg: intel.com Subject: Re: [Intel-xe] [RFC 5/5] drm/xe/uapi: support pat_index selection with vm_bind X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" T24gVHVlLCAyMDIzLTA4LTI5IGF0IDE3OjI4ICswMTAwLCBNYXR0aGV3IEF1bGQgd3JvdGU6DQo+ IEFsbG93IHVzZXJzcGFjZSB0byBkaXJlY3RseSBjb250cm9sIHRoZSBwYXRfaW5kZXggZm9yIGEg Z2l2ZW4gdm0NCj4gYmluZGluZy4gVGhpcyBzaG91bGQgYWxsb3cgZGlyZWN0bHkgY29udHJvbGxp bmcgdGhlIGNvaGVyZW5jeSwgY2FjaGluZw0KPiBhbmQgcG90ZW50aWFsbHkgb3RoZXIgc3R1ZmYg aW4gdGhlIGZ1dHVyZSBmb3IgdGhlIHBwR1RUIGJpbmRpbmcuDQo+IA0KPiBUaGUgZXhhY3QgbWVh bmluZyBiZWhpbmQgdGhlIHBhdF9pbmRleCBpcyB2ZXJ5IHBsYXRmb3JtIHNwZWNpZmljIChzZWUN Cj4gQlNwZWMgb3IgUFJNcykgYnV0IGVmZmVjdGl2ZWx5IG1hcHMgdG8gc29tZSBwcmVkZWZpbmVk IG1lbW9yeQ0KPiBhdHRyaWJ1dGVzLiBGcm9tIHRoZSBLTUQgcG92IHdlIG9ubHkgY2FyZSBhYm91 dCB0aGUgY29oZXJlbmN5IHRoYXQgaXMNCj4gcHJvdmlkZWQgYnkgdGhlIHBhdF9pbmRleCwgd2hp Y2ggZmFsbHMgaW50byBlaXRoZXIgTk9ORSwgMVdBWSBvciAyV0FZLg0KPiBUaGUgdm1fYmluZCBj b2hlcmVuY3kgbW9kZSBmb3IgdGhlIGdpdmVuIHBhdF9pbmRleCBuZWVkcyB0byBtYXRjaCB0aGUN Cj4gZ2l2ZW4gY29oX21vZGUgdGhhdCB3YXMgc2V0IGF0IG9iamVjdCBjcmVhdGlvbi4gRm9yIHBs YXRmb3JtcyB0aGF0IGxhY2sNCj4gdGhlIGV4cGxpY2l0IGNvaGVyZW5jeSBtb2RlLCB3ZSB0cmVh dCBVQy9XVC9XQyBhcyBOT05FIGFuZCBXQiBhcyAyV0FZLg0KPiANCj4gRm9yIHVzZXJwdHIgbWFw cGluZ3Mgd2UgbGFjayBhIGNvcnJlc3BvbmRpbmcgZ2VtIG9iamVjdCwgc28gdGhlIGV4cGVjdGVk DQo+IGNvaGVyZW5jeSBtb2RlIGlzIGluc3RlYWQgaW1wbGljaXQgYW5kIG11c3QgZmFsbCBpbnRv IGVpdGhlciAxV0FZIG9yDQo+IDJXQVkuIFRyeWluZyB0byB1c2UgTk9ORSB3aWxsIGJlIHJlamVj dGVkIGJ5IHRoZSBrZXJuZWwuIEZvciBpbXBvcnRlZA0KPiBkbWEtYnVmIChmcm9tIGEgZGlmZmVy ZW50IGRldmljZSkgdGhlIGNvaGVyZW5jeSBtb2RlIGlzIGFsc28gaW1wbGljaXQNCj4gYW5kIG11 c3QgYWxzbyBiZSBlaXRoZXIgMVdBWSBvciAyV0FZLg0KPiANCj4gQXMgcGFydCBvZiBhZGRpbmcg cGF0X2luZGV4IHN1cHBvcnQgd2l0aCB2bV9iaW5kIHdlIGFsc28gbmVlZCBzdG9wIHVzaW5nDQo+ IHhlX2NhY2hlX2xldmVsIGFuZCBpbnN0ZWFkIHVzZSB0aGUgcGF0X2luZGV4IGluIHZhcmlvdXMg cGxhY2VzLiBXZSBzdGlsbA0KPiBtYWtlIHVzZSBvZiB4ZV9jYWNoZV9sZXZlbCwgYnV0IG9ubHkg YXMgYSBjb252ZW5pZW5jZSBmb3Iga2VybmVsDQo+IGludGVybmFsIG9iamVjdHNpIChpbnRlcm5h bGx5IGl0IG1hcHMgdG8gc29tZSByZWFzb25hYmxlIHBhdF9pbmRleCkuIEZvcg0KPiBub3cgdGhp cyBpcyBqdXN0IGEgMToxIGNvbnZlcnNpb24gb2YgdGhlIGV4aXN0aW5nIGNvZGUsIGhvd2V2ZXIg Zm9yDQo+IHBsYXRmb3JtcyBsaWtlIE1UTCsgd2UgbWlnaHQgbmVlZCB0byBnaXZlIG1vcmUgY29u dHJvbCB0aHJvdWdoIGJvX2NyZWF0ZQ0KPiBvciBzdG9wIHVzaW5nIFdCIG9uIHRoZSBDUFUgc2lk ZSBpZiB3ZSBuZWVkIENQVSBhY2Nlc3MuDQoNCnhlX3R0bV90dF9jcmVhdGUoKSBjYWNoaW5nIHNo b3VsZCBub3QgYWxzbyB0YWtlIGludG8gY29uc2lkZXJhdGlvbiB0aGUgUEFUIGluZGV4Pw0KDQo+ IA0KPiBCc3BlYzogNDUxMDEsIDQ0MjM1ICN4ZQ0KPiBCc3BlYzogNzA1NTIsIDcxNTgyLCA1OTQw MCAjeGUyDQo+IFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVs LmNvbT4NCj4gQ2M6IFBhbGxhdmkgTWlzaHJhIDxwYWxsYXZpLm1pc2hyYUBpbnRlbC5jb20+DQo+ IENjOiBUaG9tYXMgSGVsbHN0csO2bSA8dGhvbWFzLmhlbGxzdHJvbUBsaW51eC5pbnRlbC5jb20+ DQo+IENjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+ DQo+IENjOiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4NCj4gQ2M6 IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+DQo+IENjOiBKb3PDqSBSb2Jl cnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4NCj4gQ2M6IEZpbGlwIEhhenVic2tp IDxmaWxpcC5oYXp1YnNraUBpbnRlbC5jb20+DQo+IENjOiBDYXJsIFpoYW5nIDxjYXJsLnpoYW5n QGludGVsLmNvbT4NCj4gQ2M6IEVmZmllIFl1IDxlZmZpZS55dUBpbnRlbC5jb20+DQo+IC0tLQ0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3R0LmggICB8ICAyICstDQo+ICBkcml2 ZXJzL2dwdS9kcm0veGUvdGVzdHMveGVfbWlncmF0ZS5jIHwgIDIgKy0NCj4gIGRyaXZlcnMvZ3B1 L2RybS94ZS94ZV9nZ3R0LmMgICAgICAgICAgfCAgNyArKy0NCj4gIGRyaXZlcnMvZ3B1L2RybS94 ZS94ZV9nZ3R0X3R5cGVzLmggICAgfCAgMiArLQ0KPiAgZHJpdmVycy9ncHUvZHJtL3hlL3hlX21p Z3JhdGUuYyAgICAgICB8IDE0ICsrLS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0veGUveGVfcHQuYyAg ICAgICAgICAgIHwgMzIgKysrKystLS0tLS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0veGUveGVfcHQu aCAgICAgICAgICAgIHwgIDYgKy0tDQo+ICBkcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uYyAgICAg ICAgICAgIHwgNzMgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tDQo+ICBkcml2ZXJzL2dwdS9k cm0veGUveGVfdm1fdHlwZXMuaCAgICAgIHwgMTMgKysrLS0NCj4gIGluY2x1ZGUvdWFwaS9kcm0v eGVfZHJtLmggICAgICAgICAgICAgfCA0MSArKysrKysrKysrKysrKy0NCj4gIDEwIGZpbGVzIGNo YW5nZWQsIDEzNCBpbnNlcnRpb25zKCspLCA1OCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndHQuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX2d0dC5oDQo+IGluZGV4IDRkNjI5NmNkYmNmZC4uYmI0YzE4MjA0OGMz IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndHQuaA0KPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndHQuaA0KPiBAQCAtMzAyLDcgKzMw Miw3IEBAIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2Ugew0KPiAgCQkoKmFsbG9jX3NjcmF0Y2hf ZG1hKShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwgaW50IHN6KTsNCj4gIA0KPiAgCXU2 NCAoKnB0ZV9lbmNvZGUpKGRtYV9hZGRyX3QgYWRkciwNCj4gLQkJCSAgdW5zaWduZWQgaW50IHBh dF9pbmRleCwNCj4gKwkJCSAgdTMyIHBhdF9pbmRleCwNCj4gIAkJCSAgdTMyIGZsYWdzKTsgLyog Q3JlYXRlIGEgdmFsaWQgUFRFICovDQo+ICAjZGVmaW5lIFBURV9SRUFEX09OTFkJQklUKDApDQo+ ICAjZGVmaW5lIFBURV9MTQkJQklUKDEpDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v eGUvdGVzdHMveGVfbWlncmF0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL3hlL3Rlc3RzL3hlX21pZ3Jh dGUuYw0KPiBpbmRleCA1YzhkNWU3OGQ5YmMuLjdhMTI4ZmQyMGEyOSAxMDA2NDQNCj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3hlL3Rlc3RzL3hlX21pZ3JhdGUuYw0KPiArKysgYi9kcml2ZXJzL2dw dS9kcm0veGUvdGVzdHMveGVfbWlncmF0ZS5jDQo+IEBAIC0zMDEsNyArMzAxLDcgQEAgc3RhdGlj IHZvaWQgeGVfbWlncmF0ZV9zYW5pdHlfdGVzdChzdHJ1Y3QgeGVfbWlncmF0ZSAqbSwgc3RydWN0 IGt1bml0ICp0ZXN0KQ0KPiAgCS8qIEZpcnN0IHBhcnQgb2YgdGhlIHRlc3QsIGFyZSB3ZSB1cGRh dGluZyBvdXIgcGFnZXRhYmxlIGJvIHdpdGggYSBuZXcgZW50cnk/ICovDQo+ICAJeGVfbWFwX3dy KHhlLCAmYm8tPnZtYXAsIFhFX1BBR0VfU0laRSAqIChOVU1fS0VSTkVMX1BERSAtIDEpLCB1NjQs DQo+ICAJCSAgMHhkZWFkZGVhZGJlZWZiZWVmKTsNCj4gLQlleHBlY3RlZCA9IHhlX3B0ZV9lbmNv ZGUocHQsIDAsIFhFX0NBQ0hFX1dCLCAwKTsNCj4gKwlleHBlY3RlZCA9IHhlX3B0ZV9lbmNvZGUo cHQsIDAsIHhlX3BhdF9nZXRfaW5kZXgoeGUsIFhFX0NBQ0hFX1dCKSwgMCk7DQo+ICAJaWYgKG0t PnEtPnZtLT5mbGFncyAmIFhFX1ZNX0ZMQUdfNjRLKQ0KPiAgCQlleHBlY3RlZCB8PSBYRV9QVEVf UFM2NDsNCj4gIAlpZiAoeGVfYm9faXNfdnJhbShwdCkpDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0veGUveGVfZ2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2dndHQuYw0KPiBp bmRleCAyMDlmYTA1M2Q5ZmIuLjQxMzRjMjYxNTBhNSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3hlL3hlX2dndHQuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfZ2d0dC5j DQo+IEBAIC00MSw3ICs0MSw4IEBAIHU2NCB4ZV9nZ3R0X3B0ZV9lbmNvZGUoc3RydWN0IHhlX2Jv ICpibywgdTY0IGJvX29mZnNldCkNCj4gIAkJcHRlIHw9IFhFX0dHVFRfUFRFX0RNOw0KPiAgDQo+ ICAJaWYgKChnZ3R0LT5wYXRfZW5jb2RlKS5wdGVfZW5jb2RlKQ0KPiAtCQlwdGUgPSAoZ2d0dC0+ cGF0X2VuY29kZSkucHRlX2VuY29kZSh4ZSwgcHRlLCBYRV9DQUNIRV9XQl8xX1dBWSk7DQo+ICsJ CXB0ZSA9IChnZ3R0LT5wYXRfZW5jb2RlKS5wdGVfZW5jb2RlKHhlLCBwdGUsDQo+ICsJCQkJCQkg ICAgeGVfcGF0X2dldF9pbmRleCh4ZSwgWEVfQ0FDSEVfV0JfMV9XQVkpKTsNCj4gIA0KPiAgCXJl dHVybiBwdGU7DQo+ICB9DQo+IEBAIC0xMDIsMTAgKzEwMyw4IEBAIHN0YXRpYyB2b2lkIHByaW1l bG9ja2RlcChzdHJ1Y3QgeGVfZ2d0dCAqZ2d0dCkNCj4gIH0NCj4gIA0KPiAgc3RhdGljIHU2NCB4 ZWxwZ19nZ3R0X3B0ZV9lbmNvZGVfcGF0KHN0cnVjdCB4ZV9kZXZpY2UgKnhlLCB1NjQgcHRlX3Bh dCwNCj4gLQkJCQkJCWVudW0geGVfY2FjaGVfbGV2ZWwgY2FjaGUpDQo+ICsJCQkJICAgICB1MzIg cGF0X2luZGV4KQ0KPiAgew0KPiAtCXUzMiBwYXRfaW5kZXggPSB4ZV9wYXRfZ2V0X2luZGV4KHhl LCBjYWNoZSk7DQo+IC0NCj4gIAlwdGVfcGF0ICY9IH4oWEVMUEdfR0dUVF9QVEVfUEFUX01BU0sp Ow0KPiAgDQo+ICAJaWYgKHBhdF9pbmRleCAmIEJJVCgwKSkNCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS94ZS94ZV9nZ3R0X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfZ2d0 dF90eXBlcy5oDQo+IGluZGV4IDdlNTVmYWMxYThhOS4uMGJjNDBjYjA3MmUzIDEwMDY0NA0KPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfZ2d0dF90eXBlcy5oDQo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS94ZS94ZV9nZ3R0X3R5cGVzLmgNCj4gQEAgLTMxLDcgKzMxLDcgQEAgc3RydWN0IHhl X2dndHQgew0KPiAgDQo+ICAJc3RydWN0IHsNCj4gIAkJdTY0ICgqcHRlX2VuY29kZSkoc3RydWN0 IHhlX2RldmljZSAqeGUsIHU2NCBwdGVfcGF0LA0KPiAtCQkJCQkJZW51bSB4ZV9jYWNoZV9sZXZl bCBjYWNoZSk7DQo+ICsJCQkJICB1MzIgcGF0X2luZGV4KTsNCj4gIAl9IHBhdF9lbmNvZGU7DQo+ ICB9Ow0KPiAgDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfbWlncmF0ZS5j IGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX21pZ3JhdGUuYw0KPiBpbmRleCBhNzgyZWEyODJjYjYu LjU0NTg1ZTk4NDUyYSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX21pZ3Jh dGUuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfbWlncmF0ZS5jDQo+IEBAIC0yNCw2 ICsyNCw3IEBADQo+ICAjaW5jbHVkZSAieGVfbHJjLmgiDQo+ICAjaW5jbHVkZSAieGVfbWFwLmgi DQo+ICAjaW5jbHVkZSAieGVfbW9jcy5oIg0KPiArI2luY2x1ZGUgInhlX3BhdC5oIg0KPiAgI2lu Y2x1ZGUgInhlX3B0LmgiDQo+ICAjaW5jbHVkZSAieGVfcmVzX2N1cnNvci5oIg0KPiAgI2luY2x1 ZGUgInhlX3NjaGVkX2pvYi5oIg0KPiBAQCAtMTYyLDYgKzE2Myw3IEBAIHN0YXRpYyBpbnQgeGVf bWlncmF0ZV9wcmVwYXJlX3ZtKHN0cnVjdCB4ZV90aWxlICp0aWxlLCBzdHJ1Y3QgeGVfbWlncmF0 ZSAqbSwNCj4gIAl1MzIgbnVtX2VudHJpZXMgPSBOVU1fUFRfU0xPVFMsIG51bV9sZXZlbCA9IHZt LT5wdF9yb290W2lkXS0+bGV2ZWw7DQo+ICAJdTMyIG1hcF9vZnMsIGxldmVsLCBpOw0KPiAgCXN0 cnVjdCB4ZV9ibyAqYm8sICpiYXRjaCA9IHRpbGUtPm1lbS5rZXJuZWxfYmJfcG9vbC0+Ym87DQo+ ICsJdTMyIHBhdF9pbmRleCA9IHhlX3BhdF9nZXRfaW5kZXgoeGUsIFhFX0NBQ0hFX1dCKTsNCj4g IAl1NjQgZW50cnk7DQo+ICAJaW50IHJldDsNCj4gIA0KPiBAQCAtMTg5LDE0ICsxOTEsMTQgQEAg c3RhdGljIGludCB4ZV9taWdyYXRlX3ByZXBhcmVfdm0oc3RydWN0IHhlX3RpbGUgKnRpbGUsIHN0 cnVjdCB4ZV9taWdyYXRlICptLA0KPiAgCQlyZXR1cm4gcmV0Ow0KPiAgCX0NCj4gIA0KPiAtCWVu dHJ5ID0geGVfcGRlX2VuY29kZShibywgYm8tPnNpemUgLSBYRV9QQUdFX1NJWkUsIFhFX0NBQ0hF X1dCKTsNCj4gKwllbnRyeSA9IHhlX3BkZV9lbmNvZGUoYm8sIGJvLT5zaXplIC0gWEVfUEFHRV9T SVpFLCBwYXRfaW5kZXgpOw0KPiAgCXhlX3B0X3dyaXRlKHhlLCAmdm0tPnB0X3Jvb3RbaWRdLT5i by0+dm1hcCwgMCwgZW50cnkpOw0KPiAgDQo+ICAJbWFwX29mcyA9IChudW1fZW50cmllcyAtIG51 bV9sZXZlbCkgKiBYRV9QQUdFX1NJWkU7DQo+ICANCj4gIAkvKiBNYXAgdGhlIGVudGlyZSBCTyBp biBvdXIgbGV2ZWwgMCBwdCAqLw0KPiAgCWZvciAoaSA9IDAsIGxldmVsID0gMDsgaSA8IG51bV9l bnRyaWVzOyBsZXZlbCsrKSB7DQo+IC0JCWVudHJ5ID0geGVfcHRlX2VuY29kZShibywgaSAqIFhF X1BBR0VfU0laRSwgWEVfQ0FDSEVfV0IsIDApOw0KPiArCQllbnRyeSA9IHhlX3B0ZV9lbmNvZGUo Ym8sIGkgKiBYRV9QQUdFX1NJWkUsIHBhdF9pbmRleCwgMCk7DQo+ICANCj4gIAkJeGVfbWFwX3dy KHhlLCAmYm8tPnZtYXAsIG1hcF9vZnMgKyBsZXZlbCAqIDgsIHU2NCwgZW50cnkpOw0KPiAgDQo+ IEBAIC0yMTQsNyArMjE2LDcgQEAgc3RhdGljIGludCB4ZV9taWdyYXRlX3ByZXBhcmVfdm0oc3Ry dWN0IHhlX3RpbGUgKnRpbGUsIHN0cnVjdCB4ZV9taWdyYXRlICptLA0KPiAgCQlmb3IgKGkgPSAw OyBpIDwgYmF0Y2gtPnNpemU7DQo+ICAJCSAgICAgaSArPSB2bS0+ZmxhZ3MgJiBYRV9WTV9GTEFH XzY0SyA/IFhFXzY0S19QQUdFX1NJWkUgOg0KPiAgCQkgICAgIFhFX1BBR0VfU0laRSkgew0KPiAt CQkJZW50cnkgPSB4ZV9wdGVfZW5jb2RlKGJhdGNoLCBpLCBYRV9DQUNIRV9XQiwgMCk7DQo+ICsJ CQllbnRyeSA9IHhlX3B0ZV9lbmNvZGUoYmF0Y2gsIGksIHBhdF9pbmRleCwgMCk7DQo+ICANCj4g IAkJCXhlX21hcF93cih4ZSwgJmJvLT52bWFwLCBtYXBfb2ZzICsgbGV2ZWwgKiA4LCB1NjQsDQo+ ICAJCQkJICBlbnRyeSk7DQo+IEBAIC0yMzksNyArMjQxLDcgQEAgc3RhdGljIGludCB4ZV9taWdy YXRlX3ByZXBhcmVfdm0oc3RydWN0IHhlX3RpbGUgKnRpbGUsIHN0cnVjdCB4ZV9taWdyYXRlICpt LA0KPiAgCQkJZmxhZ3MgPSBYRV9QREVfNjRLOw0KPiAgDQo+ICAJCWVudHJ5ID0geGVfcGRlX2Vu Y29kZShibywgbWFwX29mcyArIChsZXZlbCAtIDEpICoNCj4gLQkJCQkJWEVfUEFHRV9TSVpFLCBY RV9DQUNIRV9XQik7DQo+ICsJCQkJCVhFX1BBR0VfU0laRSwgcGF0X2luZGV4KTsNCj4gIAkJeGVf bWFwX3dyKHhlLCAmYm8tPnZtYXAsIG1hcF9vZnMgKyBYRV9QQUdFX1NJWkUgKiBsZXZlbCwgdTY0 LA0KPiAgCQkJICBlbnRyeSB8IGZsYWdzKTsNCj4gIAl9DQo+IEBAIC0yNDcsNyArMjQ5LDcgQEAg c3RhdGljIGludCB4ZV9taWdyYXRlX3ByZXBhcmVfdm0oc3RydWN0IHhlX3RpbGUgKnRpbGUsIHN0 cnVjdCB4ZV9taWdyYXRlICptLA0KPiAgCS8qIFdyaXRlIFBERSdzIHRoYXQgcG9pbnQgdG8gb3Vy IEJPLiAqLw0KPiAgCWZvciAoaSA9IDA7IGkgPCBudW1fZW50cmllcyAtIG51bV9sZXZlbDsgaSsr KSB7DQo+ICAJCWVudHJ5ID0geGVfcGRlX2VuY29kZShibywgaSAqIFhFX1BBR0VfU0laRSwNCj4g LQkJCQkgICAgICBYRV9DQUNIRV9XQik7DQo+ICsJCQkJICAgICAgcGF0X2luZGV4KTsNCj4gIA0K PiAgCQl4ZV9tYXBfd3IoeGUsICZiby0+dm1hcCwgbWFwX29mcyArIFhFX1BBR0VfU0laRSArDQo+ ICAJCQkgIChpICsgMSkgKiA4LCB1NjQsIGVudHJ5KTsNCj4gQEAgLTEyNTYsNyArMTI1OCw3IEBA IHhlX21pZ3JhdGVfdXBkYXRlX3BndGFibGVzKHN0cnVjdCB4ZV9taWdyYXRlICptLA0KPiAgDQo+ ICAJCQlYRV9XQVJOX09OKHB0X2JvLT5zaXplICE9IFNaXzRLKTsNCj4gIA0KPiAtCQkJYWRkciA9 IHhlX3B0ZV9lbmNvZGUocHRfYm8sIDAsIFhFX0NBQ0hFX1dCLCAwKTsNCj4gKwkJCWFkZHIgPSB4 ZV9wdGVfZW5jb2RlKHB0X2JvLCAwLCB4ZV9wYXRfZ2V0X2luZGV4KHhlLCBYRV9DQUNIRV9XQiks IDApOw0KPiAgCQkJYmItPmNzW2JiLT5sZW4rK10gPSBsb3dlcl8zMl9iaXRzKGFkZHIpOw0KPiAg CQkJYmItPmNzW2JiLT5sZW4rK10gPSB1cHBlcl8zMl9iaXRzKGFkZHIpOw0KPiAgCQl9DQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfcHQuYyBiL2RyaXZlcnMvZ3B1L2RybS94 ZS94ZV9wdC5jDQo+IGluZGV4IDY0NzEzZjQwMGQ5NC4uMDE5YWYyOTIwMDc4IDEwMDY0NA0KPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfcHQuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v eGUveGVfcHQuYw0KPiBAQCAtMTAsNiArMTAsNyBAQA0KPiAgI2luY2x1ZGUgInhlX2d0LmgiDQo+ ICAjaW5jbHVkZSAieGVfZ3RfdGxiX2ludmFsaWRhdGlvbi5oIg0KPiAgI2luY2x1ZGUgInhlX21p Z3JhdGUuaCINCj4gKyNpbmNsdWRlICJ4ZV9wYXQuaCINCj4gICNpbmNsdWRlICJ4ZV9wdF90eXBl cy5oIg0KPiAgI2luY2x1ZGUgInhlX3B0X3dhbGsuaCINCj4gICNpbmNsdWRlICJ4ZV9yZXNfY3Vy c29yLmgiDQo+IEBAIC01NywyNCArNTgsMjIgQEAgc3RhdGljIHN0cnVjdCB4ZV9wdCAqeGVfcHRf ZW50cnkoc3RydWN0IHhlX3B0X2RpciAqcHRfZGlyLCB1bnNpZ25lZCBpbnQgaW5kZXgpDQo+ICAg Kg0KPiAgICogUmV0dXJuOiBBbiBlbmNvZGVkIHBhZ2UgZGlyZWN0b3J5IGVudHJ5LiBObyBlcnJv cnMuDQo+ICAgKi8NCj4gLXU2NCB4ZV9wZGVfZW5jb2RlKHN0cnVjdCB4ZV9ibyAqYm8sIHU2NCBi b19vZmZzZXQsDQo+IC0JCSAgY29uc3QgZW51bSB4ZV9jYWNoZV9sZXZlbCBjYWNoZSkNCj4gK3U2 NCB4ZV9wZGVfZW5jb2RlKHN0cnVjdCB4ZV9ibyAqYm8sIHU2NCBib19vZmZzZXQsIHUzMiBwYXRf aW5kZXgpDQo+ICB7DQo+ICAJdTY0IHBkZTsNCj4gIAlzdHJ1Y3QgeGVfdm0gKnZtID0gYm8tPnZt Ow0KPiAgCXN0cnVjdCB4ZV9kZXZpY2UgKnhlID0gdm0tPnhlOw0KPiAgDQo+IC0NCj4gIAlwZGUg PSB4ZV9ib19hZGRyKGJvLCBib19vZmZzZXQsIFhFX1BBR0VfU0laRSk7DQo+ICAJcGRlIHw9IFhF X1BBR0VfUFJFU0VOVCB8IFhFX1BBR0VfUlc7DQo+ICANCj4gIAlpZiAoKHZtLT5wYXRfZW5jb2Rl KS5wZGVfZW5jb2RlKQ0KPiAtCQlwZGUgPSAodm0tPnBhdF9lbmNvZGUpLnBkZV9lbmNvZGUoeGUs IHBkZSwgY2FjaGUpOw0KPiArCQlwZGUgPSAodm0tPnBhdF9lbmNvZGUpLnBkZV9lbmNvZGUoeGUs IHBkZSwgcGF0X2luZGV4KTsNCj4gIA0KPiAgCXJldHVybiBwZGU7DQo+ICB9DQo+ICANCj4gLXN0 YXRpYyB1NjQgX19wdGVfZW5jb2RlKHU2NCBwdGUsIGVudW0geGVfY2FjaGVfbGV2ZWwgY2FjaGUs DQo+ICtzdGF0aWMgdTY0IF9fcHRlX2VuY29kZSh1NjQgcHRlLCB1MzIgcGF0X2luZGV4LA0KPiAg CQkJc3RydWN0IHhlX3ZtYSAqdm1hLCB1MzIgcHRfbGV2ZWwpDQo+ICB7DQo+ICAJc3RydWN0IHhl X3ZtICp2bSA9IHhlX3ZtYV92bSh2bWEpOw0KPiBAQCAtODksNyArODgsNyBAQCBzdGF0aWMgdTY0 IF9fcHRlX2VuY29kZSh1NjQgcHRlLCBlbnVtIHhlX2NhY2hlX2xldmVsIGNhY2hlLA0KPiAgCQlw dGUgfD0gWEVfUFRFX05VTEw7DQo+ICANCj4gIAlpZiAoKHZtLT5wYXRfZW5jb2RlKS5wdGVfZW5j b2RlKQ0KPiAtCQlwdGUgPSAodm0tPnBhdF9lbmNvZGUpLnB0ZV9lbmNvZGUoeGUsIHB0ZSwgY2Fj aGUpOw0KPiArCQlwdGUgPSAodm0tPnBhdF9lbmNvZGUpLnB0ZV9lbmNvZGUoeGUsIHB0ZSwgcGF0 X2luZGV4KTsNCj4gIA0KPiAgCWlmIChwdF9sZXZlbCA9PSAxKQ0KPiAgCQlwdGUgfD0gWEVfUERF X1BTXzJNOw0KPiBAQCAtMTEyLDcgKzExMSw3IEBAIHN0YXRpYyB1NjQgX19wdGVfZW5jb2RlKHU2 NCBwdGUsIGVudW0geGVfY2FjaGVfbGV2ZWwgY2FjaGUsDQo+ICAgKg0KPiAgICogUmV0dXJuOiBB biBlbmNvZGVkIHBhZ2UtdGFibGUgZW50cnkuIE5vIGVycm9ycy4NCj4gICAqLw0KPiAtdTY0IHhl X3B0ZV9lbmNvZGUoc3RydWN0IHhlX2JvICpibywgdTY0IG9mZnNldCwgZW51bSB4ZV9jYWNoZV9s ZXZlbCBjYWNoZSwNCj4gK3U2NCB4ZV9wdGVfZW5jb2RlKHN0cnVjdCB4ZV9ibyAqYm8sIHU2NCBv ZmZzZXQsIHUzMiBwYXRfaW5kZXgsDQo+ICAJCSAgdTMyIHB0X2xldmVsKQ0KPiAgew0KPiAgCXU2 NCBwdGU7DQo+IEBAIC0xMjEsNyArMTIwLDcgQEAgdTY0IHhlX3B0ZV9lbmNvZGUoc3RydWN0IHhl X2JvICpibywgdTY0IG9mZnNldCwgZW51bSB4ZV9jYWNoZV9sZXZlbCBjYWNoZSwNCj4gIAlpZiAo eGVfYm9faXNfdnJhbShibykgfHwgeGVfYm9faXNfc3RvbGVuX2Rldm1lbShibykpDQo+ICAJCXB0 ZSB8PSBYRV9QUEdUVF9QVEVfRE07DQo+ICANCj4gLQlyZXR1cm4gX19wdGVfZW5jb2RlKHB0ZSwg Y2FjaGUsIE5VTEwsIHB0X2xldmVsKTsNCj4gKwlyZXR1cm4gX19wdGVfZW5jb2RlKHB0ZSwgcGF0 X2luZGV4LCBOVUxMLCBwdF9sZXZlbCk7DQo+ICB9DQo+ICANCj4gIHN0YXRpYyB1NjQgX194ZV9w dF9lbXB0eV9wdGUoc3RydWN0IHhlX3RpbGUgKnRpbGUsIHN0cnVjdCB4ZV92bSAqdm0sDQo+IEBA IC0xMzQsMTIgKzEzMywxMiBAQCBzdGF0aWMgdTY0IF9feGVfcHRfZW1wdHlfcHRlKHN0cnVjdCB4 ZV90aWxlICp0aWxlLCBzdHJ1Y3QgeGVfdm0gKnZtLA0KPiAgDQo+ICAJaWYgKGxldmVsID09IDAp IHsNCj4gIAkJdTY0IGVtcHR5ID0geGVfcHRlX2VuY29kZSh2bS0+c2NyYXRjaF9ib1tpZF0sIDAs DQo+IC0JCQkJCSAgWEVfQ0FDSEVfV0IsIDApOw0KPiArCQkJCQkgIHhlX3BhdF9nZXRfaW5kZXgo dm0tPnhlLCBYRV9DQUNIRV9XQiksIDApOw0KPiAgDQo+ICAJCXJldHVybiBlbXB0eTsNCj4gIAl9 IGVsc2Ugew0KPiAgCQlyZXR1cm4geGVfcGRlX2VuY29kZSh2bS0+c2NyYXRjaF9wdFtpZF1bbGV2 ZWwgLSAxXS0+Ym8sIDAsDQo+IC0JCQkJICAgICBYRV9DQUNIRV9XQik7DQo+ICsJCQkJICAgICB4 ZV9wYXRfZ2V0X2luZGV4KHZtLT54ZSwgWEVfQ0FDSEVfV0IpKTsNCj4gIAl9DQo+ICB9DQo+ICAN Cj4gQEAgLTM2OCw4ICszNjcsNiBAQCBzdHJ1Y3QgeGVfcHRfc3RhZ2VfYmluZF93YWxrIHsNCj4g IAlzdHJ1Y3QgeGVfdm0gKnZtOw0KPiAgCS8qKiBAdGlsZTogVGhlIHRpbGUgd2UncmUgYnVpbGRp bmcgZm9yLiAqLw0KPiAgCXN0cnVjdCB4ZV90aWxlICp0aWxlOw0KPiAtCS8qKiBAY2FjaGU6IERl c2lyZWQgY2FjaGUgbGV2ZWwgZm9yIHRoZSBwdGVzICovDQo+IC0JZW51bSB4ZV9jYWNoZV9sZXZl bCBjYWNoZTsNCj4gIAkvKiogQGRlZmF1bHRfcHRlOiBQVEUgZmxhZyBvbmx5IHRlbXBsYXRlLiBO byBhZGRyZXNzIGlzIGFzc29jaWF0ZWQgKi8NCj4gIAl1NjQgZGVmYXVsdF9wdGU7DQo+ICAJLyoq IEBkbWFfb2Zmc2V0OiBETUEgb2Zmc2V0IHRvIGFkZCB0byB0aGUgUFRFLiAqLw0KPiBAQCAtNjA0 LDcgKzYwMSw3IEBAIHhlX3B0X3N0YWdlX2JpbmRfZW50cnkoc3RydWN0IHhlX3B0dyAqcGFyZW50 LCBwZ29mZl90IG9mZnNldCwNCj4gIA0KPiAgCQlwdGUgPSBfX3B0ZV9lbmNvZGUoaXNfbnVsbCA/ IDAgOg0KPiAgCQkJCSAgIHhlX3Jlc19kbWEoY3VycykgKyB4ZV93YWxrLT5kbWFfb2Zmc2V0LA0K PiAtCQkJCSAgIHhlX3dhbGstPmNhY2hlLCB4ZV93YWxrLT52bWEsIGxldmVsKTsNCj4gKwkJCQkg ICB4ZV93YWxrLT52bWEtPnBhdF9pbmRleCwgeGVfd2Fsay0+dm1hLCBsZXZlbCk7DQo+ICAJCXB0 ZSB8PSB4ZV93YWxrLT5kZWZhdWx0X3B0ZTsNCj4gIA0KPiAgCQkvKg0KPiBAQCAtNjY5LDcgKzY2 Niw3IEBAIHhlX3B0X3N0YWdlX2JpbmRfZW50cnkoc3RydWN0IHhlX3B0dyAqcGFyZW50LCBwZ29m Zl90IG9mZnNldCwNCj4gIAkJCXhlX2NoaWxkLT5pc19jb21wYWN0ID0gdHJ1ZTsNCj4gIAkJfQ0K PiAgDQo+IC0JCXB0ZSA9IHhlX3BkZV9lbmNvZGUoeGVfY2hpbGQtPmJvLCAwLCB4ZV93YWxrLT5j YWNoZSkgfCBmbGFnczsNCj4gKwkJcHRlID0geGVfcGRlX2VuY29kZSh4ZV9jaGlsZC0+Ym8sIDAs IHhlX3dhbGstPnZtYS0+cGF0X2luZGV4KSB8IGZsYWdzOw0KPiAgCQlyZXQgPSB4ZV9wdF9pbnNl cnRfZW50cnkoeGVfd2FsaywgeGVfcGFyZW50LCBvZmZzZXQsIHhlX2NoaWxkLA0KPiAgCQkJCQkg cHRlKTsNCj4gIAl9DQo+IEBAIC03MzAsMTMgKzcyNyw4IEBAIHhlX3B0X3N0YWdlX2JpbmQoc3Ry dWN0IHhlX3RpbGUgKnRpbGUsIHN0cnVjdCB4ZV92bWEgKnZtYSwNCj4gIAkJaWYgKHZtYSAmJiB2 bWEtPmdwdXZhLmZsYWdzICYgWEVfVk1BX0FUT01JQ19QVEVfQklUKQ0KPiAgCQkJeGVfd2Fsay5k ZWZhdWx0X3B0ZSB8PSBYRV9VU01fUFBHVFRfUFRFX0FFOw0KPiAgCQl4ZV93YWxrLmRtYV9vZmZz ZXQgPSB2cmFtX3JlZ2lvbl9ncHVfb2Zmc2V0KGJvLT50dG0ucmVzb3VyY2UpOw0KPiAtCQl4ZV93 YWxrLmNhY2hlID0gWEVfQ0FDSEVfV0I7DQo+IC0JfSBlbHNlIHsNCj4gLQkJaWYgKCF4ZV92bWFf aGFzX25vX2JvKHZtYSkgJiYgYm8tPmZsYWdzICYgWEVfQk9fU0NBTk9VVF9CSVQpDQo+IC0JCQl4 ZV93YWxrLmNhY2hlID0gWEVfQ0FDSEVfV1Q7DQo+IC0JCWVsc2UNCj4gLQkJCXhlX3dhbGsuY2Fj aGUgPSBYRV9DQUNIRV9XQjsNCj4gIAl9DQo+ICsNCj4gIAlpZiAoIXhlX3ZtYV9oYXNfbm9fYm8o dm1hKSAmJiB4ZV9ib19pc19zdG9sZW4oYm8pKQ0KPiAgCQl4ZV93YWxrLmRtYV9vZmZzZXQgPSB4 ZV90dG1fc3RvbGVuX2dwdV9vZmZzZXQoeGVfYm9fZGV2aWNlKGJvKSk7DQo+ICANCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9wdC5oIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hl X3B0LmgNCj4gaW5kZXggMDFiZTdhYjA4Zjg3Li4xZDQzM2E1YTk2YjQgMTAwNjQ0DQo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9wdC5oDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94 ZV9wdC5oDQo+IEBAIC00NSwxMCArNDUsOCBAQCBfX3hlX3B0X3VuYmluZF92bWEoc3RydWN0IHhl X3RpbGUgKnRpbGUsIHN0cnVjdCB4ZV92bWEgKnZtYSwgc3RydWN0IHhlX2V4ZWNfcXVldQ0KPiAg DQo+ICBib29sIHhlX3B0X3phcF9wdGVzKHN0cnVjdCB4ZV90aWxlICp0aWxlLCBzdHJ1Y3QgeGVf dm1hICp2bWEpOw0KPiAgDQo+IC11NjQgeGVfcGRlX2VuY29kZShzdHJ1Y3QgeGVfYm8gKmJvLCB1 NjQgYm9fb2Zmc2V0LA0KPiAtCQkgIGNvbnN0IGVudW0geGVfY2FjaGVfbGV2ZWwgbGV2ZWwpOw0K PiArdTY0IHhlX3BkZV9lbmNvZGUoc3RydWN0IHhlX2JvICpibywgdTY0IGJvX29mZnNldCwgdTMy IHBhdF9pbmRleCk7DQo+ICANCj4gLXU2NCB4ZV9wdGVfZW5jb2RlKHN0cnVjdCB4ZV9ibyAqYm8s IHU2NCBvZmZzZXQsIGVudW0geGVfY2FjaGVfbGV2ZWwgY2FjaGUsDQo+IC0JCSAgdTMyIHB0X2xl dmVsKTsNCj4gK3U2NCB4ZV9wdGVfZW5jb2RlKHN0cnVjdCB4ZV9ibyAqYm8sIHU2NCBvZmZzZXQs IHUzMiBwYXRfaW5kZXgsIHUzMiBwdF9sZXZlbCk7DQo+ICANCj4gICNlbmRpZg0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVf dm0uYw0KPiBpbmRleCA3ZWVlZWQwNDExZjMuLjM0NjAzYTdlODRiMCAxMDA2NDQNCj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hl X3ZtLmMNCj4gQEAgLTYsNiArNiw3IEBADQo+ICAjaW5jbHVkZSAieGVfdm0uaCINCj4gIA0KPiAg I2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS1hcnJheS5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L25v c3BlYy5oPg0KPiAgDQo+ICAjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPg0KPiAgI2luY2x1ZGUg PGRybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5oPg0KPiBAQCAtODc0LDcgKzg3NSw4IEBAIHN0YXRp YyBzdHJ1Y3QgeGVfdm1hICp4ZV92bWFfY3JlYXRlKHN0cnVjdCB4ZV92bSAqdm0sDQo+ICAJCQkJ ICAgIHU2NCBzdGFydCwgdTY0IGVuZCwNCj4gIAkJCQkgICAgYm9vbCByZWFkX29ubHksDQo+ICAJ CQkJICAgIGJvb2wgaXNfbnVsbCwNCj4gLQkJCQkgICAgdTggdGlsZV9tYXNrKQ0KPiArCQkJCSAg ICB1OCB0aWxlX21hc2ssDQo+ICsJCQkJICAgIHUzMiBwYXRfaW5kZXgpDQo+ICB7DQo+ICAJc3Ry dWN0IHhlX3ZtYSAqdm1hOw0KPiAgCXN0cnVjdCB4ZV90aWxlICp0aWxlOw0KPiBAQCAtOTEzLDYg KzkxNSw4IEBAIHN0YXRpYyBzdHJ1Y3QgeGVfdm1hICp4ZV92bWFfY3JlYXRlKHN0cnVjdCB4ZV92 bSAqdm0sDQo+ICAJCQl2bWEtPnRpbGVfbWFzayB8PSAweDEgPDwgaWQ7DQo+ICAJfQ0KPiAgDQo+ ICsJdm1hLT5wYXRfaW5kZXggPSBwYXRfaW5kZXg7DQo+ICsNCj4gIAlpZiAodm0tPnhlLT5pbmZv LnBsYXRmb3JtID09IFhFX1BWQykNCj4gIAkJdm1hLT5ncHV2YS5mbGFncyB8PSBYRV9WTUFfQVRP TUlDX1BURV9CSVQ7DQo+ICANCj4gQEAgLTExOTQsMTAgKzExOTgsOCBAQCBzdGF0aWMgdm9pZCB4 ZV92bWFfb3Bfd29ya19mdW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqdyk7DQo+ICBzdGF0aWMgdm9p ZCB2bV9kZXN0cm95X3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKncpOw0KPiAgDQo+ICBz dGF0aWMgdTY0IHhlbHBfcHBndHRfcGRlX2VuY29kZV9wYXQoc3RydWN0IHhlX2RldmljZSAqeGUs IHU2NCBwZGVfcGF0LA0KPiAtCQkJCQkJZW51bSB4ZV9jYWNoZV9sZXZlbCBjYWNoZSkNCj4gKwkJ CQkgICAgIHUzMiBwYXRfaW5kZXgpDQo+ICB7DQo+IC0JdTMyIHBhdF9pbmRleCA9IHhlX3BhdF9n ZXRfaW5kZXgoeGUsIGNhY2hlKTsNCj4gLQ0KPiAgCXBkZV9wYXQgJj0gfihYRUxQX1BERV9QQVRf TUFTSyk7DQo+ICANCj4gIAlpZiAocGF0X2luZGV4ICYgQklUKDApKQ0KPiBAQCAtMTIxMywxMCAr MTIxNSw4IEBAIHN0YXRpYyB1NjQgeGVscF9wcGd0dF9wZGVfZW5jb2RlX3BhdChzdHJ1Y3QgeGVf ZGV2aWNlICp4ZSwgdTY0IHBkZV9wYXQsDQo+ICB9DQo+ICANCj4gIHN0YXRpYyB1NjQgeGVscF9w cGd0dF9wdGVfZW5jb2RlX3BhdChzdHJ1Y3QgeGVfZGV2aWNlICp4ZSwgdTY0IHB0ZV9wYXQsDQo+ IC0JCQkJCQllbnVtIHhlX2NhY2hlX2xldmVsIGNhY2hlKQ0KPiArCQkJCSAgICAgdTMyIHBhdF9p bmRleCkNCj4gIHsNCj4gLQl1MzIgcGF0X2luZGV4ID0geGVfcGF0X2dldF9pbmRleCh4ZSwgY2Fj aGUpOw0KPiAtDQo+ICAJcHRlX3BhdCAmPSB+KFhFTFBfUFRFX1BBVF9NQVNLKTsNCj4gIA0KPiAg CWlmIChwYXRfaW5kZXggJiBCSVQoMCkpDQo+IEBAIC0xNjIyLDcgKzE2MjIsNyBAQCBzdHJ1Y3Qg eGVfdm0gKnhlX3ZtX2xvb2t1cChzdHJ1Y3QgeGVfZmlsZSAqeGVmLCB1MzIgaWQpDQo+ICB1NjQg eGVfdm1fcGRwNF9kZXNjcmlwdG9yKHN0cnVjdCB4ZV92bSAqdm0sIHN0cnVjdCB4ZV90aWxlICp0 aWxlKQ0KPiAgew0KPiAgCXJldHVybiB4ZV9wZGVfZW5jb2RlKHZtLT5wdF9yb290W3RpbGUtPmlk XS0+Ym8sIDAsDQo+IC0JCQkgICAgIFhFX0NBQ0hFX1dCKTsNCj4gKwkJCSAgICAgeGVfcGF0X2dl dF9pbmRleCh2bS0+eGUsIFhFX0NBQ0hFX1dCKSk7DQo+ICB9DQo+ICANCj4gIHN0YXRpYyBzdHJ1 Y3QgZG1hX2ZlbmNlICoNCj4gQEAgLTIzMTEsNyArMjMxMSw3IEBAIHN0YXRpYyB2b2lkIHByaW50 X29wKHN0cnVjdCB4ZV9kZXZpY2UgKnhlLCBzdHJ1Y3QgZHJtX2dwdXZhX29wICpvcCkNCj4gIHN0 YXRpYyBzdHJ1Y3QgZHJtX2dwdXZhX29wcyAqDQo+ICB2bV9iaW5kX2lvY3RsX29wc19jcmVhdGUo c3RydWN0IHhlX3ZtICp2bSwgc3RydWN0IHhlX2JvICpibywNCj4gIAkJCSB1NjQgYm9fb2Zmc2V0 X29yX3VzZXJwdHIsIHU2NCBhZGRyLCB1NjQgcmFuZ2UsDQo+IC0JCQkgdTMyIG9wZXJhdGlvbiwg dTggdGlsZV9tYXNrLCB1MzIgcmVnaW9uKQ0KPiArCQkJIHUzMiBvcGVyYXRpb24sIHU4IHRpbGVf bWFzaywgdTMyIHJlZ2lvbiwgdTMyIHBhdF9pbmRleCkNCj4gIHsNCj4gIAlzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKm9iaiA9IGJvID8gJmJvLT50dG0uYmFzZSA6IE5VTEw7DQo+ICAJc3RydWN0IHd3 X2FjcXVpcmVfY3R4IHd3Ow0KPiBAQCAtMjMzOSw2ICsyMzM5LDcgQEAgdm1fYmluZF9pb2N0bF9v cHNfY3JlYXRlKHN0cnVjdCB4ZV92bSAqdm0sIHN0cnVjdCB4ZV9ibyAqYm8sDQo+ICAJCQlzdHJ1 Y3QgeGVfdm1hX29wICpvcCA9IGdwdXZhX29wX3RvX3ZtYV9vcChfX29wKTsNCj4gIA0KPiAgCQkJ b3AtPnRpbGVfbWFzayA9IHRpbGVfbWFzazsNCj4gKwkJCW9wLT5wYXRfaW5kZXggPSBwYXRfaW5k ZXg7DQo+ICAJCQlvcC0+bWFwLmltbWVkaWF0ZSA9DQo+ICAJCQkJb3BlcmF0aW9uICYgWEVfVk1f QklORF9GTEFHX0lNTUVESUFURTsNCj4gIAkJCW9wLT5tYXAucmVhZF9vbmx5ID0NCj4gQEAgLTIz NjYsNiArMjM2Nyw3IEBAIHZtX2JpbmRfaW9jdGxfb3BzX2NyZWF0ZShzdHJ1Y3QgeGVfdm0gKnZt LCBzdHJ1Y3QgeGVfYm8gKmJvLA0KPiAgCQkJc3RydWN0IHhlX3ZtYV9vcCAqb3AgPSBncHV2YV9v cF90b192bWFfb3AoX19vcCk7DQo+ICANCj4gIAkJCW9wLT50aWxlX21hc2sgPSB0aWxlX21hc2s7 DQo+ICsJCQlvcC0+cGF0X2luZGV4ID0gcGF0X2luZGV4Ow0KPiAgCQkJb3AtPnByZWZldGNoLnJl Z2lvbiA9IHJlZ2lvbjsNCj4gIAkJfQ0KPiAgCQlicmVhazsNCj4gQEAgLTI0MDgsNyArMjQxMCw4 IEBAIHZtX2JpbmRfaW9jdGxfb3BzX2NyZWF0ZShzdHJ1Y3QgeGVfdm0gKnZtLCBzdHJ1Y3QgeGVf Ym8gKmJvLA0KPiAgfQ0KPiAgDQo+ICBzdGF0aWMgc3RydWN0IHhlX3ZtYSAqbmV3X3ZtYShzdHJ1 Y3QgeGVfdm0gKnZtLCBzdHJ1Y3QgZHJtX2dwdXZhX29wX21hcCAqb3AsDQo+IC0JCQkgICAgICB1 OCB0aWxlX21hc2ssIGJvb2wgcmVhZF9vbmx5LCBib29sIGlzX251bGwpDQo+ICsJCQkgICAgICB1 OCB0aWxlX21hc2ssIGJvb2wgcmVhZF9vbmx5LCBib29sIGlzX251bGwsDQo+ICsJCQkgICAgICB1 MzIgcGF0X2luZGV4KQ0KPiAgew0KPiAgCXN0cnVjdCB4ZV9ibyAqYm8gPSBvcC0+Z2VtLm9iaiA/ IGdlbV90b194ZV9ibyhvcC0+Z2VtLm9iaikgOiBOVUxMOw0KPiAgCXN0cnVjdCB4ZV92bWEgKnZt YTsNCj4gQEAgLTI0MjUsNyArMjQyOCw3IEBAIHN0YXRpYyBzdHJ1Y3QgeGVfdm1hICpuZXdfdm1h KHN0cnVjdCB4ZV92bSAqdm0sIHN0cnVjdCBkcm1fZ3B1dmFfb3BfbWFwICpvcCwNCj4gIAl2bWEg PSB4ZV92bWFfY3JlYXRlKHZtLCBibywgb3AtPmdlbS5vZmZzZXQsDQo+ICAJCQkgICAgb3AtPnZh LmFkZHIsIG9wLT52YS5hZGRyICsNCj4gIAkJCSAgICBvcC0+dmEucmFuZ2UgLSAxLCByZWFkX29u bHksIGlzX251bGwsDQo+IC0JCQkgICAgdGlsZV9tYXNrKTsNCj4gKwkJCSAgICB0aWxlX21hc2ss IHBhdF9pbmRleCk7DQo+ICAJaWYgKGJvKQ0KPiAgCQl4ZV9ib191bmxvY2soYm8sICZ3dyk7DQo+ ICANCj4gQEAgLTI1MzksNyArMjU0Miw3IEBAIHN0YXRpYyBpbnQgdm1fYmluZF9pb2N0bF9vcHNf cGFyc2Uoc3RydWN0IHhlX3ZtICp2bSwgc3RydWN0IHhlX2V4ZWNfcXVldWUgKnEsDQo+ICANCj4g IAkJCQl2bWEgPSBuZXdfdm1hKHZtLCAmb3AtPmJhc2UubWFwLA0KPiAgCQkJCQkgICAgICBvcC0+ dGlsZV9tYXNrLCBvcC0+bWFwLnJlYWRfb25seSwNCj4gLQkJCQkJICAgICAgb3AtPm1hcC5pc19u dWxsKTsNCj4gKwkJCQkJICAgICAgb3AtPm1hcC5pc19udWxsLCBvcC0+cGF0X2luZGV4KTsNCj4g IAkJCQlpZiAoSVNfRVJSKHZtYSkpIHsNCj4gIAkJCQkJZXJyID0gUFRSX0VSUih2bWEpOw0KPiAg CQkJCQlnb3RvIGZyZWVfZmVuY2U7DQo+IEBAIC0yNTY3LDcgKzI1NzAsNyBAQCBzdGF0aWMgaW50 IHZtX2JpbmRfaW9jdGxfb3BzX3BhcnNlKHN0cnVjdCB4ZV92bSAqdm0sIHN0cnVjdCB4ZV9leGVj X3F1ZXVlICpxLA0KPiAgDQo+ICAJCQkJCXZtYSA9IG5ld192bWEodm0sIG9wLT5iYXNlLnJlbWFw LnByZXYsDQo+ICAJCQkJCQkgICAgICBvcC0+dGlsZV9tYXNrLCByZWFkX29ubHksDQo+IC0JCQkJ CQkgICAgICBpc19udWxsKTsNCj4gKwkJCQkJCSAgICAgIGlzX251bGwsIG9wLT5wYXRfaW5kZXgp Ow0KPiAgCQkJCQlpZiAoSVNfRVJSKHZtYSkpIHsNCj4gIAkJCQkJCWVyciA9IFBUUl9FUlIodm1h KTsNCj4gIAkJCQkJCWdvdG8gZnJlZV9mZW5jZTsNCj4gQEAgLTI2MDMsNyArMjYwNiw3IEBAIHN0 YXRpYyBpbnQgdm1fYmluZF9pb2N0bF9vcHNfcGFyc2Uoc3RydWN0IHhlX3ZtICp2bSwgc3RydWN0 IHhlX2V4ZWNfcXVldWUgKnEsDQo+ICANCj4gIAkJCQkJdm1hID0gbmV3X3ZtYSh2bSwgb3AtPmJh c2UucmVtYXAubmV4dCwNCj4gIAkJCQkJCSAgICAgIG9wLT50aWxlX21hc2ssIHJlYWRfb25seSwN Cj4gLQkJCQkJCSAgICAgIGlzX251bGwpOw0KPiArCQkJCQkJICAgICAgaXNfbnVsbCwgb3AtPnBh dF9pbmRleCk7DQo+ICAJCQkJCWlmIChJU19FUlIodm1hKSkgew0KPiAgCQkJCQkJZXJyID0gUFRS X0VSUih2bWEpOw0KPiAgCQkJCQkJZ290byBmcmVlX2ZlbmNlOw0KPiBAQCAtMzE1OCw4ICszMTYx LDE0IEBAIHN0YXRpYyBpbnQgdm1fYmluZF9pb2N0bF9jaGVja19hcmdzKHN0cnVjdCB4ZV9kZXZp Y2UgKnhlLA0KPiAgCQl1MzIgb2JqID0gKCpiaW5kX29wcylbaV0ub2JqOw0KPiAgCQl1NjQgb2Jq X29mZnNldCA9ICgqYmluZF9vcHMpW2ldLm9ial9vZmZzZXQ7DQo+ICAJCXUzMiByZWdpb24gPSAo KmJpbmRfb3BzKVtpXS5yZWdpb247DQo+ICsJCXUzMiBwYXRfaW5kZXggPSAoKmJpbmRfb3BzKVtp XS5wYXRfaW5kZXg7DQo+ICAJCWJvb2wgaXNfbnVsbCA9IG9wICYgWEVfVk1fQklORF9GTEFHX05V TEw7DQo+ICANCj4gKwkJaWYgKFhFX0lPQ1RMX0RCRyh4ZSwgcGF0X2luZGV4ID49IHhlLT5pbmZv LnBhdF90YWJsZV9uX2VudHJpZXMpKSB7DQo+ICsJCQllcnIgPSAtRUlOVkFMOw0KPiArCQkJZ290 byBmcmVlX2JpbmRfb3BzOw0KPiArCQl9DQo+ICsNCj4gIAkJaWYgKGkgPT0gMCkgew0KPiAgCQkJ KmFzeW5jID0gISEob3AgJiBYRV9WTV9CSU5EX0ZMQUdfQVNZTkMpOw0KPiAgCQl9IGVsc2UgaWYg KFhFX0lPQ1RMX0RCRyh4ZSwgISphc3luYykgfHwNCj4gQEAgLTMzNDYsOCArMzM1NSwyNSBAQCBp bnQgeGVfdm1fYmluZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpDQo+ICAJCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtX29i ajsNCj4gIAkJdTY0IHJhbmdlID0gYmluZF9vcHNbaV0ucmFuZ2U7DQo+ICAJCXU2NCBhZGRyID0g YmluZF9vcHNbaV0uYWRkcjsNCj4gKwkJdTMyIG9wID0gYmluZF9vcHNbaV0ub3A7DQo+ICAJCXUz MiBvYmogPSBiaW5kX29wc1tpXS5vYmo7DQo+ICAJCXU2NCBvYmpfb2Zmc2V0ID0gYmluZF9vcHNb aV0ub2JqX29mZnNldDsNCj4gKwkJdTMyIHBhdF9pbmRleCA9IGJpbmRfb3BzW2ldLnBhdF9pbmRl eDsNCj4gKwkJdTE2IGNvaF9tb2RlOw0KPiArDQo+ICsJCXBhdF9pbmRleCA9IGFycmF5X2luZGV4 X25vc3BlYyhwYXRfaW5kZXgsDQo+ICsJCQkJCSAgICAgICB4ZS0+aW5mby5wYXRfdGFibGVfbl9l bnRyaWVzKTsNCj4gKwkJY29oX21vZGUgPSB4ZV9wYXRfaW5kZXhfZ2V0X2NvaF9tb2RlKHhlLCBw YXRfaW5kZXgpOw0KPiArCQlpZiAoWEVfSU9DVExfREJHKHhlLCAhY29oX21vZGUpKSB7DQo+ICsJ CQllcnIgPSAtRUlOVkFMOw0KPiArCQkJZ290byBwdXRfb2JqOw0KPiArCQl9DQo+ICsNCj4gKwkJ aWYgKFhFX0lPQ1RMX0RCRyh4ZSwgVk1fQklORF9PUChvcCkgPT0gWEVfVk1fQklORF9PUF9NQVBf VVNFUlBUUiAmJg0KPiArCQkJCSBjb2hfbW9kZSA9PSBYRV9HRU1fQ09IRVJFTkNZX05PTkUpKSB7 DQo+ICsJCQllcnIgPSAtRUlOVkFMOw0KPiArCQkJZ290byBwdXRfb2JqOw0KPiArCQl9DQo+ICAN Cj4gIAkJaWYgKCFvYmopDQo+ICAJCQljb250aW51ZTsNCj4gQEAgLTMzNzUsNiArMzQwMSwyMiBA QCBpbnQgeGVfdm1fYmluZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpDQo+ICAJCQkJZ290byBwdXRfb2JqOw0KPiAgCQkJfQ0K PiAgCQl9DQo+ICsNCj4gKwkJaWYgKGJvc1tpXS0+Y29oX21vZGUpIHsNCj4gKwkJCWlmIChYRV9J T0NUTF9EQkcoeGUsIGJvc1tpXS0+Y29oX21vZGUgIT0gY29oX21vZGUpKSB7DQo+ICsJCQkJZXJy ID0gLUVJTlZBTDsNCj4gKwkJCQlnb3RvIHB1dF9vYmo7DQo+ICsJCQl9DQo+ICsJCX0gZWxzZSBp ZiAoWEVfSU9DVExfREJHKHhlLCBjb2hfbW9kZSA9PSBYRV9HRU1fQ09IRVJFTkNZX05PTkUpKSB7 DQo+ICsJCQkvKg0KPiArCQkJICogSW1wb3J0ZWQgZG1hLWJ1ZiBmcm9tIGEgZGlmZmVyZW50IGRl dmljZSBzaG91bGQNCj4gKwkJCSAqIHJlcXVpcmUgMXdheSBvciAyd2F5IGNvaGVyZW5jeSBzaW5j ZSB3ZSBkb24ndCBrbm93DQo+ICsJCQkgKiBob3cgaXQgd2FzIG1hcHBlZCBvbiBDUFUuIEp1c3Qg YXNzdW1lIGlzIGl0DQo+ICsJCQkgKiBwb3RlbnRpYWxseSBjYWNoZWQgb24gQ1BVIHNpZGUuDQo+ ICsJCQkgKi8NCj4gKwkJCWVyciA9IC1FSU5WQUw7DQo+ICsJCQlnb3RvIHB1dF9vYmo7DQo+ICsJ CX0NCj4gIAl9DQo+ICANCj4gIAlpZiAoYXJncy0+bnVtX3N5bmNzKSB7DQo+IEBAIC0zNDEyLDEw ICszNDU0LDExIEBAIGludCB4ZV92bV9iaW5kX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkNCj4gIAkJdTY0IG9ial9vZmZzZXQg PSBiaW5kX29wc1tpXS5vYmpfb2Zmc2V0Ow0KPiAgCQl1OCB0aWxlX21hc2sgPSBiaW5kX29wc1tp XS50aWxlX21hc2s7DQo+ICAJCXUzMiByZWdpb24gPSBiaW5kX29wc1tpXS5yZWdpb247DQo+ICsJ CXUzMiBwYXRfaW5kZXggPSBiaW5kX29wc1tpXS5wYXRfaW5kZXg7DQo+ICANCj4gIAkJb3BzW2ld ID0gdm1fYmluZF9pb2N0bF9vcHNfY3JlYXRlKHZtLCBib3NbaV0sIG9ial9vZmZzZXQsDQo+ICAJ CQkJCQkgIGFkZHIsIHJhbmdlLCBvcCwgdGlsZV9tYXNrLA0KPiAtCQkJCQkJICByZWdpb24pOw0K PiArCQkJCQkJICByZWdpb24sIHBhdF9pbmRleCk7DQo+ICAJCWlmIChJU19FUlIob3BzW2ldKSkg ew0KPiAgCQkJZXJyID0gUFRSX0VSUihvcHNbaV0pOw0KPiAgCQkJb3BzW2ldID0gTlVMTDsNCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92bV90eXBlcy5oIGIvZHJpdmVycy9n cHUvZHJtL3hlL3hlX3ZtX3R5cGVzLmgNCj4gaW5kZXggODNhMWY4N2I2NTM3Li41MDg2NzllZDNj NzQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92bV90eXBlcy5oDQo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92bV90eXBlcy5oDQo+IEBAIC0xMTEsNiArMTExLDEx IEBAIHN0cnVjdCB4ZV92bWEgew0KPiAgCSAqLw0KPiAgCXU4IHRpbGVfcHJlc2VudDsNCj4gIA0K PiArCS8qKg0KPiArCSAqIEBwYXRfaW5kZXg6IFRoZSBwYXQgaW5kZXggdG8gdXNlIHdoZW4gZW5j b2RpbmcgdGhlIFBURXMgZm9yIHRoaXMgdm1hLg0KPiArCSAqLw0KPiArCXUzMiBwYXRfaW5kZXg7 DQo+ICsNCj4gIAlzdHJ1Y3Qgew0KPiAgCQlzdHJ1Y3QgbGlzdF9oZWFkIHJlYmluZF9saW5rOw0K PiAgCX0gbm90aWZpZXI7DQo+IEBAIC0zMzgsMTAgKzM0Myw4IEBAIHN0cnVjdCB4ZV92bSB7DQo+ ICAJYm9vbCBiYXRjaF9pbnZhbGlkYXRlX3RsYjsNCj4gIA0KPiAgCXN0cnVjdCB7DQo+IC0JCXU2 NCAoKnB0ZV9lbmNvZGUpKHN0cnVjdCB4ZV9kZXZpY2UgKnhlLCB1NjQgcHRlX3BhdCwNCj4gLQkJ CQkJCWVudW0geGVfY2FjaGVfbGV2ZWwgY2FjaGUpOw0KPiAtCQl1NjQgKCpwZGVfZW5jb2RlKShz dHJ1Y3QgeGVfZGV2aWNlICp4ZSwgdTY0IHBkZV9wYXQsDQo+IC0JCQkJCQllbnVtIHhlX2NhY2hl X2xldmVsIGNhY2hlKTsNCj4gKwkJdTY0ICgqcHRlX2VuY29kZSkoc3RydWN0IHhlX2RldmljZSAq eGUsIHU2NCBwdGVfcGF0LCB1MzIgcGF0X2luZGV4KTsNCj4gKwkJdTY0ICgqcGRlX2VuY29kZSko c3RydWN0IHhlX2RldmljZSAqeGUsIHU2NCBwZGVfcGF0LCB1MzIgcGF0X2luZGV4KTsNCj4gIAl9 IHBhdF9lbmNvZGU7DQo+ICB9Ow0KPiAgDQo+IEBAIC00MTcsNiArNDIwLDggQEAgc3RydWN0IHhl X3ZtYV9vcCB7DQo+ICAJc3RydWN0IGFzeW5jX29wX2ZlbmNlICpmZW5jZTsNCj4gIAkvKiogQHRp bGVfbWFzazogZ3QgbWFzayBmb3IgdGhpcyBvcGVyYXRpb24gKi8NCj4gIAl1OCB0aWxlX21hc2s7 DQo+ICsJLyoqIEBwYXRfaW5kZXg6IFRoZSBwYXQgaW5kZXggdG8gdXNlIGZvciB0aGlzIG9wZXJh dGlvbi4gKi8NCj4gKwl1MzIgcGF0X2luZGV4Ow0KPiAgCS8qKiBAZmxhZ3M6IG9wZXJhdGlvbiBm bGFncyAqLw0KPiAgCWVudW0geGVfdm1hX29wX2ZsYWdzIGZsYWdzOw0KPiAgDQo+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL3VhcGkvZHJtL3hlX2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS94ZV9kcm0u aA0KPiBpbmRleCA2NGJjNjZkNGI1NTAuLjBjMTViNmYzMjQ0NyAxMDA2NDQNCj4gLS0tIGEvaW5j bHVkZS91YXBpL2RybS94ZV9kcm0uaA0KPiArKysgYi9pbmNsdWRlL3VhcGkvZHJtL3hlX2RybS5o DQo+IEBAIC02MDAsOCArNjAwLDQ1IEBAIHN0cnVjdCBkcm1feGVfdm1fYmluZF9vcCB7DQo+ICAJ ICovDQo+ICAJX191MzIgb2JqOw0KPiAgDQo+IC0JLyoqIEBwYWQ6IE1CWiAqLw0KPiAtCV9fdTMy IHBhZDsNCj4gKwkvKioNCj4gKwkgKiBAcGF0X2luZGV4OiBUaGUgcGxhdGZvcm0gZGVmaW5lZCBA cGF0X2luZGV4IHRvIHVzZSBmb3IgdGhpcyBtYXBwaW5nLg0KPiArCSAqIFRoZSBpbmRleCBiYXNp Y2FsbHkgbWFwcyB0byBzb21lIHByZWRlZmluZWQgbWVtb3J5IGF0dHJpYnV0ZXMsDQo+ICsJICog aW5jbHVkaW5nIHRoaW5ncyBsaWtlIGNhY2hpbmcsIGNvaGVyZW5jeSBhbmQgbGlrZWx5IG90aGVy IHN0dWZmIGluDQo+ICsJICogdGhlIGZ1dHVyZS4gIFRoZSBleGFjdCBtZWFuaW5nIG9mIHRoZSBw YXRfaW5kZXggaXMgcGxhdGZvcm0gc3BlY2lmaWMNCj4gKwkgKiBhbmQgZGVmaW5lZCBpbiB0aGUg QnNwZWMgYW5kIFBSTXMuICBXaGVuIHRoZSBLTUQgc2V0cyB1cCB0aGUgYmluZGluZw0KPiArCSAq IHRoZSBpbmRleCBoZXJlIGlzIGVuY29kZWQgaW50byB0aGUgcHBHVFQgUFRFLg0KPiArCSAqDQo+ ICsJICogRm9yIGNvaGVyZW5jeSB0aGUgQHBhdF9pbmRleCBuZWVkcyB0byBtYXRjaCB0aGUNCj4g KwkgKiBkcm1feGVfZ2VtX2NyZWF0ZS5jb2hfbW9kZSwgc28gZWl0aGVyIFhFX0dFTV9DT0hFUkVO Q1lfTk9ORSwNCj4gKwkgKiBYRV9HRU1fQ09IRVJFTkNZXzFXQVkgb3IgWEVfR0VNX0NPSEVSRU5D WV8yV0FZLiBUaGUgS01EIHdpbGwgZXh0cmFjdA0KPiArCSAqIHRoZSBjb2hlcmVuY3kgbW9kZSBm cm9tIHRoZSBAcGF0X2luZGV4IGFuZCByZWplY3QgaWYgdGhlcmUgaXMgYQ0KPiArCSAqIG1pc21h dGNoIChzZWUgbm90ZSBiZWxvdyBmb3IgcHJlLU1UTCBwbGF0Zm9ybXMpLg0KPiArCSAqDQo+ICsJ ICogTm90ZTogT24gcHJlLU1UTCBwbGF0Zm9ybXMgdGhlcmUgaXMgb25seSBhIGNhY2hpbmcgbW9k ZSBhbmQgbm8NCj4gKwkgKiBleHBsaWNpdCBjb2hlcmVuY3kgbW9kZSwgYnV0IG9uIHN1Y2ggaGFy ZHdhcmUgdGhlcmUgaXMgYWx3YXlzIGENCj4gKwkgKiBzaGFyZWQtTExDIChvciBpcyBkZ3B1KSBz byBhbGwgR1QgbWVtb3J5IGFjY2Vzc2VzIGFyZSBjb2hlcmVudCB3aXRoDQo+ICsJICogQ1BVIGNh Y2hlcyBldmVuIHdpdGggdGhlIGNhY2hpbmcgbW9kZSBzZXQgYXMgdW5jYWNoZWQuICBJdCdzIG9u bHkgdGhlDQo+ICsJICogZGlzcGxheSBlbmdpbmUgdGhhdCBpcyBpbmNvaGVyZW50IChvbiBkZ3B1 IGl0IG11c3QgYmUgaW4gVlJBTSB3aGljaA0KPiArCSAqIGlzIGFsd2F5cyBtYXBwZWQgYXMgV0Mg b24gdGhlIENQVSkuIEhvd2V2ZXIgdG8ga2VlcCB0aGUgdWFwaSBzb21ld2hhdA0KPiArCSAqIGNv bnNpc3RlbnQgd2l0aCBuZXdlciBwbGF0Zm9ybXMgdGhlIEtNRCBncm91cHMgdGhlIGRpZmZlcmVu dCBjYWNoZQ0KPiArCSAqIGxldmVscyBpbnRvIHRoZSBmb2xsb3dpbmcgY29oZXJlbmN5IGJ1Y2tl dHMgb24gYWxsIHByZS1NVEwgcGxhdGZvcm1zOg0KPiArCSAqDQo+ICsJICoJcHBHVFQgVUMgLT4g WEVfR0VNX0NPSEVSRU5DWV9OT05FDQo+ICsJICoJcHBHVFQgV0MgLT4gWEVfR0VNX0NPSEVSRU5D WV9OT05FDQo+ICsJICoJcHBHVFQgV1QgLT4gWEVfR0VNX0NPSEVSRU5DWV9OT05FDQo+ICsJICoJ cHBHVFQgV0IgLT4gWEVfR0VNX0NPSEVSRU5DWV8yV0FZDQo+ICsJICoNCj4gKwkgKiBJbiBwcmFj dGljZSBVQy9XQy9XVCBzaG91bGQgb25seSBldmVyIHVzZWQgZm9yIHNjYW5vdXQgc3VyZmFjZXMg b24NCj4gKwkgKiBzdWNoIHBsYXRmb3JtcyBzaW5jZSBpdCBpcyBvbmx5IHRoZSBkaXNwbGF5IGVu Z2luZSB0aGF0IGlzIGFjdHVhbGx5DQo+ICsJICogaW5jb2hlcmVudC4gRXZlcnl0aGluZyBlbHNl IHNob3VsZCB0eXBpY2FsbHkgdXNlIFdCIGdpdmVuIHRoYXQgd2UNCj4gKwkgKiBoYXZlIGEgc2hh cmVkLUxMQy4gIE9uIE1UTCsgdGhpcyBjb21wbGV0ZWx5IGNoYW5nZXMgKGFsc28gcG90ZW50aWFs bHkNCj4gKwkgKiBubyBzaGFyZWQtTExDKSBhbmQgdGhlIEhXIGRlZmluZXMgdGhlIGNvaGVyZW5j eSBtb2RlIGFzIHBhcnQgb2YgdGhlDQo+ICsJICogQHBhdF9pbmRleC4NCj4gKwkgKg0KPiArCSAq IE5vdGU6IEZvciB1c2VycHRyIGFuZCBleHRlcm5hbGx5IGltcG9ydGVkIGRtYS1idWYgdGhlIGtl cm5lbCBleHBlY3RzDQo+ICsJICogZWl0aGVyIDFXQVkgb3IgMldBWSBmb3IgdGhlIEBwYXRfaW5k ZXguDQo+ICsJICovDQo+ICsJX191MzIgcGF0X2luZGV4Ow0KPiAgDQo+ICAJdW5pb24gew0KPiAg CQkvKioNCg0K