From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesse Barnes Subject: Re: [PATCH 5/7] drm/i915: Make sprite updates atomic Date: Thu, 12 Dec 2013 13:04:50 -0800 Message-ID: <20131212130450.3902d042@jbarnes-desktop> References: <1382039599-31605-1-git-send-email-ville.syrjala@linux.intel.com> <1382039599-31605-6-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from alt-proxy16.mail.unifiedlayer.com (alt-proxy16.mail.unifiedlayer.com [70.40.197.35]) by gabe.freedesktop.org (Postfix) with SMTP id 6DB8CFA5DA for ; Thu, 12 Dec 2013 13:03:05 -0800 (PST) In-Reply-To: <1382039599-31605-6-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: ville.syrjala@linux.intel.com Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAxNyBPY3QgMjAxMyAyMjo1MzoxNyArMDMwMAp2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbSB3cm90ZToKCj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KPiAKPiBBZGQgYSBtZWNoYW5pc20gYnkgd2hpY2ggd2UgY2FuIGV2YWRl IHRoZSBsZWFkaW5nIGVkZ2Ugb2YgdmJsYW5rLiBUaGlzCj4gZ3VhcmFudGVlcyB0aGF0IG5vIHR3 byBzcHJpdGUgcmVnaXN0ZXIgd3JpdGVzIHdpbGwgc3RyYWRkbGUgb24gZWl0aGVyCj4gc2lkZSBv ZiB0aGUgdmJsYW5rIHN0YXJ0LCBhbmQgdGhhdCBtZWFucyBhbGwgdGhlIHdyaXRlcyB3aWxsIGJl IGxhdGNoZWQKPiB0b2dldGhlciBpbiBvbmUgYXRvbWljIG9wZXJhdGlvbi4KPiAKPiBXZSBkbyB0 aGUgdmJsYW5rIGV2YWRlIGJ5IGNoZWNraW5nIHRoZSBzY2FubGluZSBjb3VudGVyLCBhbmQgaWYg aXQncyB0b28KPiBjbG9zZSB0byB0aGUgc3RhcnQgb2YgdmJsYW5rICh0b28gY2xvc2UgaGFzIGJl ZW4gaGFyZGNvZGVkIHRvIDEwMHVzZWMKPiBmb3Igbm93KSwgd2Ugd2lsbCB3YWl0IGZvciB0aGUg dmJsYW5rIHN0YXJ0IHRvIHBhc3MuIEluIG9yZGVyIHRvCj4gZWxpbWluYXRlIHJhbmRvbSBkZWxh eWVzIGZyb20gdGhlIHJlc3Qgb2YgdGhlIHN5c3RlbSwgd2Ugb3BlcmF0ZSB3aXRoCj4gaW50ZXJy dXB0cyBkaXNhYmxlZCwgZXhjZXB0IHdoZW4gd2FpdGluZyBmb3IgdGhlIHZibGFuayBvYnZpb3Vz bHkuCj4gCj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAg ICAgIHwgMzQgKysrKysrKysrKysrKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jIHwgIDIgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAg fCAgMyArKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgfCA3MiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgNCBmaWxlcyBjaGFuZ2VkLCAxMDUg aW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMK PiBpbmRleCA0OWJjZjRlLi43NzZmZTJmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfaXJxLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4g QEAgLTEyNzEsNiArMTI3MSwxNSBAQCBzdGF0aWMgdm9pZCBnZW42X3Jwc19pcnFfaGFuZGxlcihz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBwbV9paXIpCj4gIAl9Cj4gIH0K PiAgCj4gK3N0YXRpYyB2b2lkIGludGVsX3BpcGVfaGFuZGxlX3ZibGFuayhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSkKPiArewo+ICsJc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMgPQo+ICsJCXRvX2ludGVsX2NydGMoaW50ZWxfZ2V0X2NydGNfZm9yX3BpcGUoZGV2 LCBwaXBlKSk7Cj4gKwo+ICsJaW50ZWxfY3J0Yy0+dmJsX3JlY2VpdmVkID0gdHJ1ZTsKPiArCXdh a2VfdXAoJmludGVsX2NydGMtPnZibF93YWl0KTsKPiArfQo+ICsKPiAgc3RhdGljIGlycXJldHVy bl90IHZhbGxleXZpZXdfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQo+ICB7Cj4gIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gKHN0cnVjdCBkcm1fZGV2aWNlICopIGFyZzsKPiBAQCAt MTMxMyw4ICsxMzIyLDEwIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB2YWxsZXl2aWV3X2lycV9oYW5k bGVyKGludCBpcnEsIHZvaWQgKmFyZykKPiAgCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZf cHJpdi0+aXJxX2xvY2ssIGlycWZsYWdzKTsKPiAgCj4gIAkJZm9yX2VhY2hfcGlwZShwaXBlKSB7 Cj4gLQkJCWlmIChwaXBlX3N0YXRzW3BpcGVdICYgUElQRV9WQkxBTktfSU5URVJSVVBUX1NUQVRV UykKPiArCQkJaWYgKHBpcGVfc3RhdHNbcGlwZV0gJiBQSVBFX1ZCTEFOS19JTlRFUlJVUFRfU1RB VFVTKSB7Cj4gIAkJCQlkcm1faGFuZGxlX3ZibGFuayhkZXYsIHBpcGUpOwo+ICsJCQkJaW50ZWxf cGlwZV9oYW5kbGVfdmJsYW5rKGRldiwgcGlwZSk7Cj4gKwkJCX0KPiAgCj4gIAkJCWlmIChwaXBl X3N0YXRzW3BpcGVdICYgUExBTkVfRkxJUERPTkVfSU5UX1NUQVRVU19WTFYpIHsKPiAgCQkJCWlu dGVsX3ByZXBhcmVfcGFnZV9mbGlwKGRldiwgcGlwZSk7Cj4gQEAgLTE1MDksMTEgKzE1MjAsMTUg QEAgc3RhdGljIHZvaWQgaWxrX2Rpc3BsYXlfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdTMyIGRlX2lpcikKPiAgCWlmIChkZV9paXIgJiBERV9HU0UpCj4gIAkJaW50ZWxfb3By ZWdpb25fYXNsZV9pbnRyKGRldik7Cj4gIAo+IC0JaWYgKGRlX2lpciAmIERFX1BJUEVBX1ZCTEFO SykKPiAtCQlkcm1faGFuZGxlX3ZibGFuayhkZXYsIDApOwo+ICsJaWYgKGRlX2lpciAmIERFX1BJ UEVBX1ZCTEFOSykgewo+ICsJCWRybV9oYW5kbGVfdmJsYW5rKGRldiwgUElQRV9BKTsKPiArCQlp bnRlbF9waXBlX2hhbmRsZV92YmxhbmsoZGV2LCBQSVBFX0EpOwo+ICsJfQo+ICAKPiAtCWlmIChk ZV9paXIgJiBERV9QSVBFQl9WQkxBTkspCj4gLQkJZHJtX2hhbmRsZV92YmxhbmsoZGV2LCAxKTsK PiArCWlmIChkZV9paXIgJiBERV9QSVBFQl9WQkxBTkspIHsKPiArCQlkcm1faGFuZGxlX3ZibGFu ayhkZXYsIFBJUEVfQik7Cj4gKwkJaW50ZWxfcGlwZV9oYW5kbGVfdmJsYW5rKGRldiwgUElQRV9C KTsKPiArCX0KPiAgCj4gIAlpZiAoZGVfaWlyICYgREVfUE9JU09OKQo+ICAJCURSTV9FUlJPUigi UG9pc29uIGludGVycnVwdFxuIik7Cj4gQEAgLTE1NjgsOCArMTU4MywxMSBAQCBzdGF0aWMgdm9p ZCBpdmJfZGlzcGxheV9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgZGVf aWlyKQo+ICAJCWludGVsX29wcmVnaW9uX2FzbGVfaW50cihkZXYpOwo+ICAKPiAgCWZvciAoaSA9 IDA7IGkgPCAzOyBpKyspIHsKPiAtCQlpZiAoZGVfaWlyICYgKERFX1BJUEVBX1ZCTEFOS19JVkIg PDwgKDUgKiBpKSkpCj4gKwkJaWYgKGRlX2lpciAmIChERV9QSVBFQV9WQkxBTktfSVZCIDw8ICg1 ICogaSkpKSB7Cj4gIAkJCWRybV9oYW5kbGVfdmJsYW5rKGRldiwgaSk7Cj4gKwkJCWludGVsX3Bp cGVfaGFuZGxlX3ZibGFuayhkZXYsIGkpOwo+ICsJCX0KPiArCj4gIAkJaWYgKGRlX2lpciAmIChE RV9QTEFORUFfRkxJUF9ET05FX0lWQiA8PCAoNSAqIGkpKSkgewo+ICAJCQlpbnRlbF9wcmVwYXJl X3BhZ2VfZmxpcChkZXYsIGkpOwo+ICAJCQlpbnRlbF9maW5pc2hfcGFnZV9mbGlwX3BsYW5lKGRl diwgaSk7Cj4gQEAgLTI2OTUsNiArMjcxMyw4IEBAIHN0YXRpYyBib29sIGk4eHhfaGFuZGxlX3Zi bGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJaWYgKCFkcm1faGFuZGxlX3ZibGFuayhk ZXYsIHBpcGUpKQo+ICAJCXJldHVybiBmYWxzZTsKPiAgCj4gKwlpbnRlbF9waXBlX2hhbmRsZV92 YmxhbmsoZGV2LCBwaXBlKTsKPiArCj4gIAlpZiAoKGlpciAmIGZsaXBfcGVuZGluZykgPT0gMCkK PiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+IEBAIC0yODY5LDYgKzI4ODksOCBAQCBzdGF0aWMgYm9v bCBpOTE1X2hhbmRsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCWlmICghZHJt X2hhbmRsZV92YmxhbmsoZGV2LCBwaXBlKSkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+ICsJaW50 ZWxfcGlwZV9oYW5kbGVfdmJsYW5rKGRldiwgcGlwZSk7Cj4gKwo+ICAJaWYgKChpaXIgJiBmbGlw X3BlbmRpbmcpID09IDApCj4gIAkJcmV0dXJuIGZhbHNlOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4gaW5kZXggYmUwNTZmZC4uMzRlYjk1MiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtOTc1NCw2ICs5NzU0LDggQEAgc3RhdGljIHZv aWQgaW50ZWxfY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKQo+ICAJ CWludGVsX2NydGMtPnBsYW5lID0gIXBpcGU7Cj4gIAl9Cj4gIAo+ICsJaW5pdF93YWl0cXVldWVf aGVhZCgmaW50ZWxfY3J0Yy0+dmJsX3dhaXQpOwo+ICsKPiAgCUJVR19PTihwaXBlID49IEFSUkFZ X1NJWkUoZGV2X3ByaXYtPnBsYW5lX3RvX2NydGNfbWFwcGluZykgfHwKPiAgCSAgICAgICBkZXZf cHJpdi0+cGxhbmVfdG9fY3J0Y19tYXBwaW5nW2ludGVsX2NydGMtPnBsYW5lXSAhPSBOVUxMKTsK PiAgCWRldl9wcml2LT5wbGFuZV90b19jcnRjX21hcHBpbmdbaW50ZWxfY3J0Yy0+cGxhbmVdID0g JmludGVsX2NydGMtPmJhc2U7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCA3ZjVm NzRkLi44M2NiMmEwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtMzYxLDYg KzM2MSw5IEBAIHN0cnVjdCBpbnRlbF9jcnRjIHsKPiAgCQkvKiB3YXRlcm1hcmtzIGN1cnJlbnRs eSBiZWluZyB1c2VkICAqLwo+ICAJCXN0cnVjdCBpbnRlbF9waXBlX3dtIGFjdGl2ZTsKPiAgCX0g d207Cj4gKwo+ICsJd2FpdF9xdWV1ZV9oZWFkX3QgdmJsX3dhaXQ7Cj4gKwlib29sIHZibF9yZWNl aXZlZDsKPiAgfTsKPiAgCj4gIHN0cnVjdCBpbnRlbF9wbGFuZV93bV9wYXJhbWV0ZXJzIHsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IGluZGV4IGMxNjBlNGYuLmNlNGU0ZWMgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IEBAIC0zNyw2ICszNyw1NCBAQAo+ ICAjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+Cj4gICNpbmNsdWRlICJpOTE1X2Rydi5oIgo+ICAK PiArc3RhdGljIHVuc2lnbmVkIGludCB1c2Vjc190b19zY2FubGluZXMoY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGUsIHVuc2lnbmVkIGludCB1c2VjcykKPiArewo+ICsJLyogcGFy YW5vaWEgKi8KPiArCWlmICghbW9kZS0+Y3J0Y19odG90YWwpCj4gKwkJcmV0dXJuIDE7Cj4gKwo+ ICsJcmV0dXJuIERJVl9ST1VORF9VUCh1c2VjcyAqIG1vZGUtPmNydGNfY2xvY2ssIDEwMDAgKiBt b2RlLT5jcnRjX2h0b3RhbCk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGludGVsX3BpcGVfdXBk YXRlX3N0YXJ0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiArewo+ICsJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGNydGMtPmRldjsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjKTsKPiArCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpt b2RlID0gJmludGVsX2NydGMtPmNvbmZpZy5hZGp1c3RlZF9tb2RlOwo+ICsJZW51bSBwaXBlIHBp cGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICsJLyogRklYTUUgbmVlZHMgdG8gYmUgY2FsaWJyYXRl ZCBzZW5zaWJseSAqLwo+ICsJdW5zaWduZWQgaW50IG1pbiA9IG1vZGUtPmNydGNfdmJsYW5rX3N0 YXJ0IC0gdXNlY3NfdG9fc2NhbmxpbmVzKG1vZGUsIDEwMCk7Cj4gKwl1bnNpZ25lZCBpbnQgbWF4 ID0gbW9kZS0+Y3J0Y192Ymxhbmtfc3RhcnQgLSAxOwo+ICsJbG9uZyB0aW1lb3V0ID0gbXNlY3Nf dG9famlmZmllc190aW1lb3V0KDEpOwo+ICsJdW5zaWduZWQgaW50IHNjYW5saW5lOwo+ICsKPiAr CWlmIChXQVJOX09OKGRybV92YmxhbmtfZ2V0KGRldiwgcGlwZSkpKQo+ICsJCXJldHVybjsKPiAr Cj4gKwlsb2NhbF9pcnFfZGlzYWJsZSgpOwo+ICsKPiArCWludGVsX2NydGMtPnZibF9yZWNlaXZl ZCA9IGZhbHNlOwo+ICsJc2NhbmxpbmUgPSBpOTE1X2dldF9jcnRjX3NjYW5saW5lKGNydGMpOwo+ ICsKPiArCXdoaWxlIChzY2FubGluZSA+PSBtaW4gJiYgc2NhbmxpbmUgPD0gbWF4ICYmIHRpbWVv dXQgPiAwKSB7Cj4gKwkJbG9jYWxfaXJxX2VuYWJsZSgpOwo+ICsJCXRpbWVvdXQgPSB3YWl0X2V2 ZW50X3RpbWVvdXQoaW50ZWxfY3J0Yy0+dmJsX3dhaXQsCj4gKwkJCQkJICAgICBpbnRlbF9jcnRj LT52YmxfcmVjZWl2ZWQsCj4gKwkJCQkJICAgICB0aW1lb3V0KTsKPiArCQlsb2NhbF9pcnFfZGlz YWJsZSgpOwo+ICsKPiArCQlpbnRlbF9jcnRjLT52YmxfcmVjZWl2ZWQgPSBmYWxzZTsKPiArCQlz Y2FubGluZSA9IGk5MTVfZ2V0X2NydGNfc2NhbmxpbmUoY3J0Yyk7Cj4gKwl9Cj4gKwo+ICsJZHJt X3ZibGFua19wdXQoZGV2LCBwaXBlKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgaW50ZWxfcGlw ZV91cGRhdGVfZW5kKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiArewo+ICsJbG9jYWxfaXJxX2Vu YWJsZSgpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZAo+ICB2bHZfdXBkYXRlX3BsYW5lKHN0cnVj dCBkcm1fcGxhbmUgKmRwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJCSBzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiBAQCAtMTI1LDYgKzE3Myw4IEBAIHZsdl91cGRhdGVfcGxh bmUoc3RydWN0IGRybV9wbGFuZSAqZHBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJ CQkJCQlmYi0+cGl0Y2hlc1swXSk7Cj4gIAlsaW5lYXJfb2Zmc2V0IC09IHNwcnN1cmZfb2Zmc2V0 Owo+ICAKPiArCWludGVsX3BpcGVfdXBkYXRlX3N0YXJ0KGNydGMpOwo+ICsKPiAgCUk5MTVfV1JJ VEUoU1BTVFJJREUocGlwZSwgcGxhbmUpLCBmYi0+cGl0Y2hlc1swXSk7Cj4gIAlJOTE1X1dSSVRF KFNQUE9TKHBpcGUsIHBsYW5lKSwgKGNydGNfeSA8PCAxNikgfCBjcnRjX3gpOwo+ICAKPiBAQCAt MTM4LDYgKzE4OCw4IEBAIHZsdl91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHBsYW5l LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAlJOTE1X01PRElGWV9ESVNQQkFTRShTUFNVUkYo cGlwZSwgcGxhbmUpLCBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQob2JqKSArCj4gIAkJCSAgICAg c3Byc3VyZl9vZmZzZXQpOwo+ICAJUE9TVElOR19SRUFEKFNQU1VSRihwaXBlLCBwbGFuZSkpOwo+ ICsKPiArCWludGVsX3BpcGVfdXBkYXRlX2VuZChjcnRjKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZv aWQKPiBAQCAtMTQ5LDEyICsyMDEsMTYgQEAgdmx2X2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9w bGFuZSAqZHBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAlpbnQgcGlwZSA9IGludGVs X3BsYW5lLT5waXBlOwo+ICAJaW50IHBsYW5lID0gaW50ZWxfcGxhbmUtPnBsYW5lOwo+ICAKPiAr CWludGVsX3BpcGVfdXBkYXRlX3N0YXJ0KGNydGMpOwo+ICsKPiAgCUk5MTVfV1JJVEUoU1BDTlRS KHBpcGUsIHBsYW5lKSwgSTkxNV9SRUFEKFNQQ05UUihwaXBlLCBwbGFuZSkpICYKPiAgCQkgICB+ U1BfRU5BQkxFKTsKPiAgCS8qIEFjdGl2YXRlIGRvdWJsZSBidWZmZXJlZCByZWdpc3RlciB1cGRh dGUgKi8KPiAgCUk5MTVfTU9ESUZZX0RJU1BCQVNFKFNQU1VSRihwaXBlLCBwbGFuZSksIDApOwo+ ICAJUE9TVElOR19SRUFEKFNQU1VSRihwaXBlLCBwbGFuZSkpOwo+ICAKPiArCWludGVsX3BpcGVf dXBkYXRlX2VuZChjcnRjKTsKPiArCj4gIAlpbnRlbF91cGRhdGVfc3ByaXRlX3dhdGVybWFya3Mo ZHBsYW5lLCBjcnRjLCAwLCAwLCBmYWxzZSwgZmFsc2UpOwo+ICB9Cj4gIAo+IEBAIC0zMDEsNiAr MzU3LDggQEAgaXZiX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0 IGRybV9jcnRjICpjcnRjLAo+ICAJCQkJCSAgICAgICBwaXhlbF9zaXplLCBmYi0+cGl0Y2hlc1sw XSk7Cj4gIAlsaW5lYXJfb2Zmc2V0IC09IHNwcnN1cmZfb2Zmc2V0Owo+ICAKPiArCWludGVsX3Bp cGVfdXBkYXRlX3N0YXJ0KGNydGMpOwo+ICsKPiAgCUk5MTVfV1JJVEUoU1BSU1RSSURFKHBpcGUp LCBmYi0+cGl0Y2hlc1swXSk7Cj4gIAlJOTE1X1dSSVRFKFNQUlBPUyhwaXBlKSwgKGNydGNfeSA8 PCAxNikgfCBjcnRjX3gpOwo+ICAKPiBAQCAtMzIxLDYgKzM3OSw4IEBAIGl2Yl91cGRhdGVfcGxh bmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQkJ ICAgICBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQob2JqKSArIHNwcnN1cmZfb2Zmc2V0KTsKPiAg CVBPU1RJTkdfUkVBRChTUFJTVVJGKHBpcGUpKTsKPiAgCj4gKwlpbnRlbF9waXBlX3VwZGF0ZV9l bmQoY3J0Yyk7Cj4gKwo+ICAJLyogcG90ZW50aWFsbHkgcmUtZW5hYmxlIExQIHdhdGVybWFya3Mg Ki8KPiAgCWlmIChzY2FsaW5nX3dhc19lbmFibGVkICYmICFkZXZfcHJpdi0+c3ByaXRlX3NjYWxp bmdfZW5hYmxlZCkKPiAgCQlpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcyhjcnRjKTsKPiBAQCAtMzM1 LDYgKzM5NSw4IEBAIGl2Yl9kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBz dHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAlpbnQgcGlwZSA9IGludGVsX3BsYW5lLT5waXBlOwo+ ICAJYm9vbCBzY2FsaW5nX3dhc19lbmFibGVkID0gZGV2X3ByaXYtPnNwcml0ZV9zY2FsaW5nX2Vu YWJsZWQ7Cj4gIAo+ICsJaW50ZWxfcGlwZV91cGRhdGVfc3RhcnQoY3J0Yyk7Cj4gKwo+ICAJSTkx NV9XUklURShTUFJDVEwocGlwZSksIEk5MTVfUkVBRChTUFJDVEwocGlwZSkpICYgflNQUklURV9F TkFCTEUpOwo+ICAJLyogQ2FuJ3QgbGVhdmUgdGhlIHNjYWxlciBlbmFibGVkLi4uICovCj4gIAlp ZiAoaW50ZWxfcGxhbmUtPmNhbl9zY2FsZSkKPiBAQCAtMzQzLDYgKzQwNSw4IEBAIGl2Yl9kaXNh YmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMp Cj4gIAlJOTE1X01PRElGWV9ESVNQQkFTRShTUFJTVVJGKHBpcGUpLCAwKTsKPiAgCVBPU1RJTkdf UkVBRChTUFJTVVJGKHBpcGUpKTsKPiAgCj4gKwlpbnRlbF9waXBlX3VwZGF0ZV9lbmQoY3J0Yyk7 Cj4gKwo+ICAJZGV2X3ByaXYtPnNwcml0ZV9zY2FsaW5nX2VuYWJsZWQgJj0gfigxIDw8IHBpcGUp Owo+ICAKPiAgCWludGVsX3VwZGF0ZV9zcHJpdGVfd2F0ZXJtYXJrcyhwbGFuZSwgY3J0YywgMCwg MCwgZmFsc2UsIGZhbHNlKTsKPiBAQCAtNDc5LDYgKzU0Myw4IEBAIGlsa191cGRhdGVfcGxhbmUo c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQkJCQkg ICAgICAgcGl4ZWxfc2l6ZSwgZmItPnBpdGNoZXNbMF0pOwo+ICAJbGluZWFyX29mZnNldCAtPSBk dnNzdXJmX29mZnNldDsKPiAgCj4gKwlpbnRlbF9waXBlX3VwZGF0ZV9zdGFydChjcnRjKTsKPiAr Cj4gIAlJOTE1X1dSSVRFKERWU1NUUklERShwaXBlKSwgZmItPnBpdGNoZXNbMF0pOwo+ICAJSTkx NV9XUklURShEVlNQT1MocGlwZSksIChjcnRjX3kgPDwgMTYpIHwgY3J0Y194KTsKPiAgCj4gQEAg LTQ5Myw2ICs1NTksOCBAQCBpbGtfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAlJOTE1X01PRElGWV9ESVNQQkFTRShEVlNTVVJG KHBpcGUpLAo+ICAJCQkgICAgIGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChvYmopICsgZHZzc3Vy Zl9vZmZzZXQpOwo+ICAJUE9TVElOR19SRUFEKERWU1NVUkYocGlwZSkpOwo+ICsKPiArCWludGVs X3BpcGVfdXBkYXRlX2VuZChjcnRjKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQKPiBAQCAtNTAz LDYgKzU3MSw4IEBAIGlsa19kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBz dHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5l ID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwo+ICAJaW50IHBpcGUgPSBpbnRlbF9wbGFuZS0+cGlw ZTsKPiAgCj4gKwlpbnRlbF9waXBlX3VwZGF0ZV9zdGFydChjcnRjKTsKPiArCj4gIAlJOTE1X1dS SVRFKERWU0NOVFIocGlwZSksIEk5MTVfUkVBRChEVlNDTlRSKHBpcGUpKSAmIH5EVlNfRU5BQkxF KTsKPiAgCS8qIERpc2FibGUgdGhlIHNjYWxlciAqLwo+ICAJSTkxNV9XUklURShEVlNTQ0FMRShw aXBlKSwgMCk7Cj4gQEAgLTUxMCw2ICs1ODAsOCBAQCBpbGtfZGlzYWJsZV9wbGFuZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJSTkxNV9NT0RJRllf RElTUEJBU0UoRFZTU1VSRihwaXBlKSwgMCk7Cj4gIAlQT1NUSU5HX1JFQUQoRFZTU1VSRihwaXBl KSk7Cj4gIAo+ICsJaW50ZWxfcGlwZV91cGRhdGVfZW5kKGNydGMpOwo+ICsKPiAgCWludGVsX3Vw ZGF0ZV9zcHJpdGVfd2F0ZXJtYXJrcyhwbGFuZSwgY3J0YywgMCwgMCwgZmFsc2UsIGZhbHNlKTsK PiAgfQo+ICAKCkl0IGxvb2tzIGxpa2Ugd2UgbWF5IG5lZWQgdG8gY2hlY2sgZm9yIHByZWVtcHRp b24gYWdhaW4gb24KbG9jYWxfaXJxX2VuYWJsZSgpIGFjY29yZGluZyB0byBwcmVlbXB0LWxvY2tp bmcudHh0PyAgT3RoZXJ3aXNlIGl0Cmxvb2tzIGxpa2UgdGhpcyBkb2VzIHRoZSByaWdodCB0aGlu Zy4KCldpdGggdGhlIGFib3ZlIGFkZHJlc3NlZCBvciBleHBsYWluZWQgYXdheToKUmV2aWV3ZWQt Ynk6IEplc3NlIEJhcm5lcyA8amJhcm5lc0B2aXJ0dW91c2dlZWsub3JnPgotLSAKSmVzc2UgQmFy bmVzLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=