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 7508E6E93D for ; Tue, 16 Feb 2021 11:40:41 +0000 (UTC) From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= Date: Tue, 16 Feb 2021 12:39:49 +0100 Message-Id: <20210216114007.122175-18-zbigniew.kempczynski@intel.com> In-Reply-To: <20210216114007.122175-1-zbigniew.kempczynski@intel.com> References: <20210216114007.122175-1-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 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 LnVrPgotLS0KIGxpYi9pbnRlbF9iYXRjaGJ1ZmZlci5jICAgfCAxMTkgKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0KIGxpYi9pbnRlbF9iYXRjaGJ1ZmZlci5oICAgfCAgIDUg KysKIGxpYi9pbnRlbF9idWZvcHMuYyAgICAgICAgfCAgMTMgKysrKy0KIGxpYi9pbnRlbF9idWZv cHMuaCAgICAgICAgfCAgIDYgKysKIGxpYi9tZWRpYV9zcGluLmMgICAgICAgICAgfCAgIDIgLQog dGVzdHMvaTkxNS9hcGlfaW50ZWxfYmIuYyB8ICAgNyAtLS0KIDYgZmlsZXMgY2hhbmdlZCwgOTYg aW5zZXJ0aW9ucygrKSwgNTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2ludGVsX2Jh dGNoYnVmZmVyLmMgYi9saWIvaW50ZWxfYmF0Y2hidWZmZXIuYwppbmRleCAyZDljMDhkNmEuLmI3 NmE4YmI4NyAxMDA2NDQKLS0tIGEvbGliL2ludGVsX2JhdGNoYnVmZmVyLmMKKysrIGIvbGliL2lu dGVsX2JhdGNoYnVmZmVyLmMKQEAgLTEyNjEsNiArMTI2MSw4IEBAIHN0YXRpYyBpbmxpbmUgdWlu dDY0X3QgX19pbnRlbF9iYl9nZXRfb2Zmc2V0KHN0cnVjdCBpbnRlbF9iYiAqaWJiLAogICogSWYg d2UgZG8gcmVzZXQgd2l0aG91dCBwdXJnaW5nIGNhY2hlcyB3ZSB1c2UgYWRkcmVzc2VzIGZyb20g aW50ZWwtYmIgY2FjaGUKICAqIGR1cmluZyBleGVjYnVmIG9iamVjdHMgY29uc3RydWN0aW9uLgog ICoKKyAqIElmIHdlIGRvIHJlc2V0IHdpdGggcHVyZ2luZyBjYWNoZXMgYWxsb2NhdG9yIGVudGly ZXMgYXJlIGZyZWVkIGFzIHdlbGwuCisgKgogICogUmV0dXJuczoKICAqCiAgKiBQb2ludGVyIHRo ZSBpbnRlbF9iYiwgYXNzZXJ0cyBvbiBmYWlsdXJlLgpAQCAtMTMxNyw2ICsxMzE5LDggQEAgX19p bnRlbF9iYl9jcmVhdGUoaW50IGk5MTUsIHVpbnQzMl90IGN0eCwgdWludDMyX3Qgc2l6ZSwgYm9v bCBkb19yZWxvY3MsCiAJCQkJICAgICBmYWxzZSk7CiAJaWJiLT5iYXRjaF9vZmZzZXQgPSBvYmpl Y3QtPm9mZnNldDsKIAorCUlHVF9JTklUX0xJU1RfSEVBRCgmaWJiLT5pbnRlbF9idWZzKTsKKwog CWliYi0+cmVmY291bnQgPSAxOwogCiAJcmV0dXJuIGliYjsKQEAgLTE0OTQsNiArMTQ5OCwxNSBA QCBzdGF0aWMgdm9pZCBfX2ludGVsX2JiX2Rlc3Ryb3lfY2FjaGUoc3RydWN0IGludGVsX2JiICpp YmIpCiAJaWJiLT5yb290ID0gTlVMTDsKIH0KIAorc3RhdGljIHZvaWQgX19pbnRlbF9iYl9yZW1v dmVfaW50ZWxfYnVmcyhzdHJ1Y3QgaW50ZWxfYmIgKmliYikKK3sKKwlzdHJ1Y3QgaW50ZWxfYnVm ICplbnRyeSwgKnRtcDsKKworCWlndF9saXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZW50cnksIHRt cCwgJmliYi0+aW50ZWxfYnVmcywgbGluaykgeworCQlpbnRlbF9iYl9yZW1vdmVfaW50ZWxfYnVm KGliYiwgZW50cnkpOworCX0KK30KKwogLyoqCiAgKiBpbnRlbF9iYl9kZXN0cm95OgogICogQGli YjogcG9pbnRlciB0byBpbnRlbF9iYgpAQCAtMTUwNyw2ICsxNTIwLDcgQEAgdm9pZCBpbnRlbF9i Yl9kZXN0cm95KHN0cnVjdCBpbnRlbF9iYiAqaWJiKQogCWliYi0+cmVmY291bnQtLTsKIAlpZ3Rf YXNzZXJ0X2YoaWJiLT5yZWZjb3VudCA9PSAwLCAiVHJ5aW5nIHRvIGRlc3Ryb3kgcmVmZXJlbmNl ZCBiYiEiKTsKIAorCV9faW50ZWxfYmJfcmVtb3ZlX2ludGVsX2J1ZnMoaWJiKTsKIAlfX2ludGVs X2JiX2Rlc3Ryb3lfcmVsb2NhdGlvbnMoaWJiKTsKIAlfX2ludGVsX2JiX2Rlc3Ryb3lfb2JqZWN0 cyhpYmIpOwogCV9faW50ZWxfYmJfZGVzdHJveV9jYWNoZShpYmIpOwpAQCAtMTUzMCw2ICsxNTQ0 LDEwIEBAIHZvaWQgaW50ZWxfYmJfZGVzdHJveShzdHJ1Y3QgaW50ZWxfYmIgKmliYikKICAqIEBw dXJnZV9vYmplY3RzX2NhY2hlOiBpZiB0cnVlIGRlc3Ryb3kgaW50ZXJuYWwgZXhlY29iaiBhbmQg cmVsb2NzICsgY2FjaGUKICAqCiAgKiBSZWNyZWF0ZSBiYXRjaCBibyB3aGVuIHRoZXJlJ3Mgbm8g YWRkaXRpb25hbCByZWZlcmVuY2UuCisgKgorICogV2hlbiBwdXJnZV9vYmplY3RfY2FjaGUgPT0g dHJ1ZSB3ZSBkZXN0cm95IGNhY2hlIGFzIHdlbGwgYXMgcmVtb3ZlIGludGVsX2J1ZgorICogZnJv bSBpbnRlbC1iYiB0cmFja2luZyBsaXN0LiBSZW1vdmluZyBpbnRlbF9idWZzIHJlbGVhc2VzIHRo ZWlyIGFkZHJlc3NlcworICogaW4gdGhlIGFsbG9jYXRvci4KICovCiAKIHZvaWQgaW50ZWxfYmJf cmVzZXQoc3RydWN0IGludGVsX2JiICppYmIsIGJvb2wgcHVyZ2Vfb2JqZWN0c19jYWNoZSkKQEAg LTE1NTUsOCArMTU3MywxMCBAQCB2b2lkIGludGVsX2JiX3Jlc2V0KHN0cnVjdCBpbnRlbF9iYiAq aWJiLCBib29sIHB1cmdlX29iamVjdHNfY2FjaGUpCiAJX19pbnRlbF9iYl9kZXN0cm95X29iamVj dHMoaWJiKTsKIAlfX3JlYWxsb2NhdGVfb2JqZWN0cyhpYmIpOwogCi0JaWYgKHB1cmdlX29iamVj dHNfY2FjaGUpCisJaWYgKHB1cmdlX29iamVjdHNfY2FjaGUpIHsKKwkJX19pbnRlbF9iYl9yZW1v dmVfaW50ZWxfYnVmcyhpYmIpOwogCQlfX2ludGVsX2JiX2Rlc3Ryb3lfY2FjaGUoaWJiKTsKKwl9 CiAKIAkvKgogCSAqIFdoZW4gd2UgdXNlIGFsbG9jYXRvcnMgd2UncmUgaW4gbm8tcmVsb2MgbW9k ZSBzbyB3ZSBoYXZlIHRvIGZyZWUKQEAgLTE4NjEsMjIgKzE4ODEsMTMgQEAgaW50ZWxfYmJfYWRk X29iamVjdChzdHJ1Y3QgaW50ZWxfYmIgKmliYiwgdWludDMyX3QgaGFuZGxlLCB1aW50NjRfdCBz aXplLAogCiAJb2JqZWN0LT5vZmZzZXQgPSBvZmZzZXQ7CiAKLQkvKiBMaW1pdCBjdXJyZW50IG9m ZnNldCB0byBndHQgc2l6ZSAqLwotCWlmIChvZmZzZXQgIT0gSU5URUxfQlVGX0lOVkFMSURfQURE UkVTUykgewotCQlvYmplY3QtPm9mZnNldCA9IENBTk9OSUNBTChvZmZzZXQgJiAoaWJiLT5ndHRf c2l6ZSAtIDEpKTsKLQl9IGVsc2UgewotCQlvYmplY3QtPm9mZnNldCA9IF9faW50ZWxfYmJfZ2V0 X29mZnNldChpYmIsCi0JCQkJCQkgICAgICAgaGFuZGxlLCBzaXplLAotCQkJCQkJICAgICAgIG9i amVjdC0+YWxpZ25tZW50KTsKLQl9Ci0KIAlpZiAod3JpdGUpCiAJCW9iamVjdC0+ZmxhZ3MgfD0g RVhFQ19PQkpFQ1RfV1JJVEU7CiAKIAlpZiAoaWJiLT5zdXBwb3J0c180OGJfYWRkcmVzcykKIAkJ b2JqZWN0LT5mbGFncyB8PSBFWEVDX09CSkVDVF9TVVBQT1JUU180OEJfQUREUkVTUzsKIAotCWlm IChpYmItPnVzZXNfZnVsbF9wcGd0dCAmJiBpYmItPmFsbG9jYXRvcl90eXBlID09IElOVEVMX0FM TE9DQVRPUl9TSU1QTEUpCisJaWYgKGliYi0+dXNlc19mdWxsX3BwZ3R0ICYmICFpYmItPmVuZm9y Y2VfcmVsb2NzKQogCQlvYmplY3QtPmZsYWdzIHw9IEVYRUNfT0JKRUNUX1BJTk5FRDsKIAogCXJl dHVybiBvYmplY3Q7CkBAIC0xOTEzLDYgKzE5MjQsOSBAQCBfX2ludGVsX2JiX2FkZF9pbnRlbF9i dWYoc3RydWN0IGludGVsX2JiICppYmIsIHN0cnVjdCBpbnRlbF9idWYgKmJ1ZiwKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiAqb2JqOwogCisJaWd0X2Fzc2VydChpYmIpOwor CWlndF9hc3NlcnQoYnVmKTsKKwlpZ3RfYXNzZXJ0KCFidWYtPmliYiB8fCBidWYtPmliYiA9PSBp YmIpOwogCWlndF9hc3NlcnQoQUxJR04oYWxpZ25tZW50LCA0MDk2KSA9PSBhbGlnbm1lbnQpOwog CiAJaWYgKCFhbGlnbm1lbnQpIHsKQEAgLTE5MzcsNiArMTk1MSwxMyBAQCBfX2ludGVsX2JiX2Fk ZF9pbnRlbF9idWYoc3RydWN0IGludGVsX2JiICppYmIsIHN0cnVjdCBpbnRlbF9idWYgKmJ1ZiwK IAlpZiAoIWliYi0+ZW5mb3JjZV9yZWxvY3MpCiAJCW9iai0+YWxpZ25tZW50ID0gYWxpZ25tZW50 OwogCisJaWYgKGlndF9saXN0X2VtcHR5KCZidWYtPmxpbmspKSB7CisJCWlndF9saXN0X2FkZF90 YWlsKCZidWYtPmxpbmssICZpYmItPmludGVsX2J1ZnMpOworCQlidWYtPmliYiA9IGliYjsKKwl9 IGVsc2UgeworCQlpZ3RfYXNzZXJ0KGJ1Zi0+aWJiID09IGliYik7CisJfQorCiAJcmV0dXJuIG9i ajsKIH0KIApAQCAtMTk1NSwxNiArMTk3NiwzNiBAQCBpbnRlbF9iYl9hZGRfaW50ZWxfYnVmX3dp dGhfYWxpZ25tZW50KHN0cnVjdCBpbnRlbF9iYiAqaWJiLCBzdHJ1Y3QgaW50ZWxfYnVmICpidQog CiBib29sIGludGVsX2JiX3JlbW92ZV9pbnRlbF9idWYoc3RydWN0IGludGVsX2JiICppYmIsIHN0 cnVjdCBpbnRlbF9idWYgKmJ1ZikKIHsKLQlib29sIHJlbW92ZWQgPSBpbnRlbF9iYl9yZW1vdmVf b2JqZWN0KGliYiwgYnVmLT5oYW5kbGUsCi0JCQkJCSAgICAgIGJ1Zi0+YWRkci5vZmZzZXQsCi0J CQkJCSAgICAgIGludGVsX2J1Zl9ib19zaXplKGJ1ZikpOworCWJvb2wgcmVtb3ZlZDsKKworCWln dF9hc3NlcnQoaWJiKTsKKwlpZ3RfYXNzZXJ0KGJ1Zik7CisJaWd0X2Fzc2VydCghYnVmLT5pYmIg fHwgYnVmLT5pYmIgPT0gaWJiKTsKIAotCWlmIChyZW1vdmVkKQorCXJlbW92ZWQgPSBpbnRlbF9i Yl9yZW1vdmVfb2JqZWN0KGliYiwgYnVmLT5oYW5kbGUsCisJCQkJCSBidWYtPmFkZHIub2Zmc2V0 LAorCQkJCQkgaW50ZWxfYnVmX2JvX3NpemUoYnVmKSk7CisKKwlpZiAocmVtb3ZlZCAmJiAhaWd0 X2xpc3RfZW1wdHkoJmJ1Zi0+bGluaykpIHsKIAkJYnVmLT5hZGRyLm9mZnNldCA9IElOVEVMX0JV Rl9JTlZBTElEX0FERFJFU1M7CisJCWJ1Zi0+aWJiID0gTlVMTDsKKwkJaWd0X2xpc3RfZGVsX2lu aXQoJmJ1Zi0+bGluayk7CisJfQogCiAJcmV0dXJuIHJlbW92ZWQ7CiB9CiAKK3ZvaWQgaW50ZWxf YmJfaW50ZWxfYnVmX2xpc3Qoc3RydWN0IGludGVsX2JiICppYmIpCit7CisJc3RydWN0IGludGVs X2J1ZiAqZW50cnk7CisKKwlpZ3RfbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgJmliYi0+aW50 ZWxfYnVmcywgbGluaykgeworCQlpZ3RfaW5mbygiaGFuZGxlOiAldSwgaWJiOiAlcCwgb2Zmc2V0 OiAlbHhcbiIsCisJCQkgZW50cnktPmhhbmRsZSwgZW50cnktPmliYiwKKwkJCSAobG9uZykgZW50 cnktPmFkZHIub2Zmc2V0KTsKKwl9Cit9CisKIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmpl Y3QyICoKIGludGVsX2JiX2ZpbmRfb2JqZWN0KHN0cnVjdCBpbnRlbF9iYiAqaWJiLCB1aW50MzJf dCBoYW5kbGUpCiB7CkBAIC0yMzQ3LDYgKzIzODgsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfb2Zm c2V0cyhzdHJ1Y3QgaW50ZWxfYmIgKmliYiwKIAkJCSAgIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhl Y19vYmplY3QyICpvYmplY3RzKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3Qy ICpvYmplY3Q7CisJc3RydWN0IGludGVsX2J1ZiAqZW50cnk7CiAJdWludDMyX3QgaTsKIAogCWZv ciAoaSA9IDA7IGkgPCBpYmItPm51bV9vYmplY3RzOyBpKyspIHsKQEAgLTIzNTgsMTEgKzI0MDAs MjMgQEAgc3RhdGljIHZvaWQgdXBkYXRlX29mZnNldHMoc3RydWN0IGludGVsX2JiICppYmIsCiAJ CWlmIChpID09IDApCiAJCQlpYmItPmJhdGNoX29mZnNldCA9IG9iamVjdC0+b2Zmc2V0OwogCX0K KworCWlndF9saXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCAmaWJiLT5pbnRlbF9idWZzLCBsaW5r KSB7CisJCW9iamVjdCA9IGludGVsX2JiX2ZpbmRfb2JqZWN0KGliYiwgZW50cnktPmhhbmRsZSk7 CisJCWlndF9hc3NlcnQob2JqZWN0KTsKKworCQlpZiAoaWJiLT5hbGxvY2F0b3JfdHlwZSA9PSBJ TlRFTF9BTExPQ0FUT1JfU0lNUExFKQorCQkJaWd0X2Fzc2VydChvYmplY3QtPm9mZnNldCA9PSBl bnRyeS0+YWRkci5vZmZzZXQpOworCQllbHNlCisJCQllbnRyeS0+YWRkci5vZmZzZXQgPSBvYmpl Y3QtPm9mZnNldDsKKworCQllbnRyeS0+YWRkci5jdHggPSBpYmItPmN0eDsKKwl9CiB9CiAKICNk ZWZpbmUgTElORUxFTiA3NgogLyoKLSAqIEBfX2ludGVsX2JiX2V4ZWM6CisgKiBfX2ludGVsX2Ji X2V4ZWM6CiAgKiBAaWJiOiBwb2ludGVyIHRvIGludGVsX2JiCiAgKiBAZW5kX29mZnNldDogb2Zm c2V0IG9mIHRoZSBsYXN0IGluc3RydWN0aW9uIGluIHRoZSBiYgogICogQGZsYWdzOiBmbGFncyBw YXNzZWQgZGlyZWN0bHkgdG8gZXhlY2J1ZgpAQCAtMjQwMiw2ICsyNDU2LDkgQEAgc3RhdGljIGlu dCBfX2ludGVsX2JiX2V4ZWMoc3RydWN0IGludGVsX2JiICppYmIsIHVpbnQzMl90IGVuZF9vZmZz ZXQsCiAJaWYgKGliYi0+ZHVtcF9iYXNlNjQpCiAJCWludGVsX2JiX2R1bXBfYmFzZTY0KGliYiwg TElORUxFTik7CiAKKwkvKiBGb3IgZGVidWdnaW5nIG9uIENJLCByZW1vdmUgaW4gZmluYWwgc2Vy aWVzICovCisJaW50ZWxfYmJfZHVtcF9leGVjYnVmKGliYiwgJmV4ZWNidWYpOworCiAJcmV0ID0g X19nZW1fZXhlY2J1Zl93cihpYmItPmk5MTUsICZleGVjYnVmKTsKIAlpZiAocmV0KSB7CiAJCWlu dGVsX2JiX2R1bXBfZXhlY2J1ZihpYmIsICZleGVjYnVmKTsKQEAgLTI0NzksMzYgKzI1MzYsNiBA QCB1aW50NjRfdCBpbnRlbF9iYl9nZXRfb2JqZWN0X29mZnNldChzdHJ1Y3QgaW50ZWxfYmIgKmli YiwgdWludDMyX3QgaGFuZGxlKQogCXJldHVybiAoKmZvdW5kKS0+b2Zmc2V0OwogfQogCi0vKioK LSAqIGludGVsX2JiX29iamVjdF9vZmZzZXRfdG9fYnVmOgotICogQGliYjogcG9pbnRlciB0byBp bnRlbF9iYgotICogQGJ1ZjogYnVmZmVyIHdlIHdhbnQgdG8gc3RvcmUgbGFzdCBleGVjIG9mZnNl dCBhbmQgY29udGV4dCBpZAotICoKLSAqIENvcHkgb2JqZWN0IG9mZnNldCB1c2VkIGluIHRoZSBi YXRjaCB0byBpbnRlbF9idWYgdG8gYWxsb3cgY2FsbGVyIHByZXBhcmUKLSAqIG90aGVyIGJhdGNo IGxpa2VseSB3aXRob3V0IHJlbG9jYXRpb25zLgotICovCi1ib29sIGludGVsX2JiX29iamVjdF9v ZmZzZXRfdG9fYnVmKHN0cnVjdCBpbnRlbF9iYiAqaWJiLCBzdHJ1Y3QgaW50ZWxfYnVmICpidWYp Ci17Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgb2JqZWN0ID0geyAuaGFuZGxl ID0gYnVmLT5oYW5kbGUgfTsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiAqKmZv dW5kOwotCi0JaWd0X2Fzc2VydChpYmIpOwotCWlndF9hc3NlcnQoYnVmKTsKLQotCWZvdW5kID0g dGZpbmQoKHZvaWQgKikmb2JqZWN0LCAmaWJiLT5yb290LCBfX2NvbXBhcmVfb2JqZWN0cyk7Ci0J aWYgKCFmb3VuZCkgewotCQlidWYtPmFkZHIub2Zmc2V0ID0gMDsKLQkJYnVmLT5hZGRyLmN0eCA9 IGliYi0+Y3R4OwotCi0JCXJldHVybiBmYWxzZTsKLQl9Ci0KLQlidWYtPmFkZHIub2Zmc2V0ID0g KCpmb3VuZCktPm9mZnNldCAmIChpYmItPmd0dF9zaXplIC0gMSk7Ci0JYnVmLT5hZGRyLmN0eCA9 IGliYi0+Y3R4OwotCi0JcmV0dXJuIHRydWU7Ci19Ci0KIC8qCiAgKiBpbnRlbF9iYl9lbWl0X2Ji ZToKICAqIEBpYmI6IGJhdGNoYnVmZmVyCmRpZmYgLS1naXQgYS9saWIvaW50ZWxfYmF0Y2hidWZm ZXIuaCBiL2xpYi9pbnRlbF9iYXRjaGJ1ZmZlci5oCmluZGV4IDcwMjA1MmQyMi4uZjhhMzg5Njdi IDEwMDY0NAotLS0gYS9saWIvaW50ZWxfYmF0Y2hidWZmZXIuaAorKysgYi9saWIvaW50ZWxfYmF0 Y2hidWZmZXIuaApAQCAtNiw2ICs2LDcgQEAKICNpbmNsdWRlIDxpOTE1X2RybS5oPgogCiAjaW5j bHVkZSAiaWd0X2NvcmUuaCIKKyNpbmNsdWRlICJpZ3RfbGlzdC5oIgogI2luY2x1ZGUgImludGVs X3JlZy5oIgogI2luY2x1ZGUgImRybXRlc3QuaCIKICNpbmNsdWRlICJpbnRlbF9hbGxvY2F0b3Iu aCIKQEAgLTQ4MSw2ICs0ODIsOSBAQCBzdHJ1Y3QgaW50ZWxfYmIgewogCXVpbnQzMl90IG51bV9y ZWxvY3M7CiAJdWludDMyX3QgYWxsb2NhdGVkX3JlbG9jczsKIAorCS8qIFRyYWNrZWQgaW50ZWxf YnVmcyAqLworCXN0cnVjdCBpZ3RfbGlzdF9oZWFkIGludGVsX2J1ZnM7CisKIAkvKgogCSAqIEJP IHJlY3JlYXRlIGluIHJlc2V0IHBhdGggb25seSB3aGVuIHJlZmNvdW50ID09IDAKIAkgKiBDdXJy ZW50bHkgd2UgZG9uJ3QgbmVlZCB0byB1c2UgYXRvbWljcyBiZWNhdXNlIGludGVsX2JiCkBAIC01 OTgsNiArNjAyLDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgKgogaW50ZWxf YmJfYWRkX2ludGVsX2J1Zl93aXRoX2FsaWdubWVudChzdHJ1Y3QgaW50ZWxfYmIgKmliYiwgc3Ry dWN0IGludGVsX2J1ZiAqYnVmLAogCQkJCSAgICAgIHVpbnQ2NF90IGFsaWdubWVudCwgYm9vbCB3 cml0ZSk7CiBib29sIGludGVsX2JiX3JlbW92ZV9pbnRlbF9idWYoc3RydWN0IGludGVsX2JiICpp YmIsIHN0cnVjdCBpbnRlbF9idWYgKmJ1Zik7Cit2b2lkIGludGVsX2JiX2ludGVsX2J1Zl9saXN0 KHN0cnVjdCBpbnRlbF9iYiAqaWJiKTsKIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3Qy ICoKIGludGVsX2JiX2ZpbmRfb2JqZWN0KHN0cnVjdCBpbnRlbF9iYiAqaWJiLCB1aW50MzJfdCBo YW5kbGUpOwogCmRpZmYgLS1naXQgYS9saWIvaW50ZWxfYnVmb3BzLmMgYi9saWIvaW50ZWxfYnVm b3BzLmMKaW5kZXggZDhlYjY0ZTNhLi4xNjZhOTU3ZjEgMTAwNjQ0Ci0tLSBhL2xpYi9pbnRlbF9i dWZvcHMuYworKysgYi9saWIvaW50ZWxfYnVmb3BzLmMKQEAgLTcyNyw2ICs3MjcsNyBAQCBzdGF0 aWMgdm9pZCBfX2ludGVsX2J1Zl9pbml0KHN0cnVjdCBidWZfb3BzICpib3BzLAogCiAJYnVmLT5i b3BzID0gYm9wczsKIAlidWYtPmFkZHIub2Zmc2V0ID0gSU5URUxfQlVGX0lOVkFMSURfQUREUkVT UzsKKwlJR1RfSU5JVF9MSVNUX0hFQUQoJmJ1Zi0+bGluayk7CiAKIAlpZiAoY29tcHJlc3Npb24p IHsKIAkJaW50IGF1eF93aWR0aCwgYXV4X2hlaWdodDsKQEAgLTgyMiwxMyArODIzLDIzIEBAIHZv aWQgaW50ZWxfYnVmX2luaXQoc3RydWN0IGJ1Zl9vcHMgKmJvcHMsCiAgKgogICogRnVuY3Rpb24g Y2xvc2VzIGdlbSBCTyBpbnNpZGUgaW50ZWxfYnVmIGlmIGJvIGlzIG93bmVkIGJ5IGludGVsX2J1 Zi4KICAqIEZvciBoYW5kbGUgcGFzc2VkIGZyb20gdGhlIGNhbGxlciBpbnRlbF9idWYgZG9lc24n dCB0YWtlIG93bmVyc2hpcCBhbmQKLSAqIGRvZXNuJ3QgY2xvc2UgaXQgaW4gY2xvc2UoKS9kZXN0 cm95KCkgcGF0aHMuCisgKiBkb2Vzbid0IGNsb3NlIGl0IGluIGNsb3NlKCkvZGVzdHJveSgpIHBh dGhzLiBXaGVuIGludGVsX2J1ZiB3YXMgcHJldmlvdXNseQorICogYWRkZWQgdG8gaW50ZWxfYmIg KGludGVsX2JiX2FkZF9pbnRlbF9idWYoKSBjYWxsKSBpdCBpcyB0cmFja2VkIHRoZXJlIGFuZAor ICogbXVzdCBiZSByZW1vdmVkIGZyb20gaXRzIGludGVybmFsIHN0cnVjdHVyZXMuCiAgKi8KIHZv aWQgaW50ZWxfYnVmX2Nsb3NlKHN0cnVjdCBidWZfb3BzICpib3BzLCBzdHJ1Y3QgaW50ZWxfYnVm ICpidWYpCiB7CiAJaWd0X2Fzc2VydChib3BzKTsKIAlpZ3RfYXNzZXJ0KGJ1Zik7CiAKKwkvKiBJ ZiBidWYgaXMgdHJhY2tlZCBieSBzb21lIGludGVsX2JiIGVuc3VyZSBpdCB3aWxsIGJlIHJlbW92 ZWQgdGhlcmUgKi8KKwlpZiAoYnVmLT5pYmIpIHsKKwkJaW50ZWxfYmJfcmVtb3ZlX2ludGVsX2J1 ZihidWYtPmliYiwgYnVmKTsKKwkJYnVmLT5hZGRyLm9mZnNldCA9IElOVEVMX0JVRl9JTlZBTElE X0FERFJFU1M7CisJCWJ1Zi0+aWJiID0gTlVMTDsKKwkJSUdUX0lOSVRfTElTVF9IRUFEKCZidWYt PmxpbmspOworCX0KKwogCWlmIChidWYtPmlzX293bmVyKQogCQlnZW1fY2xvc2UoYm9wcy0+ZmQs IGJ1Zi0+aGFuZGxlKTsKIH0KZGlmZiAtLWdpdCBhL2xpYi9pbnRlbF9idWZvcHMuaCBiL2xpYi9p bnRlbF9idWZvcHMuaAppbmRleCA1NDQ4MGJmZjYuLjFhM2Q4NjkyNSAxMDA2NDQKLS0tIGEvbGli L2ludGVsX2J1Zm9wcy5oCisrKyBiL2xpYi9pbnRlbF9idWZvcHMuaApAQCAtMiw2ICsyLDcgQEAK ICNkZWZpbmUgX19JTlRFTF9CVUZPUFNfSF9fCiAKICNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNs dWRlICJpZ3RfbGlzdC5oIgogI2luY2x1ZGUgImlndF9hdXguaCIKICNpbmNsdWRlICJpbnRlbF9i YXRjaGJ1ZmZlci5oIgogCkBAIC0xMyw2ICsxNCw3IEBAIHN0cnVjdCBidWZfb3BzOwogCiBzdHJ1 Y3QgaW50ZWxfYnVmIHsKIAlzdHJ1Y3QgYnVmX29wcyAqYm9wczsKKwogCWJvb2wgaXNfb3duZXI7 CiAJdWludDMyX3QgaGFuZGxlOwogCXVpbnQ2NF90IHNpemU7CkBAIC00MCw2ICs0MiwxMCBAQCBz dHJ1Y3QgaW50ZWxfYnVmIHsKIAkJdWludDMyX3QgY3R4OwogCX0gYWRkcjsKIAorCS8qIFRyYWNr aW5nICovCisJc3RydWN0IGludGVsX2JiICppYmI7CisJc3RydWN0IGlndF9saXN0X2hlYWQgbGlu azsKKwogCS8qIENQVSBtYXBwaW5nICovCiAJdWludDMyX3QgKnB0cjsKIAlib29sIGNwdV93cml0 ZTsKZGlmZiAtLWdpdCBhL2xpYi9tZWRpYV9zcGluLmMgYi9saWIvbWVkaWFfc3Bpbi5jCmluZGV4 IDVkYTQ2OWE1Mi4uZDIzNDVkMTUzIDEwMDY0NAotLS0gYS9saWIvbWVkaWFfc3Bpbi5jCisrKyBi L2xpYi9tZWRpYV9zcGluLmMKQEAgLTEzMiw3ICsxMzIsNiBAQCBnZW44X21lZGlhX3NwaW5mdW5j KGludCBpOTE1LCBzdHJ1Y3QgaW50ZWxfYnVmICpidWYsIHVpbnQzMl90IHNwaW5zKQogCWludGVs X2JiX2V4ZWMoaWJiLCBpbnRlbF9iYl9vZmZzZXQoaWJiKSwKIAkJICAgICAgSTkxNV9FWEVDX0RF RkFVTFQgfCBJOTE1X0VYRUNfTk9fUkVMT0MsIGZhbHNlKTsKIAotCWludGVsX2JiX29iamVjdF9v ZmZzZXRfdG9fYnVmKGliYiwgYnVmKTsKIAlpbnRlbF9iYl9kZXN0cm95KGliYik7CiB9CiAKQEAg LTE4Niw2ICsxODUsNSBAQCBnZW45X21lZGlhX3NwaW5mdW5jKGludCBpOTE1LCBzdHJ1Y3QgaW50 ZWxfYnVmICpidWYsIHVpbnQzMl90IHNwaW5zKQogCWludGVsX2JiX2V4ZWMoaWJiLCBpbnRlbF9i Yl9vZmZzZXQoaWJiKSwKIAkJICAgICAgSTkxNV9FWEVDX0RFRkFVTFQgfCBJOTE1X0VYRUNfTk9f UkVMT0MsIGZhbHNlKTsKIAotCWludGVsX2JiX29iamVjdF9vZmZzZXRfdG9fYnVmKGliYiwgYnVm KTsKIAlpbnRlbF9iYl9kZXN0cm95KGliYik7CiB9CmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2Fw aV9pbnRlbF9iYi5jIGIvdGVzdHMvaTkxNS9hcGlfaW50ZWxfYmIuYwppbmRleCBjNmM5NDM1MDYu Ljc3ZGZiNjg1NCAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9hcGlfaW50ZWxfYmIuYworKysgYi90 ZXN0cy9pOTE1L2FwaV9pbnRlbF9iYi5jCkBAIC04MjgsOSArODI4LDYgQEAgc3RhdGljIHZvaWQg b2Zmc2V0X2NvbnRyb2woc3RydWN0IGJ1Zl9vcHMgKmJvcHMpCiAJCXByaW50X2J1Zihkc3QyLCAi ZHN0MiIpOwogCX0KIAotCWlndF9hc3NlcnQoaW50ZWxfYmJfb2JqZWN0X29mZnNldF90b19idWYo aWJiLCBzcmMpID09IHRydWUpOwotCWlndF9hc3NlcnQoaW50ZWxfYmJfb2JqZWN0X29mZnNldF90 b19idWYoaWJiLCBkc3QxKSA9PSB0cnVlKTsKLQlpZ3RfYXNzZXJ0KGludGVsX2JiX29iamVjdF9v ZmZzZXRfdG9fYnVmKGliYiwgZHN0MikgPT0gdHJ1ZSk7CiAJcG9mZl9zcmMgPSBzcmMtPmFkZHIu b2Zmc2V0OwogCXBvZmZfZHN0MSA9IGRzdDEtPmFkZHIub2Zmc2V0OwogCXBvZmZfZHN0MiA9IGRz dDItPmFkZHIub2Zmc2V0OwpAQCAtODUzLDEwICs4NTAsNiBAQCBzdGF0aWMgdm9pZCBvZmZzZXRf Y29udHJvbChzdHJ1Y3QgYnVmX29wcyAqYm9wcykKIAkJICAgICAgSTkxNV9FWEVDX0RFRkFVTFQg fCBJOTE1X0VYRUNfTk9fUkVMT0MsIGZhbHNlKTsKIAlpbnRlbF9iYl9zeW5jKGliYik7CiAKLQlp Z3RfYXNzZXJ0KGludGVsX2JiX29iamVjdF9vZmZzZXRfdG9fYnVmKGliYiwgc3JjKSA9PSB0cnVl KTsKLQlpZ3RfYXNzZXJ0KGludGVsX2JiX29iamVjdF9vZmZzZXRfdG9fYnVmKGliYiwgZHN0MSkg PT0gdHJ1ZSk7Ci0JaWd0X2Fzc2VydChpbnRlbF9iYl9vYmplY3Rfb2Zmc2V0X3RvX2J1ZihpYmIs IGRzdDIpID09IHRydWUpOwotCWlndF9hc3NlcnQoaW50ZWxfYmJfb2JqZWN0X29mZnNldF90b19i dWYoaWJiLCBkc3QzKSA9PSB0cnVlKTsKIAlpZ3RfYXNzZXJ0KHBvZmZfc3JjID09IHNyYy0+YWRk ci5vZmZzZXQpOwogCWlndF9hc3NlcnQocG9mZl9kc3QxID09IGRzdDEtPmFkZHIub2Zmc2V0KTsK IAlpZ3RfYXNzZXJ0KHBvZmZfZHN0MiA9PSBkc3QyLT5hZGRyLm9mZnNldCk7Ci0tIAoyLjI2LjAK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYg bWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=