From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v3 2/3] drm/i915: abolish separate per-ring default_context pointers Date: Tue, 12 Jan 2016 14:51:32 +0100 Message-ID: <20160112135132.GI4588@phenom.ffwll.local> References: <1452162052-22573-1-git-send-email-david.s.gordon@intel.com> <1452162052-22573-3-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f66.google.com (mail-wm0-f66.google.com [74.125.82.66]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3EE086E3D5 for ; Tue, 12 Jan 2016 05:51:31 -0800 (PST) Received: by mail-wm0-f66.google.com with SMTP id b14so31532505wmb.1 for ; Tue, 12 Jan 2016 05:51:31 -0800 (PST) Content-Disposition: inline In-Reply-To: <1452162052-22573-3-git-send-email-david.s.gordon@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dave Gordon Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKYW4gMDcsIDIwMTYgYXQgMTA6MjA6NTFBTSArMDAwMCwgRGF2ZSBHb3Jkb24gd3Jv dGU6Cj4gTm93IHRoYXQgd2UndmUgZWxpbWluYXRlZCBhIGxvdCBvZiB1c2VzIG9mIHJpbmctPmRl ZmF1bHRfY29udGV4dCwKPiB3ZSBjYW4gZWxpbWluYXRlIHRoZSBwb2ludGVyIGl0c2VsZi4KPiAK PiBBbGwgdGhlIGVuZ2luZXMgc2hhcmUgdGhlIHNhbWUgZGVmYXVsdCBpbnRlbF9jb250ZXh0LCBz byB3ZSBjYW4ganVzdAo+IGtlZXAgYSBzaW5nbGUgcmVmZXJlbmNlIHRvIGl0IGluIHRoZSBkZXZf cHJpdiBzdHJ1Y3R1cmUgcmF0aGVyIHRoYW4gb25lCj4gaW4gZWFjaCBvZiB0aGUgZW5naW5lW10g ZWxlbWVudHMuIFRoaXMgbWFrZSByZWZjb3VudGluZyBtb3JlIHNlbnNpYmxlCj4gdG9vLCBhcyB3 ZSBub3cgaGF2ZSBhIHJlZmNvdW50IG9mIG9uZSBmb3IgdGhlIG9uZSBwb2ludGVyLCByYXRoZXIg dGhhbgo+IGEgcmVmY291bnQgb2Ygb25lIGJ1dCBtdWx0aXBsZSBwb2ludGVycy4KPiAKPiBGcm9t IGFuIGlkZWEgYnkgQ2hyaXMgV2lsc29uLgo+IAo+IFNpZ25lZC1vZmYtYnk6IERhdmUgR29yZG9u IDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+CgpBY2tlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFu aWVsLnZldHRlckBmZndsbC5jaD4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jICAgICAgICB8ICA0ICsrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCAgICAgICAgICAgIHwgIDIgKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YyAgICAgICAgICAgIHwgIDYgKysrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2NvbnRleHQuYyAgICB8IDIyICsrKysrKysrLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyAgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIHwgIDYgKysrLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jICAgICAgICAgICB8IDI0ICsrKysrKysrKysrKystLS0tLS0tLS0t LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggICAgfCAgMSAtCj4g IDggZmlsZXMgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCj4gCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCAwZmMzOGJiLi4yNjEzNzA4IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBAQCAtMTk0Myw3ICsxOTQzLDcg QEAgc3RhdGljIGludCBpOTE1X2NvbnRleHRfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9p ZCAqdW51c2VkKQo+ICAJCXNlcV9wdXRzKG0sICJIVyBjb250ZXh0ICIpOwo+ICAJCWRlc2NyaWJl X2N0eChtLCBjdHgpOwo+ICAJCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpIHsKPiAt CQkJaWYgKHJpbmctPmRlZmF1bHRfY29udGV4dCA9PSBjdHgpCj4gKwkJCWlmIChkZXZfcHJpdi0+ a2VybmVsX2NvbnRleHQgPT0gY3R4KQo+ICAJCQkJc2VxX3ByaW50ZihtLCAiKGRlZmF1bHQgY29u dGV4dCAlcykgIiwKPiAgCQkJCQkgICByaW5nLT5uYW1lKTsKPiAgCQl9Cj4gQEAgLTIwMzksNyAr MjAzOSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9kdW1wX2xyYyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZv aWQgKnVudXNlZCkKPiAgCj4gIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGN0eCwgJmRldl9wcml2LT5j b250ZXh0X2xpc3QsIGxpbmspIHsKPiAgCQlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBp KSB7Cj4gLQkJCWlmIChyaW5nLT5kZWZhdWx0X2NvbnRleHQgIT0gY3R4KQo+ICsJCQlpZiAoZGV2 X3ByaXYtPmtlcm5lbF9jb250ZXh0ICE9IGN0eCkKPiAgCQkJCWk5MTVfZHVtcF9scmNfb2JqKG0s IHJpbmcsCj4gIAkJCQkJCSAgY3R4LT5lbmdpbmVbaV0uc3RhdGUpOwo+ICAJCX0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKPiBpbmRleCBjMmIwMDBhLi5hZWY4NmE4IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4gQEAgLTE5NDAsNiArMTk0MCw4IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlIHsKPiAgCQl2b2lkICgqc3RvcF9yaW5nKShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n KTsKPiAgCX0gZ3Q7Cj4gIAo+ICsJc3RydWN0IGludGVsX2NvbnRleHQgKmtlcm5lbF9jb250ZXh0 Owo+ICsKPiAgCWJvb2wgZWRwX2xvd192c3dpbmc7Cj4gIAo+ICAJLyogcGVyZm9ybSBQSFkgc3Rh dGUgc2FuaXR5IGNoZWNrcz8gKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCBjOTA4 ZWQxLi44ZjEwMTEyMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBAIC0yNjc4LDcg KzI2NzgsNyBAQCB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfZnJlZShzdHJ1Y3Qga3JlZiAqcmVxX3Jl ZikKPiAgCj4gIAlpZiAoY3R4KSB7Cj4gIAkJaWYgKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cykgewo+ IC0JCQlpZiAoY3R4ICE9IHJlcS0+cmluZy0+ZGVmYXVsdF9jb250ZXh0KQo+ICsJCQlpZiAoY3R4 ICE9IHJlcS0+aTkxNS0+a2VybmVsX2NvbnRleHQpCj4gIAkJCQlpbnRlbF9scl9jb250ZXh0X3Vu cGluKHJlcSk7Cj4gIAkJfQo+ICAKPiBAQCAtMjc3NCw3ICsyNzc0LDcgQEAgaTkxNV9nZW1fcmVx dWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gIAlpbnQgZXJyOwo+ ICAKPiAgCWlmIChjdHggPT0gTlVMTCkKPiAtCQljdHggPSBlbmdpbmUtPmRlZmF1bHRfY29udGV4 dDsKPiArCQljdHggPSB0b19pOTE1KGVuZ2luZS0+ZGV2KS0+a2VybmVsX2NvbnRleHQ7Cj4gIAll cnIgPSBfX2k5MTVfZ2VtX3JlcXVlc3RfYWxsb2MoZW5naW5lLCBjdHgsICZyZXEpOwo+ICAJcmV0 dXJuIGVyciA/IEVSUl9QVFIoZXJyKSA6IHJlcTsKPiAgfQo+IEBAIC00ODYyLDcgKzQ4NjIsNyBA QCBpOTE1X2dlbV9pbml0X2h3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkgKi8KPiAgCWlu aXRfdW51c2VkX3JpbmdzKGRldik7Cj4gIAo+IC0JQlVHX09OKCFkZXZfcHJpdi0+cmluZ1tSQ1Nd LmRlZmF1bHRfY29udGV4dCk7Cj4gKwlCVUdfT04oIWRldl9wcml2LT5rZXJuZWxfY29udGV4dCk7 Cj4gIAo+ICAJcmV0ID0gaTkxNV9wcGd0dF9pbml0X2h3KGRldik7Cj4gIAlpZiAocmV0KSB7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+IGluZGV4IDkwMGZmZDAuLmUx ZDc2N2UgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4 dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4gQEAg LTM1NCwxMSArMzU0LDEwIEBAIGludCBpOTE1X2dlbV9jb250ZXh0X2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHg7Cj4gLQlpbnQg aTsKPiAgCj4gIAkvKiBJbml0IHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbmNlIHBlciBtb2R1bGUg bG9hZC4gRXZlbnR1YWxseSB0aGUKPiAgCSAqIHJlc3RyaWN0aW9uIG9uIHRoZSBjb250ZXh0X2Rp c2FibGVkIGNoZWNrIGNhbiBiZSBsb29zZW5lZC4gKi8KPiAtCWlmIChXQVJOX09OKGRldl9wcml2 LT5yaW5nW1JDU10uZGVmYXVsdF9jb250ZXh0KSkKPiArCWlmIChXQVJOX09OKGRldl9wcml2LT5r ZXJuZWxfY29udGV4dCkpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICAJaWYgKGludGVsX3ZncHVfYWN0 aXZlKGRldikgJiYgSEFTX0xPR0lDQUxfUklOR19DT05URVhUUyhkZXYpKSB7Cj4gQEAgLTM4OCwx MiArMzg3LDcgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+ICAJCXJldHVybiBQVFJfRVJSKGN0eCk7Cj4gIAl9Cj4gIAo+IC0JZm9yIChpID0gMDsg aSA8IEk5MTVfTlVNX1JJTkdTOyBpKyspIHsKPiAtCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nID0gJmRldl9wcml2LT5yaW5nW2ldOwo+IC0KPiAtCQkvKiBOQjogUkNTIHdpbGwgaG9sZCBh IHJlZiBmb3IgYWxsIHJpbmdzICovCj4gLQkJcmluZy0+ZGVmYXVsdF9jb250ZXh0ID0gY3R4Owo+ IC0JfQo+ICsJZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0ID0gY3R4Owo+ICAKPiAgCURSTV9ERUJV R19EUklWRVIoIiVzIGNvbnRleHQgc3VwcG9ydCBpbml0aWFsaXplZFxuIiwKPiAgCQkJaTkxNS5l bmFibGVfZXhlY2xpc3RzID8gIkxSIiA6Cj4gQEAgLTQwNCw3ICszOTgsNyBAQCBpbnQgaTkxNV9n ZW1fY29udGV4dF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIHZvaWQgaTkxNV9nZW1f Y29udGV4dF9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlzdHJ1Y3QgaW50 ZWxfY29udGV4dCAqZGN0eCA9IGRldl9wcml2LT5yaW5nW1JDU10uZGVmYXVsdF9jb250ZXh0Owo+ ICsJc3RydWN0IGludGVsX2NvbnRleHQgKmRjdHggPSBkZXZfcHJpdi0+a2VybmVsX2NvbnRleHQ7 Cj4gIAlpbnQgaTsKPiAgCj4gIAlpZiAoZGN0eC0+bGVnYWN5X2h3X2N0eC5yY3Nfc3RhdGUpIHsK PiBAQCAtNDMxLDE3ICs0MjUsMTcgQEAgdm9pZCBpOTE1X2dlbV9jb250ZXh0X2Zpbmkoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKPiAgCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihkY3R4LT5s ZWdhY3lfaHdfY3R4LnJjc19zdGF0ZSk7Cj4gIAl9Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8IEk5 MTVfTlVNX1JJTkdTOyBpKyspIHsKPiArCWZvciAoaSA9IEk5MTVfTlVNX1JJTkdTOyAtLWkgPj0g MDspIHsKPiAgCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gJmRldl9wcml2LT5yaW5n W2ldOwo+ICAKPiAtCQlpZiAocmluZy0+bGFzdF9jb250ZXh0KQo+ICsJCWlmIChyaW5nLT5sYXN0 X2NvbnRleHQpIHsKPiAgCQkJaTkxNV9nZW1fY29udGV4dF91bnJlZmVyZW5jZShyaW5nLT5sYXN0 X2NvbnRleHQpOwo+IC0KPiAtCQlyaW5nLT5kZWZhdWx0X2NvbnRleHQgPSBOVUxMOwo+IC0JCXJp bmctPmxhc3RfY29udGV4dCA9IE5VTEw7Cj4gKwkJCXJpbmctPmxhc3RfY29udGV4dCA9IE5VTEw7 Cj4gKwkJfQo+ICAJfQo+ICAKPiAgCWk5MTVfZ2VtX2NvbnRleHRfdW5yZWZlcmVuY2UoZGN0eCk7 Cj4gKwlkZXZfcHJpdi0+a2VybmVsX2NvbnRleHQgPSBOVUxMOwo+ICB9Cj4gIAo+ICBpbnQgaTkx NV9nZW1fY29udGV4dF9lbmFibGUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCj4gaW5kZXggMDZjYTQwOC4uN2VlYjI0 NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwo+IEBAIC0xMDUwLDcg KzEwNTAsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZWNvcmRfcmluZ3Moc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiAgCQkJaWYgKHJlcXVlc3QpCj4gIAkJCQlyYnVmID0gcmVxdWVzdC0+Y3R4 LT5lbmdpbmVbcmluZy0+aWRdLnJpbmdidWY7Cj4gIAkJCWVsc2UKPiAtCQkJCXJidWYgPSByaW5n LT5kZWZhdWx0X2NvbnRleHQtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1ZjsKPiArCQkJCXJidWYg PSBkZXZfcHJpdi0+a2VybmVsX2NvbnRleHQtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1ZjsKPiAg CQl9IGVsc2UKPiAgCQkJcmJ1ZiA9IHJpbmctPmJ1ZmZlcjsKPiAgCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+IGluZGV4IDljMjQ0MjQuLjUxYWU1YzEgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gQEAgLTk2 NCw3ICs5NjQsNyBAQCBpbnQgaTkxNV9ndWNfc3VibWlzc2lvbl9lbmFibGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZkZXZfcHJpdi0+ Z3VjOwo+IC0Jc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCA9IGRldl9wcml2LT5yaW5nW1JDU10u ZGVmYXVsdF9jb250ZXh0Owo+ICsJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCA9IGRldl9wcml2 LT5rZXJuZWxfY29udGV4dDsKPiAgCXN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmNsaWVudDsKPiAg Cj4gIAkvKiBjbGllbnQgZm9yIGV4ZWNidWYgc3VibWlzc2lvbiAqLwo+IEBAIC0xMDIxLDcgKzEw MjEsNyBAQCBpbnQgaW50ZWxfZ3VjX3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAg CWlmICghaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24pCj4gIAkJcmV0dXJuIDA7Cj4gIAo+IC0J Y3R4ID0gZGV2X3ByaXYtPnJpbmdbUkNTXS5kZWZhdWx0X2NvbnRleHQ7Cj4gKwljdHggPSBkZXZf cHJpdi0+a2VybmVsX2NvbnRleHQ7Cj4gIAo+ICAJZGF0YVswXSA9IEhPU1QyR1VDX0FDVElPTl9F TlRFUl9TX1NUQVRFOwo+ICAJLyogYW55IHZhbHVlIGdyZWF0ZXIgdGhhbiBHVUNfUE9XRVJfRDAg Ki8KPiBAQCAtMTA0Nyw3ICsxMDQ3LDcgQEAgaW50IGludGVsX2d1Y19yZXN1bWUoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiAgCWlmICghaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24pCj4gIAkJ cmV0dXJuIDA7Cj4gIAo+IC0JY3R4ID0gZGV2X3ByaXYtPnJpbmdbUkNTXS5kZWZhdWx0X2NvbnRl eHQ7Cj4gKwljdHggPSBkZXZfcHJpdi0+a2VybmVsX2NvbnRleHQ7Cj4gIAo+ICAJZGF0YVswXSA9 IEhPU1QyR1VDX0FDVElPTl9FWElUX1NfU1RBVEU7Cj4gIAlkYXRhWzFdID0gR1VDX1BPV0VSX0Qw Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggOGI2NTQyZC4uYWFhYTVhMyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gQEAgLTU3MSw3ICs1NzEsNyBAQCBzdGF0aWMg aW50IGV4ZWNsaXN0c19jb250ZXh0X3F1ZXVlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxdWVzdCkKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqY3Vyc29yOwo+ICAJaW50 IG51bV9lbGVtZW50cyA9IDA7Cj4gIAo+IC0JaWYgKHJlcXVlc3QtPmN0eCAhPSByaW5nLT5kZWZh dWx0X2NvbnRleHQpCj4gKwlpZiAocmVxdWVzdC0+Y3R4ICE9IHJlcXVlc3QtPmk5MTUtPmtlcm5l bF9jb250ZXh0KQo+ICAJCWludGVsX2xyX2NvbnRleHRfcGluKHJlcXVlc3QpOwo+ICAKPiAgCWk5 MTVfZ2VtX3JlcXVlc3RfcmVmZXJlbmNlKHJlcXVlc3QpOwo+IEBAIC02NjQsNyArNjY0LDcgQEAg aW50IGludGVsX2xvZ2ljYWxfcmluZ19hbGxvY19yZXF1ZXN0X2V4dHJhcyhzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QKPiAgCj4gIAlyZXF1ZXN0LT5yaW5nYnVmID0gcmVxdWVz dC0+Y3R4LT5lbmdpbmVbcmVxdWVzdC0+cmluZy0+aWRdLnJpbmdidWY7Cj4gIAo+IC0JaWYgKHJl cXVlc3QtPmN0eCAhPSByZXF1ZXN0LT5yaW5nLT5kZWZhdWx0X2NvbnRleHQpIHsKPiArCWlmIChy ZXF1ZXN0LT5jdHggIT0gcmVxdWVzdC0+aTkxNS0+a2VybmVsX2NvbnRleHQpIHsKPiAgCQlyZXQg PSBpbnRlbF9scl9jb250ZXh0X3BpbihyZXF1ZXN0KTsKPiAgCQlpZiAocmV0KQo+ICAJCQlyZXR1 cm4gcmV0Owo+IEBAIC05ODAsNyArOTgwLDcgQEAgdm9pZCBpbnRlbF9leGVjbGlzdHNfcmV0aXJl X3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gIAkJc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPQo+ICAJCQkJY3R4LT5lbmdpbmVbcmluZy0+aWRdLnN0 YXRlOwo+ICAKPiAtCQlpZiAoY3R4X29iaiAmJiAoY3R4ICE9IHJpbmctPmRlZmF1bHRfY29udGV4 dCkpCj4gKwkJaWYgKGN0eF9vYmogJiYgKGN0eCAhPSByZXEtPmk5MTUtPmtlcm5lbF9jb250ZXh0 KSkKPiAgCQkJaW50ZWxfbHJfY29udGV4dF91bnBpbihyZXEpOwo+ICAJCWxpc3RfZGVsKCZyZXEt PmV4ZWNsaXN0X2xpbmspOwo+ICAJCWk5MTVfZ2VtX3JlcXVlc3RfdW5yZWZlcmVuY2UocmVxKTsK PiBAQCAtMTQ4Nyw3ICsxNDg3LDcgQEAgc3RhdGljIGludCBnZW44X2luaXRfY29tbW9uX3Jpbmco c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgCXU4IG5leHRfY29udGV4dF9zdGF0dXNf YnVmZmVyX2h3Owo+ICAKPiAgCWxyY19zZXR1cF9oYXJkd2FyZV9zdGF0dXNfcGFnZShyaW5nLAo+ IC0JCQkJcmluZy0+ZGVmYXVsdF9jb250ZXh0LT5lbmdpbmVbcmluZy0+aWRdLnN0YXRlKTsKPiAr CQkJCWRldl9wcml2LT5rZXJuZWxfY29udGV4dC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZSk7Cj4g IAo+ICAJSTkxNV9XUklURV9JTVIocmluZywgfihyaW5nLT5pcnFfZW5hYmxlX21hc2sgfCByaW5n LT5pcnFfa2VlcF9tYXNrKSk7Cj4gIAlJOTE1X1dSSVRFKFJJTkdfSFdTVEFNKHJpbmctPm1taW9f YmFzZSksIDB4ZmZmZmZmZmYpOwo+IEBAIC0xOTI5LDYgKzE5MjksOSBAQCB2b2lkIGludGVsX2xv Z2ljYWxfcmluZ19jbGVhbnVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gIAo+ICBz dGF0aWMgaW50IGxvZ2ljYWxfcmluZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gIHsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiArCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpkY3R4 ID0gZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0Owo+ICsJaW50IHJpbmdfaWQgPSByaW5nLT5pZDsK PiAgCWludCByZXQ7Cj4gIAo+ICAJLyogSW50ZW50aW9uYWxseSBsZWZ0IGJsYW5rLiAqLwo+IEBA IC0xOTQ5LDE1ICsxOTUyLDE0IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluCj4gIAlpZiAocmV0 KQo+ICAJCWdvdG8gZXJyb3I7Cj4gIAo+IC0JcmV0ID0gaW50ZWxfbHJfY29udGV4dF9kZWZlcnJl ZF9hbGxvYyhyaW5nLT5kZWZhdWx0X2NvbnRleHQsIHJpbmcpOwo+ICsJcmV0ID0gaW50ZWxfbHJf Y29udGV4dF9kZWZlcnJlZF9hbGxvYyhkY3R4LCByaW5nKTsKPiAgCWlmIChyZXQpCj4gIAkJZ290 byBlcnJvcjsKPiAgCj4gIAkvKiBBcyB0aGlzIGlzIHRoZSBkZWZhdWx0IGNvbnRleHQsIGFsd2F5 cyBwaW4gaXQgKi8KPiAtCXJldCA9IGludGVsX2xyX2NvbnRleHRfZG9fcGluKAo+IC0JCQlyaW5n LAo+IC0JCQlyaW5nLT5kZWZhdWx0X2NvbnRleHQtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGUsCj4g LQkJCXJpbmctPmRlZmF1bHRfY29udGV4dC0+ZW5naW5lW3JpbmctPmlkXS5yaW5nYnVmKTsKPiAr CXJldCA9IGludGVsX2xyX2NvbnRleHRfZG9fcGluKHJpbmcsCj4gKwkJCQkgICAgICBkY3R4LT5l bmdpbmVbcmluZ19pZF0uc3RhdGUsCj4gKwkJCQkgICAgICBkY3R4LT5lbmdpbmVbcmluZ19pZF0u cmluZ2J1Zik7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJRFJNX0VSUk9SKAo+ICAJCQkiRmFpbGVkIHRv IHBpbiBhbmQgbWFwIHJpbmdidWZmZXIgJXM6ICVkXG4iLAo+IEBAIC0yMzg4LDcgKzIzOTAsNyBA QCB2b2lkIGludGVsX2xyX2NvbnRleHRfZnJlZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KQo+ ICAJCQkJCWN0eC0+ZW5naW5lW2ldLnJpbmdidWY7Cj4gIAkJCXN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcgPSByaW5nYnVmLT5yaW5nOwo+ICAKPiAtCQkJaWYgKGN0eCA9PSByaW5nLT5kZWZh dWx0X2NvbnRleHQpIHsKPiArCQkJaWYgKGN0eCA9PSBjdHgtPmk5MTUtPmtlcm5lbF9jb250ZXh0 KSB7Cj4gIAkJCQlpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihyaW5nYnVmKTsKPiAgCQkJCWk5 MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0eF9vYmopOwo+ICAJCQl9Cj4gQEAgLTI1MDcsNyAr MjUwOSw3IEBAIGludCBpbnRlbF9scl9jb250ZXh0X2RlZmVycmVkX2FsbG9jKHN0cnVjdCBpbnRl bF9jb250ZXh0ICpjdHgsCj4gIAljdHgtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1ZiA9IHJpbmdi dWY7Cj4gIAljdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGUgPSBjdHhfb2JqOwo+ICAKPiAtCWlm IChjdHggIT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0ICYmIHJpbmctPmluaXRfY29udGV4dCkgewo+ ICsJaWYgKGN0eCAhPSBjdHgtPmk5MTUtPmtlcm5lbF9jb250ZXh0ICYmIHJpbmctPmluaXRfY29u dGV4dCkgewo+ICAJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwo+ICAKPiAgCQly ZXEgPSBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHJpbmcsIGN0eCk7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IGluZGV4IDQ5NTc0ZmYuLmU5NTBmNmMgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gQEAgLTMwNSw3ICszMDUsNiBA QCBzdHJ1Y3QgIGludGVsX2VuZ2luZV9jcyB7Cj4gIAo+ICAJd2FpdF9xdWV1ZV9oZWFkX3QgaXJx X3F1ZXVlOwo+ICAKPiAtCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpkZWZhdWx0X2NvbnRleHQ7Cj4g IAlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqbGFzdF9jb250ZXh0Owo+ICAKPiAgCXN0cnVjdCBpbnRl bF9yaW5nX2hhbmdjaGVjayBoYW5nY2hlY2s7Cj4gLS0gCj4gMS45LjEKPiAKPiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5n IGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gCkRhbmllbCBWZXR0 ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xs LmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==