From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 3/4] drm/i915: opt-out CPU and WC mmaps from FBC Date: Tue, 22 Mar 2016 12:29:49 +0100 Message-ID: <20160322112949.GC28483@phenom.ffwll.local> References: <1458588418-31129-1-git-send-email-paulo.r.zanoni@intel.com> <1458588418-31129-5-git-send-email-paulo.r.zanoni@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 82BDA6E774 for ; Tue, 22 Mar 2016 11:29:01 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id l68so28807592wml.3 for ; Tue, 22 Mar 2016 04:29:01 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1458588418-31129-5-git-send-email-paulo.r.zanoni@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBNYXIgMjEsIDIwMTYgYXQgMDQ6MjY6NTdQTSAtMDMwMCwgUGF1bG8gWmFub25pIHdy b3RlOgo+IEZCQyBhbmQgdGhlIGZyb250YnVmZmVyIHRyYWNraW5nIGluZnJhc3RydWN0dXJlIHdl cmUgZGVzaWduZWQgYXNzdW1pbmcKPiB0aGF0IHVzZXIgc3BhY2UgYXBwbGljYXRpb25zIHdvdWxk IGZvbGxvdyBhIHNwZWNpZmljIHNldCBvZiBydWxlcwo+IHJlZ2FyZGluZyBmcm9udGJ1ZmZlciBt YW5hZ2VtZW50IGFuZCBtbWFwcGluZy4gSSByZWNlbnRseSBkaXNjb3ZlcmVkCj4gdGhhdCBjdXJy ZW50IHVzZXIgc3BhY2UgaXMgbm90IGV4YWN0bHkgZm9sbG93aW5nIHRoZXNlIHJ1bGVzOiBteQo+ IGludmVzdGlnYXRpb24gbGVkIG1lIHRvIHRoZSBjb25jbHVzaW9uIHRoYXQgdGhlIGdlbmVyaWMg YmFja2VuZCBmcm9tCj4gU05BIC0gdXNlZCBieSBTS0wgYW5kIHRoZSBvdGhlciBuZXcgcGxhdGZv cm1zIHdpdGhvdXQgYSBzcGVjaWZpYwo+IGJhY2tlbmQgLSBpcyBub3QgaXNzdWluZyBzd19maW5p c2gvZGlydHlfZmIgSU9DVExzIHdoZW4gdXNpbmcgdGhlIENQVQo+IGFuZCBXQyBtbWFwcy4gSSBk aXNjb3ZlcmVkIHRoaXMgd2hlbiBydW5uaW5nIGxpZ2h0ZG06IEkgd291bGQgdHlwZSB0aGUKPiBw YXNzd29yZCBhbmQgbm90aGluZyB3b3VsZCBhcHBlYXIgb24gdGhlIHNjcmVlbiB1bmxlc3MgSSBt b3ZlZCB0aGUKPiBtb3VzZSBvdmVyIHRoZSBwbGFjZSB3aGVyZSB0aGUgbGV0dGVycyB3ZXJlIHN1 cHBvc2VkIHRvIGFwcGVhci4KPiAKPiBTaW5jZSB3ZSBjYW4ndCBkZXRlY3Qgd2hldGhlciB0aGUg Y3VycmVudCBEUk0gbWFzdGVyIGlzIGEgd2VsbC1iZWhhdmVkCj4gYXBwbGljYXRpb24gb3Igbm90 LCBsZXQncyB1c2UgdGhlIHNsZWRnZWhhbW1lciBhcHByb2FjaCBhbmQgYXNzdW1lCj4gdGhhdCBl dmVyeSB1c2VyIHNwYWNlIGNsaWVudCBvbiBldmVyeSBnZW4gaXMgYmFkIGJ5IGRpc2FibGluZyBG QkMgd2hlbgo+IHRoZSBmcm9udGJ1ZmZlciBpcyBDUFUvV0MgbW1hcHBlZC4gIFRoaXMgd2lsbCBh bGxvdyB1cyB0byBlbmFibGUgRkJDCj4gb24gU0tMLCBtb3ZpbmcgaXRzIEZCQy1yZWxhdGVkIHBv d2VyIHNhdmluZ3MgZnJvbSAiYWx3YXlzIDAlIiB0byAiPiAwJQo+IGluIHNvbWUgY2FzZXMiLgo+ IAo+IFRoZXJlJ3MgYWxzbyBzb21lIGFkZGl0aW9uYWwgY29kZSB0byBkaXNhYmxlIHRoZSB3b3Jr YXJvdW5kIGZvcgo+IGZyb250YnVmZmVycyB0aGF0IGV2ZXIgcmVjZWl2ZWQgYSBzd19maW5pc2gg b3IgZGlydHlfZmIgSU9DVEwsIHNpbmNlCj4gdGhlIGN1cnJlbnQgYmFkIHVzZXIgc3BhY2UgbmV2 ZXIgaXNzdWVzIHRob3NlIGNhbGxzLiBUaGlzIHNob3VsZCBoZWxwCj4gZm9yIHNvbWUgc3BlY2lm aWMgY2FzZXMgYW5kIG91ciBJR1QgdGVzdHMsIGJ1dCB3b24ndCBiZSBlbm91Z2ggZm9yIGEKPiBu ZXcgeGY4Ni12aWRlby1pbnRlbCB1c2luZyBUZWFyRnJlZS4KPiAKPiBOb3RpY2UgdGhhdCB3ZSBt YXkgbmVlZCBhbiBlcXVpdmFsZW50IGNvbW1pdCBmb3IgUFNSIHRvby4gV2UgYWxzbyBuZWVkCj4g dG8gaW52ZXN0aWdhdGUgd2hldGhlciBQU1IgbmVlZHMgdG8gYmUgZGlzYWJsZWQgb24gR1RUIG1t YXBzOiBpZgo+IHRoYXQncyB0aGUgY2FzZSwgd2UnbGwgaGF2ZSBwcm9ibGVtcyBzaW5jZSB3ZSBz ZWVtIHRvIGFsd2F5cyBoYXZlIEdUVAo+IG1tYXBzIG9uIG91ciBjdXJyZW50IHVzZXIgc3BhY2Us IHNvIHdlIHdvdWxkIGVuZCB1cCBrZWVwaW5nIFBTUgo+IGRpc2FibGVkIGZvcmV2ZXIuCj4gCj4g djI6Cj4gICAtIFJlbmFtZSBzb21lIHRoaW5ncy4KPiAgIC0gRGlzYWJsZSB0aGUgV0Egb24gc3df ZmluaXNoL2RpcnR5X2ZiIChEYW5pZWwpLgo+ICAgLSBGaXggTlVMTCBvYmogY2hlY2tpbmcuCj4g ICAtIFJlc3RyaWMgdG8gR2VuIDkuCj4gCj4gQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZp QGludGVsLmNvbT4KPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4K PiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gU2lnbmVkLW9m Zi1ieTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgfCAgOSArKysrKysrKysKPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICB8IDE5ICsrKysrKysrKysr LS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgIHwgIDEg Kwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgIHwgIDMgKysrCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jICAgICAgICAgfCAzMyArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mcm9u dGJ1ZmZlci5jIHwgMzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIDYgZmlsZXMg Y2hhbmdlZCwgODkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiBpbmRleCBlZmNhNTM0Li40NWUzMWQyIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4gQEAgLTg3Myw2ICs4NzMsMTMgQEAgZW51bSBmYl9vcF9vcmlnaW4gewo+ICAJ T1JJR0lOX0RJUlRZRkIsCj4gIH07Cj4gIAo+ICtlbnVtIGZiX21tYXBfd2FfZmxhZ3Mgewo+ICsJ RkJfTU1BUF9XQV9DUFUgPQkxIDw8IDAsCj4gKwlGQl9NTUFQX1dBX0dUVCA9CTEgPDwgMSwKPiAr CUZCX01NQVBfV0FfRElTQUJMRSA9IAkxIDw8IDIsCj4gKwlGQl9NTUFQX1dBX0ZMQUdfQ09VTlQg PQkzLAo+ICt9Owo+ICsKPiAgc3RydWN0IGludGVsX2ZiYyB7Cj4gIAkvKiBUaGlzIGlzIGFsd2F5 cyB0aGUgaW5uZXIgbG9jayB3aGVuIG92ZXJsYXBwaW5nIHdpdGggc3RydWN0X211dGV4IGFuZAo+ ICAJICogaXQncyB0aGUgb3V0ZXIgbG9jayB3aGVuIG92ZXJsYXBwaW5nIHdpdGggc3RvbGVuX2xv Y2suICovCj4gQEAgLTkxMCw2ICs5MTcsNyBAQCBzdHJ1Y3QgaW50ZWxfZmJjIHsKPiAgCQkJdW5z aWduZWQgaW50IHN0cmlkZTsKPiAgCQkJaW50IGZlbmNlX3JlZzsKPiAgCQkJdW5zaWduZWQgaW50 IHRpbGluZ19tb2RlOwo+ICsJCQl1bnNpZ25lZCBpbnQgbW1hcF93YV9mbGFnczsKPiAgCQl9IGZi Owo+ICAJfSBzdGF0ZV9jYWNoZTsKPiAgCj4gQEAgLTIxNDMsNiArMjE1MSw3IEBAIHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0IHsKPiAgCXVuc2lnbmVkIGludCBjYWNoZV9kaXJ0eToxOwo+ICAK PiAgCXVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzOklOVEVMX0ZST05UQlVGRkVSX0JJVFM7 Cj4gKwl1bnNpZ25lZCBpbnQgZmJfbW1hcF93YV9mbGFnczpGQl9NTUFQX1dBX0ZMQUdfQ09VTlQ7 Cj4gIAo+ICAJdW5zaWduZWQgaW50IHBpbl9kaXNwbGF5Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKPiBpbmRleCA4NTg4YzgzLi5kNDRmMjdlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCj4gQEAgLTE2OTIsNiArMTY5Miw4IEBAIGk5MTVfZ2VtX3N3X2ZpbmlzaF9pb2N0bChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAJCWdvdG8gdW5sb2NrOwo+ICAJfQo+ ICAKPiArCWludGVsX2ZiX29ial9tbWFwX3dhKG9iaiwgRkJfTU1BUF9XQV9ESVNBQkxFKTsKPiAr Cj4gIAkvKiBQaW5uZWQgYnVmZmVycyBtYXkgYmUgc2Nhbm91dCwgc28gZmx1c2ggdGhlIGNhY2hl ICovCj4gIAlpZiAob2JqLT5waW5fZGlzcGxheSkKPiAgCQlpOTE1X2dlbV9vYmplY3RfZmx1c2hf Y3B1X3dyaXRlX2RvbWFpbihvYmopOwo+IEBAIC0xNzI0LDcgKzE3MjYsNyBAQCBpOTE1X2dlbV9t bWFwX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gIAkJICAgIHN0 cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X2dlbV9tbWFwICph cmdzID0gZGF0YTsKPiAtCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOwo+ICsJc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iajsKPiAgCXVuc2lnbmVkIGxvbmcgYWRkcjsKPiAgCj4gIAlp ZiAoYXJncy0+ZmxhZ3MgJiB+KEk5MTVfTU1BUF9XQykpCj4gQEAgLTE3MzMsMTkgKzE3MzUsMTkg QEAgaTkxNV9nZW1fbW1hcF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LAo+ICAJaWYgKGFyZ3MtPmZsYWdzICYgSTkxNV9NTUFQX1dDICYmICFjcHVfaGFzX3BhdCkKPiAg CQlyZXR1cm4gLUVOT0RFVjsKPiAgCj4gLQlvYmogPSBkcm1fZ2VtX29iamVjdF9sb29rdXAoZGV2 LCBmaWxlLCBhcmdzLT5oYW5kbGUpOwo+IC0JaWYgKG9iaiA9PSBOVUxMKQo+ICsJb2JqID0gdG9f aW50ZWxfYm8oZHJtX2dlbV9vYmplY3RfbG9va3VwKGRldiwgZmlsZSwgYXJncy0+aGFuZGxlKSk7 Cj4gKwlpZiAoJm9iai0+YmFzZSA9PSBOVUxMKQo+ICAJCXJldHVybiAtRU5PRU5UOwo+ICAKPiAg CS8qIHByaW1lIG9iamVjdHMgaGF2ZSBubyBiYWNraW5nIGZpbHAgdG8gR0VNIG1tYXAKPiAgCSAq IHBhZ2VzIGZyb20uCj4gIAkgKi8KPiAtCWlmICghb2JqLT5maWxwKSB7Cj4gLQkJZHJtX2dlbV9v YmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQob2JqKTsKPiArCWlmICghb2JqLT5iYXNlLmZpbHAp IHsKPiArCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZCgmb2JqLT5iYXNlKTsK PiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCX0KPiAgCj4gLQlhZGRyID0gdm1fbW1hcChvYmotPmZp bHAsIDAsIGFyZ3MtPnNpemUsCj4gKwlhZGRyID0gdm1fbW1hcChvYmotPmJhc2UuZmlscCwgMCwg YXJncy0+c2l6ZSwKPiAgCQkgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJF RCwKPiAgCQkgICAgICAgYXJncy0+b2Zmc2V0KTsKPiAgCWlmIChhcmdzLT5mbGFncyAmIEk5MTVf TU1BUF9XQykgewo+IEBAIC0xNzYxLDEwICsxNzYzLDEyIEBAIGk5MTVfZ2VtX21tYXBfaW9jdGwo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgCQkJYWRkciA9IC1FTk9NRU07 Cj4gIAkJdXBfd3JpdGUoJm1tLT5tbWFwX3NlbSk7Cj4gIAl9Cj4gLQlkcm1fZ2VtX29iamVjdF91 bnJlZmVyZW5jZV91bmxvY2tlZChvYmopOwo+ICsJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2Vf dW5sb2NrZWQoJm9iai0+YmFzZSk7Cj4gIAlpZiAoSVNfRVJSKCh2b2lkICopYWRkcikpCj4gIAkJ cmV0dXJuIGFkZHI7Cj4gIAo+ICsJaW50ZWxfZmJfb2JqX21tYXBfd2Eob2JqLCBGQl9NTUFQX1dB X0NQVSk7Cj4gKwo+ICAJYXJncy0+YWRkcl9wdHIgPSAodWludDY0X3QpIGFkZHI7Cj4gIAo+ICAJ cmV0dXJuIDA7Cj4gQEAgLTIwOTksNiArMjEwMyw3IEBAIGk5MTVfZ2VtX21tYXBfZ3R0KHN0cnVj dCBkcm1fZmlsZSAqZmlsZSwKPiAgCQlnb3RvIG91dDsKPiAgCj4gIAkqb2Zmc2V0ID0gZHJtX3Zt YV9ub2RlX29mZnNldF9hZGRyKCZvYmotPmJhc2Uudm1hX25vZGUpOwo+ICsJaW50ZWxfZmJfb2Jq X21tYXBfd2Eob2JqLCBGQl9NTUFQX1dBX0dUVCk7Cj4gIAo+ICBvdXQ6Cj4gIAlkcm1fZ2VtX29i amVjdF91bnJlZmVyZW5jZSgmb2JqLT5iYXNlKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gaW5kZXggMjhlYWQ2Ni4uNmU3YWE5ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiBAQCAtMTQ3MDUsNiArMTQ3MDUsNyBAQCBzdGF0aWMgaW50IGludGVs X3VzZXJfZnJhbWVidWZmZXJfZGlydHkoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gIAlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmItPm9iajsKPiAgCj4gIAlt dXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gKwlpbnRlbF9mYl9vYmpfbW1hcF93YShv YmosIEZCX01NQVBfV0FfRElTQUJMRSk7Cj4gIAlpbnRlbF9mYl9vYmpfZmx1c2gob2JqLCBmYWxz ZSwgT1JJR0lOX0RJUlRZRkIpOwo+ICAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7 Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggYmE0NTI0NS4uYmJlYTdjNCAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTEwODIsNiArMTA4Miw3IEBAIHZv aWQgaW50ZWxfZnJvbnRidWZmZXJfZmxpcF9jb21wbGV0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+ICAJCQkJICAgICB1bnNpZ25lZCBmcm9udGJ1ZmZlcl9iaXRzKTsKPiAgdm9pZCBpbnRlbF9m cm9udGJ1ZmZlcl9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCSAgICB1bnNpZ25l ZCBmcm9udGJ1ZmZlcl9iaXRzKTsKPiArdm9pZCBpbnRlbF9mYl9vYmpfbW1hcF93YShzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOwo+ICB1bnNpZ25l ZCBpbnQgaW50ZWxfZmJfYWxpZ25faGVpZ2h0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJ CQkgICB1bnNpZ25lZCBpbnQgaGVpZ2h0LAo+ICAJCQkJICAgdWludDMyX3QgcGl4ZWxfZm9ybWF0 LAo+IEBAIC0xMzcxLDYgKzEzNzIsOCBAQCB2b2lkIGludGVsX2ZiY19pbnZhbGlkYXRlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJICBlbnVtIGZiX29wX29yaWdpbiBv cmlnaW4pOwo+ICB2b2lkIGludGVsX2ZiY19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gIAkJICAgICB1bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJfYml0cywgZW51bSBm Yl9vcF9vcmlnaW4gb3JpZ2luKTsKPiArdm9pZCBpbnRlbF9mYmNfbW1hcF93YShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJICAgICAgIHVuc2lnbmVkIGludCBmcm9udGJ1 ZmZlcl9iaXRzLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOwo+ICB2b2lkIGludGVsX2ZiY19jbGVhbnVw X2NmYihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICAKPiAgLyogaW50ZWxf aGRtaS5jICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiBpbmRleCA3MTAxODgwLi43MThh YzM4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiBAQCAtNzQ1LDYgKzc0NSwxNCBA QCBzdGF0aWMgdm9pZCBpbnRlbF9mYmNfdXBkYXRlX3N0YXRlX2NhY2hlKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjKQo+ICAJY2FjaGUtPmZiLnN0cmlkZSA9IGZiLT5waXRjaGVzWzBdOwo+ICAJY2Fj aGUtPmZiLmZlbmNlX3JlZyA9IG9iai0+ZmVuY2VfcmVnOwo+ICAJY2FjaGUtPmZiLnRpbGluZ19t b2RlID0gb2JqLT50aWxpbmdfbW9kZTsKPiArCWNhY2hlLT5mYi5tbWFwX3dhX2ZsYWdzID0gb2Jq LT5mYl9tbWFwX3dhX2ZsYWdzOwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBuZWVkX21tYXBfZGlz YWJsZV93b3JrYXJvdW5kKHN0cnVjdCBpbnRlbF9mYmMgKmZiYykKPiArewo+ICsJdW5zaWduZWQg aW50IGZsYWdzID0gZmJjLT5zdGF0ZV9jYWNoZS5mYi5tbWFwX3dhX2ZsYWdzOwo+ICsKPiArCXJl dHVybiAoZmxhZ3MgJiBGQl9NTUFQX1dBX0NQVSkgJiYgIShmbGFncyAmIEZCX01NQVBfV0FfRElT QUJMRSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBib29sIGludGVsX2ZiY19jYW5fYWN0aXZhdGUoc3Ry dWN0IGludGVsX2NydGMgKmNydGMpCj4gQEAgLTgxNiw2ICs4MjQsMTEgQEAgc3RhdGljIGJvb2wg aW50ZWxfZmJjX2Nhbl9hY3RpdmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgCQlyZXR1 cm4gZmFsc2U7Cj4gIAl9Cj4gIAo+ICsJaWYgKG5lZWRfbW1hcF9kaXNhYmxlX3dvcmthcm91bmQo ZmJjKSkgewo+ICsJCWZiYy0+bm9fZmJjX3JlYXNvbiA9ICJGQiBpcyBDUFUgb3IgV0MgbW1hcHBl ZCI7Cj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsJfQo+ICsKPiAgCXJldHVybiB0cnVlOwo+ICB9Cj4g IAo+IEBAIC0xMDA4LDYgKzEwMjEsMjYgQEAgb3V0Ogo+ICAJbXV0ZXhfdW5sb2NrKCZmYmMtPmxv Y2spOwo+ICB9Cj4gIAo+ICt2b2lkIGludGVsX2ZiY19tbWFwX3dhKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPiArCQkgICAgICAgdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2Jp dHMsIHVuc2lnbmVkIGludCBmbGFncykKPiArewo+ICsJc3RydWN0IGludGVsX2ZiYyAqZmJjID0g JmRldl9wcml2LT5mYmM7Cj4gKwo+ICsJaWYgKCFmYmNfc3VwcG9ydGVkKGRldl9wcml2KSkKPiAr CQlyZXR1cm47Cj4gKwo+ICsJbXV0ZXhfbG9jaygmZmJjLT5sb2NrKTsKPiArCj4gKwlpZiAoZmJj LT5lbmFibGVkICYmCj4gKwkgICAgKGludGVsX2ZiY19nZXRfZnJvbnRidWZmZXJfYml0KGZiYykg JiBmcm9udGJ1ZmZlcl9iaXRzKSkgewo+ICsJCWZiYy0+c3RhdGVfY2FjaGUuZmIubW1hcF93YV9m bGFncyA9IGZsYWdzOwo+ICsJCWlmIChuZWVkX21tYXBfZGlzYWJsZV93b3JrYXJvdW5kKGZiYykp Cj4gKwkJCWludGVsX2ZiY19kZWFjdGl2YXRlKGRldl9wcml2KTsKPiArCX0KPiArCj4gKwltdXRl eF91bmxvY2soJmZiYy0+bG9jayk7Cj4gK30KPiArCj4gIC8qKgo+ICAgKiBpbnRlbF9mYmNfY2hv b3NlX2NydGMgLSBzZWxlY3QgYSBDUlRDIHRvIGVuYWJsZSBGQkMgb24KPiAgICogQGRldl9wcml2 OiBpOTE1IGRldmljZSBpbnN0YW5jZQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9mcm9udGJ1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZnJvbnRi dWZmZXIuYwo+IGluZGV4IGFjODUzNTcuLjhkOWIzMjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZnJvbnRidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Zyb250YnVmZmVyLmMKPiBAQCAtMjQxLDMgKzI0MSwzNCBAQCB2b2lkIGludGVs X2Zyb250YnVmZmVyX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCj4gIAlpbnRlbF9m cm9udGJ1ZmZlcl9mbHVzaChkZXYsIGZyb250YnVmZmVyX2JpdHMsIE9SSUdJTl9GTElQKTsKPiAg fQo+ICsKPiArLyoqCj4gKyAqIGludGVsX2ZiX29ial9tbWFwX3dhIC0gbm90aWZpZXMgYWJvdXQg b2JqZWN0cyBiZWluZyBtbWFwcGVkCj4gKyAqIEBvYmo6IEdFTSBvYmplY3QgYmVpbmcgbW1hcHBl ZAo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIHdoZW5ldmVyIGFuIG9iamVj dCBnZXRzIG1tYXBwZWQuIE5vdCBldmVyeSB1c2VyCj4gKyAqIHNwYWNlIGFwcGxpY2F0aW9uIGZv bGxvd3MgdGhlIHByb3RvY29sIGFzc3VtZWQgYnkgdGhlIGZyb250YnVmZmVyIHRyYWNraW5nCj4g KyAqIHN1YnN5c3RlbSB3aGVuIGl0IHdhcyBjcmVhdGVkLCBzbyB0aGlzIG1tYXAgbm90aWZ5IGNh bGxiYWNrIGNhbiBiZSB1c2VkIHRvCj4gKyAqIGNvbXBsZXRlbHkgZGlzYWJsZSBmcm9udGJ1ZmZl ciBmZWF0dXJlcyBzdWNoIGFzIEZCQyBhbmQgUFNSLiBFdmVuIGlmIGF0IHNvbWUKPiArICogcG9p bnQgd2UgZml4IGV2ZXIgdXNlciBzcGFjZSBhcHBsaWNhdGlvbiwgdGhlcmUncyBzdGlsbCB0aGUg cG9zc2liaWxpdHkgdGhhdAo+ICsgKiB0aGUgdXNlciBtYXkgaGF2ZSBhIG5ldyBLZXJuZWwgd2l0 aCB0aGUgb2xkIHVzZXIgc3BhY2UuCj4gKyAqCj4gKyAqIEFsc28gbm90aWNlIHRoYXQgdGhlcmUn cyBubyBtdW5tYXAgQVBJIGJlY2F1c2UgdXNlciBzcGFjZSBjYWxscyBtdW5tYXAoKQo+ICsgKiBk aXJlY3RseS4gRXZlbiBpZiB3ZSBoYWQsIGl0IHByb2JhYmx5IHdvdWxkbid0IGhlbHAgc2luY2Ug bXVubWFwKCkgY2FsbHMgYXJlCj4gKyAqIG5vdCBjb21tb24uCj4gKyAqLwo+ICt2b2lkIGludGVs X2ZiX29ial9tbWFwX3dhKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIHVuc2lnbmVk IGludCBmbGFncykKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g b2JqLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7Cj4gKwo+ICsJaWYgKCFJU19HRU45KGRldl9wcml2 KSkKClBsZWFzZSBvbmx5IElTX1NLWUxBS0UsIEkgZG9uJ3Qgd2FudCB0byBleHRlbmQgdGhpcyB0 byBlaXRoZXIgYnh0IG9yIGtibCwKYW5kIGJvdGggYXJlIHN0aWxsIHVuZGVyIHByZWxpbV9od19z dXBwb3J0IGFuZCBub3QgeWV0IHNoaXBwaW5nLCBpLmUuIHdlCmNhbiBicmVhayB0aGVtIDstKQoK V3J0IHRoZSBpbXBsZW1lbnRhdGlvbjogSSB0aGluayBpdCB3b3VsZCBiZSBncmVhdCB0byBnZXQg UFNSIG9uIGJvYXJkIHRvCmF2b2lkIGR1cGxpY2F0aW5nIHRoZSBsb2dpYy4gT25lIG9wdGlvbiB0 aGF0IG1pZ2h0IHdvdWxkIGJlIHRvIGNyZWF0ZSBhbgppbnZsaWRhdGUgb24gc2tsIHdpdGggT1JJ R0lOX01NQVBfV0EsIGFuZCBhcyBsb25nIGFzIHRoYXQncyBpbiBlZmZlY3QKKHVudGlsIHRoZSBm aXJzdCBzd19maW5pc2ggb3IgZGlydHlfZmIpIHRoZSBmcm9udGJ1ZmZlciB0cmFja2luZyBjb2Rl Cml0c2VsZiB3b3VsZCBmaWx0ZXIgYWxsIGZsdXNoZXMuIGZiYyBjb3VsZCB0aGVuIHVzZSBPUklH SU5fTU1BUF9XQQppbnZhbGlkYXRlIHRvIHBlcm1hbmVudGx5IGRpc2FibGUgKHdlbGwsIG5vdCBy ZS1lbmFibGUgYWZ0ZXIgZmxpcCkgdW50aWwKaXQgc2VlcyBhIGZsdXNoLiBBbmQgUFNSIHdvdWxk IEp1c3QgV29yayAoSSBob3BlKS4KCkNoZWVycywgRGFuaWVsCgo+ICsJCXJldHVybjsKPiArCj4g KwlvYmotPmZiX21tYXBfd2FfZmxhZ3MgfD0gZmxhZ3M7Cj4gKwo+ICsJaWYgKCFvYmotPmZyb250 YnVmZmVyX2JpdHMpCj4gKwkJcmV0dXJuOwo+ICsKPiArCWludGVsX2ZiY19tbWFwX3dhKGRldl9w cml2LCBvYmotPmZyb250YnVmZmVyX2JpdHMsCj4gKwkJCSAgb2JqLT5mYl9tbWFwX3dhX2ZsYWdz KTsKPiArfQoKCj4gLS0gCj4gMi43LjAKPiAKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVu Z2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK