From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak S Subject: Re: [PATCH 3/8] drm/i915: Skip uncore lock on earlier gens Date: Fri, 12 Dec 2014 17:27:19 +0530 Message-ID: <548AD81F.6070308@linux.intel.com> References: <1418063262-32256-1-git-send-email-mika.kuoppala@intel.com> <1418063262-32256-3-git-send-email-mika.kuoppala@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id E190A6E125 for ; Thu, 11 Dec 2014 04:00:29 -0800 (PST) In-Reply-To: <1418063262-32256-3-git-send-email-mika.kuoppala@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIE1vbmRheSAwOCBEZWNlbWJlciAyMDE0IDExOjU3IFBNLCBNaWthIEt1b3BwYWxhIHdyb3Rl Ogo+IEZyb206IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+Cj4gV2l0 aCBnZW4gPCA2IHdlIGRvbid0IG5lZWQgdG8gdGFrZSB1bmNvcmUgbG9jayBhcyB3ZQo+IGRvbid0 IGhhdmUgYW55dGhpbmcgdG8gcHJvdGVjdCBmcm9tIGNvbmN1cnJlbnQgYWNjZXNzLgo+Cj4gdjI6 IHJlYmFzZSBhbmQgYWNjb3VudCBmb3IgZ2VuOSBjaGFuZ2VzCj4KPiBTaWduZWQtb2ZmLWJ5OiBD aHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4gKHYxKQo+IFNpZ25lZC1vZmYt Ynk6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMgfCAxNTggKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tCj4gICAxIGZpbGUgY2hhbmdlZCwgOTEgaW5zZXJ0aW9ucygrKSwg NjcgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfdW5jb3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwo+IGluZGV4 IGExY2ViOTIuLjA2OWZlN2EgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfdW5jb3JlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwo+ IEBAIC03MDcsMzggKzcwNyw2MSBAQCBoc3dfdW5jbGFpbWVkX3JlZ19kZXRlY3Qoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCX0KPiAgIH0KPiAgIAo+IC0jZGVmaW5lIFJF R19SRUFEX0hFQURFUih4KSBcCj4gLQl1bnNpZ25lZCBsb25nIGlycWZsYWdzOyBcCj4gKyNkZWZp bmUgR0VOMl9SRUFEX0hFQURFUih4KSBcCj4gICAJdSMjeCB2YWwgPSAwOyBcCj4gLQlhc3NlcnRf ZGV2aWNlX25vdF9zdXNwZW5kZWQoZGV2X3ByaXYpOyBcCj4gLQlzcGluX2xvY2tfaXJxc2F2ZSgm ZGV2X3ByaXYtPnVuY29yZS5sb2NrLCBpcnFmbGFncykKPiArCWFzc2VydF9kZXZpY2Vfbm90X3N1 c3BlbmRlZChkZXZfcHJpdik7Cj4gICAKPiAtI2RlZmluZSBSRUdfUkVBRF9GT09URVIgXAo+IC0J c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnVuY29yZS5sb2NrLCBpcnFmbGFncyk7 IFwKPiArI2RlZmluZSBHRU4yX1JFQURfRk9PVEVSIFwKPiAgIAl0cmFjZV9pOTE1X3JlZ19ydyhm YWxzZSwgcmVnLCB2YWwsIHNpemVvZih2YWwpLCB0cmFjZSk7IFwKPiAgIAlyZXR1cm4gdmFsCj4g ICAKPiAtI2RlZmluZSBfX2dlbjRfcmVhZCh4KSBcCj4gKyNkZWZpbmUgX19nZW4yX3JlYWQoeCkg XAo+ICAgc3RhdGljIHUjI3ggXAo+IC1nZW40X3JlYWQjI3goc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCBvZmZfdCByZWcsIGJvb2wgdHJhY2UpIHsgXAo+IC0JUkVHX1JFQURfSEVB REVSKHgpOyBcCj4gK2dlbjJfcmVhZCMjeChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIG9mZl90IHJlZywgYm9vbCB0cmFjZSkgeyBcCj4gKwlHRU4yX1JFQURfSEVBREVSKHgpOyBc Cj4gICAJdmFsID0gX19yYXdfaTkxNV9yZWFkIyN4KGRldl9wcml2LCByZWcpOyBcCj4gLQlSRUdf UkVBRF9GT09URVI7IFwKPiArCUdFTjJfUkVBRF9GT09URVI7IFwKPiAgIH0KPiAgIAo+ICAgI2Rl ZmluZSBfX2dlbjVfcmVhZCh4KSBcCj4gICBzdGF0aWMgdSMjeCBcCj4gICBnZW41X3JlYWQjI3go c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBvZmZfdCByZWcsIGJvb2wgdHJhY2Up IHsgXAo+IC0JUkVHX1JFQURfSEVBREVSKHgpOyBcCj4gKwlHRU4yX1JFQURfSEVBREVSKHgpOyBc Cj4gICAJaWxrX2R1bW15X3dyaXRlKGRldl9wcml2KTsgXAo+ICAgCXZhbCA9IF9fcmF3X2k5MTVf cmVhZCMjeChkZXZfcHJpdiwgcmVnKTsgXAo+IC0JUkVHX1JFQURfRk9PVEVSOyBcCj4gKwlHRU4y X1JFQURfRk9PVEVSOyBcCj4gICB9Cj4gICAKPiArX19nZW41X3JlYWQoOCkKPiArX19nZW41X3Jl YWQoMTYpCj4gK19fZ2VuNV9yZWFkKDMyKQo+ICtfX2dlbjVfcmVhZCg2NCkKPiArX19nZW4yX3Jl YWQoOCkKPiArX19nZW4yX3JlYWQoMTYpCj4gK19fZ2VuMl9yZWFkKDMyKQo+ICtfX2dlbjJfcmVh ZCg2NCkKPiArCj4gKyN1bmRlZiBfX2dlbjVfcmVhZAo+ICsjdW5kZWYgX19nZW4yX3JlYWQKPiAr Cj4gKyN1bmRlZiBHRU4yX1JFQURfRk9PVEVSCj4gKyN1bmRlZiBHRU4yX1JFQURfSEVBREVSCj4g Kwo+ICsjZGVmaW5lIEdFTjZfUkVBRF9IRUFERVIoeCkgXAo+ICsJdW5zaWduZWQgbG9uZyBpcnFm bGFnczsgXAo+ICsJdSMjeCB2YWwgPSAwOyBcCj4gKwlhc3NlcnRfZGV2aWNlX25vdF9zdXNwZW5k ZWQoZGV2X3ByaXYpOyBcCj4gKwlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnVuY29yZS5s b2NrLCBpcnFmbGFncykKPiArCj4gKyNkZWZpbmUgR0VONl9SRUFEX0ZPT1RFUiBcCj4gKwlzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2ssIGlycWZsYWdzKTsgXAo+ ICsJdHJhY2VfaTkxNV9yZWdfcncoZmFsc2UsIHJlZywgdmFsLCBzaXplb2YodmFsKSwgdHJhY2Up OyBcCj4gKwlyZXR1cm4gdmFsCj4gKwo+ICAgI2RlZmluZSBfX2dlbjZfcmVhZCh4KSBcCj4gICBz dGF0aWMgdSMjeCBcCj4gICBnZW42X3JlYWQjI3goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCBvZmZfdCByZWcsIGJvb2wgdHJhY2UpIHsgXAo+IC0JUkVHX1JFQURfSEVBREVSKHgp OyBcCj4gKwlHRU42X1JFQURfSEVBREVSKHgpOyBcCj4gICAJaHN3X3VuY2xhaW1lZF9yZWdfZGVi dWcoZGV2X3ByaXYsIHJlZywgdHJ1ZSwgdHJ1ZSk7IFwKPiAgIAlpZiAoZGV2X3ByaXYtPnVuY29y ZS5mb3JjZXdha2VfY291bnQgPT0gMCAmJiBcCj4gICAJICAgIE5FRURTX0ZPUkNFX1dBS0UoKGRl dl9wcml2KSwgKHJlZykpKSB7IFwKPiBAQCAtNzUwLDE0ICs3NzMsMTQgQEAgZ2VuNl9yZWFkIyN4 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgb2ZmX3QgcmVnLCBib29sIHRyYWNl KSB7IFwKPiAgIAl9IFwKPiAgIAl2YWwgPSBfX3Jhd19pOTE1X3JlYWQjI3goZGV2X3ByaXYsIHJl Zyk7IFwKPiAgIAloc3dfdW5jbGFpbWVkX3JlZ19kZWJ1ZyhkZXZfcHJpdiwgcmVnLCB0cnVlLCBm YWxzZSk7IFwKPiAtCVJFR19SRUFEX0ZPT1RFUjsgXAo+ICsJR0VONl9SRUFEX0ZPT1RFUjsgXAo+ ICAgfQo+ICAgCj4gICAjZGVmaW5lIF9fdmx2X3JlYWQoeCkgXAo+ICAgc3RhdGljIHUjI3ggXAo+ ICAgdmx2X3JlYWQjI3goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBvZmZfdCBy ZWcsIGJvb2wgdHJhY2UpIHsgXAo+ICAgCXVuc2lnbmVkIGZ3ZW5naW5lID0gMDsgXAo+IC0JUkVH X1JFQURfSEVBREVSKHgpOyBcCj4gKwlHRU42X1JFQURfSEVBREVSKHgpOyBcCj4gICAJaWYgKEZP UkNFV0FLRV9WTFZfUkVOREVSX1JBTkdFX09GRlNFVChyZWcpKSB7IFwKPiAgIAkJaWYgKGRldl9w cml2LT51bmNvcmUuZndfcmVuZGVyY291bnQgPT0gMCkgXAo+ICAgCQkJZndlbmdpbmUgPSBGT1JD RVdBS0VfUkVOREVSOyBcCj4gQEAgLTc3MCwxNCArNzkzLDE0IEBAIHZsdl9yZWFkIyN4KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgb2ZmX3QgcmVnLCBib29sIHRyYWNlKSB7IFwK PiAgIAl2YWwgPSBfX3Jhd19pOTE1X3JlYWQjI3goZGV2X3ByaXYsIHJlZyk7IFwKPiAgIAlpZiAo ZndlbmdpbmUpIFwKPiAgIAkJZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5mb3JjZV93YWtlX3B1dChk ZXZfcHJpdiwgZndlbmdpbmUpOyBcCj4gLQlSRUdfUkVBRF9GT09URVI7IFwKPiArCUdFTjZfUkVB RF9GT09URVI7IFwKPiAgIH0KPiAgIAo+ICAgI2RlZmluZSBfX2Nodl9yZWFkKHgpIFwKPiAgIHN0 YXRpYyB1IyN4IFwKPiAgIGNodl9yZWFkIyN4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgb2ZmX3QgcmVnLCBib29sIHRyYWNlKSB7IFwKPiAgIAl1bnNpZ25lZCBmd2VuZ2luZSA9 IDA7IFwKPiAtCVJFR19SRUFEX0hFQURFUih4KTsgXAo+ICsJR0VONl9SRUFEX0hFQURFUih4KTsg XAo+ICAgCWlmIChGT1JDRVdBS0VfQ0hWX1JFTkRFUl9SQU5HRV9PRkZTRVQocmVnKSkgeyBcCj4g ICAJCWlmIChkZXZfcHJpdi0+dW5jb3JlLmZ3X3JlbmRlcmNvdW50ID09IDApIFwKPiAgIAkJCWZ3 ZW5naW5lID0gRk9SQ0VXQUtFX1JFTkRFUjsgXAo+IEBAIC03OTUsNyArODE4LDcgQEAgY2h2X3Jl YWQjI3goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBvZmZfdCByZWcsIGJvb2wg dHJhY2UpIHsgXAo+ICAgCXZhbCA9IF9fcmF3X2k5MTVfcmVhZCMjeChkZXZfcHJpdiwgcmVnKTsg XAo+ICAgCWlmIChmd2VuZ2luZSkgXAo+ICAgCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLmZvcmNl X3dha2VfcHV0KGRldl9wcml2LCBmd2VuZ2luZSk7IFwKPiAtCVJFR19SRUFEX0ZPT1RFUjsgXAo+ ICsJR0VONl9SRUFEX0ZPT1RFUjsgXAo+ICAgfQo+ICAgCj4gICAjZGVmaW5lIFNLTF9ORUVEU19G T1JDRV9XQUtFKGRldl9wcml2LCByZWcpCVwKPiBAQCAtODA0LDcgKzgyNyw3IEBAIGNodl9yZWFk IyN4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgb2ZmX3QgcmVnLCBib29sIHRy YWNlKSB7IFwKPiAgICNkZWZpbmUgX19nZW45X3JlYWQoeCkgXAo+ICAgc3RhdGljIHUjI3ggXAo+ ICAgZ2VuOV9yZWFkIyN4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgb2ZmX3Qg cmVnLCBib29sIHRyYWNlKSB7IFwKPiAtCVJFR19SRUFEX0hFQURFUih4KTsgXAo+ICsJR0VONl9S RUFEX0hFQURFUih4KTsgXAo+ICAgCWlmICghU0tMX05FRURTX0ZPUkNFX1dBS0UoKGRldl9wcml2 KSwgKHJlZykpKSB7IFwKPiAgIAkJdmFsID0gX19yYXdfaTkxNV9yZWFkIyN4KGRldl9wcml2LCBy ZWcpOyBcCj4gICAJfSBlbHNlIHsgXAo+IEBAIC04MzAsNyArODUzLDcgQEAgZ2VuOV9yZWFkIyN4 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgb2ZmX3QgcmVnLCBib29sIHRyYWNl KSB7IFwKPiAgIAkJaWYgKGZ3ZW5naW5lKSBcCj4gICAJCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNz LmZvcmNlX3dha2VfcHV0KGRldl9wcml2LCBmd2VuZ2luZSk7IFwKPiAgIAl9IFwKPiAtCVJFR19S RUFEX0ZPT1RFUjsgXAo+ICsJR0VONl9SRUFEX0ZPT1RFUjsgXAo+ICAgfQo+ICAgCj4gICBfX2dl bjlfcmVhZCg4KQo+IEBAIC04NDksNTUgKzg3Miw2NiBAQCBfX2dlbjZfcmVhZCg4KQo+ICAgX19n ZW42X3JlYWQoMTYpCj4gICBfX2dlbjZfcmVhZCgzMikKPiAgIF9fZ2VuNl9yZWFkKDY0KQo+IC1f X2dlbjVfcmVhZCg4KQo+IC1fX2dlbjVfcmVhZCgxNikKPiAtX19nZW41X3JlYWQoMzIpCj4gLV9f Z2VuNV9yZWFkKDY0KQo+IC1fX2dlbjRfcmVhZCg4KQo+IC1fX2dlbjRfcmVhZCgxNikKPiAtX19n ZW40X3JlYWQoMzIpCj4gLV9fZ2VuNF9yZWFkKDY0KQo+ICAgCj4gICAjdW5kZWYgX19nZW45X3Jl YWQKPiAgICN1bmRlZiBfX2Nodl9yZWFkCj4gICAjdW5kZWYgX192bHZfcmVhZAo+ICAgI3VuZGVm IF9fZ2VuNl9yZWFkCj4gLSN1bmRlZiBfX2dlbjVfcmVhZAo+IC0jdW5kZWYgX19nZW40X3JlYWQK PiAtI3VuZGVmIFJFR19SRUFEX0ZPT1RFUgo+IC0jdW5kZWYgUkVHX1JFQURfSEVBREVSCj4gKyN1 bmRlZiBHRU42X1JFQURfRk9PVEVSCj4gKyN1bmRlZiBHRU42X1JFQURfSEVBREVSCj4gICAKPiAt I2RlZmluZSBSRUdfV1JJVEVfSEVBREVSIFwKPiAtCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7IFwK PiArI2RlZmluZSBHRU4yX1dSSVRFX0hFQURFUiBcCj4gICAJdHJhY2VfaTkxNV9yZWdfcncodHJ1 ZSwgcmVnLCB2YWwsIHNpemVvZih2YWwpLCB0cmFjZSk7IFwKPiAgIAlhc3NlcnRfZGV2aWNlX25v dF9zdXNwZW5kZWQoZGV2X3ByaXYpOyBcCj4gLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYt PnVuY29yZS5sb2NrLCBpcnFmbGFncykKPiAgIAo+IC0jZGVmaW5lIFJFR19XUklURV9GT09URVIg XAo+IC0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnVuY29yZS5sb2NrLCBpcnFm bGFncykKPiArI2RlZmluZSBHRU4yX1dSSVRFX0ZPT1RFUgo+ICAgCj4gLSNkZWZpbmUgX19nZW40 X3dyaXRlKHgpIFwKPiArI2RlZmluZSBfX2dlbjJfd3JpdGUoeCkgXAo+ICAgc3RhdGljIHZvaWQg XAo+IC1nZW40X3dyaXRlIyN4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgb2Zm X3QgcmVnLCB1IyN4IHZhbCwgYm9vbCB0cmFjZSkgeyBcCj4gLQlSRUdfV1JJVEVfSEVBREVSOyBc Cj4gK2dlbjJfd3JpdGUjI3goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBvZmZf dCByZWcsIHUjI3ggdmFsLCBib29sIHRyYWNlKSB7IFwKPiArCUdFTjJfV1JJVEVfSEVBREVSOyBc Cj4gICAJX19yYXdfaTkxNV93cml0ZSMjeChkZXZfcHJpdiwgcmVnLCB2YWwpOyBcCj4gLQlSRUdf V1JJVEVfRk9PVEVSOyBcCj4gKwlHRU4yX1dSSVRFX0ZPT1RFUjsgXAo+ICAgfQo+ICAgCj4gICAj ZGVmaW5lIF9fZ2VuNV93cml0ZSh4KSBcCj4gICBzdGF0aWMgdm9pZCBcCj4gICBnZW41X3dyaXRl IyN4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgb2ZmX3QgcmVnLCB1IyN4IHZh bCwgYm9vbCB0cmFjZSkgeyBcCj4gLQlSRUdfV1JJVEVfSEVBREVSOyBcCj4gKwlHRU4yX1dSSVRF X0hFQURFUjsgXAo+ICAgCWlsa19kdW1teV93cml0ZShkZXZfcHJpdik7IFwKPiAgIAlfX3Jhd19p OTE1X3dyaXRlIyN4KGRldl9wcml2LCByZWcsIHZhbCk7IFwKPiAtCVJFR19XUklURV9GT09URVI7 IFwKPiArCUdFTjJfV1JJVEVfRk9PVEVSOyBcCj4gICB9Cj4gICAKPiArX19nZW41X3dyaXRlKDgp Cj4gK19fZ2VuNV93cml0ZSgxNikKPiArX19nZW41X3dyaXRlKDMyKQo+ICtfX2dlbjVfd3JpdGUo NjQpCj4gK19fZ2VuMl93cml0ZSg4KQo+ICtfX2dlbjJfd3JpdGUoMTYpCj4gK19fZ2VuMl93cml0 ZSgzMikKPiArX19nZW4yX3dyaXRlKDY0KQo+ICsKPiArI3VuZGVmIF9fZ2VuNV93cml0ZQo+ICsj dW5kZWYgX19nZW4yX3dyaXRlCj4gKwo+ICsjdW5kZWYgR0VOMl9XUklURV9GT09URVIKPiArI3Vu ZGVmIEdFTjJfV1JJVEVfSEVBREVSCj4gKwo+ICsjZGVmaW5lIEdFTjZfV1JJVEVfSEVBREVSIFwK PiArCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7IFwKPiArCXRyYWNlX2k5MTVfcmVnX3J3KHRydWUs IHJlZywgdmFsLCBzaXplb2YodmFsKSwgdHJhY2UpOyBcCj4gKwlhc3NlcnRfZGV2aWNlX25vdF9z dXNwZW5kZWQoZGV2X3ByaXYpOyBcCj4gKwlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnVu Y29yZS5sb2NrLCBpcnFmbGFncykKPiArCj4gKyNkZWZpbmUgR0VONl9XUklURV9GT09URVIgXAo+ ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnVuY29yZS5sb2NrLCBpcnFmbGFn cykKPiArCj4gICAjZGVmaW5lIF9fZ2VuNl93cml0ZSh4KSBcCj4gICBzdGF0aWMgdm9pZCBcCj4g ICBnZW42X3dyaXRlIyN4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgb2ZmX3Qg cmVnLCB1IyN4IHZhbCwgYm9vbCB0cmFjZSkgeyBcCj4gICAJdTMyIF9fZmlmb19yZXQgPSAwOyBc Cj4gLQlSRUdfV1JJVEVfSEVBREVSOyBcCj4gKwlHRU42X1dSSVRFX0hFQURFUjsgXAo+ICAgCWlm IChORUVEU19GT1JDRV9XQUtFKChkZXZfcHJpdiksIChyZWcpKSkgeyBcCj4gICAJCV9fZmlmb19y ZXQgPSBfX2dlbjZfZ3Rfd2FpdF9mb3JfZmlmbyhkZXZfcHJpdik7IFwKPiAgIAl9IFwKPiBAQCAt OTA1LDE0ICs5MzksMTQgQEAgZ2VuNl93cml0ZSMjeChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIG9mZl90IHJlZywgdSMjeCB2YWwsIGJvb2wgdHJhY2UKPiAgIAlpZiAodW5saWtl bHkoX19maWZvX3JldCkpIHsgXAo+ICAgCQlnZW42X2d0X2NoZWNrX2ZpZm9kYmcoZGV2X3ByaXYp OyBcCj4gICAJfSBcCj4gLQlSRUdfV1JJVEVfRk9PVEVSOyBcCj4gKwlHRU42X1dSSVRFX0ZPT1RF UjsgXAo+ICAgfQo+ICAgCj4gICAjZGVmaW5lIF9faHN3X3dyaXRlKHgpIFwKPiAgIHN0YXRpYyB2 b2lkIFwKPiAgIGhzd193cml0ZSMjeChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs IG9mZl90IHJlZywgdSMjeCB2YWwsIGJvb2wgdHJhY2UpIHsgXAo+ICAgCXUzMiBfX2ZpZm9fcmV0 ID0gMDsgXAo+IC0JUkVHX1dSSVRFX0hFQURFUjsgXAo+ICsJR0VONl9XUklURV9IRUFERVI7IFwK PiAgIAlpZiAoTkVFRFNfRk9SQ0VfV0FLRSgoZGV2X3ByaXYpLCAocmVnKSkpIHsgXAo+ICAgCQlf X2ZpZm9fcmV0ID0gX19nZW42X2d0X3dhaXRfZm9yX2ZpZm8oZGV2X3ByaXYpOyBcCj4gICAJfSBc Cj4gQEAgLTkyMyw3ICs5NTcsNyBAQCBoc3dfd3JpdGUjI3goc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCBvZmZfdCByZWcsIHUjI3ggdmFsLCBib29sIHRyYWNlKQo+ICAgCX0gXAo+ ICAgCWhzd191bmNsYWltZWRfcmVnX2RlYnVnKGRldl9wcml2LCByZWcsIGZhbHNlLCBmYWxzZSk7 IFwKPiAgIAloc3dfdW5jbGFpbWVkX3JlZ19kZXRlY3QoZGV2X3ByaXYpOyBcCj4gLQlSRUdfV1JJ VEVfRk9PVEVSOyBcCj4gKwlHRU42X1dSSVRFX0ZPT1RFUjsgXAo+ICAgfQo+ICAgCj4gICBzdGF0 aWMgY29uc3QgdTMyIGdlbjhfc2hhZG93ZWRfcmVnc1tdID0gewo+IEBAIC05NTAsNyArOTg0LDcg QEAgc3RhdGljIGJvb2wgaXNfZ2VuOF9zaGFkb3dlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIHUzMiByZWcpCj4gICAjZGVmaW5lIF9fZ2VuOF93cml0ZSh4KSBcCj4gICBzdGF0 aWMgdm9pZCBcCj4gICBnZW44X3dyaXRlIyN4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgb2ZmX3QgcmVnLCB1IyN4IHZhbCwgYm9vbCB0cmFjZSkgeyBcCj4gLQlSRUdfV1JJVEVf SEVBREVSOyBcCj4gKwlHRU42X1dSSVRFX0hFQURFUjsgXAo+ICAgCWhzd191bmNsYWltZWRfcmVn X2RlYnVnKGRldl9wcml2LCByZWcsIGZhbHNlLCB0cnVlKTsgXAo+ICAgCWlmIChyZWcgPCAweDQw MDAwICYmICFpc19nZW44X3NoYWRvd2VkKGRldl9wcml2LCByZWcpKSB7IFwKPiAgIAkJaWYgKGRl dl9wcml2LT51bmNvcmUuZm9yY2V3YWtlX2NvdW50ID09IDApIFwKPiBAQCAtOTY1LDcgKzk5OSw3 IEBAIGdlbjhfd3JpdGUjI3goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBvZmZf dCByZWcsIHUjI3ggdmFsLCBib29sIHRyYWNlCj4gICAJfSBcCj4gICAJaHN3X3VuY2xhaW1lZF9y ZWdfZGVidWcoZGV2X3ByaXYsIHJlZywgZmFsc2UsIGZhbHNlKTsgXAo+ICAgCWhzd191bmNsYWlt ZWRfcmVnX2RldGVjdChkZXZfcHJpdik7IFwKPiAtCVJFR19XUklURV9GT09URVI7IFwKPiArCUdF TjZfV1JJVEVfRk9PVEVSOyBcCj4gICB9Cj4gICAKPiAgICNkZWZpbmUgX19jaHZfd3JpdGUoeCkg XAo+IEBAIC05NzMsNyArMTAwNyw3IEBAIHN0YXRpYyB2b2lkIFwKPiAgIGNodl93cml0ZSMjeChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIG9mZl90IHJlZywgdSMjeCB2YWwsIGJv b2wgdHJhY2UpIHsgXAo+ICAgCXVuc2lnbmVkIGZ3ZW5naW5lID0gMDsgXAo+ICAgCWJvb2wgc2hh ZG93ZWQgPSBpc19nZW44X3NoYWRvd2VkKGRldl9wcml2LCByZWcpOyBcCj4gLQlSRUdfV1JJVEVf SEVBREVSOyBcCj4gKwlHRU42X1dSSVRFX0hFQURFUjsgXAo+ICAgCWlmICghc2hhZG93ZWQpIHsg XAo+ICAgCQlpZiAoRk9SQ0VXQUtFX0NIVl9SRU5ERVJfUkFOR0VfT0ZGU0VUKHJlZykpIHsgXAo+ ICAgCQkJaWYgKGRldl9wcml2LT51bmNvcmUuZndfcmVuZGVyY291bnQgPT0gMCkgXAo+IEBAIC05 OTMsNyArMTAyNyw3IEBAIGNodl93cml0ZSMjeChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsIG9mZl90IHJlZywgdSMjeCB2YWwsIGJvb2wgdHJhY2UpCj4gICAJX19yYXdfaTkxNV93 cml0ZSMjeChkZXZfcHJpdiwgcmVnLCB2YWwpOyBcCj4gICAJaWYgKGZ3ZW5naW5lKSBcCj4gICAJ CWRldl9wcml2LT51bmNvcmUuZnVuY3MuZm9yY2Vfd2FrZV9wdXQoZGV2X3ByaXYsIGZ3ZW5naW5l KTsgXAo+IC0JUkVHX1dSSVRFX0ZPT1RFUjsgXAo+ICsJR0VONl9XUklURV9GT09URVI7IFwKPiAg IH0KPiAgIAo+ICAgc3RhdGljIGNvbnN0IHUzMiBnZW45X3NoYWRvd2VkX3JlZ3NbXSA9IHsKPiBA QCAtMTAyMyw3ICsxMDU3LDcgQEAgc3RhdGljIGJvb2wgaXNfZ2VuOV9zaGFkb3dlZChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiByZWcpCj4gICBzdGF0aWMgdm9pZCBcCj4g ICBnZW45X3dyaXRlIyN4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgb2ZmX3Qg cmVnLCB1IyN4IHZhbCwgXAo+ICAgCQlib29sIHRyYWNlKSB7IFwKPiAtCVJFR19XUklURV9IRUFE RVI7IFwKPiArCUdFTjZfV1JJVEVfSEVBREVSOyBcCj4gICAJaWYgKCFTS0xfTkVFRFNfRk9SQ0Vf V0FLRSgoZGV2X3ByaXYpLCAocmVnKSkgfHwgXAo+ICAgCQkJaXNfZ2VuOV9zaGFkb3dlZChkZXZf cHJpdiwgcmVnKSkgeyBcCj4gICAJCV9fcmF3X2k5MTVfd3JpdGUjI3goZGV2X3ByaXYsIHJlZywg dmFsKTsgXAo+IEBAIC0xMDUyLDcgKzEwODYsNyBAQCBnZW45X3dyaXRlIyN4KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgb2ZmX3QgcmVnLCB1IyN4IHZhbCwgXAo+ICAgCQkJZGV2 X3ByaXYtPnVuY29yZS5mdW5jcy5mb3JjZV93YWtlX3B1dChkZXZfcHJpdiwgXAo+ICAgCQkJCQlm d2VuZ2luZSk7IFwKPiAgIAl9IFwKPiAtCVJFR19XUklURV9GT09URVI7IFwKPiArCUdFTjZfV1JJ VEVfRk9PVEVSOyBcCj4gICB9Cj4gICAKPiAgIF9fZ2VuOV93cml0ZSg4KQo+IEBAIC0xMDc1LDI0 ICsxMTA5LDE0IEBAIF9fZ2VuNl93cml0ZSg4KQo+ICAgX19nZW42X3dyaXRlKDE2KQo+ICAgX19n ZW42X3dyaXRlKDMyKQo+ICAgX19nZW42X3dyaXRlKDY0KQo+IC1fX2dlbjVfd3JpdGUoOCkKPiAt X19nZW41X3dyaXRlKDE2KQo+IC1fX2dlbjVfd3JpdGUoMzIpCj4gLV9fZ2VuNV93cml0ZSg2NCkK PiAtX19nZW40X3dyaXRlKDgpCj4gLV9fZ2VuNF93cml0ZSgxNikKPiAtX19nZW40X3dyaXRlKDMy KQo+IC1fX2dlbjRfd3JpdGUoNjQpCj4gICAKPiAgICN1bmRlZiBfX2dlbjlfd3JpdGUKPiAgICN1 bmRlZiBfX2Nodl93cml0ZQo+ICAgI3VuZGVmIF9fZ2VuOF93cml0ZQo+ICAgI3VuZGVmIF9faHN3 X3dyaXRlCj4gICAjdW5kZWYgX19nZW42X3dyaXRlCj4gLSN1bmRlZiBfX2dlbjVfd3JpdGUKPiAt I3VuZGVmIF9fZ2VuNF93cml0ZQo+IC0jdW5kZWYgUkVHX1dSSVRFX0ZPT1RFUgo+IC0jdW5kZWYg UkVHX1dSSVRFX0hFQURFUgo+ICsjdW5kZWYgR0VONl9XUklURV9GT09URVIKPiArI3VuZGVmIEdF TjZfV1JJVEVfSEVBREVSCj4gICAKPiAgICNkZWZpbmUgQVNTSUdOX1dSSVRFX01NSU9fVkZVTkNT KHgpIFwKPiAgIGRvIHsgXAo+IEBAIC0xMjA1LDggKzEyMjksOCBAQCB2b2lkIGludGVsX3VuY29y ZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJY2FzZSA0Ogo+ICAgCWNhc2UgMzoK PiAgIAljYXNlIDI6Cj4gLQkJQVNTSUdOX1dSSVRFX01NSU9fVkZVTkNTKGdlbjQpOwo+IC0JCUFT U0lHTl9SRUFEX01NSU9fVkZVTkNTKGdlbjQpOwo+ICsJCUFTU0lHTl9XUklURV9NTUlPX1ZGVU5D UyhnZW4yKTsKPiArCQlBU1NJR05fUkVBRF9NTUlPX1ZGVU5DUyhnZW4yKTsKPiAgIAkJYnJlYWs7 Cj4gICAJfQo+ICAgCgpjaGFuZ2VzIGxvb2tzIGZpbmUgdG8gbWUKUmV2aWV3ZWQtYnk6IERlZXBh ayBTPGRlZXBhay5zQGxpbnV4LmludGVsLmNvbT4KCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=