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 C4F73C0032E for ; Wed, 25 Oct 2023 11:36:35 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3E9F510E0BE; Wed, 25 Oct 2023 11:36:35 +0000 (UTC) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.10]) by gabe.freedesktop.org (Postfix) with ESMTPS id A490310E0BE for ; Wed, 25 Oct 2023 11:36:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1698233794; x=1729769794; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=WeWuGAqQj7mlBgc4u3kVF6q/OZ96b4IpyrRkaXyNvis=; b=fkvRrE2ahLUqIxnhmpLZgaMblcWp3pFqSN1mhCqn+KarSXQG8v3627jD wGjBx7TT0YoPdf7a4frRnL5HhC/podwTXfYbeoWuWq2aWk46OWesWeJfc QX9PyUwC8VpG7a7XdLe19sWFVB0hyRqmLRLHaZxmGZA1masCeX7Qq73jy 9AIvg8FfeSt3VorJVY2fXCAgDOxjhc1DfjYS3oz5+XtSRl80/x+D6dFXl jaZeHPWR41cDAoIhl8VoO7MTEcPg3O7072O4TmMYVLEH0UaH6iU0x5fFG THlP8tXY9hbl4Dlv23rhd077R0T5YVaZbV4Le2wluX3OLpotVw8QKkFXH A==; X-IronPort-AV: E=McAfee;i="6600,9927,10873"; a="51759" X-IronPort-AV: E=Sophos;i="6.03,250,1694761200"; d="scan'208";a="51759" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orvoesa102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Oct 2023 04:36:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10873"; a="849505459" X-IronPort-AV: E=Sophos;i="6.03,250,1694761200"; d="scan'208";a="849505459" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by FMSMGA003.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 25 Oct 2023 04:36:32 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Wed, 25 Oct 2023 04:36:31 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34 via Frontend Transport; Wed, 25 Oct 2023 04:36:31 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.41) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.32; Wed, 25 Oct 2023 04:36:31 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OZJUsMmpg1sOMezNzc162SdGg/1Tl0iyUMSHaUqFQCC6ryYgPqFndD+9E7KsFzkdlyxAubBTl7hKdGwY79Zi1HyVBrYBn0R+WVbZiL++vhgImUDPVK+4ich3VKr56nhSbKZL2O07Ciwiv4Y0SHPu9dcMgGwaXKmW5QRaZc12QnWDQn23XNGLjee42SzSTeLiuNZfy/RPCt+E6MquNe5boFajI240wLZbINVjXE9Md+3H7XfC3xQplZPkWj3TRrIDeiCP/WWkvlTpafjT16YVlLP1Jwj+lxH8C3jkvmXhUc4SccOzkOd9pi8JTYyeA/1Mjt7gZbupg+wFvugGTsS/ZA== 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=WeWuGAqQj7mlBgc4u3kVF6q/OZ96b4IpyrRkaXyNvis=; b=OUHq5RHjkISemukpVe2+yIExnZJDqDBm7EFGuc89WFVVEBMNLykbBOdkPhlWWe6vuIKdLTMmk7T0ejdAjuto/ZAynwlUQCNsEu72+SeNkuAFMhtQsotF1vAt/om/hphADCkvNeoqUCn3bW7Vjm1rwkUHTcqz2jMQy0pLjqVB+pEgxDFhZUcZyQQvlvAyVLoeCvwNHPF62lEx0jjFVhEm+LdK5TNpUC42mZ7r4YzvEr+2xRJq+DC6XQpHIm39rLQAobBTeRQ/hY5Oc+N4/m+FuvuIb1rU/FOawhvxiHRo7JoSMJbk8U7bMakzOhrvjkAZ29TxS7cTScSQ0JhXQP34Wg== 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 DM4PR11MB6019.namprd11.prod.outlook.com (2603:10b6:8:60::5) by IA1PR11MB6539.namprd11.prod.outlook.com (2603:10b6:208:3a1::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.26; Wed, 25 Oct 2023 11:36:29 +0000 Received: from DM4PR11MB6019.namprd11.prod.outlook.com ([fe80::ea97:f0a2:fffc:b892]) by DM4PR11MB6019.namprd11.prod.outlook.com ([fe80::ea97:f0a2:fffc:b892%3]) with mapi id 15.20.6907.028; Wed, 25 Oct 2023 11:36:28 +0000 From: "Hogander, Jouni" To: "Upadhyay, Tejas" , "tzimmermann@suse.de" , "ville.syrjala@linux.intel.com" , "Vivi, Rodrigo" , "joonas.lahtinen@linux.intel.com" , "javierm@redhat.com" , "tvrtko.ursulin@linux.intel.com" , "Deak, Imre" , "airlied@gmail.com" , "jani.nikula@linux.intel.com" , "daniel@ffwll.ch" Thread-Topic: [PATCH v5 7/7] drm/i915: Implement fbdev emulation as in-kernel client Thread-Index: AQHZ8S1tD0L88/Gxm0eFpuwH0mNy/LBajJ4A Date: Wed, 25 Oct 2023 11:36:28 +0000 Message-ID: <199bdb57b0f48e6f77f7effc90dcffcae8213285.camel@intel.com> References: <20230927102808.18650-1-tzimmermann@suse.de> <20230927102808.18650-8-tzimmermann@suse.de> In-Reply-To: <20230927102808.18650-8-tzimmermann@suse.de> 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: DM4PR11MB6019:EE_|IA1PR11MB6539:EE_ x-ms-office365-filtering-correlation-id: acfd0a3c-28d5-4e9b-d356-08dbd54ea0b0 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: TDEMUHtFjrcdHBHvVvu91GtZfALhrY6zXzeKNntnT1fzwLBBuybgk4gM/4UY9wmzALJJItheRqIth2rKI1V+gzMh9e0Dp5vR8DA7/niSKD8V7/zQD0xJ2t1Yb385DHOZ1+wNvl4rjeFZKpFGPhXrz4++5GiZjlG2GHIz3r/BsdE6iDJxzK3ECtzMOwpfA3obG6Tr7DFraEsjq2ZN8W3F7GXzLFIRKLKGMUFqV6gWsEmKF4207a+B1Y74EVnCcmPXHmH2p7mj40p2REtRY3XmFrgTWudK+nmMpErlJzTq29hKXd/i/SXxTTMXum5oqNMwjKWkWNoaQucNhcy1B3hLJNMEGheym3+PpQ2PGoouu+KJGRwHbSoZvtjwkSDNV/PwaYaCY5zcc9ZfvTqgqNn3V2jSULPTayl565uoQm8VsBj8YiyNEjUHRBin7lrsL4hKJKaAB1pPxmlJ8NCOHsJU+1ULQ9NTaMJKvHiDfOAl5MRvLioIf5lFoXhggRBtQ9l5ILAivrXqwwYGQhcDfn65gawdugu7V85UV/0hVQ6Ifnz/2DXY8cQCiyW5oZFV8U5iLqyZR97Ju6MYMfN6kxhlusssOdjF42atWjznBz374UCMphjTYJI+Rvg6NIS/RI4ZFbkaSVYsdLLOVas4NKr6rg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB6019.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366004)(376002)(346002)(136003)(39860400002)(396003)(230922051799003)(451199024)(64100799003)(1800799009)(186009)(36756003)(66446008)(38100700002)(82960400001)(122000001)(8676002)(66556008)(110136005)(76116006)(66476007)(54906003)(86362001)(91956017)(66574015)(64756008)(83380400001)(71200400001)(6506007)(2616005)(316002)(41300700001)(478600001)(4326008)(8936002)(26005)(6486002)(2906002)(66946007)(5660300002)(30864003)(6512007)(921008)(38070700009)(7416002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QXUwbmxTQnJBVWxseW8yT3QzdUVPUTg5WnRsNGpmZy9ZL1JzSmVFQ3EyMDZu?= =?utf-8?B?dWxKVDVUUyt6WTRFalZ6OTE2K3FLb2ZpbE0yQVV3eFQxeFhxa2hTajF0ZWQ0?= =?utf-8?B?aVBlOUR6dEYrSDBud1FYYldMRVFVbWd4cEhRRWhwWVFGcEE1SDhtbHY5VDhP?= =?utf-8?B?Z2ZwNnJXdWhOQ3FrVkJvREFJa2ZnendpZWdTeEl5aWpkeWdNTklsMnRnSitK?= =?utf-8?B?dXo3cS90eDFjNkxMVGswSVJrRGdGMTZ4eW9PV3pGVU9XWGswWFE0RUUrNjRr?= =?utf-8?B?ekg4TXhPWWZaNnVmazFlcUhXTmwxSGE3U3M4a0I1anlsTWZTN3F5M0U5d1Zx?= =?utf-8?B?bWdUSWh5RG1ISEhEdWwxZTluWXR5TXpDOEFGd2pYQzlHOEZZbXlnVXBQWmlo?= =?utf-8?B?eDY4ODZlSzF1U01LZU9KdzdsZEwwZ0UyZkwzQk1yRHZ6T2x0NmJRYnFKN0ZS?= =?utf-8?B?Yi9DL1dwcFBkTFdMVW5adXJpckJTL3I3UVl2NlM2Y2haRjJJVVpUQ1NPNi9P?= =?utf-8?B?M2pxOHhRazhES25iOEQyNGpJNXJzczVibExmV0ExNW1lQzJRdStaU1o1Z0px?= =?utf-8?B?NVNNalFGVnlxS1JOUUdGeHNCbXhrOHQweVVOVUoxMTVwd3o0aHlFRTZJb2Ur?= =?utf-8?B?c3ZrWGJuazRVc2YvbTVJMWpHYzdZSFZjYUE4ck1tMnFsVGhhSlg0ZkZQeURZ?= =?utf-8?B?dnV1OUZtaDNFcDVOZU9tNVNweDNHQ0RtY2JWbWhkcnJOeWI4TVNMNUhxNTFk?= =?utf-8?B?ZlI1aEc5RjFxQmpub2tWMFcybGtMZ0V4dzllTFBseEIzbHFHSjVIeFBiOEpi?= =?utf-8?B?ekZLSTJJVnVTNm04NU8xUTVrd0gvNzYwRDBUdW5KVkhBKzFWRGZST3NTaFll?= =?utf-8?B?TFF0YS9wU0VvdGxDZ3dMc2NDYTlrLytvbnE1ekplbjRIMXNXUXV4M2JyeGh2?= =?utf-8?B?aGhxSmZ4Mng1ZG9jblUyNGZUWm0xbkVUMXRGZnAyY01hV0tIV3FoVWZFQjE3?= =?utf-8?B?ZUxsRndYVlFYUGdveG8wUHBPM0U1cW5OcUh3b0hiMklwOWtkTVdRQWhjdzhh?= =?utf-8?B?Z1dpQWdKQU81bnZkNkd3U1FYZW1aRURUSjhzNWdyWDdSODB1N202elRLOWFs?= =?utf-8?B?NFdQZDZ3bzMyZDMyOTVYYVBjNFJ4ZnpBZ2laZUl4aVJiOW44cWdhOVl2VmZD?= =?utf-8?B?YS94WDRQNElVS0tSSHRFRk1EaFdXZVhQRTlFZkdNWEJ2OU55eU1oMkZ0ekZM?= =?utf-8?B?K3o3dy9qR0U3ZGtDVWlYV1M0K3kwbjgzRkt2cXd5ay91VjNKN2t3QUYzcTFq?= =?utf-8?B?aS8zbzhlSjBuTmNRYXBOcFFyUFJLVGY1ZFQyVXdkWjJiUzNWL0ZLOC9HNmM3?= =?utf-8?B?Tm02VTZYeklTNS9XNU4yTWxyQnl5dVpEdmg4aXcrZUJ3NVhtUG5EYXVtbkE4?= =?utf-8?B?MXlZd3FvQXNUSGRoejlheTJCajlRUU4yWTQydjc2dFZCSWJYNGprU1JlVzJ1?= =?utf-8?B?N3R3ampuN09DeGkzUzNzV1RIRDJnVGFQdEhha0xITlBvaUxWd0RhbFVYSFpI?= =?utf-8?B?WlRxMi90angxREM4MERoNWRVQkVFUCtHaG5uenltci95dkFNa3hKZUU0TVFC?= =?utf-8?B?WVVxUXNFNE1SU2FhUXNWREozdjQxZFZHb0ttRnNOdEMzNFhCUjFEK2tkMWVk?= =?utf-8?B?SWhpZnVJVnRZZXh5QWZzU2N3L1VhYm5EYjVIcFBUcHIzSW9iS28rTE9xNzVq?= =?utf-8?B?MmN0V1p1TFp3eElrSFB3dUFPbjIyRVQxUnhRZkcyemRJOUlMRFNRNWJrN2ZW?= =?utf-8?B?RTRDby9tUHRKOHBSZG5icVBpOHNtYlkzZ3JlWnMrWjBYQ0ZFaFZzZEM5YVdx?= =?utf-8?B?c0JNMGV3MHJGc21ZRWxnSFpMWitIeWtic0RVdTNGbThjcjl2UXpaa1RucmVU?= =?utf-8?B?MDhXVHJueEFNQU1mSnVjYVBCWjVVUTAvTXRrbVR4SzZCcXprZkVCdlp3ZXNC?= =?utf-8?B?SDFBQzhRNVNqR0kvYmRIRUxMMzBOUk5PaHdLdFlVOWQ5R1Ywc1NLdWsxYUlz?= =?utf-8?B?eS9NN1BGUDZBMzhTemYrRFY4MXJsSjhXVUdDYit3WmdWZE1rOExwYUNBb0NX?= =?utf-8?B?TU1tZ0ZOdmhyWk1SdUVrSnlGUWVsZWJKOGZpcE5JQkJWUldKR3R2TldlYmR2?= =?utf-8?B?cXc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB6019.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: acfd0a3c-28d5-4e9b-d356-08dbd54ea0b0 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Oct 2023 11:36:28.2774 (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: SvWNeGvaf9z6Y9XOK+SvN1PwLFp/Op5qfULFwHxnQBSrLeL8r3EdvCgRbjVWqSiABXEmE3/HpeAEdWQ5uKX8Cx/pjZs44d/tuIIxwPedVnU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB6539 X-OriginatorOrg: intel.com Subject: Re: [Intel-gfx] [PATCH v5 7/7] drm/i915: Implement fbdev emulation as in-kernel client X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" SGkgVGhvbWFzLCBjb3VwbGUgb2YgbWlub3IgY29tbWVudHMgYW5kIGEgcXVlc3Rpb24gYmVsb3cu CgpPbiBXZWQsIDIwMjMtMDktMjcgYXQgMTI6MjYgKzAyMDAsIFRob21hcyBaaW1tZXJtYW5uIHdy b3RlOgo+IFJlcGxhY2UgYWxsIGNvZGUgdGhhdCBpbml0aWFsaXplcyBvciByZWxlYXNlcyBmYmRl diBlbXVsYXRpb24KPiB0aHJvdWdob3V0IHRoZSBkcml2ZXIuIEluc3RlYWQgaW5pdGlhbGl6ZSB0 aGUgZmJkZXYgY2xpZW50IGJ5IGEKPiBzaW5nbGUgY2FsbCB0byBpOTE1X2ZiZGV2X3NldHVwKCkg YWZ0ZXIgaTkxNSBoYXMgcmVnaXN0ZXJlZCBpdHMKCmludGVsX2ZiZGV2X3NldHVwCgo+IERSTSBk ZXZpY2UuIEp1c3QgbGlrZSBzaW1pbGFyIGNvZGUgaW4gb3RoZXIgZHJpdmVycywgaTkxNSBmYmRl dgo+IGVtdWxhdGlvbiBub3cgYWN0cyBhcyBhIHJlZ3VsYXIgRFJNIGNsaWVudC4KPiAKPiBUaGUg ZmJkZXYgY2xpZW50IHNldHVwIGNvbnNpc3RzIG9mIHRoZSBpbml0aWFsIHByZXBhcmF0aW9uIGFu ZCB0aGUKPiBob3QtcGx1Z2dpbmcgb2YgdGhlIGRpc3BsYXkuIFRoZSBsYXR0ZXIgY3JlYXRlcyB0 aGUgZmJkZXYgZGV2aWNlCj4gYW5kIHNldHMgdXAgdGhlIGZiZGV2IGZyYW1lYnVmZmVyLiBUaGUg c2V0dXAgcGVyZm9ybXMgZGlzcGxheQo+IGhvdC1wbHVnZ2luZyBvbmNlLiBJZiBubyBkaXNwbGF5 IGNhbiBiZSBkZXRlY3RlZCwgRFJNIHByb2JlIGhlbHBlcnMKPiByZS1ydW4gdGhlIGRldGVjdGlv biBvbiBlYWNoIGhvdHBsdWcgZXZlbnQuCj4gCj4gQSBjYWxsIHRvIGRybV9kZXZfdW5yZWdpc3Rl cigpIHJlbGVhc2VzIHRoZSBjbGllbnQgYXV0b21hdGljYWxseS4KPiBObyBmdXJ0aGVyIGFjdGlv biBpcyByZXF1aXJlZCB3aXRoaW4gaTkxNS4gSWYgdGhlIGZiZGV2IGZyYW1lYnVmZmVyCj4gaGFz IGJlZW4gZnVsbHkgc2V0IHVwLCBzdHJ1Y3QgZmJfb3BzLmZiX2Rlc3Ryb3kgaW1wbGVtZW50cyB0 aGUKPiByZWxlYXNlLiBGb3IgcGFydGlhbGx5IGluaXRpYWxpemVkIGVtdWxhdGlvbiwgdGhlIGZi ZGV2IGNsaWVudAo+IHJldmVydHMgdGhlIGluaXRpYWwgc2V0dXAuCj4gCj4gdjM6Cj4gwqDCoMKg wqDCoMKgwqDCoCogYXMgYmVmb3JlLCBzaWxlbnRseSBpZ25vcmUgZGV2aWNlcyB3aXRob3V0IGRp c3BsYXlzCj4gdjI6Cj4gwqDCoMKgwqDCoMKgwqDCoCogbGV0IGRybV9jbGllbnRfcmVnaXN0ZXIo KSBoYW5kbGUgaW5pdGlhbCBob3RwbHVnCj4gwqDCoMKgwqDCoMKgwqDCoCogZml4IGRyaXZlciBu YW1lIGluIGVycm9yIG1lc3NhZ2UgKEphbmkpCj4gwqDCoMKgwqDCoMKgwqDCoCogZml4IG5vbi1m YmRldiBidWlsZCAoa2VybmVsIHRlc3Qgcm9ib3QpCj4gCj4gU2lnbmVkLW9mZi1ieTogVGhvbWFz IFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2UuZGU+Cj4gLS0tCj4gwqBkcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuY8KgIHzCoMKgIDEgLQo+IMKgLi4uL2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9kcml2ZXIuY8KgwqAgfMKgIDE4IC0tCj4gwqBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiZGV2LmPCoMKgwqAgfCAxODAgKysrKysr KystLS0tLS0tLQo+IC0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Zi ZGV2LmjCoMKgwqAgfMKgIDIwICstCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RyaXZl ci5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCAyICsKPiDCoDUgZmlsZXMgY2hhbmdlZCwg ODMgaW5zZXJ0aW9ucygrKSwgMTM4IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBlZGJjZjU5Njg4MDRkLi43 ZWZhOGQyNzg3YzM5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5LmMKPiBAQCAtODEsNyArODEsNiBAQAo+IMKgI2luY2x1ZGUgImludGVsX2R2by5o Igo+IMKgI2luY2x1ZGUgImludGVsX2ZiLmgiCj4gwqAjaW5jbHVkZSAiaW50ZWxfZmJjLmgiCj4g LSNpbmNsdWRlICJpbnRlbF9mYmRldi5oIgo+IMKgI2luY2x1ZGUgImludGVsX2ZkaS5oIgo+IMKg I2luY2x1ZGUgImludGVsX2ZpZm9fdW5kZXJydW4uaCIKPiDCoCNpbmNsdWRlICJpbnRlbF9mcm9u dGJ1ZmZlci5oIgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXlfZHJpdmVyLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGlzcGxheV9kcml2ZXIuYwo+IGluZGV4IGZmZGNkZGQxOTQzZTAuLjIxM2E0ZWU5M2ZmYzIg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5 X2RyaXZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNw bGF5X2RyaXZlci5jCj4gQEAgLTM2NCwxMCArMzY0LDYgQEAgaW50IGludGVsX2Rpc3BsYXlfZHJp dmVyX3Byb2JlKHN0cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gwqAKPiDCoMKgwqDC oMKgwqDCoMKgaW50ZWxfb3ZlcmxheV9zZXR1cChpOTE1KTsKPiDCoAo+IC3CoMKgwqDCoMKgwqDC oHJldCA9IGludGVsX2ZiZGV2X2luaXQoJmk5MTUtPmRybSk7Cj4gLcKgwqDCoMKgwqDCoMKgaWYg KHJldCkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHJldDsKPiAtCj4g wqDCoMKgwqDCoMKgwqDCoC8qIE9ubHkgZW5hYmxlIGhvdHBsdWcgaGFuZGxpbmcgb25jZSB0aGUg ZmJkZXYgaXMgZnVsbHkgc2V0Cj4gdXAuICovCj4gwqDCoMKgwqDCoMKgwqDCoGludGVsX2hwZF9p bml0KGk5MTUpOwo+IMKgwqDCoMKgwqDCoMKgwqBpbnRlbF9ocGRfcG9sbF9kaXNhYmxlKGk5MTUp Owo+IEBAIC0zOTIsMTYgKzM4OCw2IEBAIHZvaWQgaW50ZWxfZGlzcGxheV9kcml2ZXJfcmVnaXN0 ZXIoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiDCoAo+IMKgwqDCoMKgwqDCoMKg wqBpbnRlbF9kaXNwbGF5X2RlYnVnZnNfcmVnaXN0ZXIoaTkxNSk7Cj4gwqAKPiAtwqDCoMKgwqDC oMKgwqAvKgo+IC3CoMKgwqDCoMKgwqDCoCAqIFNvbWUgcG9ydHMgcmVxdWlyZSBjb3JyZWN0bHkg c2V0LXVwIGhwZCByZWdpc3RlcnMgZm9yCj4gLcKgwqDCoMKgwqDCoMKgICogZGV0ZWN0aW9uIHRv IHdvcmsgcHJvcGVybHkgKGxlYWRpbmcgdG8gZ2hvc3QgY29ubmVjdGVkCj4gLcKgwqDCoMKgwqDC oMKgICogY29ubmVjdG9yIHN0YXR1cyksIGUuZy4gVkdBIG9uIGdtNDUuwqAgSGVuY2Ugd2UgY2Fu IG9ubHkKPiBzZXQKPiAtwqDCoMKgwqDCoMKgwqAgKiB1cCB0aGUgaW5pdGlhbCBmYmRldiBjb25m aWcgYWZ0ZXIgaHBkIGlycXMgYXJlIGZ1bGx5Cj4gLcKgwqDCoMKgwqDCoMKgICogZW5hYmxlZC4g V2UgZG8gaXQgbGFzdCBzbyB0aGF0IHRoZSBhc3luYyBjb25maWcgY2Fubm90IHJ1bgo+IC3CoMKg wqDCoMKgwqDCoCAqIGJlZm9yZSB0aGUgY29ubmVjdG9ycyBhcmUgcmVnaXN0ZXJlZC4KPiAtwqDC oMKgwqDCoMKgwqAgKi8KPiAtwqDCoMKgwqDCoMKgwqBpbnRlbF9mYmRldl9pbml0aWFsX2NvbmZp Z19hc3luYyhpOTE1KTsKPiAtCj4gwqDCoMKgwqDCoMKgwqDCoC8qCj4gwqDCoMKgwqDCoMKgwqDC oCAqIFdlIG5lZWQgdG8gY29vcmRpbmF0ZSB0aGUgaG90cGx1Z3Mgd2l0aCB0aGUgYXN5bmNocm9u b3VzCj4gwqDCoMKgwqDCoMKgwqDCoCAqIGZiZGV2IGNvbmZpZ3VyYXRpb24sIGZvciB3aGljaCB3 ZSB1c2UgdGhlCj4gQEAgLTQ0NSw5ICs0MzEsNiBAQCB2b2lkIGludGVsX2Rpc3BsYXlfZHJpdmVy X3JlbW92ZV9ub2lycShzdHJ1Y3QKPiBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+IMKgwqDCoMKg wqDCoMKgwqAgKi8KPiDCoMKgwqDCoMKgwqDCoMKgaW50ZWxfaHBkX3BvbGxfZmluaShpOTE1KTsK PiDCoAo+IC3CoMKgwqDCoMKgwqDCoC8qIHBvbGwgd29yayBjYW4gY2FsbCBpbnRvIGZiZGV2LCBo ZW5jZSBjbGVhbiB0aGF0IHVwCj4gYWZ0ZXJ3YXJkcyAqLwo+IC3CoMKgwqDCoMKgwqDCoGludGVs X2ZiZGV2X2ZpbmkoaTkxNSk7Cj4gLQo+IMKgwqDCoMKgwqDCoMKgwqBpbnRlbF91bnJlZ2lzdGVy X2RzbV9oYW5kbGVyKCk7Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgLyogZmx1c2ggYW55IGRlbGF5 ZWQgdGFza3Mgb3IgcGVuZGluZyB3b3JrICovCj4gQEAgLTQ4NCw3ICs0NjcsNiBAQCB2b2lkIGlu dGVsX2Rpc3BsYXlfZHJpdmVyX3VucmVnaXN0ZXIoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSkKPiDCoMKgwqDCoMKgwqDCoMKgaWYgKCFIQVNfRElTUExBWShpOTE1KSkKPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybjsKPiDCoAo+IC3CoMKgwqDCoMKgwqDCoGlu dGVsX2ZiZGV2X3VucmVnaXN0ZXIoaTkxNSk7Cj4gwqDCoMKgwqDCoMKgwqDCoGludGVsX2F1ZGlv X2RlaW5pdChpOTE1KTsKPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqAvKgo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiZGV2LmMKPiBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJkZXYuYwo+IGluZGV4IDM5ZGU2MWQ0ZTc5MDYuLjEw MGE0YWFmMWI3ZTQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9mYmRldi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9m YmRldi5jCj4gQEAgLTI0LDcgKzI0LDYgQEAKPiDCoCAqwqDCoMKgwqAgRGF2aWQgQWlybGllCj4g wqAgKi8KPiDCoAo+IC0jaW5jbHVkZSA8bGludXgvYXN5bmMuaD4KPiDCoCNpbmNsdWRlIDxsaW51 eC9jb25zb2xlLmg+Cj4gwqAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KPiDCoCNpbmNsdWRlIDxs aW51eC9lcnJuby5oPgo+IEBAIC0zOSw2ICszOCw3IEBACj4gwqAjaW5jbHVkZSA8bGludXgvdmdh X3N3aXRjaGVyb28uaD4KPiDCoAo+IMKgI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgo+ICsjaW5j bHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgo+IMKgI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVs cGVyLmg+Cj4gwqAjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KPiDCoCNpbmNsdWRlIDxkcm0v ZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KPiBAQCAtNTgsNyArNTgsNiBAQCBzdHJ1Y3Qg aW50ZWxfZmJkZXYgewo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIg KmZiOwo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKPiDCoMKgwqDCoMKg wqDCoMKgdW5zaWduZWQgbG9uZyB2bWFfZmxhZ3M7Cj4gLcKgwqDCoMKgwqDCoMKgYXN5bmNfY29v a2llX3QgY29va2llOwo+IMKgwqDCoMKgwqDCoMKgwqBpbnQgcHJlZmVycmVkX2JwcDsKPiDCoAo+ IMKgwqDCoMKgwqDCoMKgwqAvKiBXaGV0aGVyIG9yIG5vdCBmYmRldiBocGQgcHJvY2Vzc2luZyBp cyB0ZW1wb3JhcmlseQo+IHN1c3BlbmRlZCAqLwo+IEBAIC0xMzUsNiArMTM0LDI2IEBAIHN0YXRp YyBpbnQgaW50ZWxfZmJkZXZfbW1hcChzdHJ1Y3QgZmJfaW5mbwo+ICppbmZvLCBzdHJ1Y3Qgdm1f YXJlYV9zdHJ1Y3QgKnZtYSkKPiDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGk5MTVfZ2VtX2ZiX21t YXAob2JqLCB2bWEpOwo+IMKgfQo+IMKgCj4gK3N0YXRpYyB2b2lkIGludGVsX2ZiZGV2X2ZiX2Rl c3Ryb3koc3RydWN0IGZiX2luZm8gKmluZm8pCj4gK3sKPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3Qg ZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyID0gaW5mby0+cGFyOwo+ICvCoMKgwqDCoMKgwqDCoHN0 cnVjdCBpbnRlbF9mYmRldiAqaWZiZGV2ID0gY29udGFpbmVyX29mKGZiX2hlbHBlciwgc3RydWN0 Cj4gaW50ZWxfZmJkZXYsIGhlbHBlcik7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGRybV9mYl9oZWxw ZXJfZmluaSgmaWZiZGV2LT5oZWxwZXIpOwo+ICsKPiArwqDCoMKgwqDCoMKgwqAvKgo+ICvCoMKg wqDCoMKgwqDCoCAqIFdlIHJlbHkgb24gdGhlIG9iamVjdC1mcmVlIHRvIHJlbGVhc2UgdGhlIFZN QSBwaW5uaW5nIGZvcgo+ICvCoMKgwqDCoMKgwqDCoCAqIHRoZSBpbmZvLT5zY3JlZW5fYmFzZSBt bWFwaW5nLiBMZWFraW5nIHRoZSBWTUEgaXMgc2ltcGxlcgo+IHRoYW4KPiArwqDCoMKgwqDCoMKg wqAgKiB0cnlpbmcgdG8gcmVjdGlmeSBhbGwgdGhlIHBvc3NpYmxlIGVycm9yIHBhdGhzIGxlYWRp bmcKPiBoZXJlLgo+ICvCoMKgwqDCoMKgwqDCoCAqLwo+ICvCoMKgwqDCoMKgwqDCoGludGVsX3Vu cGluX2ZiX3ZtYShpZmJkZXYtPnZtYSwgaWZiZGV2LT52bWFfZmxhZ3MpOwo+ICvCoMKgwqDCoMKg wqDCoGRybV9mcmFtZWJ1ZmZlcl9yZW1vdmUoJmlmYmRldi0+ZmItPmJhc2UpOwo+ICsKPiArwqDC oMKgwqDCoMKgwqBkcm1fY2xpZW50X3JlbGVhc2UoJmZiX2hlbHBlci0+Y2xpZW50KTsKPiArwqDC oMKgwqDCoMKgwqBkcm1fZmJfaGVscGVyX3VucHJlcGFyZSgmaWZiZGV2LT5oZWxwZXIpOwo+ICvC oMKgwqDCoMKgwqDCoGtmcmVlKGlmYmRldik7Cj4gK30KPiArCj4gwqBzdGF0aWMgY29uc3Qgc3Ry dWN0IGZiX29wcyBpbnRlbGZiX29wcyA9IHsKPiDCoMKgwqDCoMKgwqDCoMKgLm93bmVyID0gVEhJ U19NT0RVTEUsCj4gwqDCoMKgwqDCoMKgwqDCoF9fRkJfREVGQVVMVF9ERUZFUlJFRF9PUFNfUkRX UihpbnRlbF9mYmRldiksCj4gQEAgLTE0NCw2ICsxNjMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGZiX29wcyBpbnRlbGZiX29wcyA9IHsKPiDCoMKgwqDCoMKgwqDCoMKgLmZiX3Bhbl9kaXNwbGF5 ID0gaW50ZWxfZmJkZXZfcGFuX2Rpc3BsYXksCj4gwqDCoMKgwqDCoMKgwqDCoF9fRkJfREVGQVVM VF9ERUZFUlJFRF9PUFNfRFJBVyhpbnRlbF9mYmRldiksCj4gwqDCoMKgwqDCoMKgwqDCoC5mYl9t bWFwID0gaW50ZWxfZmJkZXZfbW1hcCwKPiArwqDCoMKgwqDCoMKgwqAuZmJfZGVzdHJveSA9IGlu dGVsX2ZiZGV2X2ZiX2Rlc3Ryb3ksCj4gwqB9Owo+IMKgCj4gwqBzdGF0aWMgaW50IGludGVsZmJf YWxsb2Moc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKPiBAQCAtMjEyLDcgKzIzMiw2IEBA IHN0YXRpYyBpbnQgaW50ZWxmYl9jcmVhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIKPiAqaGVscGVy LAo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2ZiID0g aWZiZGV2LT5mYjsKPiDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGhl bHBlci0+ZGV2Owo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gLcKgwqDCoMKgwqDCoMKgc3RydWN0IHBjaV9kZXYgKnBk ZXYgPSB0b19wY2lfZGV2KGRldl9wcml2LT5kcm0uZGV2KTsKPiDCoMKgwqDCoMKgwqDCoMKgc3Ry dWN0IGk5MTVfZ2d0dCAqZ2d0dCA9IHRvX2d0KGRldl9wcml2KS0+Z2d0dDsKPiDCoMKgwqDCoMKg wqDCoMKgY29uc3Qgc3RydWN0IGk5MTVfZ3R0X3ZpZXcgdmlldyA9IHsKPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoC50eXBlID0gSTkxNV9HVFRfVklFV19OT1JNQUwsCj4gQEAgLTMz Nyw3ICszNTYsNyBAQCBzdGF0aWMgaW50IGludGVsZmJfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVs cGVyCj4gKmhlbHBlciwKPiDCoMKgwqDCoMKgwqDCoMKgaWZiZGV2LT52bWFfZmxhZ3MgPSBmbGFn czsKPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqBpbnRlbF9ydW50aW1lX3BtX3B1dCgmZGV2X3ByaXYt PnJ1bnRpbWVfcG0sIHdha2VyZWYpOwo+IC3CoMKgwqDCoMKgwqDCoHZnYV9zd2l0Y2hlcm9vX2Ns aWVudF9mYl9zZXQocGRldiwgaW5mbyk7Cj4gKwo+IMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gMDsK PiDCoAo+IMKgb3V0X3VucGluOgo+IEBAIC0zNjMsMjYgKzM4Miw2IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2ZiX2hlbHBlcl9mdW5jcwo+IGludGVsX2ZiX2hlbHBlcl9mdW5jcyA9IHsKPiDC oMKgwqDCoMKgwqDCoMKgLmZiX2RpcnR5ID0gaW50ZWxmYl9kaXJ0eSwKPiDCoH07Cj4gwqAKPiAt c3RhdGljIHZvaWQgaW50ZWxfZmJkZXZfZGVzdHJveShzdHJ1Y3QgaW50ZWxfZmJkZXYgKmlmYmRl dikKPiAtewo+IC3CoMKgwqDCoMKgwqDCoC8qIFdlIHJlbHkgb24gdGhlIG9iamVjdC1mcmVlIHRv IHJlbGVhc2UgdGhlIFZNQSBwaW5uaW5nIGZvcgo+IC3CoMKgwqDCoMKgwqDCoCAqIHRoZSBpbmZv LT5zY3JlZW5fYmFzZSBtbWFwaW5nLiBMZWFraW5nIHRoZSBWTUEgaXMgc2ltcGxlcgo+IHRoYW4K PiAtwqDCoMKgwqDCoMKgwqAgKiB0cnlpbmcgdG8gcmVjdGlmeSBhbGwgdGhlIHBvc3NpYmxlIGVy cm9yIHBhdGhzIGxlYWRpbmcKPiBoZXJlLgo+IC3CoMKgwqDCoMKgwqDCoCAqLwo+IC0KPiAtwqDC oMKgwqDCoMKgwqBkcm1fZmJfaGVscGVyX2ZpbmkoJmlmYmRldi0+aGVscGVyKTsKPiAtCj4gLcKg wqDCoMKgwqDCoMKgaWYgKGlmYmRldi0+dm1hKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBpbnRlbF91bnBpbl9mYl92bWEoaWZiZGV2LT52bWEsIGlmYmRldi0+dm1hX2ZsYWdzKTsK PiAtCj4gLcKgwqDCoMKgwqDCoMKgaWYgKGlmYmRldi0+ZmIpCj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGRybV9mcmFtZWJ1ZmZlcl9yZW1vdmUoJmlmYmRldi0+ZmItPmJhc2UpOwo+ IC0KPiAtwqDCoMKgwqDCoMKgwqBkcm1fY2xpZW50X3JlbGVhc2UoJmlmYmRldi0+aGVscGVyLmNs aWVudCk7Cj4gLcKgwqDCoMKgwqDCoMKgZHJtX2ZiX2hlbHBlcl91bnByZXBhcmUoJmlmYmRldi0+ aGVscGVyKTsKPiAtwqDCoMKgwqDCoMKgwqBrZnJlZShpZmJkZXYpOwo+IC19Cj4gLQo+IMKgLyoK PiDCoCAqIEJ1aWxkIGFuIGludGVsX2ZiZGV2IHN0cnVjdCB1c2luZyBhIEJJT1MgYWxsb2NhdGVk IGZyYW1lYnVmZmVyLAo+IGlmIHBvc3NpYmxlLgo+IMKgICogVGhlIGNvcmUgZGlzcGxheSBjb2Rl IHdpbGwgaGF2ZSByZWFkIG91dCB0aGUgY3VycmVudCBwbGFuZQo+IGNvbmZpZ3VyYXRpb24sCj4g QEAgLTU0NiwxNiArNTQ1LDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJkZXZfc3VzcGVuZF93b3Jr ZXIoc3RydWN0Cj4gd29ya19zdHJ1Y3QgKndvcmspCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRydWUpOwo+IMKgfQo+IMKg Cj4gLXN0YXRpYyB2b2lkIGludGVsX2ZiZGV2X3N5bmMoc3RydWN0IGludGVsX2ZiZGV2ICppZmJk ZXYpCj4gLXsKPiAtwqDCoMKgwqDCoMKgwqBpZiAoIWlmYmRldi0+Y29va2llKQo+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm47Cj4gLQo+IC3CoMKgwqDCoMKgwqDCoC8qIE9u bHkgc2VyaWFsaXNlcyB3aXRoIGFsbCBwcmVjZWRpbmcgYXN5bmMgY2FsbHMsIGhlbmNlICsxCj4g Ki8KPiAtwqDCoMKgwqDCoMKgwqBhc3luY19zeW5jaHJvbml6ZV9jb29raWUoaWZiZGV2LT5jb29r aWUgKyAxKTsKPiAtwqDCoMKgwqDCoMKgwqBpZmJkZXYtPmNvb2tpZSA9IDA7Cj4gLX0KPiAtCj4g wqAvKiBTdXNwZW5kcy9yZXN1bWVzIGZiZGV2IHByb2Nlc3Npbmcgb2YgaW5jb21pbmcgSFBEIGV2 ZW50cy4gV2hlbgo+IHJlc3VtaW5nIEhQRAo+IMKgICogcHJvY2Vzc2luZywgZmJkZXYgd2lsbCBw ZXJmb3JtIGEgZnVsbCBjb25uZWN0b3IgcmVwcm9iZSBpZiBhCj4gaG90cGx1ZyBldmVudAo+IMKg ICogd2FzIHJlY2VpdmVkIHdoaWxlIEhQRCB3YXMgc3VzcGVuZGVkLgo+IEBAIC02NDYsOCArNjM1 LDYgQEAgc3RhdGljIHZvaWQKPiBpbnRlbF9mYmRldl9vdXRwdXRfcG9sbF9jaGFuZ2VkKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gwqDCoMKgwqDCoMKgwqDCoGlmICghaWZiZGV2KQo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuOwo+IMKgCj4gLcKgwqDCoMKgwqDCoMKg aW50ZWxfZmJkZXZfc3luYyhpZmJkZXYpOwo+IC0KPiDCoMKgwqDCoMKgwqDCoMKgbXV0ZXhfbG9j aygmaWZiZGV2LT5ocGRfbG9jayk7Cj4gwqDCoMKgwqDCoMKgwqDCoHNlbmRfaHBkID0gIWlmYmRl di0+aHBkX3N1c3BlbmRlZDsKPiDCoMKgwqDCoMKgwqDCoMKgaWZiZGV2LT5ocGRfd2FpdGluZyA9 IHRydWU7Cj4gQEAgLTY2NCw3ICs2NTEsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9mYmRldl9yZXN0 b3JlX21vZGUoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqDCoMKgwqDC oMKgwqDCoGlmICghaWZiZGV2KQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0 dXJuOwo+IMKgCj4gLcKgwqDCoMKgwqDCoMKgaW50ZWxfZmJkZXZfc3luYyhpZmJkZXYpOwo+IMKg wqDCoMKgwqDCoMKgwqBpZiAoIWlmYmRldi0+dm1hKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgcmV0dXJuOwo+IMKgCj4gQEAgLTY3Nyw3ICs2NjMsMjAgQEAgc3RhdGljIHZvaWQg aW50ZWxfZmJkZXZfcmVzdG9yZV9tb2RlKHN0cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+IMKgICovCj4gwqAKPiDCoHN0YXRpYyB2b2lkIGludGVsX2ZiZGV2X2NsaWVudF91bnJl Z2lzdGVyKHN0cnVjdCBkcm1fY2xpZW50X2Rldgo+ICpjbGllbnQpCj4gLXsgfQo+ICt7Cj4gK8Kg wqDCoMKgwqDCoMKgc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9Cj4gZHJtX2ZiX2hl bHBlcl9mcm9tX2NsaWVudChjbGllbnQpOwo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBmYl9oZWxwZXItPmRldjsKPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgcGNpX2Rl diAqcGRldiA9IHRvX3BjaV9kZXYoZGV2LT5kZXYpOwo+ICsKPiArwqDCoMKgwqDCoMKgwqBpZiAo ZmJfaGVscGVyLT5pbmZvKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHZnYV9z d2l0Y2hlcm9vX2NsaWVudF9mYl9zZXQocGRldiwgTlVMTCk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGRybV9mYl9oZWxwZXJfdW5yZWdpc3Rlcl9pbmZvKGZiX2hlbHBlcik7Cj4g K8KgwqDCoMKgwqDCoMKgfSBlbHNlIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ZHJtX2ZiX2hlbHBlcl91bnByZXBhcmUoZmJfaGVscGVyKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgZHJtX2NsaWVudF9yZWxlYXNlKCZmYl9oZWxwZXItPmNsaWVudCk7Cj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGtmcmVlKGZiX2hlbHBlcik7Cj4gK8KgwqDCoMKg wqDCoMKgfQo+ICt9Cj4gwqAKPiDCoHN0YXRpYyBpbnQgaW50ZWxfZmJkZXZfY2xpZW50X3Jlc3Rv cmUoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpCj4gwqB7Cj4gQEAgLTY5MSw5ICs2OTAs MzYgQEAgc3RhdGljIGludCBpbnRlbF9mYmRldl9jbGllbnRfcmVzdG9yZShzdHJ1Y3QKPiBkcm1f Y2xpZW50X2RldiAqY2xpZW50KQo+IMKgCj4gwqBzdGF0aWMgaW50IGludGVsX2ZiZGV2X2NsaWVu dF9ob3RwbHVnKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KQo+IMKgewo+IC3CoMKgwqDC oMKgwqDCoGludGVsX2ZiZGV2X291dHB1dF9wb2xsX2NoYW5nZWQoY2xpZW50LT5kZXYpOwo+ICvC oMKgwqDCoMKgwqDCoHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPQo+IGRybV9mYl9o ZWxwZXJfZnJvbV9jbGllbnQoY2xpZW50KTsKPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gY2xpZW50LT5kZXY7Cj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IHBjaV9kZXYg KnBkZXYgPSB0b19wY2lfZGV2KGRldi0+ZGV2KTsKPiArwqDCoMKgwqDCoMKgwqBpbnQgcmV0Owo+ ICsKPiArwqDCoMKgwqDCoMKgwqBpZiAoZGV2LT5mYl9oZWxwZXIpIHsKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgaW50ZWxfZmJkZXZfb3V0cHV0X3BvbGxfY2hhbmdlZChkZXYpOwo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gMDsKPiArwqDCoMKgwqDCoMKg wqB9Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoHJldCA9IGRybV9mYl9oZWxwZXJfaW5pdChkZXYsIGZi X2hlbHBlcik7Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKHJldCkKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgZ290byBlcnJfZHJtX2VycjsKPiArCj4gK8KgwqDCoMKgwqDCoMKgaWYgKCFk cm1fZHJ2X3VzZXNfYXRvbWljX21vZGVzZXQoZGV2KSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgZHJtX2hlbHBlcl9kaXNhYmxlX3VudXNlZF9mdW5jdGlvbnMoZGV2KTsKCkNhbiB5 b3UgcGxlYXNlIGV4cGxhaW4gd2h5IHRoaXMgaXMgbmVlZGVkIGhlcmU/Cgo+ICsKPiArwqDCoMKg wqDCoMKgwqByZXQgPSBkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKGZiX2hlbHBlcik7Cj4g K8KgwqDCoMKgwqDCoMKgaWYgKHJldCkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg Z290byBlcnJfZHJtX2ZiX2hlbHBlcl9maW5pOwo+ICsKPiArwqDCoMKgwqDCoMKgwqB2Z2Ffc3dp dGNoZXJvb19jbGllbnRfZmJfc2V0KHBkZXYsIGZiX2hlbHBlci0+aW5mbyk7Cj4gwqAKPiDCoMKg wqDCoMKgwqDCoMKgcmV0dXJuIDA7Cj4gKwo+ICtlcnJfZHJtX2ZiX2hlbHBlcl9maW5pOgo+ICvC oMKgwqDCoMKgwqDCoGRybV9mYl9oZWxwZXJfZmluaShmYl9oZWxwZXIpOwo+ICtlcnJfZHJtX2Vy cjoKPiArwqDCoMKgwqDCoMKgwqBkcm1fZXJyKGRldiwgIkZhaWxlZCB0byBzZXR1cCBpOTE1IGZi ZGV2IGVtdWxhdGlvbgo+IChyZXQ9JWQpXG4iLCByZXQpOwo+ICvCoMKgwqDCoMKgwqDCoHJldHVy biByZXQ7Cj4gwqB9Cj4gwqAKPiDCoHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NsaWVudF9mdW5j cyBpbnRlbF9mYmRldl9jbGllbnRfZnVuY3MgPSB7Cj4gQEAgLTcwMywyMiArNzI5LDIzIEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NsaWVudF9mdW5jcwo+IGludGVsX2ZiZGV2X2NsaWVudF9m dW5jcyA9IHsKPiDCoMKgwqDCoMKgwqDCoMKgLmhvdHBsdWfCoMKgwqDCoMKgwqDCoMKgPSBpbnRl bF9mYmRldl9jbGllbnRfaG90cGx1ZywKPiDCoH07Cj4gwqAKPiAtaW50IGludGVsX2ZiZGV2X2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArdm9pZCBpbnRlbF9mYmRldl9zZXR1cChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCgpVc2UgaTkxNSByYXRoZXIgdGhhbiBkZXZf cHJpdi4KCkJSLAoKSm91bmkgSMO2Z2FuZGVyCgo+IMKgewo+IC3CoMKgwqDCoMKgwqDCoHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiArwqDCoMKgwqDC oMKgwqBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gwqDCoMKgwqDC oMKgwqDCoHN0cnVjdCBpbnRlbF9mYmRldiAqaWZiZGV2Owo+IMKgwqDCoMKgwqDCoMKgwqBpbnQg cmV0Owo+IMKgCj4gLcKgwqDCoMKgwqDCoMKgaWYgKGRybV9XQVJOX09OKGRldiwgIUhBU19ESVNQ TEFZKGRldl9wcml2KSkpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiAt RU5PREVWOwo+ICvCoMKgwqDCoMKgwqDCoGlmICghSEFTX0RJU1BMQVkoZGV2X3ByaXYpKQo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm47Cj4gwqAKPiDCoMKgwqDCoMKgwqDC oMKgaWZiZGV2ID0ga3phbGxvYyhzaXplb2YoKmlmYmRldiksIEdGUF9LRVJORUwpOwo+IMKgwqDC oMKgwqDCoMKgwqBpZiAoIWlmYmRldikKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg cmV0dXJuIC1FTk9NRU07Cj4gLQo+IC3CoMKgwqDCoMKgwqDCoG11dGV4X2luaXQoJmlmYmRldi0+ aHBkX2xvY2spOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm47Cj4gwqDC oMKgwqDCoMKgwqDCoGRybV9mYl9oZWxwZXJfcHJlcGFyZShkZXYsICZpZmJkZXYtPmhlbHBlciwg MzIsCj4gJmludGVsX2ZiX2hlbHBlcl9mdW5jcyk7Cj4gwqAKPiArwqDCoMKgwqDCoMKgwqBkZXZf cHJpdi0+ZGlzcGxheS5mYmRldi5mYmRldiA9IGlmYmRldjsKPiArwqDCoMKgwqDCoMKgwqBJTklU X1dPUksoJmRldl9wcml2LT5kaXNwbGF5LmZiZGV2LnN1c3BlbmRfd29yaywKPiBpbnRlbF9mYmRl dl9zdXNwZW5kX3dvcmtlcik7Cj4gK8KgwqDCoMKgwqDCoMKgbXV0ZXhfaW5pdCgmaWZiZGV2LT5o cGRfbG9jayk7Cj4gwqDCoMKgwqDCoMKgwqDCoGlmIChpbnRlbF9mYmRldl9pbml0X2Jpb3MoZGV2 LCBpZmJkZXYpKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWZiZGV2LT5oZWxw ZXIucHJlZmVycmVkX2JwcCA9IGlmYmRldi0+cHJlZmVycmVkX2JwcDsKPiDCoMKgwqDCoMKgwqDC oMKgZWxzZQo+IEBAIC03MjYsNjggKzc1MywxOSBAQCBpbnQgaW50ZWxfZmJkZXZfaW5pdChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoHJldCA9IGRybV9jbGll bnRfaW5pdChkZXYsICZpZmJkZXYtPmhlbHBlci5jbGllbnQsICJpOTE1LQo+IGZiZGV2IiwKPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICZpbnRlbF9mYmRldl9jbGllbnRfZnVuY3MpOwo+IC3CoMKgwqDCoMKgwqDCoGlmIChyZXQpCj4g K8KgwqDCoMKgwqDCoMKgaWYgKHJldCkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBkcm1fZXJyKGRldiwgIkZhaWxlZCB0byByZWdpc3RlciBjbGllbnQ6ICVkXG4iLCByZXQpOwo+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZ290byBlcnJfZHJtX2ZiX2hlbHBlcl91 bnByZXBhcmU7Cj4gK8KgwqDCoMKgwqDCoMKgfQo+IMKgCj4gLcKgwqDCoMKgwqDCoMKgcmV0ID0g ZHJtX2ZiX2hlbHBlcl9pbml0KGRldiwgJmlmYmRldi0+aGVscGVyKTsKPiAtwqDCoMKgwqDCoMKg wqBpZiAocmV0KQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBnb3RvIGVycl9kcm1f Y2xpZW50X3JlbGVhc2U7Cj4gLQo+IC3CoMKgwqDCoMKgwqDCoGRldl9wcml2LT5kaXNwbGF5LmZi ZGV2LmZiZGV2ID0gaWZiZGV2Owo+IC3CoMKgwqDCoMKgwqDCoElOSVRfV09SSygmZGV2X3ByaXYt PmRpc3BsYXkuZmJkZXYuc3VzcGVuZF93b3JrLAo+IGludGVsX2ZiZGV2X3N1c3BlbmRfd29ya2Vy KTsKPiArwqDCoMKgwqDCoMKgwqBkcm1fY2xpZW50X3JlZ2lzdGVyKCZpZmJkZXYtPmhlbHBlci5j bGllbnQpOwo+IMKgCj4gLcKgwqDCoMKgwqDCoMKgcmV0dXJuIDA7Cj4gK8KgwqDCoMKgwqDCoMKg cmV0dXJuOwo+IMKgCj4gLWVycl9kcm1fY2xpZW50X3JlbGVhc2U6Cj4gLcKgwqDCoMKgwqDCoMKg ZHJtX2NsaWVudF9yZWxlYXNlKCZpZmJkZXYtPmhlbHBlci5jbGllbnQpOwo+IMKgZXJyX2RybV9m Yl9oZWxwZXJfdW5wcmVwYXJlOgo+IMKgwqDCoMKgwqDCoMKgwqBkcm1fZmJfaGVscGVyX3VucHJl cGFyZSgmaWZiZGV2LT5oZWxwZXIpOwo+ICvCoMKgwqDCoMKgwqDCoG11dGV4X2Rlc3Ryb3koJmlm YmRldi0+aHBkX2xvY2spOwo+IMKgwqDCoMKgwqDCoMKgwqBrZnJlZShpZmJkZXYpOwo+IC3CoMKg wqDCoMKgwqDCoHJldHVybiByZXQ7Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIGludGVsX2ZiZGV2 X2luaXRpYWxfY29uZmlnKHZvaWQgKmRhdGEsIGFzeW5jX2Nvb2tpZV90Cj4gY29va2llKQo+IC17 Cj4gLcKgwqDCoMKgwqDCoMKgc3RydWN0IGludGVsX2ZiZGV2ICppZmJkZXYgPSBkYXRhOwo+IC0K PiAtwqDCoMKgwqDCoMKgwqAvKiBEdWUgdG8gcGVjdWxpYXIgaW5pdCBvcmRlciB3cnQgdG8gaHBk IGhhbmRsaW5nIHRoaXMgaXMKPiBzZXBhcmF0ZS4gKi8KPiAtwqDCoMKgwqDCoMKgwqBpZiAoZHJt X2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZygmaWZiZGV2LT5oZWxwZXIpKQo+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBpbnRlbF9mYmRldl91bnJlZ2lzdGVyKHRvX2k5MTUoaWZiZGV2 LT5oZWxwZXIuZGV2KSk7Cj4gLX0KPiAtCj4gLXZvaWQgaW50ZWxfZmJkZXZfaW5pdGlhbF9jb25m aWdfYXN5bmMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYpCj4gLXsKPiAtwqDC oMKgwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfZmJkZXYgKmlmYmRldiA9IGRldl9wcml2LT5kaXNwbGF5 LmZiZGV2LmZiZGV2Owo+IC0KPiAtwqDCoMKgwqDCoMKgwqBpZiAoIWlmYmRldikKPiAtwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuOwo+IC0KPiAtwqDCoMKgwqDCoMKgwqBpZmJk ZXYtPmNvb2tpZSA9IGFzeW5jX3NjaGVkdWxlKGludGVsX2ZiZGV2X2luaXRpYWxfY29uZmlnLAo+ IGlmYmRldik7Cj4gLX0KPiAtCj4gLXZvaWQgaW50ZWxfZmJkZXZfdW5yZWdpc3RlcihzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gLXsKPiAtwqDCoMKgwqDCoMKgwqBzdHJ1Y3Qg aW50ZWxfZmJkZXYgKmlmYmRldiA9IGRldl9wcml2LT5kaXNwbGF5LmZiZGV2LmZiZGV2Owo+IC0K PiAtwqDCoMKgwqDCoMKgwqBpZiAoIWlmYmRldikKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgcmV0dXJuOwo+IC0KPiAtwqDCoMKgwqDCoMKgwqBpbnRlbF9mYmRldl9zZXRfc3VzcGVu ZCgmZGV2X3ByaXYtPmRybSwKPiBGQklORk9fU1RBVEVfU1VTUEVOREVELCB0cnVlKTsKPiAtCj4g LcKgwqDCoMKgwqDCoMKgaWYgKCFjdXJyZW50X2lzX2FzeW5jKCkpCj4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGludGVsX2ZiZGV2X3N5bmMoaWZiZGV2KTsKPiAtCj4gLcKgwqDCoMKg wqDCoMKgZHJtX2ZiX2hlbHBlcl91bnJlZ2lzdGVyX2luZm8oJmlmYmRldi0+aGVscGVyKTsKPiAt fQo+IC0KPiAtdm9pZCBpbnRlbF9mYmRldl9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiAtewo+IC3CoMKgwqDCoMKgwqDCoHN0cnVjdCBpbnRlbF9mYmRldiAqaWZiZGV2 ID0gZmV0Y2hfYW5kX3plcm8oJmRldl9wcml2LQo+ID5kaXNwbGF5LmZiZGV2LmZiZGV2KTsKPiAt Cj4gLcKgwqDCoMKgwqDCoMKgaWYgKCFpZmJkZXYpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHJldHVybjsKPiAtCj4gLcKgwqDCoMKgwqDCoMKgaW50ZWxfZmJkZXZfZGVzdHJveShp ZmJkZXYpOwo+IMKgfQo+IMKgCj4gwqBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2Zi ZGV2X2ZyYW1lYnVmZmVyKHN0cnVjdCBpbnRlbF9mYmRldgo+ICpmYmRldikKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmRldi5oCj4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiZGV2LmgKPiBpbmRleCA4Yzk1M2YxMDJiYTIy Li4wOGRlMmQ1YjM0MzM4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZmJkZXYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZmJkZXYuaAo+IEBAIC0xNCwyNyArMTQsMTEgQEAgc3RydWN0IGludGVsX2ZiZGV2Owo+IMKg c3RydWN0IGludGVsX2ZyYW1lYnVmZmVyOwo+IMKgCj4gwqAjaWZkZWYgQ09ORklHX0RSTV9GQkRF Vl9FTVVMQVRJT04KPiAtaW50IGludGVsX2ZiZGV2X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl dik7Cj4gLXZvaWQgaW50ZWxfZmJkZXZfaW5pdGlhbF9jb25maWdfYXN5bmMoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYpOwo+IC12b2lkIGludGVsX2ZiZGV2X3VucmVnaXN0ZXIo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAtdm9pZCBpbnRlbF9mYmRldl9m aW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gK3ZvaWQgaW50ZWxfZmJk ZXZfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiDCoHZvaWQgaW50 ZWxfZmJkZXZfc2V0X3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHN0YXRlLCBi b29sCj4gc3luY2hyb25vdXMpOwo+IMKgc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICppbnRlbF9m YmRldl9mcmFtZWJ1ZmZlcihzdHJ1Y3QgaW50ZWxfZmJkZXYKPiAqZmJkZXYpOwo+IMKgI2Vsc2UK PiAtc3RhdGljIGlubGluZSBpbnQgaW50ZWxfZmJkZXZfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+IC17Cj4gLcKgwqDCoMKgwqDCoMKgcmV0dXJuIDA7Cj4gLX0KPiAtCj4gLXN0YXRpYyBp bmxpbmUgdm9pZCBpbnRlbF9mYmRldl9pbml0aWFsX2NvbmZpZ19hc3luYyhzdHJ1Y3QKPiBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAtewo+IC19Cj4gLQo+IC1zdGF0aWMgaW5saW5lIHZv aWQgaW50ZWxfZmJkZXZfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ICpkZXZf cHJpdikKPiAtewo+IC19Cj4gLQo+IC1zdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZmJkZXZfZmlu aShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ICpkZXZfcHJpdikKPiArc3RhdGljIGlubGluZSB2 b2lkIGludGVsX2ZiZGV2X3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gKmRldl9wcml2 KQo+IMKgewo+IMKgfQo+IMKgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJpdmVyLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJpdmVyLmMKPiBpbmRl eCA4NjQ2MGNkODE2N2QxLi41MzY2M2MwY2MzYmU0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJpdmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RyaXZlci5jCj4gQEAgLTgxNyw2ICs4MTcsOCBAQCBpbnQgaTkxNV9kcml2ZXJfcHJvYmUoc3Ry dWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0Cj4gc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkKPiDC oAo+IMKgwqDCoMKgwqDCoMKgwqBpOTE1LT5kb19yZWxlYXNlID0gdHJ1ZTsKPiDCoAo+ICvCoMKg wqDCoMKgwqDCoGludGVsX2ZiZGV2X3NldHVwKGk5MTUpOwo+ICsKPiDCoMKgwqDCoMKgwqDCoMKg cmV0dXJuIDA7Cj4gwqAKPiDCoG91dF9jbGVhbnVwX2dlbToKCg== 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 629C4C0032E for ; Wed, 25 Oct 2023 11:43:43 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AF1CD10E5A1; Wed, 25 Oct 2023 11:43:42 +0000 (UTC) X-Greylist: delayed 426 seconds by postgrey-1.36 at gabe; Wed, 25 Oct 2023 11:43:39 UTC Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.10]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9E9DA10E5A1 for ; Wed, 25 Oct 2023 11:43:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1698234220; x=1729770220; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=WeWuGAqQj7mlBgc4u3kVF6q/OZ96b4IpyrRkaXyNvis=; b=WViB1Zd39jwE0gpJQj0EE9wkWsx6hUCbkIhNfeZJxvTMngK1B4J/03eI o8l73EuSbxfI99BT8m48Ucf1GlYCBM0nFuot1BibIm6qMPPomQxI1k3+R 5gnws2Qh1yfAc+ZoSKnNHAhvzr9KHja/XiE4t1uJDPdSEOQmnZSDDa1qP g7F6jQqeXYFVJUMlmrYsLv64Sg+4Qd6zElblIst5trEXlUQX2yqFq1dn9 5rgktL9iYMCJXeDXamMKVg41kyRlWbKKGZCM3ZOQFIAhO7BozPYJFu03b cbvWhxC5N1A++epVIVQrth7TqekzmbY8krd9opTfCLrJ+ORXRkV9i9WXb Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10873"; a="51759" X-IronPort-AV: E=Sophos;i="6.03,250,1694761200"; d="scan'208";a="51759" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orvoesa102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Oct 2023 04:36:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10873"; a="849505459" X-IronPort-AV: E=Sophos;i="6.03,250,1694761200"; d="scan'208";a="849505459" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by FMSMGA003.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 25 Oct 2023 04:36:32 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Wed, 25 Oct 2023 04:36:31 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34 via Frontend Transport; Wed, 25 Oct 2023 04:36:31 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.41) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.32; Wed, 25 Oct 2023 04:36:31 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OZJUsMmpg1sOMezNzc162SdGg/1Tl0iyUMSHaUqFQCC6ryYgPqFndD+9E7KsFzkdlyxAubBTl7hKdGwY79Zi1HyVBrYBn0R+WVbZiL++vhgImUDPVK+4ich3VKr56nhSbKZL2O07Ciwiv4Y0SHPu9dcMgGwaXKmW5QRaZc12QnWDQn23XNGLjee42SzSTeLiuNZfy/RPCt+E6MquNe5boFajI240wLZbINVjXE9Md+3H7XfC3xQplZPkWj3TRrIDeiCP/WWkvlTpafjT16YVlLP1Jwj+lxH8C3jkvmXhUc4SccOzkOd9pi8JTYyeA/1Mjt7gZbupg+wFvugGTsS/ZA== 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=WeWuGAqQj7mlBgc4u3kVF6q/OZ96b4IpyrRkaXyNvis=; b=OUHq5RHjkISemukpVe2+yIExnZJDqDBm7EFGuc89WFVVEBMNLykbBOdkPhlWWe6vuIKdLTMmk7T0ejdAjuto/ZAynwlUQCNsEu72+SeNkuAFMhtQsotF1vAt/om/hphADCkvNeoqUCn3bW7Vjm1rwkUHTcqz2jMQy0pLjqVB+pEgxDFhZUcZyQQvlvAyVLoeCvwNHPF62lEx0jjFVhEm+LdK5TNpUC42mZ7r4YzvEr+2xRJq+DC6XQpHIm39rLQAobBTeRQ/hY5Oc+N4/m+FuvuIb1rU/FOawhvxiHRo7JoSMJbk8U7bMakzOhrvjkAZ29TxS7cTScSQ0JhXQP34Wg== 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 DM4PR11MB6019.namprd11.prod.outlook.com (2603:10b6:8:60::5) by IA1PR11MB6539.namprd11.prod.outlook.com (2603:10b6:208:3a1::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.26; Wed, 25 Oct 2023 11:36:29 +0000 Received: from DM4PR11MB6019.namprd11.prod.outlook.com ([fe80::ea97:f0a2:fffc:b892]) by DM4PR11MB6019.namprd11.prod.outlook.com ([fe80::ea97:f0a2:fffc:b892%3]) with mapi id 15.20.6907.028; Wed, 25 Oct 2023 11:36:28 +0000 From: "Hogander, Jouni" To: "Upadhyay, Tejas" , "tzimmermann@suse.de" , "ville.syrjala@linux.intel.com" , "Vivi, Rodrigo" , "joonas.lahtinen@linux.intel.com" , "javierm@redhat.com" , "tvrtko.ursulin@linux.intel.com" , "Deak, Imre" , "airlied@gmail.com" , "jani.nikula@linux.intel.com" , "daniel@ffwll.ch" Subject: Re: [PATCH v5 7/7] drm/i915: Implement fbdev emulation as in-kernel client Thread-Topic: [PATCH v5 7/7] drm/i915: Implement fbdev emulation as in-kernel client Thread-Index: AQHZ8S1tD0L88/Gxm0eFpuwH0mNy/LBajJ4A Date: Wed, 25 Oct 2023 11:36:28 +0000 Message-ID: <199bdb57b0f48e6f77f7effc90dcffcae8213285.camel@intel.com> References: <20230927102808.18650-1-tzimmermann@suse.de> <20230927102808.18650-8-tzimmermann@suse.de> In-Reply-To: <20230927102808.18650-8-tzimmermann@suse.de> 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: DM4PR11MB6019:EE_|IA1PR11MB6539:EE_ x-ms-office365-filtering-correlation-id: acfd0a3c-28d5-4e9b-d356-08dbd54ea0b0 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: TDEMUHtFjrcdHBHvVvu91GtZfALhrY6zXzeKNntnT1fzwLBBuybgk4gM/4UY9wmzALJJItheRqIth2rKI1V+gzMh9e0Dp5vR8DA7/niSKD8V7/zQD0xJ2t1Yb385DHOZ1+wNvl4rjeFZKpFGPhXrz4++5GiZjlG2GHIz3r/BsdE6iDJxzK3ECtzMOwpfA3obG6Tr7DFraEsjq2ZN8W3F7GXzLFIRKLKGMUFqV6gWsEmKF4207a+B1Y74EVnCcmPXHmH2p7mj40p2REtRY3XmFrgTWudK+nmMpErlJzTq29hKXd/i/SXxTTMXum5oqNMwjKWkWNoaQucNhcy1B3hLJNMEGheym3+PpQ2PGoouu+KJGRwHbSoZvtjwkSDNV/PwaYaCY5zcc9ZfvTqgqNn3V2jSULPTayl565uoQm8VsBj8YiyNEjUHRBin7lrsL4hKJKaAB1pPxmlJ8NCOHsJU+1ULQ9NTaMJKvHiDfOAl5MRvLioIf5lFoXhggRBtQ9l5ILAivrXqwwYGQhcDfn65gawdugu7V85UV/0hVQ6Ifnz/2DXY8cQCiyW5oZFV8U5iLqyZR97Ju6MYMfN6kxhlusssOdjF42atWjznBz374UCMphjTYJI+Rvg6NIS/RI4ZFbkaSVYsdLLOVas4NKr6rg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB6019.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366004)(376002)(346002)(136003)(39860400002)(396003)(230922051799003)(451199024)(64100799003)(1800799009)(186009)(36756003)(66446008)(38100700002)(82960400001)(122000001)(8676002)(66556008)(110136005)(76116006)(66476007)(54906003)(86362001)(91956017)(66574015)(64756008)(83380400001)(71200400001)(6506007)(2616005)(316002)(41300700001)(478600001)(4326008)(8936002)(26005)(6486002)(2906002)(66946007)(5660300002)(30864003)(6512007)(921008)(38070700009)(7416002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QXUwbmxTQnJBVWxseW8yT3QzdUVPUTg5WnRsNGpmZy9ZL1JzSmVFQ3EyMDZu?= =?utf-8?B?dWxKVDVUUyt6WTRFalZ6OTE2K3FLb2ZpbE0yQVV3eFQxeFhxa2hTajF0ZWQ0?= =?utf-8?B?aVBlOUR6dEYrSDBud1FYYldMRVFVbWd4cEhRRWhwWVFGcEE1SDhtbHY5VDhP?= =?utf-8?B?Z2ZwNnJXdWhOQ3FrVkJvREFJa2ZnendpZWdTeEl5aWpkeWdNTklsMnRnSitK?= =?utf-8?B?dXo3cS90eDFjNkxMVGswSVJrRGdGMTZ4eW9PV3pGVU9XWGswWFE0RUUrNjRr?= =?utf-8?B?ekg4TXhPWWZaNnVmazFlcUhXTmwxSGE3U3M4a0I1anlsTWZTN3F5M0U5d1Zx?= =?utf-8?B?bWdUSWh5RG1ISEhEdWwxZTluWXR5TXpDOEFGd2pYQzlHOEZZbXlnVXBQWmlo?= =?utf-8?B?eDY4ODZlSzF1U01LZU9KdzdsZEwwZ0UyZkwzQk1yRHZ6T2x0NmJRYnFKN0ZS?= =?utf-8?B?Yi9DL1dwcFBkTFdMVW5adXJpckJTL3I3UVl2NlM2Y2haRjJJVVpUQ1NPNi9P?= =?utf-8?B?M2pxOHhRazhES25iOEQyNGpJNXJzczVibExmV0ExNW1lQzJRdStaU1o1Z0px?= =?utf-8?B?NVNNalFGVnlxS1JOUUdGeHNCbXhrOHQweVVOVUoxMTVwd3o0aHlFRTZJb2Ur?= =?utf-8?B?c3ZrWGJuazRVc2YvbTVJMWpHYzdZSFZjYUE4ck1tMnFsVGhhSlg0ZkZQeURZ?= =?utf-8?B?dnV1OUZtaDNFcDVOZU9tNVNweDNHQ0RtY2JWbWhkcnJOeWI4TVNMNUhxNTFk?= =?utf-8?B?ZlI1aEc5RjFxQmpub2tWMFcybGtMZ0V4dzllTFBseEIzbHFHSjVIeFBiOEpi?= =?utf-8?B?ekZLSTJJVnVTNm04NU8xUTVrd0gvNzYwRDBUdW5KVkhBKzFWRGZST3NTaFll?= =?utf-8?B?TFF0YS9wU0VvdGxDZ3dMc2NDYTlrLytvbnE1ekplbjRIMXNXUXV4M2JyeGh2?= =?utf-8?B?aGhxSmZ4Mng1ZG9jblUyNGZUWm0xbkVUMXRGZnAyY01hV0tIV3FoVWZFQjE3?= =?utf-8?B?ZUxsRndYVlFYUGdveG8wUHBPM0U1cW5OcUh3b0hiMklwOWtkTVdRQWhjdzhh?= =?utf-8?B?Z1dpQWdKQU81bnZkNkd3U1FYZW1aRURUSjhzNWdyWDdSODB1N202elRLOWFs?= =?utf-8?B?NFdQZDZ3bzMyZDMyOTVYYVBjNFJ4ZnpBZ2laZUl4aVJiOW44cWdhOVl2VmZD?= =?utf-8?B?YS94WDRQNElVS0tSSHRFRk1EaFdXZVhQRTlFZkdNWEJ2OU55eU1oMkZ0ekZM?= =?utf-8?B?K3o3dy9qR0U3ZGtDVWlYV1M0K3kwbjgzRkt2cXd5ay91VjNKN2t3QUYzcTFq?= =?utf-8?B?aS8zbzhlSjBuTmNRYXBOcFFyUFJLVGY1ZFQyVXdkWjJiUzNWL0ZLOC9HNmM3?= =?utf-8?B?Tm02VTZYeklTNS9XNU4yTWxyQnl5dVpEdmg4aXcrZUJ3NVhtUG5EYXVtbkE4?= =?utf-8?B?MXlZd3FvQXNUSGRoejlheTJCajlRUU4yWTQydjc2dFZCSWJYNGprU1JlVzJ1?= =?utf-8?B?N3R3ampuN09DeGkzUzNzV1RIRDJnVGFQdEhha0xITlBvaUxWd0RhbFVYSFpI?= =?utf-8?B?WlRxMi90angxREM4MERoNWRVQkVFUCtHaG5uenltci95dkFNa3hKZUU0TVFC?= =?utf-8?B?WVVxUXNFNE1SU2FhUXNWREozdjQxZFZHb0ttRnNOdEMzNFhCUjFEK2tkMWVk?= =?utf-8?B?SWhpZnVJVnRZZXh5QWZzU2N3L1VhYm5EYjVIcFBUcHIzSW9iS28rTE9xNzVq?= =?utf-8?B?MmN0V1p1TFp3eElrSFB3dUFPbjIyRVQxUnhRZkcyemRJOUlMRFNRNWJrN2ZW?= =?utf-8?B?RTRDby9tUHRKOHBSZG5icVBpOHNtYlkzZ3JlWnMrWjBYQ0ZFaFZzZEM5YVdx?= =?utf-8?B?c0JNMGV3MHJGc21ZRWxnSFpMWitIeWtic0RVdTNGbThjcjl2UXpaa1RucmVU?= =?utf-8?B?MDhXVHJueEFNQU1mSnVjYVBCWjVVUTAvTXRrbVR4SzZCcXprZkVCdlp3ZXNC?= =?utf-8?B?SDFBQzhRNVNqR0kvYmRIRUxMMzBOUk5PaHdLdFlVOWQ5R1Ywc1NLdWsxYUlz?= =?utf-8?B?eS9NN1BGUDZBMzhTemYrRFY4MXJsSjhXVUdDYit3WmdWZE1rOExwYUNBb0NX?= =?utf-8?B?TU1tZ0ZOdmhyWk1SdUVrSnlGUWVsZWJKOGZpcE5JQkJWUldKR3R2TldlYmR2?= =?utf-8?B?cXc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB6019.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: acfd0a3c-28d5-4e9b-d356-08dbd54ea0b0 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Oct 2023 11:36:28.2774 (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: SvWNeGvaf9z6Y9XOK+SvN1PwLFp/Op5qfULFwHxnQBSrLeL8r3EdvCgRbjVWqSiABXEmE3/HpeAEdWQ5uKX8Cx/pjZs44d/tuIIxwPedVnU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB6539 X-OriginatorOrg: intel.com X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgVGhvbWFzLCBjb3VwbGUgb2YgbWlub3IgY29tbWVudHMgYW5kIGEgcXVlc3Rpb24gYmVsb3cu CgpPbiBXZWQsIDIwMjMtMDktMjcgYXQgMTI6MjYgKzAyMDAsIFRob21hcyBaaW1tZXJtYW5uIHdy b3RlOgo+IFJlcGxhY2UgYWxsIGNvZGUgdGhhdCBpbml0aWFsaXplcyBvciByZWxlYXNlcyBmYmRl diBlbXVsYXRpb24KPiB0aHJvdWdob3V0IHRoZSBkcml2ZXIuIEluc3RlYWQgaW5pdGlhbGl6ZSB0 aGUgZmJkZXYgY2xpZW50IGJ5IGEKPiBzaW5nbGUgY2FsbCB0byBpOTE1X2ZiZGV2X3NldHVwKCkg YWZ0ZXIgaTkxNSBoYXMgcmVnaXN0ZXJlZCBpdHMKCmludGVsX2ZiZGV2X3NldHVwCgo+IERSTSBk ZXZpY2UuIEp1c3QgbGlrZSBzaW1pbGFyIGNvZGUgaW4gb3RoZXIgZHJpdmVycywgaTkxNSBmYmRl dgo+IGVtdWxhdGlvbiBub3cgYWN0cyBhcyBhIHJlZ3VsYXIgRFJNIGNsaWVudC4KPiAKPiBUaGUg ZmJkZXYgY2xpZW50IHNldHVwIGNvbnNpc3RzIG9mIHRoZSBpbml0aWFsIHByZXBhcmF0aW9uIGFu ZCB0aGUKPiBob3QtcGx1Z2dpbmcgb2YgdGhlIGRpc3BsYXkuIFRoZSBsYXR0ZXIgY3JlYXRlcyB0 aGUgZmJkZXYgZGV2aWNlCj4gYW5kIHNldHMgdXAgdGhlIGZiZGV2IGZyYW1lYnVmZmVyLiBUaGUg c2V0dXAgcGVyZm9ybXMgZGlzcGxheQo+IGhvdC1wbHVnZ2luZyBvbmNlLiBJZiBubyBkaXNwbGF5 IGNhbiBiZSBkZXRlY3RlZCwgRFJNIHByb2JlIGhlbHBlcnMKPiByZS1ydW4gdGhlIGRldGVjdGlv biBvbiBlYWNoIGhvdHBsdWcgZXZlbnQuCj4gCj4gQSBjYWxsIHRvIGRybV9kZXZfdW5yZWdpc3Rl cigpIHJlbGVhc2VzIHRoZSBjbGllbnQgYXV0b21hdGljYWxseS4KPiBObyBmdXJ0aGVyIGFjdGlv biBpcyByZXF1aXJlZCB3aXRoaW4gaTkxNS4gSWYgdGhlIGZiZGV2IGZyYW1lYnVmZmVyCj4gaGFz IGJlZW4gZnVsbHkgc2V0IHVwLCBzdHJ1Y3QgZmJfb3BzLmZiX2Rlc3Ryb3kgaW1wbGVtZW50cyB0 aGUKPiByZWxlYXNlLiBGb3IgcGFydGlhbGx5IGluaXRpYWxpemVkIGVtdWxhdGlvbiwgdGhlIGZi ZGV2IGNsaWVudAo+IHJldmVydHMgdGhlIGluaXRpYWwgc2V0dXAuCj4gCj4gdjM6Cj4gwqDCoMKg wqDCoMKgwqDCoCogYXMgYmVmb3JlLCBzaWxlbnRseSBpZ25vcmUgZGV2aWNlcyB3aXRob3V0IGRp c3BsYXlzCj4gdjI6Cj4gwqDCoMKgwqDCoMKgwqDCoCogbGV0IGRybV9jbGllbnRfcmVnaXN0ZXIo KSBoYW5kbGUgaW5pdGlhbCBob3RwbHVnCj4gwqDCoMKgwqDCoMKgwqDCoCogZml4IGRyaXZlciBu YW1lIGluIGVycm9yIG1lc3NhZ2UgKEphbmkpCj4gwqDCoMKgwqDCoMKgwqDCoCogZml4IG5vbi1m YmRldiBidWlsZCAoa2VybmVsIHRlc3Qgcm9ib3QpCj4gCj4gU2lnbmVkLW9mZi1ieTogVGhvbWFz IFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2UuZGU+Cj4gLS0tCj4gwqBkcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuY8KgIHzCoMKgIDEgLQo+IMKgLi4uL2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9kcml2ZXIuY8KgwqAgfMKgIDE4IC0tCj4gwqBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiZGV2LmPCoMKgwqAgfCAxODAgKysrKysr KystLS0tLS0tLQo+IC0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Zi ZGV2LmjCoMKgwqAgfMKgIDIwICstCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RyaXZl ci5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCAyICsKPiDCoDUgZmlsZXMgY2hhbmdlZCwg ODMgaW5zZXJ0aW9ucygrKSwgMTM4IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBlZGJjZjU5Njg4MDRkLi43 ZWZhOGQyNzg3YzM5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5LmMKPiBAQCAtODEsNyArODEsNiBAQAo+IMKgI2luY2x1ZGUgImludGVsX2R2by5o Igo+IMKgI2luY2x1ZGUgImludGVsX2ZiLmgiCj4gwqAjaW5jbHVkZSAiaW50ZWxfZmJjLmgiCj4g LSNpbmNsdWRlICJpbnRlbF9mYmRldi5oIgo+IMKgI2luY2x1ZGUgImludGVsX2ZkaS5oIgo+IMKg I2luY2x1ZGUgImludGVsX2ZpZm9fdW5kZXJydW4uaCIKPiDCoCNpbmNsdWRlICJpbnRlbF9mcm9u dGJ1ZmZlci5oIgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXlfZHJpdmVyLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGlzcGxheV9kcml2ZXIuYwo+IGluZGV4IGZmZGNkZGQxOTQzZTAuLjIxM2E0ZWU5M2ZmYzIg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5 X2RyaXZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNw bGF5X2RyaXZlci5jCj4gQEAgLTM2NCwxMCArMzY0LDYgQEAgaW50IGludGVsX2Rpc3BsYXlfZHJp dmVyX3Byb2JlKHN0cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gwqAKPiDCoMKgwqDC oMKgwqDCoMKgaW50ZWxfb3ZlcmxheV9zZXR1cChpOTE1KTsKPiDCoAo+IC3CoMKgwqDCoMKgwqDC oHJldCA9IGludGVsX2ZiZGV2X2luaXQoJmk5MTUtPmRybSk7Cj4gLcKgwqDCoMKgwqDCoMKgaWYg KHJldCkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHJldDsKPiAtCj4g wqDCoMKgwqDCoMKgwqDCoC8qIE9ubHkgZW5hYmxlIGhvdHBsdWcgaGFuZGxpbmcgb25jZSB0aGUg ZmJkZXYgaXMgZnVsbHkgc2V0Cj4gdXAuICovCj4gwqDCoMKgwqDCoMKgwqDCoGludGVsX2hwZF9p bml0KGk5MTUpOwo+IMKgwqDCoMKgwqDCoMKgwqBpbnRlbF9ocGRfcG9sbF9kaXNhYmxlKGk5MTUp Owo+IEBAIC0zOTIsMTYgKzM4OCw2IEBAIHZvaWQgaW50ZWxfZGlzcGxheV9kcml2ZXJfcmVnaXN0 ZXIoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiDCoAo+IMKgwqDCoMKgwqDCoMKg wqBpbnRlbF9kaXNwbGF5X2RlYnVnZnNfcmVnaXN0ZXIoaTkxNSk7Cj4gwqAKPiAtwqDCoMKgwqDC oMKgwqAvKgo+IC3CoMKgwqDCoMKgwqDCoCAqIFNvbWUgcG9ydHMgcmVxdWlyZSBjb3JyZWN0bHkg c2V0LXVwIGhwZCByZWdpc3RlcnMgZm9yCj4gLcKgwqDCoMKgwqDCoMKgICogZGV0ZWN0aW9uIHRv IHdvcmsgcHJvcGVybHkgKGxlYWRpbmcgdG8gZ2hvc3QgY29ubmVjdGVkCj4gLcKgwqDCoMKgwqDC oMKgICogY29ubmVjdG9yIHN0YXR1cyksIGUuZy4gVkdBIG9uIGdtNDUuwqAgSGVuY2Ugd2UgY2Fu IG9ubHkKPiBzZXQKPiAtwqDCoMKgwqDCoMKgwqAgKiB1cCB0aGUgaW5pdGlhbCBmYmRldiBjb25m aWcgYWZ0ZXIgaHBkIGlycXMgYXJlIGZ1bGx5Cj4gLcKgwqDCoMKgwqDCoMKgICogZW5hYmxlZC4g V2UgZG8gaXQgbGFzdCBzbyB0aGF0IHRoZSBhc3luYyBjb25maWcgY2Fubm90IHJ1bgo+IC3CoMKg wqDCoMKgwqDCoCAqIGJlZm9yZSB0aGUgY29ubmVjdG9ycyBhcmUgcmVnaXN0ZXJlZC4KPiAtwqDC oMKgwqDCoMKgwqAgKi8KPiAtwqDCoMKgwqDCoMKgwqBpbnRlbF9mYmRldl9pbml0aWFsX2NvbmZp Z19hc3luYyhpOTE1KTsKPiAtCj4gwqDCoMKgwqDCoMKgwqDCoC8qCj4gwqDCoMKgwqDCoMKgwqDC oCAqIFdlIG5lZWQgdG8gY29vcmRpbmF0ZSB0aGUgaG90cGx1Z3Mgd2l0aCB0aGUgYXN5bmNocm9u b3VzCj4gwqDCoMKgwqDCoMKgwqDCoCAqIGZiZGV2IGNvbmZpZ3VyYXRpb24sIGZvciB3aGljaCB3 ZSB1c2UgdGhlCj4gQEAgLTQ0NSw5ICs0MzEsNiBAQCB2b2lkIGludGVsX2Rpc3BsYXlfZHJpdmVy X3JlbW92ZV9ub2lycShzdHJ1Y3QKPiBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+IMKgwqDCoMKg wqDCoMKgwqAgKi8KPiDCoMKgwqDCoMKgwqDCoMKgaW50ZWxfaHBkX3BvbGxfZmluaShpOTE1KTsK PiDCoAo+IC3CoMKgwqDCoMKgwqDCoC8qIHBvbGwgd29yayBjYW4gY2FsbCBpbnRvIGZiZGV2LCBo ZW5jZSBjbGVhbiB0aGF0IHVwCj4gYWZ0ZXJ3YXJkcyAqLwo+IC3CoMKgwqDCoMKgwqDCoGludGVs X2ZiZGV2X2ZpbmkoaTkxNSk7Cj4gLQo+IMKgwqDCoMKgwqDCoMKgwqBpbnRlbF91bnJlZ2lzdGVy X2RzbV9oYW5kbGVyKCk7Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgLyogZmx1c2ggYW55IGRlbGF5 ZWQgdGFza3Mgb3IgcGVuZGluZyB3b3JrICovCj4gQEAgLTQ4NCw3ICs0NjcsNiBAQCB2b2lkIGlu dGVsX2Rpc3BsYXlfZHJpdmVyX3VucmVnaXN0ZXIoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSkKPiDCoMKgwqDCoMKgwqDCoMKgaWYgKCFIQVNfRElTUExBWShpOTE1KSkKPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybjsKPiDCoAo+IC3CoMKgwqDCoMKgwqDCoGlu dGVsX2ZiZGV2X3VucmVnaXN0ZXIoaTkxNSk7Cj4gwqDCoMKgwqDCoMKgwqDCoGludGVsX2F1ZGlv X2RlaW5pdChpOTE1KTsKPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqAvKgo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiZGV2LmMKPiBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJkZXYuYwo+IGluZGV4IDM5ZGU2MWQ0ZTc5MDYuLjEw MGE0YWFmMWI3ZTQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9mYmRldi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9m YmRldi5jCj4gQEAgLTI0LDcgKzI0LDYgQEAKPiDCoCAqwqDCoMKgwqAgRGF2aWQgQWlybGllCj4g wqAgKi8KPiDCoAo+IC0jaW5jbHVkZSA8bGludXgvYXN5bmMuaD4KPiDCoCNpbmNsdWRlIDxsaW51 eC9jb25zb2xlLmg+Cj4gwqAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KPiDCoCNpbmNsdWRlIDxs aW51eC9lcnJuby5oPgo+IEBAIC0zOSw2ICszOCw3IEBACj4gwqAjaW5jbHVkZSA8bGludXgvdmdh X3N3aXRjaGVyb28uaD4KPiDCoAo+IMKgI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgo+ICsjaW5j bHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgo+IMKgI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVs cGVyLmg+Cj4gwqAjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KPiDCoCNpbmNsdWRlIDxkcm0v ZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KPiBAQCAtNTgsNyArNTgsNiBAQCBzdHJ1Y3Qg aW50ZWxfZmJkZXYgewo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIg KmZiOwo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKPiDCoMKgwqDCoMKg wqDCoMKgdW5zaWduZWQgbG9uZyB2bWFfZmxhZ3M7Cj4gLcKgwqDCoMKgwqDCoMKgYXN5bmNfY29v a2llX3QgY29va2llOwo+IMKgwqDCoMKgwqDCoMKgwqBpbnQgcHJlZmVycmVkX2JwcDsKPiDCoAo+ IMKgwqDCoMKgwqDCoMKgwqAvKiBXaGV0aGVyIG9yIG5vdCBmYmRldiBocGQgcHJvY2Vzc2luZyBp cyB0ZW1wb3JhcmlseQo+IHN1c3BlbmRlZCAqLwo+IEBAIC0xMzUsNiArMTM0LDI2IEBAIHN0YXRp YyBpbnQgaW50ZWxfZmJkZXZfbW1hcChzdHJ1Y3QgZmJfaW5mbwo+ICppbmZvLCBzdHJ1Y3Qgdm1f YXJlYV9zdHJ1Y3QgKnZtYSkKPiDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGk5MTVfZ2VtX2ZiX21t YXAob2JqLCB2bWEpOwo+IMKgfQo+IMKgCj4gK3N0YXRpYyB2b2lkIGludGVsX2ZiZGV2X2ZiX2Rl c3Ryb3koc3RydWN0IGZiX2luZm8gKmluZm8pCj4gK3sKPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3Qg ZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyID0gaW5mby0+cGFyOwo+ICvCoMKgwqDCoMKgwqDCoHN0 cnVjdCBpbnRlbF9mYmRldiAqaWZiZGV2ID0gY29udGFpbmVyX29mKGZiX2hlbHBlciwgc3RydWN0 Cj4gaW50ZWxfZmJkZXYsIGhlbHBlcik7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGRybV9mYl9oZWxw ZXJfZmluaSgmaWZiZGV2LT5oZWxwZXIpOwo+ICsKPiArwqDCoMKgwqDCoMKgwqAvKgo+ICvCoMKg wqDCoMKgwqDCoCAqIFdlIHJlbHkgb24gdGhlIG9iamVjdC1mcmVlIHRvIHJlbGVhc2UgdGhlIFZN QSBwaW5uaW5nIGZvcgo+ICvCoMKgwqDCoMKgwqDCoCAqIHRoZSBpbmZvLT5zY3JlZW5fYmFzZSBt bWFwaW5nLiBMZWFraW5nIHRoZSBWTUEgaXMgc2ltcGxlcgo+IHRoYW4KPiArwqDCoMKgwqDCoMKg wqAgKiB0cnlpbmcgdG8gcmVjdGlmeSBhbGwgdGhlIHBvc3NpYmxlIGVycm9yIHBhdGhzIGxlYWRp bmcKPiBoZXJlLgo+ICvCoMKgwqDCoMKgwqDCoCAqLwo+ICvCoMKgwqDCoMKgwqDCoGludGVsX3Vu cGluX2ZiX3ZtYShpZmJkZXYtPnZtYSwgaWZiZGV2LT52bWFfZmxhZ3MpOwo+ICvCoMKgwqDCoMKg wqDCoGRybV9mcmFtZWJ1ZmZlcl9yZW1vdmUoJmlmYmRldi0+ZmItPmJhc2UpOwo+ICsKPiArwqDC oMKgwqDCoMKgwqBkcm1fY2xpZW50X3JlbGVhc2UoJmZiX2hlbHBlci0+Y2xpZW50KTsKPiArwqDC oMKgwqDCoMKgwqBkcm1fZmJfaGVscGVyX3VucHJlcGFyZSgmaWZiZGV2LT5oZWxwZXIpOwo+ICvC oMKgwqDCoMKgwqDCoGtmcmVlKGlmYmRldik7Cj4gK30KPiArCj4gwqBzdGF0aWMgY29uc3Qgc3Ry dWN0IGZiX29wcyBpbnRlbGZiX29wcyA9IHsKPiDCoMKgwqDCoMKgwqDCoMKgLm93bmVyID0gVEhJ U19NT0RVTEUsCj4gwqDCoMKgwqDCoMKgwqDCoF9fRkJfREVGQVVMVF9ERUZFUlJFRF9PUFNfUkRX UihpbnRlbF9mYmRldiksCj4gQEAgLTE0NCw2ICsxNjMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGZiX29wcyBpbnRlbGZiX29wcyA9IHsKPiDCoMKgwqDCoMKgwqDCoMKgLmZiX3Bhbl9kaXNwbGF5 ID0gaW50ZWxfZmJkZXZfcGFuX2Rpc3BsYXksCj4gwqDCoMKgwqDCoMKgwqDCoF9fRkJfREVGQVVM VF9ERUZFUlJFRF9PUFNfRFJBVyhpbnRlbF9mYmRldiksCj4gwqDCoMKgwqDCoMKgwqDCoC5mYl9t bWFwID0gaW50ZWxfZmJkZXZfbW1hcCwKPiArwqDCoMKgwqDCoMKgwqAuZmJfZGVzdHJveSA9IGlu dGVsX2ZiZGV2X2ZiX2Rlc3Ryb3ksCj4gwqB9Owo+IMKgCj4gwqBzdGF0aWMgaW50IGludGVsZmJf YWxsb2Moc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKPiBAQCAtMjEyLDcgKzIzMiw2IEBA IHN0YXRpYyBpbnQgaW50ZWxmYl9jcmVhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIKPiAqaGVscGVy LAo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2ZiID0g aWZiZGV2LT5mYjsKPiDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGhl bHBlci0+ZGV2Owo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gLcKgwqDCoMKgwqDCoMKgc3RydWN0IHBjaV9kZXYgKnBk ZXYgPSB0b19wY2lfZGV2KGRldl9wcml2LT5kcm0uZGV2KTsKPiDCoMKgwqDCoMKgwqDCoMKgc3Ry dWN0IGk5MTVfZ2d0dCAqZ2d0dCA9IHRvX2d0KGRldl9wcml2KS0+Z2d0dDsKPiDCoMKgwqDCoMKg wqDCoMKgY29uc3Qgc3RydWN0IGk5MTVfZ3R0X3ZpZXcgdmlldyA9IHsKPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoC50eXBlID0gSTkxNV9HVFRfVklFV19OT1JNQUwsCj4gQEAgLTMz Nyw3ICszNTYsNyBAQCBzdGF0aWMgaW50IGludGVsZmJfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVs cGVyCj4gKmhlbHBlciwKPiDCoMKgwqDCoMKgwqDCoMKgaWZiZGV2LT52bWFfZmxhZ3MgPSBmbGFn czsKPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqBpbnRlbF9ydW50aW1lX3BtX3B1dCgmZGV2X3ByaXYt PnJ1bnRpbWVfcG0sIHdha2VyZWYpOwo+IC3CoMKgwqDCoMKgwqDCoHZnYV9zd2l0Y2hlcm9vX2Ns aWVudF9mYl9zZXQocGRldiwgaW5mbyk7Cj4gKwo+IMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gMDsK PiDCoAo+IMKgb3V0X3VucGluOgo+IEBAIC0zNjMsMjYgKzM4Miw2IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2ZiX2hlbHBlcl9mdW5jcwo+IGludGVsX2ZiX2hlbHBlcl9mdW5jcyA9IHsKPiDC oMKgwqDCoMKgwqDCoMKgLmZiX2RpcnR5ID0gaW50ZWxmYl9kaXJ0eSwKPiDCoH07Cj4gwqAKPiAt c3RhdGljIHZvaWQgaW50ZWxfZmJkZXZfZGVzdHJveShzdHJ1Y3QgaW50ZWxfZmJkZXYgKmlmYmRl dikKPiAtewo+IC3CoMKgwqDCoMKgwqDCoC8qIFdlIHJlbHkgb24gdGhlIG9iamVjdC1mcmVlIHRv IHJlbGVhc2UgdGhlIFZNQSBwaW5uaW5nIGZvcgo+IC3CoMKgwqDCoMKgwqDCoCAqIHRoZSBpbmZv LT5zY3JlZW5fYmFzZSBtbWFwaW5nLiBMZWFraW5nIHRoZSBWTUEgaXMgc2ltcGxlcgo+IHRoYW4K PiAtwqDCoMKgwqDCoMKgwqAgKiB0cnlpbmcgdG8gcmVjdGlmeSBhbGwgdGhlIHBvc3NpYmxlIGVy cm9yIHBhdGhzIGxlYWRpbmcKPiBoZXJlLgo+IC3CoMKgwqDCoMKgwqDCoCAqLwo+IC0KPiAtwqDC oMKgwqDCoMKgwqBkcm1fZmJfaGVscGVyX2ZpbmkoJmlmYmRldi0+aGVscGVyKTsKPiAtCj4gLcKg wqDCoMKgwqDCoMKgaWYgKGlmYmRldi0+dm1hKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBpbnRlbF91bnBpbl9mYl92bWEoaWZiZGV2LT52bWEsIGlmYmRldi0+dm1hX2ZsYWdzKTsK PiAtCj4gLcKgwqDCoMKgwqDCoMKgaWYgKGlmYmRldi0+ZmIpCj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGRybV9mcmFtZWJ1ZmZlcl9yZW1vdmUoJmlmYmRldi0+ZmItPmJhc2UpOwo+ IC0KPiAtwqDCoMKgwqDCoMKgwqBkcm1fY2xpZW50X3JlbGVhc2UoJmlmYmRldi0+aGVscGVyLmNs aWVudCk7Cj4gLcKgwqDCoMKgwqDCoMKgZHJtX2ZiX2hlbHBlcl91bnByZXBhcmUoJmlmYmRldi0+ aGVscGVyKTsKPiAtwqDCoMKgwqDCoMKgwqBrZnJlZShpZmJkZXYpOwo+IC19Cj4gLQo+IMKgLyoK PiDCoCAqIEJ1aWxkIGFuIGludGVsX2ZiZGV2IHN0cnVjdCB1c2luZyBhIEJJT1MgYWxsb2NhdGVk IGZyYW1lYnVmZmVyLAo+IGlmIHBvc3NpYmxlLgo+IMKgICogVGhlIGNvcmUgZGlzcGxheSBjb2Rl IHdpbGwgaGF2ZSByZWFkIG91dCB0aGUgY3VycmVudCBwbGFuZQo+IGNvbmZpZ3VyYXRpb24sCj4g QEAgLTU0NiwxNiArNTQ1LDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJkZXZfc3VzcGVuZF93b3Jr ZXIoc3RydWN0Cj4gd29ya19zdHJ1Y3QgKndvcmspCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRydWUpOwo+IMKgfQo+IMKg Cj4gLXN0YXRpYyB2b2lkIGludGVsX2ZiZGV2X3N5bmMoc3RydWN0IGludGVsX2ZiZGV2ICppZmJk ZXYpCj4gLXsKPiAtwqDCoMKgwqDCoMKgwqBpZiAoIWlmYmRldi0+Y29va2llKQo+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm47Cj4gLQo+IC3CoMKgwqDCoMKgwqDCoC8qIE9u bHkgc2VyaWFsaXNlcyB3aXRoIGFsbCBwcmVjZWRpbmcgYXN5bmMgY2FsbHMsIGhlbmNlICsxCj4g Ki8KPiAtwqDCoMKgwqDCoMKgwqBhc3luY19zeW5jaHJvbml6ZV9jb29raWUoaWZiZGV2LT5jb29r aWUgKyAxKTsKPiAtwqDCoMKgwqDCoMKgwqBpZmJkZXYtPmNvb2tpZSA9IDA7Cj4gLX0KPiAtCj4g wqAvKiBTdXNwZW5kcy9yZXN1bWVzIGZiZGV2IHByb2Nlc3Npbmcgb2YgaW5jb21pbmcgSFBEIGV2 ZW50cy4gV2hlbgo+IHJlc3VtaW5nIEhQRAo+IMKgICogcHJvY2Vzc2luZywgZmJkZXYgd2lsbCBw ZXJmb3JtIGEgZnVsbCBjb25uZWN0b3IgcmVwcm9iZSBpZiBhCj4gaG90cGx1ZyBldmVudAo+IMKg ICogd2FzIHJlY2VpdmVkIHdoaWxlIEhQRCB3YXMgc3VzcGVuZGVkLgo+IEBAIC02NDYsOCArNjM1 LDYgQEAgc3RhdGljIHZvaWQKPiBpbnRlbF9mYmRldl9vdXRwdXRfcG9sbF9jaGFuZ2VkKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gwqDCoMKgwqDCoMKgwqDCoGlmICghaWZiZGV2KQo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuOwo+IMKgCj4gLcKgwqDCoMKgwqDCoMKg aW50ZWxfZmJkZXZfc3luYyhpZmJkZXYpOwo+IC0KPiDCoMKgwqDCoMKgwqDCoMKgbXV0ZXhfbG9j aygmaWZiZGV2LT5ocGRfbG9jayk7Cj4gwqDCoMKgwqDCoMKgwqDCoHNlbmRfaHBkID0gIWlmYmRl di0+aHBkX3N1c3BlbmRlZDsKPiDCoMKgwqDCoMKgwqDCoMKgaWZiZGV2LT5ocGRfd2FpdGluZyA9 IHRydWU7Cj4gQEAgLTY2NCw3ICs2NTEsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9mYmRldl9yZXN0 b3JlX21vZGUoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqDCoMKgwqDC oMKgwqDCoGlmICghaWZiZGV2KQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0 dXJuOwo+IMKgCj4gLcKgwqDCoMKgwqDCoMKgaW50ZWxfZmJkZXZfc3luYyhpZmJkZXYpOwo+IMKg wqDCoMKgwqDCoMKgwqBpZiAoIWlmYmRldi0+dm1hKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgcmV0dXJuOwo+IMKgCj4gQEAgLTY3Nyw3ICs2NjMsMjAgQEAgc3RhdGljIHZvaWQg aW50ZWxfZmJkZXZfcmVzdG9yZV9tb2RlKHN0cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+IMKgICovCj4gwqAKPiDCoHN0YXRpYyB2b2lkIGludGVsX2ZiZGV2X2NsaWVudF91bnJl Z2lzdGVyKHN0cnVjdCBkcm1fY2xpZW50X2Rldgo+ICpjbGllbnQpCj4gLXsgfQo+ICt7Cj4gK8Kg wqDCoMKgwqDCoMKgc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9Cj4gZHJtX2ZiX2hl bHBlcl9mcm9tX2NsaWVudChjbGllbnQpOwo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBmYl9oZWxwZXItPmRldjsKPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgcGNpX2Rl diAqcGRldiA9IHRvX3BjaV9kZXYoZGV2LT5kZXYpOwo+ICsKPiArwqDCoMKgwqDCoMKgwqBpZiAo ZmJfaGVscGVyLT5pbmZvKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHZnYV9z d2l0Y2hlcm9vX2NsaWVudF9mYl9zZXQocGRldiwgTlVMTCk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGRybV9mYl9oZWxwZXJfdW5yZWdpc3Rlcl9pbmZvKGZiX2hlbHBlcik7Cj4g K8KgwqDCoMKgwqDCoMKgfSBlbHNlIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ZHJtX2ZiX2hlbHBlcl91bnByZXBhcmUoZmJfaGVscGVyKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgZHJtX2NsaWVudF9yZWxlYXNlKCZmYl9oZWxwZXItPmNsaWVudCk7Cj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGtmcmVlKGZiX2hlbHBlcik7Cj4gK8KgwqDCoMKg wqDCoMKgfQo+ICt9Cj4gwqAKPiDCoHN0YXRpYyBpbnQgaW50ZWxfZmJkZXZfY2xpZW50X3Jlc3Rv cmUoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpCj4gwqB7Cj4gQEAgLTY5MSw5ICs2OTAs MzYgQEAgc3RhdGljIGludCBpbnRlbF9mYmRldl9jbGllbnRfcmVzdG9yZShzdHJ1Y3QKPiBkcm1f Y2xpZW50X2RldiAqY2xpZW50KQo+IMKgCj4gwqBzdGF0aWMgaW50IGludGVsX2ZiZGV2X2NsaWVu dF9ob3RwbHVnKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KQo+IMKgewo+IC3CoMKgwqDC oMKgwqDCoGludGVsX2ZiZGV2X291dHB1dF9wb2xsX2NoYW5nZWQoY2xpZW50LT5kZXYpOwo+ICvC oMKgwqDCoMKgwqDCoHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPQo+IGRybV9mYl9o ZWxwZXJfZnJvbV9jbGllbnQoY2xpZW50KTsKPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gY2xpZW50LT5kZXY7Cj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IHBjaV9kZXYg KnBkZXYgPSB0b19wY2lfZGV2KGRldi0+ZGV2KTsKPiArwqDCoMKgwqDCoMKgwqBpbnQgcmV0Owo+ ICsKPiArwqDCoMKgwqDCoMKgwqBpZiAoZGV2LT5mYl9oZWxwZXIpIHsKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgaW50ZWxfZmJkZXZfb3V0cHV0X3BvbGxfY2hhbmdlZChkZXYpOwo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gMDsKPiArwqDCoMKgwqDCoMKg wqB9Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoHJldCA9IGRybV9mYl9oZWxwZXJfaW5pdChkZXYsIGZi X2hlbHBlcik7Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKHJldCkKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgZ290byBlcnJfZHJtX2VycjsKPiArCj4gK8KgwqDCoMKgwqDCoMKgaWYgKCFk cm1fZHJ2X3VzZXNfYXRvbWljX21vZGVzZXQoZGV2KSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgZHJtX2hlbHBlcl9kaXNhYmxlX3VudXNlZF9mdW5jdGlvbnMoZGV2KTsKCkNhbiB5 b3UgcGxlYXNlIGV4cGxhaW4gd2h5IHRoaXMgaXMgbmVlZGVkIGhlcmU/Cgo+ICsKPiArwqDCoMKg wqDCoMKgwqByZXQgPSBkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKGZiX2hlbHBlcik7Cj4g K8KgwqDCoMKgwqDCoMKgaWYgKHJldCkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg Z290byBlcnJfZHJtX2ZiX2hlbHBlcl9maW5pOwo+ICsKPiArwqDCoMKgwqDCoMKgwqB2Z2Ffc3dp dGNoZXJvb19jbGllbnRfZmJfc2V0KHBkZXYsIGZiX2hlbHBlci0+aW5mbyk7Cj4gwqAKPiDCoMKg wqDCoMKgwqDCoMKgcmV0dXJuIDA7Cj4gKwo+ICtlcnJfZHJtX2ZiX2hlbHBlcl9maW5pOgo+ICvC oMKgwqDCoMKgwqDCoGRybV9mYl9oZWxwZXJfZmluaShmYl9oZWxwZXIpOwo+ICtlcnJfZHJtX2Vy cjoKPiArwqDCoMKgwqDCoMKgwqBkcm1fZXJyKGRldiwgIkZhaWxlZCB0byBzZXR1cCBpOTE1IGZi ZGV2IGVtdWxhdGlvbgo+IChyZXQ9JWQpXG4iLCByZXQpOwo+ICvCoMKgwqDCoMKgwqDCoHJldHVy biByZXQ7Cj4gwqB9Cj4gwqAKPiDCoHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NsaWVudF9mdW5j cyBpbnRlbF9mYmRldl9jbGllbnRfZnVuY3MgPSB7Cj4gQEAgLTcwMywyMiArNzI5LDIzIEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NsaWVudF9mdW5jcwo+IGludGVsX2ZiZGV2X2NsaWVudF9m dW5jcyA9IHsKPiDCoMKgwqDCoMKgwqDCoMKgLmhvdHBsdWfCoMKgwqDCoMKgwqDCoMKgPSBpbnRl bF9mYmRldl9jbGllbnRfaG90cGx1ZywKPiDCoH07Cj4gwqAKPiAtaW50IGludGVsX2ZiZGV2X2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArdm9pZCBpbnRlbF9mYmRldl9zZXR1cChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCgpVc2UgaTkxNSByYXRoZXIgdGhhbiBkZXZf cHJpdi4KCkJSLAoKSm91bmkgSMO2Z2FuZGVyCgo+IMKgewo+IC3CoMKgwqDCoMKgwqDCoHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiArwqDCoMKgwqDC oMKgwqBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gwqDCoMKgwqDC oMKgwqDCoHN0cnVjdCBpbnRlbF9mYmRldiAqaWZiZGV2Owo+IMKgwqDCoMKgwqDCoMKgwqBpbnQg cmV0Owo+IMKgCj4gLcKgwqDCoMKgwqDCoMKgaWYgKGRybV9XQVJOX09OKGRldiwgIUhBU19ESVNQ TEFZKGRldl9wcml2KSkpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiAt RU5PREVWOwo+ICvCoMKgwqDCoMKgwqDCoGlmICghSEFTX0RJU1BMQVkoZGV2X3ByaXYpKQo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm47Cj4gwqAKPiDCoMKgwqDCoMKgwqDC oMKgaWZiZGV2ID0ga3phbGxvYyhzaXplb2YoKmlmYmRldiksIEdGUF9LRVJORUwpOwo+IMKgwqDC oMKgwqDCoMKgwqBpZiAoIWlmYmRldikKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg cmV0dXJuIC1FTk9NRU07Cj4gLQo+IC3CoMKgwqDCoMKgwqDCoG11dGV4X2luaXQoJmlmYmRldi0+ aHBkX2xvY2spOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm47Cj4gwqDC oMKgwqDCoMKgwqDCoGRybV9mYl9oZWxwZXJfcHJlcGFyZShkZXYsICZpZmJkZXYtPmhlbHBlciwg MzIsCj4gJmludGVsX2ZiX2hlbHBlcl9mdW5jcyk7Cj4gwqAKPiArwqDCoMKgwqDCoMKgwqBkZXZf cHJpdi0+ZGlzcGxheS5mYmRldi5mYmRldiA9IGlmYmRldjsKPiArwqDCoMKgwqDCoMKgwqBJTklU X1dPUksoJmRldl9wcml2LT5kaXNwbGF5LmZiZGV2LnN1c3BlbmRfd29yaywKPiBpbnRlbF9mYmRl dl9zdXNwZW5kX3dvcmtlcik7Cj4gK8KgwqDCoMKgwqDCoMKgbXV0ZXhfaW5pdCgmaWZiZGV2LT5o cGRfbG9jayk7Cj4gwqDCoMKgwqDCoMKgwqDCoGlmIChpbnRlbF9mYmRldl9pbml0X2Jpb3MoZGV2 LCBpZmJkZXYpKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWZiZGV2LT5oZWxw ZXIucHJlZmVycmVkX2JwcCA9IGlmYmRldi0+cHJlZmVycmVkX2JwcDsKPiDCoMKgwqDCoMKgwqDC oMKgZWxzZQo+IEBAIC03MjYsNjggKzc1MywxOSBAQCBpbnQgaW50ZWxfZmJkZXZfaW5pdChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoHJldCA9IGRybV9jbGll bnRfaW5pdChkZXYsICZpZmJkZXYtPmhlbHBlci5jbGllbnQsICJpOTE1LQo+IGZiZGV2IiwKPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICZpbnRlbF9mYmRldl9jbGllbnRfZnVuY3MpOwo+IC3CoMKgwqDCoMKgwqDCoGlmIChyZXQpCj4g K8KgwqDCoMKgwqDCoMKgaWYgKHJldCkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBkcm1fZXJyKGRldiwgIkZhaWxlZCB0byByZWdpc3RlciBjbGllbnQ6ICVkXG4iLCByZXQpOwo+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZ290byBlcnJfZHJtX2ZiX2hlbHBlcl91 bnByZXBhcmU7Cj4gK8KgwqDCoMKgwqDCoMKgfQo+IMKgCj4gLcKgwqDCoMKgwqDCoMKgcmV0ID0g ZHJtX2ZiX2hlbHBlcl9pbml0KGRldiwgJmlmYmRldi0+aGVscGVyKTsKPiAtwqDCoMKgwqDCoMKg wqBpZiAocmV0KQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBnb3RvIGVycl9kcm1f Y2xpZW50X3JlbGVhc2U7Cj4gLQo+IC3CoMKgwqDCoMKgwqDCoGRldl9wcml2LT5kaXNwbGF5LmZi ZGV2LmZiZGV2ID0gaWZiZGV2Owo+IC3CoMKgwqDCoMKgwqDCoElOSVRfV09SSygmZGV2X3ByaXYt PmRpc3BsYXkuZmJkZXYuc3VzcGVuZF93b3JrLAo+IGludGVsX2ZiZGV2X3N1c3BlbmRfd29ya2Vy KTsKPiArwqDCoMKgwqDCoMKgwqBkcm1fY2xpZW50X3JlZ2lzdGVyKCZpZmJkZXYtPmhlbHBlci5j bGllbnQpOwo+IMKgCj4gLcKgwqDCoMKgwqDCoMKgcmV0dXJuIDA7Cj4gK8KgwqDCoMKgwqDCoMKg cmV0dXJuOwo+IMKgCj4gLWVycl9kcm1fY2xpZW50X3JlbGVhc2U6Cj4gLcKgwqDCoMKgwqDCoMKg ZHJtX2NsaWVudF9yZWxlYXNlKCZpZmJkZXYtPmhlbHBlci5jbGllbnQpOwo+IMKgZXJyX2RybV9m Yl9oZWxwZXJfdW5wcmVwYXJlOgo+IMKgwqDCoMKgwqDCoMKgwqBkcm1fZmJfaGVscGVyX3VucHJl cGFyZSgmaWZiZGV2LT5oZWxwZXIpOwo+ICvCoMKgwqDCoMKgwqDCoG11dGV4X2Rlc3Ryb3koJmlm YmRldi0+aHBkX2xvY2spOwo+IMKgwqDCoMKgwqDCoMKgwqBrZnJlZShpZmJkZXYpOwo+IC3CoMKg wqDCoMKgwqDCoHJldHVybiByZXQ7Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIGludGVsX2ZiZGV2 X2luaXRpYWxfY29uZmlnKHZvaWQgKmRhdGEsIGFzeW5jX2Nvb2tpZV90Cj4gY29va2llKQo+IC17 Cj4gLcKgwqDCoMKgwqDCoMKgc3RydWN0IGludGVsX2ZiZGV2ICppZmJkZXYgPSBkYXRhOwo+IC0K PiAtwqDCoMKgwqDCoMKgwqAvKiBEdWUgdG8gcGVjdWxpYXIgaW5pdCBvcmRlciB3cnQgdG8gaHBk IGhhbmRsaW5nIHRoaXMgaXMKPiBzZXBhcmF0ZS4gKi8KPiAtwqDCoMKgwqDCoMKgwqBpZiAoZHJt X2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZygmaWZiZGV2LT5oZWxwZXIpKQo+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBpbnRlbF9mYmRldl91bnJlZ2lzdGVyKHRvX2k5MTUoaWZiZGV2 LT5oZWxwZXIuZGV2KSk7Cj4gLX0KPiAtCj4gLXZvaWQgaW50ZWxfZmJkZXZfaW5pdGlhbF9jb25m aWdfYXN5bmMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYpCj4gLXsKPiAtwqDC oMKgwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfZmJkZXYgKmlmYmRldiA9IGRldl9wcml2LT5kaXNwbGF5 LmZiZGV2LmZiZGV2Owo+IC0KPiAtwqDCoMKgwqDCoMKgwqBpZiAoIWlmYmRldikKPiAtwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuOwo+IC0KPiAtwqDCoMKgwqDCoMKgwqBpZmJk ZXYtPmNvb2tpZSA9IGFzeW5jX3NjaGVkdWxlKGludGVsX2ZiZGV2X2luaXRpYWxfY29uZmlnLAo+ IGlmYmRldik7Cj4gLX0KPiAtCj4gLXZvaWQgaW50ZWxfZmJkZXZfdW5yZWdpc3RlcihzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gLXsKPiAtwqDCoMKgwqDCoMKgwqBzdHJ1Y3Qg aW50ZWxfZmJkZXYgKmlmYmRldiA9IGRldl9wcml2LT5kaXNwbGF5LmZiZGV2LmZiZGV2Owo+IC0K PiAtwqDCoMKgwqDCoMKgwqBpZiAoIWlmYmRldikKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgcmV0dXJuOwo+IC0KPiAtwqDCoMKgwqDCoMKgwqBpbnRlbF9mYmRldl9zZXRfc3VzcGVu ZCgmZGV2X3ByaXYtPmRybSwKPiBGQklORk9fU1RBVEVfU1VTUEVOREVELCB0cnVlKTsKPiAtCj4g LcKgwqDCoMKgwqDCoMKgaWYgKCFjdXJyZW50X2lzX2FzeW5jKCkpCj4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGludGVsX2ZiZGV2X3N5bmMoaWZiZGV2KTsKPiAtCj4gLcKgwqDCoMKg wqDCoMKgZHJtX2ZiX2hlbHBlcl91bnJlZ2lzdGVyX2luZm8oJmlmYmRldi0+aGVscGVyKTsKPiAt fQo+IC0KPiAtdm9pZCBpbnRlbF9mYmRldl9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiAtewo+IC3CoMKgwqDCoMKgwqDCoHN0cnVjdCBpbnRlbF9mYmRldiAqaWZiZGV2 ID0gZmV0Y2hfYW5kX3plcm8oJmRldl9wcml2LQo+ID5kaXNwbGF5LmZiZGV2LmZiZGV2KTsKPiAt Cj4gLcKgwqDCoMKgwqDCoMKgaWYgKCFpZmJkZXYpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHJldHVybjsKPiAtCj4gLcKgwqDCoMKgwqDCoMKgaW50ZWxfZmJkZXZfZGVzdHJveShp ZmJkZXYpOwo+IMKgfQo+IMKgCj4gwqBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2Zi ZGV2X2ZyYW1lYnVmZmVyKHN0cnVjdCBpbnRlbF9mYmRldgo+ICpmYmRldikKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmRldi5oCj4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiZGV2LmgKPiBpbmRleCA4Yzk1M2YxMDJiYTIy Li4wOGRlMmQ1YjM0MzM4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZmJkZXYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZmJkZXYuaAo+IEBAIC0xNCwyNyArMTQsMTEgQEAgc3RydWN0IGludGVsX2ZiZGV2Owo+IMKg c3RydWN0IGludGVsX2ZyYW1lYnVmZmVyOwo+IMKgCj4gwqAjaWZkZWYgQ09ORklHX0RSTV9GQkRF Vl9FTVVMQVRJT04KPiAtaW50IGludGVsX2ZiZGV2X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl dik7Cj4gLXZvaWQgaW50ZWxfZmJkZXZfaW5pdGlhbF9jb25maWdfYXN5bmMoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYpOwo+IC12b2lkIGludGVsX2ZiZGV2X3VucmVnaXN0ZXIo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAtdm9pZCBpbnRlbF9mYmRldl9m aW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gK3ZvaWQgaW50ZWxfZmJk ZXZfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiDCoHZvaWQgaW50 ZWxfZmJkZXZfc2V0X3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHN0YXRlLCBi b29sCj4gc3luY2hyb25vdXMpOwo+IMKgc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICppbnRlbF9m YmRldl9mcmFtZWJ1ZmZlcihzdHJ1Y3QgaW50ZWxfZmJkZXYKPiAqZmJkZXYpOwo+IMKgI2Vsc2UK PiAtc3RhdGljIGlubGluZSBpbnQgaW50ZWxfZmJkZXZfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+IC17Cj4gLcKgwqDCoMKgwqDCoMKgcmV0dXJuIDA7Cj4gLX0KPiAtCj4gLXN0YXRpYyBp bmxpbmUgdm9pZCBpbnRlbF9mYmRldl9pbml0aWFsX2NvbmZpZ19hc3luYyhzdHJ1Y3QKPiBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAtewo+IC19Cj4gLQo+IC1zdGF0aWMgaW5saW5lIHZv aWQgaW50ZWxfZmJkZXZfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ICpkZXZf cHJpdikKPiAtewo+IC19Cj4gLQo+IC1zdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZmJkZXZfZmlu aShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ICpkZXZfcHJpdikKPiArc3RhdGljIGlubGluZSB2 b2lkIGludGVsX2ZiZGV2X3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gKmRldl9wcml2 KQo+IMKgewo+IMKgfQo+IMKgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJpdmVyLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJpdmVyLmMKPiBpbmRl eCA4NjQ2MGNkODE2N2QxLi41MzY2M2MwY2MzYmU0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJpdmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RyaXZlci5jCj4gQEAgLTgxNyw2ICs4MTcsOCBAQCBpbnQgaTkxNV9kcml2ZXJfcHJvYmUoc3Ry dWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0Cj4gc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkKPiDC oAo+IMKgwqDCoMKgwqDCoMKgwqBpOTE1LT5kb19yZWxlYXNlID0gdHJ1ZTsKPiDCoAo+ICvCoMKg wqDCoMKgwqDCoGludGVsX2ZiZGV2X3NldHVwKGk5MTUpOwo+ICsKPiDCoMKgwqDCoMKgwqDCoMKg cmV0dXJuIDA7Cj4gwqAKPiDCoG91dF9jbGVhbnVwX2dlbToKCg==