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 A21A4C433F5 for ; Wed, 1 Dec 2021 11:02:35 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B03576ED08; Wed, 1 Dec 2021 11:02:34 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id AB2896EB1D for ; Wed, 1 Dec 2021 11:02:32 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10184"; a="217128512" X-IronPort-AV: E=Sophos;i="5.87,278,1631602800"; d="scan'208";a="217128512" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2021 03:02:31 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,278,1631602800"; d="scan'208";a="459985140" Received: from irsmsx604.ger.corp.intel.com ([163.33.146.137]) by orsmga006.jf.intel.com with ESMTP; 01 Dec 2021 03:02:30 -0800 Received: from irsmsx605.ger.corp.intel.com (163.33.146.138) by IRSMSX604.ger.corp.intel.com (163.33.146.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Wed, 1 Dec 2021 11:02:29 +0000 Received: from irsmsx605.ger.corp.intel.com ([163.33.146.138]) by IRSMSX605.ger.corp.intel.com ([163.33.146.138]) with mapi id 15.01.2308.020; Wed, 1 Dec 2021 11:02:29 +0000 From: "Kahola, Mika" To: Ville Syrjala , "intel-gfx@lists.freedesktop.org" Thread-Topic: [Intel-gfx] [PATCH 13/20] drm/i915/fbc: Allocate intel_fbc dynamically Thread-Index: AQHX4Se0tJwRbFoiaEGLVnz+30Ten6wdg23A Date: Wed, 1 Dec 2021 11:02:29 +0000 Message-ID: <0025ab65c001464cb62fff0dc3316eb2@intel.com> References: <20211124113652.22090-1-ville.syrjala@linux.intel.com> <20211124113652.22090-14-ville.syrjala@linux.intel.com> In-Reply-To: <20211124113652.22090-14-ville.syrjala@linux.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [163.33.253.164] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH 13/20] drm/i915/fbc: Allocate intel_fbc dynamically 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: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBJbnRlbC1nZnggPGludGVsLWdm eC1ib3VuY2VzQGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4gT24gQmVoYWxmIE9mIFZpbGxlDQo+IFN5 cmphbGENCj4gU2VudDogV2VkbmVzZGF5LCBOb3ZlbWJlciAyNCwgMjAyMSAxOjM3IFBNDQo+IFRv OiBpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+IFN1YmplY3Q6IFtJbnRlbC1nZnhd IFtQQVRDSCAxMy8yMF0gZHJtL2k5MTUvZmJjOiBBbGxvY2F0ZSBpbnRlbF9mYmMgZHluYW1pY2Fs bHkNCj4gDQo+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+DQo+IA0KPiBJbiB0aGUgZnV0dXJlIHdlIG1heSBoYXZlIG1vcmUgdGhhbiBvbmUgRkJD IGluc3RhbmNlIG9uIHNvbWUgcGxhdGZvcm1zLiBTbw0KPiBsZXQncyBqdXN0IGFsbG9jYXRlIGl0 IGR5bmFtaWNhbGx5LiBUaGlzIGFsc28gbGV0cyB1cyBmdWxseSBoaWRlIHRoZSBpbXBsZW1lbnRh dGlvbg0KPiBmcm9tIHByeWluZyBleWVzLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3ly asOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4NCg0KUmV2aWV3ZWQtYnk6IE1p a2EgS2Fob2xhIDxtaWthLmthaG9sYUBpbnRlbC5jb20+DQoNCj4gLS0tDQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2k5eHhfcGxhbmUuYyAgICAgfCAgIDIgKy0NCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMgICAgICB8IDE1NCArKysrKysrKysrKysr LS0tLS0NCj4gIC4uLi9kcm0vaTkxNS9kaXNwbGF5L3NrbF91bml2ZXJzYWxfcGxhbmUuYyAgICB8 ICAgMiArLQ0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAg IHwgIDU5ICstLS0tLS0NCj4gIDQgZmlsZXMgY2hhbmdlZCwgMTE2IGluc2VydGlvbnMoKyksIDEw MSBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2k5eHhfcGxhbmUuYw0KPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaTl4 eF9wbGFuZS5jDQo+IGluZGV4IDg0ZjUwYzkwNzI4Zi4uODU5NTBmZjY3NjA5IDEwMDY0NA0KPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2k5eHhfcGxhbmUuYw0KPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2k5eHhfcGxhbmUuYw0KPiBAQCAtMTI1LDcgKzEy NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfZmJjICppOXh4X3BsYW5lX2ZiYyhzdHJ1Y3QNCj4g ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ICAJCQkJCWVudW0gaTl4eF9wbGFuZV9pZCBp OXh4X3BsYW5lKQ0KPiAgew0KPiAgCWlmIChpOXh4X3BsYW5lX2hhc19mYmMoZGV2X3ByaXYsIGk5 eHhfcGxhbmUpKQ0KPiAtCQlyZXR1cm4gJmRldl9wcml2LT5mYmM7DQo+ICsJCXJldHVybiBkZXZf cHJpdi0+ZmJjOw0KPiAgCWVsc2UNCj4gIAkJcmV0dXJuIE5VTEw7DQo+ICB9DQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jDQo+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmMuYw0KPiBpbmRleCA5YmU4ZTdkY2FhYjYu LjFkYWY0ZjdiNWQ4MCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9mYmMuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2ZiYy5jDQo+IEBAIC01OSw2ICs1OSw2MyBAQCBzdHJ1Y3QgaW50ZWxfZmJjX2Z1bmNzIHsNCj4g IAl2b2lkICgqc2V0X2ZhbHNlX2NvbG9yKShzdHJ1Y3QgaW50ZWxfZmJjICpmYmMsIGJvb2wgZW5h YmxlKTsgIH07DQo+IA0KPiArc3RydWN0IGludGVsX2ZiY19zdGF0ZSB7DQo+ICsJY29uc3QgY2hh ciAqbm9fZmJjX3JlYXNvbjsNCj4gKwllbnVtIGk5eHhfcGxhbmVfaWQgaTl4eF9wbGFuZTsNCj4g Kwl1bnNpZ25lZCBpbnQgY2ZiX3N0cmlkZTsNCj4gKwl1bnNpZ25lZCBpbnQgY2ZiX3NpemU7DQo+ ICsJdW5zaWduZWQgaW50IGZlbmNlX3lfb2Zmc2V0Ow0KPiArCXUxNiBvdmVycmlkZV9jZmJfc3Ry aWRlOw0KPiArCXUxNiBpbnRlcnZhbDsNCj4gKwlzOCBmZW5jZV9pZDsNCj4gK307DQo+ICsNCj4g K3N0cnVjdCBpbnRlbF9mYmMgew0KPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1Ow0K PiArCWNvbnN0IHN0cnVjdCBpbnRlbF9mYmNfZnVuY3MgKmZ1bmNzOw0KPiArDQo+ICsJLyoNCj4g KwkgKiBUaGlzIGlzIGFsd2F5cyB0aGUgaW5uZXIgbG9jayB3aGVuIG92ZXJsYXBwaW5nIHdpdGgN Cj4gKwkgKiBzdHJ1Y3RfbXV0ZXggYW5kIGl0J3MgdGhlIG91dGVyIGxvY2sgd2hlbiBvdmVybGFw cGluZw0KPiArCSAqIHdpdGggc3RvbGVuX2xvY2suDQo+ICsJICovDQo+ICsJc3RydWN0IG11dGV4 IGxvY2s7DQo+ICsJdW5zaWduZWQgaW50IHBvc3NpYmxlX2ZyYW1lYnVmZmVyX2JpdHM7DQo+ICsJ dW5zaWduZWQgaW50IGJ1c3lfYml0czsNCj4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOw0K PiArDQo+ICsJc3RydWN0IGRybV9tbV9ub2RlIGNvbXByZXNzZWRfZmI7DQo+ICsJc3RydWN0IGRy bV9tbV9ub2RlIGNvbXByZXNzZWRfbGxiOw0KPiArDQo+ICsJdTggbGltaXQ7DQo+ICsNCj4gKwli b29sIGZhbHNlX2NvbG9yOw0KPiArDQo+ICsJYm9vbCBhY3RpdmU7DQo+ICsJYm9vbCBhY3RpdmF0 ZWQ7DQo+ICsJYm9vbCBmbGlwX3BlbmRpbmc7DQo+ICsNCj4gKwlib29sIHVuZGVycnVuX2RldGVj dGVkOw0KPiArCXN0cnVjdCB3b3JrX3N0cnVjdCB1bmRlcnJ1bl93b3JrOw0KPiArDQo+ICsJLyoN Cj4gKwkgKiBEdWUgdG8gdGhlIGF0b21pYyBydWxlcyB3ZSBjYW4ndCBhY2Nlc3Mgc29tZSBzdHJ1 Y3R1cmVzIHdpdGhvdXQgdGhlDQo+ICsJICogYXBwcm9wcmlhdGUgbG9ja2luZywgc28gd2UgY2Fj aGUgaW5mb3JtYXRpb24gaGVyZSBpbiBvcmRlciB0byBhdm9pZA0KPiArCSAqIHRoZXNlIHByb2Js ZW1zLg0KPiArCSAqLw0KPiArCXN0cnVjdCBpbnRlbF9mYmNfc3RhdGUgc3RhdGVfY2FjaGU7DQo+ ICsNCj4gKwkvKg0KPiArCSAqIFRoaXMgc3RydWN0dXJlIGNvbnRhaW5zIGV2ZXJ5dGhpbmcgdGhh dCdzIHJlbGV2YW50IHRvIHByb2dyYW0gdGhlDQo+ICsJICogaGFyZHdhcmUgcmVnaXN0ZXJzLiBX aGVuIHdlIHdhbnQgdG8gZmlndXJlIG91dCBpZiB3ZSBuZWVkIHRvIGRpc2FibGUNCj4gKwkgKiBh bmQgcmUtZW5hYmxlIEZCQyBmb3IgYSBuZXcgY29uZmlndXJhdGlvbiB3ZSBqdXN0IGNoZWNrIGlm IHRoZXJlJ3MNCj4gKwkgKiBzb21ldGhpbmcgZGlmZmVyZW50IGluIHRoZSBzdHJ1Y3QuIFRoZSBn ZW54X2ZiY19hY3RpdmF0ZSBmdW5jdGlvbnMNCj4gKwkgKiBhcmUgc3VwcG9zZWQgdG8gcmVhZCBm cm9tIGl0IGluIG9yZGVyIHRvIHByb2dyYW0gdGhlIHJlZ2lzdGVycy4NCj4gKwkgKi8NCj4gKwlz dHJ1Y3QgaW50ZWxfZmJjX3N0YXRlIHBhcmFtczsNCj4gKwljb25zdCBjaGFyICpub19mYmNfcmVh c29uOw0KPiArfTsNCj4gKw0KPiAgLyogcGxhbmUgc3RyaWRlIGluIHBpeGVscyAqLw0KPiAgc3Rh dGljIHVuc2lnbmVkIGludCBpbnRlbF9mYmNfcGxhbmVfc3RyaWRlKGNvbnN0IHN0cnVjdCBpbnRl bF9wbGFuZV9zdGF0ZQ0KPiAqcGxhbmVfc3RhdGUpICB7IEBAIC03NjIsMTQgKzgxOSwxNiBAQCBz dGF0aWMgdm9pZA0KPiBfX2ludGVsX2ZiY19jbGVhbnVwX2NmYihzdHJ1Y3QgaW50ZWxfZmJjICpm YmMpDQo+IA0KPiAgdm9pZCBpbnRlbF9mYmNfY2xlYW51cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSkgIHsNCj4gLQlzdHJ1Y3QgaW50ZWxfZmJjICpmYmMgPSAmaTkxNS0+ZmJjOw0KPiAr CXN0cnVjdCBpbnRlbF9mYmMgKmZiYyA9IGk5MTUtPmZiYzsNCj4gDQo+IC0JaWYgKCFIQVNfRkJD KGk5MTUpKQ0KPiArCWlmICghZmJjKQ0KPiAgCQlyZXR1cm47DQo+IA0KPiAgCW11dGV4X2xvY2so JmZiYy0+bG9jayk7DQo+ICAJX19pbnRlbF9mYmNfY2xlYW51cF9jZmIoZmJjKTsNCj4gIAltdXRl eF91bmxvY2soJmZiYy0+bG9jayk7DQo+ICsNCj4gKwlrZnJlZShmYmMpOw0KPiAgfQ0KPiANCj4g IHN0YXRpYyBib29sIHN0cmlkZV9pc192YWxpZChjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlKSBAQCAtDQo+IDEzMTksOSArMTM3OCw5IEBAIHZvaWQgaW50ZWxfZmJj X2ludmFsaWRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsDQo+ICAJCQkgIHVuc2ln bmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzLA0KPiAgCQkJICBlbnVtIGZiX29wX29yaWdpbiBvcmln aW4pDQo+ICB7DQo+IC0Jc3RydWN0IGludGVsX2ZiYyAqZmJjID0gJmk5MTUtPmZiYzsNCj4gKwlz dHJ1Y3QgaW50ZWxfZmJjICpmYmMgPSBpOTE1LT5mYmM7DQo+IA0KPiAtCWlmICghSEFTX0ZCQyhp OTE1KSkNCj4gKwlpZiAoIWZiYykNCj4gIAkJcmV0dXJuOw0KPiANCj4gIAlpZiAob3JpZ2luID09 IE9SSUdJTl9GTElQIHx8IG9yaWdpbiA9PSBPUklHSU5fQ1VSU09SX1VQREFURSkgQEAgLQ0KPiAx MzQwLDkgKzEzOTksOSBAQCB2b2lkIGludGVsX2ZiY19pbnZhbGlkYXRlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1LA0KPiB2b2lkIGludGVsX2ZiY19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSwNCj4gIAkJICAgICB1bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJfYml0cywg ZW51bSBmYl9vcF9vcmlnaW4gb3JpZ2luKSAgew0KPiAtCXN0cnVjdCBpbnRlbF9mYmMgKmZiYyA9 ICZpOTE1LT5mYmM7DQo+ICsJc3RydWN0IGludGVsX2ZiYyAqZmJjID0gaTkxNS0+ZmJjOw0KPiAN Cj4gLQlpZiAoIUhBU19GQkMoaTkxNSkpDQo+ICsJaWYgKCFmYmMpDQo+ICAJCXJldHVybjsNCj4g DQo+ICAJbXV0ZXhfbG9jaygmZmJjLT5sb2NrKTsNCj4gQEAgLTE0ODQsOSArMTU0Myw5IEBAIHZv aWQgaW50ZWxfZmJjX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlDQo+ICpzdGF0ZSwN Cj4gICAqLw0KPiAgdm9pZCBpbnRlbF9mYmNfZ2xvYmFsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUpICB7DQo+IC0Jc3RydWN0IGludGVsX2ZiYyAqZmJjID0gJmk5MTUtPmZi YzsNCj4gKwlzdHJ1Y3QgaW50ZWxfZmJjICpmYmMgPSBpOTE1LT5mYmM7DQo+IA0KPiAtCWlmICgh SEFTX0ZCQyhpOTE1KSkNCj4gKwlpZiAoIWZiYykNCj4gIAkJcmV0dXJuOw0KPiANCj4gIAltdXRl eF9sb2NrKCZmYmMtPmxvY2spOw0KPiBAQCAtMTQ5Nyw5ICsxNTU2LDggQEAgdm9pZCBpbnRlbF9m YmNfZ2xvYmFsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUNCj4gKmk5MTUpDQo+IA0K PiAgc3RhdGljIHZvaWQgaW50ZWxfZmJjX3VuZGVycnVuX3dvcmtfZm4oc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKSAgew0KPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0NCj4gLQkJ Y29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlLA0KPiBmYmMudW5kZXJy dW5fd29yayk7DQo+IC0Jc3RydWN0IGludGVsX2ZiYyAqZmJjID0gJmk5MTUtPmZiYzsNCj4gKwlz dHJ1Y3QgaW50ZWxfZmJjICpmYmMgPSBjb250YWluZXJfb2Yod29yaywgdHlwZW9mKCpmYmMpLA0K PiB1bmRlcnJ1bl93b3JrKTsNCj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGZi Yy0+aTkxNTsNCj4gDQo+ICAJbXV0ZXhfbG9jaygmZmJjLT5sb2NrKTsNCj4gDQo+IEBAIC0xNTI0 LDkgKzE1ODIsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9mYmNfdW5kZXJydW5fd29ya19mbihzdHJ1 Y3QNCj4gd29ya19zdHJ1Y3QgKndvcmspDQo+ICAgKi8NCj4gIHZvaWQgaW50ZWxfZmJjX3Jlc2V0 X3VuZGVycnVuKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KSAgew0KPiAtCXN0cnVjdCBp bnRlbF9mYmMgKmZiYyA9ICZpOTE1LT5mYmM7DQo+ICsJc3RydWN0IGludGVsX2ZiYyAqZmJjID0g aTkxNS0+ZmJjOw0KPiANCj4gLQlpZiAoIUhBU19GQkMoaTkxNSkpDQo+ICsJaWYgKCFmYmMpDQo+ ICAJCXJldHVybjsNCj4gDQo+ICAJY2FuY2VsX3dvcmtfc3luYygmZmJjLT51bmRlcnJ1bl93b3Jr KTsNCj4gQEAgLTE1NTksOSArMTYxNyw5IEBAIHZvaWQgaW50ZWxfZmJjX3Jlc2V0X3VuZGVycnVu KHN0cnVjdA0KPiBkcm1faTkxNV9wcml2YXRlICppOTE1KQ0KPiAgICovDQo+ICB2b2lkIGludGVs X2ZiY19oYW5kbGVfZmlmb191bmRlcnJ1bl9pcnEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpICB7DQo+IC0Jc3RydWN0IGludGVsX2ZiYyAqZmJjID0gJmk5MTUtPmZiYzsNCj4gKwlzdHJ1 Y3QgaW50ZWxfZmJjICpmYmMgPSBpOTE1LT5mYmM7DQo+IA0KPiAtCWlmICghSEFTX0ZCQyhpOTE1 KSkNCj4gKwlpZiAoIWZiYykNCj4gIAkJcmV0dXJuOw0KPiANCj4gIAkvKiBUaGVyZSdzIG5vIGd1 YXJhbnRlZSB0aGF0IHVuZGVycnVuX2RldGVjdGVkIHdvbid0IGJlIHNldCB0byB0cnVlDQo+IEBA IC0xNjIxLDM1ICsxNjc5LDE3IEBAIHZvaWQgaW50ZWxfZmJjX2FkZF9wbGFuZShzdHJ1Y3QgaW50 ZWxfZmJjICpmYmMsDQo+IHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpDQo+ICAJZmJjLT5wb3Nz aWJsZV9mcmFtZWJ1ZmZlcl9iaXRzIHw9IHBsYW5lLT5mcm9udGJ1ZmZlcl9iaXQ7ICB9DQo+IA0K PiAtLyoqDQo+IC0gKiBpbnRlbF9mYmNfaW5pdCAtIEluaXRpYWxpemUgRkJDDQo+IC0gKiBAaTkx NTogdGhlIGk5MTUgZGV2aWNlDQo+IC0gKg0KPiAtICogVGhpcyBmdW5jdGlvbiBtaWdodCBiZSBj YWxsZWQgZHVyaW5nIFBNIGluaXQgcHJvY2Vzcy4NCj4gLSAqLw0KPiAtdm9pZCBpbnRlbF9mYmNf aW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkNCj4gK3N0YXRpYyBzdHJ1Y3QgaW50 ZWxfZmJjICppbnRlbF9mYmNfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlDQo+ICsqaTkx NSkNCj4gIHsNCj4gLQlzdHJ1Y3QgaW50ZWxfZmJjICpmYmMgPSAmaTkxNS0+ZmJjOw0KPiArCXN0 cnVjdCBpbnRlbF9mYmMgKmZiYzsNCj4gKw0KPiArCWZiYyA9IGt6YWxsb2Moc2l6ZW9mKCpmYmMp LCBHRlBfS0VSTkVMKTsNCj4gKwlpZiAoIWZiYykNCj4gKwkJcmV0dXJuIE5VTEw7DQo+IA0KPiAg CWZiYy0+aTkxNSA9IGk5MTU7DQo+ICAJSU5JVF9XT1JLKCZmYmMtPnVuZGVycnVuX3dvcmssIGlu dGVsX2ZiY191bmRlcnJ1bl93b3JrX2ZuKTsNCj4gIAltdXRleF9pbml0KCZmYmMtPmxvY2spOw0K PiAtCWZiYy0+YWN0aXZlID0gZmFsc2U7DQo+IC0NCj4gLQlpZiAoIWRybV9tbV9pbml0aWFsaXpl ZCgmaTkxNS0+bW0uc3RvbGVuKSkNCj4gLQkJbWt3cml0ZV9kZXZpY2VfaW5mbyhpOTE1KS0+ZGlz cGxheS5oYXNfZmJjID0gZmFsc2U7DQo+IC0NCj4gLQlpZiAobmVlZF9mYmNfdnRkX3dhKGk5MTUp KQ0KPiAtCQlta3dyaXRlX2RldmljZV9pbmZvKGk5MTUpLT5kaXNwbGF5Lmhhc19mYmMgPSBmYWxz ZTsNCj4gLQ0KPiAtCWk5MTUtPnBhcmFtcy5lbmFibGVfZmJjID0gaW50ZWxfc2FuaXRpemVfZmJj X29wdGlvbihpOTE1KTsNCj4gLQlkcm1fZGJnX2ttcygmaTkxNS0+ZHJtLCAiU2FuaXRpemVkIGVu YWJsZV9mYmMgdmFsdWU6ICVkXG4iLA0KPiAtCQkgICAgaTkxNS0+cGFyYW1zLmVuYWJsZV9mYmMp Ow0KPiAtDQo+IC0JaWYgKCFIQVNfRkJDKGk5MTUpKSB7DQo+IC0JCWZiYy0+bm9fZmJjX3JlYXNv biA9ICJ1bnN1cHBvcnRlZCBieSB0aGlzIGNoaXBzZXQiOw0KPiAtCQlyZXR1cm47DQo+IC0JfQ0K PiANCj4gIAlpZiAoRElTUExBWV9WRVIoaTkxNSkgPj0gNykNCj4gIAkJZmJjLT5mdW5jcyA9ICZp dmJfZmJjX2Z1bmNzOw0KPiBAQCAtMTY2NCwxMSArMTcwNCw0MyBAQCB2b2lkIGludGVsX2ZiY19p bml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQ0KPiAgCWVsc2UNCj4gIAkJZmJjLT5m dW5jcyA9ICZpOHh4X2ZiY19mdW5jczsNCj4gDQo+ICsJcmV0dXJuIGZiYzsNCj4gK30NCj4gKw0K PiArLyoqDQo+ICsgKiBpbnRlbF9mYmNfaW5pdCAtIEluaXRpYWxpemUgRkJDDQo+ICsgKiBAaTkx NTogdGhlIGk5MTUgZGV2aWNlDQo+ICsgKg0KPiArICogVGhpcyBmdW5jdGlvbiBtaWdodCBiZSBj YWxsZWQgZHVyaW5nIFBNIGluaXQgcHJvY2Vzcy4NCj4gKyAqLw0KPiArdm9pZCBpbnRlbF9mYmNf aW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkgew0KPiArCXN0cnVjdCBpbnRlbF9m YmMgKmZiYzsNCj4gKw0KPiArCWlmICghZHJtX21tX2luaXRpYWxpemVkKCZpOTE1LT5tbS5zdG9s ZW4pKQ0KPiArCQlta3dyaXRlX2RldmljZV9pbmZvKGk5MTUpLT5kaXNwbGF5Lmhhc19mYmMgPSBm YWxzZTsNCj4gKw0KPiArCWlmIChuZWVkX2ZiY192dGRfd2EoaTkxNSkpDQo+ICsJCW1rd3JpdGVf ZGV2aWNlX2luZm8oaTkxNSktPmRpc3BsYXkuaGFzX2ZiYyA9IGZhbHNlOw0KPiArDQo+ICsJaTkx NS0+cGFyYW1zLmVuYWJsZV9mYmMgPSBpbnRlbF9zYW5pdGl6ZV9mYmNfb3B0aW9uKGk5MTUpOw0K PiArCWRybV9kYmdfa21zKCZpOTE1LT5kcm0sICJTYW5pdGl6ZWQgZW5hYmxlX2ZiYyB2YWx1ZTog JWRcbiIsDQo+ICsJCSAgICBpOTE1LT5wYXJhbXMuZW5hYmxlX2ZiYyk7DQo+ICsNCj4gKwlpZiAo IUhBU19GQkMoaTkxNSkpDQo+ICsJCXJldHVybjsNCj4gKw0KPiArCWZiYyA9IGludGVsX2ZiY19j cmVhdGUoaTkxNSk7DQo+ICsJaWYgKCFmYmMpDQo+ICsJCXJldHVybjsNCj4gKw0KPiAgCS8qIFdl IHN0aWxsIGRvbid0IGhhdmUgYW55IHNvcnQgb2YgaGFyZHdhcmUgc3RhdGUgcmVhZG91dCBmb3Ig RkJDLCBzbw0KPiAgCSAqIGRlYWN0aXZhdGUgaXQgaW4gY2FzZSB0aGUgQklPUyBhY3RpdmF0ZWQg aXQgdG8gbWFrZSBzdXJlIHNvZnR3YXJlDQo+ICAJICogbWF0Y2hlcyB0aGUgaGFyZHdhcmUgc3Rh dGUuICovDQo+ICAJaWYgKGludGVsX2ZiY19od19pc19hY3RpdmUoZmJjKSkNCj4gIAkJaW50ZWxf ZmJjX2h3X2RlYWN0aXZhdGUoZmJjKTsNCj4gKw0KPiArCWk5MTUtPmZiYyA9IGZiYzsNCj4gIH0N Cj4gDQo+ICBzdGF0aWMgaW50IGludGVsX2ZiY19kZWJ1Z2ZzX3N0YXR1c19zaG93KHN0cnVjdCBz ZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKSBAQA0KPiAtMTc0Myw4ICsxODE1LDggQEAgc3RhdGlj IHZvaWQgaW50ZWxfZmJjX2RlYnVnZnNfYWRkKHN0cnVjdCBpbnRlbF9mYmMgKmZiYykNCj4gDQo+ ICB2b2lkIGludGVsX2ZiY19kZWJ1Z2ZzX3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1KSAgew0KPiAtCXN0cnVjdCBpbnRlbF9mYmMgKmZiYyA9ICZpOTE1LT5mYmM7DQo+ICsJ c3RydWN0IGludGVsX2ZiYyAqZmJjID0gaTkxNS0+ZmJjOw0KPiANCj4gLQlpZiAoSEFTX0ZCQyhp OTE1KSkNCj4gKwlpZiAoZmJjKQ0KPiAgCQlpbnRlbF9mYmNfZGVidWdmc19hZGQoZmJjKTsNCj4g IH0NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvc2tsX3VuaXZl cnNhbF9wbGFuZS5jDQo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9za2xfdW5pdmVy c2FsX3BsYW5lLmMNCj4gaW5kZXggMjJlYzY5MDFlZTMwLi45ODBmMjM2ODA4NDIgMTAwNjQ0DQo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvc2tsX3VuaXZlcnNhbF9wbGFuZS5j DQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvc2tsX3VuaXZlcnNhbF9wbGFu ZS5jDQo+IEBAIC0xODIwLDcgKzE4MjAsNyBAQCBzdGF0aWMgc3RydWN0IGludGVsX2ZiYyAqc2ts X3BsYW5lX2ZiYyhzdHJ1Y3QNCj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ICAJCQkJ ICAgICAgIGVudW0gcGlwZSBwaXBlLCBlbnVtIHBsYW5lX2lkIHBsYW5lX2lkKSAgew0KPiAgCWlm IChza2xfcGxhbmVfaGFzX2ZiYyhkZXZfcHJpdiwgcGlwZSwgcGxhbmVfaWQpKQ0KPiAtCQlyZXR1 cm4gJmRldl9wcml2LT5mYmM7DQo+ICsJCXJldHVybiBkZXZfcHJpdi0+ZmJjOw0KPiAgCWVsc2UN Cj4gIAkJcmV0dXJuIE5VTEw7DQo+ICB9DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiBpbmRl eCBmNjMyYjAyNmNlMzQuLjEyMDk5ZjdmZjk4ZSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oDQo+IEBAIC0zOTksNjQgKzM5OSw4IEBAIHN0cnVjdCBkcm1faTkxNV9kaXNwbGF5X2Z1bmNz IHsNCj4gIAl2b2lkICgqY29tbWl0X21vZGVzZXRfZW5hYmxlcykoc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqc3RhdGUpOyAgfTsNCj4gDQo+IC1zdHJ1Y3QgaW50ZWxfZmJjX2Z1bmNzOw0KPiAt DQo+ICAjZGVmaW5lIEk5MTVfQ09MT1JfVU5FVklDVEFCTEUgKC0xKSAvKiBhIG5vbi12bWEgc2hh cmluZyB0aGUgYWRkcmVzcw0KPiBzcGFjZSAqLw0KPiANCj4gLXN0cnVjdCBpbnRlbF9mYmNfc3Rh dGUgew0KPiAtCWNvbnN0IGNoYXIgKm5vX2ZiY19yZWFzb247DQo+IC0JZW51bSBpOXh4X3BsYW5l X2lkIGk5eHhfcGxhbmU7DQo+IC0JdW5zaWduZWQgaW50IGNmYl9zdHJpZGU7DQo+IC0JdW5zaWdu ZWQgaW50IGNmYl9zaXplOw0KPiAtCXVuc2lnbmVkIGludCBmZW5jZV95X29mZnNldDsNCj4gLQl1 MTYgb3ZlcnJpZGVfY2ZiX3N0cmlkZTsNCj4gLQl1MTYgaW50ZXJ2YWw7DQo+IC0JczggZmVuY2Vf aWQ7DQo+IC19Ow0KPiAtDQo+IC1zdHJ1Y3QgaW50ZWxfZmJjIHsNCj4gLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNTsNCj4gLQljb25zdCBzdHJ1Y3QgaW50ZWxfZmJjX2Z1bmNzICpmdW5j czsNCj4gLQ0KPiAtCS8qIFRoaXMgaXMgYWx3YXlzIHRoZSBpbm5lciBsb2NrIHdoZW4gb3Zlcmxh cHBpbmcgd2l0aCBzdHJ1Y3RfbXV0ZXggYW5kDQo+IC0JICogaXQncyB0aGUgb3V0ZXIgbG9jayB3 aGVuIG92ZXJsYXBwaW5nIHdpdGggc3RvbGVuX2xvY2suICovDQo+IC0Jc3RydWN0IG11dGV4IGxv Y2s7DQo+IC0JdW5zaWduZWQgaW50IHBvc3NpYmxlX2ZyYW1lYnVmZmVyX2JpdHM7DQo+IC0JdW5z aWduZWQgaW50IGJ1c3lfYml0czsNCj4gLQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOw0KPiAt DQo+IC0Jc3RydWN0IGRybV9tbV9ub2RlIGNvbXByZXNzZWRfZmI7DQo+IC0Jc3RydWN0IGRybV9t bV9ub2RlIGNvbXByZXNzZWRfbGxiOw0KPiAtDQo+IC0JdTggbGltaXQ7DQo+IC0NCj4gLQlib29s IGZhbHNlX2NvbG9yOw0KPiAtDQo+IC0JYm9vbCBhY3RpdmU7DQo+IC0JYm9vbCBhY3RpdmF0ZWQ7 DQo+IC0JYm9vbCBmbGlwX3BlbmRpbmc7DQo+IC0NCj4gLQlib29sIHVuZGVycnVuX2RldGVjdGVk Ow0KPiAtCXN0cnVjdCB3b3JrX3N0cnVjdCB1bmRlcnJ1bl93b3JrOw0KPiAtDQo+IC0JLyoNCj4g LQkgKiBEdWUgdG8gdGhlIGF0b21pYyBydWxlcyB3ZSBjYW4ndCBhY2Nlc3Mgc29tZSBzdHJ1Y3R1 cmVzIHdpdGhvdXQgdGhlDQo+IC0JICogYXBwcm9wcmlhdGUgbG9ja2luZywgc28gd2UgY2FjaGUg aW5mb3JtYXRpb24gaGVyZSBpbiBvcmRlciB0byBhdm9pZA0KPiAtCSAqIHRoZXNlIHByb2JsZW1z Lg0KPiAtCSAqLw0KPiAtCXN0cnVjdCBpbnRlbF9mYmNfc3RhdGUgc3RhdGVfY2FjaGU7DQo+IC0N Cj4gLQkvKg0KPiAtCSAqIFRoaXMgc3RydWN0dXJlIGNvbnRhaW5zIGV2ZXJ5dGhpbmcgdGhhdCdz IHJlbGV2YW50IHRvIHByb2dyYW0gdGhlDQo+IC0JICogaGFyZHdhcmUgcmVnaXN0ZXJzLiBXaGVu IHdlIHdhbnQgdG8gZmlndXJlIG91dCBpZiB3ZSBuZWVkIHRvIGRpc2FibGUNCj4gLQkgKiBhbmQg cmUtZW5hYmxlIEZCQyBmb3IgYSBuZXcgY29uZmlndXJhdGlvbiB3ZSBqdXN0IGNoZWNrIGlmIHRo ZXJlJ3MNCj4gLQkgKiBzb21ldGhpbmcgZGlmZmVyZW50IGluIHRoZSBzdHJ1Y3QuIFRoZSBnZW54 X2ZiY19hY3RpdmF0ZSBmdW5jdGlvbnMNCj4gLQkgKiBhcmUgc3VwcG9zZWQgdG8gcmVhZCBmcm9t IGl0IGluIG9yZGVyIHRvIHByb2dyYW0gdGhlIHJlZ2lzdGVycy4NCj4gLQkgKi8NCj4gLQlzdHJ1 Y3QgaW50ZWxfZmJjX3N0YXRlIHBhcmFtczsNCj4gLQljb25zdCBjaGFyICpub19mYmNfcmVhc29u Ow0KPiAtfTsNCj4gLQ0KPiAgLyoNCj4gICAqIEhJR0hfUlIgaXMgdGhlIGhpZ2hlc3QgZURQIHBh bmVsIHJlZnJlc2ggcmF0ZSByZWFkIGZyb20gRURJRA0KPiAgICogTE9XX1JSIGlzIHRoZSBsb3dl c3QgZURQIHBhbmVsIHJlZnJlc2ggcmF0ZSBmb3VuZCBmcm9tIEVESUQgQEAgLTQ5Myw3DQo+ICs0 MzcsNiBAQCBzdHJ1Y3QgaTkxNV9kcnJzIHsgICNkZWZpbmUNCj4gUVVJUktfTk9fUFBTX0JBQ0tM SUdIVF9QT1dFUl9IT09LICgxPDw4KQ0KPiANCj4gIHN0cnVjdCBpbnRlbF9mYmRldjsNCj4gLXN0 cnVjdCBpbnRlbF9mYmNfd29yazsNCj4gDQo+ICBzdHJ1Y3QgaW50ZWxfZ21idXMgew0KPiAgCXN0 cnVjdCBpMmNfYWRhcHRlciBhZGFwdGVyOw0KPiBAQCAtODkyLDcgKzgzNSw3IEBAIHN0cnVjdCBk cm1faTkxNV9wcml2YXRlIHsNCj4gIAl1MzIgcGlwZXN0YXRfaXJxX21hc2tbSTkxNV9NQVhfUElQ RVNdOw0KPiANCj4gIAlzdHJ1Y3QgaTkxNV9ob3RwbHVnIGhvdHBsdWc7DQo+IC0Jc3RydWN0IGlu dGVsX2ZiYyBmYmM7DQo+ICsJc3RydWN0IGludGVsX2ZiYyAqZmJjOw0KPiAgCXN0cnVjdCBpOTE1 X2RycnMgZHJyczsNCj4gIAlzdHJ1Y3QgaW50ZWxfb3ByZWdpb24gb3ByZWdpb247DQo+ICAJc3Ry dWN0IGludGVsX3ZidF9kYXRhIHZidDsNCj4gLS0NCj4gMi4zMi4wDQoNCg==