From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [RFC 06/10] drm/i915: reduce the dev_priv->uncore dance in uncore.c Date: Fri, 15 Mar 2019 16:07:58 -0700 Message-ID: References: <20190313231319.711-1-daniele.ceraolospurio@intel.com> <20190313231319.711-7-daniele.ceraolospurio@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id AF29A6E553 for ; Fri, 15 Mar 2019 23:08:05 +0000 (UTC) In-Reply-To: <20190313231319.711-7-daniele.ceraolospurio@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniele Ceraolo Spurio , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RW0gcXVhLCAyMDE5LTAzLTEzIMOgcyAxNjoxMyAtMDcwMCwgRGFuaWVsZSBDZXJhb2xvIFNwdXJp byBlc2NyZXZldToKPiBVc2UgYSBsb2NhbCB2YXJpYWJsZSB3aGVyZSBpdCBtYWtlcyBzZW5zZS4K CkFsc28gd29ydGggaXQgb24gaXRzIG93biBJTUhPLgoKUmV2aWV3ZWQtYnk6IFBhdWxvIFphbm9u aSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgoKPiAKPiBDYzogUGF1bG8gWmFub25pIDxwYXVs by5yLnphbm9uaUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogRGFuaWVsZSBDZXJhb2xvIFNw dXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMgfCA3OSArKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgMzYgZGVsZXRpb25zKC0p Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKPiBpbmRleCBhZmJiZWZjMzIyMjcu LjMyYzc1MzM3Yjk2ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91 bmNvcmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4gQEAg LTMxMSw2ICszMTEsNyBAQCBzdGF0aWMgaW5saW5lIHUzMiBmaWZvX2ZyZWVfZW50cmllcyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAo+ICBzdGF0aWMgdm9pZCBfX2dlbjZf Z3Rfd2FpdF9mb3JfZmlmbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsK PiArCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5jb3JlOwo+ICAJ dTMyIG47Cj4gIAo+ICAJLyogT24gVkxWLCBGSUZPIHdpbGwgYmUgc2hhcmVkIGJ5IGJvdGggU1cg YW5kIEhXLgo+IEBAIC0zMTgsNyArMzE5LDcgQEAgc3RhdGljIHZvaWQgX19nZW42X2d0X3dhaXRf Zm9yX2ZpZm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJaWYgKElTX1ZB TExFWVZJRVcoZGV2X3ByaXYpKQo+ICAJCW4gPSBmaWZvX2ZyZWVfZW50cmllcyhkZXZfcHJpdik7 Cj4gIAllbHNlCj4gLQkJbiA9IGRldl9wcml2LT51bmNvcmUuZmlmb19jb3VudDsKPiArCQluID0g dW5jb3JlLT5maWZvX2NvdW50Owo+ICAKPiAgCWlmIChuIDw9IEdUX0ZJRk9fTlVNX1JFU0VSVkVE X0VOVFJJRVMpIHsKPiAgCQlpZiAod2FpdF9mb3JfYXRvbWljKChuID0gZmlmb19mcmVlX2VudHJp ZXMoZGV2X3ByaXYpKSA+Cj4gQEAgLTMyOSw3ICszMzAsNyBAQCBzdGF0aWMgdm9pZCBfX2dlbjZf Z3Rfd2FpdF9mb3JfZmlmbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAkJ fQo+ICAJfQo+ICAKPiAtCWRldl9wcml2LT51bmNvcmUuZmlmb19jb3VudCA9IG4gLSAxOwo+ICsJ dW5jb3JlLT5maWZvX2NvdW50ID0gbiAtIDE7Cj4gIH0KPiAgCj4gIHN0YXRpYyBlbnVtIGhydGlt ZXJfcmVzdGFydAo+IEBAIC03OTMsNyArNzk0LDcgQEAgdm9pZCBhc3NlcnRfZm9yY2V3YWtlc19h Y3RpdmUoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLAo+ICAjZGVmaW5lIEdFTjExX05FRURT X0ZPUkNFX1dBS0UocmVnKSBcCj4gIAkoKHJlZykgPCAweDQwMDAwIHx8ICgocmVnKSA+PSAweDFj MDAwMCAmJiAocmVnKSA8IDB4MWRjMDAwKSkKPiAgCj4gLSNkZWZpbmUgX19nZW42X3JlZ19yZWFk X2Z3X2RvbWFpbnMob2Zmc2V0KSBcCj4gKyNkZWZpbmUgX19nZW42X3JlZ19yZWFkX2Z3X2RvbWFp bnModW5jb3JlLCBvZmZzZXQpIFwKPiAgKHsgXAo+ICAJZW51bSBmb3JjZXdha2VfZG9tYWlucyBf X2Z3ZDsgXAo+ICAJaWYgKE5FRURTX0ZPUkNFX1dBS0Uob2Zmc2V0KSkgXAo+IEBAIC04NzksMTkg Kzg4MCwxOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2ZvcmNld2FrZV9yYW5nZSBfX3Zs dl9md19yYW5nZXNbXSA9IHsKPiAgCUdFTl9GV19SQU5HRSgweDMwMDAwLCAweDNmZmZmLCBGT1JD RVdBS0VfTUVESUEpLAo+ICB9Owo+ICAKPiAtI2RlZmluZSBfX2Z3dGFibGVfcmVnX3JlYWRfZndf ZG9tYWlucyhvZmZzZXQpIFwKPiArI2RlZmluZSBfX2Z3dGFibGVfcmVnX3JlYWRfZndfZG9tYWlu cyh1bmNvcmUsIG9mZnNldCkgXAo+ICAoeyBcCj4gIAllbnVtIGZvcmNld2FrZV9kb21haW5zIF9f ZndkID0gMDsgXAo+ICAJaWYgKE5FRURTX0ZPUkNFX1dBS0UoKG9mZnNldCkpKSBcCj4gLQkJX19m d2QgPSBmaW5kX2Z3X2RvbWFpbigmZGV2X3ByaXYtPnVuY29yZSwgb2Zmc2V0KTsgXAo+ICsJCV9f ZndkID0gZmluZF9md19kb21haW4odW5jb3JlLCBvZmZzZXQpOyBcCj4gIAlfX2Z3ZDsgXAo+ICB9 KQo+ICAKPiAtI2RlZmluZSBfX2dlbjExX2Z3dGFibGVfcmVnX3JlYWRfZndfZG9tYWlucyhvZmZz ZXQpIFwKPiArI2RlZmluZSBfX2dlbjExX2Z3dGFibGVfcmVnX3JlYWRfZndfZG9tYWlucyh1bmNv cmUsIG9mZnNldCkgXAo+ICAoeyBcCj4gIAllbnVtIGZvcmNld2FrZV9kb21haW5zIF9fZndkID0g MDsgXAo+ICAJaWYgKEdFTjExX05FRURTX0ZPUkNFX1dBS0UoKG9mZnNldCkpKSBcCj4gLQkJX19m d2QgPSBmaW5kX2Z3X2RvbWFpbigmZGV2X3ByaXYtPnVuY29yZSwgb2Zmc2V0KTsgXAo+ICsJCV9f ZndkID0gZmluZF9md19kb21haW4odW5jb3JlLCBvZmZzZXQpOyBcCj4gIAlfX2Z3ZDsgXAo+ICB9 KQo+ICAKPiBAQCAtOTQzLDcgKzk0NCw3IEBAIHN0YXRpYyBib29sIGlzX2dlbiMjeCMjX3NoYWRv d2VkKHUzMiBvZmZzZXQpIFwKPiAgX19pc19nZW5YX3NoYWRvd2VkKDgpCj4gIF9faXNfZ2VuWF9z aGFkb3dlZCgxMSkKPiAgCj4gLSNkZWZpbmUgX19nZW44X3JlZ193cml0ZV9md19kb21haW5zKG9m ZnNldCkgXAo+ICsjZGVmaW5lIF9fZ2VuOF9yZWdfd3JpdGVfZndfZG9tYWlucyh1bmNvcmUsIG9m ZnNldCkgXAo+ICAoeyBcCj4gIAllbnVtIGZvcmNld2FrZV9kb21haW5zIF9fZndkOyBcCj4gIAlp ZiAoTkVFRFNfRk9SQ0VfV0FLRShvZmZzZXQpICYmICFpc19nZW44X3NoYWRvd2VkKG9mZnNldCkp IFwKPiBAQCAtOTczLDE5ICs5NzQsMTkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9mb3Jj ZXdha2VfcmFuZ2UgX19jaHZfZndfcmFuZ2VzW10gPSB7Cj4gIAlHRU5fRldfUkFOR0UoMHgzMDAw MCwgMHgzN2ZmZiwgRk9SQ0VXQUtFX01FRElBKSwKPiAgfTsKPiAgCj4gLSNkZWZpbmUgX19md3Rh YmxlX3JlZ193cml0ZV9md19kb21haW5zKG9mZnNldCkgXAo+ICsjZGVmaW5lIF9fZnd0YWJsZV9y ZWdfd3JpdGVfZndfZG9tYWlucyh1bmNvcmUsIG9mZnNldCkgXAo+ICAoeyBcCj4gIAllbnVtIGZv cmNld2FrZV9kb21haW5zIF9fZndkID0gMDsgXAo+ICAJaWYgKE5FRURTX0ZPUkNFX1dBS0UoKG9m ZnNldCkpICYmICFpc19nZW44X3NoYWRvd2VkKG9mZnNldCkpIFwKPiAtCQlfX2Z3ZCA9IGZpbmRf ZndfZG9tYWluKCZkZXZfcHJpdi0+dW5jb3JlLCBvZmZzZXQpOyBcCj4gKwkJX19md2QgPSBmaW5k X2Z3X2RvbWFpbih1bmNvcmUsIG9mZnNldCk7IFwKPiAgCV9fZndkOyBcCj4gIH0pCj4gIAo+IC0j ZGVmaW5lIF9fZ2VuMTFfZnd0YWJsZV9yZWdfd3JpdGVfZndfZG9tYWlucyhvZmZzZXQpIFwKPiAr I2RlZmluZSBfX2dlbjExX2Z3dGFibGVfcmVnX3dyaXRlX2Z3X2RvbWFpbnModW5jb3JlLCBvZmZz ZXQpIFwKPiAgKHsgXAo+ICAJZW51bSBmb3JjZXdha2VfZG9tYWlucyBfX2Z3ZCA9IDA7IFwKPiAg CWlmIChHRU4xMV9ORUVEU19GT1JDRV9XQUtFKChvZmZzZXQpKSAmJiAhaXNfZ2VuMTFfc2hhZG93 ZWQob2Zmc2V0KSkgXAo+IC0JCV9fZndkID0gZmluZF9md19kb21haW4oJmRldl9wcml2LT51bmNv cmUsIG9mZnNldCk7IFwKPiArCQlfX2Z3ZCA9IGZpbmRfZndfZG9tYWluKHVuY29yZSwgb2Zmc2V0 KTsgXAo+ICAJX19md2Q7IFwKPiAgfSkKPiAgCj4gQEAgLTExMzUsMTYgKzExMzYsMTcgQEAgX19n ZW4yX3JlYWQoNjQpCj4gICN1bmRlZiBHRU4yX1JFQURfSEVBREVSCj4gIAo+ICAjZGVmaW5lIEdF TjZfUkVBRF9IRUFERVIoeCkgXAo+ICsJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRl dl9wcml2LT51bmNvcmU7IFwKPiAgCXUzMiBvZmZzZXQgPSBpOTE1X21taW9fcmVnX29mZnNldChy ZWcpOyBcCj4gIAl1bnNpZ25lZCBsb25nIGlycWZsYWdzOyBcCj4gIAl1IyN4IHZhbCA9IDA7IFwK PiAgCWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZChkZXZfcHJpdik7IFwKPiAtCXNwaW5fbG9ja19p cnFzYXZlKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2ssIGlycWZsYWdzKTsgXAo+ICsJc3Bpbl9sb2Nr X2lycXNhdmUoJnVuY29yZS0+bG9jaywgaXJxZmxhZ3MpOyBcCj4gIAl1bmNsYWltZWRfcmVnX2Rl YnVnKGRldl9wcml2LCByZWcsIHRydWUsIHRydWUpCj4gIAo+ICAjZGVmaW5lIEdFTjZfUkVBRF9G T09URVIgXAo+ICAJdW5jbGFpbWVkX3JlZ19kZWJ1ZyhkZXZfcHJpdiwgcmVnLCB0cnVlLCBmYWxz ZSk7IFwKPiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT51bmNvcmUubG9jaywg aXJxZmxhZ3MpOyBcCj4gKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ1bmNvcmUtPmxvY2ssIGly cWZsYWdzKTsgXAo+ICAJdHJhY2VfaTkxNV9yZWdfcncoZmFsc2UsIHJlZywgdmFsLCBzaXplb2Yo dmFsKSwgdHJhY2UpOyBcCj4gIAlyZXR1cm4gdmFsCj4gIAo+IEBAIC0xMTgxLDkgKzExODMsOSBA QCBzdGF0aWMgdSMjeCBcCj4gIGZ1bmMjI19yZWFkIyN4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwgaTkxNV9yZWdfdCByZWcsIGJvb2wgdHJhY2UpIHsgXAo+ICAJZW51bSBmb3Jj ZXdha2VfZG9tYWlucyBmd19lbmdpbmU7IFwKPiAgCUdFTjZfUkVBRF9IRUFERVIoeCk7IFwKPiAt CWZ3X2VuZ2luZSA9IF9fIyNmdW5jIyNfcmVnX3JlYWRfZndfZG9tYWlucyhvZmZzZXQpOyBcCj4g Kwlmd19lbmdpbmUgPSBfXyMjZnVuYyMjX3JlZ19yZWFkX2Z3X2RvbWFpbnModW5jb3JlLCBvZmZz ZXQpOyBcCj4gIAlpZiAoZndfZW5naW5lKSBcCj4gLQkJX19mb3JjZV93YWtlX2F1dG8oJmRldl9w cml2LT51bmNvcmUsIGZ3X2VuZ2luZSk7IFwKPiArCQlfX2ZvcmNlX3dha2VfYXV0byh1bmNvcmUs IGZ3X2VuZ2luZSk7IFwKPiAgCXZhbCA9IF9fcmF3X2k5MTVfcmVhZCMjeChkZXZfcHJpdiwgcmVn KTsgXAo+ICAJR0VONl9SRUFEX0ZPT1RFUjsgXAo+ICB9Cj4gQEAgLTEyNDcsMTYgKzEyNDksMTcg QEAgX19nZW4yX3dyaXRlKDMyKQo+ICAjdW5kZWYgR0VOMl9XUklURV9IRUFERVIKPiAgCj4gICNk ZWZpbmUgR0VONl9XUklURV9IRUFERVIgXAo+ICsJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3Jl ID0gJmRldl9wcml2LT51bmNvcmU7IFwKPiAgCXUzMiBvZmZzZXQgPSBpOTE1X21taW9fcmVnX29m ZnNldChyZWcpOyBcCj4gIAl1bnNpZ25lZCBsb25nIGlycWZsYWdzOyBcCj4gIAl0cmFjZV9pOTE1 X3JlZ19ydyh0cnVlLCByZWcsIHZhbCwgc2l6ZW9mKHZhbCksIHRyYWNlKTsgXAo+ICAJYXNzZXJ0 X3JwbV93YWtlbG9ja19oZWxkKGRldl9wcml2KTsgXAo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRl dl9wcml2LT51bmNvcmUubG9jaywgaXJxZmxhZ3MpOyBcCj4gKwlzcGluX2xvY2tfaXJxc2F2ZSgm dW5jb3JlLT5sb2NrLCBpcnFmbGFncyk7IFwKPiAgCXVuY2xhaW1lZF9yZWdfZGVidWcoZGV2X3By aXYsIHJlZywgZmFsc2UsIHRydWUpCj4gIAo+ICAjZGVmaW5lIEdFTjZfV1JJVEVfRk9PVEVSIFwK PiAgCXVuY2xhaW1lZF9yZWdfZGVidWcoZGV2X3ByaXYsIHJlZywgZmFsc2UsIGZhbHNlKTsgXAo+ IC0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnVuY29yZS5sb2NrLCBpcnFmbGFn cykKPiArCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnVuY29yZS0+bG9jaywgaXJxZmxhZ3MpCj4g IAo+ICAjZGVmaW5lIF9fZ2VuNl93cml0ZSh4KSBcCj4gIHN0YXRpYyB2b2lkIFwKPiBAQCAtMTI3 Myw5ICsxMjc2LDkgQEAgc3RhdGljIHZvaWQgXAo+ICBmdW5jIyNfd3JpdGUjI3goc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpOTE1X3JlZ190IHJlZywgdSMjeCB2YWwsIGJvb2wg dHJhY2UpIHsgXAo+ICAJZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19lbmdpbmU7IFwKPiAgCUdF TjZfV1JJVEVfSEVBREVSOyBcCj4gLQlmd19lbmdpbmUgPSBfXyMjZnVuYyMjX3JlZ193cml0ZV9m d19kb21haW5zKG9mZnNldCk7IFwKPiArCWZ3X2VuZ2luZSA9IF9fIyNmdW5jIyNfcmVnX3dyaXRl X2Z3X2RvbWFpbnModW5jb3JlLCBvZmZzZXQpOyBcCj4gIAlpZiAoZndfZW5naW5lKSBcCj4gLQkJ X19mb3JjZV93YWtlX2F1dG8oJmRldl9wcml2LT51bmNvcmUsIGZ3X2VuZ2luZSk7IFwKPiArCQlf X2ZvcmNlX3dha2VfYXV0byh1bmNvcmUsIGZ3X2VuZ2luZSk7IFwKPiAgCV9fcmF3X2k5MTVfd3Jp dGUjI3goZGV2X3ByaXYsIHJlZywgdmFsKTsgXAo+ICAJR0VONl9XUklURV9GT09URVI7IFwKPiAg fQo+IEBAIC0xNzkwLDYgKzE3OTMsNyBAQCBpbnQgX19pbnRlbF93YWl0X2Zvcl9yZWdpc3Rlcihz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSAgICB1bnNpZ25lZCBpbnQg c2xvd190aW1lb3V0X21zLAo+ICAJCQkgICAgdTMyICpvdXRfdmFsdWUpCj4gIHsKPiArCXN0cnVj dCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5jb3JlOwo+ICAJdW5zaWduZWQg ZncgPQo+ICAJCWludGVsX3VuY29yZV9mb3JjZXdha2VfZm9yX3JlZyhkZXZfcHJpdiwgcmVnLCBG V19SRUdfUkVBRCk7Cj4gIAl1MzIgcmVnX3ZhbHVlOwo+IEBAIC0xNzk3LDE1ICsxODAxLDE1IEBA IGludCBfX2ludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiAgCj4gIAltaWdodF9zbGVlcF9pZihzbG93X3RpbWVvdXRfbXMpOwo+ICAKPiAt CXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT51bmNvcmUubG9jayk7Cj4gLQlpbnRlbF91bmNvcmVf Zm9yY2V3YWtlX2dldF9fbG9ja2VkKCZkZXZfcHJpdi0+dW5jb3JlLCBmdyk7Cj4gKwlzcGluX2xv Y2tfaXJxKCZ1bmNvcmUtPmxvY2spOwo+ICsJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9nZXRfX2xv Y2tlZCh1bmNvcmUsIGZ3KTsKPiAgCj4gIAlyZXQgPSBfX2ludGVsX3dhaXRfZm9yX3JlZ2lzdGVy X2Z3KGRldl9wcml2LAo+ICAJCQkJCSAgIHJlZywgbWFzaywgdmFsdWUsCj4gIAkJCQkJICAgZmFz dF90aW1lb3V0X3VzLCAwLCAmcmVnX3ZhbHVlKTsKPiAgCj4gLQlpbnRlbF91bmNvcmVfZm9yY2V3 YWtlX3B1dF9fbG9ja2VkKCZkZXZfcHJpdi0+dW5jb3JlLCBmdyk7Cj4gLQlzcGluX3VubG9ja19p cnEoJmRldl9wcml2LT51bmNvcmUubG9jayk7Cj4gKwlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1 dF9fbG9ja2VkKHVuY29yZSwgZncpOwo+ICsJc3Bpbl91bmxvY2tfaXJxKCZ1bmNvcmUtPmxvY2sp Owo+ICAKPiAgCWlmIChyZXQgJiYgc2xvd190aW1lb3V0X21zKQo+ICAJCXJldCA9IF9fd2FpdF9m b3IocmVnX3ZhbHVlID0gSTkxNV9SRUFEX05PVFJBQ0UocmVnKSwKPiBAQCAtMTgyOSwxMSArMTgz MywxMiBAQCBib29sIGludGVsX3VuY29yZV91bmNsYWltZWRfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gIGJvb2wKPiAgaW50ZWxfdW5jb3JlX2FybV91bmNsYWltZWRf bW1pb19kZXRlY3Rpb24oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4g KwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmZGV2X3ByaXYtPnVuY29yZTsKPiAgCWJv b2wgcmV0ID0gZmFsc2U7Cj4gIAo+IC0Jc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPnVuY29yZS5s b2NrKTsKPiArCXNwaW5fbG9ja19pcnEoJnVuY29yZS0+bG9jayk7Cj4gIAo+IC0JaWYgKHVubGlr ZWx5KGRldl9wcml2LT51bmNvcmUudW5jbGFpbWVkX21taW9fY2hlY2sgPD0gMCkpCj4gKwlpZiAo dW5saWtlbHkodW5jb3JlLT51bmNsYWltZWRfbW1pb19jaGVjayA8PSAwKSkKPiAgCQlnb3RvIG91 dDsKPiAgCj4gIAlpZiAodW5saWtlbHkoaW50ZWxfdW5jb3JlX3VuY2xhaW1lZF9tbWlvKGRldl9w cml2KSkpIHsKPiBAQCAtMTg0MywxMiArMTg0OCwxMiBAQCBpbnRlbF91bmNvcmVfYXJtX3VuY2xh aW1lZF9tbWlvX2RldGVjdGlvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g IAkJCQkgICJQbGVhc2UgdXNlIGk5MTUubW1pb19kZWJ1Zz1OIGZvciBtb3JlIGluZm9ybWF0aW9u LlxuIik7Cj4gIAkJCWk5MTVfbW9kcGFyYW1zLm1taW9fZGVidWcrKzsKPiAgCQl9Cj4gLQkJZGV2 X3ByaXYtPnVuY29yZS51bmNsYWltZWRfbW1pb19jaGVjay0tOwo+ICsJCXVuY29yZS0+dW5jbGFp bWVkX21taW9fY2hlY2stLTsKPiAgCQlyZXQgPSB0cnVlOwo+ICAJfQo+ICAKPiAgb3V0Ogo+IC0J c3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2spOwo+ICsJc3Bpbl91bmxvY2tf aXJxKCZ1bmNvcmUtPmxvY2spOwo+ICAKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiBAQCAtMTg1Nywy MSArMTg2MiwyMiBAQCBzdGF0aWMgZW51bSBmb3JjZXdha2VfZG9tYWlucwo+ICBpbnRlbF91bmNv cmVfZm9yY2V3YWtlX2Zvcl9yZWFkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiAgCQkJCWk5MTVfcmVnX3QgcmVnKQo+ICB7Cj4gKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNv cmUgPSAmZGV2X3ByaXYtPnVuY29yZTsKPiAgCXUzMiBvZmZzZXQgPSBpOTE1X21taW9fcmVnX29m ZnNldChyZWcpOwo+ICAJZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19kb21haW5zOwo+ICAKPiAg CWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7Cj4gLQkJZndfZG9tYWlucyA9IF9fZ2Vu MTFfZnd0YWJsZV9yZWdfcmVhZF9md19kb21haW5zKG9mZnNldCk7Cj4gKwkJZndfZG9tYWlucyA9 IF9fZ2VuMTFfZnd0YWJsZV9yZWdfcmVhZF9md19kb21haW5zKHVuY29yZSwgb2Zmc2V0KTsKPiAg CX0gZWxzZSBpZiAoSEFTX0ZXVEFCTEUoZGV2X3ByaXYpKSB7Cj4gLQkJZndfZG9tYWlucyA9IF9f Znd0YWJsZV9yZWdfcmVhZF9md19kb21haW5zKG9mZnNldCk7Cj4gKwkJZndfZG9tYWlucyA9IF9f Znd0YWJsZV9yZWdfcmVhZF9md19kb21haW5zKHVuY29yZSwgb2Zmc2V0KTsKPiAgCX0gZWxzZSBp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA2KSB7Cj4gLQkJZndfZG9tYWlucyA9IF9fZ2VuNl9y ZWdfcmVhZF9md19kb21haW5zKG9mZnNldCk7Cj4gKwkJZndfZG9tYWlucyA9IF9fZ2VuNl9yZWdf cmVhZF9md19kb21haW5zKHVuY29yZSwgb2Zmc2V0KTsKPiAgCX0gZWxzZSB7Cj4gIAkJV0FSTl9P TighSVNfR0VOX1JBTkdFKGRldl9wcml2LCAyLCA1KSk7Cj4gIAkJZndfZG9tYWlucyA9IDA7Cj4g IAl9Cj4gIAo+IC0JV0FSTl9PTihmd19kb21haW5zICYgfmRldl9wcml2LT51bmNvcmUuZndfZG9t YWlucyk7Cj4gKwlXQVJOX09OKGZ3X2RvbWFpbnMgJiB+dW5jb3JlLT5md19kb21haW5zKTsKPiAg Cj4gIAlyZXR1cm4gZndfZG9tYWluczsKPiAgfQo+IEBAIC0xODgwLDE1ICsxODg2LDE2IEBAIHN0 YXRpYyBlbnVtIGZvcmNld2FrZV9kb21haW5zCj4gIGludGVsX3VuY29yZV9mb3JjZXdha2VfZm9y X3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJCSBpOTE1X3Jl Z190IHJlZykKPiAgewo+ICsJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2 LT51bmNvcmU7Cj4gIAl1MzIgb2Zmc2V0ID0gaTkxNV9tbWlvX3JlZ19vZmZzZXQocmVnKTsKPiAg CWVudW0gZm9yY2V3YWtlX2RvbWFpbnMgZndfZG9tYWluczsKPiAgCj4gIAlpZiAoSU5URUxfR0VO KGRldl9wcml2KSA+PSAxMSkgewo+IC0JCWZ3X2RvbWFpbnMgPSBfX2dlbjExX2Z3dGFibGVfcmVn X3dyaXRlX2Z3X2RvbWFpbnMob2Zmc2V0KTsKPiArCQlmd19kb21haW5zID0gX19nZW4xMV9md3Rh YmxlX3JlZ193cml0ZV9md19kb21haW5zKHVuY29yZSwgb2Zmc2V0KTsKPiAgCX0gZWxzZSBpZiAo SEFTX0ZXVEFCTEUoZGV2X3ByaXYpICYmICFJU19WQUxMRVlWSUVXKGRldl9wcml2KSkgewo+IC0J CWZ3X2RvbWFpbnMgPSBfX2Z3dGFibGVfcmVnX3dyaXRlX2Z3X2RvbWFpbnMob2Zmc2V0KTsKPiAr CQlmd19kb21haW5zID0gX19md3RhYmxlX3JlZ193cml0ZV9md19kb21haW5zKHVuY29yZSwgb2Zm c2V0KTsKPiAgCX0gZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA4KSkgewo+IC0JCWZ3X2RvbWFp bnMgPSBfX2dlbjhfcmVnX3dyaXRlX2Z3X2RvbWFpbnMob2Zmc2V0KTsKPiArCQlmd19kb21haW5z ID0gX19nZW44X3JlZ193cml0ZV9md19kb21haW5zKHVuY29yZSwgb2Zmc2V0KTsKPiAgCX0gZWxz ZSBpZiAoSVNfR0VOX1JBTkdFKGRldl9wcml2LCA2LCA3KSkgewo+ICAJCWZ3X2RvbWFpbnMgPSBG T1JDRVdBS0VfUkVOREVSOwo+ICAJfSBlbHNlIHsKPiBAQCAtMTg5Niw3ICsxOTAzLDcgQEAgaW50 ZWxfdW5jb3JlX2ZvcmNld2FrZV9mb3Jfd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+ICAJCWZ3X2RvbWFpbnMgPSAwOwo+ICAJfQo+ICAKPiAtCVdBUk5fT04oZndfZG9t YWlucyAmIH5kZXZfcHJpdi0+dW5jb3JlLmZ3X2RvbWFpbnMpOwo+ICsJV0FSTl9PTihmd19kb21h aW5zICYgfnVuY29yZS0+ZndfZG9tYWlucyk7Cj4gIAo+ICAJcmV0dXJuIGZ3X2RvbWFpbnM7Cj4g IH0KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==