From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: [PATCH v6 02/19] drm/i915/gen8: Make pdp allocation more dynamic Date: Wed, 29 Jul 2015 17:23:46 +0100 Message-ID: <1438187043-34267-3-git-send-email-michel.thierry@intel.com> References: <1438187043-34267-1-git-send-email-michel.thierry@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id B00306EC1F for ; Wed, 29 Jul 2015 09:24:07 -0700 (PDT) In-Reply-To: <1438187043-34267-1-git-send-email-michel.thierry@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: akash.goel@intel.com List-Id: intel-gfx@lists.freedesktop.org VGhpcyB0cmFuc2l0aW9uYWwgcGF0Y2ggZG9lc24ndCBkbyBtdWNoIGZvciB0aGUgZXhpc3Rpbmcg Y29kZS4gSG93ZXZlciwKaXQgc2hvdWxkIG1ha2UgdXBjb21pbmcgcGF0Y2hlcyB0byB1c2UgdGhl IGZ1bGwgNDhiIGFkZHJlc3Mgc3BhY2UgYSBiaXQKZWFzaWVyLgoKdjI6IFJlbmFtZWQgIHBkcF9m cmVlIHRvIGJlIHNpbWlsYXIgdG8gIHBkL3B0ICh1bm1hcF9hbmRfZnJlZV9wZHApLgp2MzogVG8g ZmFjaWxpdGF0ZSB0ZXN0aW5nLCA0OGIgbW9kZSB3aWxsIGJlIGF2YWlsYWJsZSBvbiBCcm9hZHdl bGwgYW5kCkdFTjkrLCB3aGVuIGk5MTUuZW5hYmxlX3BwZ3R0ID0gMy4KdjQ6IFJlYmFzZSBhZnRl ciBzL3BhZ2VfdGFibGVzL3BhZ2VfdGFibGUvLCBhZGRlZCBleHRyYSBpbmZvcm1hdGlvbgphYm91 dCA0LWxldmVsIHBhZ2UgdGFibGUgZm9ybWF0cyBhbmQgdXNlIElTX0VOQUJMRUQgbWFjcm8uCnY1 OiBDaGVjayBDT05GSUdfWDg2XzY0IGluc3RlYWQgb2YgQ09ORklHXzY0QklULgp2NjogUmViYXNl IGFmdGVyIE1pa2EncyBwcGd0dCBjbGVhbnVwIC8gc2NyYXRjaCBtZXJnZSBwYXRjaCBzZXJpZXMs IGFuZApmb2xsb3cKaGlzIG5vbWVuY2xhdHVyZSBpbiBwZHAgZnVuY3Rpb25zICh0aGVyZSBpcyBu byBhbGxvY19wZHAgeWV0KS4Kdjc6IFJlYmFzZSBhZnRlciBtZXJnZWQgdmVyc2lvbiBvZiBNaWth J3MgcHBndHQgY2xlYW51cCBwYXRjaCBzZXJpZXMuCnY4OiBSZWJhc2UgYWZ0ZXIgZmluYWwgbWVy Z2VkIHZlcnNpb24gb2YgTWlrYSdzIHBwZ3R0L3NjcmF0Y2ggcGF0Y2hlcy4Kdjk6IEludHJvZHVj ZSBQTUw0IChhbmQgNDgtYml0IGNoZWNrcykgdW50aWwgbmV4dCBwYXRjaCAoQWthc2gpLgp2MTA6 IEFsc28gdXNlIHRlc3RfYml0IHRvIGRldGVjdCB3aGVuIHBkL3B0IGFyZSBhbHJlYWR5IGFsbG9j YXRlZCAoQWthc2gpCgpDYzogQWthc2ggR29lbCA8YWthc2guZ29lbEBpbnRlbC5jb20+ClNpZ25l ZC1vZmYtYnk6IEJlbiBXaWRhd3NreSA8YmVuQGJ3aWRhd3NrLm5ldD4KU2lnbmVkLW9mZi1ieTog TWljaGVsIFRoaWVycnkgPG1pY2hlbC50aGllcnJ5QGludGVsLmNvbT4gKHYyKykKLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyB8IDg2ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oIHwg MTcgKysrKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgODAgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwppbmRleCAxODk1NzJkLi4yOGYz MjI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtNTIyLDYgKzUyMiw0MyBA QCBzdGF0aWMgdm9pZCBnZW44X2luaXRpYWxpemVfcGQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFj ZSAqdm0sCiAJZmlsbF9weCh2bS0+ZGV2LCBwZCwgc2NyYXRjaF9wZGUpOwogfQogCitzdGF0aWMg aW50IF9fcGRwX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJICAgICAgc3RydWN0IGk5 MTVfcGFnZV9kaXJlY3RvcnlfcG9pbnRlciAqcGRwKQoreworCXNpemVfdCBwZHBlcyA9IEk5MTVf UERQRVNfUEVSX1BEUChkZXYpOworCisJcGRwLT51c2VkX3BkcGVzID0ga2NhbGxvYyhCSVRTX1RP X0xPTkdTKHBkcGVzKSwKKwkJCQkgIHNpemVvZih1bnNpZ25lZCBsb25nKSwKKwkJCQkgIEdGUF9L RVJORUwpOworCWlmICghcGRwLT51c2VkX3BkcGVzKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXBk cC0+cGFnZV9kaXJlY3RvcnkgPSBrY2FsbG9jKHBkcGVzLCBzaXplb2YoKnBkcC0+cGFnZV9kaXJl Y3RvcnkpLAorCQkJCSAgICAgIEdGUF9LRVJORUwpOworCWlmICghcGRwLT5wYWdlX2RpcmVjdG9y eSkgeworCQlrZnJlZShwZHAtPnVzZWRfcGRwZXMpOworCQkvKiB0aGUgUERQIG1pZ2h0IGJlIHRo ZSBzdGF0aWNhbGx5IGFsbG9jYXRlZCB0b3AgbGV2ZWwuIEtlZXAgaXQKKwkJICogYXMgY2xlYW4g YXMgcG9zc2libGUgKi8KKwkJcGRwLT51c2VkX3BkcGVzID0gTlVMTDsKKwkJcmV0dXJuIC1FTk9N RU07CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9fcGRwX2Zpbmkoc3RydWN0 IGk5MTVfcGFnZV9kaXJlY3RvcnlfcG9pbnRlciAqcGRwKQoreworCWtmcmVlKHBkcC0+dXNlZF9w ZHBlcyk7CisJa2ZyZWUocGRwLT5wYWdlX2RpcmVjdG9yeSk7CisJcGRwLT5wYWdlX2RpcmVjdG9y eSA9IE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkIGZyZWVfcGRwKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCisJCSAgICAgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnlfcG9pbnRlciAqcGRwKQorewor CV9fcGRwX2ZpbmkocGRwKTsKK30KKwogLyogQnJvYWR3ZWxsIFBhZ2UgRGlyZWN0b3J5IFBvaW50 ZXIgRGVzY3JpcHRvcnMgKi8KIHN0YXRpYyBpbnQgZ2VuOF93cml0ZV9wZHAoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJCQkgIHVuc2lnbmVkIGVudHJ5LApAQCAtNzIwLDcgKzc1 Nyw4IEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfY2xlYW51cChzdHJ1Y3QgaTkxNV9hZGRyZXNz X3NwYWNlICp2bSkKIAkJY29udGFpbmVyX29mKHZtLCBzdHJ1Y3QgaTkxNV9od19wcGd0dCwgYmFz ZSk7CiAJaW50IGk7CiAKLQlmb3JfZWFjaF9zZXRfYml0KGksIHBwZ3R0LT5wZHAudXNlZF9wZHBl cywgR0VOOF9MRUdBQ1lfUERQRVMpIHsKKwlmb3JfZWFjaF9zZXRfYml0KGksIHBwZ3R0LT5wZHAu dXNlZF9wZHBlcywKKwkJCSBJOTE1X1BEUEVTX1BFUl9QRFAocHBndHQtPmJhc2UuZGV2KSkgewog CQlpZiAoV0FSTl9PTighcHBndHQtPnBkcC5wYWdlX2RpcmVjdG9yeVtpXSkpCiAJCQljb250aW51 ZTsKIApAQCAtNzI5LDYgKzc2Nyw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfY2xlYW51cChz dHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKIAkJZnJlZV9wZChwcGd0dC0+YmFzZS5kZXYs IHBwZ3R0LT5wZHAucGFnZV9kaXJlY3RvcnlbaV0pOwogCX0KIAorCWZyZWVfcGRwKHBwZ3R0LT5i YXNlLmRldiwgJnBwZ3R0LT5wZHApOwogCWdlbjhfZnJlZV9zY3JhdGNoKHZtKTsKIH0KIApAQCAt NzYzLDcgKzgwMiw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9wcGd0dF9hbGxvY19wYWdldGFicyhzdHJ1 Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCiAKIAlnZW44X2Zvcl9lYWNoX3BkZShwdCwgcGQsIHN0 YXJ0LCBsZW5ndGgsIHRlbXAsIHBkZSkgewogCQkvKiBEb24ndCByZWFsbG9jYXRlIHBhZ2UgdGFi bGVzICovCi0JCWlmIChwdCkgeworCQlpZiAodGVzdF9iaXQocGRlLCBwZC0+dXNlZF9wZGVzKSkg ewogCQkJLyogU2NyYXRjaCBpcyBuZXZlciBhbGxvY2F0ZWQgdGhpcyB3YXkgKi8KIAkJCVdBUk5f T04ocHQgPT0gcHBndHQtPmJhc2Uuc2NyYXRjaF9wdCk7CiAJCQljb250aW51ZTsKQEAgLTgyMCwx MSArODU5LDEyIEBAIHN0YXRpYyBpbnQgZ2VuOF9wcGd0dF9hbGxvY19wYWdlX2RpcmVjdG9yaWVz KHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCwKIAlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9y eSAqcGQ7CiAJdWludDY0X3QgdGVtcDsKIAl1aW50MzJfdCBwZHBlOworCXVpbnQzMl90IHBkcGVz ID0gSTkxNV9QRFBFU19QRVJfUERQKGRldik7CiAKLQlXQVJOX09OKCFiaXRtYXBfZW1wdHkobmV3 X3BkcywgR0VOOF9MRUdBQ1lfUERQRVMpKTsKKwlXQVJOX09OKCFiaXRtYXBfZW1wdHkobmV3X3Bk cywgcGRwZXMpKTsKIAogCWdlbjhfZm9yX2VhY2hfcGRwZShwZCwgcGRwLCBzdGFydCwgbGVuZ3Ro LCB0ZW1wLCBwZHBlKSB7Ci0JCWlmIChwZCkKKwkJaWYgKHRlc3RfYml0KHBkcGUsIHBkcC0+dXNl ZF9wZHBlcykpCiAJCQljb250aW51ZTsKIAogCQlwZCA9IGFsbG9jX3BkKGRldik7CkBAIC04Mzks MTggKzg3OSwxOSBAQCBzdGF0aWMgaW50IGdlbjhfcHBndHRfYWxsb2NfcGFnZV9kaXJlY3Rvcmll cyhzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCiAJcmV0dXJuIDA7CiAKIHVud2luZF9vdXQ6 Ci0JZm9yX2VhY2hfc2V0X2JpdChwZHBlLCBuZXdfcGRzLCBHRU44X0xFR0FDWV9QRFBFUykKKwlm b3JfZWFjaF9zZXRfYml0KHBkcGUsIG5ld19wZHMsIHBkcGVzKQogCQlmcmVlX3BkKGRldiwgcGRw LT5wYWdlX2RpcmVjdG9yeVtwZHBlXSk7CiAKIAlyZXR1cm4gLUVOT01FTTsKIH0KIAogc3RhdGlj IHZvaWQKLWZyZWVfZ2VuOF90ZW1wX2JpdG1hcHModW5zaWduZWQgbG9uZyAqbmV3X3BkcywgdW5z aWduZWQgbG9uZyAqKm5ld19wdHMpCitmcmVlX2dlbjhfdGVtcF9iaXRtYXBzKHVuc2lnbmVkIGxv bmcgKm5ld19wZHMsIHVuc2lnbmVkIGxvbmcgKipuZXdfcHRzLAorCQkgICAgICAgdWludDMyX3Qg cGRwZXMpCiB7CiAJaW50IGk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgR0VOOF9MRUdBQ1lfUERQRVM7 IGkrKykKKwlmb3IgKGkgPSAwOyBpIDwgcGRwZXM7IGkrKykKIAkJa2ZyZWUobmV3X3B0c1tpXSk7 CiAJa2ZyZWUobmV3X3B0cyk7CiAJa2ZyZWUobmV3X3Bkcyk7CkBAIC04NjEsMjMgKzkwMiwyNCBA QCBmcmVlX2dlbjhfdGVtcF9iaXRtYXBzKHVuc2lnbmVkIGxvbmcgKm5ld19wZHMsIHVuc2lnbmVk IGxvbmcgKipuZXdfcHRzKQogICovCiBzdGF0aWMKIGludCBfX211c3RfY2hlY2sgYWxsb2NfZ2Vu OF90ZW1wX2JpdG1hcHModW5zaWduZWQgbG9uZyAqKm5ld19wZHMsCi0JCQkJCSB1bnNpZ25lZCBs b25nICoqKm5ld19wdHMpCisJCQkJCSB1bnNpZ25lZCBsb25nICoqKm5ld19wdHMsCisJCQkJCSB1 aW50MzJfdCBwZHBlcykKIHsKIAlpbnQgaTsKIAl1bnNpZ25lZCBsb25nICpwZHM7CiAJdW5zaWdu ZWQgbG9uZyAqKnB0czsKIAotCXBkcyA9IGtjYWxsb2MoQklUU19UT19MT05HUyhHRU44X0xFR0FD WV9QRFBFUyksIHNpemVvZih1bnNpZ25lZCBsb25nKSwgR0ZQX0tFUk5FTCk7CisJcGRzID0ga2Nh bGxvYyhCSVRTX1RPX0xPTkdTKHBkcGVzKSwgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpLCBHRlBfS0VS TkVMKTsKIAlpZiAoIXBkcykKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlwdHMgPSBrY2FsbG9jKEdF TjhfTEVHQUNZX1BEUEVTLCBzaXplb2YodW5zaWduZWQgbG9uZyAqKSwgR0ZQX0tFUk5FTCk7CisJ cHRzID0ga2NhbGxvYyhwZHBlcywgc2l6ZW9mKHVuc2lnbmVkIGxvbmcgKiksIEdGUF9LRVJORUwp OwogCWlmICghcHRzKSB7CiAJCWtmcmVlKHBkcyk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAot CWZvciAoaSA9IDA7IGkgPCBHRU44X0xFR0FDWV9QRFBFUzsgaSsrKSB7CisJZm9yIChpID0gMDsg aSA8IHBkcGVzOyBpKyspIHsKIAkJcHRzW2ldID0ga2NhbGxvYyhCSVRTX1RPX0xPTkdTKEk5MTVf UERFUyksCiAJCQkJIHNpemVvZih1bnNpZ25lZCBsb25nKSwgR0ZQX0tFUk5FTCk7CiAJCWlmICgh cHRzW2ldKQpAQCAtODkwLDcgKzkzMiw3IEBAIGludCBfX211c3RfY2hlY2sgYWxsb2NfZ2VuOF90 ZW1wX2JpdG1hcHModW5zaWduZWQgbG9uZyAqKm5ld19wZHMsCiAJcmV0dXJuIDA7CiAKIGVycl9v dXQ6Ci0JZnJlZV9nZW44X3RlbXBfYml0bWFwcyhwZHMsIHB0cyk7CisJZnJlZV9nZW44X3RlbXBf Yml0bWFwcyhwZHMsIHB0cywgcGRwZXMpOwogCXJldHVybiAtRU5PTUVNOwogfQogCkBAIC05MTYs NiArOTU4LDcgQEAgc3RhdGljIGludCBnZW44X2FsbG9jX3ZhX3JhbmdlKHN0cnVjdCBpOTE1X2Fk ZHJlc3Nfc3BhY2UgKnZtLAogCWNvbnN0IHVpbnQ2NF90IG9yaWdfbGVuZ3RoID0gbGVuZ3RoOwog CXVpbnQ2NF90IHRlbXA7CiAJdWludDMyX3QgcGRwZTsKKwl1aW50MzJfdCBwZHBlcyA9IEk5MTVf UERQRVNfUEVSX1BEUChwcGd0dC0+YmFzZS5kZXYpOwogCWludCByZXQ7CiAKIAkvKiBXcmFwIGlz IG5ldmVyIG9rYXkgc2luY2Ugd2UgY2FuIG9ubHkgcmVwcmVzZW50IDQ4YiwgYW5kIHdlIGRvbid0 CkBAIC05MjcsNyArOTcwLDcgQEAgc3RhdGljIGludCBnZW44X2FsbG9jX3ZhX3JhbmdlKHN0cnVj dCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCWlmIChXQVJOX09OKHN0YXJ0ICsgbGVuZ3RoID4g cHBndHQtPmJhc2UudG90YWwpKQogCQlyZXR1cm4gLUVOT0RFVjsKIAotCXJldCA9IGFsbG9jX2dl bjhfdGVtcF9iaXRtYXBzKCZuZXdfcGFnZV9kaXJzLCAmbmV3X3BhZ2VfdGFibGVzKTsKKwlyZXQg PSBhbGxvY19nZW44X3RlbXBfYml0bWFwcygmbmV3X3BhZ2VfZGlycywgJm5ld19wYWdlX3RhYmxl cywgcGRwZXMpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKQEAgLTkzNSw3ICs5NzgsNyBA QCBzdGF0aWMgaW50IGdlbjhfYWxsb2NfdmFfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFj ZSAqdm0sCiAJcmV0ID0gZ2VuOF9wcGd0dF9hbGxvY19wYWdlX2RpcmVjdG9yaWVzKHBwZ3R0LCAm cHBndHQtPnBkcCwgc3RhcnQsIGxlbmd0aCwKIAkJCQkJbmV3X3BhZ2VfZGlycyk7CiAJaWYgKHJl dCkgewotCQlmcmVlX2dlbjhfdGVtcF9iaXRtYXBzKG5ld19wYWdlX2RpcnMsIG5ld19wYWdlX3Rh Ymxlcyk7CisJCWZyZWVfZ2VuOF90ZW1wX2JpdG1hcHMobmV3X3BhZ2VfZGlycywgbmV3X3BhZ2Vf dGFibGVzLCBwZHBlcyk7CiAJCXJldHVybiByZXQ7CiAJfQogCkBAIC05ODksNyArMTAzMiw3IEBA IHN0YXRpYyBpbnQgZ2VuOF9hbGxvY192YV9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNl ICp2bSwKIAkJX19zZXRfYml0KHBkcGUsIHBwZ3R0LT5wZHAudXNlZF9wZHBlcyk7CiAJfQogCi0J ZnJlZV9nZW44X3RlbXBfYml0bWFwcyhuZXdfcGFnZV9kaXJzLCBuZXdfcGFnZV90YWJsZXMpOwor CWZyZWVfZ2VuOF90ZW1wX2JpdG1hcHMobmV3X3BhZ2VfZGlycywgbmV3X3BhZ2VfdGFibGVzLCBw ZHBlcyk7CiAJbWFya190bGJzX2RpcnR5KHBwZ3R0KTsKIAlyZXR1cm4gMDsKIApAQCAtOTk5LDEw ICsxMDQyLDEwIEBAIGVycl9vdXQ6CiAJCQlmcmVlX3B0KHZtLT5kZXYsIHBwZ3R0LT5wZHAucGFn ZV9kaXJlY3RvcnlbcGRwZV0tPnBhZ2VfdGFibGVbdGVtcF0pOwogCX0KIAotCWZvcl9lYWNoX3Nl dF9iaXQocGRwZSwgbmV3X3BhZ2VfZGlycywgR0VOOF9MRUdBQ1lfUERQRVMpCisJZm9yX2VhY2hf c2V0X2JpdChwZHBlLCBuZXdfcGFnZV9kaXJzLCBwZHBlcykKIAkJZnJlZV9wZCh2bS0+ZGV2LCBw cGd0dC0+cGRwLnBhZ2VfZGlyZWN0b3J5W3BkcGVdKTsKIAotCWZyZWVfZ2VuOF90ZW1wX2JpdG1h cHMobmV3X3BhZ2VfZGlycywgbmV3X3BhZ2VfdGFibGVzKTsKKwlmcmVlX2dlbjhfdGVtcF9iaXRt YXBzKG5ld19wYWdlX2RpcnMsIG5ld19wYWdlX3RhYmxlcywgcGRwZXMpOwogCW1hcmtfdGxic19k aXJ0eShwcGd0dCk7CiAJcmV0dXJuIHJldDsKIH0KQEAgLTEwNDAsNyArMTA4MywxNiBAQCBzdGF0 aWMgaW50IGdlbjhfcHBndHRfaW5pdChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQpCiAKIAlw cGd0dC0+c3dpdGNoX21tID0gZ2VuOF9tbV9zd2l0Y2g7CiAKKwlyZXQgPSBfX3BkcF9pbml0KGZh bHNlLCAmcHBndHQtPnBkcCk7CisKKwlpZiAocmV0KQorCQlnb3RvIGZyZWVfc2NyYXRjaDsKKwog CXJldHVybiAwOworCitmcmVlX3NjcmF0Y2g6CisJZ2VuOF9mcmVlX3NjcmF0Y2goJnBwZ3R0LT5i YXNlKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgdm9pZCBnZW42X2R1bXBfcHBndHQoc3Ry dWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2d0dC5oCmluZGV4IGQ1YmY5NTMuLjg3ZTM4OWMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2d0dC5oCkBAIC05OCw2ICs5OCw5IEBAIHR5cGVkZWYgdWludDY0X3QgZ2Vu OF9wZGVfdDsKICNkZWZpbmUgR0VOOF9MRUdBQ1lfUERQRVMJCTQKICNkZWZpbmUgR0VOOF9QVEVT CQkJSTkxNV9QVEVTKHNpemVvZihnZW44X3B0ZV90KSkKIAorLyogRklYTUU6IE5leHQgcGF0Y2gg d2lsbCB1c2UgZGV2ICovCisjZGVmaW5lIEk5MTVfUERQRVNfUEVSX1BEUChkZXYpCQlHRU44X0xF R0FDWV9QRFBFUworCiAjZGVmaW5lIFBQQVRfVU5DQUNIRURfSU5ERVgJCShfUEFHRV9QV1QgfCBf UEFHRV9QQ0QpCiAjZGVmaW5lIFBQQVRfQ0FDSEVEX1BERV9JTkRFWAkJMCAvKiBXQiBMTEMgKi8K ICNkZWZpbmUgUFBBVF9DQUNIRURfSU5ERVgJCV9QQUdFX1BBVCAvKiBXQiBMTENlTExDICovCkBA IC0yNDEsOSArMjQ0LDEwIEBAIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5IHsKIH07CiAKIHN0 cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXIgewotCS8qIHN0cnVjdCBwYWdlICpwYWdl OyAqLwotCURFQ0xBUkVfQklUTUFQKHVzZWRfcGRwZXMsIEdFTjhfTEVHQUNZX1BEUEVTKTsKLQlz dHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGFnZV9kaXJlY3RvcnlbR0VOOF9MRUdBQ1lfUERQ RVNdOworCXN0cnVjdCBpOTE1X3BhZ2VfZG1hIGJhc2U7CisKKwl1bnNpZ25lZCBsb25nICp1c2Vk X3BkcGVzOworCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICoqcGFnZV9kaXJlY3Rvcnk7CiB9 OwogCiBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlIHsKQEAgLTQzNiw5ICs0NDAsMTAgQEAgc3Rh dGljIGlubGluZSB1aW50MzJfdCBnZW42X3BkZV9pbmRleCh1aW50MzJfdCBhZGRyKQogCSAgICAg dGVtcCA9IG1pbih0ZW1wLCBsZW5ndGgpLAkJCQkJXAogCSAgICAgc3RhcnQgKz0gdGVtcCwgbGVu Z3RoIC09IHRlbXApCiAKLSNkZWZpbmUgZ2VuOF9mb3JfZWFjaF9wZHBlKHBkLCBwZHAsIHN0YXJ0 LCBsZW5ndGgsIHRlbXAsIGl0ZXIpCQlcCi0JZm9yIChpdGVyID0gZ2VuOF9wZHBlX2luZGV4KHN0 YXJ0KTsJXAotCSAgICAgcGQgPSAocGRwKS0+cGFnZV9kaXJlY3RvcnlbaXRlcl0sIGxlbmd0aCA+ IDAgJiYgaXRlciA8IEdFTjhfTEVHQUNZX1BEUEVTOwlcCisjZGVmaW5lIGdlbjhfZm9yX2VhY2hf cGRwZShwZCwgcGRwLCBzdGFydCwgbGVuZ3RoLCB0ZW1wLCBpdGVyKQlcCisJZm9yIChpdGVyID0g Z2VuOF9wZHBlX2luZGV4KHN0YXJ0KTsgXAorCSAgICAgcGQgPSAocGRwKS0+cGFnZV9kaXJlY3Rv cnlbaXRlcl0sIFwKKwkgICAgIGxlbmd0aCA+IDAgJiYgKGl0ZXIgPCBJOTE1X1BEUEVTX1BFUl9Q RFAoZGV2KSk7IFwKIAkgICAgIGl0ZXIrKywJCQkJXAogCSAgICAgdGVtcCA9IEFMSUdOKHN0YXJ0 KzEsIDEgPDwgR0VOOF9QRFBFX1NISUZUKSAtIHN0YXJ0LAlcCiAJICAgICB0ZW1wID0gbWluKHRl bXAsIGxlbmd0aCksCQkJCQlcCi0tIAoyLjQuNQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK