From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9120DC433DF for ; Tue, 20 Oct 2020 08:13:40 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 201032225F for ; Tue, 20 Oct 2020 08:13:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 201032225F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5BABA6EC22; Tue, 20 Oct 2020 08:13:39 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id B6A816EC22 for ; Tue, 20 Oct 2020 08:13:38 +0000 (UTC) IronPort-SDR: AL/EDC0JIwwFwkUwnJKuqn2JKBVWjWeY7meFK1uZiZ2hsuhVxzWx6s4CSUrBsJHXalrNWtng8X MAZVWkvZP8DQ== X-IronPort-AV: E=McAfee;i="6000,8403,9779"; a="147030037" X-IronPort-AV: E=Sophos;i="5.77,396,1596524400"; d="scan'208";a="147030037" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Oct 2020 01:13:37 -0700 IronPort-SDR: O/Rz5hpdYz99hm2zR+d+clO2Y60kA2gfN5zCGafU67rmE6M5EyOZQt7hZMbYIrKd4jidEeuz5K kg/SAlwyFpYQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,396,1596524400"; d="scan'208";a="332174017" Received: from gaia.fi.intel.com ([10.237.72.192]) by orsmga002.jf.intel.com with ESMTP; 20 Oct 2020 01:13:36 -0700 Received: by gaia.fi.intel.com (Postfix, from userid 1000) id 81BB15C2038; Tue, 20 Oct 2020 11:11:59 +0300 (EEST) From: Mika Kuoppala To: Chris Wilson , intel-gfx@lists.freedesktop.org In-Reply-To: <20201019165005.18128-2-chris@chris-wilson.co.uk> References: <20201019165005.18128-1-chris@chris-wilson.co.uk> <20201019165005.18128-2-chris@chris-wilson.co.uk> Date: Tue, 20 Oct 2020 11:11:59 +0300 Message-ID: <875z75s4ds.fsf@gaia.fi.intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH 2/2] drm/i915: Exclude low pages (128KiB) of stolen from use X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: stable@vger.kernel.org, Chris Wilson Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gVGhlIEdQ VSBpcyB0cmFzaGluZyB0aGUgbG93IHBhZ2VzIG9mIGl0cyByZXNlcnZlZCBtZW1vcnkgdXBvbiBy ZXNldC4gSWYKPiB3ZSBhcmUgdXNpbmcgdGhpcyBtZW1vcnkgZm9yIHJpbmdidWZmZXJzLCB0aGVu IHdlIHdpbGwgZHV0aWZ1bCByZXN1Ym1pdAo+IHRoZSB0cmFzaGVkIHJpbmdzIGFmdGVyIHRoZSBy ZXNldCBjYXVzaW5nIGZ1cnRoZXIgcmVzZXRzLCBhbmQgd29yc2UuIFdlCj4gbXVzdCBleGNsdWRl IHRoaXMgcmFuZ2UgZnJvbSBvdXIgb3duIHVzZS4gVGhlIHZhbHVlIG9mIDEyOEtpQiB3YXMgZm91 bmQKPiBieSBlbXBpcmljYWwgbWVhc3VyZW1lbnQgKGFuZCB2ZXJpZmllZCBub3cgd2l0aCBhIHNl bGZ0ZXN0KSBvbiBnZW45Lgo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0Bj aHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKClJldmlld2Vk LWJ5OiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4KCj4gLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcuZGVidWcgICAgICAgICB8ICAgMSArCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zdG9sZW4uYyB8ICAgNiArLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc3RvbGVuLmggfCAgIDIgKwo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9yZXNldC5jICAgfCAxOTYgKysrKysrKysrKysr KysrKysrKysrCj4gIDQgZmlsZXMgY2hhbmdlZCwgMjAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZy5kZWJ1 ZyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcuZGVidWcKPiBpbmRleCAyMDY4ODJlMTU0 YmMuLjBmYjdmZDBlZjcxNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29u ZmlnLmRlYnVnCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZy5kZWJ1Zwo+IEBA IC0xNjIsNiArMTYyLDcgQEAgY29uZmlnIERSTV9JOTE1X1NFTEZURVNUCj4gIAlzZWxlY3QgRFJN X0VYUE9SVF9GT1JfVEVTVFMgaWYgbQo+ICAJc2VsZWN0IEZBVUxUX0lOSkVDVElPTgo+ICAJc2Vs ZWN0IFBSSU1FX05VTUJFUlMKPiArCXNlbGVjdCBDUkMzMgo+ICAJaGVscAo+ICAJICBDaG9vc2Ug dGhpcyBvcHRpb24gdG8gYWxsb3cgdGhlIGRyaXZlciB0byBwZXJmb3JtIHNlbGZ0ZXN0cyB1cG9u Cj4gIAkgIGxvYWRpbmc7IGFsc28gcmVxdWlyZXMgdGhlIGk5MTUuc2VsZnRlc3Q9MSBtb2R1bGUg cGFyYW1ldGVyLiBUbwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkx NV9nZW1fc3RvbGVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc3RvbGVu LmMKPiBpbmRleCAzOTU0ZWM5OTgxZjAuLjRmOTIzYjhjNDNmYiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc3RvbGVuLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc3RvbGVuLmMKPiBAQCAtNTMsOCArNTMsMTAgQEAgaW50 IGk5MTVfZ2VtX3N0b2xlbl9pbnNlcnRfbm9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSwKPiAgCQkJCXN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwgdTY0IHNpemUsCj4gIAkJCQl1bnNp Z25lZCBhbGlnbm1lbnQpCj4gIHsKPiAtCXJldHVybiBpOTE1X2dlbV9zdG9sZW5faW5zZXJ0X25v ZGVfaW5fcmFuZ2UoaTkxNSwgbm9kZSwgc2l6ZSwKPiAtCQkJCQkJICAgIGFsaWdubWVudCwgMCwg VTY0X01BWCk7Cj4gKwlyZXR1cm4gaTkxNV9nZW1fc3RvbGVuX2luc2VydF9ub2RlX2luX3Jhbmdl KGk5MTUsIG5vZGUsCj4gKwkJCQkJCSAgICBzaXplLCBhbGlnbm1lbnQsCj4gKwkJCQkJCSAgICBJ OTE1X0dFTV9TVE9MRU5fQklBUywKPiArCQkJCQkJICAgIFU2NF9NQVgpOwo+ICB9Cj4gIAo+ICB2 b2lkIGk5MTVfZ2VtX3N0b2xlbl9yZW1vdmVfbm9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3N0 b2xlbi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3N0b2xlbi5oCj4gaW5k ZXggZTE1YzBhZGFkOGFmLi42MWUwMjgwNjNmOWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3N0b2xlbi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX3N0b2xlbi5oCj4gQEAgLTMwLDQgKzMwLDYgQEAgaTkxNV9nZW1fb2Jq ZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYKPiAgCQkJCQkgICAgICAgcmVzb3VyY2Vfc2l6ZV90IHN0b2xlbl9vZmZzZXQs Cj4gIAkJCQkJICAgICAgIHJlc291cmNlX3NpemVfdCBzaXplKTsKPiAgCj4gKyNkZWZpbmUgSTkx NV9HRU1fU1RPTEVOX0JJQVMgU1pfMTI4Swo+ICsKPiAgI2VuZGlmIC8qIF9fSTkxNV9HRU1fU1RP TEVOX0hfXyAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVz dF9yZXNldC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfcmVzZXQuYwo+IGlu ZGV4IDM1NDA2ZWNkZjBiMi4uZWY1YWVlYmJlZWIwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3Jlc2V0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9zZWxmdGVzdF9yZXNldC5jCj4gQEAgLTMsOSArMywyMDMgQEAKPiAgICogQ29weXJpZ2h0 IMKpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KPiAgICovCj4gIAo+ICsjaW5jbHVkZSA8bGludXgv Y3JjMzIuaD4KPiArCj4gKyNpbmNsdWRlICJnZW0vaTkxNV9nZW1fc3RvbGVuLmgiCj4gKwo+ICsj aW5jbHVkZSAiaTkxNV9tZW1jcHkuaCIKPiAgI2luY2x1ZGUgImk5MTVfc2VsZnRlc3QuaCIKPiAg I2luY2x1ZGUgInNlbGZ0ZXN0cy9pZ3RfcmVzZXQuaCIKPiAgI2luY2x1ZGUgInNlbGZ0ZXN0cy9p Z3RfYXRvbWljLmgiCj4gKyNpbmNsdWRlICJzZWxmdGVzdHMvaWd0X3NwaW5uZXIuaCIKPiArCj4g K3N0YXRpYyBpbnQKPiArX19pZ3RfcmVzZXRfc3RvbGVuKHN0cnVjdCBpbnRlbF9ndCAqZ3QsCj4g KwkJICAgaW50ZWxfZW5naW5lX21hc2tfdCBtYXNrLAo+ICsJCSAgIGNvbnN0IGNoYXIgKm1zZykK PiArewo+ICsJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZndC0+aTkxNS0+Z2d0dDsKPiArCWNv bnN0IHN0cnVjdCByZXNvdXJjZSAqZHNtID0gJmd0LT5pOTE1LT5kc207Cj4gKwlyZXNvdXJjZV9z aXplX3QgbnVtX3BhZ2VzLCBwYWdlOwo+ICsJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l Owo+ICsJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7Cj4gKwllbnVtIGludGVsX2VuZ2luZV9pZCBp ZDsKPiArCXN0cnVjdCBpZ3Rfc3Bpbm5lciBzcGluOwo+ICsJbG9uZyBtYXgsIGNvdW50Owo+ICsJ dm9pZCAqdG1wOwo+ICsJdTMyICpjcmM7Cj4gKwlpbnQgZXJyOwo+ICsKPiArCWlmICghZHJtX21t X25vZGVfYWxsb2NhdGVkKCZnZ3R0LT5lcnJvcl9jYXB0dXJlKSkKPiArCQlyZXR1cm4gMDsKPiAr Cj4gKwludW1fcGFnZXMgPSByZXNvdXJjZV9zaXplKGRzbSkgPj4gUEFHRV9TSElGVDsKPiArCWlm ICghbnVtX3BhZ2VzKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCWNyYyA9IGttYWxsb2NfYXJyYXko bnVtX3BhZ2VzLCBzaXplb2YodTMyKSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIWNyYykKPiArCQly ZXR1cm4gLUVOT01FTTsKPiArCj4gKwl0bXAgPSBrbWFsbG9jKFBBR0VfU0laRSwgR0ZQX0tFUk5F TCk7Cj4gKwlpZiAoIXRtcCkgewo+ICsJCWVyciA9IC1FTk9NRU07Cj4gKwkJZ290byBlcnJfY3Jj Owo+ICsJfQo+ICsKPiArCWlndF9nbG9iYWxfcmVzZXRfbG9jayhndCk7Cj4gKwl3YWtlcmVmID0g aW50ZWxfcnVudGltZV9wbV9nZXQoZ3QtPnVuY29yZS0+cnBtKTsKPiArCj4gKwllcnIgPSBpZ3Rf c3Bpbm5lcl9pbml0KCZzcGluLCBndCk7Cj4gKwlpZiAoZXJyKQo+ICsJCWdvdG8gZXJyX2xvY2s7 Cj4gKwo+ICsJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7Cj4gKwkJc3RydWN0IGlu dGVsX2NvbnRleHQgKmNlOwo+ICsJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwo+ICsKPiArCQlp ZiAoIShtYXNrICYgZW5naW5lLT5tYXNrKSkKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCWlmICgh aW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChlbmdpbmUpKQo+ICsJCQljb250aW51ZTsKPiAr Cj4gKwkJY2UgPSBpbnRlbF9jb250ZXh0X2NyZWF0ZShlbmdpbmUpOwo+ICsJCWlmIChJU19FUlIo Y2UpKSB7Cj4gKwkJCWVyciA9IFBUUl9FUlIoY2UpOwo+ICsJCQlnb3RvIGVycl9zcGluOwo+ICsJ CX0KPiArCQlycSA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZzcGluLCBjZSwgTUlfQVJC X0NIRUNLKTsKPiArCQlpbnRlbF9jb250ZXh0X3B1dChjZSk7Cj4gKwkJaWYgKElTX0VSUihycSkp IHsKPiArCQkJZXJyID0gUFRSX0VSUihycSk7Cj4gKwkJCWdvdG8gZXJyX3NwaW47Cj4gKwkJfQo+ ICsJCWk5MTVfcmVxdWVzdF9hZGQocnEpOwo+ICsJfQo+ICsKPiArCWZvciAocGFnZSA9IDA7IHBh Z2UgPCBudW1fcGFnZXM7IHBhZ2UrKykgewo+ICsJCWRtYV9hZGRyX3QgZG1hID0gKGRtYV9hZGRy X3QpZHNtLT5zdGFydCArIChwYWdlIDw8IFBBR0VfU0hJRlQpOwo+ICsJCXZvaWQgX19pb21lbSAq czsKPiArCQl2b2lkICppbjsKPiArCj4gKwkJZ2d0dC0+dm0uaW5zZXJ0X3BhZ2UoJmdndHQtPnZt LCBkbWEsCj4gKwkJCQkgICAgIGdndHQtPmVycm9yX2NhcHR1cmUuc3RhcnQsCj4gKwkJCQkgICAg IEk5MTVfQ0FDSEVfTk9ORSwgMCk7Cj4gKwkJbWIoKTsKPiArCj4gKwkJcyA9IGlvX21hcHBpbmdf bWFwX3djKCZnZ3R0LT5pb21hcCwKPiArCQkJCSAgICAgIGdndHQtPmVycm9yX2NhcHR1cmUuc3Rh cnQsCj4gKwkJCQkgICAgICBQQUdFX1NJWkUpOwo+ICsKPiArCQlpZiAoIV9fZHJtX21tX2ludGVy dmFsX2ZpcnN0KCZndC0+aTkxNS0+bW0uc3RvbGVuLAo+ICsJCQkJCSAgICAgcGFnZSA8PCBQQUdF X1NISUZULAo+ICsJCQkJCSAgICAgKChwYWdlICsgMSkgPDwgUEFHRV9TSElGVCkgLSAxKSkKPiAr CQkJbWVtc2V0MzIocywgU1RBQ0tfTUFHSUMsIFBBR0VfU0laRSAvIHNpemVvZih1MzIpKTsKPiAr Cj4gKwkJaW4gPSBzOwo+ICsJCWlmIChpOTE1X21lbWNweV9mcm9tX3djKHRtcCwgcywgUEFHRV9T SVpFKSkKPiArCQkJaW4gPSB0bXA7Cj4gKwkJY3JjW3BhZ2VdID0gY3JjMzJfbGUoMCwgaW4sIFBB R0VfU0laRSk7Cj4gKwo+ICsJCWlvX21hcHBpbmdfdW5tYXAocyk7Cj4gKwl9Cj4gKwltYigpOwo+ ICsJZ2d0dC0+dm0uY2xlYXJfcmFuZ2UoJmdndHQtPnZtLCBnZ3R0LT5lcnJvcl9jYXB0dXJlLnN0 YXJ0LCBQQUdFX1NJWkUpOwo+ICsKPiArCWlmIChtYXNrID09IEFMTF9FTkdJTkVTKSB7Cj4gKwkJ aW50ZWxfZ3RfcmVzZXQoZ3QsIG1hc2ssIE5VTEwpOwo+ICsJfSBlbHNlIHsKPiArCQlmb3JfZWFj aF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKPiArCQkJaWYgKG1hc2sgJiBlbmdpbmUtPm1hc2sp Cj4gKwkJCQlpbnRlbF9lbmdpbmVfcmVzZXQoZW5naW5lLCBOVUxMKTsKPiArCQl9Cj4gKwl9Cj4g Kwo+ICsJbWF4ID0gLTE7Cj4gKwljb3VudCA9IDA7Cj4gKwlmb3IgKHBhZ2UgPSAwOyBwYWdlIDwg bnVtX3BhZ2VzOyBwYWdlKyspIHsKPiArCQlkbWFfYWRkcl90IGRtYSA9IChkbWFfYWRkcl90KWRz bS0+c3RhcnQgKyAocGFnZSA8PCBQQUdFX1NISUZUKTsKPiArCQl2b2lkIF9faW9tZW0gKnM7Cj4g KwkJdm9pZCAqaW47Cj4gKwkJdTMyIHg7Cj4gKwo+ICsJCWdndHQtPnZtLmluc2VydF9wYWdlKCZn Z3R0LT52bSwgZG1hLAo+ICsJCQkJICAgICBnZ3R0LT5lcnJvcl9jYXB0dXJlLnN0YXJ0LAo+ICsJ CQkJICAgICBJOTE1X0NBQ0hFX05PTkUsIDApOwo+ICsJCW1iKCk7Cj4gKwo+ICsJCXMgPSBpb19t YXBwaW5nX21hcF93YygmZ2d0dC0+aW9tYXAsCj4gKwkJCQkgICAgICBnZ3R0LT5lcnJvcl9jYXB0 dXJlLnN0YXJ0LAo+ICsJCQkJICAgICAgUEFHRV9TSVpFKTsKPiArCj4gKwkJaW4gPSBzOwo+ICsJ CWlmIChpOTE1X21lbWNweV9mcm9tX3djKHRtcCwgcywgUEFHRV9TSVpFKSkKPiArCQkJaW4gPSB0 bXA7Cj4gKwkJeCA9IGNyYzMyX2xlKDAsIGluLCBQQUdFX1NJWkUpOwo+ICsKPiArCQlpZiAoeCAh PSBjcmNbcGFnZV0gJiYKPiArCQkgICAgIV9fZHJtX21tX2ludGVydmFsX2ZpcnN0KCZndC0+aTkx NS0+bW0uc3RvbGVuLAo+ICsJCQkJCSAgICAgcGFnZSA8PCBQQUdFX1NISUZULAo+ICsJCQkJCSAg ICAgKChwYWdlICsgMSkgPDwgUEFHRV9TSElGVCkgLSAxKSkgewo+ICsJCQlwcl9kZWJ1ZygidW51 c2VkIHN0b2xlbiBwYWdlICVwYSBtb2RpZmllZCBieSBHUFUgcmVzZXRcbiIsCj4gKwkJCQkgJnBh Z2UpOwo+ICsJCQlpZiAoY291bnQrKyA9PSAwKQo+ICsJCQkJaWd0X2hleGR1bXAoaW4sIFBBR0Vf U0laRSk7Cj4gKwkJCW1heCA9IHBhZ2U7Cj4gKwkJfQo+ICsKPiArCQlpb19tYXBwaW5nX3VubWFw KHMpOwo+ICsJfQo+ICsJbWIoKTsKPiArCWdndHQtPnZtLmNsZWFyX3JhbmdlKCZnZ3R0LT52bSwg Z2d0dC0+ZXJyb3JfY2FwdHVyZS5zdGFydCwgUEFHRV9TSVpFKTsKPiArCj4gKwlpZiAoY291bnQg PiAwKSB7Cj4gKwkJcHJfaW5mbygiJXMgcmVzZXQgY2xvYmJlcmVkICVsZCBwYWdlcyBvZiBzdG9s ZW4sIGxhc3QgY2xvYmJlciBhdCBwYWdlICVsZFxuIiwKPiArCQkJbXNnLCBjb3VudCwgbWF4KTsK PiArCX0KPiArCWlmIChtYXggPj0gSTkxNV9HRU1fU1RPTEVOX0JJQVMgPj4gUEFHRV9TSElGVCkg ewo+ICsJCXByX2VycigiJXMgcmVzZXQgY2xvYmJlcmVkIHVucmVzZXJ2ZWQgYXJlYSBbYWJvdmUg JXhdIG9mIHN0b2xlbjsgbWF5IGNhdXNlIHNldmVyZSBmYXVsdHNcbiIsCj4gKwkJICAgICAgIG1z ZywgSTkxNV9HRU1fU1RPTEVOX0JJQVMpOwo+ICsJCWVyciA9IC1FSU5WQUw7Cj4gKwl9Cj4gKwo+ ICtlcnJfc3BpbjoKPiArCWlndF9zcGlubmVyX2ZpbmkoJnNwaW4pOwo+ICsKPiArZXJyX2xvY2s6 Cj4gKwlpbnRlbF9ydW50aW1lX3BtX3B1dChndC0+dW5jb3JlLT5ycG0sIHdha2VyZWYpOwo+ICsJ aWd0X2dsb2JhbF9yZXNldF91bmxvY2soZ3QpOwo+ICsKPiArCWtmcmVlKHRtcCk7Cj4gK2Vycl9j cmM6Cj4gKwlrZnJlZShjcmMpOwo+ICsJcmV0dXJuIGVycjsKPiArfQo+ICsKPiArc3RhdGljIGlu dCBpZ3RfcmVzZXRfZGV2aWNlX3N0b2xlbih2b2lkICphcmcpCj4gK3sKPiArCXJldHVybiBfX2ln dF9yZXNldF9zdG9sZW4oYXJnLCBBTExfRU5HSU5FUywgImRldmljZSIpOwo+ICt9Cj4gKwo+ICtz dGF0aWMgaW50IGlndF9yZXNldF9lbmdpbmVzX3N0b2xlbih2b2lkICphcmcpCj4gK3sKPiArCXN0 cnVjdCBpbnRlbF9ndCAqZ3QgPSBhcmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmU7Cj4gKwllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKPiArCWludCBlcnI7Cj4gKwo+ICsJaWYg KCFpbnRlbF9oYXNfcmVzZXRfZW5naW5lKGd0KSkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwlmb3Jf ZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKPiArCQllcnIgPSBfX2lndF9yZXNldF9zdG9s ZW4oZ3QsIGVuZ2luZS0+bWFzaywgZW5naW5lLT5uYW1lKTsKPiArCQlpZiAoZXJyKQo+ICsJCQly ZXR1cm4gZXJyOwo+ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gIAo+ICBzdGF0aWMgaW50 IGlndF9nbG9iYWxfcmVzZXQodm9pZCAqYXJnKQo+ICB7Cj4gQEAgLTE2NCw2ICszNTgsOCBAQCBp bnQgaW50ZWxfcmVzZXRfbGl2ZV9zZWxmdGVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpCj4gIHsKPiAgCXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9zdWJ0ZXN0IHRlc3RzW10gPSB7 Cj4gIAkJU1VCVEVTVChpZ3RfZ2xvYmFsX3Jlc2V0KSwgLyogYXR0ZW1wdCB0byByZWNvdmVyIEdQ VSBmaXJzdCAqLwo+ICsJCVNVQlRFU1QoaWd0X3Jlc2V0X2RldmljZV9zdG9sZW4pLAo+ICsJCVNV QlRFU1QoaWd0X3Jlc2V0X2VuZ2luZXNfc3RvbGVuKSwKPiAgCQlTVUJURVNUKGlndF93ZWRnZWRf cmVzZXQpLAo+ICAJCVNVQlRFU1QoaWd0X2F0b21pY19yZXNldCksCj4gIAkJU1VCVEVTVChpZ3Rf YXRvbWljX2VuZ2luZV9yZXNldCksCj4gLS0gCj4gMi4yMC4xCj4KPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QK PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==