From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 026B989E1D for ; Tue, 5 Mar 2019 13:16:22 +0000 (UTC) From: Andi Shyti Date: Tue, 5 Mar 2019 15:16:07 +0200 Message-Id: <20190305131611.2367-3-andi.shyti@intel.com> In-Reply-To: <20190305131611.2367-1-andi.shyti@intel.com> References: <20190305131611.2367-1-andi.shyti@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [RFC PATCH v10 2/6] lib/i915: add gem_engine_topology library 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 Cc: Andi Shyti List-ID: VGhlIGdlbV9lbmdpbmVfdG9wb2xvZ3kgbGlicmFyeSBpcyBhIHNldCBvZiBmdW5jdGlvbnMgdGhh dAppbnRlcmZhY2Ugd2l0aCB0aGUgcXVlcnkgYW5kIGdldHBhcmFtL3NldHBhcmFtIGlvY3Rscy4K ClRoZSBsaWJyYXJ5J3MgdGhyZWUgbWFpbiBhY2Nlc3MgcG9pbnRzIGFyZToKCiAtIGdldF9hY3Rp dmVfZW5naW5lcygpCiAtIGdlbV9zZXRfY29udGV4dF9nZXRfZW5naW5lcygpCiAtIGlndF9yZXF1 aXJlX2dlbV9lbmdpbmVfbGlzdCgpCgpUaGUgZmlyc3QgdHdvIGZ1bmN0aW9ucyBhcmUgc2ltaWxh ciwgd2l0aCB0aGUgZGlmZmVyZW5jZSB0aGF0IHRoZQonZ2VtX3NldF9jb250ZXh0X2dldF9lbmdp bmVzKCknIHNldHMgdGhlIGVuZ2luZSBiZWZvcmUgcmV0dXJuaW5nCnRoZSBlbmdpbmUgbGlzdCBp biBhICdpbnRlbF9leGVjdXRpb25fZW5naW5lMicgdHlwZSBhcnJheS4KQW5vdGhlciBpbXByb3Rh bnQgZGlmZmVyZW5jZSBpcyB0aGF0IHRoZSBmaXJzdCBmdW5jdGlvbiB3b3Jrcwpvbmx5IHdpdGgg dGhlIGdldHBhcmFtL3NldHBhcmFtIGFuZCBxdWVyeSBpb2N0bHMgYXJlIGltcGxlbWVudGVkCmFu ZCBpdCByZXR1cm4gJ05VTEwnIGluIHRoZSBvdGhlciBjYXNlLgoKJ2dlbV9zZXRfY29udGV4dF9n ZXRfZW5naW5lcygpJyBmdW5jdGlvbiwgYXQgdGhlIGZpcnN0IGNhbGwKZ2VuZXJhdGVzIHRoZSBh cnJheSBvZiBhY3RpdmUgZW5naW5lcyAoZWl0aGVyIHBoeXNpY2FsIG9yCnZpcnR1YWwpIGNhbGxl ZCAnaW50ZWxfYWN0aXZlX2VuZ2luZXMyJy4KSWYgdGhlIGRyaXZlciBjYW5ub3QgYmUgcXVlcmll ZCwgdGhlICdpbnRlbF9hY3RpdmVfZW5naW5lczInCmFycmF5IHBvaW50cyB0byB0aGUgZXhpc2l0 aW5nICdpbnRlbF9leGVjdXRpb25fZW5naW5lczInIHdoaWNoCmhhcyBiZWVuIHByZXZpb3VzbHkg ZGVmaW5lZC4KClRoZSB2YWx1ZSBvZiB0aGUgJ2ludGVsX2FjdGl2ZV9lbmdpbmVzMicgd2lsbCBi ZSB1c2VkIGluIGZ1cnRoZXIKY2FsbHMgdG8gY2hlY2sgd2hldGhlciB0aGUgYWJvdmUgbWVudGlv bmVkIGlvY3RscyBhcmUgaW1wbGVtZW50ZWQKd2l0aG91dCB0aGUgbmVlZCB0byBjYWxsIGdldHBh cmFtKCkuCgpUaGUgJ2lndF9yZXF1aXJlX2dlbV9lbmdpbmVfbGlzdCgpJyBjYXVzZXMgdGhlIHRl c3QgdG8gZmFpbCBpbgpjYXNlIHRoZSByZXF1aXJlZCBpb2N0bHMgYXJlIG5vdCBpbXBsZW1lbnRl ZC4KClNpZ25lZC1vZmYtYnk6IEFuZGkgU2h5dGkgPGFuZGkuc2h5dGlAaW50ZWwuY29tPgotLS0K IGxpYi9NYWtlZmlsZS5zb3VyY2VzICAgICAgICAgICB8ICAgMiArCiBsaWIvaTkxNS9nZW1fZW5n aW5lX3RvcG9sb2d5LmMgfCAxOTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBs aWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmggfCAgMzkgKysrKysrKwogbGliL2lndF9ndC5j ICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBsaWIvaWd0X2d0LmggICAgICAgICAgICAgICAg ICAgfCAgIDIgKy0KIGxpYi9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8ICAgMSArCiA2IGZp bGVzIGNoYW5nZWQsIDI0MyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IGxpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuYwogY3JlYXRlIG1vZGUgMTAw NjQ0IGxpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuaAoKZGlmZiAtLWdpdCBhL2xpYi9NYWtl ZmlsZS5zb3VyY2VzIGIvbGliL01ha2VmaWxlLnNvdXJjZXMKaW5kZXggY2YyNzIwOTgxNzA3Li43 NTdiZDdhMTdlYmUgMTAwNjQ0Ci0tLSBhL2xpYi9NYWtlZmlsZS5zb3VyY2VzCisrKyBiL2xpYi9N YWtlZmlsZS5zb3VyY2VzCkBAIC0xMyw2ICsxMyw4IEBAIGxpYl9zb3VyY2VfbGlzdCA9CSAJXAog CWk5MTUvZ2VtX3JpbmcuYwlcCiAJaTkxNS9nZW1fbW1hbi5jCVwKIAlpOTE1L2dlbV9tbWFuLmgJ XAorCWk5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5jCVwKKwlpOTE1L2dlbV9lbmdpbmVfdG9wb2xv Z3kuaAlcCiAJaTkxNV8zZC5oCQlcCiAJaTkxNV9yZWcuaAkJXAogCWk5MTVfcGNpaWRzLmgJCVwK ZGlmZiAtLWdpdCBhL2xpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuYyBiL2xpYi9pOTE1L2dl bV9lbmdpbmVfdG9wb2xvZ3kuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjkzNzZiNDc5MjQ0MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYi9pOTE1L2dlbV9lbmdpbmVf dG9wb2xvZ3kuYwpAQCAtMCwwICsxLDE5OSBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE5IElu dGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBz b2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJl IiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs dWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9k aWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBz ZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9t IHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBm b2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBh bmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3Jh cGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv bnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1Q TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJD SEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9O SU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlS SUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisg KiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9U SEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRX QVJFLgorICovCisKKyNpbmNsdWRlICJkcm10ZXN0LmgiCisjaW5jbHVkZSAiaWd0X2d0LmgiCisj aW5jbHVkZSAiaW9jdGxfd3JhcHBlcnMuaCIKKworI2luY2x1ZGUgImk5MTUvZ2VtX2VuZ2luZV90 b3BvbG9neS5oIgorCisjZGVmaW5lIFNJWkVPRl9DVFhfUEFSQU0Jb2Zmc2V0b2Yoc3RydWN0IGk5 MTVfY29udGV4dF9wYXJhbV9lbmdpbmVzLCBcCisJCQkJCWNsYXNzX2luc3RhbmNlW0k5MTVfRVhF Q19SSU5HX01BU0sgKyAxXSkKKyNkZWZpbmUgU0laRU9GX1FVRVJZCQlvZmZzZXRvZihzdHJ1Y3Qg ZHJtX2k5MTVfcXVlcnlfZW5naW5lX2luZm8sIFwKKwkJCQkJZW5naW5lc1tJOTE1X0VYRUNfUklO R19NQVNLICsgMV0pCisKK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmlu dGVsX2FjdGl2ZV9lbmdpbmVzMjsKKworaW50IF9fZ2VtX3F1ZXJ5KGludCBmZCwgc3RydWN0IGRy bV9pOTE1X3F1ZXJ5ICpxKQoreworCWludCBlcnIgPSAwOworCisJaWYgKGlndF9pb2N0bChmZCwg RFJNX0lPQ1RMX0k5MTVfUVVFUlksIHEpKQorCQllcnIgPSAtZXJybm87CisKKwllcnJubyA9IDA7 CisJcmV0dXJuIGVycjsKK30KKwordm9pZCBnZW1fcXVlcnkoaW50IGZkLCBzdHJ1Y3QgZHJtX2k5 MTVfcXVlcnkgKnEpCit7CisJaWd0X2Fzc2VydF9lcShfX2dlbV9xdWVyeShmZCwgcSksIDApOwor fQorCitzdGF0aWMgdm9pZCBxdWVyeV9lbmdpbmVzKGludCBmZCwKKwkJCSAgc3RydWN0IGRybV9p OTE1X3F1ZXJ5X2VuZ2luZV9pbmZvICpxdWVyeV9lbmdpbmVzKQoreworCXN0cnVjdCBkcm1faTkx NV9xdWVyeV9pdGVtIGl0ZW0gPSB7IH07CisJc3RydWN0IGRybV9pOTE1X3F1ZXJ5IHF1ZXJ5ID0g eyB9OworCisJaXRlbS5xdWVyeV9pZCA9IERSTV9JOTE1X1FVRVJZX0VOR0lORV9JTkZPOworCXF1 ZXJ5Lml0ZW1zX3B0ciA9IHRvX3VzZXJfcG9pbnRlcigmaXRlbSk7CisJcXVlcnkubnVtX2l0ZW1z ID0gMTsKKwlpdGVtLmxlbmd0aCA9IFNJWkVPRl9RVUVSWTsKKworCWl0ZW0uZGF0YV9wdHIgPSB0 b191c2VyX3BvaW50ZXIocXVlcnlfZW5naW5lcyk7CisKKwlnZW1fcXVlcnkoZmQsICZxdWVyeSk7 Cit9CisKK2Jvb2wgZ2VtX2hhc19lbmdpbmVfdG9wb2xvZ3kodm9pZCkKK3sKKwlyZXR1cm4gaW50 ZWxfYWN0aXZlX2VuZ2luZXMyICE9IGludGVsX2V4ZWN1dGlvbl9lbmdpbmVzMjsKK30KKworc3Rh dGljIHZvaWQgc2V0X2N0eF9wYXJhbV9lbmdpbmVzKGludCBmZCwgdWludDMyX3QgY3R4X2lkKQor eworCXN0cnVjdCBpOTE1X2NvbnRleHRfcGFyYW1fZW5naW5lcyAqY3R4X2VuZ2luZTsKKwlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gY3R4X3BhcmFtOworCWNvbnN0IHN0cnVjdCBp bnRlbF9leGVjdXRpb25fZW5naW5lMiAqZTI7CisJdWludDhfdCBidWZmW1NJWkVPRl9DVFhfUEFS QU1dID0geyB9OworCWludCBpOworCisJaWYgKCFnZW1faGFzX2VuZ2luZV90b3BvbG9neSgpKQor CQlyZXR1cm47CisKKwljdHhfZW5naW5lID0gKHN0cnVjdCBpOTE1X2NvbnRleHRfcGFyYW1fZW5n aW5lcyAqKSBidWZmOworCisJY3R4X3BhcmFtLmN0eF9pZCA9IGN0eF9pZDsKKwljdHhfcGFyYW0u cGFyYW0gPSBJOTE1X0NPTlRFWFRfUEFSQU1fRU5HSU5FUzsKKworCWN0eF9lbmdpbmUtPmV4dGVu c2lvbnMgPSAwOworCWZvciAoaSA9IDAsIGUyID0gaW50ZWxfYWN0aXZlX2VuZ2luZXMyOyBlMi0+ bmFtZTsgaSsrLCBlMisrKSB7CisJCWN0eF9lbmdpbmUtPmNsYXNzX2luc3RhbmNlW2ldLmVuZ2lu ZV9jbGFzcyA9IGUyLT5jbGFzczsKKwkJY3R4X2VuZ2luZS0+Y2xhc3NfaW5zdGFuY2VbaV0uZW5n aW5lX2luc3RhbmNlID0gZTItPmluc3RhbmNlOworCX0KKworCWN0eF9wYXJhbS5zaXplID0gb2Zm c2V0b2YodHlwZW9mKCpjdHhfZW5naW5lKSwgY2xhc3NfaW5zdGFuY2VbaSArIDFdKTsKKwljdHhf cGFyYW0udmFsdWUgPSB0b191c2VyX3BvaW50ZXIoY3R4X2VuZ2luZSk7CisKKwlnZW1fY29udGV4 dF9zZXRfcGFyYW0oZmQsICZjdHhfcGFyYW0pOworfQorCisvKgorICogSW5pdGlhbGl6ZXMgdGhl IGxpc3Qgb2YgZW5naW5lcy4KKyAqCisgKiBSZXR1cm5zOgorICoKKyAqICAtIDAgaW4gY2FzZSBv ZiBzdWNjZXNzIGFuZCB0aGUgZ2V0L3NldF9wYXJhbSBpb2N0bHMgYXJlIGltcGxlbWVudGVkCisg KiAgLSAtRU5PREVWIGluIGNhc2Ugb2Ygc3VjY2VzcyBidXQgSTkxNV9DT05URVhUX1BBUkFNX0VO R0lORVMgaXMgbm90CisgKiAgICBpbXBsZW1lbnRlZCBpbiBEUk1fSU9DVExfSTkxNV9HRU1fQ09O VEVYVF9HRVRQQVJBTSBpb2N0bC4KKyAqLworc3RhdGljIGludCBpbml0X2VuZ2luZV9saXN0KGlu dCBmZCkKK3sKKwljb25zdCBjaGFyICpjbGFzc19uYW1lc1tdID0geyAicmNzIiwgImJjcyIsICJ2 Y3MiLCAidmVjcyIgfTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfZW5naW5lX2luZm8gKnF1ZXJ5 X2VuZ2luZTsKKwl1bnNpZ25lZCBjaGFyIHF1ZXJ5X2J1ZmZlcltTSVpFT0ZfUVVFUlldID0geyB9 OworCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSBjdHhfcGFyYW0gPSB7CisJCS5w YXJhbSA9IEk5MTVfQ09OVEVYVF9QQVJBTV9FTkdJTkVTLAorCX07CisJaW50IGk7CisKKwkvKiB0 aGUgbGlzdCBpcyBhbHJlYWR5IGluaXRpYWxpemVkICovCisJaWYgKGludGVsX2FjdGl2ZV9lbmdp bmVzMikKKwkJcmV0dXJuIGdlbV9oYXNfZW5naW5lX3RvcG9sb2d5KCkgPyAwIDogLUVOT0RFVjsK KworCS8qCisJICogV2UgY2hlY2sgZmlyc3Qgd2hldGhlciB0aGUgSTkxNV9DT05URVhUX1BBUkFN X0VOR0lORVMgcGFyYW1ldGVyIGlzCisJICogc3VwcG9ydGVkIGJ5IHRoZSBydW5uaW5nIGtlcm5l bC4gSWYgbm90LCBfX2dlbV9jb250ZXh0X2dldF9wYXJhbSgpCisJICogd2lsbCByZXR1cm4gLUVJ TlZBTCB3aGljaCwgYXQgdGhpcyBwb2ludCwgaXMgbm90IG5lY2Vzc2FyaWx5IGEKKwkgKiBmYWls dXJlIGJ1dCBpdCBtZWFucyB0aGF0IHdlIG5lZWQgdG8gZmFsbCBiZWNrIHRvIHBvbGxpbmcgdGhl IGVuZ2luZXMKKwkgKiBkaXJlY3RseSBmcm9tIGludGVsX2V4ZWN1dGlvbl9lbmdpbmVzMltdLgor CSAqCisJICogV2Ugd2lsbCByZXR1cm4gLUVOT0RFViB3aXRoIHRoZSBtZWFuaW5nIG9mIG1pc3Np bmcgaW50ZXJmYWNlCisJICovCisJaWYgKF9fZ2VtX2NvbnRleHRfZ2V0X3BhcmFtKGZkLCAmY3R4 X3BhcmFtKSkgeworCQlpbnRlbF9hY3RpdmVfZW5naW5lczIgPSBpbnRlbF9leGVjdXRpb25fZW5n aW5lczI7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCXF1ZXJ5X2VuZ2luZSA9IChzdHJ1Y3Qg ZHJtX2k5MTVfcXVlcnlfZW5naW5lX2luZm8gKikgcXVlcnlfYnVmZmVyOworCXF1ZXJ5X2VuZ2lu ZXMoZmQsIHF1ZXJ5X2VuZ2luZSk7CisKKwlpZ3RfYXNzZXJ0KHF1ZXJ5X2VuZ2luZS0+bnVtX2Vu Z2luZXMgPCBJOTE1X0VYRUNfUklOR19NQVNLICsgMSk7CisKKwlpbnRlbF9hY3RpdmVfZW5naW5l czIgPSBtYWxsb2MoKHF1ZXJ5X2VuZ2luZS0+bnVtX2VuZ2luZXMgKyAxKSAqCisJCQkJICAgICAg IHNpemVvZigqaW50ZWxfYWN0aXZlX2VuZ2luZXMyKSk7CisJaWd0X2Fzc2VydChpbnRlbF9hY3Rp dmVfZW5naW5lczIpOworCisJZm9yIChpID0gMDsgaSA8IHF1ZXJ5X2VuZ2luZS0+bnVtX2VuZ2lu ZXM7IGkrKykgeworCQljaGFyICpuYW1lOworCQlpbnQgY2xhc3MgPSBxdWVyeV9lbmdpbmUtPmVu Z2luZXNbaV0uZW5naW5lX2NsYXNzOworCQlpbnQgaW5zdGFuY2UgPSBxdWVyeV9lbmdpbmUtPmVu Z2luZXNbaV0uZW5naW5lX2luc3RhbmNlOworCisJCWludGVsX2FjdGl2ZV9lbmdpbmVzMltpXS5j bGFzcyA9IGNsYXNzOworCQlpbnRlbF9hY3RpdmVfZW5naW5lczJbaV0uaW5zdGFuY2UgPSBpbnN0 YW5jZTsKKworCQkvKiBpZiB3ZSBkb24ndCByZWNvZ25pc2UgdGhlIGNsYXNzLCB0aGVuIHdlIG1h cmsgaXQgYXMgInVuayIgKi8KKwkJaWYgKGNsYXNzID49IEFSUkFZX1NJWkUoY2xhc3NfbmFtZXMp IHx8ICFjbGFzc19uYW1lc1tjbGFzc10pCisJCQlpZ3RfYXNzZXJ0KGFzcHJpbnRmKCZuYW1lLCAi dW5rLSVkOiVkIiwKKwkJCQkJICAgIGNsYXNzLCBpbnN0YW5jZSkgPiAwKTsKKwkJZWxzZQorCQkJ aWd0X2Fzc2VydChhc3ByaW50ZigmbmFtZSwgIiVzJWQiLAorCQkJCQkgICAgY2xhc3NfbmFtZXNb Y2xhc3NdLCBpbnN0YW5jZSkgPiAwKTsKKworCQlpbnRlbF9hY3RpdmVfZW5naW5lczJbaV0ubmFt ZSA9IG5hbWU7CisJfQorCisJLyogTlVMTCB2YWx1ZSBzZW50aW5lbCAqLworCWludGVsX2FjdGl2 ZV9lbmdpbmVzMltpXS5uYW1lID0gTlVMTDsKKworCXJldHVybiAwOworfQorCitzdHJ1Y3QgaW50 ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmdldF9hY3RpdmVfZW5naW5lcyhpbnQgZmQpCit7CisJaWYg KGluaXRfZW5naW5lX2xpc3QoZmQpKSB7CisJCWlndF9pbmZvKCJ1c2luZyBwcmUtYWxsb2NhdGVk IGVuZ2luZSBsaXN0XG4iKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJcmV0dXJuIGludGVsX2Fj dGl2ZV9lbmdpbmVzMjsKK30KKworc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICpnZW1f c2V0X2NvbnRleHRfZ2V0X2VuZ2luZXMoaW50IGZkLAorCQkJCQkJCSAgICB1aW50MzJfdCBjdHhf aWQpCit7CisJc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICphY3RpdmVfZW5naW5lcyA9 IGdldF9hY3RpdmVfZW5naW5lcyhmZCk7CisKKwlpZiAoIWFjdGl2ZV9lbmdpbmVzKQorCQlyZXR1 cm4gaW50ZWxfZXhlY3V0aW9uX2VuZ2luZXMyOworCisJc2V0X2N0eF9wYXJhbV9lbmdpbmVzKGZk LCBjdHhfaWQpOworCisJcmV0dXJuIGludGVsX2FjdGl2ZV9lbmdpbmVzMjsKK30KKwordm9pZCBp Z3RfcmVxdWlyZV9nZW1fZW5naW5lX2xpc3QoaW50IGZkKQoreworCWlndF9yZXF1aXJlKCFpbml0 X2VuZ2luZV9saXN0KGZkKSk7Cit9CmRpZmYgLS1naXQgYS9saWIvaTkxNS9nZW1fZW5naW5lX3Rv cG9sb2d5LmggYi9saWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmgKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iZTVlODE0ODFkYmEKLS0tIC9kZXYvbnVsbAorKysg Yi9saWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAq IENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBp cyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5n IGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u IGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRo b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmln aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3Vi bGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBw ZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRv IHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJv dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5n IHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMg b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUg U09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO RCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBU SEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAq IFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlN LCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9G IENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9S IElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM SU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpZm5kZWYgR0VNX1FVRVJZX0gKKyNk ZWZpbmUgR0VNX1FVRVJZX0gKKworaW50IF9fZ2VtX3F1ZXJ5KGludCBmZCwgc3RydWN0IGRybV9p OTE1X3F1ZXJ5ICpxKTsKK3ZvaWQgZ2VtX3F1ZXJ5KGludCBmZCwgc3RydWN0IGRybV9pOTE1X3F1 ZXJ5ICpxKTsKKworYm9vbCBnZW1faGFzX2VuZ2luZV90b3BvbG9neSh2b2lkKTsKK3N0cnVjdCBp bnRlbF9leGVjdXRpb25fZW5naW5lMiAqZ2V0X2FjdGl2ZV9lbmdpbmVzKGludCBmZCk7CitzdHJ1 Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmdlbV9zZXRfY29udGV4dF9nZXRfZW5naW5lcyhp bnQgZmQsCisJCQkJCQkJICAgIHVpbnQzMl90IGN0eF9pZCk7CisKK3ZvaWQgaWd0X3JlcXVpcmVf Z2VtX2VuZ2luZV9saXN0KGludCBmZCk7CisKKyNkZWZpbmUgZ2VtX2dldF9lbmdpbmVzKCkgZ2Vt X2NvbnRleHRfZ2V0X2VuZ2luZXMoMCwgMCkKKworI2VuZGlmIC8qIEdFTV9RVUVZX0ggKi8KZGlm ZiAtLWdpdCBhL2xpYi9pZ3RfZ3QuYyBiL2xpYi9pZ3RfZ3QuYwppbmRleCBjOThhNzU1M2I3ZmUu LjU0YzcxZTVlNzE4NiAxMDA2NDQKLS0tIGEvbGliL2lndF9ndC5jCisrKyBiL2xpYi9pZ3RfZ3Qu YwpAQCAtNTc3LDcgKzU3Nyw3IEBAIGJvb2wgZ2VtX2Nhbl9zdG9yZV9kd29yZChpbnQgZmQsIHVu c2lnbmVkIGludCBlbmdpbmUpCiAJcmV0dXJuIHRydWU7CiB9CiAKLWNvbnN0IHN0cnVjdCBpbnRl bF9leGVjdXRpb25fZW5naW5lMiBpbnRlbF9leGVjdXRpb25fZW5naW5lczJbXSA9IHsKK3N0cnVj dCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiBpbnRlbF9leGVjdXRpb25fZW5naW5lczJbXSA9IHsK IAl7ICJyY3MwIiwgSTkxNV9FTkdJTkVfQ0xBU1NfUkVOREVSLCAwIH0sCiAJeyAiYmNzMCIsIEk5 MTVfRU5HSU5FX0NMQVNTX0NPUFksIDAgfSwKIAl7ICJ2Y3MwIiwgSTkxNV9FTkdJTkVfQ0xBU1Nf VklERU8sIDAgfSwKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZ3QuaCBiL2xpYi9pZ3RfZ3QuaAppbmRl eCA1NGU5NWRhOTgwODQuLmY0YmQ2YzIyYTgxYSAxMDA2NDQKLS0tIGEvbGliL2lndF9ndC5oCisr KyBiL2xpYi9pZ3RfZ3QuaApAQCAtOTEsNyArOTEsNyBAQCBib29sIGdlbV9yaW5nX2hhc19waHlz aWNhbF9lbmdpbmUoaW50IGZkLCB1bnNpZ25lZCBpbnQgcmluZyk7CiAKIGJvb2wgZ2VtX2Nhbl9z dG9yZV9kd29yZChpbnQgZmQsIHVuc2lnbmVkIGludCBlbmdpbmUpOwogCi1leHRlcm4gY29uc3Qg c3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyIHsKK2V4dGVybiBzdHJ1Y3QgaW50ZWxfZXhl Y3V0aW9uX2VuZ2luZTIgewogCWNvbnN0IGNoYXIgKm5hbWU7CiAJaW50IGNsYXNzOwogCWludCBp bnN0YW5jZTsKZGlmZiAtLWdpdCBhL2xpYi9tZXNvbi5idWlsZCBiL2xpYi9tZXNvbi5idWlsZApp bmRleCAwZWI1NTg1ZDcyYjkuLjNjYzUyZjk3YzhiZiAxMDA2NDQKLS0tIGEvbGliL21lc29uLmJ1 aWxkCisrKyBiL2xpYi9tZXNvbi5idWlsZApAQCAtNSw2ICs1LDcgQEAgbGliX3NvdXJjZXMgPSBb CiAJJ2k5MTUvZ2VtX3N1Ym1pc3Npb24uYycsCiAJJ2k5MTUvZ2VtX3JpbmcuYycsCiAJJ2k5MTUv Z2VtX21tYW4uYycsCisJJ2k5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5jJywKIAknaWd0X2NvbG9y X2VuY29kaW5nLmMnLAogCSdpZ3RfZGVidWdmcy5jJywKIAknaWd0X2RldmljZS5jJywKLS0gCjIu MjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0 LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2