From mboxrd@z Thu Jan 1 00:00:00 1970 From: michael.h.nguyen@intel.com Subject: [PATCH v7 2/5] drm/i915: Use batch pools with the command parser Date: Thu, 11 Dec 2014 12:13:09 -0800 Message-ID: <1418328792-28072-3-git-send-email-michael.h.nguyen@intel.com> References: <1418328792-28072-1-git-send-email-michael.h.nguyen@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 40C156E47A for ; Thu, 11 Dec 2014 12:15:59 -0800 (PST) In-Reply-To: <1418328792-28072-1-git-send-email-michael.h.nguyen@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 Cc: Brad Volkin List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQnJhZCBWb2xraW4gPGJyYWRsZXkuZC52b2xraW5AaW50ZWwuY29tPgoKVGhpcyBwYXRj aCBzZXRzIHVwIGFsbCBvZiB0aGUgdHJhY2tpbmcgYW5kIGNvcHlpbmcgbmVjZXNzYXJ5IHRvCnVz ZSBiYXRjaCBwb29scyB3aXRoIHRoZSBjb21tYW5kIHBhcnNlciBhbmQgZGlzcGF0Y2hlcyB0aGUg Y29waWVkCihzaGFkb3cpIGJhdGNoIHRvIHRoZSBoYXJkd2FyZS4KCkFmdGVyIHRoaXMgcGF0Y2gs IHRoZSBwYXJzZXIgaXMgaW4gJ2VuYWJsaW5nJyBtb2RlLgoKTm90ZSB0aGF0IHBlcmZvcm1hbmNl IHRha2VzIGEgaGl0IGZyb20gdGhlIGNvcHkgaW4gc29tZSBjYXNlcwphbmQgd2lsbCBsaWtlbHkg bmVlZCBzb21lIHdvcmsuIEF0IGEgcm91Z2ggcGFzcywgdGhlIG1lbWNweQphcHBlYXJzIHRvIGJl IHRoZSBib3R0bGVuZWNrLiBXaXRob3V0IGhhdmluZyBkb25lIGEgZGVlcGVyCmFuYWx5c2lzLCB0 d28gaWRlYXMgdGhhdCBjb21lIHRvIG1pbmQgYXJlOgoxKSBDb3B5IHNlY3Rpb25zIG9mIHRoZSBi YXRjaCBhdCBhIHRpbWUsIGFzIHRoZXkgYXJlIHJlYWNoZWQKICAgYnkgcGFyc2luZy4gTWlnaHQg aW1wcm92ZSBjYWNoZSBsb2NhbGl0eS4KMikgQ29weSBvbmx5IHVwIHRvIHRoZSB1c2Vyc3BhY2Ut c3VwcGxpZWQgYmF0Y2ggbGVuZ3RoIGFuZAogICBtZW1zZXQgdGhlIHJlc3Qgb2YgdGhlIGJ1ZmZl ci4gUmVkdWNlcyB0aGUgbnVtYmVyIG9mIHJlYWRzLgoKdjI6Ci0gUmVtb3ZlIHNldHRpbmcgdGhl IGNhcGFjaXR5IG9mIHRoZSBwb29sCi0gT25lIGdsb2JhbCBwb29sIGluc3RlYWQgb2YgcGVyLXJp bmcgcG9vbHMKLSBSZXBsYWNlIGJhdGNoX29iaiB3aXRoIHNoYWRvd19iYXRjaF9vYmogYW5kIGhv b2sgaW50byBlYi0+dm1hcwotIE1lbXNldCBhbnkgc3BhY2UgaW4gdGhlIHNoYWRvdyBiYXRjaCBi ZXlvbmQgd2hhdCBnZXRzIGNvcGllZAotIFJlYmFzZWQgb24gZXhlY2xpc3QgcHJlcCByZWZhY3Rv cmluZwoKdjM6Ci0gUmViYXNlIG9uIGNoYWluZWQgYmF0Y2ggaGFuZGxpbmcKLSBTcXVhc2ggaW4g c2V0dGluZyB0aGUgc2VjdXJlIGRpc3BhdGNoIGZsYWcKLSBBZGQgYSBub3RlIGFib3V0IHRoZSBp bnRlcmFjdGlvbiB3L3NlY3VyZSBkaXNwYXRjaCBwaW5uaW5nCi0gQ2hlY2sgZm9yIHJlcXVlc3Qt PmJhdGNoX29iaiA9PSBOVUxMIGluIGk5MTVfZ2VtX2ZyZWVfcmVxdWVzdAoKdjQ6Ci0gRml4IHJl YWQgZG9tYWlucyBmb3Igc2hhZG93X2JhdGNoX29iagotIFJlbW92ZSB0aGUgc2V0X3RvX2d0dF9k b21haW4gY2FsbCBmcm9tIGk5MTVfcGFyc2VfY21kcwotIGdndHRfcGluL3VucGluIGluIHRoZSBw YXJzZXIgYmxvY2sgdG8gc2ltcGxpZnkgZXJyb3IgaGFuZGxpbmcKLSBDaGVjayBVU0VTX0ZVTExf UFBHVFQgYmVmb3JlIHNldHRpbmcgRElTUEFUQ0hfU0VDVVJFIGZsYWcKLSBSZW1vdmUgaTkxNV9n ZW1fYmF0Y2hfcG9vbF9wdXQgY2FsbHMKCnY1OgotIE1vdmUgJ3BlbmRpbmdfcmVhZF9kb21haW5z IHw9IEk5MTVfR0VNX0RPTUFJTl9DT01NQU5EJyBhZnRlcgogIHRoZSBwYXJzZXIgKGRhbnZldCwg ZnJvbSB2NCAwLzcgZmVlZGJhY2spCgpJc3N1ZTogVklaLTQ3MTkKU2lnbmVkLW9mZi1ieTogQnJh ZCBWb2xraW4gPGJyYWRsZXkuZC52b2xraW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfY21kX3BhcnNlci5jICAgICB8IDc5ICsrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyAgICAgICAgICAgIHwgIDEg KwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgIHwgIDEgKwogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgIDIgKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIHwgNTIgKysrKysrKysrKysrKysrKyst LS0KIDUgZmlsZXMgY2hhbmdlZCwgMTEyIGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY21kX3BhcnNlci5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMKaW5kZXggYjg4MmJmMi4uMmE0Y2Nh YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMKQEAgLTg0OCw2ICs4NDgs NTYgQEAgZmluaXNoOgogCXJldHVybiAodTMyKilhZGRyOwogfQogCisvKiBSZXR1cm5zIGEgdm1h cCdkIHBvaW50ZXIgdG8gZGVzdF9vYmosIHdoaWNoIHRoZSBjYWxsZXIgbXVzdCB1bm1hcCAqLwor c3RhdGljIHUzMiAqY29weV9iYXRjaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqZGVzdF9v YmosCisJCSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqc3JjX29iaikKK3sKKwlp bnQgcmV0ID0gMDsKKwlpbnQgbmVlZHNfY2xmbHVzaCA9IDA7CisJdTMyICpzcmNfYWRkciwgKmRl c3RfYWRkciA9IE5VTEw7CisKKwlyZXQgPSBpOTE1X2dlbV9vYmpfcHJlcGFyZV9zaG1lbV9yZWFk KHNyY19vYmosICZuZWVkc19jbGZsdXNoKTsKKwlpZiAocmV0KSB7CisJCURSTV9ERUJVR19EUklW RVIoIkNNRDogZmFpbGVkIHRvIHByZXAgcmVhZFxuIik7CisJCXJldHVybiBFUlJfUFRSKHJldCk7 CisJfQorCisJc3JjX2FkZHIgPSB2bWFwX2JhdGNoKHNyY19vYmopOworCWlmICghc3JjX2FkZHIp IHsKKwkJRFJNX0RFQlVHX0RSSVZFUigiQ01EOiBGYWlsZWQgdG8gdm1hcCBiYXRjaFxuIik7CisJ CXJldCA9IC1FTk9NRU07CisJCWdvdG8gdW5waW5fc3JjOworCX0KKworCWlmIChuZWVkc19jbGZs dXNoKQorCQlkcm1fY2xmbHVzaF92aXJ0X3JhbmdlKChjaGFyICopc3JjX2FkZHIsIHNyY19vYmot PmJhc2Uuc2l6ZSk7CisKKwlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2NwdV9kb21haW4o ZGVzdF9vYmosIHRydWUpOworCWlmIChyZXQpIHsKKwkJRFJNX0RFQlVHX0RSSVZFUigiQ01EOiBG YWlsZWQgdG8gc2V0IGJhdGNoIENQVSBkb21haW5cbiIpOworCQlnb3RvIHVubWFwX3NyYzsKKwl9 CisKKwlkZXN0X2FkZHIgPSB2bWFwX2JhdGNoKGRlc3Rfb2JqKTsKKwlpZiAoIWRlc3RfYWRkcikg eworCQlEUk1fREVCVUdfRFJJVkVSKCJDTUQ6IEZhaWxlZCB0byB2bWFwIHNoYWRvdyBiYXRjaFxu Iik7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gdW5tYXBfc3JjOworCX0KKworCW1lbWNweShk ZXN0X2FkZHIsIHNyY19hZGRyLCBzcmNfb2JqLT5iYXNlLnNpemUpOworCWlmIChkZXN0X29iai0+ YmFzZS5zaXplID4gc3JjX29iai0+YmFzZS5zaXplKQorCQltZW1zZXQoKHU4ICopZGVzdF9hZGRy ICsgc3JjX29iai0+YmFzZS5zaXplLCAwLAorCQkgICAgICAgZGVzdF9vYmotPmJhc2Uuc2l6ZSAt IHNyY19vYmotPmJhc2Uuc2l6ZSk7CisKK3VubWFwX3NyYzoKKwl2dW5tYXAoc3JjX2FkZHIpOwor dW5waW5fc3JjOgorCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhzcmNfb2JqKTsKKworCXJl dHVybiByZXQgPyBFUlJfUFRSKHJldCkgOiBkZXN0X2FkZHI7Cit9CisKIC8qKgogICogaTkxNV9u ZWVkc19jbWRfcGFyc2VyKCkgLSBzaG91bGQgYSBnaXZlbiByaW5nIHVzZSBzb2Z0d2FyZSBjb21t YW5kIHBhcnNpbmc/CiAgKiBAcmluZzogdGhlIHJpbmcgaW4gcXVlc3Rpb24KQEAgLTk2NCw2ICsx MDE0LDcgQEAgc3RhdGljIGJvb2wgY2hlY2tfY21kKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcsCiAgKiBpOTE1X3BhcnNlX2NtZHMoKSAtIHBhcnNlIGEgc3VibWl0dGVkIGJhdGNo IGJ1ZmZlciBmb3IgcHJpdmlsZWdlIHZpb2xhdGlvbnMKICAqIEByaW5nOiB0aGUgcmluZyBvbiB3 aGljaCB0aGUgYmF0Y2ggaXMgdG8gZXhlY3V0ZQogICogQGJhdGNoX29iajogdGhlIGJhdGNoIGJ1 ZmZlciBpbiBxdWVzdGlvbgorICogQHNoYWRvd19iYXRjaF9vYmo6IGNvcHkgb2YgdGhlIGJhdGNo IGJ1ZmZlciBpbiBxdWVzdGlvbgogICogQGJhdGNoX3N0YXJ0X29mZnNldDogYnl0ZSBvZmZzZXQg aW4gdGhlIGJhdGNoIGF0IHdoaWNoIGV4ZWN1dGlvbiBzdGFydHMKICAqIEBpc19tYXN0ZXI6IGlz IHRoZSBzdWJtaXR0aW5nIHByb2Nlc3MgdGhlIGRybSBtYXN0ZXI/CiAgKgpAQCAtOTc1LDMyICsx MDI2LDI4IEBAIHN0YXRpYyBib29sIGNoZWNrX2NtZChjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nLAogICovCiBpbnQgaTkxNV9wYXJzZV9jbWRzKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcsCiAJCSAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqYmF0Y2hfb2JqLAor CQkgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKnNoYWRvd19iYXRjaF9vYmosCiAJCSAg ICB1MzIgYmF0Y2hfc3RhcnRfb2Zmc2V0LAogCQkgICAgYm9vbCBpc19tYXN0ZXIpCiB7CiAJaW50 IHJldCA9IDA7CiAJdTMyICpjbWQsICpiYXRjaF9iYXNlLCAqYmF0Y2hfZW5kOwogCXN0cnVjdCBk cm1faTkxNV9jbWRfZGVzY3JpcHRvciBkZWZhdWx0X2Rlc2MgPSB7IDAgfTsKLQlpbnQgbmVlZHNf Y2xmbHVzaCA9IDA7CiAJYm9vbCBvYWNvbnRyb2xfc2V0ID0gZmFsc2U7IC8qIE9BQ09OVFJPTCB0 cmFja2luZy4gU2VlIGNoZWNrX2NtZCgpICovCiAKLQlyZXQgPSBpOTE1X2dlbV9vYmpfcHJlcGFy ZV9zaG1lbV9yZWFkKGJhdGNoX29iaiwgJm5lZWRzX2NsZmx1c2gpOwotCWlmIChyZXQpIHsKLQkJ RFJNX0RFQlVHX0RSSVZFUigiQ01EOiBmYWlsZWQgdG8gcHJlcCByZWFkXG4iKTsKLQkJcmV0dXJu IHJldDsKKwliYXRjaF9iYXNlID0gY29weV9iYXRjaChzaGFkb3dfYmF0Y2hfb2JqLCBiYXRjaF9v YmopOworCWlmIChJU19FUlIoYmF0Y2hfYmFzZSkpIHsKKwkJRFJNX0RFQlVHX0RSSVZFUigiQ01E OiBGYWlsZWQgdG8gY29weSBiYXRjaFxuIik7CisJCXJldHVybiBQVFJfRVJSKGJhdGNoX2Jhc2Up OwogCX0KIAotCWJhdGNoX2Jhc2UgPSB2bWFwX2JhdGNoKGJhdGNoX29iaik7Ci0JaWYgKCFiYXRj aF9iYXNlKSB7Ci0JCURSTV9ERUJVR19EUklWRVIoIkNNRDogRmFpbGVkIHRvIHZtYXAgYmF0Y2hc biIpOwotCQlpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMoYmF0Y2hfb2JqKTsKLQkJcmV0dXJu IC1FTk9NRU07Ci0JfQotCi0JaWYgKG5lZWRzX2NsZmx1c2gpCi0JCWRybV9jbGZsdXNoX3ZpcnRf cmFuZ2UoKGNoYXIgKiliYXRjaF9iYXNlLCBiYXRjaF9vYmotPmJhc2Uuc2l6ZSk7Ci0KIAljbWQg PSBiYXRjaF9iYXNlICsgKGJhdGNoX3N0YXJ0X29mZnNldCAvIHNpemVvZigqY21kKSk7CisKKwkv KgorCSAqIFdlIHVzZSB0aGUgc291cmNlIG9iamVjdCdzIHNpemUgYmVjYXVzZSB0aGUgc2hhZG93 IG9iamVjdCBpcyBhcworCSAqIGxhcmdlIG9yIGxhcmdlciBhbmQgY29weV9iYXRjaCgpIHdpbGwg d3JpdGUgTUlfTk9QcyB0byB0aGUgZXh0cmEKKwkgKiBzcGFjZS4gUGFyc2luZyBzaG91bGQgYmUg ZmFzdGVyIGluIHNvbWUgY2FzZXMgdGhpcyB3YXkuCisJICovCiAJYmF0Y2hfZW5kID0gY21kICsg KGJhdGNoX29iai0+YmFzZS5zaXplIC8gc2l6ZW9mKCpiYXRjaF9lbmQpKTsKIAogCXdoaWxlIChj bWQgPCBiYXRjaF9lbmQpIHsKQEAgLTEwNjIsOCArMTEwOSw2IEBAIGludCBpOTE1X3BhcnNlX2Nt ZHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAogCXZ1bm1hcChiYXRjaF9iYXNlKTsK IAotCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhiYXRjaF9vYmopOwotCiAJcmV0dXJuIHJl dDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKaW5kZXggODg3ZDg4Zi4uNTI3MzBlZCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RtYS5jCkBAIC05MjgsNiArOTI4LDcgQEAgaW50IGk5MTVfZHJpdmVy X3VubG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJCW11dGV4X2xvY2soJmRldi0+c3Ry dWN0X211dGV4KTsKIAkJaTkxNV9nZW1fY2xlYW51cF9yaW5nYnVmZmVyKGRldik7CisJCWk5MTVf Z2VtX2JhdGNoX3Bvb2xfZmluaSgmZGV2X3ByaXYtPm1tLmJhdGNoX3Bvb2wpOwogCQlpOTE1X2dl bV9jb250ZXh0X2ZpbmkoZGV2KTsKIAkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7 CiAJCWk5MTVfZ2VtX2NsZWFudXBfc3RvbGVuKGRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApp bmRleCBlMWU1MDNhLi41N2YxNWY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTI5MTcs NiArMjkxNyw3IEBAIHZvaWQgaTkxNV9jbWRfcGFyc2VyX2ZpbmlfcmluZyhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nKTsKIGJvb2wgaTkxNV9uZWVkc19jbWRfcGFyc2VyKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcpOwogaW50IGk5MTVfcGFyc2VfY21kcyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nLAogCQkgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmJhdGNoX29i aiwKKwkJICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpzaGFkb3dfYmF0Y2hfb2JqLAog CQkgICAgdTMyIGJhdGNoX3N0YXJ0X29mZnNldCwKIAkJICAgIGJvb2wgaXNfbWFzdGVyKTsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggMmYxNGFlMS4uZjZlZjQzNiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCkBAIC00OTk3LDYgKzQ5OTcsOCBAQCBpOTE1X2dlbV9sb2FkKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJZGV2X3ByaXYtPm1tLm9vbV9ub3RpZmllci5ub3RpZmllcl9jYWxs ID0gaTkxNV9nZW1fc2hyaW5rZXJfb29tOwogCXJlZ2lzdGVyX29vbV9ub3RpZmllcigmZGV2X3By aXYtPm1tLm9vbV9ub3RpZmllcik7CiAKKwlpOTE1X2dlbV9iYXRjaF9wb29sX2luaXQoZGV2LCAm ZGV2X3ByaXYtPm1tLmJhdGNoX3Bvb2wpOworCiAJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPmZiX3Ry YWNraW5nLmxvY2spOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVm ZmVyLmMKaW5kZXggMGMyNWY2Mi4uYTEwODE4NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2V4ZWNidWZmZXIuYwpAQCAtMTI4MCw2ICsxMjgwLDggQEAgaTkxNV9nZW1fZG9fZXhl Y2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGViX3Zt YXMgKmViOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpiYXRjaF9vYmo7CisJc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKnNoYWRvd19iYXRjaF9vYmogPSBOVUxMOworCXN0cnVjdCBk cm1faTkxNV9nZW1fZXhlY19vYmplY3QyIHNoYWRvd19leGVjX2VudHJ5OwogCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmc7CiAJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eDsKIAlzdHJ1Y3Qg aTkxNV9hZGRyZXNzX3NwYWNlICp2bTsKQEAgLTEzOTYsMjggKzEzOTgsNjYgQEAgaTkxNV9nZW1f ZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQlyZXQg PSAtRUlOVkFMOwogCQlnb3RvIGVycjsKIAl9Ci0JYmF0Y2hfb2JqLT5iYXNlLnBlbmRpbmdfcmVh ZF9kb21haW5zIHw9IEk5MTVfR0VNX0RPTUFJTl9DT01NQU5EOwogCiAJaWYgKGk5MTVfbmVlZHNf Y21kX3BhcnNlcihyaW5nKSkgeworCQlzaGFkb3dfYmF0Y2hfb2JqID0KKwkJCWk5MTVfZ2VtX2Jh dGNoX3Bvb2xfZ2V0KCZkZXZfcHJpdi0+bW0uYmF0Y2hfcG9vbCwKKwkJCQkJCWJhdGNoX29iai0+ YmFzZS5zaXplKTsKKwkJaWYgKElTX0VSUihzaGFkb3dfYmF0Y2hfb2JqKSkgeworCQkJcmV0ID0g UFRSX0VSUihzaGFkb3dfYmF0Y2hfb2JqKTsKKwkJCS8qIERvbid0IHRyeSB0byBjbGVhbiB1cCB0 aGUgb2JqIGluIHRoZSBlcnJvciBwYXRoICovCisJCQlzaGFkb3dfYmF0Y2hfb2JqID0gTlVMTDsK KwkJCWdvdG8gZXJyOworCQl9CisKKwkJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKHNoYWRv d19iYXRjaF9vYmosIDQwOTYsIDApOworCQlpZiAocmV0KQorCQkJZ290byBlcnI7CisKIAkJcmV0 ID0gaTkxNV9wYXJzZV9jbWRzKHJpbmcsCiAJCQkJICAgICAgYmF0Y2hfb2JqLAorCQkJCSAgICAg IHNoYWRvd19iYXRjaF9vYmosCiAJCQkJICAgICAgYXJncy0+YmF0Y2hfc3RhcnRfb2Zmc2V0LAog CQkJCSAgICAgIGZpbGUtPmlzX21hc3Rlcik7CisJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGlu KHNoYWRvd19iYXRjaF9vYmopOworCiAJCWlmIChyZXQpIHsKIAkJCWlmIChyZXQgIT0gLUVBQ0NF UykKIAkJCQlnb3RvIGVycjsKIAkJfSBlbHNlIHsKKwkJCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwor CisJCQltZW1zZXQoJnNoYWRvd19leGVjX2VudHJ5LCAwLAorCQkJICAgICAgIHNpemVvZihzaGFk b3dfZXhlY19lbnRyeSkpOworCisJCQl2bWEgPSBpOTE1X2dlbV9vYmpfdG9fZ2d0dChzaGFkb3df YmF0Y2hfb2JqKTsKKwkJCXZtYS0+ZXhlY19lbnRyeSA9ICZzaGFkb3dfZXhlY19lbnRyeTsKKwkJ CWRybV9nZW1fb2JqZWN0X3JlZmVyZW5jZSgmc2hhZG93X2JhdGNoX29iai0+YmFzZSk7CisJCQls aXN0X2FkZF90YWlsKCZ2bWEtPmV4ZWNfbGlzdCwgJmViLT52bWFzKTsKKworCQkJc2hhZG93X2Jh dGNoX29iai0+YmFzZS5wZW5kaW5nX3JlYWRfZG9tYWlucyA9CisJCQkJYmF0Y2hfb2JqLT5iYXNl LnBlbmRpbmdfcmVhZF9kb21haW5zOworCisJCQliYXRjaF9vYmogPSBzaGFkb3dfYmF0Y2hfb2Jq OworCiAJCQkvKgotCQkJICogWFhYOiBBY3R1YWxseSBkbyB0aGlzIHdoZW4gZW5hYmxpbmcgYmF0 Y2ggY29weS4uLgorCQkJICogU2V0IHRoZSBESVNQQVRDSF9TRUNVUkUgYml0IHRvIHJlbW92ZSB0 aGUgTk9OX1NFQ1VSRQorCQkJICogYml0IGZyb20gTUlfQkFUQ0hfQlVGRkVSX1NUQVJUIGNvbW1h bmRzIGlzc3VlZCBpbiB0aGUKKwkJCSAqIGRpc3BhdGNoX2V4ZWNidWZmZXIgaW1wbGVtZW50YXRp b25zLiBXZSBzcGVjaWZpY2FsbHkKKwkJCSAqIGRvbid0IHdhbnQgdGhhdCBzZXQgd2hlbiB0aGUg Y29tbWFuZCBwYXJzZXIgaXMKKwkJCSAqIGVuYWJsZWQuCiAJCQkgKgotCQkJICogU2V0IHRoZSBE SVNQQVRDSF9TRUNVUkUgYml0IHRvIHJlbW92ZSB0aGUgTk9OX1NFQ1VSRSBiaXQKLQkJCSAqIGZy b20gTUlfQkFUQ0hfQlVGRkVSX1NUQVJUIGNvbW1hbmRzIGlzc3VlZCBpbiB0aGUKLQkJCSAqIGRp c3BhdGNoX2V4ZWNidWZmZXIgaW1wbGVtZW50YXRpb25zLiBXZSBzcGVjaWZpY2FsbHkgZG9uJ3QK LQkJCSAqIHdhbnQgdGhhdCBzZXQgd2hlbiB0aGUgY29tbWFuZCBwYXJzZXIgaXMgZW5hYmxlZC4K KwkJCSAqIEZJWE1FOiB3aXRoIGFsaWFzaW5nIHBwZ3R0LCBidWZmZXJzIHRoYXQgc2hvdWxkIG9u bHkKKwkJCSAqIGJlIGluIGdndHQgc3RpbGwgZW5kIHVwIGluIHRoZSBhbGlhc2luZyBwcGd0dC4g cmVtb3ZlCisJCQkgKiB0aGlzIGNoZWNrIHdoZW4gdGhhdCBpcyBmaXhlZC4KIAkJCSAqLworCQkJ aWYgKFVTRVNfRlVMTF9QUEdUVChkZXYpKQorCQkJCWZsYWdzIHw9IEk5MTVfRElTUEFUQ0hfU0VD VVJFOwogCQl9CiAJfQogCisJYmF0Y2hfb2JqLT5iYXNlLnBlbmRpbmdfcmVhZF9kb21haW5zIHw9 IEk5MTVfR0VNX0RPTUFJTl9DT01NQU5EOworCiAJLyogc25iL2l2Yi92bHYgY29uZmxhdGUgdGhl ICJiYXRjaCBpbiBwcGd0dCIgYml0IHdpdGggdGhlICJub24tc2VjdXJlCiAJICogYmF0Y2giIGJp dC4gSGVuY2Ugd2UgbmVlZCB0byBwaW4gc2VjdXJlIGJhdGNoZXMgaW50byB0aGUgZ2xvYmFsIGd0 dC4KIAkgKiBoc3cgc2hvdWxkIGhhdmUgdGhpcyBmaXhlZCwgYnV0IGJkdyBtdWNrcyBpdCB1cCBh Z2Fpbi4gKi8KLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=