From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [RFC 01/10] drm/i915: do not pass dev_priv to low-level forcewake functions Date: Fri, 15 Mar 2019 13:07:33 -0700 Message-ID: References: <20190313231319.711-1-daniele.ceraolospurio@intel.com> <20190313231319.711-2-daniele.ceraolospurio@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 796496E50E for ; Fri, 15 Mar 2019 20:07:35 +0000 (UTC) In-Reply-To: <20190313231319.711-2-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 byBlc2NyZXZldToKPiBUaGUgb25seSB1c2FnZSB3ZSBoYXZlIGZvciBpdCBpcyBmb3IgdGhlIHJl Z3MgcG9pbnRlci4gU2F2ZSBhIHBvaW50ZXIgdG8KPiB0aGUgc2V0IGFuZCBhY2sgcmVnaXN0ZXJz IGluc3RlYWQgb2YgdGhlIHJlZ2lzdGVyIG9mZnNldHMgdG8gcmVtb3ZlIHRoaXMKPiByZXF1aXJl bWVudAoKUmV2aWV3ZWQtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29t PgoKPiAKPiBDYzogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+Cj4gU2ln bmVkLW9mZi1ieTogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlv QGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMg fCAxMDAgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF91bmNvcmUuaCB8ICAgOSArKy0KPiAgMiBmaWxlcyBjaGFuZ2VkLCA1MiBpbnNlcnRp b25zKCspLCA1NyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfdW5jb3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUu Ywo+IGluZGV4IDc1NjQ2YTFlMDA1MS4uY2I3OGRjZGRjOWNiIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfdW5jb3JlLmMKPiBAQCAtNTgsMTYgKzU4LDE4IEBAIGludGVsX3VuY29yZV9mb3Jj ZXdha2VfZG9tYWluX3RvX3N0cihjb25zdCBlbnVtIGZvcmNld2FrZV9kb21haW5faWQgaWQpCj4g IAlyZXR1cm4gInVua25vd24iOwo+ICB9Cj4gIAo+ICsjZGVmaW5lIGZ3X2FjayhkKSByZWFkbCgo ZCktPnJlZ19hY2spCj4gKyNkZWZpbmUgZndfc2V0KGQsIHZhbCkgd3JpdGVsKCh2YWwpLCAoZCkt PnJlZ19zZXQpCj4gKwo+ICBzdGF0aWMgaW5saW5lIHZvaWQKPiAtZndfZG9tYWluX3Jlc2V0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+IC0JCWNvbnN0IHN0cnVjdCBpbnRlbF91bmNv cmVfZm9yY2V3YWtlX2RvbWFpbiAqZCkKPiArZndfZG9tYWluX3Jlc2V0KGNvbnN0IHN0cnVjdCBp bnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZCkKPiAgewo+ICAJLyoKPiAgCSAqIFdlIGRv bid0IHJlYWxseSBrbm93IGlmIHRoZSBwb3dlcndlbGwgZm9yIHRoZSBmb3JjZXdha2UgZG9tYWlu IHdlIGFyZQo+ICAJICogdHJ5aW5nIHRvIHJlc2V0IGhlcmUgZG9lcyBleGlzdCBhdCB0aGlzIHBv aW50IChlbmdpbmVzIGNvdWxkIGJlIGZ1c2VkCj4gIAkgKiBvZmYgaW4gSUNMKyksIHNvIG5vIHdh aXRpbmcgZm9yIGFja3MKPiAgCSAqLwo+IC0JX19yYXdfaTkxNV93cml0ZTMyKGk5MTUsIGQtPnJl Z19zZXQsIGk5MTUtPnVuY29yZS5md19yZXNldCk7Cj4gKwlmd19zZXQoZCwgZm9yY2V3YWtlX2Rv bWFpbl90b191bmNvcmUoZCktPmZ3X3Jlc2V0KTsKPiAgfQo+ICAKPiAgc3RhdGljIGlubGluZSB2 b2lkCj4gQEAgLTgxLDM2ICs4MywzMiBAQCBmd19kb21haW5fYXJtX3RpbWVyKHN0cnVjdCBpbnRl bF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZCkKPiAgfQo+ICAKPiAgc3RhdGljIGlubGluZSBp bnQKPiAtX193YWl0X2Zvcl9hY2soY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUs Cj4gLQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluICpk LAo+ICtfX3dhaXRfZm9yX2Fjayhjb25zdCBzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9k b21haW4gKmQsCj4gIAkgICAgICAgY29uc3QgdTMyIGFjaywKPiAgCSAgICAgICBjb25zdCB1MzIg dmFsdWUpCj4gIHsKPiAtCXJldHVybiB3YWl0X2Zvcl9hdG9taWMoKF9fcmF3X2k5MTVfcmVhZDMy KGk5MTUsIGQtPnJlZ19hY2spICYgYWNrKSA9PSB2YWx1ZSwKPiArCXJldHVybiB3YWl0X2Zvcl9h dG9taWMoKGZ3X2FjayhkKSAmIGFjaykgPT0gdmFsdWUsCj4gIAkJCSAgICAgICBGT1JDRVdBS0Vf QUNLX1RJTUVPVVRfTVMpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW5saW5lIGludAo+IC13YWl0X2Fj a19jbGVhcihjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAtCSAgICAgICBj b25zdCBzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21haW4gKmQsCj4gK3dhaXRfYWNr X2NsZWFyKGNvbnN0IHN0cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZCwKPiAg CSAgICAgICBjb25zdCB1MzIgYWNrKQo+ICB7Cj4gLQlyZXR1cm4gX193YWl0X2Zvcl9hY2soaTkx NSwgZCwgYWNrLCAwKTsKPiArCXJldHVybiBfX3dhaXRfZm9yX2FjayhkLCBhY2ssIDApOwo+ICB9 Cj4gIAo+ICBzdGF0aWMgaW5saW5lIGludAo+IC13YWl0X2Fja19zZXQoY29uc3Qgc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gLQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF91bmNvcmVf Zm9yY2V3YWtlX2RvbWFpbiAqZCwKPiArd2FpdF9hY2tfc2V0KGNvbnN0IHN0cnVjdCBpbnRlbF91 bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZCwKPiAgCSAgICAgY29uc3QgdTMyIGFjaykKPiAgewo+ IC0JcmV0dXJuIF9fd2FpdF9mb3JfYWNrKGk5MTUsIGQsIGFjaywgYWNrKTsKPiArCXJldHVybiBf X3dhaXRfZm9yX2FjayhkLCBhY2ssIGFjayk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbmxpbmUgdm9p ZAo+IC1md19kb21haW5fd2FpdF9hY2tfY2xlYXIoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUsCj4gLQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21h aW4gKmQpCj4gK2Z3X2RvbWFpbl93YWl0X2Fja19jbGVhcihjb25zdCBzdHJ1Y3QgaW50ZWxfdW5j b3JlX2ZvcmNld2FrZV9kb21haW4gKmQpCj4gIHsKPiAtCWlmICh3YWl0X2Fja19jbGVhcihpOTE1 LCBkLCBGT1JDRVdBS0VfS0VSTkVMKSkKPiArCWlmICh3YWl0X2Fja19jbGVhcihkLCBGT1JDRVdB S0VfS0VSTkVMKSkKPiAgCQlEUk1fRVJST1IoIiVzOiB0aW1lZCBvdXQgd2FpdGluZyBmb3IgZm9y Y2V3YWtlIGFjayB0byBjbGVhci5cbiIsCj4gIAkJCSAgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9k b21haW5fdG9fc3RyKGQtPmlkKSk7Cj4gIH0KPiBAQCAtMTIxLDggKzExOSw3IEBAIGVudW0gYWNr X3R5cGUgewo+ICB9Owo+ICAKPiAgc3RhdGljIGludAo+IC1md19kb21haW5fd2FpdF9hY2tfd2l0 aF9mYWxsYmFjayhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAtCQkJCSBj b25zdCBzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21haW4gKmQsCj4gK2Z3X2RvbWFp bl93YWl0X2Fja193aXRoX2ZhbGxiYWNrKGNvbnN0IHN0cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3 YWtlX2RvbWFpbiAqZCwKPiAgCQkJCSBjb25zdCBlbnVtIGFja190eXBlIHR5cGUpCj4gIHsKPiAg CWNvbnN0IHUzMiBhY2tfYml0ID0gRk9SQ0VXQUtFX0tFUk5FTDsKPiBAQCAtMTQ2LDcyICsxNDMs NjUgQEAgZndfZG9tYWluX3dhaXRfYWNrX3dpdGhfZmFsbGJhY2soY29uc3Qgc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUsCj4gIAo+ICAJcGFzcyA9IDE7Cj4gIAlkbyB7Cj4gLQkJd2FpdF9h Y2tfY2xlYXIoaTkxNSwgZCwgRk9SQ0VXQUtFX0tFUk5FTF9GQUxMQkFDSyk7Cj4gKwkJd2FpdF9h Y2tfY2xlYXIoZCwgRk9SQ0VXQUtFX0tFUk5FTF9GQUxMQkFDSyk7Cj4gIAo+IC0JCV9fcmF3X2k5 MTVfd3JpdGUzMihpOTE1LCBkLT5yZWdfc2V0LAo+IC0JCQkJICAgX01BU0tFRF9CSVRfRU5BQkxF KEZPUkNFV0FLRV9LRVJORUxfRkFMTEJBQ0spKTsKPiArCQlmd19zZXQoZCwgX01BU0tFRF9CSVRf RU5BQkxFKEZPUkNFV0FLRV9LRVJORUxfRkFMTEJBQ0spKTsKPiAgCQkvKiBHaXZlIGd0IHNvbWUg dGltZSB0byByZWxheCBiZWZvcmUgdGhlIHBvbGxpbmcgZnJlbnp5ICovCj4gIAkJdWRlbGF5KDEw ICogcGFzcyk7Cj4gLQkJd2FpdF9hY2tfc2V0KGk5MTUsIGQsIEZPUkNFV0FLRV9LRVJORUxfRkFM TEJBQ0spOwo+ICsJCXdhaXRfYWNrX3NldChkLCBGT1JDRVdBS0VfS0VSTkVMX0ZBTExCQUNLKTsK PiAgCj4gLQkJYWNrX2RldGVjdGVkID0gKF9fcmF3X2k5MTVfcmVhZDMyKGk5MTUsIGQtPnJlZ19h Y2spICYgYWNrX2JpdCkgPT0gdmFsdWU7Cj4gKwkJYWNrX2RldGVjdGVkID0gKGZ3X2FjayhkKSAm IGFja19iaXQpID09IHZhbHVlOwo+ICAKPiAtCQlfX3Jhd19pOTE1X3dyaXRlMzIoaTkxNSwgZC0+ cmVnX3NldCwKPiAtCQkJCSAgIF9NQVNLRURfQklUX0RJU0FCTEUoRk9SQ0VXQUtFX0tFUk5FTF9G QUxMQkFDSykpOwo+ICsJCWZ3X3NldChkLCBfTUFTS0VEX0JJVF9ESVNBQkxFKEZPUkNFV0FLRV9L RVJORUxfRkFMTEJBQ0spKTsKPiAgCX0gd2hpbGUgKCFhY2tfZGV0ZWN0ZWQgJiYgcGFzcysrIDwg MTApOwo+ICAKPiAgCURSTV9ERUJVR19EUklWRVIoIiVzIGhhZCB0byB1c2UgZmFsbGJhY2sgdG8g JXMgYWNrLCAweCV4IChwYXNzZXMgJXUpXG4iLAo+ICAJCQkgaW50ZWxfdW5jb3JlX2ZvcmNld2Fr ZV9kb21haW5fdG9fc3RyKGQtPmlkKSwKPiAgCQkJIHR5cGUgPT0gQUNLX1NFVCA/ICJzZXQiIDog ImNsZWFyIiwKPiAtCQkJIF9fcmF3X2k5MTVfcmVhZDMyKGk5MTUsIGQtPnJlZ19hY2spLAo+ICsJ CQkgZndfYWNrKGQpLAo+ICAJCQkgcGFzcyk7Cj4gIAo+ICAJcmV0dXJuIGFja19kZXRlY3RlZCA/ IDAgOiAtRVRJTUVET1VUOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW5saW5lIHZvaWQKPiAtZndfZG9t YWluX3dhaXRfYWNrX2NsZWFyX2ZhbGxiYWNrKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1LAo+IC0JCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21h aW4gKmQpCj4gK2Z3X2RvbWFpbl93YWl0X2Fja19jbGVhcl9mYWxsYmFjayhjb25zdCBzdHJ1Y3Qg aW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21haW4gKmQpCj4gIHsKPiAtCWlmIChsaWtlbHkoIXdh aXRfYWNrX2NsZWFyKGk5MTUsIGQsIEZPUkNFV0FLRV9LRVJORUwpKSkKPiArCWlmIChsaWtlbHko IXdhaXRfYWNrX2NsZWFyKGQsIEZPUkNFV0FLRV9LRVJORUwpKSkKPiAgCQlyZXR1cm47Cj4gIAo+ IC0JaWYgKGZ3X2RvbWFpbl93YWl0X2Fja193aXRoX2ZhbGxiYWNrKGk5MTUsIGQsIEFDS19DTEVB UikpCj4gLQkJZndfZG9tYWluX3dhaXRfYWNrX2NsZWFyKGk5MTUsIGQpOwo+ICsJaWYgKGZ3X2Rv bWFpbl93YWl0X2Fja193aXRoX2ZhbGxiYWNrKGQsIEFDS19DTEVBUikpCj4gKwkJZndfZG9tYWlu X3dhaXRfYWNrX2NsZWFyKGQpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW5saW5lIHZvaWQKPiAtZndf ZG9tYWluX2dldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAtCSAgICAgIGNvbnN0 IHN0cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZCkKPiArZndfZG9tYWluX2dl dChjb25zdCBzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21haW4gKmQpCj4gIHsKPiAt CV9fcmF3X2k5MTVfd3JpdGUzMihpOTE1LCBkLT5yZWdfc2V0LCBpOTE1LT51bmNvcmUuZndfc2V0 KTsKPiArCWZ3X3NldChkLCBmb3JjZXdha2VfZG9tYWluX3RvX3VuY29yZShkKS0+Zndfc2V0KTsK PiAgfQo+ICAKPiAgc3RhdGljIGlubGluZSB2b2lkCj4gLWZ3X2RvbWFpbl93YWl0X2Fja19zZXQo Y29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gLQkJICAgICAgIGNvbnN0IHN0 cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZCkKPiArZndfZG9tYWluX3dhaXRf YWNrX3NldChjb25zdCBzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21haW4gKmQpCj4g IHsKPiAtCWlmICh3YWl0X2Fja19zZXQoaTkxNSwgZCwgRk9SQ0VXQUtFX0tFUk5FTCkpCj4gKwlp ZiAod2FpdF9hY2tfc2V0KGQsIEZPUkNFV0FLRV9LRVJORUwpKQo+ICAJCURSTV9FUlJPUigiJXM6 IHRpbWVkIG91dCB3YWl0aW5nIGZvciBmb3JjZXdha2UgYWNrIHJlcXVlc3QuXG4iLAo+ICAJCQkg IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluX3RvX3N0cihkLT5pZCkpOwo+ICB9Cj4gIAo+ ICBzdGF0aWMgaW5saW5lIHZvaWQKPiAtZndfZG9tYWluX3dhaXRfYWNrX3NldF9mYWxsYmFjayhj b25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAtCQkJCWNvbnN0IHN0cnVjdCBp bnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZCkKPiArZndfZG9tYWluX3dhaXRfYWNrX3Nl dF9mYWxsYmFjayhjb25zdCBzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21haW4gKmQp Cj4gIHsKPiAtCWlmIChsaWtlbHkoIXdhaXRfYWNrX3NldChpOTE1LCBkLCBGT1JDRVdBS0VfS0VS TkVMKSkpCj4gKwlpZiAobGlrZWx5KCF3YWl0X2Fja19zZXQoZCwgRk9SQ0VXQUtFX0tFUk5FTCkp KQo+ICAJCXJldHVybjsKPiAgCj4gLQlpZiAoZndfZG9tYWluX3dhaXRfYWNrX3dpdGhfZmFsbGJh Y2soaTkxNSwgZCwgQUNLX1NFVCkpCj4gLQkJZndfZG9tYWluX3dhaXRfYWNrX3NldChpOTE1LCBk KTsKPiArCWlmIChmd19kb21haW5fd2FpdF9hY2tfd2l0aF9mYWxsYmFjayhkLCBBQ0tfU0VUKSkK PiArCQlmd19kb21haW5fd2FpdF9hY2tfc2V0KGQpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW5saW5l IHZvaWQKPiAtZndfZG9tYWluX3B1dChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSwKPiAtCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAq ZCkKPiArZndfZG9tYWluX3B1dChjb25zdCBzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9k b21haW4gKmQpCj4gIHsKPiAtCV9fcmF3X2k5MTVfd3JpdGUzMihpOTE1LCBkLT5yZWdfc2V0LCBp OTE1LT51bmNvcmUuZndfY2xlYXIpOwo+ICsJZndfc2V0KGQsIGZvcmNld2FrZV9kb21haW5fdG9f dW5jb3JlKGQpLT5md19jbGVhcik7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gQEAgLTIyMywx MiArMjEzLDEyIEBAIGZ3X2RvbWFpbnNfZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 LCBlbnVtIGZvcmNld2FrZV9kb21haW5zIGZ3X2RvbWFpbnMpCj4gIAlHRU1fQlVHX09OKGZ3X2Rv bWFpbnMgJiB+aTkxNS0+dW5jb3JlLmZ3X2RvbWFpbnMpOwo+ICAKPiAgCWZvcl9lYWNoX2Z3X2Rv bWFpbl9tYXNrZWQoZCwgZndfZG9tYWlucywgaTkxNSwgdG1wKSB7Cj4gLQkJZndfZG9tYWluX3dh aXRfYWNrX2NsZWFyKGk5MTUsIGQpOwo+IC0JCWZ3X2RvbWFpbl9nZXQoaTkxNSwgZCk7Cj4gKwkJ ZndfZG9tYWluX3dhaXRfYWNrX2NsZWFyKGQpOwo+ICsJCWZ3X2RvbWFpbl9nZXQoZCk7Cj4gIAl9 Cj4gIAo+ICAJZm9yX2VhY2hfZndfZG9tYWluX21hc2tlZChkLCBmd19kb21haW5zLCBpOTE1LCB0 bXApCj4gLQkJZndfZG9tYWluX3dhaXRfYWNrX3NldChpOTE1LCBkKTsKPiArCQlmd19kb21haW5f d2FpdF9hY2tfc2V0KGQpOwo+ICAKPiAgCWk5MTUtPnVuY29yZS5md19kb21haW5zX2FjdGl2ZSB8 PSBmd19kb21haW5zOwo+ICB9Cj4gQEAgLTI0MywxMiArMjMzLDEyIEBAIGZ3X2RvbWFpbnNfZ2V0 X3dpdGhfZmFsbGJhY2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gIAlHRU1fQlVH X09OKGZ3X2RvbWFpbnMgJiB+aTkxNS0+dW5jb3JlLmZ3X2RvbWFpbnMpOwo+ICAKPiAgCWZvcl9l YWNoX2Z3X2RvbWFpbl9tYXNrZWQoZCwgZndfZG9tYWlucywgaTkxNSwgdG1wKSB7Cj4gLQkJZndf ZG9tYWluX3dhaXRfYWNrX2NsZWFyX2ZhbGxiYWNrKGk5MTUsIGQpOwo+IC0JCWZ3X2RvbWFpbl9n ZXQoaTkxNSwgZCk7Cj4gKwkJZndfZG9tYWluX3dhaXRfYWNrX2NsZWFyX2ZhbGxiYWNrKGQpOwo+ ICsJCWZ3X2RvbWFpbl9nZXQoZCk7Cj4gIAl9Cj4gIAo+ICAJZm9yX2VhY2hfZndfZG9tYWluX21h c2tlZChkLCBmd19kb21haW5zLCBpOTE1LCB0bXApCj4gLQkJZndfZG9tYWluX3dhaXRfYWNrX3Nl dF9mYWxsYmFjayhpOTE1LCBkKTsKPiArCQlmd19kb21haW5fd2FpdF9hY2tfc2V0X2ZhbGxiYWNr KGQpOwo+ICAKPiAgCWk5MTUtPnVuY29yZS5md19kb21haW5zX2FjdGl2ZSB8PSBmd19kb21haW5z Owo+ICB9Cj4gQEAgLTI2Miw3ICsyNTIsNyBAQCBmd19kb21haW5zX3B1dChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSwgZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19kb21haW5zKQo+ICAJ R0VNX0JVR19PTihmd19kb21haW5zICYgfmk5MTUtPnVuY29yZS5md19kb21haW5zKTsKPiAgCj4g IAlmb3JfZWFjaF9md19kb21haW5fbWFza2VkKGQsIGZ3X2RvbWFpbnMsIGk5MTUsIHRtcCkKPiAt CQlmd19kb21haW5fcHV0KGk5MTUsIGQpOwo+ICsJCWZ3X2RvbWFpbl9wdXQoZCk7Cj4gIAo+ICAJ aTkxNS0+dW5jb3JlLmZ3X2RvbWFpbnNfYWN0aXZlICY9IH5md19kb21haW5zOwo+ICB9Cj4gQEAg LTI4MCw3ICsyNzAsNyBAQCBmd19kb21haW5zX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1LAo+ICAJR0VNX0JVR19PTihmd19kb21haW5zICYgfmk5MTUtPnVuY29yZS5md19kb21h aW5zKTsKPiAgCj4gIAlmb3JfZWFjaF9md19kb21haW5fbWFza2VkKGQsIGZ3X2RvbWFpbnMsIGk5 MTUsIHRtcCkKPiAtCQlmd19kb21haW5fcmVzZXQoaTkxNSwgZCk7Cj4gKwkJZndfZG9tYWluX3Jl c2V0KGQpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW5saW5lIHUzMiBndF90aHJlYWRfc3RhdHVzKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiBAQCAtMTM1MCw4ICsxMzQwLDggQEAg c3RhdGljIHZvaWQgZndfZG9tYWluX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+ICAJV0FSTl9PTighaTkxNV9tbWlvX3JlZ192YWxpZChyZWdfYWNrKSk7Cj4gIAo+ICAJ ZC0+d2FrZV9jb3VudCA9IDA7Cj4gLQlkLT5yZWdfc2V0ID0gcmVnX3NldDsKPiAtCWQtPnJlZ19h Y2sgPSByZWdfYWNrOwo+ICsJZC0+cmVnX3NldCA9IGRldl9wcml2LT5yZWdzICsgaTkxNV9tbWlv X3JlZ19vZmZzZXQocmVnX3NldCk7Cj4gKwlkLT5yZWdfYWNrID0gZGV2X3ByaXYtPnJlZ3MgKyBp OTE1X21taW9fcmVnX29mZnNldChyZWdfYWNrKTsKPiAgCj4gIAlkLT5pZCA9IGRvbWFpbl9pZDsK PiAgCj4gQEAgLTEzNzMsNyArMTM2Myw3IEBAIHN0YXRpYyB2b2lkIGZ3X2RvbWFpbl9pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCj4gIAlkZXZfcHJpdi0+dW5jb3Jl LmZ3X2RvbWFpbnMgfD0gQklUKGRvbWFpbl9pZCk7Cj4gIAo+IC0JZndfZG9tYWluX3Jlc2V0KGRl dl9wcml2LCBkKTsKPiArCWZ3X2RvbWFpbl9yZXNldChkKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZv aWQgZndfZG9tYWluX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5oCj4gaW5kZXggZTVlMTU3ZDI4OGRlLi5iMGE5NTQ2 OWJhYmYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuaAo+IEBAIC0xMTYsOCAr MTE2LDggQEAgc3RydWN0IGludGVsX3VuY29yZSB7Cj4gIAkJdW5zaWduZWQgaW50IHdha2VfY291 bnQ7Cj4gIAkJYm9vbCBhY3RpdmU7Cj4gIAkJc3RydWN0IGhydGltZXIgdGltZXI7Cj4gLQkJaTkx NV9yZWdfdCByZWdfc2V0Owo+IC0JCWk5MTVfcmVnX3QgcmVnX2FjazsKPiArCQl1MzIgX19pb21l bSAqcmVnX3NldDsKPiArCQl1MzIgX19pb21lbSAqcmVnX2FjazsKPiAgCX0gZndfZG9tYWluW0ZX X0RPTUFJTl9JRF9DT1VOVF07Cj4gIAo+ICAJc3RydWN0IHsKPiBAQCAtMTM4LDYgKzEzOCwxMSBA QCBzdHJ1Y3QgaW50ZWxfdW5jb3JlIHsKPiAgI2RlZmluZSBmb3JfZWFjaF9md19kb21haW4oZG9t YWluX18sIGRldl9wcml2X18sIHRtcF9fKSBcCj4gIAlmb3JfZWFjaF9md19kb21haW5fbWFza2Vk KGRvbWFpbl9fLCAoZGV2X3ByaXZfXyktPnVuY29yZS5md19kb21haW5zLCBkZXZfcHJpdl9fLCB0 bXBfXykKPiAgCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX3VuY29yZSAqCj4gK2ZvcmNl d2FrZV9kb21haW5fdG9fdW5jb3JlKGNvbnN0IHN0cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3YWtl X2RvbWFpbiAqZCkKPiArewo+ICsJcmV0dXJuIGNvbnRhaW5lcl9vZihkLCBzdHJ1Y3QgaW50ZWxf dW5jb3JlLCBmd19kb21haW5bZC0+aWRdKTsKPiArfQo+ICAKPiAgdm9pZCBpbnRlbF91bmNvcmVf c2FuaXRpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgdm9pZCBpbnRl bF91bmNvcmVfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4