From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4202A6ECFE for ; Mon, 26 Jul 2021 20:00:55 +0000 (UTC) From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= Date: Mon, 26 Jul 2021 21:59:39 +0200 Message-Id: <20210726200026.4815-6-zbigniew.kempczynski@intel.com> In-Reply-To: <20210726200026.4815-1-zbigniew.kempczynski@intel.com> References: <20210726200026.4815-1-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v3 05/52] lib/intel_batchbuffer: Add allocator support in blitter fast copy List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Chris Wilson , Petri Latvala List-ID: RnJvbTogQmhhbnVwcmFrYXNoIE1vZGVtIDxiaGFudXByYWthc2gubW9kZW1AaW50ZWwuY29tPgoK Rm9yIG5ld2VyIGdlbnMga2VybmVsIHdpbGwgcmVqZWN0IHJlbG9jYXRpb25zIGJ5IHJldHVybmlu ZyAtRUlOVkFMCnNvIHdlIHNob3VsZCBzdXBwb3J0IGFsbG9jYXRvciBhbmQgYWNxdWlyZSBvZmZz ZXRzIGZvciBibGl0LgoKU2lnbmVkLW9mZi1ieTogQmhhbnVwcmFrYXNoIE1vZGVtIDxiaGFudXBy YWthc2gubW9kZW1AaW50ZWwuY29tPgpDYzogWmJpZ25pZXcgS2VtcGN6ecWEc2tpIDx6Ymlnbmll dy5rZW1wY3p5bnNraUBpbnRlbC5jb20+CkNjOiBQZXRyaSBMYXR2YWxhIDxwZXRyaS5sYXR2YWxh QGludGVsLmNvbT4KQ2M6IEFzaHV0b3NoIERpeGl0IDxhc2h1dG9zaC5kaXhpdEBpbnRlbC5jb20+ CkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBsaWIvaWd0 X2ZiLmMgICAgICAgICAgICB8IDE3ICsrKysrKysrKysrKy0KIGxpYi9pbnRlbF9iYXRjaGJ1ZmZl ci5jIHwgNTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIGxpYi9p bnRlbF9iYXRjaGJ1ZmZlci5oIHwgIDYgKysrKy0KIDMgZmlsZXMgY2hhbmdlZCwgNjIgaW5zZXJ0 aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2lndF9mYi5jIGIvbGli L2lndF9mYi5jCmluZGV4IDc1YWIyMTdiOC4uMWJiMzJjZDhhIDEwMDY0NAotLS0gYS9saWIvaWd0 X2ZiLmMKKysrIGIvbGliL2lndF9mYi5jCkBAIC0yNDE3LDYgKzI0MTcsOCBAQCBzdGF0aWMgdm9p ZCBibGl0Y29weShjb25zdCBzdHJ1Y3QgaWd0X2ZiICpkc3RfZmIsCiAJCSAgICAgY29uc3Qgc3Ry dWN0IGlndF9mYiAqc3JjX2ZiKQogewogCXVpbnQzMl90IHNyY190aWxpbmcsIGRzdF90aWxpbmc7 CisJdWludDMyX3QgY3R4ID0gMDsKKwl1aW50NjRfdCBhaG5kID0gMDsKIAogCWlndF9hc3NlcnRf ZXEoZHN0X2ZiLT5mZCwgc3JjX2ZiLT5mZCk7CiAJaWd0X2Fzc2VydF9lcShkc3RfZmItPm51bV9w bGFuZXMsIHNyY19mYi0+bnVtX3BsYW5lcyk7CkBAIC0yNDI0LDYgKzI0MjYsMTIgQEAgc3RhdGlj IHZvaWQgYmxpdGNvcHkoY29uc3Qgc3RydWN0IGlndF9mYiAqZHN0X2ZiLAogCXNyY190aWxpbmcg PSBpZ3RfZmJfbW9kX3RvX3RpbGluZyhzcmNfZmItPm1vZGlmaWVyKTsKIAlkc3RfdGlsaW5nID0g aWd0X2ZiX21vZF90b190aWxpbmcoZHN0X2ZiLT5tb2RpZmllcik7CiAKKwlpZiAoIWdlbV9oYXNf cmVsb2NhdGlvbnMoZHN0X2ZiLT5mZCkpIHsKKwkJaWd0X3JlcXVpcmUoZ2VtX2hhc19jb250ZXh0 cyhkc3RfZmItPmZkKSk7CisJCWN0eCA9IGdlbV9jb250ZXh0X2NyZWF0ZShkc3RfZmItPmZkKTsK KwkJYWhuZCA9IGdldF9yZWxvY19haG5kKGRzdF9mYi0+ZmQsIGN0eCk7CisJfQorCiAJZm9yIChp bnQgaSA9IDA7IGkgPCBkc3RfZmItPm51bV9wbGFuZXM7IGkrKykgewogCQlpZ3RfYXNzZXJ0X2Vx KGRzdF9mYi0+cGxhbmVfYnBwW2ldLCBzcmNfZmItPnBsYW5lX2JwcFtpXSk7CiAJCWlndF9hc3Nl cnRfZXEoZHN0X2ZiLT5wbGFuZV93aWR0aFtpXSwgc3JjX2ZiLT5wbGFuZV93aWR0aFtpXSk7CkBA IC0yNDM1LDExICsyNDQzLDEzIEBAIHN0YXRpYyB2b2lkIGJsaXRjb3B5KGNvbnN0IHN0cnVjdCBp Z3RfZmIgKmRzdF9mYiwKIAkJICovCiAJCWlmIChmYXN0X2JsaXRfb2soc3JjX2ZiKSAmJiBmYXN0 X2JsaXRfb2soZHN0X2ZiKSkgewogCQkJaWd0X2JsaXR0ZXJfZmFzdF9jb3B5X19yYXcoZHN0X2Zi LT5mZCwKKwkJCQkJCSAgIGFobmQsIGN0eCwKIAkJCQkJCSAgIHNyY19mYi0+Z2VtX2hhbmRsZSwK IAkJCQkJCSAgIHNyY19mYi0+b2Zmc2V0c1tpXSwKIAkJCQkJCSAgIHNyY19mYi0+c3RyaWRlc1tp XSwKIAkJCQkJCSAgIHNyY190aWxpbmcsCiAJCQkJCQkgICAwLCAwLCAvKiBzcmNfeCwgc3JjX3kg Ki8KKwkJCQkJCSAgIHNyY19mYi0+c2l6ZSwKIAkJCQkJCSAgIGRzdF9mYi0+cGxhbmVfd2lkdGhb aV0sCiAJCQkJCQkgICBkc3RfZmItPnBsYW5lX2hlaWdodFtpXSwKIAkJCQkJCSAgIGRzdF9mYi0+ cGxhbmVfYnBwW2ldLApAQCAtMjQ0Nyw3ICsyNDU3LDggQEAgc3RhdGljIHZvaWQgYmxpdGNvcHko Y29uc3Qgc3RydWN0IGlndF9mYiAqZHN0X2ZiLAogCQkJCQkJICAgZHN0X2ZiLT5vZmZzZXRzW2ld LAogCQkJCQkJICAgZHN0X2ZiLT5zdHJpZGVzW2ldLAogCQkJCQkJICAgZHN0X3RpbGluZywKLQkJ CQkJCSAgIDAsIDAgLyogZHN0X3gsIGRzdF95ICovKTsKKwkJCQkJCSAgIDAsIDAgLyogZHN0X3gs IGRzdF95ICovLAorCQkJCQkJICAgZHN0X2ZiLT5zaXplKTsKIAkJfSBlbHNlIHsKIAkJCWlndF9i bGl0dGVyX3NyY19jb3B5KGRzdF9mYi0+ZmQsCiAJCQkJCSAgICAgc3JjX2ZiLT5nZW1faGFuZGxl LApAQCAtMjQ2NSw2ICsyNDc2LDEwIEBAIHN0YXRpYyB2b2lkIGJsaXRjb3B5KGNvbnN0IHN0cnVj dCBpZ3RfZmIgKmRzdF9mYiwKIAkJCQkJICAgICAwLCAwIC8qIGRzdF94LCBkc3RfeSAqLyk7CiAJ CX0KIAl9CisKKwlpZiAoY3R4KQorCQlnZW1fY29udGV4dF9kZXN0cm95KGRzdF9mYi0+ZmQsIGN0 eCk7CisJcHV0X2FobmQoYWhuZCk7CiB9CiAKIHN0YXRpYyB2b2lkIGZyZWVfbGluZWFyX21hcHBp bmcoc3RydWN0IGZiX2JsaXRfdXBsb2FkICpibGl0KQpkaWZmIC0tZ2l0IGEvbGliL2ludGVsX2Jh dGNoYnVmZmVyLmMgYi9saWIvaW50ZWxfYmF0Y2hidWZmZXIuYwppbmRleCAzNzQ3MDE5YTUuLmQ5 Y2M0ZDg5YyAxMDA2NDQKLS0tIGEvbGliL2ludGVsX2JhdGNoYnVmZmVyLmMKKysrIGIvbGliL2lu dGVsX2JhdGNoYnVmZmVyLmMKQEAgLTcwNiwxMiArNzA2LDEzIEBAIGZpbGxfb2JqZWN0KHN0cnVj dCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyICpvYmosCiAKIHN0YXRpYyB2b2lkIGV4ZWNfYmxp dChpbnQgZmQsCiAJCSAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyICpvYmpz LCB1aW50MzJfdCBjb3VudCwKLQkJICAgICAgdW5zaWduZWQgaW50IGdlbikKKwkJICAgICAgdW5z aWduZWQgaW50IGdlbiwgdWludDMyX3QgY3R4KQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhl Y2J1ZmZlcjIgZXhlYyA9IHsKIAkJLmJ1ZmZlcnNfcHRyID0gdG9fdXNlcl9wb2ludGVyKG9ianMp LAogCQkuYnVmZmVyX2NvdW50ID0gY291bnQsCiAJCS5mbGFncyA9IGdlbiA+PSA2ID8gSTkxNV9F WEVDX0JMVCA6IDAsCisJCS5yc3ZkMSA9IGN0eCwKIAl9OwogCiAJZ2VtX2V4ZWNidWYoZmQsICZl eGVjKTsKQEAgLTg5Niw3ICs4OTcsNyBAQCB2b2lkIGlndF9ibGl0dGVyX3NyY19jb3B5KGludCBm ZCwKIAlvYmpzWzBdLmZsYWdzIHw9IEVYRUNfT0JKRUNUX05FRURTX0ZFTkNFOwogCW9ianNbMV0u ZmxhZ3MgfD0gRVhFQ19PQkpFQ1RfTkVFRFNfRkVOQ0U7CiAKLQlleGVjX2JsaXQoZmQsIG9ianMs IDMsIGdlbik7CisJZXhlY19ibGl0KGZkLCBvYmpzLCAzLCBnZW4sIDApOwogCiAJZ2VtX2Nsb3Nl KGZkLCBiYXRjaF9oYW5kbGUpOwogfQpAQCAtOTA0LDEyICs5MDUsMTUgQEAgdm9pZCBpZ3RfYmxp dHRlcl9zcmNfY29weShpbnQgZmQsCiAvKioKICAqIGlndF9ibGl0dGVyX2Zhc3RfY29weV9fcmF3 OgogICogQGZkOiBmaWxlIGRlc2NyaXB0b3Igb2YgdGhlIGk5MTUgZHJpdmVyCisgKiBAYWhuZDog aGFuZGxlIHRvIGFuIGFsbG9jYXRvcgorICogQGN0eDogY29udGV4dCB3aXRoaW4gd2hpY2ggZXhl Y3V0ZSBjb3B5IGJsaXQKICAqIEBzcmNfaGFuZGxlOiBHRU0gaGFuZGxlIG9mIHRoZSBzb3VyY2Ug YnVmZmVyCiAgKiBAc3JjX2RlbHRhOiBvZmZzZXQgaW50byB0aGUgc291cmNlIEdFTSBibywgaW4g Ynl0ZXMKICAqIEBzcmNfc3RyaWRlOiBTdHJpZGUgKGluIGJ5dGVzKSBvZiB0aGUgc291cmNlIGJ1 ZmZlcgogICogQHNyY190aWxpbmc6IFRpbGluZyBtb2RlIG9mIHRoZSBzb3VyY2UgYnVmZmVyCiAg KiBAc3JjX3g6IFggY29vcmRpbmF0ZSBvZiB0aGUgc291cmNlIHJlZ2lvbiB0byBjb3B5CiAgKiBA c3JjX3k6IFkgY29vcmRpbmF0ZSBvZiB0aGUgc291cmNlIHJlZ2lvbiB0byBjb3B5CisgKiBAc3Jj X3NpemU6IHNpemUgb2YgdGhlIHNyYyBibyByZXF1aXJlZCBmb3IgYWxsb2NhdG9yIGFuZCBzb2Z0 cGluCiAgKiBAd2lkdGg6IFdpZHRoIG9mIHRoZSByZWdpb24gdG8gY29weQogICogQGhlaWdodDog SGVpZ2h0IG9mIHRoZSByZWdpb24gdG8gY29weQogICogQGJwcDogc291cmNlIGFuZCBkZXN0aW5h dGlvbiBiaXRzIHBlciBwaXhlbApAQCAtOTE5LDE2ICs5MjMsMjAgQEAgdm9pZCBpZ3RfYmxpdHRl cl9zcmNfY29weShpbnQgZmQsCiAgKiBAZHN0X3RpbGluZzogVGlsaW5nIG1vZGUgb2YgdGhlIGRl c3RpbmF0aW9uIGJ1ZmZlcgogICogQGRzdF94OiBYIGNvb3JkaW5hdGUgb2YgZGVzdGluYXRpb24K ICAqIEBkc3RfeTogWSBjb29yZGluYXRlIG9mIGRlc3RpbmF0aW9uCisgKiBAZHN0X3NpemU6IHNp emUgb2YgdGhlIGRzdCBibyByZXF1aXJlZCBmb3IgYWxsb2NhdG9yIGFuZCBzb2Z0cGluCiAgKgog ICogTGlrZSBpZ3RfYmxpdHRlcl9mYXN0X2NvcHkoKSwgYnV0IHRhbGtpbmcgdG8gdGhlIGtlcm5l bCBkaXJlY3RseS4KICAqLwogdm9pZCBpZ3RfYmxpdHRlcl9mYXN0X2NvcHlfX3JhdyhpbnQgZmQs CisJCQkJdWludDY0X3QgYWhuZCwKKwkJCQl1aW50MzJfdCBjdHgsCiAJCQkJLyogc3JjICovCiAJ CQkJdWludDMyX3Qgc3JjX2hhbmRsZSwKIAkJCQl1bnNpZ25lZCBpbnQgc3JjX2RlbHRhLAogCQkJ CXVuc2lnbmVkIGludCBzcmNfc3RyaWRlLAogCQkJCXVuc2lnbmVkIGludCBzcmNfdGlsaW5nLAog CQkJCXVuc2lnbmVkIGludCBzcmNfeCwgdW5zaWduZWQgc3JjX3ksCisJCQkJdWludDY0X3Qgc3Jj X3NpemUsCiAKIAkJCQkvKiBzaXplICovCiAJCQkJdW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25l ZCBpbnQgaGVpZ2h0LApAQCAtOTQxLDcgKzk0OSw4IEBAIHZvaWQgaWd0X2JsaXR0ZXJfZmFzdF9j b3B5X19yYXcoaW50IGZkLAogCQkJCXVuc2lnbmVkIGRzdF9kZWx0YSwKIAkJCQl1bnNpZ25lZCBp bnQgZHN0X3N0cmlkZSwKIAkJCQl1bnNpZ25lZCBpbnQgZHN0X3RpbGluZywKLQkJCQl1bnNpZ25l ZCBpbnQgZHN0X3gsIHVuc2lnbmVkIGRzdF95KQorCQkJCXVuc2lnbmVkIGludCBkc3RfeCwgdW5z aWduZWQgZHN0X3ksCisJCQkJdWludDY0X3QgZHN0X3NpemUpCiB7CiAJdWludDMyX3QgYmF0Y2hb MTJdOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIG9ianNbM107CkBAIC05NDks OCArOTU4LDIwIEBAIHZvaWQgaWd0X2JsaXR0ZXJfZmFzdF9jb3B5X19yYXcoaW50IGZkLAogCXVp bnQzMl90IGJhdGNoX2hhbmRsZTsKIAl1aW50MzJfdCBkd29yZDAsIGR3b3JkMTsKIAl1aW50MzJf dCBzcmNfcGl0Y2gsIGRzdF9waXRjaDsKKwl1aW50NjRfdCBiYXRjaF9vZmZzZXQsIHNyY19vZmZz ZXQsIGRzdF9vZmZzZXQ7CiAJaW50IGkgPSAwOwogCisJYmF0Y2hfaGFuZGxlID0gZ2VtX2NyZWF0 ZShmZCwgNDA5Nik7CisJaWYgKGFobmQpIHsKKwkJc3JjX29mZnNldCA9IGdldF9vZmZzZXQoYWhu ZCwgc3JjX2hhbmRsZSwgc3JjX3NpemUsIDApOworCQlkc3Rfb2Zmc2V0ID0gZ2V0X29mZnNldChh aG5kLCBkc3RfaGFuZGxlLCBkc3Rfc2l6ZSwgMCk7CisJCWJhdGNoX29mZnNldCA9IGdldF9vZmZz ZXQoYWhuZCwgYmF0Y2hfaGFuZGxlLCA0MDk2LCAwKTsKKwl9IGVsc2UgeworCQlzcmNfb2Zmc2V0 ID0gMTYgPDwgMjA7CisJCWRzdF9vZmZzZXQgPSBBTElHTihzcmNfb2Zmc2V0ICsgc3JjX3NpemUs IDEgPDwgMjApOworCQliYXRjaF9vZmZzZXQgPSBBTElHTihkc3Rfb2Zmc2V0ICsgZHN0X3NpemUs IDEgPDwgMjApOworCX0KKwogCXNyY19waXRjaCA9IGZhc3RfY29weV9waXRjaChzcmNfc3RyaWRl LCBzcmNfdGlsaW5nKTsKIAlkc3RfcGl0Y2ggPSBmYXN0X2NvcHlfcGl0Y2goZHN0X3N0cmlkZSwg ZHN0X3RpbGluZyk7CiAJZHdvcmQwID0gZmFzdF9jb3B5X2R3b3JkMChzcmNfdGlsaW5nLCBkc3Rf dGlsaW5nKTsKQEAgLTk2NywzMCArOTg4LDM2IEBAIHZvaWQgaWd0X2JsaXR0ZXJfZmFzdF9jb3B5 X19yYXcoaW50IGZkLAogCWJhdGNoW2krK10gPSBkd29yZDEgfCBkc3RfcGl0Y2g7CiAJYmF0Y2hb aSsrXSA9IChkc3RfeSA8PCAxNikgfCBkc3RfeDsgLyogZHN0IHgxLHkxICovCiAJYmF0Y2hbaSsr XSA9ICgoZHN0X3kgKyBoZWlnaHQpIDw8IDE2KSB8IChkc3RfeCArIHdpZHRoKTsgLyogZHN0IHgy LHkyICovCi0JYmF0Y2hbaSsrXSA9IGRzdF9kZWx0YTsgLyogZHN0IGFkZHJlc3MgbG93ZXIgYml0 cyAqLwotCWJhdGNoW2krK10gPSAwOwkvKiBkc3QgYWRkcmVzcyB1cHBlciBiaXRzICovCisJYmF0 Y2hbaSsrXSA9IGRzdF9vZmZzZXQgKyBkc3RfZGVsdGE7IC8qIGRzdCBhZGRyZXNzIGxvd2VyIGJp dHMgKi8KKwliYXRjaFtpKytdID0gKGRzdF9vZmZzZXQgKyBkc3RfZGVsdGEpID4+IDMyOyAvKiBk c3QgYWRkcmVzcyB1cHBlciBiaXRzICovCiAJYmF0Y2hbaSsrXSA9IChzcmNfeSA8PCAxNikgfCBz cmNfeDsgLyogc3JjIHgxLHkxICovCiAJYmF0Y2hbaSsrXSA9IHNyY19waXRjaDsKLQliYXRjaFtp KytdID0gc3JjX2RlbHRhOyAvKiBzcmMgYWRkcmVzcyBsb3dlciBiaXRzICovCi0JYmF0Y2hbaSsr XSA9IDA7CS8qIHNyYyBhZGRyZXNzIHVwcGVyIGJpdHMgKi8KKwliYXRjaFtpKytdID0gc3JjX29m ZnNldCArIHNyY19kZWx0YTsgLyogc3JjIGFkZHJlc3MgbG93ZXIgYml0cyAqLworCWJhdGNoW2kr K10gPSAoc3JjX29mZnNldCArIHNyY19kZWx0YSkgPj4gMzI7IC8qIHNyYyBhZGRyZXNzIHVwcGVy IGJpdHMgKi8KIAliYXRjaFtpKytdID0gTUlfQkFUQ0hfQlVGRkVSX0VORDsKIAliYXRjaFtpKytd ID0gTUlfTk9PUDsKIAogCWlndF9hc3NlcnQoaSA9PSBBUlJBWV9TSVpFKGJhdGNoKSk7CiAKLQli YXRjaF9oYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKIAlnZW1fd3JpdGUoZmQsIGJhdGNo X2hhbmRsZSwgMCwgYmF0Y2gsIHNpemVvZihiYXRjaCkpOwogCi0JZmlsbF9yZWxvY2F0aW9uKCZy ZWxvY3NbMF0sIGRzdF9oYW5kbGUsIC0xLCBkc3RfZGVsdGEsIDQsCisJZmlsbF9yZWxvY2F0aW9u KCZyZWxvY3NbMF0sIGRzdF9oYW5kbGUsIGRzdF9vZmZzZXQsIGRzdF9kZWx0YSwgNCwKIAkJCUk5 MTVfR0VNX0RPTUFJTl9SRU5ERVIsIEk5MTVfR0VNX0RPTUFJTl9SRU5ERVIpOwotCWZpbGxfcmVs b2NhdGlvbigmcmVsb2NzWzFdLCBzcmNfaGFuZGxlLCAtMSwgc3JjX2RlbHRhLCA4LAorCWZpbGxf cmVsb2NhdGlvbigmcmVsb2NzWzFdLCBzcmNfaGFuZGxlLCBzcmNfb2Zmc2V0LCBzcmNfZGVsdGEs IDgsCiAJCQlJOTE1X0dFTV9ET01BSU5fUkVOREVSLCAwKTsKIAotCWZpbGxfb2JqZWN0KCZvYmpz WzBdLCBkc3RfaGFuZGxlLCAwLCBOVUxMLCAwKTsKLQlmaWxsX29iamVjdCgmb2Jqc1sxXSwgc3Jj X2hhbmRsZSwgMCwgTlVMTCwgMCk7Ci0JZmlsbF9vYmplY3QoJm9ianNbMl0sIGJhdGNoX2hhbmRs ZSwgMCwgcmVsb2NzLCAyKTsKKwlmaWxsX29iamVjdCgmb2Jqc1swXSwgZHN0X2hhbmRsZSwgZHN0 X29mZnNldCwgTlVMTCwgMCk7CisJb2Jqc1swXS5mbGFncyB8PSBFWEVDX09CSkVDVF9XUklURTsK KwlmaWxsX29iamVjdCgmb2Jqc1sxXSwgc3JjX2hhbmRsZSwgc3JjX29mZnNldCwgTlVMTCwgMCk7 CisJZmlsbF9vYmplY3QoJm9ianNbMl0sIGJhdGNoX2hhbmRsZSwgYmF0Y2hfb2Zmc2V0LCByZWxv Y3MsICFhaG5kID8gMiA6IDApOworCisJaWYgKGFobmQpIHsKKwkJb2Jqc1swXS5mbGFncyB8PSBF WEVDX09CSkVDVF9QSU5ORUQ7CisJCW9ianNbMV0uZmxhZ3MgfD0gRVhFQ19PQkpFQ1RfUElOTkVE OworCQlvYmpzWzJdLmZsYWdzIHw9IEVYRUNfT0JKRUNUX1BJTk5FRDsKKwl9CiAKLQlleGVjX2Js aXQoZmQsIG9ianMsIDMsIGludGVsX2dlbihpbnRlbF9nZXRfZHJtX2RldmlkKGZkKSkpOworCWV4 ZWNfYmxpdChmZCwgb2JqcywgMywgaW50ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoZmQpKSwg Y3R4KTsKIAogCWdlbV9jbG9zZShmZCwgYmF0Y2hfaGFuZGxlKTsKIH0KZGlmZiAtLWdpdCBhL2xp Yi9pbnRlbF9iYXRjaGJ1ZmZlci5oIGIvbGliL2ludGVsX2JhdGNoYnVmZmVyLmgKaW5kZXggYmQ0 MTdlOTk4Li43NGMyMWM0MGUgMTAwNjQ0Ci0tLSBhL2xpYi9pbnRlbF9iYXRjaGJ1ZmZlci5oCisr KyBiL2xpYi9pbnRlbF9iYXRjaGJ1ZmZlci5oCkBAIC0zMDAsMTIgKzMwMCwxNSBAQCB2b2lkIGln dF9ibGl0dGVyX2Zhc3RfY29weShzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAogCQkJ ICAgdW5zaWduZWQgZHN0X3gsIHVuc2lnbmVkIGRzdF95KTsKIAogdm9pZCBpZ3RfYmxpdHRlcl9m YXN0X2NvcHlfX3JhdyhpbnQgZmQsCisJCQkJdWludDY0X3QgYWhuZCwKKwkJCQl1aW50MzJfdCBj dHgsCiAJCQkJLyogc3JjICovCiAJCQkJdWludDMyX3Qgc3JjX2hhbmRsZSwKIAkJCQl1bnNpZ25l ZCBpbnQgc3JjX2RlbHRhLAogCQkJCXVuc2lnbmVkIGludCBzcmNfc3RyaWRlLAogCQkJCXVuc2ln bmVkIGludCBzcmNfdGlsaW5nLAogCQkJCXVuc2lnbmVkIGludCBzcmNfeCwgdW5zaWduZWQgc3Jj X3ksCisJCQkJdWludDY0X3Qgc3JjX3NpemUsCiAKIAkJCQkvKiBzaXplICovCiAJCQkJdW5zaWdu ZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0LApAQCAtMzE4LDcgKzMyMSw4IEBAIHZv aWQgaWd0X2JsaXR0ZXJfZmFzdF9jb3B5X19yYXcoaW50IGZkLAogCQkJCXVuc2lnbmVkIGludCBk c3RfZGVsdGEsCiAJCQkJdW5zaWduZWQgaW50IGRzdF9zdHJpZGUsCiAJCQkJdW5zaWduZWQgaW50 IGRzdF90aWxpbmcsCi0JCQkJdW5zaWduZWQgaW50IGRzdF94LCB1bnNpZ25lZCBkc3RfeSk7CisJ CQkJdW5zaWduZWQgaW50IGRzdF94LCB1bnNpZ25lZCBkc3RfeSwKKwkJCQl1aW50NjRfdCBkc3Rf c2l6ZSk7CiAKIC8qKgogICogaWd0X3JlbmRlcl9jb3B5ZnVuY190OgotLSAKMi4yNi4wCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxp bmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK