From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 16/22] drm/i915: Make fb_tracking.lock a spinlock Date: Thu, 28 Jul 2016 12:08:34 +0200 Message-ID: <20160728100834.GG6232@phenom.ffwll.local> References: <1469618100-15298-1-git-send-email-chris@chris-wilson.co.uk> <1469618100-15298-17-git-send-email-chris@chris-wilson.co.uk> <20160728100201.GD6232@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4254C6E7C3 for ; Thu, 28 Jul 2016 10:08:39 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id q128so10383315wma.1 for ; Thu, 28 Jul 2016 03:08:39 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20160728100201.GD6232@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKdWwgMjgsIDIwMTYgYXQgMTI6MDI6MDFQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBXZWQsIEp1bCAyNywgMjAxNiBhdCAxMjoxNDo1NFBNICswMTAwLCBDaHJpcyBX aWxzb24gd3JvdGU6Cj4gPiBXZSBvbmx5IG5lZWQgYSB2ZXJ5IGxpZ2h0d2VpZ2h0IG1lY2hhbmlz bSBoZXJlIGFzIHRoZSBsb2NraW5nIGlzIG9ubHkKPiA+IHVzZWQgZm9yIGNvLW9yZGluYXRpbmcg YSBiaXRmaWVsZC4KPiA+IAo+ID4gdjI6IE1vdmUgdGhlIGNoZWFwIHVubGlrZWx5IHRlc3RzIGlu dG8gdGhlIGNhbGxlcgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlz QGNocmlzLXdpbHNvbi5jby51az4KPiAKPiBJIHRoaW5rIHRoZSBjb2RlIHNodWZmbGluZyBpbiBo ZXJlIGJhZGx5IGJyZWFrcyB0aGUga2VybmVsZG9jLiBCZXN0IGZpeAo+IHdvdWxkIGJlIHRvIGV4 dHJhY3QgYSBzbWFsbCBoZWFkZXIgZm9yIGZyb250YnVmZmVyIHRyYWNraW5nIGFuZCBwdWxsIHRo YXQKPiBpbnRvIHRoZSBrZXJuZWwgZG9jLiBNdWNoIGxlc3MgcHJlZmVycmVkIGlzIHRvIGV4cGxp Y2l0bHkgcHVsbCBpbiB0aGUKPiBrZXJuZWxkb2MgZnVuY3Rpb24tYnktZnVuY3Rpb24gKGJ1dCB0 aGF0IHRlbmRzIHRvIGJlIHJhdGhlciBmcmFnaWxlIHdoZW4KPiBzb21lb25lIGFkZHMgc29tZXRo aW5nIG5ldykuCgpmd2l3IHRoZSBjaGFuZ2UgaXRzZWxmIGxvb2tzIGNvcnJlY3QgYW5kIG1ha2Vz IHNlbnNlLCBzbyB3aXRoCmludGVsX2Zyb250YnVmZmVyLmggZXh0cmFjdGVkIGFuZCB0aGUga2Vy bmVsZG9jIGluY2x1ZGUgZGlyZWN0aXZlcyBpbgpncHUvZHJtLWk5MTUucnN0IGZpeGVkIHVwIHRo aXMgaXM6CgpSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5j aD4KCj4gLURhbmllbAo+IAo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCAgICAgICAgICB8ICAyICstCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YyAgICAgICAgICB8ICAyICstCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg ICAgICAgICB8IDI5ICsrKysrKysrKysrKysrLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZnJvbnRidWZmZXIuYyB8IDU0ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t Cj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlvbnMoLSkK PiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBpbmRleCAzYTY4ZTYwNGFkMTAuLmEy NGQzMWUzZTAxNCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+IEBAIC0xNjY5 LDcgKzE2NjksNyBAQCBzdHJ1Y3QgaW50ZWxfcGlwZV9jcmMgewo+ID4gIH07Cj4gPiAgCj4gPiAg c3RydWN0IGk5MTVfZnJvbnRidWZmZXJfdHJhY2tpbmcgewo+ID4gLQlzdHJ1Y3QgbXV0ZXggbG9j azsKPiA+ICsJc3BpbmxvY2tfdCBsb2NrOwo+ID4gIAo+ID4gIAkvKgo+ID4gIAkgKiBUcmFja2lu ZyBiaXRzIGZvciBkZWxheWVkIGZyb250YnVmZmVyIGZsdXNoaW5nIGR1IHRvIGdwdSBhY3Rpdml0 eSBvcgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gPiBpbmRleCAxZmI5NThkY2M3NDkuLjdk YjA4MDhmNjk2MSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiA+IEBAIC00NDQ3 LDcgKzQ0NDcsNyBAQCBpOTE1X2dlbV9sb2FkX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK PiA+ICAKPiA+ICAJZGV2X3ByaXYtPm1tLmludGVycnVwdGlibGUgPSB0cnVlOwo+ID4gIAo+ID4g LQltdXRleF9pbml0KCZkZXZfcHJpdi0+ZmJfdHJhY2tpbmcubG9jayk7Cj4gPiArCXNwaW5fbG9j a19pbml0KCZkZXZfcHJpdi0+ZmJfdHJhY2tpbmcubG9jayk7Cj4gPiAgfQo+ID4gIAo+ID4gIHZv aWQgaTkxNV9nZW1fbG9hZF9jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gaW5kZXggZTc0ZDg1MTg2OGM1Li4wMTA1NmNlOGQ0NjEg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IEBAIC0xMTM1LDggKzExMzUs NiBAQCB2b2lkIGludGVsX2RkaV9zZXRfdmNfcGF5bG9hZF9hbGxvYyhzdHJ1Y3QgZHJtX2NydGMg KmNydGMsIGJvb2wgc3RhdGUpOwo+ID4gIHVpbnQzMl90IGRkaV9zaWduYWxfbGV2ZWxzKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ID4gIAo+ID4gIC8qIGludGVsX2Zyb250YnVmZmVyLmMg Ki8KPiA+IC12b2lkIGludGVsX2ZiX29ial9pbnZhbGlkYXRlKHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmosCj4gPiAtCQkJICAgICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pOwo+ID4g IHZvaWQgaW50ZWxfZnJvbnRidWZmZXJfZmxpcF9wcmVwYXJlKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gPiAgCQkJCSAgICB1bnNpZ25lZCBmcm9udGJ1ZmZlcl9iaXRzKTsKPiA+ICB2b2lkIGlu dGVsX2Zyb250YnVmZmVyX2ZsaXBfY29tcGxldGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ IEBAIC0xMTQ3LDggKzExNDUsMzEgQEAgdW5zaWduZWQgaW50IGludGVsX2ZiX2FsaWduX2hlaWdo dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gIAkJCQkgICB1bnNpZ25lZCBpbnQgaGVpZ2h0 LAo+ID4gIAkJCQkgICB1aW50MzJfdCBwaXhlbF9mb3JtYXQsCj4gPiAgCQkJCSAgIHVpbnQ2NF90 IGZiX2Zvcm1hdF9tb2RpZmllcik7Cj4gPiAtdm9pZCBpbnRlbF9mYl9vYmpfZmx1c2goc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgYm9vbCByZXRpcmUsCj4gPiAtCQkJZW51bSBmYl9v cF9vcmlnaW4gb3JpZ2luKTsKPiA+ICsKPiA+ICt2b2lkIF9faW50ZWxfZmJfb2JqX2ludmFsaWRh dGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiA+ICsJCQkgICAgICAgZW51bSBm Yl9vcF9vcmlnaW4gb3JpZ2luKTsKPiA+ICtzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZmJfb2Jq X2ludmFsaWRhdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiA+ICsJCQkJCSAg IGVudW0gZmJfb3Bfb3JpZ2luIG9yaWdpbikKPiA+ICt7Cj4gPiArCWlmICghb2JqLT5mcm9udGJ1 ZmZlcl9iaXRzKQo+ID4gKwkJcmV0dXJuOwo+ID4gKwo+ID4gKwlfX2ludGVsX2ZiX29ial9pbnZh bGlkYXRlKG9iaiwgb3JpZ2luKTsKPiA+ICt9Cj4gPiArCj4gPiArdm9pZCBfX2ludGVsX2ZiX29i al9mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ID4gKwkJCSAgYm9vbCBy ZXRpcmUsCj4gPiArCQkJICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pOwo+ID4gK3N0YXRpYyBp bmxpbmUgdm9pZCBpbnRlbF9mYl9vYmpfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiwKPiA+ICsJCQkJICAgICAgYm9vbCByZXRpcmUsCj4gPiArCQkJCSAgICAgIGVudW0gZmJf b3Bfb3JpZ2luIG9yaWdpbikKPiA+ICt7Cj4gPiArCWlmICghb2JqLT5mcm9udGJ1ZmZlcl9iaXRz KQo+ID4gKwkJcmV0dXJuOwo+ID4gKwo+ID4gKwlfX2ludGVsX2ZiX29ial9mbHVzaChvYmosIHJl dGlyZSwgb3JpZ2luKTsKPiA+ICt9Cj4gPiArCj4gPiAgdTMyIGludGVsX2ZiX3N0cmlkZV9hbGln bm1lbnQoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIAkJCSAg ICAgIHVpbnQ2NF90IGZiX21vZGlmaWVyLCB1aW50MzJfdCBwaXhlbF9mb3JtYXQpOwo+ID4gIAo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zyb250YnVmZmVyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1ZmZlci5jCj4gPiBpbmRleCBhYzg1 MzU3MDEwYjQuLmEzOGNjZmU0ODk0YSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Zyb250YnVmZmVyLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Zyb250YnVmZmVyLmMKPiA+IEBAIC03NiwyNCArNzYsMTkgQEAKPiA+ICAgKiB1bnRpbCB0 aGUgcmVuZGVyaW5nIGNvbXBsZXRlcyBvciBhIGZsaXAgb24gdGhpcyBmcm9udGJ1ZmZlciBwbGFu ZSBpcwo+ID4gICAqIHNjaGVkdWxlZC4KPiA+ICAgKi8KPiA+IC12b2lkIGludGVsX2ZiX29ial9p bnZhbGlkYXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gPiAtCQkJICAgICBl bnVtIGZiX29wX29yaWdpbiBvcmlnaW4pCj4gPiArdm9pZCBfX2ludGVsX2ZiX29ial9pbnZhbGlk YXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gPiArCQkJICAgICAgIGVudW0g ZmJfb3Bfb3JpZ2luIG9yaWdpbikKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBvYmotPmJhc2UuZGV2Owo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGRldik7Cj4gPiAgCj4gPiAgCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmZGV2 LT5zdHJ1Y3RfbXV0ZXgpKTsKPiA+ICAKPiA+IC0JaWYgKCFvYmotPmZyb250YnVmZmVyX2JpdHMp Cj4gPiAtCQlyZXR1cm47Cj4gPiAtCj4gPiAgCWlmIChvcmlnaW4gPT0gT1JJR0lOX0NTKSB7Cj4g PiAtCQltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZmJfdHJhY2tpbmcubG9jayk7Cj4gPiAtCQlkZXZf cHJpdi0+ZmJfdHJhY2tpbmcuYnVzeV9iaXRzCj4gPiAtCQkJfD0gb2JqLT5mcm9udGJ1ZmZlcl9i aXRzOwo+ID4gLQkJZGV2X3ByaXYtPmZiX3RyYWNraW5nLmZsaXBfYml0cwo+ID4gLQkJCSY9IH5v YmotPmZyb250YnVmZmVyX2JpdHM7Cj4gPiAtCQltdXRleF91bmxvY2soJmRldl9wcml2LT5mYl90 cmFja2luZy5sb2NrKTsKPiA+ICsJCXNwaW5fbG9jaygmZGV2X3ByaXYtPmZiX3RyYWNraW5nLmxv Y2spOwo+ID4gKwkJZGV2X3ByaXYtPmZiX3RyYWNraW5nLmJ1c3lfYml0cyB8PSBvYmotPmZyb250 YnVmZmVyX2JpdHM7Cj4gPiArCQlkZXZfcHJpdi0+ZmJfdHJhY2tpbmcuZmxpcF9iaXRzICY9IH5v YmotPmZyb250YnVmZmVyX2JpdHM7Cj4gPiArCQlzcGluX3VubG9jaygmZGV2X3ByaXYtPmZiX3Ry YWNraW5nLmxvY2spOwo+ID4gIAl9Cj4gPiAgCj4gPiAgCWludGVsX3Bzcl9pbnZhbGlkYXRlKGRl diwgb2JqLT5mcm9udGJ1ZmZlcl9iaXRzKTsKPiA+IEBAIC0xMjAsMTEgKzExNSwxMSBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9mcm9udGJ1ZmZlcl9mbHVzaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4g PiAgCj4gPiAgCS8qIERlbGF5IGZsdXNoaW5nIHdoZW4gcmluZ3MgYXJlIHN0aWxsIGJ1c3kuKi8K PiA+IC0JbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmZiX3RyYWNraW5nLmxvY2spOwo+ID4gKwlzcGlu X2xvY2soJmRldl9wcml2LT5mYl90cmFja2luZy5sb2NrKTsKPiA+ICAJZnJvbnRidWZmZXJfYml0 cyAmPSB+ZGV2X3ByaXYtPmZiX3RyYWNraW5nLmJ1c3lfYml0czsKPiA+IC0JbXV0ZXhfdW5sb2Nr KCZkZXZfcHJpdi0+ZmJfdHJhY2tpbmcubG9jayk7Cj4gPiArCXNwaW5fdW5sb2NrKCZkZXZfcHJp di0+ZmJfdHJhY2tpbmcubG9jayk7Cj4gPiAgCj4gPiAtCWlmICghZnJvbnRidWZmZXJfYml0cykK PiA+ICsJaWYgKGZyb250YnVmZmVyX2JpdHMgPT0gMCkKPiA+ICAJCXJldHVybjsKPiA+ICAKPiA+ ICAJaW50ZWxfZWRwX2RycnNfZmx1c2goZGV2LCBmcm9udGJ1ZmZlcl9iaXRzKTsKPiA+IEBAIC0x NDIsOCArMTM3LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfZnJvbnRidWZmZXJfZmx1c2goc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKPiA+ICAgKiBjb21wbGV0ZWQgYW5kIGZyb250YnVmZmVyIGNhY2hp bmcgY2FuIGJlIHN0YXJ0ZWQgYWdhaW4uIElmIEByZXRpcmUgaXMgdHJ1ZQo+ID4gICAqIHRoZW4g YW55IGRlbGF5ZWQgZmx1c2hlcyB3aWxsIGJlIHVuYmxvY2tlZC4KPiA+ICAgKi8KPiA+IC12b2lk IGludGVsX2ZiX29ial9mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ID4g LQkJCWJvb2wgcmV0aXJlLCBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pCj4gPiArdm9pZCBfX2lu dGVsX2ZiX29ial9mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ID4gKwkJ CSAgYm9vbCByZXRpcmUsCj4gPiArCQkJICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pCj4gPiAg ewo+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2JqLT5iYXNlLmRldjsKPiA+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gQEAgLTE1 MSwyMSArMTQ3LDE4IEBAIHZvaWQgaW50ZWxfZmJfb2JqX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmosCj4gPiAgCj4gPiAgCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmZGV2 LT5zdHJ1Y3RfbXV0ZXgpKTsKPiA+ICAKPiA+IC0JaWYgKCFvYmotPmZyb250YnVmZmVyX2JpdHMp Cj4gPiAtCQlyZXR1cm47Cj4gPiAtCj4gPiAgCWZyb250YnVmZmVyX2JpdHMgPSBvYmotPmZyb250 YnVmZmVyX2JpdHM7Cj4gPiAgCj4gPiAgCWlmIChyZXRpcmUpIHsKPiA+IC0JCW11dGV4X2xvY2so JmRldl9wcml2LT5mYl90cmFja2luZy5sb2NrKTsKPiA+ICsJCXNwaW5fbG9jaygmZGV2X3ByaXYt PmZiX3RyYWNraW5nLmxvY2spOwo+ID4gIAkJLyogRmlsdGVyIG91dCBuZXcgYml0cyBzaW5jZSBy ZW5kZXJpbmcgc3RhcnRlZC4gKi8KPiA+ICAJCWZyb250YnVmZmVyX2JpdHMgJj0gZGV2X3ByaXYt PmZiX3RyYWNraW5nLmJ1c3lfYml0czsKPiA+IC0KPiA+ICAJCWRldl9wcml2LT5mYl90cmFja2lu Zy5idXN5X2JpdHMgJj0gfmZyb250YnVmZmVyX2JpdHM7Cj4gPiAtCQltdXRleF91bmxvY2soJmRl dl9wcml2LT5mYl90cmFja2luZy5sb2NrKTsKPiA+ICsJCXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+ ZmJfdHJhY2tpbmcubG9jayk7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JaW50ZWxfZnJvbnRidWZmZXJf Zmx1c2goZGV2LCBmcm9udGJ1ZmZlcl9iaXRzLCBvcmlnaW4pOwo+ID4gKwlpZiAoZnJvbnRidWZm ZXJfYml0cykKPiA+ICsJCWludGVsX2Zyb250YnVmZmVyX2ZsdXNoKGRldiwgZnJvbnRidWZmZXJf Yml0cywgb3JpZ2luKTsKPiA+ICB9Cj4gPiAgCj4gPiAgLyoqCj4gPiBAQCAtMTg1LDExICsxNzgs MTEgQEAgdm9pZCBpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwX3ByZXBhcmUoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKPiA+ICAKPiA+IC0JbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmZiX3RyYWNr aW5nLmxvY2spOwo+ID4gKwlzcGluX2xvY2soJmRldl9wcml2LT5mYl90cmFja2luZy5sb2NrKTsK PiA+ICAJZGV2X3ByaXYtPmZiX3RyYWNraW5nLmZsaXBfYml0cyB8PSBmcm9udGJ1ZmZlcl9iaXRz Owo+ID4gIAkvKiBSZW1vdmUgc3RhbGUgYnVzeSBiaXRzIGR1ZSB0byB0aGUgb2xkIGJ1ZmZlci4g Ki8KPiA+ICAJZGV2X3ByaXYtPmZiX3RyYWNraW5nLmJ1c3lfYml0cyAmPSB+ZnJvbnRidWZmZXJf Yml0czsKPiA+IC0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJfdHJhY2tpbmcubG9jayk7Cj4g PiArCXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+ZmJfdHJhY2tpbmcubG9jayk7Cj4gPiAgCj4gPiAg CWludGVsX3Bzcl9zaW5nbGVfZnJhbWVfdXBkYXRlKGRldiwgZnJvbnRidWZmZXJfYml0cyk7Cj4g PiAgfQo+ID4gQEAgLTIwOSwxMyArMjAyLDE0IEBAIHZvaWQgaW50ZWxfZnJvbnRidWZmZXJfZmxp cF9jb21wbGV0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gIHsKPiA+ICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gIAo+ID4gLQltdXRl eF9sb2NrKCZkZXZfcHJpdi0+ZmJfdHJhY2tpbmcubG9jayk7Cj4gPiArCXNwaW5fbG9jaygmZGV2 X3ByaXYtPmZiX3RyYWNraW5nLmxvY2spOwo+ID4gIAkvKiBNYXNrIGFueSBjYW5jZWxsZWQgZmxp cHMuICovCj4gPiAgCWZyb250YnVmZmVyX2JpdHMgJj0gZGV2X3ByaXYtPmZiX3RyYWNraW5nLmZs aXBfYml0czsKPiA+ICAJZGV2X3ByaXYtPmZiX3RyYWNraW5nLmZsaXBfYml0cyAmPSB+ZnJvbnRi dWZmZXJfYml0czsKPiA+IC0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJfdHJhY2tpbmcubG9j ayk7Cj4gPiArCXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+ZmJfdHJhY2tpbmcubG9jayk7Cj4gPiAg Cj4gPiAtCWludGVsX2Zyb250YnVmZmVyX2ZsdXNoKGRldiwgZnJvbnRidWZmZXJfYml0cywgT1JJ R0lOX0ZMSVApOwo+ID4gKwlpZiAoZnJvbnRidWZmZXJfYml0cykKPiA+ICsJCWludGVsX2Zyb250 YnVmZmVyX2ZsdXNoKGRldiwgZnJvbnRidWZmZXJfYml0cywgT1JJR0lOX0ZMSVApOwo+ID4gIH0K PiA+ICAKPiA+ICAvKioKPiA+IEBAIC0yMzQsMTAgKzIyOCwxMCBAQCB2b2lkIGludGVsX2Zyb250 YnVmZmVyX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICB7Cj4gPiAgCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiA+ICAKPiA+IC0JbXV0 ZXhfbG9jaygmZGV2X3ByaXYtPmZiX3RyYWNraW5nLmxvY2spOwo+ID4gKwlzcGluX2xvY2soJmRl dl9wcml2LT5mYl90cmFja2luZy5sb2NrKTsKPiA+ICAJLyogUmVtb3ZlIHN0YWxlIGJ1c3kgYml0 cyBkdWUgdG8gdGhlIG9sZCBidWZmZXIuICovCj4gPiAgCWRldl9wcml2LT5mYl90cmFja2luZy5i dXN5X2JpdHMgJj0gfmZyb250YnVmZmVyX2JpdHM7Cj4gPiAtCW11dGV4X3VubG9jaygmZGV2X3By aXYtPmZiX3RyYWNraW5nLmxvY2spOwo+ID4gKwlzcGluX3VubG9jaygmZGV2X3ByaXYtPmZiX3Ry YWNraW5nLmxvY2spOwo+ID4gIAo+ID4gIAlpbnRlbF9mcm9udGJ1ZmZlcl9mbHVzaChkZXYsIGZy b250YnVmZmVyX2JpdHMsIE9SSUdJTl9GTElQKTsKPiA+ICB9Cj4gPiAtLSAKPiA+IDIuOC4xCj4g PiAKPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4g PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo+IAo+IC0tIAo+IERhbmllbCBWZXR0ZXIKPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50 ZWwgQ29ycG9yYXRpb24KPiBodHRwOi8vYmxvZy5mZndsbC5jaAoKLS0gCkRhbmllbCBWZXR0ZXIK U29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNo Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=