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 2C3516E2B6 for ; Wed, 9 Jun 2021 13:16:27 +0000 (UTC) From: Andrzej Turko Date: Wed, 9 Jun 2021 15:15:21 +0200 Message-Id: <20210609131522.1794-3-andrzej.turko@linux.intel.com> In-Reply-To: <20210609131522.1794-1-andrzej.turko@linux.intel.com> References: <20210609131522.1794-1-andrzej.turko@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 2/3] lib/intel_allocator: Move the ioctl calls to client processes 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: V2hlbiBhbGxvY2F0b3IgaXMgcnVubmluZyBpbiBtdWx0aXByb2Nlc3MgbW9kZSwgYWxsIHF1ZXJp ZXMKYXJlIHByb2Nlc3NlZCBpbiBhIGRlc2lnbmF0ZWQgdGhyZWFkIGluIHRoZSBwYXJlbnQgcHJv Y2Vzcy4KSG93ZXZlciwgYSBjaGlsZCBwcm9jZXNzIG1heSByZXF1ZXN0IG9wZW5pbmcgdGhlIGFs bG9jYXRvcgpmb3IgYSBncHUgdXNpbmcgYSBmaWxlIGRlc2NyaXB0b3IgYWJzZW50IGluIHRoZSBw YXJlbnQgcHJvY2Vzcy4KSGVuY2UsIHF1ZXJ5aW5nIGF2YWlsYWJsZSBndHQgc2l6ZSBtdXN0IGJl IGRvbmUgaW4gdGhlIGNoaWxkCmluc3RlYWQgb2YgdGhlIHBhcmVudCBwcm9jZXNzLgoKVGhpcyBt b2RpZmljYXRpb24gaGFzIHRyaWdnZXJlZCBzbGlnaHQgY2hhbmdlcyB0byB0aGUKY3JlYXRpb24g b2YgcmFuZG9tIGFuZCByZWxvYyBhbGxvY2F0b3JzLgoKU2lnbmVkLW9mZi1ieTogQW5kcnplaiBU dXJrbyA8YW5kcnplai50dXJrb0BsaW51eC5pbnRlbC5jb20+CkNjOiBaYmlnbmlldyBLZW1wY3p5 xYRza2kgPHpiaWduaWV3LmtlbXBjenluc2tpQGludGVsLmNvbT4KLS0tCiBsaWIvaW50ZWxfYWxs b2NhdG9yLmMgICAgICAgIHwgNDggKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t CiBsaWIvaW50ZWxfYWxsb2NhdG9yX3JhbmRvbS5jIHwgMjYgKysrKysrKy0tLS0tLS0tLS0tLQog bGliL2ludGVsX2FsbG9jYXRvcl9yZWxvYy5jICB8IDIxICsrKystLS0tLS0tLS0tLS0KIGxpYi9p bnRlbF9hbGxvY2F0b3Jfc2ltcGxlLmMgfCA0NCArKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgODUgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbGliL2ludGVsX2FsbG9jYXRvci5jIGIvbGliL2ludGVsX2FsbG9jYXRv ci5jCmluZGV4IDk2ZjgzOWQ0Yi4uYTc4YTY2MWIxIDEwMDY0NAotLS0gYS9saWIvaW50ZWxfYWxs b2NhdG9yLmMKKysrIGIvbGliL2ludGVsX2FsbG9jYXRvci5jCkBAIC00NSw2ICs0NSwxMiBAQCBz dGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKnJlcXN0cihlbnVtIHJlcXR5cGUgcmVxdWVzdF90eXBl KQogI2RlZmluZSBhbGxvY19kZWJ1ZyguLi4pIHt9CiAjZW5kaWYKIAorLyoKKyAqIFdlIGxpbWl0 IGFsbG9jYXRvciBzcGFjZSB0byBhdm9pZCBoYW5nIHdoZW4gYmF0Y2ggd291bGQgYmUKKyAqIHBp bm5lZCBpbiB0aGUgbGFzdCBwYWdlLgorICovCisjZGVmaW5lIFJFU0VSVkVEIDQwOTYKKwogc3Ry dWN0IGFsbG9jYXRvciB7CiAJaW50IGZkOwogCXVpbnQzMl90IGN0eDsKQEAgLTU4LDEyICs2NCwx MSBAQCBzdHJ1Y3QgaGFuZGxlX2VudHJ5IHsKIAlzdHJ1Y3QgYWxsb2NhdG9yICphbDsKIH07CiAK LXN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmludGVsX2FsbG9jYXRvcl9yZWxvY19jcmVhdGUoaW50 IGZkKTsKLXN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmludGVsX2FsbG9jYXRvcl9yYW5kb21fY3Jl YXRlKGludCBmZCk7Ci1zdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICppbnRlbF9hbGxvY2F0b3Jfc2lt cGxlX2NyZWF0ZShpbnQgZmQpOworc3RydWN0IGludGVsX2FsbG9jYXRvciAqaW50ZWxfYWxsb2Nh dG9yX3JlbG9jX2NyZWF0ZShpbnQgZmQsIHVpbnQ2NF90IGVuZCk7CitzdHJ1Y3QgaW50ZWxfYWxs b2NhdG9yICppbnRlbF9hbGxvY2F0b3JfcmFuZG9tX2NyZWF0ZShpbnQgZmQsIHVpbnQ2NF90IGVu ZCk7CiBzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICoKLWludGVsX2FsbG9jYXRvcl9zaW1wbGVfY3Jl YXRlX2Z1bGwoaW50IGZkLCB1aW50NjRfdCBzdGFydCwgdWludDY0X3QgZW5kLAotCQkJCSAgIGVu dW0gYWxsb2NhdG9yX3N0cmF0ZWd5IHN0cmF0ZWd5KTsKK2ludGVsX2FsbG9jYXRvcl9zaW1wbGVf Y3JlYXRlKGludCBmZCwgdWludDY0X3Qgc3RhcnQsIHVpbnQ2NF90IGVuZCwKKwkJCSAgICAgIGVu dW0gYWxsb2NhdG9yX3N0cmF0ZWd5IHN0cmF0ZWd5KTsKIAogLyoKICAqIEluc3RlYWQgb2YgdHJ5 aW5nIHRvIGZpbmQgZmlyc3QgZW1wdHkgaGFuZGxlIGp1c3QgZ2V0IG5ldyBvbmUuIEFzc3VtaW5n CkBAIC0yODYsMTcgKzI5MSwxNCBAQCBzdGF0aWMgc3RydWN0IGludGVsX2FsbG9jYXRvciAqaW50 ZWxfYWxsb2NhdG9yX2NyZWF0ZShpbnQgZmQsCiAJCQkgICAgICJXZSBjYW5ub3QgdXNlIE5PTkUg YWxsb2NhdG9yXG4iKTsKIAkJYnJlYWs7CiAJY2FzZSBJTlRFTF9BTExPQ0FUT1JfUkVMT0M6Ci0J CWlhbCA9IGludGVsX2FsbG9jYXRvcl9yZWxvY19jcmVhdGUoZmQpOworCQlpYWwgPSBpbnRlbF9h bGxvY2F0b3JfcmVsb2NfY3JlYXRlKGZkLCBlbmQpOwogCQlicmVhazsKIAljYXNlIElOVEVMX0FM TE9DQVRPUl9SQU5ET006Ci0JCWlhbCA9IGludGVsX2FsbG9jYXRvcl9yYW5kb21fY3JlYXRlKGZk KTsKKwkJaWFsID0gaW50ZWxfYWxsb2NhdG9yX3JhbmRvbV9jcmVhdGUoZmQsIGVuZCk7CiAJCWJy ZWFrOwogCWNhc2UgSU5URUxfQUxMT0NBVE9SX1NJTVBMRToKLQkJaWYgKCFzdGFydCAmJiAhZW5k KQotCQkJaWFsID0gaW50ZWxfYWxsb2NhdG9yX3NpbXBsZV9jcmVhdGUoZmQpOwotCQllbHNlCi0J CQlpYWwgPSBpbnRlbF9hbGxvY2F0b3Jfc2ltcGxlX2NyZWF0ZV9mdWxsKGZkLCBzdGFydCwgZW5k LAotCQkJCQkJCQkgYWxsb2NhdG9yX3N0cmF0ZWd5KTsKKwkJaWFsID0gaW50ZWxfYWxsb2NhdG9y X3NpbXBsZV9jcmVhdGUoZmQsIHN0YXJ0LCBlbmQsCisJCQkJCQkgICAgYWxsb2NhdG9yX3N0cmF0 ZWd5KTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJaWd0X2Fzc2VydF9mKGlhbCwgIkFsbG9jYXRv ciB0eXBlICVkIG5vdCBpbXBsZW1lbnRlZFxuIiwKQEAgLTg3Nyw2ICs4NzksMjMgQEAgc3RhdGlj IHVpbnQ2NF90IF9faW50ZWxfYWxsb2NhdG9yX29wZW5fZnVsbChpbnQgZmQsIHVpbnQzMl90IGN0 eCwKIAkJCQkgLm9wZW4uYWxsb2NhdG9yX3R5cGUgPSBhbGxvY2F0b3JfdHlwZSwKIAkJCQkgLm9w ZW4uYWxsb2NhdG9yX3N0cmF0ZWd5ID0gc3RyYXRlZ3kgfTsKIAlzdHJ1Y3QgYWxsb2NfcmVzcCBy ZXNwOworCXVpbnQ2NF90IGd0dF9zaXplID0gZ2VtX2FwZXJ0dXJlX3NpemUoZmQpOworCisJaWYg KCFzdGFydCAmJiAhZW5kKSB7CisJCWlmICghZ2VtX3VzZXNfZnVsbF9wcGd0dChmZCkpCisJCQln dHRfc2l6ZSAvPSAyOworCQllbHNlCisJCQlndHRfc2l6ZSAtPSBSRVNFUlZFRDsKKworCQlyZXEu b3Blbi5lbmQgPSBndHRfc2l6ZTsKKwl9IGVsc2UgeworCisJCWlndF9hc3NlcnQoZW5kIDw9IGd0 dF9zaXplKTsKKwkJaWYgKCFnZW1fdXNlc19mdWxsX3BwZ3R0KGZkKSkKKwkJCWd0dF9zaXplIC89 IDI7CisJCWlndF9hc3NlcnQoZW5kIC0gc3RhcnQgPD0gZ3R0X3NpemUpOworCX0KKwogCiAJLyog R2V0IGNoaWxkX3RpZCBvbmx5IG9uY2UgYXQgb3BlbigpICovCiAJaWYgKGNoaWxkX3RpZCA9PSAt MSkKQEAgLTkwNyw2ICs5MjYsOSBAQCBzdGF0aWMgdWludDY0X3QgX19pbnRlbF9hbGxvY2F0b3Jf b3Blbl9mdWxsKGludCBmZCwgdWludDMyX3QgY3R4LAogICogUmV0dXJuczogdW5pcXVlIGhhbmRs ZSB0byB0aGUgY3VycmVudGx5IG9wZW5lZCBhbGxvY2F0b3IuCiAgKgogICogTm90ZXM6CisgKgor ICogSWYgc3RhcnQgPSBlbmQgPSAwLCB0aGUgYWxsb2NhdG9yIGlzIG9wZW5lZCBmb3IgdGhlIHdo b2xlIGF2YWlsYWJsZSBndHQuCisgKgogICogU3RyYXRlZ3kgaXMgZ2VuZXJhbGx5IHVzZWQgaW50 ZXJuYWxseSBieSB0aGUgdW5kZXJseWluZyBhbGxvY2F0b3I6CiAgKgogICogRm9yIFNJTVBMRSBh bGxvY2F0b3I6CkBAIC05MTUsNyArOTM3LDcgQEAgc3RhdGljIHVpbnQ2NF90IF9faW50ZWxfYWxs b2NhdG9yX29wZW5fZnVsbChpbnQgZmQsIHVpbnQzMl90IGN0eCwKICAqICAgYWRkcmVzc2VzLgog ICoKICAqIEZvciBSQU5ET00gYWxsb2NhdG9yOgotICogLSBub25lIG9mIHN0cmF0ZWd5IGlzIGN1 cnJlbnRseSBpbXBsZW1lbnRlZC4KKyAqIC0gbm8gc3RyYXRlZ3kgaXMgY3VycmVudGx5IGltcGxl bWVudGVkLgogICovCiB1aW50NjRfdCBpbnRlbF9hbGxvY2F0b3Jfb3Blbl9mdWxsKGludCBmZCwg dWludDMyX3QgY3R4LAogCQkJCSAgIHVpbnQ2NF90IHN0YXJ0LCB1aW50NjRfdCBlbmQsCmRpZmYg LS1naXQgYS9saWIvaW50ZWxfYWxsb2NhdG9yX3JhbmRvbS5jIGIvbGliL2ludGVsX2FsbG9jYXRv cl9yYW5kb20uYwppbmRleCAzZDlhNzhmMTcuLjg1YWMyY2Y0ZSAxMDA2NDQKLS0tIGEvbGliL2lu dGVsX2FsbG9jYXRvcl9yYW5kb20uYworKysgYi9saWIvaW50ZWxfYWxsb2NhdG9yX3JhbmRvbS5j CkBAIC0xMCwxMiArMTAsMTIgQEAKICNpbmNsdWRlICJpZ3RfcmFuZC5oIgogI2luY2x1ZGUgImlu dGVsX2FsbG9jYXRvci5oIgogCi1zdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICppbnRlbF9hbGxvY2F0 b3JfcmFuZG9tX2NyZWF0ZShpbnQgZmQpOworc3RydWN0IGludGVsX2FsbG9jYXRvciAqaW50ZWxf YWxsb2NhdG9yX3JhbmRvbV9jcmVhdGUoaW50IGZkLCB1aW50NjRfdCBlbmQpOwogCiBzdHJ1Y3Qg aW50ZWxfYWxsb2NhdG9yX3JhbmRvbSB7CiAJdWludDY0X3QgYmlhczsKIAl1aW50MzJfdCBwcm5n OwotCXVpbnQ2NF90IGd0dF9zaXplOworCXVpbnQ2NF90IGFkZHJlc3NfbWFzazsKIAl1aW50NjRf dCBzdGFydDsKIAl1aW50NjRfdCBlbmQ7CiAKQEAgLTIzLDEyICsyMyw3IEBAIHN0cnVjdCBpbnRl bF9hbGxvY2F0b3JfcmFuZG9tIHsKIAl1aW50NjRfdCBhbGxvY2F0ZWRfb2JqZWN0czsKIH07CiAK LXN0YXRpYyB1aW50NjRfdCBnZXRfYmlhcyhpbnQgZmQpCi17Ci0JKHZvaWQpIGZkOwotCi0JcmV0 dXJuIDI1NiA8PCAxMDsKLX0KKyNkZWZpbmUgQklBUyAyNTYgPDwgMTAKIAogc3RhdGljIHZvaWQg aW50ZWxfYWxsb2NhdG9yX3JhbmRvbV9nZXRfYWRkcmVzc19yYW5nZShzdHJ1Y3QgaW50ZWxfYWxs b2NhdG9yICppYWwsCiAJCQkJCQkgICAgIHVpbnQ2NF90ICpzdGFydHAsCkBAIC01OCw3ICs1Myw3 IEBAIHN0YXRpYyB1aW50NjRfdCBpbnRlbF9hbGxvY2F0b3JfcmFuZG9tX2FsbG9jKHN0cnVjdCBp bnRlbF9hbGxvY2F0b3IgKmlhbCwKIAlkbyB7CiAJCW9mZnNldCA9IGhhcnNfcGV0cnVza2FfZjU0 XzFfcmFuZG9tNjQoJmlhbHItPnBybmcpOwogCQlvZmZzZXQgKz0gaWFsci0+YmlhczsgLyogS2Vl cCB0aGUgbG93IDI1NmsgY2xlYXIsIGZvciBuZWdhdGl2ZSBkZWx0YXMgKi8KLQkJb2Zmc2V0ICY9 IGlhbHItPmd0dF9zaXplIC0gMTsKKwkJb2Zmc2V0ICY9IGlhbHItPmFkZHJlc3NfbWFzazsKIAkJ b2Zmc2V0ICY9IH4oYWxpZ25tZW50IC0gMSk7CiAJfSB3aGlsZSAob2Zmc2V0ICsgc2l6ZSA+IGlh bHItPmVuZCk7CiAKQEAgLTE1MCw4ICsxNDUsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9hbGxvY2F0 b3JfcmFuZG9tX2lzX2VtcHR5KHN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmlhbCkKIAlyZXR1cm4g IWlhbHItPmFsbG9jYXRlZF9vYmplY3RzOwogfQogCi0jZGVmaW5lIFJFU0VSVkVEIDQwOTYKLXN0 cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmludGVsX2FsbG9jYXRvcl9yYW5kb21fY3JlYXRlKGludCBm ZCkKK3N0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmludGVsX2FsbG9jYXRvcl9yYW5kb21fY3JlYXRl KGludCBmZCwgdWludDY0X3QgZW5kKQogewogCXN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmlhbDsK IAlzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yX3JhbmRvbSAqaWFscjsKQEAgLTE3NSwxNCArMTY5LDEy IEBAIHN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmludGVsX2FsbG9jYXRvcl9yYW5kb21fY3JlYXRl KGludCBmZCkKIAlpYWxyID0gaWFsLT5wcml2ID0gY2FsbG9jKDEsIHNpemVvZigqaWFscikpOwog CWlndF9hc3NlcnQoaWFsLT5wcml2KTsKIAlpYWxyLT5wcm5nID0gKHVpbnQzMl90KSB0b191c2Vy X3BvaW50ZXIoaWFsKTsKLQlpYWxyLT5ndHRfc2l6ZSA9IGdlbV9hcGVydHVyZV9zaXplKGZkKTsK LQlpZ3RfZGVidWcoIkd0dCBzaXplOiAlIiBQUklkNjQgIlxuIiwgaWFsci0+Z3R0X3NpemUpOwot CWlmICghZ2VtX3VzZXNfZnVsbF9wcGd0dChmZCkpCi0JCWlhbHItPmd0dF9zaXplIC89IDI7CiAK LQlpYWxyLT5iaWFzID0gZ2V0X2JpYXMoZmQpOworCWlndF9hc3NlcnQoQklBUyA8IGVuZCk7CisJ aWFsci0+YWRkcmVzc19tYXNrID0gKDFVTEwgPDwgKGlndF9mbHMoZW5kKSAtIDEpKSAtIDE7CisJ aWFsci0+YmlhcyA9IEJJQVM7CiAJaWFsci0+c3RhcnQgPSBpYWxyLT5iaWFzOwotCWlhbHItPmVu ZCA9IGlhbHItPmd0dF9zaXplIC0gUkVTRVJWRUQ7CisJaWFsci0+ZW5kID0gZW5kOwogCiAJaWFs ci0+YWxsb2NhdGVkX29iamVjdHMgPSAwOwogCmRpZmYgLS1naXQgYS9saWIvaW50ZWxfYWxsb2Nh dG9yX3JlbG9jLmMgYi9saWIvaW50ZWxfYWxsb2NhdG9yX3JlbG9jLmMKaW5kZXggZThhZjc4N2Iw Li43MDNkMDU0YzYgMTAwNjQ0Ci0tLSBhL2xpYi9pbnRlbF9hbGxvY2F0b3JfcmVsb2MuYworKysg Yi9saWIvaW50ZWxfYWxsb2NhdG9yX3JlbG9jLmMKQEAgLTEwLDEyICsxMCwxMSBAQAogI2luY2x1 ZGUgImlndF9yYW5kLmgiCiAjaW5jbHVkZSAiaW50ZWxfYWxsb2NhdG9yLmgiCiAKLXN0cnVjdCBp bnRlbF9hbGxvY2F0b3IgKmludGVsX2FsbG9jYXRvcl9yZWxvY19jcmVhdGUoaW50IGZkKTsKK3N0 cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmludGVsX2FsbG9jYXRvcl9yZWxvY19jcmVhdGUoaW50IGZk LCB1aW50NjRfdCBlbmQpOwogCiBzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yX3JlbG9jIHsKIAl1aW50 NjRfdCBiaWFzOwogCXVpbnQzMl90IHBybmc7Ci0JdWludDY0X3QgZ3R0X3NpemU7CiAJdWludDY0 X3Qgc3RhcnQ7CiAJdWludDY0X3QgZW5kOwogCXVpbnQ2NF90IG9mZnNldDsKQEAgLTI0LDEyICsy Myw3IEBAIHN0cnVjdCBpbnRlbF9hbGxvY2F0b3JfcmVsb2MgewogCXVpbnQ2NF90IGFsbG9jYXRl ZF9vYmplY3RzOwogfTsKIAotc3RhdGljIHVpbnQ2NF90IGdldF9iaWFzKGludCBmZCkKLXsKLQko dm9pZCkgZmQ7Ci0KLQlyZXR1cm4gMjU2IDw8IDEwOwotfQorI2RlZmluZSBCSUFTIDI1NiA8PCAx MAogCiBzdGF0aWMgdm9pZCBpbnRlbF9hbGxvY2F0b3JfcmVsb2NfZ2V0X2FkZHJlc3NfcmFuZ2Uo c3RydWN0IGludGVsX2FsbG9jYXRvciAqaWFsLAogCQkJCQkJICAgIHVpbnQ2NF90ICpzdGFydHAs CkBAIC0xNTIsOCArMTQ2LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfYWxsb2NhdG9yX3JlbG9jX2lz X2VtcHR5KHN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmlhbCkKIAlyZXR1cm4gIWlhbHItPmFsbG9j YXRlZF9vYmplY3RzOwogfQogCi0jZGVmaW5lIFJFU0VSVkVEIDQwOTYKLXN0cnVjdCBpbnRlbF9h bGxvY2F0b3IgKmludGVsX2FsbG9jYXRvcl9yZWxvY19jcmVhdGUoaW50IGZkKQorc3RydWN0IGlu dGVsX2FsbG9jYXRvciAqaW50ZWxfYWxsb2NhdG9yX3JlbG9jX2NyZWF0ZShpbnQgZmQsIHVpbnQ2 NF90IGVuZCkKIHsKIAlzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICppYWw7CiAJc3RydWN0IGludGVs X2FsbG9jYXRvcl9yZWxvYyAqaWFscjsKQEAgLTE3NywxNCArMTcwLDEwIEBAIHN0cnVjdCBpbnRl bF9hbGxvY2F0b3IgKmludGVsX2FsbG9jYXRvcl9yZWxvY19jcmVhdGUoaW50IGZkKQogCWlhbHIg PSBpYWwtPnByaXYgPSBjYWxsb2MoMSwgc2l6ZW9mKCppYWxyKSk7CiAJaWd0X2Fzc2VydChpYWwt PnByaXYpOwogCWlhbHItPnBybmcgPSAodWludDMyX3QpIHRvX3VzZXJfcG9pbnRlcihpYWwpOwot CWlhbHItPmd0dF9zaXplID0gZ2VtX2FwZXJ0dXJlX3NpemUoZmQpOwotCWlndF9kZWJ1ZygiR3R0 IHNpemU6ICUiIFBSSWQ2NCAiXG4iLCBpYWxyLT5ndHRfc2l6ZSk7Ci0JaWYgKCFnZW1fdXNlc19m dWxsX3BwZ3R0KGZkKSkKLQkJaWFsci0+Z3R0X3NpemUgLz0gMjsKIAotCWlhbHItPmJpYXMgPSBp YWxyLT5vZmZzZXQgPSBnZXRfYmlhcyhmZCk7CisJaWFsci0+YmlhcyA9IGlhbHItPm9mZnNldCA9 IEJJQVM7CiAJaWFsci0+c3RhcnQgPSBpYWxyLT5iaWFzOwotCWlhbHItPmVuZCA9IGlhbHItPmd0 dF9zaXplIC0gUkVTRVJWRUQ7CisJaWFsci0+ZW5kID0gZW5kOwogCiAJaWFsci0+YWxsb2NhdGVk X29iamVjdHMgPSAwOwogCmRpZmYgLS1naXQgYS9saWIvaW50ZWxfYWxsb2NhdG9yX3NpbXBsZS5j IGIvbGliL2ludGVsX2FsbG9jYXRvcl9zaW1wbGUuYwppbmRleCA5NjNkOGQyNTcuLjYwMjJlODMy YiAxMDA2NDQKLS0tIGEvbGliL2ludGVsX2FsbG9jYXRvcl9zaW1wbGUuYworKysgYi9saWIvaW50 ZWxfYWxsb2NhdG9yX3NpbXBsZS5jCkBAIC0xMSwxNyArMTEsMTEgQEAKICNpbmNsdWRlICJpbnRl bF9idWZvcHMuaCIKICNpbmNsdWRlICJpZ3RfbWFwLmgiCiAKLS8qCi0gKiBXZSBsaW1pdCBhbGxv Y2F0b3Igc3BhY2UgdG8gYXZvaWQgaGFuZyB3aGVuIGJhdGNoIHdvdWxkIGJlCi0gKiBwaW5uZWQg aW4gdGhlIGxhc3QgcGFnZS4KLSAqLwotI2RlZmluZSBSRVNFUlZFRCA0MDk2CiAKIC8qIEF2b2lk IGNvbXBpbGF0aW9uIHdhcm5pbmcgKi8KLXN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmludGVsX2Fs bG9jYXRvcl9zaW1wbGVfY3JlYXRlKGludCBmZCk7CiBzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICoK LWludGVsX2FsbG9jYXRvcl9zaW1wbGVfY3JlYXRlX2Z1bGwoaW50IGZkLCB1aW50NjRfdCBzdGFy dCwgdWludDY0X3QgZW5kLAotCQkJCSAgIGVudW0gYWxsb2NhdG9yX3N0cmF0ZWd5IHN0cmF0ZWd5 KTsKK2ludGVsX2FsbG9jYXRvcl9zaW1wbGVfY3JlYXRlKGludCBmZCwgdWludDY0X3Qgc3RhcnQs IHVpbnQ2NF90IGVuZCwKKwkJCSAgICAgIGVudW0gYWxsb2NhdG9yX3N0cmF0ZWd5IHN0cmF0ZWd5 KTsKIAogc3RydWN0IHNpbXBsZV92bWFfaGVhcCB7CiAJc3RydWN0IGlndF9saXN0X2hlYWQgaG9s ZXM7CkBAIC03MzQsOSArNzI4LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfYWxsb2NhdG9yX3NpbXBs ZV9wcmludChzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICppYWwsIGJvb2wgZnVsbCkKIAkJIGlhbHMt PmFsbG9jYXRlZF9vYmplY3RzLCBpYWxzLT5yZXNlcnZlZF9hcmVhcyk7CiB9CiAKLXN0YXRpYyBz dHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICoKLV9faW50ZWxfYWxsb2NhdG9yX3NpbXBsZV9jcmVhdGUo aW50IGZkLCB1aW50NjRfdCBzdGFydCwgdWludDY0X3QgZW5kLAotCQkJCWVudW0gYWxsb2NhdG9y X3N0cmF0ZWd5IHN0cmF0ZWd5KQorc3RydWN0IGludGVsX2FsbG9jYXRvciAqCitpbnRlbF9hbGxv Y2F0b3Jfc2ltcGxlX2NyZWF0ZShpbnQgZmQsIHVpbnQ2NF90IHN0YXJ0LCB1aW50NjRfdCBlbmQs CisJCQkgICAgICBlbnVtIGFsbG9jYXRvcl9zdHJhdGVneSBzdHJhdGVneSkKIHsKIAlzdHJ1Y3Qg aW50ZWxfYWxsb2NhdG9yICppYWw7CiAJc3RydWN0IGludGVsX2FsbG9jYXRvcl9zaW1wbGUgKmlh bHM7CkBAIC03NzcsMzEgKzc3MSwzIEBAIF9faW50ZWxfYWxsb2NhdG9yX3NpbXBsZV9jcmVhdGUo aW50IGZkLCB1aW50NjRfdCBzdGFydCwgdWludDY0X3QgZW5kLAogCiAJcmV0dXJuIGlhbDsKIH0K LQotc3RydWN0IGludGVsX2FsbG9jYXRvciAqCi1pbnRlbF9hbGxvY2F0b3Jfc2ltcGxlX2NyZWF0 ZShpbnQgZmQpCi17Ci0JdWludDY0X3QgZ3R0X3NpemUgPSBnZW1fYXBlcnR1cmVfc2l6ZShmZCk7 Ci0KLQlpZiAoIWdlbV91c2VzX2Z1bGxfcHBndHQoZmQpKQotCQlndHRfc2l6ZSAvPSAyOwotCWVs c2UKLQkJZ3R0X3NpemUgLT0gUkVTRVJWRUQ7Ci0KLQlyZXR1cm4gX19pbnRlbF9hbGxvY2F0b3Jf c2ltcGxlX2NyZWF0ZShmZCwgMCwgZ3R0X3NpemUsCi0JCQkJCSAgICAgICBBTExPQ19TVFJBVEVH WV9ISUdIX1RPX0xPVyk7Ci19Ci0KLXN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKgotaW50ZWxfYWxs b2NhdG9yX3NpbXBsZV9jcmVhdGVfZnVsbChpbnQgZmQsIHVpbnQ2NF90IHN0YXJ0LCB1aW50NjRf dCBlbmQsCi0JCQkJICAgZW51bSBhbGxvY2F0b3Jfc3RyYXRlZ3kgc3RyYXRlZ3kpCi17Ci0JdWlu dDY0X3QgZ3R0X3NpemUgPSBnZW1fYXBlcnR1cmVfc2l6ZShmZCk7Ci0KLQlpZ3RfYXNzZXJ0KGVu ZCA8PSBndHRfc2l6ZSk7Ci0JaWYgKCFnZW1fdXNlc19mdWxsX3BwZ3R0KGZkKSkKLQkJZ3R0X3Np emUgLz0gMjsKLQlpZ3RfYXNzZXJ0KGVuZCAtIHN0YXJ0IDw9IGd0dF9zaXplKTsKLQotCXJldHVy biBfX2ludGVsX2FsbG9jYXRvcl9zaW1wbGVfY3JlYXRlKGZkLCBzdGFydCwgZW5kLCBzdHJhdGVn eSk7Ci19Ci0tIAoyLjI1LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRl dgo=