From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: Re: [PATCH v3 4/6] drm/i915: reprogram NOA muxes on context switch when using perf Date: Wed, 9 May 2018 16:31:02 +0100 Message-ID: References: <20180508180347.32080-1-lionel.g.landwerlin@intel.com> <20180508180347.32080-5-lionel.g.landwerlin@intel.com> <152585634941.3513.5801349713622514922@mail.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id EE40E6E8E6 for ; Wed, 9 May 2018 15:31:04 +0000 (UTC) In-Reply-To: <152585634941.3513.5801349713622514922@mail.alporthouse.com> Content-Language: en-US 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 T24gMDkvMDUvMTggMDk6NTksIENocmlzIFdpbHNvbiB3cm90ZToKPiBRdW90aW5nIExpb25lbCBM YW5kd2VybGluICgyMDE4LTA1LTA4IDE5OjAzOjQ1KQo+PiBJZiBzb21lIG9mIHRoZSBjb250ZXh0 cyBzdWJtaXR0aW5nIHdvcmtsb2FkcyB0byB0aGUgR1BVIGhhdmUgYmVlbgo+PiBjb25maWd1cmVk IHRvIHNodXRkb3duIHNsaWNlcy9zdWJzbGljZXMsIHdlIG1pZ2h0IGxvb3NlIHRoZSBOT0EKPj4g Y29uZmlndXJhdGlvbnMgd3JpdHRlbiBpbiB0aGUgTk9BIG11eGVzLiBXZSBuZWVkIHRvIHJlcHJv Z3JhbSB0aGVtCj4+IHdoZW4gd2UgZGV0ZWN0IGEgcG93ZXJnYXRpbmcgY29uZmlndXJhdGlvbiBj aGFuZ2UuCj4+Cj4+IEluIHRoaXMgY2hhbmdlIGk5MTUvcGVyZiBpcyByZXNwb25zaWJsZSBmb3Ig c2V0dGluZyB1cCBhIHJlcHJvZ3JhbW1pbmcKPj4gYmF0Y2hidWZmZXIgd2hpY2ggd2UgZXhlY3V0 ZSBqdXN0IGJlZm9yZSB0aGUgdXNlcnNwYWNlIHN1Ym1pdHRlZAo+PiBiYXRjaGJ1ZmZlci4gV2Ug ZG8gdGhpcyB3aGlsZSBwcmVlbXB0aW9uIGlzIHN0aWxsIGRpc2FibGUsIG9ubHkgaWYKPj4gbmVl ZGVkLiBUaGUgZGVjaXNpb24gdG8gZXhlY3V0ZSB0aGlzIHJlcHJvZ3JhbW1pbmcgYmF0Y2hidWZm ZXIgaXMgbWFkZQo+PiB3aGVuIHdlIGFzc2lnbiBhIHJlcXVlc3QgdG8gYW4gZXhlY2xpc3QgcG9y dC4KPj4KPj4gdjI6IE9ubHkgcmVwcm9ncmFtIHdoZW4gZGV0ZWN0aW5nIGNvbmZpZ3VyYXRpb24g Y2hhbmdlcyAoQ2hyaXMvTGlvbmVsKQo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBMaW9uZWwgTGFuZHdl cmxpbiA8bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5jb20+Cj4+IC0tLQo+PiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgIHwgICA2ICsrCj4+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgICAgICAgICAgfCAxMDggKysrKysrKysrKysrKysrKysr KysrKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oICAgICAgIHwgICA2 ICsrCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3B1X2NvbW1hbmRzLmggfCAgIDEg Kwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICAgIHwgIDU5ICsr KysrKysrKysrLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyAg IHwgICAyICsKPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggICB8 ICAgMiArCj4+ICAgNyBmaWxlcyBjaGFuZ2VkLCAxODMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gaW5kZXggMDRlMjc4MDZlNTgxLi4w N2NkYmZiNGFkN2EgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiBAQCAtMTQ2MSw2 ICsxNDYxLDEyIEBAIHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtIHsKPj4gICAgICAgICAgICogQG9h X2NvbmZpZzogVGhlIE9BIGNvbmZpZ3VyYXRpb24gdXNlZCBieSB0aGUgc3RyZWFtLgo+PiAgICAg ICAgICAgKi8KPj4gICAgICAgICAgc3RydWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWc7Cj4+ ICsKPj4gKyAgICAgICAvKioKPj4gKyAgICAgICAgKiBAbm9hX3JlcHJvZ3JhbV92bWE6IEEgYmF0 Y2hidWZmZXIgcmVwcm9ncmFtbWluZyB0aGUgTk9BIG11eGVzLCB1c2VkCj4+ICsgICAgICAgICog YWZ0ZXIgc3dpdGNoaW5nIHBvd2VyZ2F0aW5nIGNvbmZpZ3VyYXRpb25zLgo+PiArICAgICAgICAq Lwo+PiArICAgICAgIHN0cnVjdCBpOTE1X3ZtYSAqbm9hX3JlcHJvZ3JhbV92bWE7Cj4+ICAgfTsK Pj4gICAKPj4gICAvKioKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cGVyZi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMKPj4gaW5kZXggNWIyNzlh ODI0NDVhLi4xYjllM2Q2YTUzYTIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcGVyZi5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCj4+ IEBAIC0xNjkxLDYgKzE2OTEsOTYgQEAgc3RhdGljIGludCBnZW44X2VtaXRfb2FfY29uZmlnKHN0 cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAo+PiAgICAgICAgICByZXR1cm4gMDsKPj4gICB9Cj4+ICAg Cj4+ICsjZGVmaW5lIE1BWF9MUklfU0laRSAoMTI1VSkKPj4gKwo+PiArc3RhdGljIHUzMiBub2Ff cmVwcm9ncmFtX2JiX3NpemUoc3RydWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWcpCj4+ICt7 Cj4+ICsgICAgICAgdTMyIG5fbHJpOwo+PiArCj4+ICsgICAgICAgLyogVmVyeSB1bmxpa2VseSBi dXQgcG9zc2libGUgdGhhdCB3ZSBoYXZlIG5vIG11eGVzIHRvIGNvbmZpZ3VyZS4gKi8KPj4gKyAg ICAgICBpZiAoIW9hX2NvbmZpZy0+bXV4X3JlZ3NfbGVuKQo+PiArICAgICAgICAgICAgICAgcmV0 dXJuIDA7Cj4+ICsKPj4gKyAgICAgICBuX2xyaSA9IChvYV9jb25maWctPm11eF9yZWdzX2xlbiAv IE1BWF9MUklfU0laRSkgKwo+PiArICAgICAgICAgICAgICAgKG9hX2NvbmZpZy0+bXV4X3JlZ3Nf bGVuICUgTUFYX0xSSV9TSVpFKSAhPSAwOwo+PiArCj4+ICsgICAgICAgcmV0dXJuIG5fbHJpICog NCArIG9hX2NvbmZpZy0+bXV4X3JlZ3NfbGVuICogOCArIC8qIE1JX0xPQURfUkVHSVNURVJfSU1N cyAqLwo+PiArICAgICAgICAgICAgICAgNiAqIDQgKyAvKiBQSVBFX0NPTlRST0wgKi8KPj4gKyAg ICAgICAgICAgICAgIDQ7IC8qIE1JX0JBVENIX0JVRkZFUl9FTkQgKi8KPj4gK30KPj4gKwo+PiAr c3RhdGljIGludAo+PiArYWxsb2Nfbm9hX3JlcHJvZ3JhbV9ibyhzdHJ1Y3QgaTkxNV9wZXJmX3N0 cmVhbSAqc3RyZWFtKQo+PiArewo+PiArICAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3ByaXY7Cj4+ICsgICAgICAgc3RydWN0IGk5MTVfb2FfY29u ZmlnICpvYV9jb25maWcgPSBzdHJlYW0tPm9hX2NvbmZpZzsKPj4gKyAgICAgICBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqYm87Cj4+ICsgICAgICAgc3RydWN0IGk5MTVfdm1hICp2bWE7Cj4+ ICsgICAgICAgdTMyIGJ1ZmZlcl9zaXplOwo+PiArICAgICAgIHUzMiAqY3M7Cj4+ICsgICAgICAg aW50IGksIHJldCwgbl9sb2FkZWRfcmVnczsKPj4gKwo+PiArICAgICAgIGJ1ZmZlcl9zaXplID0g QUxJR04obm9hX3JlcHJvZ3JhbV9iYl9zaXplKG9hX2NvbmZpZyksIFBBR0VfU0laRSk7Cj4+ICsg ICAgICAgaWYgKGJ1ZmZlcl9zaXplID09IDApCj4+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsK Pj4gKwo+PiArICAgICAgIGJvID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZShkZXZfcHJpdiwgYnVm ZmVyX3NpemUpOwo+PiArICAgICAgIGlmIChJU19FUlIoYm8pKSB7Cj4+ICsgICAgICAgICAgICAg ICBEUk1fRVJST1IoIkZhaWxlZCB0byBhbGxvY2F0ZSBOT0EgcmVwcm9ncmFtbWluZyBidWZmZXJc biIpOwo+PiArICAgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIoYm8pOwo+PiArICAgICAgIH0K Pj4gKwo+PiArICAgICAgIGNzID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAoYm8sIEk5MTVfTUFQ X1dCKTsKPj4gKyAgICAgICBpZiAoSVNfRVJSKGNzKSkgewo+PiArICAgICAgICAgICAgICAgcmV0 ID0gUFRSX0VSUihjcyk7Cj4+ICsgICAgICAgICAgICAgICBnb3RvIGVycl91bnJlZl9ibzsKPj4g KyAgICAgICB9Cj4+ICsKPj4gKyAgICAgICBuX2xvYWRlZF9yZWdzID0gMDsKPj4gKyAgICAgICBm b3IgKGkgPSAwOyBpIDwgb2FfY29uZmlnLT5tdXhfcmVnc19sZW47IGkrKykgewo+PiArICAgICAg ICAgICAgICAgaWYgKChuX2xvYWRlZF9yZWdzICUgTUFYX0xSSV9TSVpFKSA9PSAwKSB7Cj4+ICsg ICAgICAgICAgICAgICAgICAgICAgIHUzMiBuX2xyaSA9IG1pbihvYV9jb25maWctPm11eF9yZWdz X2xlbiAtIG5fbG9hZGVkX3JlZ3MsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBNQVhfTFJJX1NJWkUpOwo+PiArICAgICAgICAgICAgICAgICAgICAgICAqY3MrKyA9 IE1JX0xPQURfUkVHSVNURVJfSU1NKG5fbHJpKTsKPj4gKyAgICAgICAgICAgICAgIH0KPj4gKwo+ PiArICAgICAgICAgICAgICAgKmNzKysgPSBpOTE1X21taW9fcmVnX29mZnNldChvYV9jb25maWct Pm11eF9yZWdzW2ldLmFkZHIpOwo+PiArICAgICAgICAgICAgICAgKmNzKysgPSBvYV9jb25maWct Pm11eF9yZWdzW2ldLnZhbHVlOwo+PiArICAgICAgICAgICAgICAgbl9sb2FkZWRfcmVncysrOwo+ PiArICAgICAgIH0KPj4gKwo+PiArICAgICAgIGNzID0gZ2VuOF9lbWl0X3BpcGVfY29udHJvbChj cywgUElQRV9DT05UUk9MX01NSU9fV1JJVEUsIDApOwo+IFdoYXQncyB0aGUgcGMgZm9yPyBJc24n dCBpdCBhIGJpdCBkYW5nZXJvdXMgdG8gcmVxdWVzdCBhIG1taW8gd3JpdGUgdG8KPiB0byByZWcg MD8KCk9vcHMsIEkndmUgYmVlbiB1c2luZyB0aGlzIHdyb25nIDooCkkgdGhvdWdodCBpdCB3b3Vs ZCBmbHVzaCBwZW5kaW5nIE1NSU8gd3JpdGVzLgoKPgo+PiArCj4+ICsgICAgICAgKmNzKysgPSBN SV9CQVRDSF9CVUZGRVJfRU5EOwo+PiArCj4+ICsgICAgICAgaTkxNV9nZW1fb2JqZWN0X3VucGlu X21hcChibyk7Cj4+ICsKPj4gKyAgICAgICByZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0 dF9kb21haW4oYm8sIGZhbHNlKTsKPj4gKyAgICAgICBpZiAocmV0KQo+PiArICAgICAgICAgICAg ICAgZ290byBlcnJfdW5yZWZfYm87Cj4+ICsKPj4gKyAgICAgICB2bWEgPSBpOTE1X3ZtYV9pbnN0 YW5jZShibywgJmRldl9wcml2LT5nZ3R0LmJhc2UsIE5VTEwpOwo+PiArICAgICAgIGlmIChJU19F UlIodm1hKSkgewo+PiArICAgICAgICAgICAgICAgcmV0ID0gUFRSX0VSUih2bWEpOwo+PiArICAg ICAgICAgICAgICAgZ290byBlcnJfdW5yZWZfYm87Cj4+ICsgICAgICAgfQo+PiArCj4+ICsgICAg ICAgcmV0ID0gaTkxNV92bWFfcGluKHZtYSwgMCwgMCwgUElOX1VTRVIgfCBQSU5fR0xPQkFMKTsK Pj4gKyAgICAgICBpZiAocmV0KQo+PiArICAgICAgICAgICAgICAgZ290byBlcnJfdW5yZWZfdm1h Owo+IE5vIEdHVFQgYWNjZXNzLCBzbyBqdXN0IFBJTl9VU0VSIGZvciBHUFUgYWNjZXNzLgoKT2th eS4gSSBqdXN0IGRvbid0IHNlZW0gdG8gdW5kZXJzdGFuZCBhbnkgb2YgdGhlIHZtYSBzdHVmZi4u LgoKPgo+PiArICAgICAgIHN0cmVhbS0+bm9hX3JlcHJvZ3JhbV92bWEgPSB2bWE7Cj4+ICsKPj4g KyAgICAgICByZXR1cm4gMDsKPj4gKwo+PiArZXJyX3VucmVmX3ZtYToKPj4gKyAgICAgICBpOTE1 X3ZtYV9wdXQodm1hKTsKPj4gK2Vycl91bnJlZl9ibzoKPj4gKyAgICAgICBpOTE1X2dlbV9vYmpl Y3RfcHV0KGJvKTsKPj4gKwo+PiArICAgICAgIHJldHVybiByZXQ7Cj4+ICt9Cj4+ICsKPj4gICBz dGF0aWMgaW50IGdlbjhfc3dpdGNoX3RvX3VwZGF0ZWRfa2VybmVsX2NvbnRleHQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBpOTE1X29hX2NvbmZpZyAqb2FfY29u ZmlnKQo+PiAgIHsKPj4gQEAgLTIxMDIsNiArMjE5MiwxMiBAQCBzdGF0aWMgaW50IGk5MTVfb2Ff c3RyZWFtX2luaXQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKPj4gICAgICAgICAg ICAgICAgICBnb3RvIGVycl9jb25maWc7Cj4+ICAgICAgICAgIH0KPj4gICAKPj4gKyAgICAgICBy ZXQgPSBhbGxvY19ub2FfcmVwcm9ncmFtX2JvKHN0cmVhbSk7Cj4+ICsgICAgICAgaWYgKHJldCkg ewo+PiArICAgICAgICAgICAgICAgRFJNX0RFQlVHKCJFbmFibGUgdG8gYWxsb2MgTk9BIHJlcHJv Z3JhbW1pbmcgQk9cbiIpOwo+PiArICAgICAgICAgICAgICAgZ290byBlcnJfY29uZmlnOwo+PiAr ICAgICAgIH0KPj4gKwo+PiAgICAgICAgICAvKiBQUk0gLSBvYnNlcnZhYmlsaXR5IHBlcmZvcm1h bmNlIGNvdW50ZXJzOgo+PiAgICAgICAgICAgKgo+PiAgICAgICAgICAgKiAgIE9BQ09OVFJPTCwg cGVyZm9ybWFuY2UgY291bnRlciBlbmFibGUsIG5vdGU6Cj4+IEBAIC0yMTM2LDYgKzIyMzIsMTMg QEAgc3RhdGljIGludCBpOTE1X29hX3N0cmVhbV9pbml0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFt ICpzdHJlYW0sCj4+ICAgCj4+ICAgICAgICAgIGRldl9wcml2LT5wZXJmLm9hLmV4Y2x1c2l2ZV9z dHJlYW0gPSBzdHJlYW07Cj4+ICAgCj4+ICsgICAgICAgcmV0ID0gZGV2X3ByaXYtPnBlcmYub2Eu b3BzLmVuYWJsZV9tZXRyaWNfc2V0KGRldl9wcml2LAo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0tPm9hX2NvbmZpZyk7Cj4+ICsg ICAgICAgaWYgKHJldCkKPj4gKyAgICAgICAgICAgICAgIGdvdG8gZXJyX2VuYWJsZTsKPj4gKwo+ PiArICAgICAgIHN0cmVhbS0+b3BzID0gJmk5MTVfb2Ffc3RyZWFtX29wczsKPj4gKwo+PiAgICAg ICAgICBtdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKPj4gICAKPj4g ICAgICAgICAgcmV0dXJuIDA7Cj4+IEBAIC0yNDk3LDYgKzI2MDAsMTEgQEAgc3RhdGljIHZvaWQg aTkxNV9wZXJmX2Rlc3Ryb3lfbG9ja2VkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0p Cj4+ICAgICAgICAgIGlmIChzdHJlYW0tPmN0eCkKPj4gICAgICAgICAgICAgICAgICBpOTE1X2dl bV9jb250ZXh0X3B1dChzdHJlYW0tPmN0eCk7Cj4+ICAgCj4+ICsgICAgICAgaWYgKHN0cmVhbS0+ bm9hX3JlcHJvZ3JhbV92bWEpIHsKPj4gKyAgICAgICAgICAgICAgIGk5MTVfdm1hX3VucGluKHN0 cmVhbS0+bm9hX3JlcHJvZ3JhbV92bWEpOwo+PiArICAgICAgICAgICAgICAgaTkxNV9nZW1fb2Jq ZWN0X3B1dChzdHJlYW0tPm5vYV9yZXByb2dyYW1fdm1hLT5vYmopOwo+IFRoaXMgd2lsbCBiZSB1 bmhhcHB5IGR1ZSB0byB0aGUgbGFjayBvZiBhY3RpdmUgdHJhY2tpbmcuCj4gaTkxNV92bWFfdW5w aW5fYW5kX3JlbGVhc2UoJnN0cmVhbS0+bm9hX3JlcHJvZ3JhbV92bWEpLgo+Cj4gSG1tLCB3b3Jz ZSB0aGFuIHRoYXQuIEl0J3Mgbm90IGJlaW5nIHRyYWNrZWQgYXQgYWxsLCBzbyBleHBlY3QgaXQg dG8gYmUKPiBmcmVlZCB3aGlsZSBzdGlsbCBpbiB1c2UuCgpNb3ZpbmcgdG8gZW5naW5lLT5ub2Ff cmVwcm9ncmFtX3ZtYS4KCkkgc2hvdWxkIGJlIGFibGUgdG8gc2V0IHRoaXMgZnJvbSBpOTE1L3Bl cmYgYXMgdGhlcmUgaXMgYSB3aW5kb3cgd2hlcmUgCml0IGlkbGUgdGhlIEdQVSBiZWZvcmUgZWRp dGluZyB0aGUgd2luZG93Cgo+Cj4+ICsgICAgICAgfQo+PiArCj4+ICAgICAgICAgIGtmcmVlKHN0 cmVhbSk7Cj4+ICAgfQo+PiAgIAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZXF1ZXN0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaAo+PiBp bmRleCBlZGRiZDQyNDVjYjMuLjMzNTdjZWI0YmRiMSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZXF1ZXN0LmgKPj4gQEAgLTE0OSw2ICsxNDksMTIgQEAgc3RydWN0IGk5MTVfcmVxdWVz dCB7Cj4+ICAgICAgICAgIC8qKiBQcmVhbGxvY2F0ZSBzcGFjZSBpbiB0aGUgcmluZyBmb3IgdGhl IGVtaXR0aW5nIHRoZSByZXF1ZXN0ICovCj4+ICAgICAgICAgIHUzMiByZXNlcnZlZF9zcGFjZTsK Pj4gICAKPj4gKyAgICAgICAvKgo+PiArICAgICAgICAqIFBvaW50ZXIgaW4gdGhlIGJhdGNoYnVm ZmVyIHRvIHdoZXJlIHRoZSBpOTE1L3BlcmYgTk9BIHJlcHJvZ3JhbW1pbmcKPj4gKyAgICAgICAg KiBjYW4gYmUgaW5zZXJ0ZWQganVzdCBiZWZvcmUgSFcgc3VibWlzc2lvbi4KPj4gKyAgICAgICAg Ki8KPj4gKyAgICAgICB1MzIgKnBlcmZfcHJvZ19zdGFydDsKPiBKdXN0IHUzMiBvZmZzZXQsIG5v IG5lZWQgZm9yIHRoZSBleHRyYSBzcGFjZSBvZiBhIHBvaW50ZXIgaGVyZS4KPiAoUHJvYmFibHkg c2hvdWxkIGp1c3QgbGltaXQgcmluZ3MgdG8gNjRrIGFuZCBwYWNrIHRoZSBvZmZzZXRzIGludG8g dTE2LikKPiBPciBoYXZlIHRoZW0gYXMgb2Zmc2V0IGZyb20gaGVhZCwgYW5kIHU4IGR3b3Jkcz8g SG1tLgo+Cj4gSSBoYXZlIGNvbGQgc2hpdmVycyBmcm9tIHRoZSB0aG91Z2h0IG9mIG1vcmUgc3Bl Y2lhbCBsb2NhdGlvbnMgaW5zaWRlCj4gdGhlIGJhdGNoLiBOb3QgdGhlIGZpcnN0LCBhbmQgbm90 IHRoZSBsYXN0LCBzbyBJIGZlZWwgbGlrZSB0aGVyZSBzaG91bGQKPiBiZSBhIGJldHRlciB3YXkg KG9yIGF0IGxlYXN0IG1vcmUgY29uc2lzdGVudCkuCgpTd2l0Y2hpbmcgdG8gYW4gb2Zmc2V0LgoK Pgo+PiArCj4+ICAgICAgICAgIC8qKiBCYXRjaCBidWZmZXIgcmVsYXRlZCB0byB0aGlzIHJlcXVl c3QgaWYgYW55ICh1c2VkIGZvcgo+PiAgICAgICAgICAgKiBlcnJvciBzdGF0ZSBkdW1wIG9ubHkp Lgo+PiAgICAgICAgICAgKi8KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2dwdV9jb21tYW5kcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3B1X2NvbW1h bmRzLmgKPj4gaW5kZXggMTA1ZTJhOWU4NzRhLi4wOWIwZmRlZDhiMTcgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2dwdV9jb21tYW5kcy5oCj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2dwdV9jb21tYW5kcy5oCj4+IEBAIC0xNDYsNiArMTQ2LDcg QEAKPj4gICAjZGVmaW5lICAgTUlfQkFUQ0hfR1RUICAgICAgICAgICAgICgyPDw2KSAvKiBhbGlh c2VkIHdpdGggKDE8PDcpIG9uIGdlbjQgKi8KPj4gICAjZGVmaW5lIE1JX0JBVENIX0JVRkZFUl9T VEFSVF9HRU44ICAgICBNSV9JTlNUUigweDMxLCAxKQo+PiAgICNkZWZpbmUgICBNSV9CQVRDSF9S RVNPVVJDRV9TVFJFQU1FUiAoMTw8MTApCj4+ICsjZGVmaW5lICAgTUlfQkFUQ0hfU0VDT05EX0xF VkVMICAgICAgKDE8PDIyKQo+PiAgIAo+PiAgIC8qCj4+ICAgICogM0QgaW5zdHJ1Y3Rpb25zIHVz ZWQgYnkgdGhlIGtlcm5lbAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+PiBpbmRleCAxYzA4 YmQyYmU2YzMuLmRmNGE3YmIwN2VhZSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMK Pj4gQEAgLTUxMCw2ICs1MTAsMzggQEAgc3RhdGljIGJvb2wgY2FuX21lcmdlX2N0eChjb25zdCBz dHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqcHJldiwKPj4gICAgICAgICAgcmV0dXJuIHRydWU7Cj4+ ICAgfQo+PiAgIAo+PiArc3RhdGljIHZvaWQgbWF5YmVfZW5hYmxlX25vYV9yZXBnb3JhbShzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUgPSBycS0+ZW5naW5lOwo+PiArICAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKPj4gKyAgICAgICBzdHJ1Y3QgaTkxNV9wZXJm X3N0cmVhbSAqc3RyZWFtID0gZGV2X3ByaXYtPnBlcmYub2EuZXhjbHVzaXZlX3N0cmVhbTsKPiBD b3VsZCB0aGVyZSBiZSBhbnkgbW9yZSBwb2ludGVyIGNoYXNpbmc/IDwvY2hhbmRsZXI+CgpQdXR0 aW5nIHRoaXMgaW50byB0aGUgZW5naW5lLgoKPgo+PiArICAgICAgIHN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjZTsKPj4gKyAgICAgICB1MzIgKmNzID0gcnEtPnBlcmZfcHJvZ19zdGFydDsKPj4gKwo+ PiArICAgICAgIC8qIFNsaWNlL3N1YnNsaWNlL0VVIHBvd2VyZ2F0aW5nIG9ubHkgbWF0dGVycyBv biB0aGUgUkNTLiAqLwo+PiArICAgICAgIGlmIChlbmdpbmUtPmlkICE9IFJDUykKPj4gKyAgICAg ICAgICAgICAgIHJldHVybjsKPj4gKwo+PiArICAgICAgIC8qIE5vdGhpbmcgbmVlZCB0byByZXBy b2dyYW0gd2hlbiBwZXJmIGlzbid0IGVuYWJsZWQuICovCj4+ICsgICAgICAgaWYgKCFzdHJlYW0p Cj4+ICsgICAgICAgICAgICAgICByZXR1cm47Cj4+ICsKPj4gKyAgICAgICBjZSA9ICZycS0+Y3R4 LT5fX2VuZ2luZVtlbmdpbmUtPmlkXTsKPiBycS0+aHdfY29udGV4dDsgYnV0IHRvX2ludGVsX2Nv bnRleHQoKSB1bnRpbCB0aGF0IHBhdGNoIGxhbmRzLgoKTW92aW5nIHNzZXUgdG8gdGhlIHJlcXVl c3Qgc28gSSBjYW4gZG8gdGhlIHJwY3MgY29uZmlnIHRocm91Z2ggTUlfTFJJLgoKPgo+PiArCj4+ ICsgICAgICAgLyoKPj4gKyAgICAgICAgKiBJZiB0aGUgcG93ZXJnYXRpbmcgY29uZmlndXJhdGlv biBkb2Vzbid0IGNoYW5nZSwgbm8gbmVlZCB0bwo+PiArICAgICAgICAqIHJlcHJvZ3JhbS4KPj4g KyAgICAgICAgKi8KPj4gKyAgICAgICBpZiAoZW5naW5lLT5sYXN0X3NzZXUudmFsdWUgPT0gY2Ut PnNzZXUudmFsdWUpCj4+ICsgICAgICAgICAgICAgICByZXR1cm47Cj4+ICsKPj4gKyAgICAgICAq Y3MrKyA9IE1JX0JBVENIX0JVRkZFUl9TVEFSVF9HRU44IHwgTUlfQkFUQ0hfU0VDT05EX0xFVkVM Owo+IFlvdSBhcmUgbm90IGEgc2Vjb25kIGxldmVsIGJhdGNoLiBZb3UgYXJlIGNhbGxpbmcgZnJv bSB0aGUgcmluZyB0byBhCj4gZ2xvYmFsIGFkZHJlc3Mgb2YgXzBfLgo+Cj4+ICsgICAgICAgKmNz KysgPSAwOwo+IGxvdyAzMmJpdHMgPSAwCj4KPj4gKyAgICAgICAqY3MrKyA9IGk5MTVfZ2d0dF9v ZmZzZXQoc3RyZWFtLT5ub2FfcmVwcm9ncmFtX3ZtYSk7Cj4gaGlnaCAzMmJpdHMgPSBhZGRyZXNz IHlvdSB3YW50ZWQuIChvcmRlciByZXZlcnNlZCkKCkZpeGluZy4uLi4KCj4KPj4gKwo+PiArICAg ICAgIGVuZ2luZS0+bGFzdF9zc2V1ID0gY2UtPnNzZXU7Cj4+ICt9Cj4+ICsKPj4gICBzdGF0aWMg dm9pZCBwb3J0X2Fzc2lnbihzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydCwgc3RydWN0IGk5MTVf cmVxdWVzdCAqcnEpCj4+ICAgewo+PiAgICAgICAgICBHRU1fQlVHX09OKHJxID09IHBvcnRfcmVx dWVzdChwb3J0KSk7Cj4+IEBAIC01MTcsNiArNTQ5LDggQEAgc3RhdGljIHZvaWQgcG9ydF9hc3Np Z24oc3RydWN0IGV4ZWNsaXN0X3BvcnQgKnBvcnQsIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ PiAgICAgICAgICBpZiAocG9ydF9pc3NldChwb3J0KSkKPj4gICAgICAgICAgICAgICAgICBpOTE1 X3JlcXVlc3RfcHV0KHBvcnRfcmVxdWVzdChwb3J0KSk7Cj4+ICAgCj4+ICsgICAgICAgbWF5YmVf ZW5hYmxlX25vYV9yZXBnb3JhbShycSk7Cj4gSG93IHNob3VsZCB0aGlzIHdvcmsgZm9yIHRoZSBn dWM/IEhvdyBzaG91bGQgdGhpcyB3b3JrIGZvciBhbWFsZ2FtYXRlZAo+IGNvbnRleHRzPyBTaG91 bGQgdGhpcyBvbmx5IGJlIGRvbmUgZm9yIHRoZSBmaXJzdCByZXF1ZXN0IGluIHRoZSBzZXF1ZW5j ZQo+IGFuZCBkZWZpbml0ZWx5IG5vdCBkb25lIGZvciBsaXRlLXJlc3RvcmUuCgpJJ20gYXNzdW1p bmcgdGhhdCBHdUMgZG9lcyBub3QgcmVvcmRlciByZXF1ZXN0cyBzdWJtaXR0ZWQgYnkgaTkxNS4K Cj4+ICsKPj4gICAgICAgICAgcG9ydF9zZXQocG9ydCwgcG9ydF9wYWNrKGk5MTVfcmVxdWVzdF9n ZXQocnEpLCBwb3J0X2NvdW50KHBvcnQpKSk7Cj4+ICAgfQo+PiAgIAo+PiBAQCAtMTA0Nyw2ICsx MDgxLDEzIEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJtaXNzaW9uX3Rhc2tsZXQodW5zaWdu ZWQgbG9uZyBkYXRhKQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZlsyKmhlYWQg KyAxXSA9PSBleGVjbGlzdHMtPnByZWVtcHRfY29tcGxldGVfc3RhdHVzKSB7Cj4+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEdFTV9UUkFDRSgiJXMgcHJlZW1wdC1pZGxlXG4iLCBl bmdpbmUtPm5hbWUpOwo+PiAgIAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogQ2xlYXIgb3V0IHRoZSBzdGF0 ZSBvZiB0aGUgc3NldSBvbiB0aGUKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KiBlbmdpbmUsIGFzIGl0J3Mgbm90IGNsZWFyIHdoYXQgaXQgd2lsbCBiZQo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqIGFmdGVyIHByZWVtcHRpb24uCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICovCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbWVtc2V0KCZlbmdpbmUtPmxhc3Rfc3NldSwgMCwgc2l6ZW9mKGVuZ2luZS0+bGFzdF9zc2V1 KSk7Cj4gT2gsIHlvdSBhcmUgbWlzc2luZyBjb21wbGV0ZV9wcmVlbXB0X2NvbnRleHQuIEJ1dCB5 b3UgYWxzbyBuZWVkIHRvIHJlc2V0Cj4gYWZ0ZXIgcmVzZXQsIHNvIGNhbmNlbF9wb3J0X3JlcXVl c3RzIGlzIGFsc28gc2Vuc2lzYmxlLgoKVGhhbmtzLCBwdXR0aW5nIGl0IHRoZXJlLgoKPgo+PiAr Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWNsaXN0c19jYW5jZWxfcG9y dF9yZXF1ZXN0cyhleGVjbGlzdHMpOwo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBleGVjbGlzdHNfdW53aW5kX2luY29tcGxldGVfcmVxdWVzdHMoZXhlY2xpc3RzKTsKPj4gICAK Pj4gQEAgLTE5MzcsMTAgKzE5NzgsMjYgQEAgc3RhdGljIGludCBnZW44X2VtaXRfYmJfc3RhcnQo c3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCj4+ICAgICAgICAgICAgICAgICAgcnEtPmN0eC0+cHBn dHQtPnBkX2RpcnR5X3JpbmdzICY9IH5pbnRlbF9lbmdpbmVfZmxhZyhycS0+ZW5naW5lKTsKPj4g ICAgICAgICAgfQo+PiAgIAo+PiAtICAgICAgIGNzID0gaW50ZWxfcmluZ19iZWdpbihycSwgNik7 Cj4+ICsgICAgICAgY3MgPSBpbnRlbF9yaW5nX2JlZ2luKHJxLCBycS0+ZW5naW5lLT5pZCA9PSBS Q1MgPyAxMCA6IDYpOwo+PiAgICAgICAgICBpZiAoSVNfRVJSKGNzKSkKPj4gICAgICAgICAgICAg ICAgICByZXR1cm4gUFRSX0VSUihjcyk7Cj4+ICAgCj4+ICsgICAgICAgaWYgKHJxLT5lbmdpbmUt PmlkID09IFJDUykgewo+PiArICAgICAgICAgICAgICAgLyoKPj4gKyAgICAgICAgICAgICAgICAq IExlYXZlIHNvbWUgaW5zdHJ1Y3Rpb25zIHRvIGJlIHdyaXR0ZW4gd2l0aCBhbgo+PiArICAgICAg ICAgICAgICAgICogTUlfQkFUQ0hfQlVGRkVSX1NUQVJUIHRvIHRoZSBpOTE1L3BlcmYgTk9BIHJl cHJvZ3JhbW1pbmcKPj4gKyAgICAgICAgICAgICAgICAqIGJhdGNoYnVmZmVyLiBXZSBvbmx5IHR1 cm4gdGhvc2UgTUlfTk9PUCBpbnRvCj4+ICsgICAgICAgICAgICAgICAgKiBNSV9CQVRDSF9CVUZG RVJfU1RBUlQgd2hlbiB3ZSBkZXRlY3QgYSBTU0VVIHBvd2VyZ2F0aW5nCj4+ICsgICAgICAgICAg ICAgICAgKiBjb25maWd1cmF0aW9uIGNoYW5nZSB0aGF0IG1pZ2h0IGFmZmVjdCBOT0EuIFRoaXMg aXMgb25seQo+PiArICAgICAgICAgICAgICAgICogZm9yIHRoZSBSQ1MuCj4+ICsgICAgICAgICAg ICAgICAgKi8KPj4gKyAgICAgICAgICAgICAgIHJxLT5wZXJmX3Byb2dfc3RhcnQgPSBjczsKPj4g KyAgICAgICAgICAgICAgICpjcysrID0gTUlfTk9PUDsKPj4gKyAgICAgICAgICAgICAgICpjcysr ID0gTUlfTk9PUDsKPj4gKyAgICAgICAgICAgICAgICpjcysrID0gTUlfTk9PUDsKPj4gKyAgICAg ICAgICAgICAgICpjcysrID0gTUlfTk9PUDsgLyogQWxpZ25pbmcgdG8gMiBkd29yZHMgKi8KPj4g KyAgICAgICB9Cj4+ICsKPj4gICAgICAgICAgLyoKPj4gICAgICAgICAgICogV2FEaXNhYmxlQ3R4 UmVzdG9yZUFyYml0cmF0aW9uOmJkdyxjaHYKPj4gICAgICAgICAgICoKPj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+PiBpbmRleCA4ZjE5MzQ5YTYwNTUuLmNkZTc5MTIz NDM5NyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+PiBA QCAtNTI1LDYgKzUyNSw4IEBAIHN0YXRpYyBpbnQgaW5pdF9yaW5nX2NvbW1vbihzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCj4+ICAgICAgICAgIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYp ID4gMikKPj4gICAgICAgICAgICAgICAgICBJOTE1X1dSSVRFX01PREUoZW5naW5lLCBfTUFTS0VE X0JJVF9ESVNBQkxFKFNUT1BfUklORykpOwo+PiAgIAo+PiArICAgICAgIG1lbXNldCgmZW5naW5l LT5sYXN0X3NzZXUsIDAsIHNpemVvZihlbmdpbmUtPmxhc3Rfc3NldSkpOwo+IFdoeSBvbmx5IGxl Z2FjeSBzdWJtaXNzaW9uPwoKRml4aW5nLi4uCgo+Cj4+ICsKPj4gICBvdXQ6Cj4+ICAgICAgICAg IGludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KGRldl9wcml2LCBGT1JDRVdBS0VfQUxMKTsKPj4g ICAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+PiBpbmRleCAwMTA3 NTBlOGVlNDQuLjJmODUxOGUxYTQ5ZiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuaAo+PiBAQCAtMzQzLDYgKzM0Myw4IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3Mgewo+PiAgIAo+PiAgICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqZGVmYXVs dF9zdGF0ZTsKPj4gICAKPj4gKyAgICAgICB1bmlvbiBpOTE1X2dlbV9zc2V1IGxhc3Rfc3NldTsK PiBUaGUgc3RydWN0IGhlcmUgaXMgaW50ZXJuYWw7IGRlYmF0YWJsZSBpZiBpdCB3YW50cyB0aGUg R0VNIG1vbmlrZXIgZm9yCj4gYmVpbmcgcGFydCBvZiB0aGUgR0VNIHVzZXIgaW50ZXJmYWNlLgo+ Cj4gTG9va3MgbGlrZSB0aGlzIHdhbnRlZCBhIHNlZmx0ZXN0Lgo+IC1DaHJpcwo+CgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK