From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 76AF66E5C6 for ; Wed, 17 Mar 2021 14:46:59 +0000 (UTC) From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= Date: Wed, 17 Mar 2021 15:45:52 +0100 Message-Id: <20210317144610.108372-18-zbigniew.kempczynski@intel.com> In-Reply-To: <20210317144610.108372-1-zbigniew.kempczynski@intel.com> References: <20210317144610.108372-1-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v26 17/35] lib/intel_batchbuffer: Add tracking intel_buf to intel_bb 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 List-ID: RnJvbSBub3cgb24gaW50ZWxfYmIgc3RhcnRzIHRyYWNraW5nIGFkZGVkL3JlbW92ZWQgaW50ZWxf YnVmcy4KV2UncmUgc2FmZSBub3cgcmVnYXJkbGVzcyBvcmRlciBvZiBpbnRlbF9idWYgY2xvc2Uv ZGVzdHJveQpvciBpbnRlbF9iYiBkZXN0cm95IHBhdGhzLgoKV2hlbiBpbnRlbF9idWYgaXMgY2xv c2VkL2Rlc3Ryb3llZCBmaXJzdCBhbmQgaXQgd2FzIHByZXZpb3VzbHkgYWRkZWQKdG8gaW50ZWxf YmIgaXQgY2FsbHMgdGhlIGNvZGUgd2hpY2ggcmVtb3ZlcyBpdHNlbGYgZnJvbSBpbnRlbF9iYi4K SW4gZGVzdHJveSBwYXRoIHdlIGdvIG92ZXIgYWxsIHRyYWNrZWQgaW50ZWxfYnVmcyBhbmQgY2xl YXIgdHJhY2tpbmcKaW5mb3JtYXRpb24gYW5kIGJ1ZmZlciBvZmZzZXQgKGl0IGlzIHNldCB0byBJ TlRFTF9CVUZfSU5WQUxJRF9BRERSRVNTKS4KClJlc2V0IHBhdGggaXMgaGFuZGxlZCBhcyBmb2xs b3dzOgotIGludGVsX2JiX3Jlc2V0KGliYiwgZmFsc2UpIC0ganVzdCBjbGVhbiBvYmplY3RzIGFy cmF5IGxlYXZpbmcKICBjYWNoZSAvIGFsbG9jYXRvciBzdGF0ZSBpbnRhY3QuCi0gaW50ZWxfYmJf cmVzZXQoaWJiLCB0cnVlKSAtIHB1cmdlIGNhY2hlIGFzIHdlbGwgYXMgZGV0YWNoIGludGVsX2J1 ZnMKICBmcm9tIGludGVsX2JiIChyZWxlYXNlIG9mZnNldHMgZnJvbSBhbGxvY2F0b3IpLgoKUmVt b3ZlIGludGVsX2JiX29iamVjdF9vZmZzZXRfdG9fYnVmKCkgZnVuY3Rpb24gYXMgdHJhY2tpbmcg aW50ZWxfYnVmCnVwZGF0ZXMgKGNoZWNrcyBmb3IgYWxsb2NhdG9yKSB0aGVpciBvZmZzZXRzIGFm dGVyIGV4ZWNidWYuCgpBbHRlciBhcGlfaW50ZWxfYmIgYWNjb3JkaW5nIHRvIGludGVsLWJiIGNo YW5nZXMuCgpTaWduZWQtb2ZmLWJ5OiBaYmlnbmlldyBLZW1wY3p5xYRza2kgPHpiaWduaWV3Lmtl bXBjenluc2tpQGludGVsLmNvbT4KQ2M6IERvbWluaWsgR3J6ZWdvcnplayA8ZG9taW5pay5ncnpl Z29yemVrQGludGVsLmNvbT4KQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgotLS0KIGxpYi9pbnRlbF9iYXRjaGJ1ZmZlci5jICAgfCAxODYgKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0KIGxpYi9pbnRlbF9iYXRjaGJ1ZmZlci5oICAgfCAgMjkg KysrLS0tCiBsaWIvaW50ZWxfYnVmb3BzLmMgICAgICAgIHwgIDEzICsrLQogbGliL2ludGVsX2J1 Zm9wcy5oICAgICAgICB8ICAgNiArKwogbGliL21lZGlhX3NwaW4uYyAgICAgICAgICB8ICAgMiAt CiB0ZXN0cy9pOTE1L2FwaV9pbnRlbF9iYi5jIHwgICA3IC0tCiA2IGZpbGVzIGNoYW5nZWQsIDE2 OSBpbnNlcnRpb25zKCspLCA3NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIvaW50ZWxf YmF0Y2hidWZmZXIuYyBiL2xpYi9pbnRlbF9iYXRjaGJ1ZmZlci5jCmluZGV4IDA0NWYzZjE1Ny4u MWIyMzRiMTRkIDEwMDY0NAotLS0gYS9saWIvaW50ZWxfYmF0Y2hidWZmZXIuYworKysgYi9saWIv aW50ZWxfYmF0Y2hidWZmZXIuYwpAQCAtMTI2MSw2ICsxMjYxLDggQEAgc3RhdGljIGlubGluZSB1 aW50NjRfdCBfX2ludGVsX2JiX2dldF9vZmZzZXQoc3RydWN0IGludGVsX2JiICppYmIsCiAgKiBJ ZiB3ZSBkbyByZXNldCB3aXRob3V0IHB1cmdpbmcgY2FjaGVzIHdlIHVzZSBhZGRyZXNzZXMgZnJv bSBpbnRlbC1iYiBjYWNoZQogICogZHVyaW5nIGV4ZWNidWYgb2JqZWN0cyBjb25zdHJ1Y3Rpb24u CiAgKgorICogSWYgd2UgZG8gcmVzZXQgd2l0aCBwdXJnaW5nIGNhY2hlcyBhbGxvY2F0b3IgZW50 cmllcyBhcmUgZnJlZWQgYXMgd2VsbC4KKyAqCiAgKiBSZXR1cm5zOgogICoKICAqIFBvaW50ZXIg dGhlIGludGVsX2JiLCBhc3NlcnRzIG9uIGZhaWx1cmUuCkBAIC0xMzAzLDYgKzEzMDUsNyBAQCBf X2ludGVsX2JiX2NyZWF0ZShpbnQgaTkxNSwgdWludDMyX3QgY3R4LCB1aW50MzJfdCBzaXplLCBi b29sIGRvX3JlbG9jcywKIAlpYmItPnNpemUgPSBzaXplOwogCWliYi0+YWxpZ25tZW50ID0gNDA5 NjsKIAlpYmItPmN0eCA9IGN0eDsKKwlpYmItPnZtX2lkID0gMDsKIAlpYmItPmJhdGNoID0gY2Fs bG9jKDEsIHNpemUpOwogCWlndF9hc3NlcnQoaWJiLT5iYXRjaCk7CiAJaWJiLT5wdHIgPSBpYmIt PmJhdGNoOwpAQCAtMTMxNyw2ICsxMzIwLDggQEAgX19pbnRlbF9iYl9jcmVhdGUoaW50IGk5MTUs IHVpbnQzMl90IGN0eCwgdWludDMyX3Qgc2l6ZSwgYm9vbCBkb19yZWxvY3MsCiAJCQkJICAgICBm YWxzZSk7CiAJaWJiLT5iYXRjaF9vZmZzZXQgPSBvYmplY3QtPm9mZnNldDsKIAorCUlHVF9JTklU X0xJU1RfSEVBRCgmaWJiLT5pbnRlbF9idWZzKTsKKwogCWliYi0+cmVmY291bnQgPSAxOwogCiAJ cmV0dXJuIGliYjsKQEAgLTE1MDgsNiArMTUxMywyMiBAQCBzdGF0aWMgdm9pZCBfX2ludGVsX2Ji X2Rlc3Ryb3lfY2FjaGUoc3RydWN0IGludGVsX2JiICppYmIpCiAJaWJiLT5yb290ID0gTlVMTDsK IH0KIAorc3RhdGljIHZvaWQgX19pbnRlbF9iYl9kZXRhY2hfaW50ZWxfYnVmcyhzdHJ1Y3QgaW50 ZWxfYmIgKmliYikKK3sKKwlzdHJ1Y3QgaW50ZWxfYnVmICplbnRyeSwgKnRtcDsKKworCWlndF9s aXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZW50cnksIHRtcCwgJmliYi0+aW50ZWxfYnVmcywgbGlu aykKKwkJaW50ZWxfYmJfZGV0YWNoX2ludGVsX2J1ZihpYmIsIGVudHJ5KTsKK30KKworc3RhdGlj IHZvaWQgX19pbnRlbF9iYl9yZW1vdmVfaW50ZWxfYnVmcyhzdHJ1Y3QgaW50ZWxfYmIgKmliYikK K3sKKwlzdHJ1Y3QgaW50ZWxfYnVmICplbnRyeSwgKnRtcDsKKworCWlndF9saXN0X2Zvcl9lYWNo X2VudHJ5X3NhZmUoZW50cnksIHRtcCwgJmliYi0+aW50ZWxfYnVmcywgbGluaykKKwkJaW50ZWxf YmJfcmVtb3ZlX2ludGVsX2J1ZihpYmIsIGVudHJ5KTsKK30KKwogLyoqCiAgKiBpbnRlbF9iYl9k ZXN0cm95OgogICogQGliYjogcG9pbnRlciB0byBpbnRlbF9iYgpAQCAtMTUyMSw2ICsxNTQyLDcg QEAgdm9pZCBpbnRlbF9iYl9kZXN0cm95KHN0cnVjdCBpbnRlbF9iYiAqaWJiKQogCWliYi0+cmVm Y291bnQtLTsKIAlpZ3RfYXNzZXJ0X2YoaWJiLT5yZWZjb3VudCA9PSAwLCAiVHJ5aW5nIHRvIGRl c3Ryb3kgcmVmZXJlbmNlZCBiYiEiKTsKIAorCV9faW50ZWxfYmJfcmVtb3ZlX2ludGVsX2J1ZnMo aWJiKTsKIAlfX2ludGVsX2JiX2Rlc3Ryb3lfcmVsb2NhdGlvbnMoaWJiKTsKIAlfX2ludGVsX2Ji X2Rlc3Ryb3lfb2JqZWN0cyhpYmIpOwogCV9faW50ZWxfYmJfZGVzdHJveV9jYWNoZShpYmIpOwpA QCAtMTU0NCw2ICsxNTY2LDEwIEBAIHZvaWQgaW50ZWxfYmJfZGVzdHJveShzdHJ1Y3QgaW50ZWxf YmIgKmliYikKICAqIEBwdXJnZV9vYmplY3RzX2NhY2hlOiBpZiB0cnVlIGRlc3Ryb3kgaW50ZXJu YWwgZXhlY29iaiBhbmQgcmVsb2NzICsgY2FjaGUKICAqCiAgKiBSZWNyZWF0ZSBiYXRjaCBibyB3 aGVuIHRoZXJlJ3Mgbm8gYWRkaXRpb25hbCByZWZlcmVuY2UuCisgKgorICogV2hlbiBwdXJnZV9v YmplY3RfY2FjaGUgPT0gdHJ1ZSB3ZSBkZXN0cm95IGNhY2hlIGFzIHdlbGwgYXMgcmVtb3ZlIGlu dGVsX2J1ZgorICogZnJvbSBpbnRlbC1iYiB0cmFja2luZyBsaXN0LiBSZW1vdmluZyBpbnRlbF9i dWZzIHJlbGVhc2VzIHRoZWlyIGFkZHJlc3NlcworICogaW4gdGhlIGFsbG9jYXRvci4KICovCiAK IHZvaWQgaW50ZWxfYmJfcmVzZXQoc3RydWN0IGludGVsX2JiICppYmIsIGJvb2wgcHVyZ2Vfb2Jq ZWN0c19jYWNoZSkKQEAgLTE1NjksOCArMTU5NSwxMCBAQCB2b2lkIGludGVsX2JiX3Jlc2V0KHN0 cnVjdCBpbnRlbF9iYiAqaWJiLCBib29sIHB1cmdlX29iamVjdHNfY2FjaGUpCiAJX19pbnRlbF9i Yl9kZXN0cm95X29iamVjdHMoaWJiKTsKIAlfX3JlYWxsb2NhdGVfb2JqZWN0cyhpYmIpOwogCi0J aWYgKHB1cmdlX29iamVjdHNfY2FjaGUpCisJaWYgKHB1cmdlX29iamVjdHNfY2FjaGUpIHsKKwkJ X19pbnRlbF9iYl9yZW1vdmVfaW50ZWxfYnVmcyhpYmIpOwogCQlfX2ludGVsX2JiX2Rlc3Ryb3lf Y2FjaGUoaWJiKTsKKwl9CiAKIAkvKgogCSAqIFdoZW4gd2UgdXNlIGFsbG9jYXRvcnMgd2UncmUg aW4gbm8tcmVsb2MgbW9kZSBzbyB3ZSBoYXZlIHRvIGZyZWUKQEAgLTE2MjEsNiArMTY0OSw1MCBA QCBpbnQgaW50ZWxfYmJfc3luYyhzdHJ1Y3QgaW50ZWxfYmIgKmliYikKIAlyZXR1cm4gcmV0Owog fQogCit1aW50NjRfdCBpbnRlbF9iYl9hc3NpZ25fdm0oc3RydWN0IGludGVsX2JiICppYmIsIHVp bnQ2NF90IGFsbG9jYXRvciwKKwkJCSAgICB1aW50MzJfdCB2bV9pZCkKK3sKKwlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gYXJnID0geworCQkucGFyYW0gPSBJOTE1X0NPTlRFWFRf UEFSQU1fVk0sCisJfTsKKwl1aW50NjRfdCBwcmV2X2FsbG9jYXRvciA9IGliYi0+YWxsb2NhdG9y X2hhbmRsZTsKKwlib29sIGNsb3NlZCA9IGZhbHNlOworCisJaWYgKGliYi0+dm1faWQgPT0gdm1f aWQpIHsKKwkJaWd0X2RlYnVnKCJTa2lwcGluZyB0byBhc3NpZ24gc2FtZSB2bV9pZDogJXVcbiIs IHZtX2lkKTsKKwkJcmV0dXJuIDA7CisJfQorCisJLyogQ2Fubm90IHN3aXRjaCBpZiBzb21lb25l IGtlZXBzIGJiIHJlZmNvdW50ICovCisJaWd0X2Fzc2VydChpYmItPnJlZmNvdW50ID09IDEpOwor CisJLyogRGV0YWNoIGludGVsX2J1ZnMgYW5kIHJlbW92ZSBiYiBoYW5kbGUgKi8KKwlfX2ludGVs X2JiX2RldGFjaF9pbnRlbF9idWZzKGliYik7CisJaW50ZWxfYmJfcmVtb3ZlX29iamVjdChpYmIs IGliYi0+aGFuZGxlLCBpYmItPmJhdGNoX29mZnNldCwgaWJiLT5zaXplKTsKKworCS8qIENhY2hl ICsgb2JqZWN0cyBhcmUgbm90IHZhbGlkIGFmdGVyIGNoYW5nZSBhbnltb3JlICovCisJX19pbnRl bF9iYl9kZXN0cm95X29iamVjdHMoaWJiKTsKKwlfX2ludGVsX2JiX2Rlc3Ryb3lfY2FjaGUoaWJi KTsKKworCS8qIEF0dGFjaCBuZXcgYWxsb2NhdG9yICovCisJaWJiLT5hbGxvY2F0b3JfaGFuZGxl ID0gYWxsb2NhdG9yOworCisJLyogU2V0cGFyYW0gKi8KKwlpYmItPnZtX2lkID0gdm1faWQ7CisK KwkvKiBTa2lwIHNldCBwYXJhbSwgd2UgbGlrZWx5IHJldHVybiB0byBkZWZhdWx0IHZtICovCisJ aWYgKHZtX2lkKSB7CisJCWFyZy5jdHhfaWQgPSBpYmItPmN0eDsKKwkJYXJnLnZhbHVlID0gdm1f aWQ7CisJCWdlbV9jb250ZXh0X3NldF9wYXJhbShpYmItPmk5MTUsICZhcmcpOworCX0KKworCS8q IFJlY3JlYXRlIGJiICovCisJaW50ZWxfYmJfcmVzZXQoaWJiLCBmYWxzZSk7CisKKwlyZXR1cm4g Y2xvc2VkID8gMCA6IHByZXZfYWxsb2NhdG9yOworfQorCiAvKgogICogaW50ZWxfYmJfcHJpbnQ6 CiAgKiBAaWJiOiBwb2ludGVyIHRvIGludGVsX2JiCkBAIC0xODc1LDIyICsxOTQ3LDEzIEBAIGlu dGVsX2JiX2FkZF9vYmplY3Qoc3RydWN0IGludGVsX2JiICppYmIsIHVpbnQzMl90IGhhbmRsZSwg dWludDY0X3Qgc2l6ZSwKIAogCW9iamVjdC0+b2Zmc2V0ID0gb2Zmc2V0OwogCi0JLyogTGltaXQg Y3VycmVudCBvZmZzZXQgdG8gZ3R0IHNpemUgKi8KLQlpZiAob2Zmc2V0ICE9IElOVEVMX0JVRl9J TlZBTElEX0FERFJFU1MpIHsKLQkJb2JqZWN0LT5vZmZzZXQgPSBDQU5PTklDQUwob2Zmc2V0ICYg KGliYi0+Z3R0X3NpemUgLSAxKSk7Ci0JfSBlbHNlIHsKLQkJb2JqZWN0LT5vZmZzZXQgPSBfX2lu dGVsX2JiX2dldF9vZmZzZXQoaWJiLAotCQkJCQkJICAgICAgIGhhbmRsZSwgc2l6ZSwKLQkJCQkJ CSAgICAgICBvYmplY3QtPmFsaWdubWVudCk7Ci0JfQotCiAJaWYgKHdyaXRlKQogCQlvYmplY3Qt PmZsYWdzIHw9IEVYRUNfT0JKRUNUX1dSSVRFOwogCiAJaWYgKGliYi0+c3VwcG9ydHNfNDhiX2Fk ZHJlc3MpCiAJCW9iamVjdC0+ZmxhZ3MgfD0gRVhFQ19PQkpFQ1RfU1VQUE9SVFNfNDhCX0FERFJF U1M7CiAKLQlpZiAoaWJiLT51c2VzX2Z1bGxfcHBndHQgJiYgaWJiLT5hbGxvY2F0b3JfdHlwZSA9 PSBJTlRFTF9BTExPQ0FUT1JfU0lNUExFKQorCWlmIChpYmItPnVzZXNfZnVsbF9wcGd0dCAmJiAh aWJiLT5lbmZvcmNlX3JlbG9jcykKIAkJb2JqZWN0LT5mbGFncyB8PSBFWEVDX09CSkVDVF9QSU5O RUQ7CiAKIAlyZXR1cm4gb2JqZWN0OwpAQCAtMTkyNyw2ICsxOTkwLDkgQEAgX19pbnRlbF9iYl9h ZGRfaW50ZWxfYnVmKHN0cnVjdCBpbnRlbF9iYiAqaWJiLCBzdHJ1Y3QgaW50ZWxfYnVmICpidWYs CiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgKm9iajsKIAorCWlndF9hc3Nl cnQoaWJiKTsKKwlpZ3RfYXNzZXJ0KGJ1Zik7CisJaWd0X2Fzc2VydCghYnVmLT5pYmIgfHwgYnVm LT5pYmIgPT0gaWJiKTsKIAlpZ3RfYXNzZXJ0KEFMSUdOKGFsaWdubWVudCwgNDA5NikgPT0gYWxp Z25tZW50KTsKIAogCWlmICghYWxpZ25tZW50KSB7CkBAIC0xOTUxLDYgKzIwMTcsMTMgQEAgX19p bnRlbF9iYl9hZGRfaW50ZWxfYnVmKHN0cnVjdCBpbnRlbF9iYiAqaWJiLCBzdHJ1Y3QgaW50ZWxf YnVmICpidWYsCiAJaWYgKCFpYmItPmVuZm9yY2VfcmVsb2NzKQogCQlvYmotPmFsaWdubWVudCA9 IGFsaWdubWVudDsKIAorCWlmIChpZ3RfbGlzdF9lbXB0eSgmYnVmLT5saW5rKSkgeworCQlpZ3Rf bGlzdF9hZGRfdGFpbCgmYnVmLT5saW5rLCAmaWJiLT5pbnRlbF9idWZzKTsKKwkJYnVmLT5pYmIg PSBpYmI7CisJfSBlbHNlIHsKKwkJaWd0X2Fzc2VydChidWYtPmliYiA9PSBpYmIpOworCX0KKwog CXJldHVybiBvYmo7CiB9CiAKQEAgLTE5NjcsMTggKzIwNDAsNTMgQEAgaW50ZWxfYmJfYWRkX2lu dGVsX2J1Zl93aXRoX2FsaWdubWVudChzdHJ1Y3QgaW50ZWxfYmIgKmliYiwgc3RydWN0IGludGVs X2J1ZiAqYnUKIAlyZXR1cm4gX19pbnRlbF9iYl9hZGRfaW50ZWxfYnVmKGliYiwgYnVmLCBhbGln bm1lbnQsIHdyaXRlKTsKIH0KIAordm9pZCBpbnRlbF9iYl9kZXRhY2hfaW50ZWxfYnVmKHN0cnVj dCBpbnRlbF9iYiAqaWJiLCBzdHJ1Y3QgaW50ZWxfYnVmICpidWYpCit7CisJaWd0X2Fzc2VydChp YmIpOworCWlndF9hc3NlcnQoYnVmKTsKKwlpZ3RfYXNzZXJ0KCFidWYtPmliYiB8fCBidWYtPmli YiA9PSBpYmIpOworCisJaWYgKCFpZ3RfbGlzdF9lbXB0eSgmYnVmLT5saW5rKSkgeworCQlidWYt PmFkZHIub2Zmc2V0ID0gSU5URUxfQlVGX0lOVkFMSURfQUREUkVTUzsKKwkJYnVmLT5pYmIgPSBO VUxMOworCQlpZ3RfbGlzdF9kZWxfaW5pdCgmYnVmLT5saW5rKTsKKwl9Cit9CisKIGJvb2wgaW50 ZWxfYmJfcmVtb3ZlX2ludGVsX2J1ZihzdHJ1Y3QgaW50ZWxfYmIgKmliYiwgc3RydWN0IGludGVs X2J1ZiAqYnVmKQogewotCWJvb2wgcmVtb3ZlZCA9IGludGVsX2JiX3JlbW92ZV9vYmplY3QoaWJi LCBidWYtPmhhbmRsZSwKLQkJCQkJICAgICAgYnVmLT5hZGRyLm9mZnNldCwKLQkJCQkJICAgICAg aW50ZWxfYnVmX2JvX3NpemUoYnVmKSk7CisJYm9vbCByZW1vdmVkOwogCi0JaWYgKHJlbW92ZWQp CisJaWd0X2Fzc2VydChpYmIpOworCWlndF9hc3NlcnQoYnVmKTsKKwlpZ3RfYXNzZXJ0KCFidWYt PmliYiB8fCBidWYtPmliYiA9PSBpYmIpOworCisJaWYgKGlndF9saXN0X2VtcHR5KCZidWYtPmxp bmspKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZW1vdmVkID0gaW50ZWxfYmJfcmVtb3ZlX29iamVj dChpYmIsIGJ1Zi0+aGFuZGxlLAorCQkJCQkgYnVmLT5hZGRyLm9mZnNldCwKKwkJCQkJIGludGVs X2J1Zl9ib19zaXplKGJ1ZikpOworCWlmIChyZW1vdmVkKSB7CiAJCWJ1Zi0+YWRkci5vZmZzZXQg PSBJTlRFTF9CVUZfSU5WQUxJRF9BRERSRVNTOworCQlidWYtPmliYiA9IE5VTEw7CisJCWlndF9s aXN0X2RlbF9pbml0KCZidWYtPmxpbmspOworCX0KIAogCXJldHVybiByZW1vdmVkOwogfQogCit2 b2lkIGludGVsX2JiX3ByaW50X2ludGVsX2J1ZnMoc3RydWN0IGludGVsX2JiICppYmIpCit7CisJ c3RydWN0IGludGVsX2J1ZiAqZW50cnk7CisKKwlpZ3RfbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRy eSwgJmliYi0+aW50ZWxfYnVmcywgbGluaykgeworCQlpZ3RfaW5mbygiaGFuZGxlOiAldSwgaWJi OiAlcCwgb2Zmc2V0OiAlbHhcbiIsCisJCQkgZW50cnktPmhhbmRsZSwgZW50cnktPmliYiwKKwkJ CSAobG9uZykgZW50cnktPmFkZHIub2Zmc2V0KTsKKwl9Cit9CisKIHN0cnVjdCBkcm1faTkxNV9n ZW1fZXhlY19vYmplY3QyICoKIGludGVsX2JiX2ZpbmRfb2JqZWN0KHN0cnVjdCBpbnRlbF9iYiAq aWJiLCB1aW50MzJfdCBoYW5kbGUpCiB7CkBAIC0yMzYxLDYgKzI0NjksNyBAQCBzdGF0aWMgdm9p ZCB1cGRhdGVfb2Zmc2V0cyhzdHJ1Y3QgaW50ZWxfYmIgKmliYiwKIAkJCSAgIHN0cnVjdCBkcm1f aTkxNV9nZW1fZXhlY19vYmplY3QyICpvYmplY3RzKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1f ZXhlY19vYmplY3QyICpvYmplY3Q7CisJc3RydWN0IGludGVsX2J1ZiAqZW50cnk7CiAJdWludDMy X3QgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBpYmItPm51bV9vYmplY3RzOyBpKyspIHsKQEAgLTIz NzIsMTEgKzI0ODEsMjMgQEAgc3RhdGljIHZvaWQgdXBkYXRlX29mZnNldHMoc3RydWN0IGludGVs X2JiICppYmIsCiAJCWlmIChpID09IDApCiAJCQlpYmItPmJhdGNoX29mZnNldCA9IG9iamVjdC0+ b2Zmc2V0OwogCX0KKworCWlndF9saXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCAmaWJiLT5pbnRl bF9idWZzLCBsaW5rKSB7CisJCW9iamVjdCA9IGludGVsX2JiX2ZpbmRfb2JqZWN0KGliYiwgZW50 cnktPmhhbmRsZSk7CisJCWlndF9hc3NlcnQob2JqZWN0KTsKKworCQlpZiAoaWJiLT5hbGxvY2F0 b3JfdHlwZSA9PSBJTlRFTF9BTExPQ0FUT1JfU0lNUExFKQorCQkJaWd0X2Fzc2VydChvYmplY3Qt Pm9mZnNldCA9PSBlbnRyeS0+YWRkci5vZmZzZXQpOworCQllbHNlCisJCQllbnRyeS0+YWRkci5v ZmZzZXQgPSBvYmplY3QtPm9mZnNldDsKKworCQllbnRyeS0+YWRkci5jdHggPSBpYmItPmN0eDsK Kwl9CiB9CiAKICNkZWZpbmUgTElORUxFTiA3NgogLyoKLSAqIEBfX2ludGVsX2JiX2V4ZWM6Cisg KiBfX2ludGVsX2JiX2V4ZWM6CiAgKiBAaWJiOiBwb2ludGVyIHRvIGludGVsX2JiCiAgKiBAZW5k X29mZnNldDogb2Zmc2V0IG9mIHRoZSBsYXN0IGluc3RydWN0aW9uIGluIHRoZSBiYgogICogQGZs YWdzOiBmbGFncyBwYXNzZWQgZGlyZWN0bHkgdG8gZXhlY2J1ZgpAQCAtMjQxNiw2ICsyNTM3LDkg QEAgc3RhdGljIGludCBfX2ludGVsX2JiX2V4ZWMoc3RydWN0IGludGVsX2JiICppYmIsIHVpbnQz Ml90IGVuZF9vZmZzZXQsCiAJaWYgKGliYi0+ZHVtcF9iYXNlNjQpCiAJCWludGVsX2JiX2R1bXBf YmFzZTY0KGliYiwgTElORUxFTik7CiAKKwkvKiBGb3IgZGVidWdnaW5nIG9uIENJLCByZW1vdmUg aW4gZmluYWwgc2VyaWVzICovCisJaW50ZWxfYmJfZHVtcF9leGVjYnVmKGliYiwgJmV4ZWNidWYp OworCiAJcmV0ID0gX19nZW1fZXhlY2J1Zl93cihpYmItPmk5MTUsICZleGVjYnVmKTsKIAlpZiAo cmV0KSB7CiAJCWludGVsX2JiX2R1bXBfZXhlY2J1ZihpYmIsICZleGVjYnVmKTsKQEAgLTI0OTMs MzYgKzI2MTcsNiBAQCB1aW50NjRfdCBpbnRlbF9iYl9nZXRfb2JqZWN0X29mZnNldChzdHJ1Y3Qg aW50ZWxfYmIgKmliYiwgdWludDMyX3QgaGFuZGxlKQogCXJldHVybiAoKmZvdW5kKS0+b2Zmc2V0 OwogfQogCi0vKioKLSAqIGludGVsX2JiX29iamVjdF9vZmZzZXRfdG9fYnVmOgotICogQGliYjog cG9pbnRlciB0byBpbnRlbF9iYgotICogQGJ1ZjogYnVmZmVyIHdlIHdhbnQgdG8gc3RvcmUgbGFz dCBleGVjIG9mZnNldCBhbmQgY29udGV4dCBpZAotICoKLSAqIENvcHkgb2JqZWN0IG9mZnNldCB1 c2VkIGluIHRoZSBiYXRjaCB0byBpbnRlbF9idWYgdG8gYWxsb3cgY2FsbGVyIHByZXBhcmUKLSAq IG90aGVyIGJhdGNoIGxpa2VseSB3aXRob3V0IHJlbG9jYXRpb25zLgotICovCi1ib29sIGludGVs X2JiX29iamVjdF9vZmZzZXRfdG9fYnVmKHN0cnVjdCBpbnRlbF9iYiAqaWJiLCBzdHJ1Y3QgaW50 ZWxfYnVmICpidWYpCi17Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgb2JqZWN0 ID0geyAuaGFuZGxlID0gYnVmLT5oYW5kbGUgfTsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNf b2JqZWN0MiAqKmZvdW5kOwotCi0JaWd0X2Fzc2VydChpYmIpOwotCWlndF9hc3NlcnQoYnVmKTsK LQotCWZvdW5kID0gdGZpbmQoKHZvaWQgKikmb2JqZWN0LCAmaWJiLT5yb290LCBfX2NvbXBhcmVf b2JqZWN0cyk7Ci0JaWYgKCFmb3VuZCkgewotCQlidWYtPmFkZHIub2Zmc2V0ID0gMDsKLQkJYnVm LT5hZGRyLmN0eCA9IGliYi0+Y3R4OwotCi0JCXJldHVybiBmYWxzZTsKLQl9Ci0KLQlidWYtPmFk ZHIub2Zmc2V0ID0gKCpmb3VuZCktPm9mZnNldCAmIChpYmItPmd0dF9zaXplIC0gMSk7Ci0JYnVm LT5hZGRyLmN0eCA9IGliYi0+Y3R4OwotCi0JcmV0dXJuIHRydWU7Ci19Ci0KIC8qCiAgKiBpbnRl bF9iYl9lbWl0X2JiZToKICAqIEBpYmI6IGJhdGNoYnVmZmVyCmRpZmYgLS1naXQgYS9saWIvaW50 ZWxfYmF0Y2hidWZmZXIuaCBiL2xpYi9pbnRlbF9iYXRjaGJ1ZmZlci5oCmluZGV4IDcwMjA1MmQy Mi4uNmYxNDg3MTNiIDEwMDY0NAotLS0gYS9saWIvaW50ZWxfYmF0Y2hidWZmZXIuaAorKysgYi9s aWIvaW50ZWxfYmF0Y2hidWZmZXIuaApAQCAtNiw2ICs2LDcgQEAKICNpbmNsdWRlIDxpOTE1X2Ry bS5oPgogCiAjaW5jbHVkZSAiaWd0X2NvcmUuaCIKKyNpbmNsdWRlICJpZ3RfbGlzdC5oIgogI2lu Y2x1ZGUgImludGVsX3JlZy5oIgogI2luY2x1ZGUgImRybXRlc3QuaCIKICNpbmNsdWRlICJpbnRl bF9hbGxvY2F0b3IuaCIKQEAgLTQ2NCw2ICs0NjUsNyBAQCBzdHJ1Y3QgaW50ZWxfYmIgewogCWJv b2wgdXNlc19mdWxsX3BwZ3R0OwogCiAJdWludDMyX3QgY3R4OworCXVpbnQzMl90IHZtX2lkOwog CiAJLyogQ2FjaGUgKi8KIAl2b2lkICpyb290OwpAQCAtNDgxLDYgKzQ4Myw5IEBAIHN0cnVjdCBp bnRlbF9iYiB7CiAJdWludDMyX3QgbnVtX3JlbG9jczsKIAl1aW50MzJfdCBhbGxvY2F0ZWRfcmVs b2NzOwogCisJLyogVHJhY2tlZCBpbnRlbF9idWZzICovCisJc3RydWN0IGlndF9saXN0X2hlYWQg aW50ZWxfYnVmczsKKwogCS8qCiAJICogQk8gcmVjcmVhdGUgaW4gcmVzZXQgcGF0aCBvbmx5IHdo ZW4gcmVmY291bnQgPT0gMAogCSAqIEN1cnJlbnRseSB3ZSBkb24ndCBuZWVkIHRvIHVzZSBhdG9t aWNzIGJlY2F1c2UgaW50ZWxfYmIKQEAgLTUxNywyOSArNTIyLDE1IEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBpbnRlbF9iYl91bnJlZihzdHJ1Y3QgaW50ZWxfYmIgKmliYikKIAogdm9pZCBpbnRlbF9i Yl9yZXNldChzdHJ1Y3QgaW50ZWxfYmIgKmliYiwgYm9vbCBwdXJnZV9vYmplY3RzX2NhY2hlKTsK IGludCBpbnRlbF9iYl9zeW5jKHN0cnVjdCBpbnRlbF9iYiAqaWJiKTsKKwordWludDY0X3QgaW50 ZWxfYmJfYXNzaWduX3ZtKHN0cnVjdCBpbnRlbF9iYiAqaWJiLCB1aW50NjRfdCBhbGxvY2F0b3Is CisJCQkgICAgdWludDMyX3Qgdm1faWQpOworCiB2b2lkIGludGVsX2JiX3ByaW50KHN0cnVjdCBp bnRlbF9iYiAqaWJiKTsKIHZvaWQgaW50ZWxfYmJfZHVtcChzdHJ1Y3QgaW50ZWxfYmIgKmliYiwg Y29uc3QgY2hhciAqZmlsZW5hbWUpOwogdm9pZCBpbnRlbF9iYl9zZXRfZGVidWcoc3RydWN0IGlu dGVsX2JiICppYmIsIGJvb2wgZGVidWcpOwogdm9pZCBpbnRlbF9iYl9zZXRfZHVtcF9iYXNlNjQo c3RydWN0IGludGVsX2JiICppYmIsIGJvb2wgZHVtcCk7CiAKLS8qCi1zdGF0aWMgaW5saW5lIHVp bnQ2NF90Ci1pbnRlbF9iYl9zZXRfZGVmYXVsdF9vYmplY3RfYWxpZ25tZW50KHN0cnVjdCBpbnRl bF9iYiAqaWJiLCB1aW50NjRfdCBhbGlnbm1lbnQpCi17Ci0JdWludDY0X3Qgb2xkID0gaWJiLT5h bGlnbm1lbnQ7Ci0KLQlpYmItPmFsaWdubWVudCA9IGFsaWdubWVudDsKLQotCXJldHVybiBvbGQ7 Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdWludDY0X3QKLWludGVsX2JiX2dldF9kZWZhdWx0X29iamVj dF9hbGlnbm1lbnQoc3RydWN0IGludGVsX2JiICppYmIpCi17Ci0JcmV0dXJuIGliYi0+YWxpZ25t ZW50OwotfQotKi8KLQogc3RhdGljIGlubGluZSB1aW50MzJfdCBpbnRlbF9iYl9vZmZzZXQoc3Ry dWN0IGludGVsX2JiICppYmIpCiB7CiAJcmV0dXJuICh1aW50MzJfdCkgKCh1aW50OF90ICopIGli Yi0+cHRyIC0gKHVpbnQ4X3QgKikgaWJiLT5iYXRjaCk7CkBAIC01OTcsNyArNTg4LDkgQEAgaW50 ZWxfYmJfYWRkX2ludGVsX2J1ZihzdHJ1Y3QgaW50ZWxfYmIgKmliYiwgc3RydWN0IGludGVsX2J1 ZiAqYnVmLCBib29sIHdyaXRlKTsKIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyICoK IGludGVsX2JiX2FkZF9pbnRlbF9idWZfd2l0aF9hbGlnbm1lbnQoc3RydWN0IGludGVsX2JiICpp YmIsIHN0cnVjdCBpbnRlbF9idWYgKmJ1ZiwKIAkJCQkgICAgICB1aW50NjRfdCBhbGlnbm1lbnQs IGJvb2wgd3JpdGUpOwordm9pZCBpbnRlbF9iYl9kZXRhY2hfaW50ZWxfYnVmKHN0cnVjdCBpbnRl bF9iYiAqaWJiLCBzdHJ1Y3QgaW50ZWxfYnVmICpidWYpOwogYm9vbCBpbnRlbF9iYl9yZW1vdmVf aW50ZWxfYnVmKHN0cnVjdCBpbnRlbF9iYiAqaWJiLCBzdHJ1Y3QgaW50ZWxfYnVmICpidWYpOwor dm9pZCBpbnRlbF9iYl9wcmludF9pbnRlbF9idWZzKHN0cnVjdCBpbnRlbF9iYiAqaWJiKTsKIHN0 cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyICoKIGludGVsX2JiX2ZpbmRfb2JqZWN0KHN0 cnVjdCBpbnRlbF9iYiAqaWJiLCB1aW50MzJfdCBoYW5kbGUpOwogCmRpZmYgLS1naXQgYS9saWIv aW50ZWxfYnVmb3BzLmMgYi9saWIvaW50ZWxfYnVmb3BzLmMKaW5kZXggZDhlYjY0ZTNhLi4xNjZh OTU3ZjEgMTAwNjQ0Ci0tLSBhL2xpYi9pbnRlbF9idWZvcHMuYworKysgYi9saWIvaW50ZWxfYnVm b3BzLmMKQEAgLTcyNyw2ICs3MjcsNyBAQCBzdGF0aWMgdm9pZCBfX2ludGVsX2J1Zl9pbml0KHN0 cnVjdCBidWZfb3BzICpib3BzLAogCiAJYnVmLT5ib3BzID0gYm9wczsKIAlidWYtPmFkZHIub2Zm c2V0ID0gSU5URUxfQlVGX0lOVkFMSURfQUREUkVTUzsKKwlJR1RfSU5JVF9MSVNUX0hFQUQoJmJ1 Zi0+bGluayk7CiAKIAlpZiAoY29tcHJlc3Npb24pIHsKIAkJaW50IGF1eF93aWR0aCwgYXV4X2hl aWdodDsKQEAgLTgyMiwxMyArODIzLDIzIEBAIHZvaWQgaW50ZWxfYnVmX2luaXQoc3RydWN0IGJ1 Zl9vcHMgKmJvcHMsCiAgKgogICogRnVuY3Rpb24gY2xvc2VzIGdlbSBCTyBpbnNpZGUgaW50ZWxf YnVmIGlmIGJvIGlzIG93bmVkIGJ5IGludGVsX2J1Zi4KICAqIEZvciBoYW5kbGUgcGFzc2VkIGZy b20gdGhlIGNhbGxlciBpbnRlbF9idWYgZG9lc24ndCB0YWtlIG93bmVyc2hpcCBhbmQKLSAqIGRv ZXNuJ3QgY2xvc2UgaXQgaW4gY2xvc2UoKS9kZXN0cm95KCkgcGF0aHMuCisgKiBkb2Vzbid0IGNs b3NlIGl0IGluIGNsb3NlKCkvZGVzdHJveSgpIHBhdGhzLiBXaGVuIGludGVsX2J1ZiB3YXMgcHJl dmlvdXNseQorICogYWRkZWQgdG8gaW50ZWxfYmIgKGludGVsX2JiX2FkZF9pbnRlbF9idWYoKSBj YWxsKSBpdCBpcyB0cmFja2VkIHRoZXJlIGFuZAorICogbXVzdCBiZSByZW1vdmVkIGZyb20gaXRz IGludGVybmFsIHN0cnVjdHVyZXMuCiAgKi8KIHZvaWQgaW50ZWxfYnVmX2Nsb3NlKHN0cnVjdCBi dWZfb3BzICpib3BzLCBzdHJ1Y3QgaW50ZWxfYnVmICpidWYpCiB7CiAJaWd0X2Fzc2VydChib3Bz KTsKIAlpZ3RfYXNzZXJ0KGJ1Zik7CiAKKwkvKiBJZiBidWYgaXMgdHJhY2tlZCBieSBzb21lIGlu dGVsX2JiIGVuc3VyZSBpdCB3aWxsIGJlIHJlbW92ZWQgdGhlcmUgKi8KKwlpZiAoYnVmLT5pYmIp IHsKKwkJaW50ZWxfYmJfcmVtb3ZlX2ludGVsX2J1ZihidWYtPmliYiwgYnVmKTsKKwkJYnVmLT5h ZGRyLm9mZnNldCA9IElOVEVMX0JVRl9JTlZBTElEX0FERFJFU1M7CisJCWJ1Zi0+aWJiID0gTlVM TDsKKwkJSUdUX0lOSVRfTElTVF9IRUFEKCZidWYtPmxpbmspOworCX0KKwogCWlmIChidWYtPmlz X293bmVyKQogCQlnZW1fY2xvc2UoYm9wcy0+ZmQsIGJ1Zi0+aGFuZGxlKTsKIH0KZGlmZiAtLWdp dCBhL2xpYi9pbnRlbF9idWZvcHMuaCBiL2xpYi9pbnRlbF9idWZvcHMuaAppbmRleCA1NDQ4MGJm ZjYuLjFhM2Q4NjkyNSAxMDA2NDQKLS0tIGEvbGliL2ludGVsX2J1Zm9wcy5oCisrKyBiL2xpYi9p bnRlbF9idWZvcHMuaApAQCAtMiw2ICsyLDcgQEAKICNkZWZpbmUgX19JTlRFTF9CVUZPUFNfSF9f CiAKICNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlICJpZ3RfbGlzdC5oIgogI2luY2x1ZGUg ImlndF9hdXguaCIKICNpbmNsdWRlICJpbnRlbF9iYXRjaGJ1ZmZlci5oIgogCkBAIC0xMyw2ICsx NCw3IEBAIHN0cnVjdCBidWZfb3BzOwogCiBzdHJ1Y3QgaW50ZWxfYnVmIHsKIAlzdHJ1Y3QgYnVm X29wcyAqYm9wczsKKwogCWJvb2wgaXNfb3duZXI7CiAJdWludDMyX3QgaGFuZGxlOwogCXVpbnQ2 NF90IHNpemU7CkBAIC00MCw2ICs0MiwxMCBAQCBzdHJ1Y3QgaW50ZWxfYnVmIHsKIAkJdWludDMy X3QgY3R4OwogCX0gYWRkcjsKIAorCS8qIFRyYWNraW5nICovCisJc3RydWN0IGludGVsX2JiICpp YmI7CisJc3RydWN0IGlndF9saXN0X2hlYWQgbGluazsKKwogCS8qIENQVSBtYXBwaW5nICovCiAJ dWludDMyX3QgKnB0cjsKIAlib29sIGNwdV93cml0ZTsKZGlmZiAtLWdpdCBhL2xpYi9tZWRpYV9z cGluLmMgYi9saWIvbWVkaWFfc3Bpbi5jCmluZGV4IDVkYTQ2OWE1Mi4uZDIzNDVkMTUzIDEwMDY0 NAotLS0gYS9saWIvbWVkaWFfc3Bpbi5jCisrKyBiL2xpYi9tZWRpYV9zcGluLmMKQEAgLTEzMiw3 ICsxMzIsNiBAQCBnZW44X21lZGlhX3NwaW5mdW5jKGludCBpOTE1LCBzdHJ1Y3QgaW50ZWxfYnVm ICpidWYsIHVpbnQzMl90IHNwaW5zKQogCWludGVsX2JiX2V4ZWMoaWJiLCBpbnRlbF9iYl9vZmZz ZXQoaWJiKSwKIAkJICAgICAgSTkxNV9FWEVDX0RFRkFVTFQgfCBJOTE1X0VYRUNfTk9fUkVMT0Ms IGZhbHNlKTsKIAotCWludGVsX2JiX29iamVjdF9vZmZzZXRfdG9fYnVmKGliYiwgYnVmKTsKIAlp bnRlbF9iYl9kZXN0cm95KGliYik7CiB9CiAKQEAgLTE4Niw2ICsxODUsNSBAQCBnZW45X21lZGlh X3NwaW5mdW5jKGludCBpOTE1LCBzdHJ1Y3QgaW50ZWxfYnVmICpidWYsIHVpbnQzMl90IHNwaW5z KQogCWludGVsX2JiX2V4ZWMoaWJiLCBpbnRlbF9iYl9vZmZzZXQoaWJiKSwKIAkJICAgICAgSTkx NV9FWEVDX0RFRkFVTFQgfCBJOTE1X0VYRUNfTk9fUkVMT0MsIGZhbHNlKTsKIAotCWludGVsX2Ji X29iamVjdF9vZmZzZXRfdG9fYnVmKGliYiwgYnVmKTsKIAlpbnRlbF9iYl9kZXN0cm95KGliYik7 CiB9CmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2FwaV9pbnRlbF9iYi5jIGIvdGVzdHMvaTkxNS9h cGlfaW50ZWxfYmIuYwppbmRleCBjNmM5NDM1MDYuLjc3ZGZiNjg1NCAxMDA2NDQKLS0tIGEvdGVz dHMvaTkxNS9hcGlfaW50ZWxfYmIuYworKysgYi90ZXN0cy9pOTE1L2FwaV9pbnRlbF9iYi5jCkBA IC04MjgsOSArODI4LDYgQEAgc3RhdGljIHZvaWQgb2Zmc2V0X2NvbnRyb2woc3RydWN0IGJ1Zl9v cHMgKmJvcHMpCiAJCXByaW50X2J1Zihkc3QyLCAiZHN0MiIpOwogCX0KIAotCWlndF9hc3NlcnQo aW50ZWxfYmJfb2JqZWN0X29mZnNldF90b19idWYoaWJiLCBzcmMpID09IHRydWUpOwotCWlndF9h c3NlcnQoaW50ZWxfYmJfb2JqZWN0X29mZnNldF90b19idWYoaWJiLCBkc3QxKSA9PSB0cnVlKTsK LQlpZ3RfYXNzZXJ0KGludGVsX2JiX29iamVjdF9vZmZzZXRfdG9fYnVmKGliYiwgZHN0MikgPT0g dHJ1ZSk7CiAJcG9mZl9zcmMgPSBzcmMtPmFkZHIub2Zmc2V0OwogCXBvZmZfZHN0MSA9IGRzdDEt PmFkZHIub2Zmc2V0OwogCXBvZmZfZHN0MiA9IGRzdDItPmFkZHIub2Zmc2V0OwpAQCAtODUzLDEw ICs4NTAsNiBAQCBzdGF0aWMgdm9pZCBvZmZzZXRfY29udHJvbChzdHJ1Y3QgYnVmX29wcyAqYm9w cykKIAkJICAgICAgSTkxNV9FWEVDX0RFRkFVTFQgfCBJOTE1X0VYRUNfTk9fUkVMT0MsIGZhbHNl KTsKIAlpbnRlbF9iYl9zeW5jKGliYik7CiAKLQlpZ3RfYXNzZXJ0KGludGVsX2JiX29iamVjdF9v ZmZzZXRfdG9fYnVmKGliYiwgc3JjKSA9PSB0cnVlKTsKLQlpZ3RfYXNzZXJ0KGludGVsX2JiX29i amVjdF9vZmZzZXRfdG9fYnVmKGliYiwgZHN0MSkgPT0gdHJ1ZSk7Ci0JaWd0X2Fzc2VydChpbnRl bF9iYl9vYmplY3Rfb2Zmc2V0X3RvX2J1ZihpYmIsIGRzdDIpID09IHRydWUpOwotCWlndF9hc3Nl cnQoaW50ZWxfYmJfb2JqZWN0X29mZnNldF90b19idWYoaWJiLCBkc3QzKSA9PSB0cnVlKTsKIAlp Z3RfYXNzZXJ0KHBvZmZfc3JjID09IHNyYy0+YWRkci5vZmZzZXQpOwogCWlndF9hc3NlcnQocG9m Zl9kc3QxID09IGRzdDEtPmFkZHIub2Zmc2V0KTsKIAlpZ3RfYXNzZXJ0KHBvZmZfZHN0MiA9PSBk c3QyLT5hZGRyLm9mZnNldCk7Ci0tIAoyLjI2LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaWd0LWRldgo=