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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 29ADDC4332F for ; Thu, 10 Feb 2022 11:18:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240774AbiBJLSz (ORCPT ); Thu, 10 Feb 2022 06:18:55 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:56946 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240696AbiBJLSy (ORCPT ); Thu, 10 Feb 2022 06:18:54 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8D115FC7; Thu, 10 Feb 2022 03:18:54 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 490A8210E0; Thu, 10 Feb 2022 11:18:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1644491933; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=XECh7M0rkx+lTu8mgjxmGtWqaPWhcr4MhXKaX3/rmj8=; b=qMxU1sYQ73fYorAH7NUXMpIAp4GZCdxntg/84kU4wf2VvMG0En22J9cH8Rmd63gGGz4Esg dYEqt8ugwY3eY40BQQPM+yVCBivOXUBEm861AL1TxWUrMtDM1mMA0M6/W33LlOh5omdteW mEnH51oNYHvWYpJE5w2JQverG01oos8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1644491933; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=XECh7M0rkx+lTu8mgjxmGtWqaPWhcr4MhXKaX3/rmj8=; b=E2MKRT9nBEiWe5wZsxUnRctw+Olzi2LlsyRcCscIZm+ZvlZ6eVc+xTZNEx4lPQABeJD3SS ZN41cWVmw8wK/aAw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 01D4713B43; Thu, 10 Feb 2022 11:18:52 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id Zg3xOpz0BGIzCQAAMHmgww (envelope-from ); Thu, 10 Feb 2022 11:18:52 +0000 Message-ID: Date: Thu, 10 Feb 2022 12:18:52 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: [PATCH v2 03/19] fbcon: Introduce wrapper for console->fb_info lookup Content-Language: en-US To: Daniel Vetter , DRI Development Cc: Intel Graphics Development , linux-fbdev@vger.kernel.org, LKML , Sam Ravnborg , Daniel Vetter , Helge Deller , Daniel Vetter , Greg Kroah-Hartman , Tetsuo Handa , Du Cheng , Claudio Suarez References: <20220208210824.2238981-1-daniel.vetter@ffwll.ch> <20220208210824.2238981-4-daniel.vetter@ffwll.ch> From: Thomas Zimmermann In-Reply-To: <20220208210824.2238981-4-daniel.vetter@ffwll.ch> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------rKRYwLKHn1m0oDNTNdsAysoD" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------rKRYwLKHn1m0oDNTNdsAysoD Content-Type: multipart/mixed; boundary="------------Ekcl3hDMNqrEJLn0DtxY4RV8"; protected-headers="v1" From: Thomas Zimmermann To: Daniel Vetter , DRI Development Cc: Intel Graphics Development , linux-fbdev@vger.kernel.org, LKML , Sam Ravnborg , Daniel Vetter , Helge Deller , Daniel Vetter , Greg Kroah-Hartman , Tetsuo Handa , Du Cheng , Claudio Suarez Message-ID: Subject: Re: [PATCH v2 03/19] fbcon: Introduce wrapper for console->fb_info lookup References: <20220208210824.2238981-1-daniel.vetter@ffwll.ch> <20220208210824.2238981-4-daniel.vetter@ffwll.ch> In-Reply-To: <20220208210824.2238981-4-daniel.vetter@ffwll.ch> --------------Ekcl3hDMNqrEJLn0DtxY4RV8 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 DQoNCkFtIDA4LjAyLjIyIHVtIDIyOjA4IHNjaHJpZWIgRGFuaWVsIFZldHRlcjoNCj4gSGFs ZiBvZiBpdCBpcyBwcm90ZWN0ZWQgYnkgY29uc29sZV9sb2NrLCBidXQgdGhlIG90aGVyIGhh bGYgaXMgYSBsb3QNCj4gbW9yZSBhd2t3YXJkOiBSZWdpc3RyYXRpb24vZGVyZWdpc3RyYXRp b24gb2YgZmJkZXYgYXJlIHNlcmlhbGl6ZWQsIGJ1dA0KPiB3ZSBkb24ndCByZWFsbHkgY2xl YXIgb3V0IGFueXRoaW5nIGluIGNvbjJmYl9tYXAgYW5kIHNvIHRoZXJlJ3MNCj4gcG90ZW50 aWFsIGZvciB1c2UtYWZ0ZXIgZnJlZSBtaXh1cHMuDQo+IA0KPiBGaXJzdCBzdGVwIGlzIHRv IGVuY2Fwc3VsYXRlIHRoZSBsb29rdXAuDQo+IA0KPiBBY2tlZC1ieTogU2FtIFJhdm5ib3Jn IDxzYW1AcmF2bmJvcmcub3JnPg0KPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxk YW5pZWwudmV0dGVyQGludGVsLmNvbT4NCj4gQ2M6IEhlbGdlIERlbGxlciA8ZGVsbGVyQGdt eC5kZT4NCj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4NCj4gQ2M6IEdy ZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+DQo+IENjOiBU ZXRzdW8gSGFuZGEgPHBlbmd1aW4ta2VybmVsQEktbG92ZS5TQUtVUkEubmUuanA+DQo+IENj OiBEdSBDaGVuZyA8ZHVjaGVuZzJAZ21haWwuY29tPg0KPiBDYzogQ2xhdWRpbyBTdWFyZXog PGNzc2tAbmV0LWMuZXM+DQo+IENjOiBUaG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1hbm5A c3VzZS5kZT4NCg0KQWNrZWQtYnk6IFRob21hcyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBz dXNlLmRlPg0KDQo+IC0tLQ0KPiAgIGRyaXZlcnMvdmlkZW8vZmJkZXYvY29yZS9mYmNvbi5j IHwgNzYgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0NCj4gICAxIGZpbGUgY2hh bmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2ZiY29uLmMgYi9kcml2ZXJzL3ZpZGVv L2ZiZGV2L2NvcmUvZmJjb24uYw0KPiBpbmRleCBlOTI1YmI2MDhlMjUuLmI3NWU2MzhjYjgz ZCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2ZiY29uLmMNCj4g KysrIGIvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2ZiY29uLmMNCj4gQEAgLTExMCw2ICsx MTAsMTggQEAgc3RhdGljIHN0cnVjdCBmYmNvbl9kaXNwbGF5IGZiX2Rpc3BsYXlbTUFYX05S X0NPTlNPTEVTXTsNCj4gICBzdGF0aWMgc2lnbmVkIGNoYXIgY29uMmZiX21hcFtNQVhfTlJf Q09OU09MRVNdOw0KPiAgIHN0YXRpYyBzaWduZWQgY2hhciBjb24yZmJfbWFwX2Jvb3RbTUFY X05SX0NPTlNPTEVTXTsNCj4gICANCj4gK3N0YXRpYyBzdHJ1Y3QgZmJfaW5mbyAqZmJjb25f aW5mb19mcm9tX2NvbnNvbGUoaW50IGNvbnNvbGUpDQo+ICt7DQo+ICsJV0FSTl9DT05TT0xF X1VOTE9DS0VEKCk7DQo+ICsNCj4gKwkvKg0KPiArCSAqIE5vdGUgdGhhdCBvbmx5IGNvbjJm Yl9tYXAgaXMgcHJvdGVjdGVkIGJ5IHRoZSBjb25zb2xlIGxvY2ssDQo+ICsJICogcmVnaXN0 ZXJlZF9mYiBpcyBwcm90ZWN0ZWQgYnkgYSBzZXBhcmF0ZSBtdXRleC4gVGhpcyBsb29rdXAg Y2FuDQo+ICsJICogdGhlcmVmb3JlIHJhY2UuDQo+ICsJICovDQo+ICsJcmV0dXJuIHJlZ2lz dGVyZWRfZmJbY29uMmZiX21hcFtjb25zb2xlXV07DQo+ICt9DQo+ICsNCj4gICBzdGF0aWMg aW50IGxvZ29fbGluZXM7DQo+ICAgLyogbG9nb19zaG93biBpcyBhbiBpbmRleCB0byB2Y19j b25zIHdoZW4gPj0gMDsgb3RoZXJ3aXNlIGZvbGxvd3MgRkJDT05fTE9HTw0KPiAgICAgIGVu dW1zLiAgKi8NCj4gQEAgLTE5OSw3ICsyMTEsNyBAQCBzdGF0aWMgdm9pZCBmYmNvbl9yb3Rh dGUoc3RydWN0IGZiX2luZm8gKmluZm8sIHUzMiByb3RhdGUpDQo+ICAgCWlmICghb3BzIHx8 IG9wcy0+Y3VycmNvbiA9PSAtMSkNCj4gICAJCXJldHVybjsNCj4gICANCj4gLQlmYl9pbmZv ID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW29wcy0+Y3VycmNvbl1dOw0KPiArCWZiX2lu Zm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29sZShvcHMtPmN1cnJjb24pOw0KPiAgIA0KPiAg IAlpZiAoaW5mbyA9PSBmYl9pbmZvKSB7DQo+ICAgCQlzdHJ1Y3QgZmJjb25fZGlzcGxheSAq cCA9ICZmYl9kaXNwbGF5W29wcy0+Y3VycmNvbl07DQo+IEBAIC0yMjYsNyArMjM4LDcgQEAg c3RhdGljIHZvaWQgZmJjb25fcm90YXRlX2FsbChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgdTMy IHJvdGF0ZSkNCj4gICAJZm9yIChpID0gZmlyc3RfZmJfdmM7IGkgPD0gbGFzdF9mYl92Yzsg aSsrKSB7DQo+ICAgCQl2YyA9IHZjX2NvbnNbaV0uZDsNCj4gICAJCWlmICghdmMgfHwgdmMt PnZjX21vZGUgIT0gS0RfVEVYVCB8fA0KPiAtCQkgICAgcmVnaXN0ZXJlZF9mYltjb24yZmJf bWFwW2ldXSAhPSBpbmZvKQ0KPiArCQkgICAgZmJjb25faW5mb19mcm9tX2NvbnNvbGUoaSkg IT0gaW5mbykNCj4gICAJCQljb250aW51ZTsNCj4gICANCj4gICAJCXAgPSAmZmJfZGlzcGxh eVt2Yy0+dmNfbnVtXTsNCj4gQEAgLTM1Niw3ICszNjgsNyBAQCBzdGF0aWMgdm9pZCBmYl9m bGFzaGN1cnNvcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQo+ICAgCQl2YyA9IHZjX2Nv bnNbb3BzLT5jdXJyY29uXS5kOw0KPiAgIA0KPiAgIAlpZiAoIXZjIHx8ICFjb25faXNfdmlz aWJsZSh2YykgfHwNCj4gLSAJICAgIHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNf bnVtXV0gIT0gaW5mbyB8fA0KPiArCSAgICBmYmNvbl9pbmZvX2Zyb21fY29uc29sZSh2Yy0+ dmNfbnVtKSAhPSBpbmZvIHx8DQo+ICAgCSAgICB2Yy0+dmNfZGVjY20gIT0gMSkgew0KPiAg IAkJY29uc29sZV91bmxvY2soKTsNCj4gICAJCXJldHVybjsNCj4gQEAgLTc5MSw3ICs4MDMs NyBAQCBzdGF0aWMgdm9pZCBjb24yZmJfaW5pdF9kaXNwbGF5KHN0cnVjdCB2Y19kYXRhICp2 Yywgc3RydWN0IGZiX2luZm8gKmluZm8sDQo+ICAgCWlmIChzaG93X2xvZ28pIHsNCj4gICAJ CXN0cnVjdCB2Y19kYXRhICpmZ192YyA9IHZjX2NvbnNbZmdfY29uc29sZV0uZDsNCj4gICAJ CXN0cnVjdCBmYl9pbmZvICpmZ19pbmZvID0NCj4gLQkJCXJlZ2lzdGVyZWRfZmJbY29uMmZi X21hcFtmZ19jb25zb2xlXV07DQo+ICsJCQlmYmNvbl9pbmZvX2Zyb21fY29uc29sZShmZ19j b25zb2xlKTsNCj4gICANCj4gICAJCWZiY29uX3ByZXBhcmVfbG9nbyhmZ192YywgZmdfaW5m bywgZmdfdmMtPnZjX2NvbHMsDQo+ICAgCQkJCSAgIGZnX3ZjLT52Y19yb3dzLCBmZ192Yy0+ dmNfY29scywNCj4gQEAgLTEwMTQsNyArMTAyNiw3IEBAIHN0YXRpYyB2b2lkIGZiY29uX2lu aXQoc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgaW5pdCkNCj4gICAJaWYgKGNvbjJmYl9tYXBb dmMtPnZjX251bV0gPT0gLTEpDQo+ICAgCQljb24yZmJfbWFwW3ZjLT52Y19udW1dID0gaW5m b19pZHg7DQo+ICAgDQo+IC0JaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+ dmNfbnVtXV07DQo+ICsJaW5mbyA9IGZiY29uX2luZm9fZnJvbV9jb25zb2xlKHZjLT52Y19u dW0pOw0KPiAgIA0KPiAgIAlpZiAobG9nb19zaG93biA8IDAgJiYgY29uc29sZV9sb2dsZXZl bCA8PSBDT05TT0xFX0xPR0xFVkVMX1FVSUVUKQ0KPiAgIAkJbG9nb19zaG93biA9IEZCQ09O X0xPR09fRE9OVFNIT1c7DQo+IEBAIC0xMjMxLDcgKzEyNDMsNyBAQCBzdGF0aWMgdm9pZCBm YmNvbl9kZWluaXQoc3RydWN0IHZjX2RhdGEgKnZjKQ0KPiAgIHN0YXRpYyB2b2lkIGZiY29u X2NsZWFyKHN0cnVjdCB2Y19kYXRhICp2YywgaW50IHN5LCBpbnQgc3gsIGludCBoZWlnaHQs DQo+ICAgCQkJaW50IHdpZHRoKQ0KPiAgIHsNCj4gLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9 IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNfbnVtXV07DQo+ICsJc3RydWN0IGZi X2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29sZSh2Yy0+dmNfbnVtKTsNCj4g ICAJc3RydWN0IGZiY29uX29wcyAqb3BzID0gaW5mby0+ZmJjb25fcGFyOw0KPiAgIA0KPiAg IAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZmYl9kaXNwbGF5W3ZjLT52Y19udW1dOw0K PiBAQCAtMTI2OSw3ICsxMjgxLDcgQEAgc3RhdGljIHZvaWQgZmJjb25fY2xlYXIoc3RydWN0 IHZjX2RhdGEgKnZjLCBpbnQgc3ksIGludCBzeCwgaW50IGhlaWdodCwNCj4gICBzdGF0aWMg dm9pZCBmYmNvbl9wdXRjcyhzdHJ1Y3QgdmNfZGF0YSAqdmMsIGNvbnN0IHVuc2lnbmVkIHNo b3J0ICpzLA0KPiAgIAkJCWludCBjb3VudCwgaW50IHlwb3MsIGludCB4cG9zKQ0KPiAgIHsN Cj4gLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2 Yy0+dmNfbnVtXV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zy b21fY29uc29sZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX2Rpc3BsYXkgKnAg PSAmZmJfZGlzcGxheVt2Yy0+dmNfbnVtXTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAqb3Bz ID0gaW5mby0+ZmJjb25fcGFyOw0KPiAgIA0KPiBAQCAtMTI4OSw3ICsxMzAxLDcgQEAgc3Rh dGljIHZvaWQgZmJjb25fcHV0YyhzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBjLCBpbnQgeXBv cywgaW50IHhwb3MpDQo+ICAgDQo+ICAgc3RhdGljIHZvaWQgZmJjb25fY2xlYXJfbWFyZ2lu cyhzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBib3R0b21fb25seSkNCj4gICB7DQo+IC0Jc3Ry dWN0IGZiX2luZm8gKmluZm8gPSByZWdpc3RlcmVkX2ZiW2NvbjJmYl9tYXBbdmMtPnZjX251 bV1dOw0KPiArCXN0cnVjdCBmYl9pbmZvICppbmZvID0gZmJjb25faW5mb19mcm9tX2NvbnNv bGUodmMtPnZjX251bSk7DQo+ICAgCXN0cnVjdCBmYmNvbl9vcHMgKm9wcyA9IGluZm8tPmZi Y29uX3BhcjsNCj4gICANCj4gICAJaWYgKCFmYmNvbl9pc19pbmFjdGl2ZSh2YywgaW5mbykp DQo+IEBAIC0xMjk4LDcgKzEzMTAsNyBAQCBzdGF0aWMgdm9pZCBmYmNvbl9jbGVhcl9tYXJn aW5zKHN0cnVjdCB2Y19kYXRhICp2YywgaW50IGJvdHRvbV9vbmx5KQ0KPiAgIA0KPiAgIHN0 YXRpYyB2b2lkIGZiY29uX2N1cnNvcihzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBtb2RlKQ0K PiAgIHsNCj4gLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZi X21hcFt2Yy0+dmNfbnVtXV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9p bmZvX2Zyb21fY29uc29sZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAq b3BzID0gaW5mby0+ZmJjb25fcGFyOw0KPiAgICAJaW50IGMgPSBzY3JfcmVhZHcoKHUxNiAq KSB2Yy0+dmNfcG9zKTsNCj4gICANCj4gQEAgLTEzOTIsNyArMTQwNCw3IEBAIHN0YXRpYyB2 b2lkIGZiY29uX3NldF9kaXNwKHN0cnVjdCBmYl9pbmZvICppbmZvLCBzdHJ1Y3QgZmJfdmFy X3NjcmVlbmluZm8gKnZhciwNCj4gICANCj4gICBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHl3 cmFwX3VwKHN0cnVjdCB2Y19kYXRhICp2YywgaW50IGNvdW50KQ0KPiAgIHsNCj4gLQlzdHJ1 Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNfbnVt XV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29s ZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAqb3BzID0gaW5mby0+ZmJj b25fcGFyOw0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZmYl9kaXNwbGF5W3Zj LT52Y19udW1dOw0KPiAgIA0KPiBAQCAtMTQxMSw3ICsxNDIzLDcgQEAgc3RhdGljIF9faW5s aW5lX18gdm9pZCB5d3JhcF91cChzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBjb3VudCkNCj4g ICANCj4gICBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHl3cmFwX2Rvd24oc3RydWN0IHZjX2Rh dGEgKnZjLCBpbnQgY291bnQpDQo+ICAgew0KPiAtCXN0cnVjdCBmYl9pbmZvICppbmZvID0g cmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW3ZjLT52Y19udW1dXTsNCj4gKwlzdHJ1Y3QgZmJf aW5mbyAqaW5mbyA9IGZiY29uX2luZm9fZnJvbV9jb25zb2xlKHZjLT52Y19udW0pOw0KPiAg IAlzdHJ1Y3QgZmJjb25fb3BzICpvcHMgPSBpbmZvLT5mYmNvbl9wYXI7DQo+ICAgCXN0cnVj dCBmYmNvbl9kaXNwbGF5ICpwID0gJmZiX2Rpc3BsYXlbdmMtPnZjX251bV07DQo+ICAgDQo+ IEBAIC0xNDMwLDcgKzE0NDIsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHl3cmFwX2Rv d24oc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgY291bnQpDQo+ICAgDQo+ICAgc3RhdGljIF9f aW5saW5lX18gdm9pZCB5cGFuX3VwKHN0cnVjdCB2Y19kYXRhICp2YywgaW50IGNvdW50KQ0K PiAgIHsNCj4gLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZi X21hcFt2Yy0+dmNfbnVtXV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9p bmZvX2Zyb21fY29uc29sZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX2Rpc3Bs YXkgKnAgPSAmZmJfZGlzcGxheVt2Yy0+dmNfbnVtXTsNCj4gICAJc3RydWN0IGZiY29uX29w cyAqb3BzID0gaW5mby0+ZmJjb25fcGFyOw0KPiAgIA0KPiBAQCAtMTQ1NCw3ICsxNDY2LDcg QEAgc3RhdGljIF9faW5saW5lX18gdm9pZCB5cGFuX3VwKHN0cnVjdCB2Y19kYXRhICp2Yywg aW50IGNvdW50KQ0KPiAgIA0KPiAgIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgeXBhbl91cF9y ZWRyYXcoc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgdCwgaW50IGNvdW50KQ0KPiAgIHsNCj4g LQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+ dmNfbnVtXV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zyb21f Y29uc29sZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAqb3BzID0gaW5m by0+ZmJjb25fcGFyOw0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZmYl9kaXNw bGF5W3ZjLT52Y19udW1dOw0KPiAgIA0KPiBAQCAtMTQ3OCw3ICsxNDkwLDcgQEAgc3RhdGlj IF9faW5saW5lX18gdm9pZCB5cGFuX3VwX3JlZHJhdyhzdHJ1Y3QgdmNfZGF0YSAqdmMsIGlu dCB0LCBpbnQgY291bnQpDQo+ICAgDQo+ICAgc3RhdGljIF9faW5saW5lX18gdm9pZCB5cGFu X2Rvd24oc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgY291bnQpDQo+ICAgew0KPiAtCXN0cnVj dCBmYl9pbmZvICppbmZvID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW3ZjLT52Y19udW1d XTsNCj4gKwlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IGZiY29uX2luZm9fZnJvbV9jb25zb2xl KHZjLT52Y19udW0pOw0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZmYl9kaXNw bGF5W3ZjLT52Y19udW1dOw0KPiAgIAlzdHJ1Y3QgZmJjb25fb3BzICpvcHMgPSBpbmZvLT5m YmNvbl9wYXI7DQo+ICAgDQo+IEBAIC0xNTAyLDcgKzE1MTQsNyBAQCBzdGF0aWMgX19pbmxp bmVfXyB2b2lkIHlwYW5fZG93bihzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBjb3VudCkNCj4g ICANCj4gICBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHlwYW5fZG93bl9yZWRyYXcoc3RydWN0 IHZjX2RhdGEgKnZjLCBpbnQgdCwgaW50IGNvdW50KQ0KPiAgIHsNCj4gLQlzdHJ1Y3QgZmJf aW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNfbnVtXV07DQo+ ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29sZSh2Yy0+ dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAqb3BzID0gaW5mby0+ZmJjb25fcGFy Ow0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZmYl9kaXNwbGF5W3ZjLT52Y19u dW1dOw0KPiAgIA0KPiBAQCAtMTY2Niw3ICsxNjc4LDcgQEAgc3RhdGljIHZvaWQgZmJjb25f cmVkcmF3KHN0cnVjdCB2Y19kYXRhICp2Yywgc3RydWN0IGZiY29uX2Rpc3BsYXkgKnAsDQo+ ICAgc3RhdGljIHZvaWQgZmJjb25fYm1vdmVfcmVjKHN0cnVjdCB2Y19kYXRhICp2Yywgc3Ry dWN0IGZiY29uX2Rpc3BsYXkgKnAsIGludCBzeSwgaW50IHN4LA0KPiAgIAkJCSAgICBpbnQg ZHksIGludCBkeCwgaW50IGhlaWdodCwgaW50IHdpZHRoLCB1X2ludCB5X2JyZWFrKQ0KPiAg IHsNCj4gLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21h cFt2Yy0+dmNfbnVtXV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZv X2Zyb21fY29uc29sZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAqb3Bz ID0gaW5mby0+ZmJjb25fcGFyOw0KPiAgIAl1X2ludCBiOw0KPiAgIA0KPiBAQCAtMTcwOCw3 ICsxNzIwLDcgQEAgc3RhdGljIHZvaWQgZmJjb25fYm1vdmVfcmVjKHN0cnVjdCB2Y19kYXRh ICp2Yywgc3RydWN0IGZiY29uX2Rpc3BsYXkgKnAsIGludCBzeSwNCj4gICBzdGF0aWMgdm9p ZCBmYmNvbl9ibW92ZShzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBzeSwgaW50IHN4LCBpbnQg ZHksIGludCBkeCwNCj4gICAJCQlpbnQgaGVpZ2h0LCBpbnQgd2lkdGgpDQo+ICAgew0KPiAt CXN0cnVjdCBmYl9pbmZvICppbmZvID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW3ZjLT52 Y19udW1dXTsNCj4gKwlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IGZiY29uX2luZm9fZnJvbV9j b25zb2xlKHZjLT52Y19udW0pOw0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZm Yl9kaXNwbGF5W3ZjLT52Y19udW1dOw0KPiAgIA0KPiAgIAlpZiAoZmJjb25faXNfaW5hY3Rp dmUodmMsIGluZm8pKQ0KPiBAQCAtMTczMSw3ICsxNzQzLDcgQEAgc3RhdGljIHZvaWQgZmJj b25fYm1vdmUoc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgc3ksIGludCBzeCwgaW50IGR5LCBp bnQgZHgsDQo+ICAgc3RhdGljIGJvb2wgZmJjb25fc2Nyb2xsKHN0cnVjdCB2Y19kYXRhICp2 YywgdW5zaWduZWQgaW50IHQsIHVuc2lnbmVkIGludCBiLA0KPiAgIAkJZW51bSBjb25fc2Ny b2xsIGRpciwgdW5zaWduZWQgaW50IGNvdW50KQ0KPiAgIHsNCj4gLQlzdHJ1Y3QgZmJfaW5m byAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNfbnVtXV07DQo+ICsJ c3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29sZSh2Yy0+dmNf bnVtKTsNCj4gICAJc3RydWN0IGZiY29uX2Rpc3BsYXkgKnAgPSAmZmJfZGlzcGxheVt2Yy0+ dmNfbnVtXTsNCj4gICAJaW50IHNjcm9sbF9wYXJ0aWFsID0gaW5mby0+ZmxhZ3MgJiBGQklO Rk9fUEFSVElBTF9QQU5fT0s7DQo+ICAgDQo+IEBAIC0xOTk2LDcgKzIwMDgsNyBAQCBzdGF0 aWMgdm9pZCB1cGRhdGVzY3JvbGxtb2RlKHN0cnVjdCBmYmNvbl9kaXNwbGF5ICpwLA0KPiAg IHN0YXRpYyBpbnQgZmJjb25fcmVzaXplKHN0cnVjdCB2Y19kYXRhICp2YywgdW5zaWduZWQg aW50IHdpZHRoLA0KPiAgIAkJCXVuc2lnbmVkIGludCBoZWlnaHQsIHVuc2lnbmVkIGludCB1 c2VyKQ0KPiAgIHsNCj4gLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJb Y29uMmZiX21hcFt2Yy0+dmNfbnVtXV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBm YmNvbl9pbmZvX2Zyb21fY29uc29sZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29u X29wcyAqb3BzID0gaW5mby0+ZmJjb25fcGFyOw0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxh eSAqcCA9ICZmYl9kaXNwbGF5W3ZjLT52Y19udW1dOw0KPiAgIAlzdHJ1Y3QgZmJfdmFyX3Nj cmVlbmluZm8gdmFyID0gaW5mby0+dmFyOw0KPiBAQCAtMjA2NSw3ICsyMDc3LDcgQEAgc3Rh dGljIGludCBmYmNvbl9zd2l0Y2goc3RydWN0IHZjX2RhdGEgKnZjKQ0KPiAgIAlzdHJ1Y3Qg ZmJfdmFyX3NjcmVlbmluZm8gdmFyOw0KPiAgIAlpbnQgaSwgcmV0LCBwcmV2X2NvbnNvbGU7 DQo+ICAgDQo+IC0JaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNfbnVt XV07DQo+ICsJaW5mbyA9IGZiY29uX2luZm9fZnJvbV9jb25zb2xlKHZjLT52Y19udW0pOw0K PiAgIAlvcHMgPSBpbmZvLT5mYmNvbl9wYXI7DQo+ICAgDQo+ICAgCWlmIChsb2dvX3Nob3du ID49IDApIHsNCj4gQEAgLTIwNzksNyArMjA5MSw3IEBAIHN0YXRpYyBpbnQgZmJjb25fc3dp dGNoKHN0cnVjdCB2Y19kYXRhICp2YykNCj4gICANCj4gICAJcHJldl9jb25zb2xlID0gb3Bz LT5jdXJyY29uOw0KPiAgIAlpZiAocHJldl9jb25zb2xlICE9IC0xKQ0KPiAtCQlvbGRfaW5m byA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFtwcmV2X2NvbnNvbGVdXTsNCj4gKwkJb2xk X2luZm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29sZShwcmV2X2NvbnNvbGUpOw0KPiAgIAkv Kg0KPiAgIAkgKiBGSVhNRTogSWYgd2UgaGF2ZSBtdWx0aXBsZSBmYmRldidzIGxvYWRlZCwg d2UgbmVlZCB0bw0KPiAgIAkgKiB1cGRhdGUgYWxsIGluZm8tPmN1cnJjb24uICBQZXJoYXBz LCB3ZSBjYW4gcGxhY2UgdGhpcw0KPiBAQCAtMjIwMiw3ICsyMjE0LDcgQEAgc3RhdGljIHZv aWQgZmJjb25fZ2VuZXJpY19ibGFuayhzdHJ1Y3QgdmNfZGF0YSAqdmMsIHN0cnVjdCBmYl9p bmZvICppbmZvLA0KPiAgIA0KPiAgIHN0YXRpYyBpbnQgZmJjb25fYmxhbmsoc3RydWN0IHZj X2RhdGEgKnZjLCBpbnQgYmxhbmssIGludCBtb2RlX3N3aXRjaCkNCj4gICB7DQo+IC0Jc3Ry dWN0IGZiX2luZm8gKmluZm8gPSByZWdpc3RlcmVkX2ZiW2NvbjJmYl9tYXBbdmMtPnZjX251 bV1dOw0KPiArCXN0cnVjdCBmYl9pbmZvICppbmZvID0gZmJjb25faW5mb19mcm9tX2NvbnNv bGUodmMtPnZjX251bSk7DQo+ICAgCXN0cnVjdCBmYmNvbl9vcHMgKm9wcyA9IGluZm8tPmZi Y29uX3BhcjsNCj4gICANCj4gICAJaWYgKG1vZGVfc3dpdGNoKSB7DQo+IEBAIC0yMjQ0LDcg KzIyNTYsNyBAQCBzdGF0aWMgaW50IGZiY29uX2JsYW5rKHN0cnVjdCB2Y19kYXRhICp2Yywg aW50IGJsYW5rLCBpbnQgbW9kZV9zd2l0Y2gpDQo+ICAgDQo+ICAgc3RhdGljIGludCBmYmNv bl9kZWJ1Z19lbnRlcihzdHJ1Y3QgdmNfZGF0YSAqdmMpDQo+ICAgew0KPiAtCXN0cnVjdCBm Yl9pbmZvICppbmZvID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW3ZjLT52Y19udW1dXTsN Cj4gKwlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IGZiY29uX2luZm9fZnJvbV9jb25zb2xlKHZj LT52Y19udW0pOw0KPiAgIAlzdHJ1Y3QgZmJjb25fb3BzICpvcHMgPSBpbmZvLT5mYmNvbl9w YXI7DQo+ICAgDQo+ICAgCW9wcy0+c2F2ZV9ncmFwaGljcyA9IG9wcy0+Z3JhcGhpY3M7DQo+ IEBAIC0yMjU3LDcgKzIyNjksNyBAQCBzdGF0aWMgaW50IGZiY29uX2RlYnVnX2VudGVyKHN0 cnVjdCB2Y19kYXRhICp2YykNCj4gICANCj4gICBzdGF0aWMgaW50IGZiY29uX2RlYnVnX2xl YXZlKHN0cnVjdCB2Y19kYXRhICp2YykNCj4gICB7DQo+IC0Jc3RydWN0IGZiX2luZm8gKmlu Zm8gPSByZWdpc3RlcmVkX2ZiW2NvbjJmYl9tYXBbdmMtPnZjX251bV1dOw0KPiArCXN0cnVj dCBmYl9pbmZvICppbmZvID0gZmJjb25faW5mb19mcm9tX2NvbnNvbGUodmMtPnZjX251bSk7 DQo+ICAgCXN0cnVjdCBmYmNvbl9vcHMgKm9wcyA9IGluZm8tPmZiY29uX3BhcjsNCj4gICAN Cj4gICAJb3BzLT5ncmFwaGljcyA9IG9wcy0+c2F2ZV9ncmFwaGljczsNCj4gQEAgLTIzOTMs NyArMjQwNSw3IEBAIHN0YXRpYyB2b2lkIHNldF92Y19oaV9mb250KHN0cnVjdCB2Y19kYXRh ICp2YywgYm9vbCBzZXQpDQo+ICAgc3RhdGljIGludCBmYmNvbl9kb19zZXRfZm9udChzdHJ1 Y3QgdmNfZGF0YSAqdmMsIGludCB3LCBpbnQgaCwgaW50IGNoYXJjb3VudCwNCj4gICAJCQkg ICAgIGNvbnN0IHU4ICogZGF0YSwgaW50IHVzZXJmb250KQ0KPiAgIHsNCj4gLQlzdHJ1Y3Qg ZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNfbnVtXV07 DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29sZSh2 Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAqb3BzID0gaW5mby0+ZmJjb25f cGFyOw0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZmYl9kaXNwbGF5W3ZjLT52 Y19udW1dOw0KPiAgIAlpbnQgcmVzaXplOw0KPiBAQCAtMjQ0Nyw3ICsyNDU5LDcgQEAgc3Rh dGljIGludCBmYmNvbl9kb19zZXRfZm9udChzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCB3LCBp bnQgaCwgaW50IGNoYXJjb3VudCwNCj4gICBzdGF0aWMgaW50IGZiY29uX3NldF9mb250KHN0 cnVjdCB2Y19kYXRhICp2Yywgc3RydWN0IGNvbnNvbGVfZm9udCAqZm9udCwNCj4gICAJCQkg IHVuc2lnbmVkIGludCBmbGFncykNCj4gICB7DQo+IC0Jc3RydWN0IGZiX2luZm8gKmluZm8g PSByZWdpc3RlcmVkX2ZiW2NvbjJmYl9tYXBbdmMtPnZjX251bV1dOw0KPiArCXN0cnVjdCBm Yl9pbmZvICppbmZvID0gZmJjb25faW5mb19mcm9tX2NvbnNvbGUodmMtPnZjX251bSk7DQo+ ICAgCXVuc2lnbmVkIGNoYXJjb3VudCA9IGZvbnQtPmNoYXJjb3VudDsNCj4gICAJaW50IHcg PSBmb250LT53aWR0aDsNCj4gICAJaW50IGggPSBmb250LT5oZWlnaHQ7DQo+IEBAIC0yNTEx LDcgKzI1MjMsNyBAQCBzdGF0aWMgaW50IGZiY29uX3NldF9mb250KHN0cnVjdCB2Y19kYXRh ICp2Yywgc3RydWN0IGNvbnNvbGVfZm9udCAqZm9udCwNCj4gICANCj4gICBzdGF0aWMgaW50 IGZiY29uX3NldF9kZWZfZm9udChzdHJ1Y3QgdmNfZGF0YSAqdmMsIHN0cnVjdCBjb25zb2xl X2ZvbnQgKmZvbnQsIGNoYXIgKm5hbWUpDQo+ICAgew0KPiAtCXN0cnVjdCBmYl9pbmZvICpp bmZvID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW3ZjLT52Y19udW1dXTsNCj4gKwlzdHJ1 Y3QgZmJfaW5mbyAqaW5mbyA9IGZiY29uX2luZm9fZnJvbV9jb25zb2xlKHZjLT52Y19udW0p Ow0KPiAgIAljb25zdCBzdHJ1Y3QgZm9udF9kZXNjICpmOw0KPiAgIA0KPiAgIAlpZiAoIW5h bWUpDQo+IEBAIC0yNTM1LDcgKzI1NDcsNyBAQCBzdGF0aWMgc3RydWN0IGZiX2NtYXAgcGFs ZXR0ZV9jbWFwID0gew0KPiAgIA0KPiAgIHN0YXRpYyB2b2lkIGZiY29uX3NldF9wYWxldHRl KHN0cnVjdCB2Y19kYXRhICp2YywgY29uc3QgdW5zaWduZWQgY2hhciAqdGFibGUpDQo+ICAg ew0KPiAtCXN0cnVjdCBmYl9pbmZvICppbmZvID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFw W3ZjLT52Y19udW1dXTsNCj4gKwlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IGZiY29uX2luZm9f ZnJvbV9jb25zb2xlKHZjLT52Y19udW0pOw0KPiAgIAlpbnQgaSwgaiwgaywgZGVwdGg7DQo+ ICAgCXU4IHZhbDsNCj4gICANCj4gQEAgLTI2NTEsNyArMjY2Myw3IEBAIHN0YXRpYyB2b2lk IGZiY29uX21vZGVjaGFuZ2VkKHN0cnVjdCBmYl9pbmZvICppbmZvKQ0KPiAgIAkJcmV0dXJu Ow0KPiAgIAl2YyA9IHZjX2NvbnNbb3BzLT5jdXJyY29uXS5kOw0KPiAgIAlpZiAodmMtPnZj X21vZGUgIT0gS0RfVEVYVCB8fA0KPiAtCSAgICByZWdpc3RlcmVkX2ZiW2NvbjJmYl9tYXBb b3BzLT5jdXJyY29uXV0gIT0gaW5mbykNCj4gKwkgICAgZmJjb25faW5mb19mcm9tX2NvbnNv bGUob3BzLT5jdXJyY29uKSAhPSBpbmZvKQ0KPiAgIAkJcmV0dXJuOw0KPiAgIA0KPiAgIAlw ID0gJmZiX2Rpc3BsYXlbdmMtPnZjX251bV07DQo+IEBAIC0yNjkxLDcgKzI3MDMsNyBAQCBz dGF0aWMgdm9pZCBmYmNvbl9zZXRfYWxsX3ZjcyhzdHJ1Y3QgZmJfaW5mbyAqaW5mbykNCj4g ICAJZm9yIChpID0gZmlyc3RfZmJfdmM7IGkgPD0gbGFzdF9mYl92YzsgaSsrKSB7DQo+ICAg CQl2YyA9IHZjX2NvbnNbaV0uZDsNCj4gICAJCWlmICghdmMgfHwgdmMtPnZjX21vZGUgIT0g S0RfVEVYVCB8fA0KPiAtCQkgICAgcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW2ldXSAhPSBp bmZvKQ0KPiArCQkgICAgZmJjb25faW5mb19mcm9tX2NvbnNvbGUoaSkgIT0gaW5mbykNCj4g ICAJCQljb250aW51ZTsNCj4gICANCj4gICAJCWlmIChjb25faXNfdmlzaWJsZSh2YykpIHsN Cj4gQEAgLTI5NTQsNyArMjk2Niw3IEBAIHZvaWQgZmJjb25fZmJfYmxhbmtlZChzdHJ1Y3Qg ZmJfaW5mbyAqaW5mbywgaW50IGJsYW5rKQ0KPiAgIA0KPiAgIAl2YyA9IHZjX2NvbnNbb3Bz LT5jdXJyY29uXS5kOw0KPiAgIAlpZiAodmMtPnZjX21vZGUgIT0gS0RfVEVYVCB8fA0KPiAt CQkJcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW29wcy0+Y3VycmNvbl1dICE9IGluZm8pDQo+ ICsJCQlmYmNvbl9pbmZvX2Zyb21fY29uc29sZShvcHMtPmN1cnJjb24pICE9IGluZm8pDQo+ ICAgCQlyZXR1cm47DQo+ICAgDQo+ICAgCWlmIChjb25faXNfdmlzaWJsZSh2YykpIHsNCj4g QEAgLTI5NzQsNyArMjk4Niw3IEBAIHZvaWQgZmJjb25fbmV3X21vZGVsaXN0KHN0cnVjdCBm Yl9pbmZvICppbmZvKQ0KPiAgIAljb25zdCBzdHJ1Y3QgZmJfdmlkZW9tb2RlICptb2RlOw0K PiAgIA0KPiAgIAlmb3IgKGkgPSBmaXJzdF9mYl92YzsgaSA8PSBsYXN0X2ZiX3ZjOyBpKysp IHsNCj4gLQkJaWYgKHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFtpXV0gIT0gaW5mbykNCj4g KwkJaWYgKGZiY29uX2luZm9fZnJvbV9jb25zb2xlKGkpICE9IGluZm8pDQo+ICAgCQkJY29u dGludWU7DQo+ICAgCQlpZiAoIWZiX2Rpc3BsYXlbaV0ubW9kZSkNCj4gICAJCQljb250aW51 ZTsNCg0KLS0gDQpUaG9tYXMgWmltbWVybWFubg0KR3JhcGhpY3MgRHJpdmVyIERldmVsb3Bl cg0KU1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJIDQpNYXhmZWxkc3RyLiA1 LCA5MDQwOSBOw7xybmJlcmcsIEdlcm1hbnkNCihIUkIgMzY4MDksIEFHIE7DvHJuYmVyZykN Ckdlc2Now6RmdHNmw7xocmVyOiBJdm8gVG90ZXYNCg== --------------Ekcl3hDMNqrEJLn0DtxY4RV8-- --------------rKRYwLKHn1m0oDNTNdsAysoD Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEExndm/fpuMUdwYFFolh/E3EQov+AFAmIE9JwFAwAAAAAACgkQlh/E3EQov+BZ Sw//a74mzA5ZGl179egAW/p6IX/xTR+h6u4mryr66zrEZBMu9Abr4VnJ44Yhz+I2rV5lVOOvoYFt Hw7lVi5NoksKhuqBWWk2U6g1jaTSKrONUXjL8uP5P+e++/avLVI2RBlu6zdbPnX5bbf5SIi4R5R1 hKSJ99600EXh+v6xmMixS4mzkcpHVddixDbvySeLGerhkuqefufc25ly5yd3OJsvHIfZ3+379dPk zHnkrLDy1yV3CF6GW6YWzaDd4uYH/d7/KNj49TnnrqXCU0ypgLHMNu/6TE0fL9N+vnSAnfSQgB4X yAGRXHlhYFUvg+99KEr0IdLXwH5Z91z/A08ZN8S45CWyS5rCWXWo1LwzTHxSPRQhTQ/lwIDtgZVr eTf5IOIIwYM34XnzLeJRL8ppzadMzvGhOv8gzJdNwt5622vIUM94EMckvD3rXq1IAr3XPOWRktR+ aaCI3c779mmlWR++5V6bf/Sg2RBf/qTAJADXwjsIMcennEWWSIicgccttsU2LpM9LkyeQT4E04E8 kFXSEPFfrimC34ttJPmh8mDTNBCp88F7hkNUOV4a8T2OtcYV0DBhl9aghHtaHOfgBMVsbT/vXpJQ eOD3U6SwFKOGBdy9iOHXAS8i2zzvkDmOSUNl0fwEYIGary3ACrHNzh3wq+R2VouzmHcLpp3y+Luz yyU= =r2Ys -----END PGP SIGNATURE----- --------------rKRYwLKHn1m0oDNTNdsAysoD-- 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 EFD72C433EF for ; Thu, 10 Feb 2022 11:18:56 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 58FAA8859C; Thu, 10 Feb 2022 11:18:55 +0000 (UTC) Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9C11910E809; Thu, 10 Feb 2022 11:18:54 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 490A8210E0; Thu, 10 Feb 2022 11:18:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1644491933; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=XECh7M0rkx+lTu8mgjxmGtWqaPWhcr4MhXKaX3/rmj8=; b=qMxU1sYQ73fYorAH7NUXMpIAp4GZCdxntg/84kU4wf2VvMG0En22J9cH8Rmd63gGGz4Esg dYEqt8ugwY3eY40BQQPM+yVCBivOXUBEm861AL1TxWUrMtDM1mMA0M6/W33LlOh5omdteW mEnH51oNYHvWYpJE5w2JQverG01oos8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1644491933; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=XECh7M0rkx+lTu8mgjxmGtWqaPWhcr4MhXKaX3/rmj8=; b=E2MKRT9nBEiWe5wZsxUnRctw+Olzi2LlsyRcCscIZm+ZvlZ6eVc+xTZNEx4lPQABeJD3SS ZN41cWVmw8wK/aAw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 01D4713B43; Thu, 10 Feb 2022 11:18:52 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id Zg3xOpz0BGIzCQAAMHmgww (envelope-from ); Thu, 10 Feb 2022 11:18:52 +0000 Message-ID: Date: Thu, 10 Feb 2022 12:18:52 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: [PATCH v2 03/19] fbcon: Introduce wrapper for console->fb_info lookup Content-Language: en-US To: Daniel Vetter , DRI Development References: <20220208210824.2238981-1-daniel.vetter@ffwll.ch> <20220208210824.2238981-4-daniel.vetter@ffwll.ch> From: Thomas Zimmermann In-Reply-To: <20220208210824.2238981-4-daniel.vetter@ffwll.ch> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------rKRYwLKHn1m0oDNTNdsAysoD" 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: linux-fbdev@vger.kernel.org, Du Cheng , Tetsuo Handa , Greg Kroah-Hartman , Intel Graphics Development , LKML , Claudio Suarez , Daniel Vetter , Sam Ravnborg , Helge Deller Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------rKRYwLKHn1m0oDNTNdsAysoD Content-Type: multipart/mixed; boundary="------------Ekcl3hDMNqrEJLn0DtxY4RV8"; protected-headers="v1" From: Thomas Zimmermann To: Daniel Vetter , DRI Development Cc: Intel Graphics Development , linux-fbdev@vger.kernel.org, LKML , Sam Ravnborg , Daniel Vetter , Helge Deller , Daniel Vetter , Greg Kroah-Hartman , Tetsuo Handa , Du Cheng , Claudio Suarez Message-ID: Subject: Re: [PATCH v2 03/19] fbcon: Introduce wrapper for console->fb_info lookup References: <20220208210824.2238981-1-daniel.vetter@ffwll.ch> <20220208210824.2238981-4-daniel.vetter@ffwll.ch> In-Reply-To: <20220208210824.2238981-4-daniel.vetter@ffwll.ch> --------------Ekcl3hDMNqrEJLn0DtxY4RV8 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 DQoNCkFtIDA4LjAyLjIyIHVtIDIyOjA4IHNjaHJpZWIgRGFuaWVsIFZldHRlcjoNCj4gSGFs ZiBvZiBpdCBpcyBwcm90ZWN0ZWQgYnkgY29uc29sZV9sb2NrLCBidXQgdGhlIG90aGVyIGhh bGYgaXMgYSBsb3QNCj4gbW9yZSBhd2t3YXJkOiBSZWdpc3RyYXRpb24vZGVyZWdpc3RyYXRp b24gb2YgZmJkZXYgYXJlIHNlcmlhbGl6ZWQsIGJ1dA0KPiB3ZSBkb24ndCByZWFsbHkgY2xl YXIgb3V0IGFueXRoaW5nIGluIGNvbjJmYl9tYXAgYW5kIHNvIHRoZXJlJ3MNCj4gcG90ZW50 aWFsIGZvciB1c2UtYWZ0ZXIgZnJlZSBtaXh1cHMuDQo+IA0KPiBGaXJzdCBzdGVwIGlzIHRv IGVuY2Fwc3VsYXRlIHRoZSBsb29rdXAuDQo+IA0KPiBBY2tlZC1ieTogU2FtIFJhdm5ib3Jn IDxzYW1AcmF2bmJvcmcub3JnPg0KPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxk YW5pZWwudmV0dGVyQGludGVsLmNvbT4NCj4gQ2M6IEhlbGdlIERlbGxlciA8ZGVsbGVyQGdt eC5kZT4NCj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4NCj4gQ2M6IEdy ZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+DQo+IENjOiBU ZXRzdW8gSGFuZGEgPHBlbmd1aW4ta2VybmVsQEktbG92ZS5TQUtVUkEubmUuanA+DQo+IENj OiBEdSBDaGVuZyA8ZHVjaGVuZzJAZ21haWwuY29tPg0KPiBDYzogQ2xhdWRpbyBTdWFyZXog PGNzc2tAbmV0LWMuZXM+DQo+IENjOiBUaG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1hbm5A c3VzZS5kZT4NCg0KQWNrZWQtYnk6IFRob21hcyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBz dXNlLmRlPg0KDQo+IC0tLQ0KPiAgIGRyaXZlcnMvdmlkZW8vZmJkZXYvY29yZS9mYmNvbi5j IHwgNzYgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0NCj4gICAxIGZpbGUgY2hh bmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2ZiY29uLmMgYi9kcml2ZXJzL3ZpZGVv L2ZiZGV2L2NvcmUvZmJjb24uYw0KPiBpbmRleCBlOTI1YmI2MDhlMjUuLmI3NWU2MzhjYjgz ZCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2ZiY29uLmMNCj4g KysrIGIvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2ZiY29uLmMNCj4gQEAgLTExMCw2ICsx MTAsMTggQEAgc3RhdGljIHN0cnVjdCBmYmNvbl9kaXNwbGF5IGZiX2Rpc3BsYXlbTUFYX05S X0NPTlNPTEVTXTsNCj4gICBzdGF0aWMgc2lnbmVkIGNoYXIgY29uMmZiX21hcFtNQVhfTlJf Q09OU09MRVNdOw0KPiAgIHN0YXRpYyBzaWduZWQgY2hhciBjb24yZmJfbWFwX2Jvb3RbTUFY X05SX0NPTlNPTEVTXTsNCj4gICANCj4gK3N0YXRpYyBzdHJ1Y3QgZmJfaW5mbyAqZmJjb25f aW5mb19mcm9tX2NvbnNvbGUoaW50IGNvbnNvbGUpDQo+ICt7DQo+ICsJV0FSTl9DT05TT0xF X1VOTE9DS0VEKCk7DQo+ICsNCj4gKwkvKg0KPiArCSAqIE5vdGUgdGhhdCBvbmx5IGNvbjJm Yl9tYXAgaXMgcHJvdGVjdGVkIGJ5IHRoZSBjb25zb2xlIGxvY2ssDQo+ICsJICogcmVnaXN0 ZXJlZF9mYiBpcyBwcm90ZWN0ZWQgYnkgYSBzZXBhcmF0ZSBtdXRleC4gVGhpcyBsb29rdXAg Y2FuDQo+ICsJICogdGhlcmVmb3JlIHJhY2UuDQo+ICsJICovDQo+ICsJcmV0dXJuIHJlZ2lz dGVyZWRfZmJbY29uMmZiX21hcFtjb25zb2xlXV07DQo+ICt9DQo+ICsNCj4gICBzdGF0aWMg aW50IGxvZ29fbGluZXM7DQo+ICAgLyogbG9nb19zaG93biBpcyBhbiBpbmRleCB0byB2Y19j b25zIHdoZW4gPj0gMDsgb3RoZXJ3aXNlIGZvbGxvd3MgRkJDT05fTE9HTw0KPiAgICAgIGVu dW1zLiAgKi8NCj4gQEAgLTE5OSw3ICsyMTEsNyBAQCBzdGF0aWMgdm9pZCBmYmNvbl9yb3Rh dGUoc3RydWN0IGZiX2luZm8gKmluZm8sIHUzMiByb3RhdGUpDQo+ICAgCWlmICghb3BzIHx8 IG9wcy0+Y3VycmNvbiA9PSAtMSkNCj4gICAJCXJldHVybjsNCj4gICANCj4gLQlmYl9pbmZv ID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW29wcy0+Y3VycmNvbl1dOw0KPiArCWZiX2lu Zm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29sZShvcHMtPmN1cnJjb24pOw0KPiAgIA0KPiAg IAlpZiAoaW5mbyA9PSBmYl9pbmZvKSB7DQo+ICAgCQlzdHJ1Y3QgZmJjb25fZGlzcGxheSAq cCA9ICZmYl9kaXNwbGF5W29wcy0+Y3VycmNvbl07DQo+IEBAIC0yMjYsNyArMjM4LDcgQEAg c3RhdGljIHZvaWQgZmJjb25fcm90YXRlX2FsbChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgdTMy IHJvdGF0ZSkNCj4gICAJZm9yIChpID0gZmlyc3RfZmJfdmM7IGkgPD0gbGFzdF9mYl92Yzsg aSsrKSB7DQo+ICAgCQl2YyA9IHZjX2NvbnNbaV0uZDsNCj4gICAJCWlmICghdmMgfHwgdmMt PnZjX21vZGUgIT0gS0RfVEVYVCB8fA0KPiAtCQkgICAgcmVnaXN0ZXJlZF9mYltjb24yZmJf bWFwW2ldXSAhPSBpbmZvKQ0KPiArCQkgICAgZmJjb25faW5mb19mcm9tX2NvbnNvbGUoaSkg IT0gaW5mbykNCj4gICAJCQljb250aW51ZTsNCj4gICANCj4gICAJCXAgPSAmZmJfZGlzcGxh eVt2Yy0+dmNfbnVtXTsNCj4gQEAgLTM1Niw3ICszNjgsNyBAQCBzdGF0aWMgdm9pZCBmYl9m bGFzaGN1cnNvcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQo+ICAgCQl2YyA9IHZjX2Nv bnNbb3BzLT5jdXJyY29uXS5kOw0KPiAgIA0KPiAgIAlpZiAoIXZjIHx8ICFjb25faXNfdmlz aWJsZSh2YykgfHwNCj4gLSAJICAgIHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNf bnVtXV0gIT0gaW5mbyB8fA0KPiArCSAgICBmYmNvbl9pbmZvX2Zyb21fY29uc29sZSh2Yy0+ dmNfbnVtKSAhPSBpbmZvIHx8DQo+ICAgCSAgICB2Yy0+dmNfZGVjY20gIT0gMSkgew0KPiAg IAkJY29uc29sZV91bmxvY2soKTsNCj4gICAJCXJldHVybjsNCj4gQEAgLTc5MSw3ICs4MDMs NyBAQCBzdGF0aWMgdm9pZCBjb24yZmJfaW5pdF9kaXNwbGF5KHN0cnVjdCB2Y19kYXRhICp2 Yywgc3RydWN0IGZiX2luZm8gKmluZm8sDQo+ICAgCWlmIChzaG93X2xvZ28pIHsNCj4gICAJ CXN0cnVjdCB2Y19kYXRhICpmZ192YyA9IHZjX2NvbnNbZmdfY29uc29sZV0uZDsNCj4gICAJ CXN0cnVjdCBmYl9pbmZvICpmZ19pbmZvID0NCj4gLQkJCXJlZ2lzdGVyZWRfZmJbY29uMmZi X21hcFtmZ19jb25zb2xlXV07DQo+ICsJCQlmYmNvbl9pbmZvX2Zyb21fY29uc29sZShmZ19j b25zb2xlKTsNCj4gICANCj4gICAJCWZiY29uX3ByZXBhcmVfbG9nbyhmZ192YywgZmdfaW5m bywgZmdfdmMtPnZjX2NvbHMsDQo+ICAgCQkJCSAgIGZnX3ZjLT52Y19yb3dzLCBmZ192Yy0+ dmNfY29scywNCj4gQEAgLTEwMTQsNyArMTAyNiw3IEBAIHN0YXRpYyB2b2lkIGZiY29uX2lu aXQoc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgaW5pdCkNCj4gICAJaWYgKGNvbjJmYl9tYXBb dmMtPnZjX251bV0gPT0gLTEpDQo+ICAgCQljb24yZmJfbWFwW3ZjLT52Y19udW1dID0gaW5m b19pZHg7DQo+ICAgDQo+IC0JaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+ dmNfbnVtXV07DQo+ICsJaW5mbyA9IGZiY29uX2luZm9fZnJvbV9jb25zb2xlKHZjLT52Y19u dW0pOw0KPiAgIA0KPiAgIAlpZiAobG9nb19zaG93biA8IDAgJiYgY29uc29sZV9sb2dsZXZl bCA8PSBDT05TT0xFX0xPR0xFVkVMX1FVSUVUKQ0KPiAgIAkJbG9nb19zaG93biA9IEZCQ09O X0xPR09fRE9OVFNIT1c7DQo+IEBAIC0xMjMxLDcgKzEyNDMsNyBAQCBzdGF0aWMgdm9pZCBm YmNvbl9kZWluaXQoc3RydWN0IHZjX2RhdGEgKnZjKQ0KPiAgIHN0YXRpYyB2b2lkIGZiY29u X2NsZWFyKHN0cnVjdCB2Y19kYXRhICp2YywgaW50IHN5LCBpbnQgc3gsIGludCBoZWlnaHQs DQo+ICAgCQkJaW50IHdpZHRoKQ0KPiAgIHsNCj4gLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9 IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNfbnVtXV07DQo+ICsJc3RydWN0IGZi X2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29sZSh2Yy0+dmNfbnVtKTsNCj4g ICAJc3RydWN0IGZiY29uX29wcyAqb3BzID0gaW5mby0+ZmJjb25fcGFyOw0KPiAgIA0KPiAg IAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZmYl9kaXNwbGF5W3ZjLT52Y19udW1dOw0K PiBAQCAtMTI2OSw3ICsxMjgxLDcgQEAgc3RhdGljIHZvaWQgZmJjb25fY2xlYXIoc3RydWN0 IHZjX2RhdGEgKnZjLCBpbnQgc3ksIGludCBzeCwgaW50IGhlaWdodCwNCj4gICBzdGF0aWMg dm9pZCBmYmNvbl9wdXRjcyhzdHJ1Y3QgdmNfZGF0YSAqdmMsIGNvbnN0IHVuc2lnbmVkIHNo b3J0ICpzLA0KPiAgIAkJCWludCBjb3VudCwgaW50IHlwb3MsIGludCB4cG9zKQ0KPiAgIHsN Cj4gLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2 Yy0+dmNfbnVtXV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zy b21fY29uc29sZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX2Rpc3BsYXkgKnAg PSAmZmJfZGlzcGxheVt2Yy0+dmNfbnVtXTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAqb3Bz ID0gaW5mby0+ZmJjb25fcGFyOw0KPiAgIA0KPiBAQCAtMTI4OSw3ICsxMzAxLDcgQEAgc3Rh dGljIHZvaWQgZmJjb25fcHV0YyhzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBjLCBpbnQgeXBv cywgaW50IHhwb3MpDQo+ICAgDQo+ICAgc3RhdGljIHZvaWQgZmJjb25fY2xlYXJfbWFyZ2lu cyhzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBib3R0b21fb25seSkNCj4gICB7DQo+IC0Jc3Ry dWN0IGZiX2luZm8gKmluZm8gPSByZWdpc3RlcmVkX2ZiW2NvbjJmYl9tYXBbdmMtPnZjX251 bV1dOw0KPiArCXN0cnVjdCBmYl9pbmZvICppbmZvID0gZmJjb25faW5mb19mcm9tX2NvbnNv bGUodmMtPnZjX251bSk7DQo+ICAgCXN0cnVjdCBmYmNvbl9vcHMgKm9wcyA9IGluZm8tPmZi Y29uX3BhcjsNCj4gICANCj4gICAJaWYgKCFmYmNvbl9pc19pbmFjdGl2ZSh2YywgaW5mbykp DQo+IEBAIC0xMjk4LDcgKzEzMTAsNyBAQCBzdGF0aWMgdm9pZCBmYmNvbl9jbGVhcl9tYXJn aW5zKHN0cnVjdCB2Y19kYXRhICp2YywgaW50IGJvdHRvbV9vbmx5KQ0KPiAgIA0KPiAgIHN0 YXRpYyB2b2lkIGZiY29uX2N1cnNvcihzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBtb2RlKQ0K PiAgIHsNCj4gLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZi X21hcFt2Yy0+dmNfbnVtXV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9p bmZvX2Zyb21fY29uc29sZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAq b3BzID0gaW5mby0+ZmJjb25fcGFyOw0KPiAgICAJaW50IGMgPSBzY3JfcmVhZHcoKHUxNiAq KSB2Yy0+dmNfcG9zKTsNCj4gICANCj4gQEAgLTEzOTIsNyArMTQwNCw3IEBAIHN0YXRpYyB2 b2lkIGZiY29uX3NldF9kaXNwKHN0cnVjdCBmYl9pbmZvICppbmZvLCBzdHJ1Y3QgZmJfdmFy X3NjcmVlbmluZm8gKnZhciwNCj4gICANCj4gICBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHl3 cmFwX3VwKHN0cnVjdCB2Y19kYXRhICp2YywgaW50IGNvdW50KQ0KPiAgIHsNCj4gLQlzdHJ1 Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNfbnVt XV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29s ZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAqb3BzID0gaW5mby0+ZmJj b25fcGFyOw0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZmYl9kaXNwbGF5W3Zj LT52Y19udW1dOw0KPiAgIA0KPiBAQCAtMTQxMSw3ICsxNDIzLDcgQEAgc3RhdGljIF9faW5s aW5lX18gdm9pZCB5d3JhcF91cChzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBjb3VudCkNCj4g ICANCj4gICBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHl3cmFwX2Rvd24oc3RydWN0IHZjX2Rh dGEgKnZjLCBpbnQgY291bnQpDQo+ICAgew0KPiAtCXN0cnVjdCBmYl9pbmZvICppbmZvID0g cmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW3ZjLT52Y19udW1dXTsNCj4gKwlzdHJ1Y3QgZmJf aW5mbyAqaW5mbyA9IGZiY29uX2luZm9fZnJvbV9jb25zb2xlKHZjLT52Y19udW0pOw0KPiAg IAlzdHJ1Y3QgZmJjb25fb3BzICpvcHMgPSBpbmZvLT5mYmNvbl9wYXI7DQo+ICAgCXN0cnVj dCBmYmNvbl9kaXNwbGF5ICpwID0gJmZiX2Rpc3BsYXlbdmMtPnZjX251bV07DQo+ICAgDQo+ IEBAIC0xNDMwLDcgKzE0NDIsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHl3cmFwX2Rv d24oc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgY291bnQpDQo+ICAgDQo+ICAgc3RhdGljIF9f aW5saW5lX18gdm9pZCB5cGFuX3VwKHN0cnVjdCB2Y19kYXRhICp2YywgaW50IGNvdW50KQ0K PiAgIHsNCj4gLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZi X21hcFt2Yy0+dmNfbnVtXV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9p bmZvX2Zyb21fY29uc29sZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX2Rpc3Bs YXkgKnAgPSAmZmJfZGlzcGxheVt2Yy0+dmNfbnVtXTsNCj4gICAJc3RydWN0IGZiY29uX29w cyAqb3BzID0gaW5mby0+ZmJjb25fcGFyOw0KPiAgIA0KPiBAQCAtMTQ1NCw3ICsxNDY2LDcg QEAgc3RhdGljIF9faW5saW5lX18gdm9pZCB5cGFuX3VwKHN0cnVjdCB2Y19kYXRhICp2Yywg aW50IGNvdW50KQ0KPiAgIA0KPiAgIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgeXBhbl91cF9y ZWRyYXcoc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgdCwgaW50IGNvdW50KQ0KPiAgIHsNCj4g LQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+ dmNfbnVtXV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zyb21f Y29uc29sZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAqb3BzID0gaW5m by0+ZmJjb25fcGFyOw0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZmYl9kaXNw bGF5W3ZjLT52Y19udW1dOw0KPiAgIA0KPiBAQCAtMTQ3OCw3ICsxNDkwLDcgQEAgc3RhdGlj IF9faW5saW5lX18gdm9pZCB5cGFuX3VwX3JlZHJhdyhzdHJ1Y3QgdmNfZGF0YSAqdmMsIGlu dCB0LCBpbnQgY291bnQpDQo+ICAgDQo+ICAgc3RhdGljIF9faW5saW5lX18gdm9pZCB5cGFu X2Rvd24oc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgY291bnQpDQo+ICAgew0KPiAtCXN0cnVj dCBmYl9pbmZvICppbmZvID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW3ZjLT52Y19udW1d XTsNCj4gKwlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IGZiY29uX2luZm9fZnJvbV9jb25zb2xl KHZjLT52Y19udW0pOw0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZmYl9kaXNw bGF5W3ZjLT52Y19udW1dOw0KPiAgIAlzdHJ1Y3QgZmJjb25fb3BzICpvcHMgPSBpbmZvLT5m YmNvbl9wYXI7DQo+ICAgDQo+IEBAIC0xNTAyLDcgKzE1MTQsNyBAQCBzdGF0aWMgX19pbmxp bmVfXyB2b2lkIHlwYW5fZG93bihzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBjb3VudCkNCj4g ICANCj4gICBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHlwYW5fZG93bl9yZWRyYXcoc3RydWN0 IHZjX2RhdGEgKnZjLCBpbnQgdCwgaW50IGNvdW50KQ0KPiAgIHsNCj4gLQlzdHJ1Y3QgZmJf aW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNfbnVtXV07DQo+ ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29sZSh2Yy0+ dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAqb3BzID0gaW5mby0+ZmJjb25fcGFy Ow0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZmYl9kaXNwbGF5W3ZjLT52Y19u dW1dOw0KPiAgIA0KPiBAQCAtMTY2Niw3ICsxNjc4LDcgQEAgc3RhdGljIHZvaWQgZmJjb25f cmVkcmF3KHN0cnVjdCB2Y19kYXRhICp2Yywgc3RydWN0IGZiY29uX2Rpc3BsYXkgKnAsDQo+ ICAgc3RhdGljIHZvaWQgZmJjb25fYm1vdmVfcmVjKHN0cnVjdCB2Y19kYXRhICp2Yywgc3Ry dWN0IGZiY29uX2Rpc3BsYXkgKnAsIGludCBzeSwgaW50IHN4LA0KPiAgIAkJCSAgICBpbnQg ZHksIGludCBkeCwgaW50IGhlaWdodCwgaW50IHdpZHRoLCB1X2ludCB5X2JyZWFrKQ0KPiAg IHsNCj4gLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21h cFt2Yy0+dmNfbnVtXV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZv X2Zyb21fY29uc29sZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAqb3Bz ID0gaW5mby0+ZmJjb25fcGFyOw0KPiAgIAl1X2ludCBiOw0KPiAgIA0KPiBAQCAtMTcwOCw3 ICsxNzIwLDcgQEAgc3RhdGljIHZvaWQgZmJjb25fYm1vdmVfcmVjKHN0cnVjdCB2Y19kYXRh ICp2Yywgc3RydWN0IGZiY29uX2Rpc3BsYXkgKnAsIGludCBzeSwNCj4gICBzdGF0aWMgdm9p ZCBmYmNvbl9ibW92ZShzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBzeSwgaW50IHN4LCBpbnQg ZHksIGludCBkeCwNCj4gICAJCQlpbnQgaGVpZ2h0LCBpbnQgd2lkdGgpDQo+ICAgew0KPiAt CXN0cnVjdCBmYl9pbmZvICppbmZvID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW3ZjLT52 Y19udW1dXTsNCj4gKwlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IGZiY29uX2luZm9fZnJvbV9j b25zb2xlKHZjLT52Y19udW0pOw0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZm Yl9kaXNwbGF5W3ZjLT52Y19udW1dOw0KPiAgIA0KPiAgIAlpZiAoZmJjb25faXNfaW5hY3Rp dmUodmMsIGluZm8pKQ0KPiBAQCAtMTczMSw3ICsxNzQzLDcgQEAgc3RhdGljIHZvaWQgZmJj b25fYm1vdmUoc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgc3ksIGludCBzeCwgaW50IGR5LCBp bnQgZHgsDQo+ICAgc3RhdGljIGJvb2wgZmJjb25fc2Nyb2xsKHN0cnVjdCB2Y19kYXRhICp2 YywgdW5zaWduZWQgaW50IHQsIHVuc2lnbmVkIGludCBiLA0KPiAgIAkJZW51bSBjb25fc2Ny b2xsIGRpciwgdW5zaWduZWQgaW50IGNvdW50KQ0KPiAgIHsNCj4gLQlzdHJ1Y3QgZmJfaW5m byAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNfbnVtXV07DQo+ICsJ c3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29sZSh2Yy0+dmNf bnVtKTsNCj4gICAJc3RydWN0IGZiY29uX2Rpc3BsYXkgKnAgPSAmZmJfZGlzcGxheVt2Yy0+ dmNfbnVtXTsNCj4gICAJaW50IHNjcm9sbF9wYXJ0aWFsID0gaW5mby0+ZmxhZ3MgJiBGQklO Rk9fUEFSVElBTF9QQU5fT0s7DQo+ICAgDQo+IEBAIC0xOTk2LDcgKzIwMDgsNyBAQCBzdGF0 aWMgdm9pZCB1cGRhdGVzY3JvbGxtb2RlKHN0cnVjdCBmYmNvbl9kaXNwbGF5ICpwLA0KPiAg IHN0YXRpYyBpbnQgZmJjb25fcmVzaXplKHN0cnVjdCB2Y19kYXRhICp2YywgdW5zaWduZWQg aW50IHdpZHRoLA0KPiAgIAkJCXVuc2lnbmVkIGludCBoZWlnaHQsIHVuc2lnbmVkIGludCB1 c2VyKQ0KPiAgIHsNCj4gLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJb Y29uMmZiX21hcFt2Yy0+dmNfbnVtXV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBm YmNvbl9pbmZvX2Zyb21fY29uc29sZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29u X29wcyAqb3BzID0gaW5mby0+ZmJjb25fcGFyOw0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxh eSAqcCA9ICZmYl9kaXNwbGF5W3ZjLT52Y19udW1dOw0KPiAgIAlzdHJ1Y3QgZmJfdmFyX3Nj cmVlbmluZm8gdmFyID0gaW5mby0+dmFyOw0KPiBAQCAtMjA2NSw3ICsyMDc3LDcgQEAgc3Rh dGljIGludCBmYmNvbl9zd2l0Y2goc3RydWN0IHZjX2RhdGEgKnZjKQ0KPiAgIAlzdHJ1Y3Qg ZmJfdmFyX3NjcmVlbmluZm8gdmFyOw0KPiAgIAlpbnQgaSwgcmV0LCBwcmV2X2NvbnNvbGU7 DQo+ICAgDQo+IC0JaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNfbnVt XV07DQo+ICsJaW5mbyA9IGZiY29uX2luZm9fZnJvbV9jb25zb2xlKHZjLT52Y19udW0pOw0K PiAgIAlvcHMgPSBpbmZvLT5mYmNvbl9wYXI7DQo+ICAgDQo+ICAgCWlmIChsb2dvX3Nob3du ID49IDApIHsNCj4gQEAgLTIwNzksNyArMjA5MSw3IEBAIHN0YXRpYyBpbnQgZmJjb25fc3dp dGNoKHN0cnVjdCB2Y19kYXRhICp2YykNCj4gICANCj4gICAJcHJldl9jb25zb2xlID0gb3Bz LT5jdXJyY29uOw0KPiAgIAlpZiAocHJldl9jb25zb2xlICE9IC0xKQ0KPiAtCQlvbGRfaW5m byA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFtwcmV2X2NvbnNvbGVdXTsNCj4gKwkJb2xk X2luZm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29sZShwcmV2X2NvbnNvbGUpOw0KPiAgIAkv Kg0KPiAgIAkgKiBGSVhNRTogSWYgd2UgaGF2ZSBtdWx0aXBsZSBmYmRldidzIGxvYWRlZCwg d2UgbmVlZCB0bw0KPiAgIAkgKiB1cGRhdGUgYWxsIGluZm8tPmN1cnJjb24uICBQZXJoYXBz LCB3ZSBjYW4gcGxhY2UgdGhpcw0KPiBAQCAtMjIwMiw3ICsyMjE0LDcgQEAgc3RhdGljIHZv aWQgZmJjb25fZ2VuZXJpY19ibGFuayhzdHJ1Y3QgdmNfZGF0YSAqdmMsIHN0cnVjdCBmYl9p bmZvICppbmZvLA0KPiAgIA0KPiAgIHN0YXRpYyBpbnQgZmJjb25fYmxhbmsoc3RydWN0IHZj X2RhdGEgKnZjLCBpbnQgYmxhbmssIGludCBtb2RlX3N3aXRjaCkNCj4gICB7DQo+IC0Jc3Ry dWN0IGZiX2luZm8gKmluZm8gPSByZWdpc3RlcmVkX2ZiW2NvbjJmYl9tYXBbdmMtPnZjX251 bV1dOw0KPiArCXN0cnVjdCBmYl9pbmZvICppbmZvID0gZmJjb25faW5mb19mcm9tX2NvbnNv bGUodmMtPnZjX251bSk7DQo+ICAgCXN0cnVjdCBmYmNvbl9vcHMgKm9wcyA9IGluZm8tPmZi Y29uX3BhcjsNCj4gICANCj4gICAJaWYgKG1vZGVfc3dpdGNoKSB7DQo+IEBAIC0yMjQ0LDcg KzIyNTYsNyBAQCBzdGF0aWMgaW50IGZiY29uX2JsYW5rKHN0cnVjdCB2Y19kYXRhICp2Yywg aW50IGJsYW5rLCBpbnQgbW9kZV9zd2l0Y2gpDQo+ICAgDQo+ICAgc3RhdGljIGludCBmYmNv bl9kZWJ1Z19lbnRlcihzdHJ1Y3QgdmNfZGF0YSAqdmMpDQo+ICAgew0KPiAtCXN0cnVjdCBm Yl9pbmZvICppbmZvID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW3ZjLT52Y19udW1dXTsN Cj4gKwlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IGZiY29uX2luZm9fZnJvbV9jb25zb2xlKHZj LT52Y19udW0pOw0KPiAgIAlzdHJ1Y3QgZmJjb25fb3BzICpvcHMgPSBpbmZvLT5mYmNvbl9w YXI7DQo+ICAgDQo+ICAgCW9wcy0+c2F2ZV9ncmFwaGljcyA9IG9wcy0+Z3JhcGhpY3M7DQo+ IEBAIC0yMjU3LDcgKzIyNjksNyBAQCBzdGF0aWMgaW50IGZiY29uX2RlYnVnX2VudGVyKHN0 cnVjdCB2Y19kYXRhICp2YykNCj4gICANCj4gICBzdGF0aWMgaW50IGZiY29uX2RlYnVnX2xl YXZlKHN0cnVjdCB2Y19kYXRhICp2YykNCj4gICB7DQo+IC0Jc3RydWN0IGZiX2luZm8gKmlu Zm8gPSByZWdpc3RlcmVkX2ZiW2NvbjJmYl9tYXBbdmMtPnZjX251bV1dOw0KPiArCXN0cnVj dCBmYl9pbmZvICppbmZvID0gZmJjb25faW5mb19mcm9tX2NvbnNvbGUodmMtPnZjX251bSk7 DQo+ICAgCXN0cnVjdCBmYmNvbl9vcHMgKm9wcyA9IGluZm8tPmZiY29uX3BhcjsNCj4gICAN Cj4gICAJb3BzLT5ncmFwaGljcyA9IG9wcy0+c2F2ZV9ncmFwaGljczsNCj4gQEAgLTIzOTMs NyArMjQwNSw3IEBAIHN0YXRpYyB2b2lkIHNldF92Y19oaV9mb250KHN0cnVjdCB2Y19kYXRh ICp2YywgYm9vbCBzZXQpDQo+ICAgc3RhdGljIGludCBmYmNvbl9kb19zZXRfZm9udChzdHJ1 Y3QgdmNfZGF0YSAqdmMsIGludCB3LCBpbnQgaCwgaW50IGNoYXJjb3VudCwNCj4gICAJCQkg ICAgIGNvbnN0IHU4ICogZGF0YSwgaW50IHVzZXJmb250KQ0KPiAgIHsNCj4gLQlzdHJ1Y3Qg ZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNfbnVtXV07 DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29sZSh2 Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAqb3BzID0gaW5mby0+ZmJjb25f cGFyOw0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZmYl9kaXNwbGF5W3ZjLT52 Y19udW1dOw0KPiAgIAlpbnQgcmVzaXplOw0KPiBAQCAtMjQ0Nyw3ICsyNDU5LDcgQEAgc3Rh dGljIGludCBmYmNvbl9kb19zZXRfZm9udChzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCB3LCBp bnQgaCwgaW50IGNoYXJjb3VudCwNCj4gICBzdGF0aWMgaW50IGZiY29uX3NldF9mb250KHN0 cnVjdCB2Y19kYXRhICp2Yywgc3RydWN0IGNvbnNvbGVfZm9udCAqZm9udCwNCj4gICAJCQkg IHVuc2lnbmVkIGludCBmbGFncykNCj4gICB7DQo+IC0Jc3RydWN0IGZiX2luZm8gKmluZm8g PSByZWdpc3RlcmVkX2ZiW2NvbjJmYl9tYXBbdmMtPnZjX251bV1dOw0KPiArCXN0cnVjdCBm Yl9pbmZvICppbmZvID0gZmJjb25faW5mb19mcm9tX2NvbnNvbGUodmMtPnZjX251bSk7DQo+ ICAgCXVuc2lnbmVkIGNoYXJjb3VudCA9IGZvbnQtPmNoYXJjb3VudDsNCj4gICAJaW50IHcg PSBmb250LT53aWR0aDsNCj4gICAJaW50IGggPSBmb250LT5oZWlnaHQ7DQo+IEBAIC0yNTEx LDcgKzI1MjMsNyBAQCBzdGF0aWMgaW50IGZiY29uX3NldF9mb250KHN0cnVjdCB2Y19kYXRh ICp2Yywgc3RydWN0IGNvbnNvbGVfZm9udCAqZm9udCwNCj4gICANCj4gICBzdGF0aWMgaW50 IGZiY29uX3NldF9kZWZfZm9udChzdHJ1Y3QgdmNfZGF0YSAqdmMsIHN0cnVjdCBjb25zb2xl X2ZvbnQgKmZvbnQsIGNoYXIgKm5hbWUpDQo+ICAgew0KPiAtCXN0cnVjdCBmYl9pbmZvICpp bmZvID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW3ZjLT52Y19udW1dXTsNCj4gKwlzdHJ1 Y3QgZmJfaW5mbyAqaW5mbyA9IGZiY29uX2luZm9fZnJvbV9jb25zb2xlKHZjLT52Y19udW0p Ow0KPiAgIAljb25zdCBzdHJ1Y3QgZm9udF9kZXNjICpmOw0KPiAgIA0KPiAgIAlpZiAoIW5h bWUpDQo+IEBAIC0yNTM1LDcgKzI1NDcsNyBAQCBzdGF0aWMgc3RydWN0IGZiX2NtYXAgcGFs ZXR0ZV9jbWFwID0gew0KPiAgIA0KPiAgIHN0YXRpYyB2b2lkIGZiY29uX3NldF9wYWxldHRl KHN0cnVjdCB2Y19kYXRhICp2YywgY29uc3QgdW5zaWduZWQgY2hhciAqdGFibGUpDQo+ICAg ew0KPiAtCXN0cnVjdCBmYl9pbmZvICppbmZvID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFw W3ZjLT52Y19udW1dXTsNCj4gKwlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IGZiY29uX2luZm9f ZnJvbV9jb25zb2xlKHZjLT52Y19udW0pOw0KPiAgIAlpbnQgaSwgaiwgaywgZGVwdGg7DQo+ ICAgCXU4IHZhbDsNCj4gICANCj4gQEAgLTI2NTEsNyArMjY2Myw3IEBAIHN0YXRpYyB2b2lk IGZiY29uX21vZGVjaGFuZ2VkKHN0cnVjdCBmYl9pbmZvICppbmZvKQ0KPiAgIAkJcmV0dXJu Ow0KPiAgIAl2YyA9IHZjX2NvbnNbb3BzLT5jdXJyY29uXS5kOw0KPiAgIAlpZiAodmMtPnZj X21vZGUgIT0gS0RfVEVYVCB8fA0KPiAtCSAgICByZWdpc3RlcmVkX2ZiW2NvbjJmYl9tYXBb b3BzLT5jdXJyY29uXV0gIT0gaW5mbykNCj4gKwkgICAgZmJjb25faW5mb19mcm9tX2NvbnNv bGUob3BzLT5jdXJyY29uKSAhPSBpbmZvKQ0KPiAgIAkJcmV0dXJuOw0KPiAgIA0KPiAgIAlw ID0gJmZiX2Rpc3BsYXlbdmMtPnZjX251bV07DQo+IEBAIC0yNjkxLDcgKzI3MDMsNyBAQCBz dGF0aWMgdm9pZCBmYmNvbl9zZXRfYWxsX3ZjcyhzdHJ1Y3QgZmJfaW5mbyAqaW5mbykNCj4g ICAJZm9yIChpID0gZmlyc3RfZmJfdmM7IGkgPD0gbGFzdF9mYl92YzsgaSsrKSB7DQo+ICAg CQl2YyA9IHZjX2NvbnNbaV0uZDsNCj4gICAJCWlmICghdmMgfHwgdmMtPnZjX21vZGUgIT0g S0RfVEVYVCB8fA0KPiAtCQkgICAgcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW2ldXSAhPSBp bmZvKQ0KPiArCQkgICAgZmJjb25faW5mb19mcm9tX2NvbnNvbGUoaSkgIT0gaW5mbykNCj4g ICAJCQljb250aW51ZTsNCj4gICANCj4gICAJCWlmIChjb25faXNfdmlzaWJsZSh2YykpIHsN Cj4gQEAgLTI5NTQsNyArMjk2Niw3IEBAIHZvaWQgZmJjb25fZmJfYmxhbmtlZChzdHJ1Y3Qg ZmJfaW5mbyAqaW5mbywgaW50IGJsYW5rKQ0KPiAgIA0KPiAgIAl2YyA9IHZjX2NvbnNbb3Bz LT5jdXJyY29uXS5kOw0KPiAgIAlpZiAodmMtPnZjX21vZGUgIT0gS0RfVEVYVCB8fA0KPiAt CQkJcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW29wcy0+Y3VycmNvbl1dICE9IGluZm8pDQo+ ICsJCQlmYmNvbl9pbmZvX2Zyb21fY29uc29sZShvcHMtPmN1cnJjb24pICE9IGluZm8pDQo+ ICAgCQlyZXR1cm47DQo+ICAgDQo+ICAgCWlmIChjb25faXNfdmlzaWJsZSh2YykpIHsNCj4g QEAgLTI5NzQsNyArMjk4Niw3IEBAIHZvaWQgZmJjb25fbmV3X21vZGVsaXN0KHN0cnVjdCBm Yl9pbmZvICppbmZvKQ0KPiAgIAljb25zdCBzdHJ1Y3QgZmJfdmlkZW9tb2RlICptb2RlOw0K PiAgIA0KPiAgIAlmb3IgKGkgPSBmaXJzdF9mYl92YzsgaSA8PSBsYXN0X2ZiX3ZjOyBpKysp IHsNCj4gLQkJaWYgKHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFtpXV0gIT0gaW5mbykNCj4g KwkJaWYgKGZiY29uX2luZm9fZnJvbV9jb25zb2xlKGkpICE9IGluZm8pDQo+ICAgCQkJY29u dGludWU7DQo+ICAgCQlpZiAoIWZiX2Rpc3BsYXlbaV0ubW9kZSkNCj4gICAJCQljb250aW51 ZTsNCg0KLS0gDQpUaG9tYXMgWmltbWVybWFubg0KR3JhcGhpY3MgRHJpdmVyIERldmVsb3Bl cg0KU1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJIDQpNYXhmZWxkc3RyLiA1 LCA5MDQwOSBOw7xybmJlcmcsIEdlcm1hbnkNCihIUkIgMzY4MDksIEFHIE7DvHJuYmVyZykN Ckdlc2Now6RmdHNmw7xocmVyOiBJdm8gVG90ZXYNCg== --------------Ekcl3hDMNqrEJLn0DtxY4RV8-- --------------rKRYwLKHn1m0oDNTNdsAysoD Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEExndm/fpuMUdwYFFolh/E3EQov+AFAmIE9JwFAwAAAAAACgkQlh/E3EQov+BZ Sw//a74mzA5ZGl179egAW/p6IX/xTR+h6u4mryr66zrEZBMu9Abr4VnJ44Yhz+I2rV5lVOOvoYFt Hw7lVi5NoksKhuqBWWk2U6g1jaTSKrONUXjL8uP5P+e++/avLVI2RBlu6zdbPnX5bbf5SIi4R5R1 hKSJ99600EXh+v6xmMixS4mzkcpHVddixDbvySeLGerhkuqefufc25ly5yd3OJsvHIfZ3+379dPk zHnkrLDy1yV3CF6GW6YWzaDd4uYH/d7/KNj49TnnrqXCU0ypgLHMNu/6TE0fL9N+vnSAnfSQgB4X yAGRXHlhYFUvg+99KEr0IdLXwH5Z91z/A08ZN8S45CWyS5rCWXWo1LwzTHxSPRQhTQ/lwIDtgZVr eTf5IOIIwYM34XnzLeJRL8ppzadMzvGhOv8gzJdNwt5622vIUM94EMckvD3rXq1IAr3XPOWRktR+ aaCI3c779mmlWR++5V6bf/Sg2RBf/qTAJADXwjsIMcennEWWSIicgccttsU2LpM9LkyeQT4E04E8 kFXSEPFfrimC34ttJPmh8mDTNBCp88F7hkNUOV4a8T2OtcYV0DBhl9aghHtaHOfgBMVsbT/vXpJQ eOD3U6SwFKOGBdy9iOHXAS8i2zzvkDmOSUNl0fwEYIGary3ACrHNzh3wq+R2VouzmHcLpp3y+Luz yyU= =r2Ys -----END PGP SIGNATURE----- --------------rKRYwLKHn1m0oDNTNdsAysoD-- 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 AF932C433F5 for ; Thu, 10 Feb 2022 11:18:56 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A445989DD5; Thu, 10 Feb 2022 11:18:55 +0000 (UTC) Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9C11910E809; Thu, 10 Feb 2022 11:18:54 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 490A8210E0; Thu, 10 Feb 2022 11:18:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1644491933; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=XECh7M0rkx+lTu8mgjxmGtWqaPWhcr4MhXKaX3/rmj8=; b=qMxU1sYQ73fYorAH7NUXMpIAp4GZCdxntg/84kU4wf2VvMG0En22J9cH8Rmd63gGGz4Esg dYEqt8ugwY3eY40BQQPM+yVCBivOXUBEm861AL1TxWUrMtDM1mMA0M6/W33LlOh5omdteW mEnH51oNYHvWYpJE5w2JQverG01oos8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1644491933; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=XECh7M0rkx+lTu8mgjxmGtWqaPWhcr4MhXKaX3/rmj8=; b=E2MKRT9nBEiWe5wZsxUnRctw+Olzi2LlsyRcCscIZm+ZvlZ6eVc+xTZNEx4lPQABeJD3SS ZN41cWVmw8wK/aAw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 01D4713B43; Thu, 10 Feb 2022 11:18:52 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id Zg3xOpz0BGIzCQAAMHmgww (envelope-from ); Thu, 10 Feb 2022 11:18:52 +0000 Message-ID: Date: Thu, 10 Feb 2022 12:18:52 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Content-Language: en-US To: Daniel Vetter , DRI Development References: <20220208210824.2238981-1-daniel.vetter@ffwll.ch> <20220208210824.2238981-4-daniel.vetter@ffwll.ch> From: Thomas Zimmermann In-Reply-To: <20220208210824.2238981-4-daniel.vetter@ffwll.ch> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------rKRYwLKHn1m0oDNTNdsAysoD" Subject: Re: [Intel-gfx] [PATCH v2 03/19] fbcon: Introduce wrapper for console->fb_info lookup 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: linux-fbdev@vger.kernel.org, Du Cheng , Tetsuo Handa , Greg Kroah-Hartman , Intel Graphics Development , LKML , Daniel Vetter , Sam Ravnborg , Helge Deller Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------rKRYwLKHn1m0oDNTNdsAysoD Content-Type: multipart/mixed; boundary="------------Ekcl3hDMNqrEJLn0DtxY4RV8"; protected-headers="v1" From: Thomas Zimmermann To: Daniel Vetter , DRI Development Cc: Intel Graphics Development , linux-fbdev@vger.kernel.org, LKML , Sam Ravnborg , Daniel Vetter , Helge Deller , Daniel Vetter , Greg Kroah-Hartman , Tetsuo Handa , Du Cheng , Claudio Suarez Message-ID: Subject: Re: [PATCH v2 03/19] fbcon: Introduce wrapper for console->fb_info lookup References: <20220208210824.2238981-1-daniel.vetter@ffwll.ch> <20220208210824.2238981-4-daniel.vetter@ffwll.ch> In-Reply-To: <20220208210824.2238981-4-daniel.vetter@ffwll.ch> --------------Ekcl3hDMNqrEJLn0DtxY4RV8 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 DQoNCkFtIDA4LjAyLjIyIHVtIDIyOjA4IHNjaHJpZWIgRGFuaWVsIFZldHRlcjoNCj4gSGFs ZiBvZiBpdCBpcyBwcm90ZWN0ZWQgYnkgY29uc29sZV9sb2NrLCBidXQgdGhlIG90aGVyIGhh bGYgaXMgYSBsb3QNCj4gbW9yZSBhd2t3YXJkOiBSZWdpc3RyYXRpb24vZGVyZWdpc3RyYXRp b24gb2YgZmJkZXYgYXJlIHNlcmlhbGl6ZWQsIGJ1dA0KPiB3ZSBkb24ndCByZWFsbHkgY2xl YXIgb3V0IGFueXRoaW5nIGluIGNvbjJmYl9tYXAgYW5kIHNvIHRoZXJlJ3MNCj4gcG90ZW50 aWFsIGZvciB1c2UtYWZ0ZXIgZnJlZSBtaXh1cHMuDQo+IA0KPiBGaXJzdCBzdGVwIGlzIHRv IGVuY2Fwc3VsYXRlIHRoZSBsb29rdXAuDQo+IA0KPiBBY2tlZC1ieTogU2FtIFJhdm5ib3Jn IDxzYW1AcmF2bmJvcmcub3JnPg0KPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxk YW5pZWwudmV0dGVyQGludGVsLmNvbT4NCj4gQ2M6IEhlbGdlIERlbGxlciA8ZGVsbGVyQGdt eC5kZT4NCj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4NCj4gQ2M6IEdy ZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+DQo+IENjOiBU ZXRzdW8gSGFuZGEgPHBlbmd1aW4ta2VybmVsQEktbG92ZS5TQUtVUkEubmUuanA+DQo+IENj OiBEdSBDaGVuZyA8ZHVjaGVuZzJAZ21haWwuY29tPg0KPiBDYzogQ2xhdWRpbyBTdWFyZXog PGNzc2tAbmV0LWMuZXM+DQo+IENjOiBUaG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1hbm5A c3VzZS5kZT4NCg0KQWNrZWQtYnk6IFRob21hcyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBz dXNlLmRlPg0KDQo+IC0tLQ0KPiAgIGRyaXZlcnMvdmlkZW8vZmJkZXYvY29yZS9mYmNvbi5j IHwgNzYgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0NCj4gICAxIGZpbGUgY2hh bmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2ZiY29uLmMgYi9kcml2ZXJzL3ZpZGVv L2ZiZGV2L2NvcmUvZmJjb24uYw0KPiBpbmRleCBlOTI1YmI2MDhlMjUuLmI3NWU2MzhjYjgz ZCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2ZiY29uLmMNCj4g KysrIGIvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2ZiY29uLmMNCj4gQEAgLTExMCw2ICsx MTAsMTggQEAgc3RhdGljIHN0cnVjdCBmYmNvbl9kaXNwbGF5IGZiX2Rpc3BsYXlbTUFYX05S X0NPTlNPTEVTXTsNCj4gICBzdGF0aWMgc2lnbmVkIGNoYXIgY29uMmZiX21hcFtNQVhfTlJf Q09OU09MRVNdOw0KPiAgIHN0YXRpYyBzaWduZWQgY2hhciBjb24yZmJfbWFwX2Jvb3RbTUFY X05SX0NPTlNPTEVTXTsNCj4gICANCj4gK3N0YXRpYyBzdHJ1Y3QgZmJfaW5mbyAqZmJjb25f aW5mb19mcm9tX2NvbnNvbGUoaW50IGNvbnNvbGUpDQo+ICt7DQo+ICsJV0FSTl9DT05TT0xF X1VOTE9DS0VEKCk7DQo+ICsNCj4gKwkvKg0KPiArCSAqIE5vdGUgdGhhdCBvbmx5IGNvbjJm Yl9tYXAgaXMgcHJvdGVjdGVkIGJ5IHRoZSBjb25zb2xlIGxvY2ssDQo+ICsJICogcmVnaXN0 ZXJlZF9mYiBpcyBwcm90ZWN0ZWQgYnkgYSBzZXBhcmF0ZSBtdXRleC4gVGhpcyBsb29rdXAg Y2FuDQo+ICsJICogdGhlcmVmb3JlIHJhY2UuDQo+ICsJICovDQo+ICsJcmV0dXJuIHJlZ2lz dGVyZWRfZmJbY29uMmZiX21hcFtjb25zb2xlXV07DQo+ICt9DQo+ICsNCj4gICBzdGF0aWMg aW50IGxvZ29fbGluZXM7DQo+ICAgLyogbG9nb19zaG93biBpcyBhbiBpbmRleCB0byB2Y19j b25zIHdoZW4gPj0gMDsgb3RoZXJ3aXNlIGZvbGxvd3MgRkJDT05fTE9HTw0KPiAgICAgIGVu dW1zLiAgKi8NCj4gQEAgLTE5OSw3ICsyMTEsNyBAQCBzdGF0aWMgdm9pZCBmYmNvbl9yb3Rh dGUoc3RydWN0IGZiX2luZm8gKmluZm8sIHUzMiByb3RhdGUpDQo+ICAgCWlmICghb3BzIHx8 IG9wcy0+Y3VycmNvbiA9PSAtMSkNCj4gICAJCXJldHVybjsNCj4gICANCj4gLQlmYl9pbmZv ID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW29wcy0+Y3VycmNvbl1dOw0KPiArCWZiX2lu Zm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29sZShvcHMtPmN1cnJjb24pOw0KPiAgIA0KPiAg IAlpZiAoaW5mbyA9PSBmYl9pbmZvKSB7DQo+ICAgCQlzdHJ1Y3QgZmJjb25fZGlzcGxheSAq cCA9ICZmYl9kaXNwbGF5W29wcy0+Y3VycmNvbl07DQo+IEBAIC0yMjYsNyArMjM4LDcgQEAg c3RhdGljIHZvaWQgZmJjb25fcm90YXRlX2FsbChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgdTMy IHJvdGF0ZSkNCj4gICAJZm9yIChpID0gZmlyc3RfZmJfdmM7IGkgPD0gbGFzdF9mYl92Yzsg aSsrKSB7DQo+ICAgCQl2YyA9IHZjX2NvbnNbaV0uZDsNCj4gICAJCWlmICghdmMgfHwgdmMt PnZjX21vZGUgIT0gS0RfVEVYVCB8fA0KPiAtCQkgICAgcmVnaXN0ZXJlZF9mYltjb24yZmJf bWFwW2ldXSAhPSBpbmZvKQ0KPiArCQkgICAgZmJjb25faW5mb19mcm9tX2NvbnNvbGUoaSkg IT0gaW5mbykNCj4gICAJCQljb250aW51ZTsNCj4gICANCj4gICAJCXAgPSAmZmJfZGlzcGxh eVt2Yy0+dmNfbnVtXTsNCj4gQEAgLTM1Niw3ICszNjgsNyBAQCBzdGF0aWMgdm9pZCBmYl9m bGFzaGN1cnNvcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQo+ICAgCQl2YyA9IHZjX2Nv bnNbb3BzLT5jdXJyY29uXS5kOw0KPiAgIA0KPiAgIAlpZiAoIXZjIHx8ICFjb25faXNfdmlz aWJsZSh2YykgfHwNCj4gLSAJICAgIHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNf bnVtXV0gIT0gaW5mbyB8fA0KPiArCSAgICBmYmNvbl9pbmZvX2Zyb21fY29uc29sZSh2Yy0+ dmNfbnVtKSAhPSBpbmZvIHx8DQo+ICAgCSAgICB2Yy0+dmNfZGVjY20gIT0gMSkgew0KPiAg IAkJY29uc29sZV91bmxvY2soKTsNCj4gICAJCXJldHVybjsNCj4gQEAgLTc5MSw3ICs4MDMs NyBAQCBzdGF0aWMgdm9pZCBjb24yZmJfaW5pdF9kaXNwbGF5KHN0cnVjdCB2Y19kYXRhICp2 Yywgc3RydWN0IGZiX2luZm8gKmluZm8sDQo+ICAgCWlmIChzaG93X2xvZ28pIHsNCj4gICAJ CXN0cnVjdCB2Y19kYXRhICpmZ192YyA9IHZjX2NvbnNbZmdfY29uc29sZV0uZDsNCj4gICAJ CXN0cnVjdCBmYl9pbmZvICpmZ19pbmZvID0NCj4gLQkJCXJlZ2lzdGVyZWRfZmJbY29uMmZi X21hcFtmZ19jb25zb2xlXV07DQo+ICsJCQlmYmNvbl9pbmZvX2Zyb21fY29uc29sZShmZ19j b25zb2xlKTsNCj4gICANCj4gICAJCWZiY29uX3ByZXBhcmVfbG9nbyhmZ192YywgZmdfaW5m bywgZmdfdmMtPnZjX2NvbHMsDQo+ICAgCQkJCSAgIGZnX3ZjLT52Y19yb3dzLCBmZ192Yy0+ dmNfY29scywNCj4gQEAgLTEwMTQsNyArMTAyNiw3IEBAIHN0YXRpYyB2b2lkIGZiY29uX2lu aXQoc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgaW5pdCkNCj4gICAJaWYgKGNvbjJmYl9tYXBb dmMtPnZjX251bV0gPT0gLTEpDQo+ICAgCQljb24yZmJfbWFwW3ZjLT52Y19udW1dID0gaW5m b19pZHg7DQo+ICAgDQo+IC0JaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+ dmNfbnVtXV07DQo+ICsJaW5mbyA9IGZiY29uX2luZm9fZnJvbV9jb25zb2xlKHZjLT52Y19u dW0pOw0KPiAgIA0KPiAgIAlpZiAobG9nb19zaG93biA8IDAgJiYgY29uc29sZV9sb2dsZXZl bCA8PSBDT05TT0xFX0xPR0xFVkVMX1FVSUVUKQ0KPiAgIAkJbG9nb19zaG93biA9IEZCQ09O X0xPR09fRE9OVFNIT1c7DQo+IEBAIC0xMjMxLDcgKzEyNDMsNyBAQCBzdGF0aWMgdm9pZCBm YmNvbl9kZWluaXQoc3RydWN0IHZjX2RhdGEgKnZjKQ0KPiAgIHN0YXRpYyB2b2lkIGZiY29u X2NsZWFyKHN0cnVjdCB2Y19kYXRhICp2YywgaW50IHN5LCBpbnQgc3gsIGludCBoZWlnaHQs DQo+ICAgCQkJaW50IHdpZHRoKQ0KPiAgIHsNCj4gLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9 IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNfbnVtXV07DQo+ICsJc3RydWN0IGZi X2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29sZSh2Yy0+dmNfbnVtKTsNCj4g ICAJc3RydWN0IGZiY29uX29wcyAqb3BzID0gaW5mby0+ZmJjb25fcGFyOw0KPiAgIA0KPiAg IAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZmYl9kaXNwbGF5W3ZjLT52Y19udW1dOw0K PiBAQCAtMTI2OSw3ICsxMjgxLDcgQEAgc3RhdGljIHZvaWQgZmJjb25fY2xlYXIoc3RydWN0 IHZjX2RhdGEgKnZjLCBpbnQgc3ksIGludCBzeCwgaW50IGhlaWdodCwNCj4gICBzdGF0aWMg dm9pZCBmYmNvbl9wdXRjcyhzdHJ1Y3QgdmNfZGF0YSAqdmMsIGNvbnN0IHVuc2lnbmVkIHNo b3J0ICpzLA0KPiAgIAkJCWludCBjb3VudCwgaW50IHlwb3MsIGludCB4cG9zKQ0KPiAgIHsN Cj4gLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2 Yy0+dmNfbnVtXV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zy b21fY29uc29sZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX2Rpc3BsYXkgKnAg PSAmZmJfZGlzcGxheVt2Yy0+dmNfbnVtXTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAqb3Bz ID0gaW5mby0+ZmJjb25fcGFyOw0KPiAgIA0KPiBAQCAtMTI4OSw3ICsxMzAxLDcgQEAgc3Rh dGljIHZvaWQgZmJjb25fcHV0YyhzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBjLCBpbnQgeXBv cywgaW50IHhwb3MpDQo+ICAgDQo+ICAgc3RhdGljIHZvaWQgZmJjb25fY2xlYXJfbWFyZ2lu cyhzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBib3R0b21fb25seSkNCj4gICB7DQo+IC0Jc3Ry dWN0IGZiX2luZm8gKmluZm8gPSByZWdpc3RlcmVkX2ZiW2NvbjJmYl9tYXBbdmMtPnZjX251 bV1dOw0KPiArCXN0cnVjdCBmYl9pbmZvICppbmZvID0gZmJjb25faW5mb19mcm9tX2NvbnNv bGUodmMtPnZjX251bSk7DQo+ICAgCXN0cnVjdCBmYmNvbl9vcHMgKm9wcyA9IGluZm8tPmZi Y29uX3BhcjsNCj4gICANCj4gICAJaWYgKCFmYmNvbl9pc19pbmFjdGl2ZSh2YywgaW5mbykp DQo+IEBAIC0xMjk4LDcgKzEzMTAsNyBAQCBzdGF0aWMgdm9pZCBmYmNvbl9jbGVhcl9tYXJn aW5zKHN0cnVjdCB2Y19kYXRhICp2YywgaW50IGJvdHRvbV9vbmx5KQ0KPiAgIA0KPiAgIHN0 YXRpYyB2b2lkIGZiY29uX2N1cnNvcihzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBtb2RlKQ0K PiAgIHsNCj4gLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZi X21hcFt2Yy0+dmNfbnVtXV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9p bmZvX2Zyb21fY29uc29sZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAq b3BzID0gaW5mby0+ZmJjb25fcGFyOw0KPiAgICAJaW50IGMgPSBzY3JfcmVhZHcoKHUxNiAq KSB2Yy0+dmNfcG9zKTsNCj4gICANCj4gQEAgLTEzOTIsNyArMTQwNCw3IEBAIHN0YXRpYyB2 b2lkIGZiY29uX3NldF9kaXNwKHN0cnVjdCBmYl9pbmZvICppbmZvLCBzdHJ1Y3QgZmJfdmFy X3NjcmVlbmluZm8gKnZhciwNCj4gICANCj4gICBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHl3 cmFwX3VwKHN0cnVjdCB2Y19kYXRhICp2YywgaW50IGNvdW50KQ0KPiAgIHsNCj4gLQlzdHJ1 Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNfbnVt XV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29s ZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAqb3BzID0gaW5mby0+ZmJj b25fcGFyOw0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZmYl9kaXNwbGF5W3Zj LT52Y19udW1dOw0KPiAgIA0KPiBAQCAtMTQxMSw3ICsxNDIzLDcgQEAgc3RhdGljIF9faW5s aW5lX18gdm9pZCB5d3JhcF91cChzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBjb3VudCkNCj4g ICANCj4gICBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHl3cmFwX2Rvd24oc3RydWN0IHZjX2Rh dGEgKnZjLCBpbnQgY291bnQpDQo+ICAgew0KPiAtCXN0cnVjdCBmYl9pbmZvICppbmZvID0g cmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW3ZjLT52Y19udW1dXTsNCj4gKwlzdHJ1Y3QgZmJf aW5mbyAqaW5mbyA9IGZiY29uX2luZm9fZnJvbV9jb25zb2xlKHZjLT52Y19udW0pOw0KPiAg IAlzdHJ1Y3QgZmJjb25fb3BzICpvcHMgPSBpbmZvLT5mYmNvbl9wYXI7DQo+ICAgCXN0cnVj dCBmYmNvbl9kaXNwbGF5ICpwID0gJmZiX2Rpc3BsYXlbdmMtPnZjX251bV07DQo+ICAgDQo+ IEBAIC0xNDMwLDcgKzE0NDIsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHl3cmFwX2Rv d24oc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgY291bnQpDQo+ICAgDQo+ICAgc3RhdGljIF9f aW5saW5lX18gdm9pZCB5cGFuX3VwKHN0cnVjdCB2Y19kYXRhICp2YywgaW50IGNvdW50KQ0K PiAgIHsNCj4gLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZi X21hcFt2Yy0+dmNfbnVtXV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9p bmZvX2Zyb21fY29uc29sZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX2Rpc3Bs YXkgKnAgPSAmZmJfZGlzcGxheVt2Yy0+dmNfbnVtXTsNCj4gICAJc3RydWN0IGZiY29uX29w cyAqb3BzID0gaW5mby0+ZmJjb25fcGFyOw0KPiAgIA0KPiBAQCAtMTQ1NCw3ICsxNDY2LDcg QEAgc3RhdGljIF9faW5saW5lX18gdm9pZCB5cGFuX3VwKHN0cnVjdCB2Y19kYXRhICp2Yywg aW50IGNvdW50KQ0KPiAgIA0KPiAgIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgeXBhbl91cF9y ZWRyYXcoc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgdCwgaW50IGNvdW50KQ0KPiAgIHsNCj4g LQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+ dmNfbnVtXV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zyb21f Y29uc29sZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAqb3BzID0gaW5m by0+ZmJjb25fcGFyOw0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZmYl9kaXNw bGF5W3ZjLT52Y19udW1dOw0KPiAgIA0KPiBAQCAtMTQ3OCw3ICsxNDkwLDcgQEAgc3RhdGlj IF9faW5saW5lX18gdm9pZCB5cGFuX3VwX3JlZHJhdyhzdHJ1Y3QgdmNfZGF0YSAqdmMsIGlu dCB0LCBpbnQgY291bnQpDQo+ICAgDQo+ICAgc3RhdGljIF9faW5saW5lX18gdm9pZCB5cGFu X2Rvd24oc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgY291bnQpDQo+ICAgew0KPiAtCXN0cnVj dCBmYl9pbmZvICppbmZvID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW3ZjLT52Y19udW1d XTsNCj4gKwlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IGZiY29uX2luZm9fZnJvbV9jb25zb2xl KHZjLT52Y19udW0pOw0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZmYl9kaXNw bGF5W3ZjLT52Y19udW1dOw0KPiAgIAlzdHJ1Y3QgZmJjb25fb3BzICpvcHMgPSBpbmZvLT5m YmNvbl9wYXI7DQo+ICAgDQo+IEBAIC0xNTAyLDcgKzE1MTQsNyBAQCBzdGF0aWMgX19pbmxp bmVfXyB2b2lkIHlwYW5fZG93bihzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBjb3VudCkNCj4g ICANCj4gICBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHlwYW5fZG93bl9yZWRyYXcoc3RydWN0 IHZjX2RhdGEgKnZjLCBpbnQgdCwgaW50IGNvdW50KQ0KPiAgIHsNCj4gLQlzdHJ1Y3QgZmJf aW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNfbnVtXV07DQo+ ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29sZSh2Yy0+ dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAqb3BzID0gaW5mby0+ZmJjb25fcGFy Ow0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZmYl9kaXNwbGF5W3ZjLT52Y19u dW1dOw0KPiAgIA0KPiBAQCAtMTY2Niw3ICsxNjc4LDcgQEAgc3RhdGljIHZvaWQgZmJjb25f cmVkcmF3KHN0cnVjdCB2Y19kYXRhICp2Yywgc3RydWN0IGZiY29uX2Rpc3BsYXkgKnAsDQo+ ICAgc3RhdGljIHZvaWQgZmJjb25fYm1vdmVfcmVjKHN0cnVjdCB2Y19kYXRhICp2Yywgc3Ry dWN0IGZiY29uX2Rpc3BsYXkgKnAsIGludCBzeSwgaW50IHN4LA0KPiAgIAkJCSAgICBpbnQg ZHksIGludCBkeCwgaW50IGhlaWdodCwgaW50IHdpZHRoLCB1X2ludCB5X2JyZWFrKQ0KPiAg IHsNCj4gLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21h cFt2Yy0+dmNfbnVtXV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZv X2Zyb21fY29uc29sZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAqb3Bz ID0gaW5mby0+ZmJjb25fcGFyOw0KPiAgIAl1X2ludCBiOw0KPiAgIA0KPiBAQCAtMTcwOCw3 ICsxNzIwLDcgQEAgc3RhdGljIHZvaWQgZmJjb25fYm1vdmVfcmVjKHN0cnVjdCB2Y19kYXRh ICp2Yywgc3RydWN0IGZiY29uX2Rpc3BsYXkgKnAsIGludCBzeSwNCj4gICBzdGF0aWMgdm9p ZCBmYmNvbl9ibW92ZShzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBzeSwgaW50IHN4LCBpbnQg ZHksIGludCBkeCwNCj4gICAJCQlpbnQgaGVpZ2h0LCBpbnQgd2lkdGgpDQo+ICAgew0KPiAt CXN0cnVjdCBmYl9pbmZvICppbmZvID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW3ZjLT52 Y19udW1dXTsNCj4gKwlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IGZiY29uX2luZm9fZnJvbV9j b25zb2xlKHZjLT52Y19udW0pOw0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZm Yl9kaXNwbGF5W3ZjLT52Y19udW1dOw0KPiAgIA0KPiAgIAlpZiAoZmJjb25faXNfaW5hY3Rp dmUodmMsIGluZm8pKQ0KPiBAQCAtMTczMSw3ICsxNzQzLDcgQEAgc3RhdGljIHZvaWQgZmJj b25fYm1vdmUoc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgc3ksIGludCBzeCwgaW50IGR5LCBp bnQgZHgsDQo+ICAgc3RhdGljIGJvb2wgZmJjb25fc2Nyb2xsKHN0cnVjdCB2Y19kYXRhICp2 YywgdW5zaWduZWQgaW50IHQsIHVuc2lnbmVkIGludCBiLA0KPiAgIAkJZW51bSBjb25fc2Ny b2xsIGRpciwgdW5zaWduZWQgaW50IGNvdW50KQ0KPiAgIHsNCj4gLQlzdHJ1Y3QgZmJfaW5m byAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNfbnVtXV07DQo+ICsJ c3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29sZSh2Yy0+dmNf bnVtKTsNCj4gICAJc3RydWN0IGZiY29uX2Rpc3BsYXkgKnAgPSAmZmJfZGlzcGxheVt2Yy0+ dmNfbnVtXTsNCj4gICAJaW50IHNjcm9sbF9wYXJ0aWFsID0gaW5mby0+ZmxhZ3MgJiBGQklO Rk9fUEFSVElBTF9QQU5fT0s7DQo+ICAgDQo+IEBAIC0xOTk2LDcgKzIwMDgsNyBAQCBzdGF0 aWMgdm9pZCB1cGRhdGVzY3JvbGxtb2RlKHN0cnVjdCBmYmNvbl9kaXNwbGF5ICpwLA0KPiAg IHN0YXRpYyBpbnQgZmJjb25fcmVzaXplKHN0cnVjdCB2Y19kYXRhICp2YywgdW5zaWduZWQg aW50IHdpZHRoLA0KPiAgIAkJCXVuc2lnbmVkIGludCBoZWlnaHQsIHVuc2lnbmVkIGludCB1 c2VyKQ0KPiAgIHsNCj4gLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJb Y29uMmZiX21hcFt2Yy0+dmNfbnVtXV07DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBm YmNvbl9pbmZvX2Zyb21fY29uc29sZSh2Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29u X29wcyAqb3BzID0gaW5mby0+ZmJjb25fcGFyOw0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxh eSAqcCA9ICZmYl9kaXNwbGF5W3ZjLT52Y19udW1dOw0KPiAgIAlzdHJ1Y3QgZmJfdmFyX3Nj cmVlbmluZm8gdmFyID0gaW5mby0+dmFyOw0KPiBAQCAtMjA2NSw3ICsyMDc3LDcgQEAgc3Rh dGljIGludCBmYmNvbl9zd2l0Y2goc3RydWN0IHZjX2RhdGEgKnZjKQ0KPiAgIAlzdHJ1Y3Qg ZmJfdmFyX3NjcmVlbmluZm8gdmFyOw0KPiAgIAlpbnQgaSwgcmV0LCBwcmV2X2NvbnNvbGU7 DQo+ICAgDQo+IC0JaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNfbnVt XV07DQo+ICsJaW5mbyA9IGZiY29uX2luZm9fZnJvbV9jb25zb2xlKHZjLT52Y19udW0pOw0K PiAgIAlvcHMgPSBpbmZvLT5mYmNvbl9wYXI7DQo+ICAgDQo+ICAgCWlmIChsb2dvX3Nob3du ID49IDApIHsNCj4gQEAgLTIwNzksNyArMjA5MSw3IEBAIHN0YXRpYyBpbnQgZmJjb25fc3dp dGNoKHN0cnVjdCB2Y19kYXRhICp2YykNCj4gICANCj4gICAJcHJldl9jb25zb2xlID0gb3Bz LT5jdXJyY29uOw0KPiAgIAlpZiAocHJldl9jb25zb2xlICE9IC0xKQ0KPiAtCQlvbGRfaW5m byA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFtwcmV2X2NvbnNvbGVdXTsNCj4gKwkJb2xk X2luZm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29sZShwcmV2X2NvbnNvbGUpOw0KPiAgIAkv Kg0KPiAgIAkgKiBGSVhNRTogSWYgd2UgaGF2ZSBtdWx0aXBsZSBmYmRldidzIGxvYWRlZCwg d2UgbmVlZCB0bw0KPiAgIAkgKiB1cGRhdGUgYWxsIGluZm8tPmN1cnJjb24uICBQZXJoYXBz LCB3ZSBjYW4gcGxhY2UgdGhpcw0KPiBAQCAtMjIwMiw3ICsyMjE0LDcgQEAgc3RhdGljIHZv aWQgZmJjb25fZ2VuZXJpY19ibGFuayhzdHJ1Y3QgdmNfZGF0YSAqdmMsIHN0cnVjdCBmYl9p bmZvICppbmZvLA0KPiAgIA0KPiAgIHN0YXRpYyBpbnQgZmJjb25fYmxhbmsoc3RydWN0IHZj X2RhdGEgKnZjLCBpbnQgYmxhbmssIGludCBtb2RlX3N3aXRjaCkNCj4gICB7DQo+IC0Jc3Ry dWN0IGZiX2luZm8gKmluZm8gPSByZWdpc3RlcmVkX2ZiW2NvbjJmYl9tYXBbdmMtPnZjX251 bV1dOw0KPiArCXN0cnVjdCBmYl9pbmZvICppbmZvID0gZmJjb25faW5mb19mcm9tX2NvbnNv bGUodmMtPnZjX251bSk7DQo+ICAgCXN0cnVjdCBmYmNvbl9vcHMgKm9wcyA9IGluZm8tPmZi Y29uX3BhcjsNCj4gICANCj4gICAJaWYgKG1vZGVfc3dpdGNoKSB7DQo+IEBAIC0yMjQ0LDcg KzIyNTYsNyBAQCBzdGF0aWMgaW50IGZiY29uX2JsYW5rKHN0cnVjdCB2Y19kYXRhICp2Yywg aW50IGJsYW5rLCBpbnQgbW9kZV9zd2l0Y2gpDQo+ICAgDQo+ICAgc3RhdGljIGludCBmYmNv bl9kZWJ1Z19lbnRlcihzdHJ1Y3QgdmNfZGF0YSAqdmMpDQo+ICAgew0KPiAtCXN0cnVjdCBm Yl9pbmZvICppbmZvID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW3ZjLT52Y19udW1dXTsN Cj4gKwlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IGZiY29uX2luZm9fZnJvbV9jb25zb2xlKHZj LT52Y19udW0pOw0KPiAgIAlzdHJ1Y3QgZmJjb25fb3BzICpvcHMgPSBpbmZvLT5mYmNvbl9w YXI7DQo+ICAgDQo+ICAgCW9wcy0+c2F2ZV9ncmFwaGljcyA9IG9wcy0+Z3JhcGhpY3M7DQo+ IEBAIC0yMjU3LDcgKzIyNjksNyBAQCBzdGF0aWMgaW50IGZiY29uX2RlYnVnX2VudGVyKHN0 cnVjdCB2Y19kYXRhICp2YykNCj4gICANCj4gICBzdGF0aWMgaW50IGZiY29uX2RlYnVnX2xl YXZlKHN0cnVjdCB2Y19kYXRhICp2YykNCj4gICB7DQo+IC0Jc3RydWN0IGZiX2luZm8gKmlu Zm8gPSByZWdpc3RlcmVkX2ZiW2NvbjJmYl9tYXBbdmMtPnZjX251bV1dOw0KPiArCXN0cnVj dCBmYl9pbmZvICppbmZvID0gZmJjb25faW5mb19mcm9tX2NvbnNvbGUodmMtPnZjX251bSk7 DQo+ICAgCXN0cnVjdCBmYmNvbl9vcHMgKm9wcyA9IGluZm8tPmZiY29uX3BhcjsNCj4gICAN Cj4gICAJb3BzLT5ncmFwaGljcyA9IG9wcy0+c2F2ZV9ncmFwaGljczsNCj4gQEAgLTIzOTMs NyArMjQwNSw3IEBAIHN0YXRpYyB2b2lkIHNldF92Y19oaV9mb250KHN0cnVjdCB2Y19kYXRh ICp2YywgYm9vbCBzZXQpDQo+ICAgc3RhdGljIGludCBmYmNvbl9kb19zZXRfZm9udChzdHJ1 Y3QgdmNfZGF0YSAqdmMsIGludCB3LCBpbnQgaCwgaW50IGNoYXJjb3VudCwNCj4gICAJCQkg ICAgIGNvbnN0IHU4ICogZGF0YSwgaW50IHVzZXJmb250KQ0KPiAgIHsNCj4gLQlzdHJ1Y3Qg ZmJfaW5mbyAqaW5mbyA9IHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFt2Yy0+dmNfbnVtXV07 DQo+ICsJc3RydWN0IGZiX2luZm8gKmluZm8gPSBmYmNvbl9pbmZvX2Zyb21fY29uc29sZSh2 Yy0+dmNfbnVtKTsNCj4gICAJc3RydWN0IGZiY29uX29wcyAqb3BzID0gaW5mby0+ZmJjb25f cGFyOw0KPiAgIAlzdHJ1Y3QgZmJjb25fZGlzcGxheSAqcCA9ICZmYl9kaXNwbGF5W3ZjLT52 Y19udW1dOw0KPiAgIAlpbnQgcmVzaXplOw0KPiBAQCAtMjQ0Nyw3ICsyNDU5LDcgQEAgc3Rh dGljIGludCBmYmNvbl9kb19zZXRfZm9udChzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCB3LCBp bnQgaCwgaW50IGNoYXJjb3VudCwNCj4gICBzdGF0aWMgaW50IGZiY29uX3NldF9mb250KHN0 cnVjdCB2Y19kYXRhICp2Yywgc3RydWN0IGNvbnNvbGVfZm9udCAqZm9udCwNCj4gICAJCQkg IHVuc2lnbmVkIGludCBmbGFncykNCj4gICB7DQo+IC0Jc3RydWN0IGZiX2luZm8gKmluZm8g PSByZWdpc3RlcmVkX2ZiW2NvbjJmYl9tYXBbdmMtPnZjX251bV1dOw0KPiArCXN0cnVjdCBm Yl9pbmZvICppbmZvID0gZmJjb25faW5mb19mcm9tX2NvbnNvbGUodmMtPnZjX251bSk7DQo+ ICAgCXVuc2lnbmVkIGNoYXJjb3VudCA9IGZvbnQtPmNoYXJjb3VudDsNCj4gICAJaW50IHcg PSBmb250LT53aWR0aDsNCj4gICAJaW50IGggPSBmb250LT5oZWlnaHQ7DQo+IEBAIC0yNTEx LDcgKzI1MjMsNyBAQCBzdGF0aWMgaW50IGZiY29uX3NldF9mb250KHN0cnVjdCB2Y19kYXRh ICp2Yywgc3RydWN0IGNvbnNvbGVfZm9udCAqZm9udCwNCj4gICANCj4gICBzdGF0aWMgaW50 IGZiY29uX3NldF9kZWZfZm9udChzdHJ1Y3QgdmNfZGF0YSAqdmMsIHN0cnVjdCBjb25zb2xl X2ZvbnQgKmZvbnQsIGNoYXIgKm5hbWUpDQo+ICAgew0KPiAtCXN0cnVjdCBmYl9pbmZvICpp bmZvID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW3ZjLT52Y19udW1dXTsNCj4gKwlzdHJ1 Y3QgZmJfaW5mbyAqaW5mbyA9IGZiY29uX2luZm9fZnJvbV9jb25zb2xlKHZjLT52Y19udW0p Ow0KPiAgIAljb25zdCBzdHJ1Y3QgZm9udF9kZXNjICpmOw0KPiAgIA0KPiAgIAlpZiAoIW5h bWUpDQo+IEBAIC0yNTM1LDcgKzI1NDcsNyBAQCBzdGF0aWMgc3RydWN0IGZiX2NtYXAgcGFs ZXR0ZV9jbWFwID0gew0KPiAgIA0KPiAgIHN0YXRpYyB2b2lkIGZiY29uX3NldF9wYWxldHRl KHN0cnVjdCB2Y19kYXRhICp2YywgY29uc3QgdW5zaWduZWQgY2hhciAqdGFibGUpDQo+ICAg ew0KPiAtCXN0cnVjdCBmYl9pbmZvICppbmZvID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFw W3ZjLT52Y19udW1dXTsNCj4gKwlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IGZiY29uX2luZm9f ZnJvbV9jb25zb2xlKHZjLT52Y19udW0pOw0KPiAgIAlpbnQgaSwgaiwgaywgZGVwdGg7DQo+ ICAgCXU4IHZhbDsNCj4gICANCj4gQEAgLTI2NTEsNyArMjY2Myw3IEBAIHN0YXRpYyB2b2lk IGZiY29uX21vZGVjaGFuZ2VkKHN0cnVjdCBmYl9pbmZvICppbmZvKQ0KPiAgIAkJcmV0dXJu Ow0KPiAgIAl2YyA9IHZjX2NvbnNbb3BzLT5jdXJyY29uXS5kOw0KPiAgIAlpZiAodmMtPnZj X21vZGUgIT0gS0RfVEVYVCB8fA0KPiAtCSAgICByZWdpc3RlcmVkX2ZiW2NvbjJmYl9tYXBb b3BzLT5jdXJyY29uXV0gIT0gaW5mbykNCj4gKwkgICAgZmJjb25faW5mb19mcm9tX2NvbnNv bGUob3BzLT5jdXJyY29uKSAhPSBpbmZvKQ0KPiAgIAkJcmV0dXJuOw0KPiAgIA0KPiAgIAlw ID0gJmZiX2Rpc3BsYXlbdmMtPnZjX251bV07DQo+IEBAIC0yNjkxLDcgKzI3MDMsNyBAQCBz dGF0aWMgdm9pZCBmYmNvbl9zZXRfYWxsX3ZjcyhzdHJ1Y3QgZmJfaW5mbyAqaW5mbykNCj4g ICAJZm9yIChpID0gZmlyc3RfZmJfdmM7IGkgPD0gbGFzdF9mYl92YzsgaSsrKSB7DQo+ICAg CQl2YyA9IHZjX2NvbnNbaV0uZDsNCj4gICAJCWlmICghdmMgfHwgdmMtPnZjX21vZGUgIT0g S0RfVEVYVCB8fA0KPiAtCQkgICAgcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW2ldXSAhPSBp bmZvKQ0KPiArCQkgICAgZmJjb25faW5mb19mcm9tX2NvbnNvbGUoaSkgIT0gaW5mbykNCj4g ICAJCQljb250aW51ZTsNCj4gICANCj4gICAJCWlmIChjb25faXNfdmlzaWJsZSh2YykpIHsN Cj4gQEAgLTI5NTQsNyArMjk2Niw3IEBAIHZvaWQgZmJjb25fZmJfYmxhbmtlZChzdHJ1Y3Qg ZmJfaW5mbyAqaW5mbywgaW50IGJsYW5rKQ0KPiAgIA0KPiAgIAl2YyA9IHZjX2NvbnNbb3Bz LT5jdXJyY29uXS5kOw0KPiAgIAlpZiAodmMtPnZjX21vZGUgIT0gS0RfVEVYVCB8fA0KPiAt CQkJcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW29wcy0+Y3VycmNvbl1dICE9IGluZm8pDQo+ ICsJCQlmYmNvbl9pbmZvX2Zyb21fY29uc29sZShvcHMtPmN1cnJjb24pICE9IGluZm8pDQo+ ICAgCQlyZXR1cm47DQo+ICAgDQo+ICAgCWlmIChjb25faXNfdmlzaWJsZSh2YykpIHsNCj4g QEAgLTI5NzQsNyArMjk4Niw3IEBAIHZvaWQgZmJjb25fbmV3X21vZGVsaXN0KHN0cnVjdCBm Yl9pbmZvICppbmZvKQ0KPiAgIAljb25zdCBzdHJ1Y3QgZmJfdmlkZW9tb2RlICptb2RlOw0K PiAgIA0KPiAgIAlmb3IgKGkgPSBmaXJzdF9mYl92YzsgaSA8PSBsYXN0X2ZiX3ZjOyBpKysp IHsNCj4gLQkJaWYgKHJlZ2lzdGVyZWRfZmJbY29uMmZiX21hcFtpXV0gIT0gaW5mbykNCj4g KwkJaWYgKGZiY29uX2luZm9fZnJvbV9jb25zb2xlKGkpICE9IGluZm8pDQo+ICAgCQkJY29u dGludWU7DQo+ICAgCQlpZiAoIWZiX2Rpc3BsYXlbaV0ubW9kZSkNCj4gICAJCQljb250aW51 ZTsNCg0KLS0gDQpUaG9tYXMgWmltbWVybWFubg0KR3JhcGhpY3MgRHJpdmVyIERldmVsb3Bl cg0KU1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJIDQpNYXhmZWxkc3RyLiA1 LCA5MDQwOSBOw7xybmJlcmcsIEdlcm1hbnkNCihIUkIgMzY4MDksIEFHIE7DvHJuYmVyZykN Ckdlc2Now6RmdHNmw7xocmVyOiBJdm8gVG90ZXYNCg== --------------Ekcl3hDMNqrEJLn0DtxY4RV8-- --------------rKRYwLKHn1m0oDNTNdsAysoD Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEExndm/fpuMUdwYFFolh/E3EQov+AFAmIE9JwFAwAAAAAACgkQlh/E3EQov+BZ Sw//a74mzA5ZGl179egAW/p6IX/xTR+h6u4mryr66zrEZBMu9Abr4VnJ44Yhz+I2rV5lVOOvoYFt Hw7lVi5NoksKhuqBWWk2U6g1jaTSKrONUXjL8uP5P+e++/avLVI2RBlu6zdbPnX5bbf5SIi4R5R1 hKSJ99600EXh+v6xmMixS4mzkcpHVddixDbvySeLGerhkuqefufc25ly5yd3OJsvHIfZ3+379dPk zHnkrLDy1yV3CF6GW6YWzaDd4uYH/d7/KNj49TnnrqXCU0ypgLHMNu/6TE0fL9N+vnSAnfSQgB4X yAGRXHlhYFUvg+99KEr0IdLXwH5Z91z/A08ZN8S45CWyS5rCWXWo1LwzTHxSPRQhTQ/lwIDtgZVr eTf5IOIIwYM34XnzLeJRL8ppzadMzvGhOv8gzJdNwt5622vIUM94EMckvD3rXq1IAr3XPOWRktR+ aaCI3c779mmlWR++5V6bf/Sg2RBf/qTAJADXwjsIMcennEWWSIicgccttsU2LpM9LkyeQT4E04E8 kFXSEPFfrimC34ttJPmh8mDTNBCp88F7hkNUOV4a8T2OtcYV0DBhl9aghHtaHOfgBMVsbT/vXpJQ eOD3U6SwFKOGBdy9iOHXAS8i2zzvkDmOSUNl0fwEYIGary3ACrHNzh3wq+R2VouzmHcLpp3y+Luz yyU= =r2Ys -----END PGP SIGNATURE----- --------------rKRYwLKHn1m0oDNTNdsAysoD--