From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 3/9] drm/i915/ringbuffer: Pull the render flush into breadcrumb emission Date: Fri, 28 Dec 2018 14:03:26 +0200 Message-ID: <87a7kp6epd.fsf@gaia.fi.intel.com> References: <20181219145747.19835-1-chris@chris-wilson.co.uk> <20181219145747.19835-3-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8AA886E4CB for ; Fri, 28 Dec 2018 12:04:57 +0000 (UTC) In-Reply-To: <20181219145747.19835-3-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gSW4gcHJl cGFyYXRpb24gZm9yIHJlbW92aW5nIHRoZSBtYW51YWwgRU1JVF9GTFVTSCBwcmlvciB0byBlbWl0 dGluZyB0aGUKPiBicmVhZGNydW1iIGltcGxlbWVudCB0aGUgZmx1c2ggaW5saW5lIHdpdGggd3Jp dGluZyB0aGUgYnJlYWRjcnVtYiBmb3IKPiByaW5nYnVmZmVyIGVtaXNzaW9uLgo+Cj4gV2l0aCBh IGNvbWJpbmVkIGZsdXNoK2JyZWFkY3J1bWIsIHdlIGNhbiB1c2UgYSBzaW5nbGUgb3BlcmF0aW9u IHRvIGJvdGgKPiBmbHVzaCBhbmQgYWZ0ZXIgdGhlIGZsdXNoIGlzIGNvbXBsZXRlIChwb3N0LXN5 bmMpIHdyaXRlIHRoZSBicmVhZGNydW1iLgo+IFRoaXMgZ2l2ZXMgdXMgYSBzdHJvbmdseSBvcmRl cmVkIG9wZXJhdGlvbiB0aGF0IHNob3VsZCBiZSBzdWZmaWNpZW50IHRvCj4gc2VyaWFsaXNlIHRo ZSB3cml0ZSBiZWZvcmUgd2UgZW1pdCB0aGUgaW50ZXJydXB0OyBhbmQgdGhlcmVmb3JlIHdlIG1h eQo+IHRha2UgdGhlIG9wcG9ydHVuaXR5IHRvIHJlbW92ZSB0aGUgaXJxX3NlcW5vX2JhcnJpZXIg dy9hIGZvciBnZW42Ky4KPiBBbHRob3VnaCB1c2luZyB0aGUgUElQRUNPTlRST0wgdG8gd3JpdGUg dGhlIGJyZWFkY3J1bWIgaXMgc2xvd2VyIHRoYW4KPiBNSV9TVE9SRV9EV09SRF9JTU0sIGJ5IGNv bWJpbmluZyB0aGUgb3BlcmF0aW9ucyBpbnRvIG9uZSBhbmQgcmVtb3ZpbmcgdGhlCj4gZXh0cmEg Zmx1c2ggKG5leHQgcGF0Y2gpIGl0IGlzIGZhc3Rlcgo+Cj4gRm9yIGdlbjItNSwgd2Ugc2ltcGx5 IGNvbWJpbmUgdGhlIE1JX0ZMVVNIIGludG8gdGhlIGJyZWFkY3J1bWIgZW1pc3Npb24sCj4gdGhv dWdoIG1heWJlIHdlIGNvdWxkIGZpbmQgYSBzb2x1dGlvbiBoZXJlIHRvIHRoZSBzZXFuby12cy1p bnRlcnJ1cHQKPiBpc3N1ZSBvbiBJcm9ubGFrZSBieSBtaXhpbmcgdXAgdGhlIGZsdXNoPyBUaGUg YW5zd2VyIGlzIG5vLCBhZGRpbmcgYW4KPiBNSV9GTFVTSCBiZWZvcmUgdGhlIGludGVycnVwdCBp cyBpbnN1ZmZpY2llbnQuCj4KPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNo cmlzLXdpbHNvbi5jby51az4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5jIHwgMTA0ICsrKysrKysrKysrKysrKysrKysrKystLQo+ICAxIGZpbGUgY2hhbmdl ZCwgOTcgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBpbmRleCBkNWE5ZWRiY2YxYmUuLjE2OWM1NDk5NWNhOSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBAQCAtMjE3LDcg KzIxNyw3IEBAIGdlbjRfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEs IHUzMiBtb2RlKQo+ICAgKiByZWFsbHkgb3VyIGJ1c2luZXNzLiAgVGhhdCBsZWF2ZXMgb25seSBz dGFsbCBhdCBzY29yZWJvYXJkLgo+ICAgKi8KPiAgc3RhdGljIGludAo+IC1pbnRlbF9lbWl0X3Bv c3Rfc3luY19ub256ZXJvX2ZsdXNoKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ICtnZW42X2Vt aXRfcG9zdF9zeW5jX25vbnplcm9fZmx1c2goc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCj4gIHsK PiAgCXUzMiBzY3JhdGNoX2FkZHIgPSBpOTE1X3NjcmF0Y2hfb2Zmc2V0KHJxLT5pOTE1KSArIDIg KiBDQUNIRUxJTkVfQllURVM7Cj4gIAl1MzIgKmNzOwo+IEBAIC0yNTcsNyArMjU3LDcgQEAgZ2Vu Nl9yZW5kZXJfcmluZ19mbHVzaChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyIG1vZGUpCj4g IAlpbnQgcmV0Owo+ICAKPiAgCS8qIEZvcmNlIFNOQiB3b3JrYXJvdW5kcyBmb3IgUElQRV9DT05U Uk9MIGZsdXNoZXMgKi8KPiAtCXJldCA9IGludGVsX2VtaXRfcG9zdF9zeW5jX25vbnplcm9fZmx1 c2gocnEpOwo+ICsJcmV0ID0gZ2VuNl9lbWl0X3Bvc3Rfc3luY19ub256ZXJvX2ZsdXNoKHJxKTsK PiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gQEAgLTMwMCw2ICszMDAsMzcgQEAg Z2VuNl9yZW5kZXJfcmluZ19mbHVzaChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyIG1vZGUp Cj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgZ2VuNl9yY3NfZW1pdF9icmVh ZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIgKmNzKQo+ICt7Cj4gKwkvKiBGaXJz dCB3ZSBkbyB0aGUgZ2VuNl9lbWl0X3Bvc3Rfc3luY19ub256ZXJvX2ZsdXNoIHcvYSAqLwo+ICsJ KmNzKysgPSBHRlhfT1BfUElQRV9DT05UUk9MKDQpOwo+ICsJKmNzKysgPSBQSVBFX0NPTlRST0xf Q1NfU1RBTEwgfCBQSVBFX0NPTlRST0xfU1RBTExfQVRfU0NPUkVCT0FSRDsKPiArCSpjcysrID0g MDsKPiArCSpjcysrID0gMDsKPiArCj4gKwkqY3MrKyA9IEdGWF9PUF9QSVBFX0NPTlRST0woNCk7 Cj4gKwkqY3MrKyA9IFBJUEVfQ09OVFJPTF9RV19XUklURTsKPiArCSpjcysrID0gaTkxNV9zY3Jh dGNoX29mZnNldChycS0+aTkxNSkgfCBQSVBFX0NPTlRST0xfR0xPQkFMX0dUVDsKPiArCSpjcysr ID0gMDsKPiArCj4gKwkvKiBGaW5hbGx5IHdlIGNhbiBmbHVzaCBhbmQgd2l0aCBpdCBlbWl0IHRo ZSBicmVhZGNydW1iICovCj4gKwkqY3MrKyA9IEdGWF9PUF9QSVBFX0NPTlRST0woNCk7Cj4gKwkq Y3MrKyA9IChQSVBFX0NPTlRST0xfUkVOREVSX1RBUkdFVF9DQUNIRV9GTFVTSCB8Cj4gKwkJIFBJ UEVfQ09OVFJPTF9ERVBUSF9DQUNIRV9GTFVTSCB8Cj4gKwkJIFBJUEVfQ09OVFJPTF9EQ19GTFVT SF9FTkFCTEUgfAo+ICsJCSBQSVBFX0NPTlRST0xfUVdfV1JJVEUgfAo+ICsJCSBQSVBFX0NPTlRS T0xfQ1NfU1RBTEwpOwo+ICsJKmNzKysgPSBpbnRlbF9od3Nfc2Vxbm9fYWRkcmVzcyhycS0+ZW5n aW5lKSB8IFBJUEVfQ09OVFJPTF9HTE9CQUxfR1RUOwo+ICsJKmNzKysgPSBycS0+Z2xvYmFsX3Nl cW5vOwo+ICsKPiArCSpjcysrID0gTUlfVVNFUl9JTlRFUlJVUFQ7Cj4gKwkqY3MrKyA9IE1JX05P T1A7Cj4gKwo+ICsJcnEtPnRhaWwgPSBpbnRlbF9yaW5nX29mZnNldChycSwgY3MpOwo+ICsJYXNz ZXJ0X3JpbmdfdGFpbF92YWxpZChycS0+cmluZywgcnEtPnRhaWwpOwo+ICt9Cj4gK3N0YXRpYyBj b25zdCBpbnQgZ2VuNl9yY3NfZW1pdF9icmVhZGNydW1iX3N6ID0gMTQ7Cj4gKwo+ICBzdGF0aWMg aW50Cj4gIGdlbjdfcmVuZGVyX3JpbmdfY3Nfc3RhbGxfd2Eoc3RydWN0IGk5MTVfcmVxdWVzdCAq cnEpCj4gIHsKPiBAQCAtMzc5LDYgKzQxMCwzOSBAQCBnZW43X3JlbmRlcl9yaW5nX2ZsdXNoKHN0 cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIgbW9kZSkKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ ICtzdGF0aWMgdm9pZCBnZW43X3Jjc19lbWl0X2JyZWFkY3J1bWIoc3RydWN0IGk5MTVfcmVxdWVz dCAqcnEsIHUzMiAqY3MpCj4gK3sKPiArCSpjcysrID0gR0ZYX09QX1BJUEVfQ09OVFJPTCg0KTsK PiArCSpjcysrID0gKFBJUEVfQ09OVFJPTF9SRU5ERVJfVEFSR0VUX0NBQ0hFX0ZMVVNIIHwKPiAr CQkgUElQRV9DT05UUk9MX0RFUFRIX0NBQ0hFX0ZMVVNIIHwKPiArCQkgUElQRV9DT05UUk9MX0RD X0ZMVVNIX0VOQUJMRSB8Cj4gKwkJIFBJUEVfQ09OVFJPTF9GTFVTSF9FTkFCTEUgfAo+ICsJCSBQ SVBFX0NPTlRST0xfUVdfV1JJVEUgfAo+ICsJCSBQSVBFX0NPTlRST0xfR0xPQkFMX0dUVF9JVkIg fAo+ICsJCSBQSVBFX0NPTlRST0xfQ1NfU1RBTEwpOwoKVGhlcmUgaXMgYSBmYWludCBzY2VudCBv ZiBlbmdpbmUtPmZsdXNoX2ZsYWdzIGluIHRoZSBhaXIgYnV0CkkgdGhpbmsgeW91IGZhdm91ciBv cGVuY29kaW5nIGV2ZXJ5dGhpbmcgYmVoaW5kIHRoZXNlCmluZGlyZWN0IGNhbGxzLgoKQnV0IHdl IGNhbiB0YWtlIGEgc2Vjb25kIGxvb2sgbGF0ZXIsIHdpdGggZ2VuMTEgZmx1c2gKaW1wcm92ZW1l bnRzLgoKUmV2aWV3ZWQtYnk6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAbGludXguaW50 ZWwuY29tPgoKPiArCSpjcysrID0gaW50ZWxfaHdzX3NlcW5vX2FkZHJlc3MocnEtPmVuZ2luZSk7 Cj4gKwkqY3MrKyA9IHJxLT5nbG9iYWxfc2Vxbm87Cj4gKwo+ICsJKmNzKysgPSBNSV9VU0VSX0lO VEVSUlVQVDsKPiArCSpjcysrID0gTUlfTk9PUDsKPiArCj4gKwlycS0+dGFpbCA9IGludGVsX3Jp bmdfb2Zmc2V0KHJxLCBjcyk7Cj4gKwlhc3NlcnRfcmluZ190YWlsX3ZhbGlkKHJxLT5yaW5nLCBy cS0+dGFpbCk7Cj4gK30KPiArc3RhdGljIGNvbnN0IGludCBnZW43X3Jjc19lbWl0X2JyZWFkY3J1 bWJfc3ogPSA2Owo+ICsKPiArc3RhdGljIHZvaWQgZ2VuNl94Y3NfZW1pdF9icmVhZGNydW1iKHN0 cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIgKmNzKQo+ICt7Cj4gKwkqY3MrKyA9IE1JX0ZMVVNI X0RXIHwgTUlfRkxVU0hfRFdfT1BfU1RPUkVEVzsKPiArCSpjcysrID0gaW50ZWxfaHdzX3NlcW5v X2FkZHJlc3MocnEtPmVuZ2luZSkgfCBNSV9GTFVTSF9EV19VU0VfR1RUOwo+ICsJKmNzKysgPSBy cS0+Z2xvYmFsX3NlcW5vOwo+ICsJKmNzKysgPSBNSV9VU0VSX0lOVEVSUlVQVDsKPiArCj4gKwly cS0+dGFpbCA9IGludGVsX3Jpbmdfb2Zmc2V0KHJxLCBjcyk7Cj4gKwlhc3NlcnRfcmluZ190YWls X3ZhbGlkKHJxLT5yaW5nLCBycS0+dGFpbCk7Cj4gK30KPiArc3RhdGljIGNvbnN0IGludCBnZW42 X3hjc19lbWl0X2JyZWFkY3J1bWJfc3ogPSA0Owo+ICsKPiAgc3RhdGljIHZvaWQgc2V0X2h3c3Rh bShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiBtYXNrKQo+ICB7Cj4gIAkvKgo+ IEBAIC03NzcsMTYgKzg0MSwyMCBAQCBzdGF0aWMgdm9pZCBpOXh4X3N1Ym1pdF9yZXF1ZXN0KHN0 cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCj4gIAo+ICBzdGF0aWMgdm9pZCBpOXh4X2VtaXRf YnJlYWRjcnVtYihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyICpjcykKPiAgewo+ICsJKmNz KysgPSBNSV9GTFVTSDsKPiArCj4gIAkqY3MrKyA9IE1JX1NUT1JFX0RXT1JEX0lOREVYOwo+ICAJ KmNzKysgPSBJOTE1X0dFTV9IV1NfSU5ERVggPDwgTUlfU1RPUkVfRFdPUkRfSU5ERVhfU0hJRlQ7 Cj4gIAkqY3MrKyA9IHJxLT5nbG9iYWxfc2Vxbm87Cj4gKwo+ICAJKmNzKysgPSBNSV9VU0VSX0lO VEVSUlVQVDsKPiArCSpjcysrID0gTUlfTk9PUDsKPiAgCj4gIAlycS0+dGFpbCA9IGludGVsX3Jp bmdfb2Zmc2V0KHJxLCBjcyk7Cj4gIAlhc3NlcnRfcmluZ190YWlsX3ZhbGlkKHJxLT5yaW5nLCBy cS0+dGFpbCk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBjb25zdCBpbnQgaTl4eF9lbWl0X2JyZWFkY3J1 bWJfc3ogPSA0Owo+ICtzdGF0aWMgY29uc3QgaW50IGk5eHhfZW1pdF9icmVhZGNydW1iX3N6ID0g NjsKPiAgCj4gIHN0YXRpYyB2b2lkCj4gIGdlbjVfc2Vxbm9fYmFycmllcihzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCj4gQEAgLTIwNTAsNyArMjExOCw2IEBAIHN0YXRpYyB2b2lkIGlu dGVsX3JpbmdfaW5pdF9pcnEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJ aWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNikgewo+ICAJCWVuZ2luZS0+aXJxX2VuYWJsZSA9 IGdlbjZfaXJxX2VuYWJsZTsKPiAgCQllbmdpbmUtPmlycV9kaXNhYmxlID0gZ2VuNl9pcnFfZGlz YWJsZTsKPiAtCQllbmdpbmUtPmlycV9zZXFub19iYXJyaWVyID0gZ2VuNl9zZXFub19iYXJyaWVy Owo+ICAJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDUpIHsKPiAgCQllbmdpbmUt PmlycV9lbmFibGUgPSBnZW41X2lycV9lbmFibGU7Cj4gIAkJZW5naW5lLT5pcnFfZGlzYWJsZSA9 IGdlbjVfaXJxX2Rpc2FibGU7Cj4gQEAgLTIxMjIsMTEgKzIxODksMTggQEAgaW50IGludGVsX2lu aXRfcmVuZGVyX3JpbmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAg Cj4gIAllbmdpbmUtPmlycV9lbmFibGVfbWFzayA9IEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVDsK PiAgCj4gLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA2KSB7Cj4gKwlpZiAoSU5URUxfR0VO KGRldl9wcml2KSA+PSA3KSB7Cj4gIAkJZW5naW5lLT5pbml0X2NvbnRleHQgPSBpbnRlbF9yY3Nf Y3R4X2luaXQ7Cj4gIAkJZW5naW5lLT5lbWl0X2ZsdXNoID0gZ2VuN19yZW5kZXJfcmluZ19mbHVz aDsKPiAtCQlpZiAoSVNfR0VOKGRldl9wcml2LCA2KSkKPiAtCQkJZW5naW5lLT5lbWl0X2ZsdXNo ID0gZ2VuNl9yZW5kZXJfcmluZ19mbHVzaDsKPiArCQllbmdpbmUtPmVtaXRfYnJlYWRjcnVtYiA9 IGdlbjdfcmNzX2VtaXRfYnJlYWRjcnVtYjsKPiArCQllbmdpbmUtPmVtaXRfYnJlYWRjcnVtYl9z eiA9IGdlbjdfcmNzX2VtaXRfYnJlYWRjcnVtYl9zejsKPiArCQllbmdpbmUtPmlycV9zZXFub19i YXJyaWVyID0gZ2VuNl9zZXFub19iYXJyaWVyOwo+ICsJfSBlbHNlIGlmIChJU19HRU4oZGV2X3By aXYsIDYpKSB7Cj4gKwkJZW5naW5lLT5pbml0X2NvbnRleHQgPSBpbnRlbF9yY3NfY3R4X2luaXQ7 Cj4gKwkJZW5naW5lLT5lbWl0X2ZsdXNoID0gZ2VuNl9yZW5kZXJfcmluZ19mbHVzaDsKPiArCQll bmdpbmUtPmVtaXRfYnJlYWRjcnVtYiA9IGdlbjZfcmNzX2VtaXRfYnJlYWRjcnVtYjsKPiArCQll bmdpbmUtPmVtaXRfYnJlYWRjcnVtYl9zeiA9IGdlbjZfcmNzX2VtaXRfYnJlYWRjcnVtYl9zejsK PiArCQllbmdpbmUtPmlycV9zZXFub19iYXJyaWVyID0gZ2VuNl9zZXFub19iYXJyaWVyOwo+ICAJ fSBlbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDUpKSB7Cj4gIAkJZW5naW5lLT5lbWl0X2ZsdXNo ID0gZ2VuNF9yZW5kZXJfcmluZ19mbHVzaDsKPiAgCX0gZWxzZSB7Cj4gQEAgLTIxNjEsNiArMjIz NSwxMCBAQCBpbnQgaW50ZWxfaW5pdF9ic2RfcmluZ19idWZmZXIoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQo+ICAJCQllbmdpbmUtPnNldF9kZWZhdWx0X3N1Ym1pc3Npb24gPSBnZW42 X2JzZF9zZXRfZGVmYXVsdF9zdWJtaXNzaW9uOwo+ICAJCWVuZ2luZS0+ZW1pdF9mbHVzaCA9IGdl bjZfYnNkX3JpbmdfZmx1c2g7Cj4gIAkJZW5naW5lLT5pcnFfZW5hYmxlX21hc2sgPSBHVF9CU0Rf VVNFUl9JTlRFUlJVUFQ7Cj4gKwo+ICsJCWVuZ2luZS0+ZW1pdF9icmVhZGNydW1iID0gZ2VuNl94 Y3NfZW1pdF9icmVhZGNydW1iOwo+ICsJCWVuZ2luZS0+ZW1pdF9icmVhZGNydW1iX3N6ID0gZ2Vu Nl94Y3NfZW1pdF9icmVhZGNydW1iX3N6Owo+ICsJCWVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIg PSBnZW42X3NlcW5vX2JhcnJpZXI7Cj4gIAl9IGVsc2Ugewo+ICAJCWVuZ2luZS0+ZW1pdF9mbHVz aCA9IGJzZF9yaW5nX2ZsdXNoOwo+ICAJCWlmIChJU19HRU4oZGV2X3ByaXYsIDUpKQo+IEBAIC0y MTc2LDExICsyMjU0LDE3IEBAIGludCBpbnRlbF9pbml0X2JsdF9yaW5nX2J1ZmZlcihzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKPiAgCj4gKwlHRU1fQlVHX09OKElOVEVMX0dFTihk ZXZfcHJpdikgPCA2KTsKPiArCj4gIAlpbnRlbF9yaW5nX2RlZmF1bHRfdmZ1bmNzKGRldl9wcml2 LCBlbmdpbmUpOwo+ICAKPiAgCWVuZ2luZS0+ZW1pdF9mbHVzaCA9IGdlbjZfcmluZ19mbHVzaDsK PiAgCWVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrID0gR1RfQkxUX1VTRVJfSU5URVJSVVBUOwo+ICAK PiArCWVuZ2luZS0+ZW1pdF9icmVhZGNydW1iID0gZ2VuNl94Y3NfZW1pdF9icmVhZGNydW1iOwo+ ICsJZW5naW5lLT5lbWl0X2JyZWFkY3J1bWJfc3ogPSBnZW42X3hjc19lbWl0X2JyZWFkY3J1bWJf c3o7Cj4gKwllbmdpbmUtPmlycV9zZXFub19iYXJyaWVyID0gZ2VuNl9zZXFub19iYXJyaWVyOwo+ ICsKPiAgCXJldHVybiBpbnRlbF9pbml0X3JpbmdfYnVmZmVyKGVuZ2luZSk7Cj4gIH0KPiAgCj4g QEAgLTIxODgsNiArMjI3Miw4IEBAIGludCBpbnRlbF9pbml0X3ZlYm94X3JpbmdfYnVmZmVyKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1Owo+ICAKPiArCUdFTV9CVUdfT04oSU5URUxf R0VOKGRldl9wcml2KSA8IDcpOwo+ICsKPiAgCWludGVsX3JpbmdfZGVmYXVsdF92ZnVuY3MoZGV2 X3ByaXYsIGVuZ2luZSk7Cj4gIAo+ICAJZW5naW5lLT5lbWl0X2ZsdXNoID0gZ2VuNl9yaW5nX2Zs dXNoOwo+IEBAIC0yMTk1LDUgKzIyODEsOSBAQCBpbnQgaW50ZWxfaW5pdF92ZWJveF9yaW5nX2J1 ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIAllbmdpbmUtPmlycV9lbmFi bGUgPSBoc3dfdmVib3hfaXJxX2VuYWJsZTsKPiAgCWVuZ2luZS0+aXJxX2Rpc2FibGUgPSBoc3df dmVib3hfaXJxX2Rpc2FibGU7Cj4gIAo+ICsJZW5naW5lLT5lbWl0X2JyZWFkY3J1bWIgPSBnZW42 X3hjc19lbWl0X2JyZWFkY3J1bWI7Cj4gKwllbmdpbmUtPmVtaXRfYnJlYWRjcnVtYl9zeiA9IGdl bjZfeGNzX2VtaXRfYnJlYWRjcnVtYl9zejsKPiArCWVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIg PSBnZW42X3NlcW5vX2JhcnJpZXI7Cj4gKwo+ICAJcmV0dXJuIGludGVsX2luaXRfcmluZ19idWZm ZXIoZW5naW5lKTsKPiAgfQo+IC0tIAo+IDIuMjAuMApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK