From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 03/18] drm/i915: Add .max_stride() plane hook Date: Thu, 23 Aug 2018 17:52:33 +0300 Message-ID: <20180823145233.GG5565@intel.com> References: <20180719182214.4323-1-ville.syrjala@linux.intel.com> <20180719182214.4323-4-ville.syrjala@linux.intel.com> <3ee0b1cda71ce8a35be3b90c4abee81fa8b3782b.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0E33889DB0 for ; Thu, 23 Aug 2018 14:52:37 +0000 (UTC) Content-Disposition: inline In-Reply-To: <3ee0b1cda71ce8a35be3b90c4abee81fa8b3782b.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Souza, Jose" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBBdWcgMjIsIDIwMTggYXQgMTA6MDM6MTdQTSArMDAwMCwgU291emEsIEpvc2Ugd3Jv dGU6Cj4gT24gVGh1LCAyMDE4LTA3LTE5IGF0IDIxOjIxICswMzAwLCBWaWxsZSBTeXJqYWxhIHdy b3RlOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KPiA+IAo+ID4gRWFjaCBwbGFuZSBtYXkgaGF2ZSBkaWZmZXJlbnQgc3RyaWRlIGxpbWl0 YXRpb25zLiBMZXQncyBhZGQgYSBuZXcKPiA+IHBsYW5lIGZ1bmN0aW9uIHRvIHJldHV0biB0aGUg bWF4aW11bSBzdHJpZGUgZm9yIGVhY2ggcGxhbmUuIFRoZXJlJ3MKPiA+IGdvaW5nIHRvIGJlIHNv bWUgdXNlIGZvciB0aGlzIG91dHNpZGUgdGhlIC5hdG9taWNfY2hlY2soKSBzdHVmZiBoZW5jZQo+ ID4gdGhlIHNlcGFyYXRlIGhvb2suCj4gCj4gSSBqdXN0IG5vdCBjaGVja2VkIHRoZSB0aGUgc3Bl YyBmb3IgdGhlIFZMViBhbmQgQ0hWIG90aGVyIHRoYW4gdGhhdAo+IExHVE0gYnV0IGp1c3QgdGFr ZSBhIGxvb2sgdG8gdGhlIG5pdHBpY2sgYmVsbG93Ogo+IAo+IFJldmlld2VkLWJ5OiBKb3PDqSBS b2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4KPiAKPiA+IAo+ID4gU2lnbmVk LW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K PiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDQ2Cj4g PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAxMCArKysrKysrKwo+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Nwcml0ZS5jICB8IDM0ICsrKysrKysrKysrKysrKysrKysrKysrKy0tCj4g PiAgMyBmaWxlcyBjaGFuZ2VkLCA4OCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+ID4g Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4g PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gaW5kZXggNWY4MzA0 YTExNDgyLi5hMDllMTFlMDU5NmYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+ID4gQEAgLTMyMTAsNiArMzIxMCwzMSBAQCBpbnQgc2tsX2NoZWNrX3BsYW5lX3N1 cmZhY2UoY29uc3Qgc3RydWN0Cj4gPiBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4g IAlyZXR1cm4gMDsKPiA+ICB9Cj4gPiAgCj4gPiArdW5zaWduZWQgaW50Cj4gPiAraTl4eF9wbGFu ZV9tYXhfc3RyaWRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gPiArCQkgICAgICB1MzIg cGl4ZWxfZm9ybWF0LCB1NjQgbW9kaWZpZXIsCj4gPiArCQkgICAgICB1bnNpZ25lZCBpbnQgcm90 YXRpb24pCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Cj4gPiArCj4gPiArCWlmIChJTlRFTF9HRU4oZGV2X3By aXYpID49IDQpIHsKPiA+ICsJCWlmIChtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxF RCkKPiA+ICsJCQlyZXR1cm4gMTYqMTAyNDsKPiA+ICsJCWVsc2UKPiA+ICsJCQlyZXR1cm4gMzIq MTAyNDsKPiA+ICsJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDMpIHsKPiA+ICsJ CWlmIChtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCkKPiA+ICsJCQlyZXR1cm4g OCoxMDI0Owo+ID4gKwkJZWxzZQo+ID4gKwkJCXJldHVybiAxNioxMDI0Owo+ID4gKwl9IGVsc2Ug ewo+ID4gKwkJaWYgKHBsYW5lLT5pOXh4X3BsYW5lID09IFBMQU5FX0MpCj4gPiArCQkJcmV0dXJu IDQqMTAyNDsKPiA+ICsJCWVsc2UKPiA+ICsJCQlyZXR1cm4gOCoxMDI0Owo+ID4gKwl9Cj4gPiAr fQo+ID4gKwo+ID4gIHN0YXRpYyB1MzIgaTl4eF9wbGFuZV9jdGwoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiAgCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+ID4gIHsKPiA+IEBAIC05NjcyLDYgKzk2OTcsMTQgQEAg c3RhdGljIGludCBpbnRlbF9jaGVja19jdXJzb3Ioc3RydWN0Cj4gPiBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAo+ID4gIAlyZXR1cm4gMDsKPiA+ICB9Cj4gPiAgCj4gPiArc3RhdGljIHVu c2lnbmVkIGludAo+ID4gK2k4NDVfY3Vyc29yX21heF9zdHJpZGUoc3RydWN0IGludGVsX3BsYW5l ICpwbGFuZSwKPiA+ICsJCSAgICAgICB1MzIgcGl4ZWxfZm9ybWF0LCB1NjQgbW9kaWZpZXIsCj4g PiArCQkgICAgICAgdW5zaWduZWQgaW50IHJvdGF0aW9uKQo+ID4gK3sKPiA+ICsJcmV0dXJuIDIw NDg7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyB1MzIgaTg0NV9jdXJzb3JfY3RsKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4gPiAqY3J0Y19zdGF0ZSwKPiA+ICAJCQkgICBjb25zdCBz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+ID4gIHsKPiA+IEBAIC05ODA1 LDYgKzk4MzgsMTQgQEAgc3RhdGljIGJvb2wgaTg0NV9jdXJzb3JfZ2V0X2h3X3N0YXRlKHN0cnVj dAo+ID4gaW50ZWxfcGxhbmUgKnBsYW5lLAo+ID4gIAlyZXR1cm4gcmV0Owo+ID4gIH0KPiA+ICAK PiA+ICtzdGF0aWMgdW5zaWduZWQgaW50Cj4gPiAraTl4eF9jdXJzb3JfbWF4X3N0cmlkZShzdHJ1 Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+ID4gKwkJICAgICAgIHUzMiBwaXhlbF9mb3JtYXQsIHU2 NCBtb2RpZmllciwKPiA+ICsJCSAgICAgICB1bnNpZ25lZCBpbnQgcm90YXRpb24pCj4gPiArewo+ ID4gKwlyZXR1cm4gcGxhbmUtPmJhc2UuZGV2LT5tb2RlX2NvbmZpZy5jdXJzb3Jfd2lkdGggKiA0 Owo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgdTMyIGk5eHhfY3Vyc29yX2N0bChjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZQo+ID4gKmNydGNfc3RhdGUsCj4gPiAgCQkJICAgY29uc3Qgc3Ry dWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPiA+ICB7Cj4gPiBAQCAtMTM2OTks NiArMTM3NDAsNyBAQCBpbnRlbF9wcmltYXJ5X3BsYW5lX2NyZWF0ZShzdHJ1Y3QKPiA+IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSkKPiA+ICAJCWVsc2UKPiA+ICAJ CQltb2RpZmllcnMgPSBza2xfZm9ybWF0X21vZGlmaWVyc19ub2NjczsKPiA+ICAKPiA+ICsJCXBy aW1hcnktPm1heF9zdHJpZGUgPSBza2xfcGxhbmVfbWF4X3N0cmlkZTsKPiA+ICAJCXByaW1hcnkt PnVwZGF0ZV9wbGFuZSA9IHNrbF91cGRhdGVfcGxhbmU7Cj4gPiAgCQlwcmltYXJ5LT5kaXNhYmxl X3BsYW5lID0gc2tsX2Rpc2FibGVfcGxhbmU7Cj4gPiAgCQlwcmltYXJ5LT5nZXRfaHdfc3RhdGUg PSBza2xfcGxhbmVfZ2V0X2h3X3N0YXRlOwo+ID4gQEAgLTEzNzA5LDYgKzEzNzUxLDcgQEAgaW50 ZWxfcHJpbWFyeV9wbGFuZV9jcmVhdGUoc3RydWN0Cj4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgZW51bSBwaXBlIHBpcGUpCj4gPiAgCQludW1fZm9ybWF0cyA9IEFSUkFZX1NJWkUoaTk2 NV9wcmltYXJ5X2Zvcm1hdHMpOwo+ID4gIAkJbW9kaWZpZXJzID0gaTl4eF9mb3JtYXRfbW9kaWZp ZXJzOwo+ID4gIAo+ID4gKwkJcHJpbWFyeS0+bWF4X3N0cmlkZSA9IGk5eHhfcGxhbmVfbWF4X3N0 cmlkZTsKPiA+ICAJCXByaW1hcnktPnVwZGF0ZV9wbGFuZSA9IGk5eHhfdXBkYXRlX3BsYW5lOwo+ ID4gIAkJcHJpbWFyeS0+ZGlzYWJsZV9wbGFuZSA9IGk5eHhfZGlzYWJsZV9wbGFuZTsKPiA+ICAJ CXByaW1hcnktPmdldF9od19zdGF0ZSA9IGk5eHhfcGxhbmVfZ2V0X2h3X3N0YXRlOwo+ID4gQEAg LTEzNzE5LDYgKzEzNzYyLDcgQEAgaW50ZWxfcHJpbWFyeV9wbGFuZV9jcmVhdGUoc3RydWN0Cj4g PiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCj4gPiAgCQludW1f Zm9ybWF0cyA9IEFSUkFZX1NJWkUoaTh4eF9wcmltYXJ5X2Zvcm1hdHMpOwo+ID4gIAkJbW9kaWZp ZXJzID0gaTl4eF9mb3JtYXRfbW9kaWZpZXJzOwo+ID4gIAo+ID4gKwkJcHJpbWFyeS0+bWF4X3N0 cmlkZSA9IGk5eHhfcGxhbmVfbWF4X3N0cmlkZTsKPiA+ICAJCXByaW1hcnktPnVwZGF0ZV9wbGFu ZSA9IGk5eHhfdXBkYXRlX3BsYW5lOwo+ID4gIAkJcHJpbWFyeS0+ZGlzYWJsZV9wbGFuZSA9IGk5 eHhfZGlzYWJsZV9wbGFuZTsKPiA+ICAJCXByaW1hcnktPmdldF9od19zdGF0ZSA9IGk5eHhfcGxh bmVfZ2V0X2h3X3N0YXRlOwo+ID4gQEAgLTEzODI2LDExICsxMzg3MCwxMyBAQCBpbnRlbF9jdXJz b3JfcGxhbmVfY3JlYXRlKHN0cnVjdAo+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g PiAgCWN1cnNvci0+ZnJvbnRidWZmZXJfYml0ID0gSU5URUxfRlJPTlRCVUZGRVIocGlwZSwgY3Vy c29yLT5pZCk7Cj4gPiAgCj4gPiAgCWlmIChJU19JODQ1RyhkZXZfcHJpdikgfHwgSVNfSTg2NUco ZGV2X3ByaXYpKSB7Cj4gPiArCQljdXJzb3ItPm1heF9zdHJpZGUgPSBpODQ1X2N1cnNvcl9tYXhf c3RyaWRlOwo+ID4gIAkJY3Vyc29yLT51cGRhdGVfcGxhbmUgPSBpODQ1X3VwZGF0ZV9jdXJzb3I7 Cj4gPiAgCQljdXJzb3ItPmRpc2FibGVfcGxhbmUgPSBpODQ1X2Rpc2FibGVfY3Vyc29yOwo+ID4g IAkJY3Vyc29yLT5nZXRfaHdfc3RhdGUgPSBpODQ1X2N1cnNvcl9nZXRfaHdfc3RhdGU7Cj4gPiAg CQljdXJzb3ItPmNoZWNrX3BsYW5lID0gaTg0NV9jaGVja19jdXJzb3I7Cj4gPiAgCX0gZWxzZSB7 Cj4gPiArCQljdXJzb3ItPm1heF9zdHJpZGUgPSBpOXh4X2N1cnNvcl9tYXhfc3RyaWRlOwo+ID4g IAkJY3Vyc29yLT51cGRhdGVfcGxhbmUgPSBpOXh4X3VwZGF0ZV9jdXJzb3I7Cj4gPiAgCQljdXJz b3ItPmRpc2FibGVfcGxhbmUgPSBpOXh4X2Rpc2FibGVfY3Vyc29yOwo+ID4gIAkJY3Vyc29yLT5n ZXRfaHdfc3RhdGUgPSBpOXh4X2N1cnNvcl9nZXRfaHdfc3RhdGU7Cj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmgKPiA+IGluZGV4IGI5ZjZkZTNhOGY1My4uYWQyYmQ2MmVlNTUzIDEwMDY0 NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBAQCAtOTYzLDYgKzk2Myw5IEBAIHN0 cnVjdCBpbnRlbF9wbGFuZSB7Cj4gPiAgCSAqIHRoZSBpbnRlbF9wbGFuZV9zdGF0ZSBzdHJ1Y3R1 cmUgYW5kIGFjY2Vzc2VkIHZpYQo+ID4gcGxhbmVfc3RhdGUuCj4gPiAgCSAqLwo+ID4gIAo+ID4g Kwl1bnNpZ25lZCBpbnQgKCptYXhfc3RyaWRlKShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+ ID4gKwkJCQkgICB1MzIgcGl4ZWxfZm9ybWF0LCB1NjQgbW9kaWZpZXIsCj4gPiArCQkJCSAgIHVu c2lnbmVkIGludCByb3RhdGlvbik7Cj4gPiAgCXZvaWQgKCp1cGRhdGVfcGxhbmUpKHN0cnVjdCBp bnRlbF9wbGFuZSAqcGxhbmUsCj4gPiAgCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ICAJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9z dGF0ZQo+ID4gKnBsYW5lX3N0YXRlKTsKPiA+IEBAIC0xNjUyLDYgKzE2NTUsOSBAQCBpbnQgc2ts X2NoZWNrX3BsYW5lX3N1cmZhY2UoY29uc3Qgc3RydWN0Cj4gPiBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAo+ID4gIAkJCSAgICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0 YXRlKTsKPiA+ICBpbnQgaTl4eF9jaGVja19wbGFuZV9zdXJmYWNlKHN0cnVjdCBpbnRlbF9wbGFu ZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwo+ID4gIGludCBza2xfZm9ybWF0X3RvX2ZvdXJjYyhpbnQg Zm9ybWF0LCBib29sIHJnYl9vcmRlciwgYm9vbCBhbHBoYSk7Cj4gPiArdW5zaWduZWQgaW50IGk5 eHhfcGxhbmVfbWF4X3N0cmlkZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+ID4gKwkJCQkg ICB1MzIgcGl4ZWxfZm9ybWF0LCB1NjQgbW9kaWZpZXIsCj4gPiArCQkJCSAgIHVuc2lnbmVkIGlu dCByb3RhdGlvbik7Cj4gPiAgCj4gPiAgLyogaW50ZWxfY3NyLmMgKi8KPiA+ICB2b2lkIGludGVs X2Nzcl91Y29kZV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICopOwo+ID4gQEAgLTIxMDIs NiArMjEwOCwxMCBAQCBib29sIHNrbF9wbGFuZV9oYXNfY2NzKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlCj4gPiAqZGV2X3ByaXYsCj4gPiAgCQkgICAgICAgZW51bSBwaXBlIHBpcGUsIGVudW0gcGxh bmVfaWQgcGxhbmVfaWQpOwo+ID4gIGJvb2wgc2tsX3BsYW5lX2hhc19wbGFuYXIoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIAkJCSAgZW51bSBwaXBlIHBpcGUsIGVudW0g cGxhbmVfaWQgcGxhbmVfaWQpOwo+ID4gK3Vuc2lnbmVkIGludCBza2xfcGxhbmVfbWF4X3N0cmlk ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+ID4gKwkJCQkgIHUzMiBwaXhlbF9mb3JtYXQs IHU2NCBtb2RpZmllciwKPiA+ICsJCQkJICB1bnNpZ25lZCBpbnQgcm90YXRpb24pOwo+ID4gKwo+ ID4gIAo+ID4gIC8qIGludGVsX3R2LmMgKi8KPiA+ICB2b2lkIGludGVsX3R2X2luaXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9zcHJpdGUuYwo+ID4gaW5kZXggZjcwMjZlODg3ZmE5Li5lMzU3NjA4MTRmMjUgMTAwNjQ0Cj4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiA+IEBAIC0yMjgsNiArMjI4LDIzIEBA IHZvaWQgaW50ZWxfcGlwZV91cGRhdGVfZW5kKHN0cnVjdAo+ID4gaW50ZWxfY3J0Y19zdGF0ZSAq bmV3X2NydGNfc3RhdGUpCj4gPiAgI2VuZGlmCj4gPiAgfQo+ID4gIAo+ID4gK3Vuc2lnbmVkIGlu dAo+ID4gK3NrbF9wbGFuZV9tYXhfc3RyaWRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4g PiArCQkgICAgIHUzMiBwaXhlbF9mb3JtYXQsIHU2NCBtb2RpZmllciwKPiA+ICsJCSAgICAgdW5z aWduZWQgaW50IHJvdGF0aW9uKQo+ID4gK3sKPiA+ICsJaW50IGNwcCA9IGRybV9mb3JtYXRfcGxh bmVfY3BwKHBpeGVsX2Zvcm1hdCwgMCk7Cj4gPiArCj4gPiArCS8qCj4gPiArCSAqICJUaGUgc3Ry aWRlIGluIGJ5dGVzIG11c3Qgbm90IGV4Y2VlZCB0aGUKPiA+ICsJICogb2YgdGhlIHNpemUgb2Yg OEsgcGl4ZWxzIGFuZCAzMksgYnl0ZXMuIgo+ID4gKwkgKi8KPiA+ICsJaWYgKGRybV9yb3RhdGlv bl85MF9vcl8yNzAocm90YXRpb24pKQo+ID4gKwkJcmV0dXJuIG1pbig4MTkyLCAzMjc2OCAvIGNw cCk7Cj4gPiArCWVsc2UKPiA+ICsJCXJldHVybiBtaW4oODE5MiAqIGNwcCwgMzI3NjgpOwo+ID4g K30KPiA+ICsKPiA+ICB2b2lkCj4gPiAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxh bmUgKnBsYW5lLAo+ID4gIAkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAo+ID4gQEAgLTc5OCw2ICs4MTUsMTQgQEAgaXZiX3BsYW5lX2dldF9od19zdGF0ZShzdHJ1 Y3QgaW50ZWxfcGxhbmUKPiA+ICpwbGFuZSwKPiA+ICAJcmV0dXJuIHJldDsKPiA+ICB9Cj4gPiAg Cj4gPiArc3RhdGljIHVuc2lnbmVkIGludAo+ID4gK2c0eF9zcHJpdGVfbWF4X3N0cmlkZShzdHJ1 Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+ID4gKwkJICAgICAgdTMyIHBpeGVsX2Zvcm1hdCwgdTY0 IG1vZGlmaWVyLAo+ID4gKwkJICAgICAgdW5zaWduZWQgaW50IHJvdGF0aW9uKQo+ID4gK3sKPiA+ ICsJcmV0dXJuIDE2Mzg0Owo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgdTMyIGc0eF9zcHJpdGVf Y3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4gIAkJCSAg Y29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPiA+ICB7Cj4gPiBA QCAtOTY0LDcgKzk4OSw2IEBAIGludGVsX2NoZWNrX3Nwcml0ZV9wbGFuZShzdHJ1Y3QgaW50ZWxf cGxhbmUKPiA+ICpwbGFuZSwKPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwo+ID4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiA+ICAJc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqZmIgPSBzdGF0ZS0+YmFzZS5mYjsKPiA+IC0JaW50IG1heF9zdHJpZGUg PSBJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkgPyAzMjc2OCA6IDE2Mzg0Owo+IAo+IFdoeSBub3Qg a2VlcCBtYXhfc3RyaWRlIGFuZCBjYWxsIHBsYW5lLT5tYXhfc3RyaWRlKCkgaGVyZSBvciBpbiBh IGxpbmUKPiBiZWxsb3csIHRoaXMgd291bGQgbWFrZSBsZXNzIGNoYW5nZXMgYSBlYXNpZXIgJ2lm JyB0byByZWFkIGFuZCBmaXggdGhlCj4gbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMgd2FybmluZy4K CkkgZ3Vlc3Mgd2UgY291bGQgZG8gdGhhdC4gQWx0aG91Z2ggdGhpcyBjb2RlIGlzIGdvaW5nIGF3 YXkgbGF0ZXIKYW55d2F5IHNvIGRvZXNuJ3QgbWF0dGVyIHRvbyBtdWNoLgoKPiAKPiA+ICAJaW50 IG1heF9zY2FsZSwgbWluX3NjYWxlOwo+ID4gIAlib29sIGNhbl9zY2FsZTsKPiA+ICAJaW50IHJl dDsKPiA+IEBAIC05ODIsNyArMTAwNiw5IEBAIGludGVsX2NoZWNrX3Nwcml0ZV9wbGFuZShzdHJ1 Y3QgaW50ZWxfcGxhbmUKPiA+ICpwbGFuZSwKPiA+ICAJfQo+ID4gIAo+ID4gIAkvKiBGSVhNRSBj aGVjayBhbGwgZ2VuIGxpbWl0cyAqLwo+ID4gLQlpZiAoZmItPndpZHRoIDwgMyB8fCBmYi0+aGVp Z2h0IDwgMyB8fCBmYi0+cGl0Y2hlc1swXSA+Cj4gPiBtYXhfc3RyaWRlKSB7Cj4gPiArCWlmIChm Yi0+d2lkdGggPCAzIHx8IGZiLT5oZWlnaHQgPCAzIHx8Cj4gPiArCSAgICBmYi0+cGl0Y2hlc1sw XSA+IHBsYW5lLT5tYXhfc3RyaWRlKHBsYW5lLCBmYi0+Zm9ybWF0LQo+ID4gPmZvcm1hdCwKPiA+ ICsJCQkJCSAgICAgICBmYi0+bW9kaWZpZXIsCj4gPiBEUk1fTU9ERV9ST1RBVEVfMCkpIHsKPiA+ ICAJCURSTV9ERUJVR19LTVMoIlVuc3VpdGFibGUgZnJhbWVidWZmZXIgZm9yIHBsYW5lXG4iKTsK PiA+ICAJCXJldHVybiAtRUlOVkFMOwo+ID4gIAl9Cj4gPiBAQCAtMTUyOCw2ICsxNTU0LDcgQEAg aW50ZWxfc3ByaXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3QKPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+ID4gIAkJaW50ZWxfcGxhbmUtPmhhc19jY3MgPSBza2xfcGxhbmVfaGFzX2Njcyhk ZXZfcHJpdiwKPiA+IHBpcGUsCj4gPiAgCQkJCQkJCSBQTEFORV9TUFJJVEUwCj4gPiArIHBsYW5l KTsKPiA+ICAKPiA+ICsJCWludGVsX3BsYW5lLT5tYXhfc3RyaWRlID0gc2tsX3BsYW5lX21heF9z dHJpZGU7Cj4gPiAgCQlpbnRlbF9wbGFuZS0+dXBkYXRlX3BsYW5lID0gc2tsX3VwZGF0ZV9wbGFu ZTsKPiA+ICAJCWludGVsX3BsYW5lLT5kaXNhYmxlX3BsYW5lID0gc2tsX2Rpc2FibGVfcGxhbmU7 Cj4gPiAgCQlpbnRlbF9wbGFuZS0+Z2V0X2h3X3N0YXRlID0gc2tsX3BsYW5lX2dldF9od19zdGF0 ZTsKPiA+IEBAIC0xNTUxLDYgKzE1NzgsNyBAQCBpbnRlbF9zcHJpdGVfcGxhbmVfY3JlYXRlKHN0 cnVjdAo+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCQlpbnRlbF9wbGFuZS0+ Y2FuX3NjYWxlID0gZmFsc2U7Cj4gPiAgCQlpbnRlbF9wbGFuZS0+bWF4X2Rvd25zY2FsZSA9IDE7 Cj4gPiAgCj4gPiArCQlpbnRlbF9wbGFuZS0+bWF4X3N0cmlkZSA9IGk5eHhfcGxhbmVfbWF4X3N0 cmlkZTsKPiA+ICAJCWludGVsX3BsYW5lLT51cGRhdGVfcGxhbmUgPSB2bHZfdXBkYXRlX3BsYW5l Owo+ID4gIAkJaW50ZWxfcGxhbmUtPmRpc2FibGVfcGxhbmUgPSB2bHZfZGlzYWJsZV9wbGFuZTsK PiA+ICAJCWludGVsX3BsYW5lLT5nZXRfaHdfc3RhdGUgPSB2bHZfcGxhbmVfZ2V0X2h3X3N0YXRl Owo+ID4gQEAgLTE1NjksNiArMTU5Nyw3IEBAIGludGVsX3Nwcml0ZV9wbGFuZV9jcmVhdGUoc3Ry dWN0Cj4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAJCQlpbnRlbF9wbGFuZS0+ bWF4X2Rvd25zY2FsZSA9IDE7Cj4gPiAgCQl9Cj4gPiAgCj4gPiArCQlpbnRlbF9wbGFuZS0+bWF4 X3N0cmlkZSA9IGc0eF9zcHJpdGVfbWF4X3N0cmlkZTsKPiA+ICAJCWludGVsX3BsYW5lLT51cGRh dGVfcGxhbmUgPSBpdmJfdXBkYXRlX3BsYW5lOwo+ID4gIAkJaW50ZWxfcGxhbmUtPmRpc2FibGVf cGxhbmUgPSBpdmJfZGlzYWJsZV9wbGFuZTsKPiA+ICAJCWludGVsX3BsYW5lLT5nZXRfaHdfc3Rh dGUgPSBpdmJfcGxhbmVfZ2V0X2h3X3N0YXRlOwo+ID4gQEAgLTE1ODIsNiArMTYxMSw3IEBAIGlu dGVsX3Nwcml0ZV9wbGFuZV9jcmVhdGUoc3RydWN0Cj4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiA+ICAJCWludGVsX3BsYW5lLT5jYW5fc2NhbGUgPSB0cnVlOwo+ID4gIAkJaW50ZWxf cGxhbmUtPm1heF9kb3duc2NhbGUgPSAxNjsKPiA+ICAKPiA+ICsJCWludGVsX3BsYW5lLT5tYXhf c3RyaWRlID0gZzR4X3Nwcml0ZV9tYXhfc3RyaWRlOwo+ID4gIAkJaW50ZWxfcGxhbmUtPnVwZGF0 ZV9wbGFuZSA9IGc0eF91cGRhdGVfcGxhbmU7Cj4gPiAgCQlpbnRlbF9wbGFuZS0+ZGlzYWJsZV9w bGFuZSA9IGc0eF9kaXNhYmxlX3BsYW5lOwo+ID4gIAkJaW50ZWxfcGxhbmUtPmdldF9od19zdGF0 ZSA9IGc0eF9wbGFuZV9nZXRfaHdfc3RhdGU7CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=