From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7688E6E17C for ; Wed, 26 May 2021 15:43:33 +0000 (UTC) From: Andrzej Turko Date: Wed, 26 May 2021 17:43:11 +0200 Message-Id: <20210526154311.3591-2-andrzej.turko@linux.intel.com> In-Reply-To: <20210526154311.3591-1-andrzej.turko@linux.intel.com> References: <20210526154311.3591-1-andrzej.turko@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 1/1] 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: V2hlbiBydW5uaW5nIHRoZSBhbGxvY2F0b3IgaW4gbXVsdGlwcm9jZXNzIG1vZGUsIGFsbCBxdWVy aWVzCmFyZSBwcm9jZXNzZWQgaW4gYSBkZXNpZ25hdGVkIHRocmVhZCBpbiB0aGUgcGFyZW50IHBy b2Nlc3MuCkhvd2V2ZXIsIGEgY2hpbGQgcHJvY2VzcyBtYXkgcmVxdWVzdCBvcGVuaW5nIHRoZSBh bGxvY2F0b3IKZm9yIGEgZ3B1IHVzaW5nIGEgZmlsZSBkZXNjcmlwdG9yIGFic2VudCBpbiB0aGUg cGFyZW50IHByb2Nlc3MuCkhlbmNlLCBxdWVyeWluZyBhdmFpbGFibGUgZ3R0IHNpemUgbXVzdCBi ZSBkb25lIGluIHRoZSBjaGlsZAppbnN0ZWFkIG9mIHRoZSBwYXJlbnQgcHJvY2Vzcy4KClRoaXMg bW9kaWZpY2F0aW9uIGhhcyB0cmlnZ2VyZWQgc2xpZ2h0IGNoYW5nZXMgdG8gdGhlCmNyZWF0aW9u IG9mIHJhbmRvbSBhbmQgcmVsb2MgYWxsb2NhdG9ycy4KClNpZ25lZC1vZmYtYnk6IEFuZHJ6ZWog VHVya28gPGFuZHJ6ZWoudHVya29AbGludXguaW50ZWwuY29tPgpDYzogWmJpZ25pZXcgS2VtcGN6 ecWEc2tpIDx6Ymlnbmlldy5rZW1wY3p5bnNraUBpbnRlbC5jb20+Ci0tLQogbGliL2ludGVsX2Fs bG9jYXRvci5jICAgICAgICAgICAgfCA1MSArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LQogbGliL2ludGVsX2FsbG9jYXRvcl9yYW5kb20uYyAgICAgfCAyNyArKysrKysrLS0tLS0tLS0t LQogbGliL2ludGVsX2FsbG9jYXRvcl9yZWxvYy5jICAgICAgfCAyMCArKysrLS0tLS0tLS0tCiBs aWIvaW50ZWxfYWxsb2NhdG9yX3NpbXBsZS5jICAgICB8IDQ0ICsrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogdGVzdHMvaTkxNS9hcGlfaW50ZWxfYWxsb2NhdG9yLmMgfCA0NyArKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxMDQgaW5zZXJ0aW9ucygrKSwg ODUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2ludGVsX2FsbG9jYXRvci5jIGIvbGli L2ludGVsX2FsbG9jYXRvci5jCmluZGV4IDk2ZjgzOWQ0Yi4uNTMxM2FmMTc0IDEwMDY0NAotLS0g YS9saWIvaW50ZWxfYWxsb2NhdG9yLmMKKysrIGIvbGliL2ludGVsX2FsbG9jYXRvci5jCkBAIC00 NSw2ICs0NSwxMiBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKnJlcXN0cihlbnVtIHJlcXR5 cGUgcmVxdWVzdF90eXBlKQogI2RlZmluZSBhbGxvY19kZWJ1ZyguLi4pIHt9CiAjZW5kaWYKIAor LyoKKyAqIFdlIGxpbWl0IGFsbG9jYXRvciBzcGFjZSB0byBhdm9pZCBoYW5nIHdoZW4gYmF0Y2gg d291bGQgYmUKKyAqIHBpbm5lZCBpbiB0aGUgbGFzdCBwYWdlLgorICovCisjZGVmaW5lIFJFU0VS VkVEIDQwOTYKKwogc3RydWN0IGFsbG9jYXRvciB7CiAJaW50IGZkOwogCXVpbnQzMl90IGN0eDsK QEAgLTU4LDEyICs2NCwxMSBAQCBzdHJ1Y3QgaGFuZGxlX2VudHJ5IHsKIAlzdHJ1Y3QgYWxsb2Nh dG9yICphbDsKIH07CiAKLXN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmludGVsX2FsbG9jYXRvcl9y ZWxvY19jcmVhdGUoaW50IGZkKTsKLXN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmludGVsX2FsbG9j YXRvcl9yYW5kb21fY3JlYXRlKGludCBmZCk7Ci1zdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICppbnRl bF9hbGxvY2F0b3Jfc2ltcGxlX2NyZWF0ZShpbnQgZmQpOworc3RydWN0IGludGVsX2FsbG9jYXRv ciAqaW50ZWxfYWxsb2NhdG9yX3JlbG9jX2NyZWF0ZShpbnQgZmQsIHVpbnQ2NF90IGVuZCk7Citz dHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICppbnRlbF9hbGxvY2F0b3JfcmFuZG9tX2NyZWF0ZShpbnQg ZmQsIHVpbnQ2NF90IGVuZCk7CiBzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICoKLWludGVsX2FsbG9j YXRvcl9zaW1wbGVfY3JlYXRlX2Z1bGwoaW50IGZkLCB1aW50NjRfdCBzdGFydCwgdWludDY0X3Qg ZW5kLAotCQkJCSAgIGVudW0gYWxsb2NhdG9yX3N0cmF0ZWd5IHN0cmF0ZWd5KTsKK2ludGVsX2Fs bG9jYXRvcl9zaW1wbGVfY3JlYXRlKGludCBmZCwgdWludDY0X3Qgc3RhcnQsIHVpbnQ2NF90IGVu ZCwKKwkJCSAgICAgIGVudW0gYWxsb2NhdG9yX3N0cmF0ZWd5IHN0cmF0ZWd5KTsKIAogLyoKICAq IEluc3RlYWQgb2YgdHJ5aW5nIHRvIGZpbmQgZmlyc3QgZW1wdHkgaGFuZGxlIGp1c3QgZ2V0IG5l dyBvbmUuIEFzc3VtaW5nCkBAIC0yODYsMTcgKzI5MSwxNCBAQCBzdGF0aWMgc3RydWN0IGludGVs X2FsbG9jYXRvciAqaW50ZWxfYWxsb2NhdG9yX2NyZWF0ZShpbnQgZmQsCiAJCQkgICAgICJXZSBj YW5ub3QgdXNlIE5PTkUgYWxsb2NhdG9yXG4iKTsKIAkJYnJlYWs7CiAJY2FzZSBJTlRFTF9BTExP Q0FUT1JfUkVMT0M6Ci0JCWlhbCA9IGludGVsX2FsbG9jYXRvcl9yZWxvY19jcmVhdGUoZmQpOwor CQlpYWwgPSBpbnRlbF9hbGxvY2F0b3JfcmVsb2NfY3JlYXRlKGZkLCBlbmQpOwogCQlicmVhazsK IAljYXNlIElOVEVMX0FMTE9DQVRPUl9SQU5ET006Ci0JCWlhbCA9IGludGVsX2FsbG9jYXRvcl9y YW5kb21fY3JlYXRlKGZkKTsKKwkJaWFsID0gaW50ZWxfYWxsb2NhdG9yX3JhbmRvbV9jcmVhdGUo ZmQsIGVuZCk7CiAJCWJyZWFrOwogCWNhc2UgSU5URUxfQUxMT0NBVE9SX1NJTVBMRToKLQkJaWYg KCFzdGFydCAmJiAhZW5kKQotCQkJaWFsID0gaW50ZWxfYWxsb2NhdG9yX3NpbXBsZV9jcmVhdGUo ZmQpOwotCQllbHNlCi0JCQlpYWwgPSBpbnRlbF9hbGxvY2F0b3Jfc2ltcGxlX2NyZWF0ZV9mdWxs KGZkLCBzdGFydCwgZW5kLAotCQkJCQkJCQkgYWxsb2NhdG9yX3N0cmF0ZWd5KTsKKwkJaWFsID0g aW50ZWxfYWxsb2NhdG9yX3NpbXBsZV9jcmVhdGUoZmQsIHN0YXJ0LCBlbmQsCisJCQkJCQkgICAg YWxsb2NhdG9yX3N0cmF0ZWd5KTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJaWd0X2Fzc2VydF9m KGlhbCwgIkFsbG9jYXRvciB0eXBlICVkIG5vdCBpbXBsZW1lbnRlZFxuIiwKQEAgLTg3Nyw2ICs4 NzksMTMgQEAgc3RhdGljIHVpbnQ2NF90IF9faW50ZWxfYWxsb2NhdG9yX29wZW5fZnVsbChpbnQg ZmQsIHVpbnQzMl90IGN0eCwKIAkJCQkgLm9wZW4uYWxsb2NhdG9yX3R5cGUgPSBhbGxvY2F0b3Jf dHlwZSwKIAkJCQkgLm9wZW4uYWxsb2NhdG9yX3N0cmF0ZWd5ID0gc3RyYXRlZ3kgfTsKIAlzdHJ1 Y3QgYWxsb2NfcmVzcCByZXNwOworCXVpbnQ2NF90IGd0dF9zaXplID0gZ2VtX2FwZXJ0dXJlX3Np emUoZmQpOworCisJaWd0X2Fzc2VydChlbmQgPD0gZ3R0X3NpemUpOworCWlmICghZ2VtX3VzZXNf ZnVsbF9wcGd0dChmZCkpCisJCWd0dF9zaXplIC89IDI7CisJaWd0X2Fzc2VydChlbmQgLSBzdGFy dCA8PSBndHRfc2l6ZSk7CisKIAogCS8qIEdldCBjaGlsZF90aWQgb25seSBvbmNlIGF0IG9wZW4o KSAqLwogCWlmIChjaGlsZF90aWQgPT0gLTEpCkBAIC05NTQsMTMgKzk2MywyNyBAQCB1aW50NjRf dCBpbnRlbF9hbGxvY2F0b3Jfb3Blbl92bV9mdWxsKGludCBmZCwgdWludDMyX3Qgdm0sCiAgKi8K IHVpbnQ2NF90IGludGVsX2FsbG9jYXRvcl9vcGVuKGludCBmZCwgdWludDMyX3QgY3R4LCB1aW50 OF90IGFsbG9jYXRvcl90eXBlKQogewotCXJldHVybiBpbnRlbF9hbGxvY2F0b3Jfb3Blbl9mdWxs KGZkLCBjdHgsIDAsIDAsIGFsbG9jYXRvcl90eXBlLAorCXVpbnQ2NF90IGd0dF9zaXplID0gZ2Vt X2FwZXJ0dXJlX3NpemUoZmQpOworCisJaWYgKCFnZW1fdXNlc19mdWxsX3BwZ3R0KGZkKSkKKwkJ Z3R0X3NpemUgLz0gMjsKKwllbHNlCisJCWd0dF9zaXplIC09IFJFU0VSVkVEOworCisJcmV0dXJu IGludGVsX2FsbG9jYXRvcl9vcGVuX2Z1bGwoZmQsIGN0eCwgMCwgZ3R0X3NpemUsIGFsbG9jYXRv cl90eXBlLAogCQkJCQkgQUxMT0NfU1RSQVRFR1lfSElHSF9UT19MT1cpOwogfQogCiB1aW50NjRf dCBpbnRlbF9hbGxvY2F0b3Jfb3Blbl92bShpbnQgZmQsIHVpbnQzMl90IHZtLCB1aW50OF90IGFs bG9jYXRvcl90eXBlKQogewotCXJldHVybiBpbnRlbF9hbGxvY2F0b3Jfb3Blbl92bV9mdWxsKGZk LCB2bSwgMCwgMCwgYWxsb2NhdG9yX3R5cGUsCisJdWludDY0X3QgZ3R0X3NpemUgPSBnZW1fYXBl cnR1cmVfc2l6ZShmZCk7CisKKwlpZiAoIWdlbV91c2VzX2Z1bGxfcHBndHQoZmQpKQorCQlndHRf c2l6ZSAvPSAyOworCWVsc2UKKwkJZ3R0X3NpemUgLT0gUkVTRVJWRUQ7CisKKwlyZXR1cm4gaW50 ZWxfYWxsb2NhdG9yX29wZW5fdm1fZnVsbChmZCwgdm0sIDAsIGd0dF9zaXplLCBhbGxvY2F0b3Jf dHlwZSwKIAkJCQkJICAgIEFMTE9DX1NUUkFURUdZX0hJR0hfVE9fTE9XKTsKIH0KIApkaWZmIC0t Z2l0IGEvbGliL2ludGVsX2FsbG9jYXRvcl9yYW5kb20uYyBiL2xpYi9pbnRlbF9hbGxvY2F0b3Jf cmFuZG9tLmMKaW5kZXggM2Q5YTc4ZjE3Li45MDFhMzAxYTIgMTAwNjQ0Ci0tLSBhL2xpYi9pbnRl bF9hbGxvY2F0b3JfcmFuZG9tLmMKKysrIGIvbGliL2ludGVsX2FsbG9jYXRvcl9yYW5kb20uYwpA QCAtMTAsMTIgKzEwLDEyIEBACiAjaW5jbHVkZSAiaWd0X3JhbmQuaCIKICNpbmNsdWRlICJpbnRl bF9hbGxvY2F0b3IuaCIKIAotc3RydWN0IGludGVsX2FsbG9jYXRvciAqaW50ZWxfYWxsb2NhdG9y X3JhbmRvbV9jcmVhdGUoaW50IGZkKTsKK3N0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmludGVsX2Fs bG9jYXRvcl9yYW5kb21fY3JlYXRlKGludCBmZCwgdWludDY0X3QgZW5kKTsKIAogc3RydWN0IGlu dGVsX2FsbG9jYXRvcl9yYW5kb20gewogCXVpbnQ2NF90IGJpYXM7CiAJdWludDMyX3QgcHJuZzsK LQl1aW50NjRfdCBndHRfc2l6ZTsKKwl1aW50NjRfdCBhZGRyZXNzX21hc2s7CiAJdWludDY0X3Qg c3RhcnQ7CiAJdWludDY0X3QgZW5kOwogCkBAIC0yMywxMiArMjMsOCBAQCBzdHJ1Y3QgaW50ZWxf YWxsb2NhdG9yX3JhbmRvbSB7CiAJdWludDY0X3QgYWxsb2NhdGVkX29iamVjdHM7CiB9OwogCi1z dGF0aWMgdWludDY0X3QgZ2V0X2JpYXMoaW50IGZkKQotewotCSh2b2lkKSBmZDsKKyNkZWZpbmUg QklBUyAyNTYgPDwgMTA7CiAKLQlyZXR1cm4gMjU2IDw8IDEwOwotfQogCiBzdGF0aWMgdm9pZCBp bnRlbF9hbGxvY2F0b3JfcmFuZG9tX2dldF9hZGRyZXNzX3JhbmdlKHN0cnVjdCBpbnRlbF9hbGxv Y2F0b3IgKmlhbCwKIAkJCQkJCSAgICAgdWludDY0X3QgKnN0YXJ0cCwKQEAgLTU3LDggKzUzLDgg QEAgc3RhdGljIHVpbnQ2NF90IGludGVsX2FsbG9jYXRvcl9yYW5kb21fYWxsb2Moc3RydWN0IGlu dGVsX2FsbG9jYXRvciAqaWFsLAogCS8qIHJhbmRvbWl6ZSB0aGUgYWRkcmVzcywgd2UgdHJ5IHRv IGF2b2lkIHJlbG9jYXRpb25zICovCiAJZG8gewogCQlvZmZzZXQgPSBoYXJzX3BldHJ1c2thX2Y1 NF8xX3JhbmRvbTY0KCZpYWxyLT5wcm5nKTsKLQkJb2Zmc2V0ICs9IGlhbHItPmJpYXM7IC8qIEtl ZXAgdGhlIGxvdyAyNTZrIGNsZWFyLCBmb3IgbmVnYXRpdmUgZGVsdGFzICovCi0JCW9mZnNldCAm PSBpYWxyLT5ndHRfc2l6ZSAtIDE7CisJCW9mZnNldCB8PSBpYWxyLT5iaWFzOyAvKiBLZWVwIHRo ZSBsb3cgMjU2ayBjbGVhciwgZm9yIG5lZ2F0aXZlIGRlbHRhcyAqLworCQlvZmZzZXQgJj0gaWFs ci0+YWRkcmVzc19tYXNrOwogCQlvZmZzZXQgJj0gfihhbGlnbm1lbnQgLSAxKTsKIAl9IHdoaWxl IChvZmZzZXQgKyBzaXplID4gaWFsci0+ZW5kKTsKIApAQCAtMTUwLDggKzE0Niw3IEBAIHN0YXRp YyBib29sIGludGVsX2FsbG9jYXRvcl9yYW5kb21faXNfZW1wdHkoc3RydWN0IGludGVsX2FsbG9j YXRvciAqaWFsKQogCXJldHVybiAhaWFsci0+YWxsb2NhdGVkX29iamVjdHM7CiB9CiAKLSNkZWZp bmUgUkVTRVJWRUQgNDA5Ngotc3RydWN0IGludGVsX2FsbG9jYXRvciAqaW50ZWxfYWxsb2NhdG9y X3JhbmRvbV9jcmVhdGUoaW50IGZkKQorc3RydWN0IGludGVsX2FsbG9jYXRvciAqaW50ZWxfYWxs b2NhdG9yX3JhbmRvbV9jcmVhdGUoaW50IGZkLCB1aW50NjRfdCBlbmQpCiB7CiAJc3RydWN0IGlu dGVsX2FsbG9jYXRvciAqaWFsOwogCXN0cnVjdCBpbnRlbF9hbGxvY2F0b3JfcmFuZG9tICppYWxy OwpAQCAtMTc1LDE0ICsxNzAsMTIgQEAgc3RydWN0IGludGVsX2FsbG9jYXRvciAqaW50ZWxfYWxs b2NhdG9yX3JhbmRvbV9jcmVhdGUoaW50IGZkKQogCWlhbHIgPSBpYWwtPnByaXYgPSBjYWxsb2Mo MSwgc2l6ZW9mKCppYWxyKSk7CiAJaWd0X2Fzc2VydChpYWwtPnByaXYpOwogCWlhbHItPnBybmcg PSAodWludDMyX3QpIHRvX3VzZXJfcG9pbnRlcihpYWwpOwotCWlhbHItPmd0dF9zaXplID0gZ2Vt X2FwZXJ0dXJlX3NpemUoZmQpOwotCWlndF9kZWJ1ZygiR3R0IHNpemU6ICUiIFBSSWQ2NCAiXG4i LCBpYWxyLT5ndHRfc2l6ZSk7Ci0JaWYgKCFnZW1fdXNlc19mdWxsX3BwZ3R0KGZkKSkKLQkJaWFs ci0+Z3R0X3NpemUgLz0gMjsKKwlpZ3RfYXNzZXJ0KGVuZCA+IDApOworCWlhbHItPmFkZHJlc3Nf bWFzayA9ICgxVUxMIDw8IChpZ3RfZmxzKGVuZCkgLSAxKSkgLSAxOwogCi0JaWFsci0+YmlhcyA9 IGdldF9iaWFzKGZkKTsKKwlpYWxyLT5iaWFzID0gQklBUzsKIAlpYWxyLT5zdGFydCA9IGlhbHIt PmJpYXM7Ci0JaWFsci0+ZW5kID0gaWFsci0+Z3R0X3NpemUgLSBSRVNFUlZFRDsKKwlpYWxyLT5l bmQgPSBlbmQ7CiAKIAlpYWxyLT5hbGxvY2F0ZWRfb2JqZWN0cyA9IDA7CiAKZGlmZiAtLWdpdCBh L2xpYi9pbnRlbF9hbGxvY2F0b3JfcmVsb2MuYyBiL2xpYi9pbnRlbF9hbGxvY2F0b3JfcmVsb2Mu YwppbmRleCBlOGFmNzg3YjAuLmU4NTYxMzJhNyAxMDA2NDQKLS0tIGEvbGliL2ludGVsX2FsbG9j YXRvcl9yZWxvYy5jCisrKyBiL2xpYi9pbnRlbF9hbGxvY2F0b3JfcmVsb2MuYwpAQCAtMTAsMTIg KzEwLDExIEBACiAjaW5jbHVkZSAiaWd0X3JhbmQuaCIKICNpbmNsdWRlICJpbnRlbF9hbGxvY2F0 b3IuaCIKIAotc3RydWN0IGludGVsX2FsbG9jYXRvciAqaW50ZWxfYWxsb2NhdG9yX3JlbG9jX2Ny ZWF0ZShpbnQgZmQpOworc3RydWN0IGludGVsX2FsbG9jYXRvciAqaW50ZWxfYWxsb2NhdG9yX3Jl bG9jX2NyZWF0ZShpbnQgZmQsIHVpbnQ2NF90IGVuZCk7CiAKIHN0cnVjdCBpbnRlbF9hbGxvY2F0 b3JfcmVsb2MgewogCXVpbnQ2NF90IGJpYXM7CiAJdWludDMyX3QgcHJuZzsKLQl1aW50NjRfdCBn dHRfc2l6ZTsKIAl1aW50NjRfdCBzdGFydDsKIAl1aW50NjRfdCBlbmQ7CiAJdWludDY0X3Qgb2Zm c2V0OwpAQCAtMjQsMTIgKzIzLDggQEAgc3RydWN0IGludGVsX2FsbG9jYXRvcl9yZWxvYyB7CiAJ dWludDY0X3QgYWxsb2NhdGVkX29iamVjdHM7CiB9OwogCi1zdGF0aWMgdWludDY0X3QgZ2V0X2Jp YXMoaW50IGZkKQotewotCSh2b2lkKSBmZDsKKyNkZWZpbmUgQklBUyAyNTYgPDwgMTA7CiAKLQly ZXR1cm4gMjU2IDw8IDEwOwotfQogCiBzdGF0aWMgdm9pZCBpbnRlbF9hbGxvY2F0b3JfcmVsb2Nf Z2V0X2FkZHJlc3NfcmFuZ2Uoc3RydWN0IGludGVsX2FsbG9jYXRvciAqaWFsLAogCQkJCQkJICAg IHVpbnQ2NF90ICpzdGFydHAsCkBAIC0xNTIsOCArMTQ3LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxf YWxsb2NhdG9yX3JlbG9jX2lzX2VtcHR5KHN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmlhbCkKIAly ZXR1cm4gIWlhbHItPmFsbG9jYXRlZF9vYmplY3RzOwogfQogCi0jZGVmaW5lIFJFU0VSVkVEIDQw OTYKLXN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmludGVsX2FsbG9jYXRvcl9yZWxvY19jcmVhdGUo aW50IGZkKQorc3RydWN0IGludGVsX2FsbG9jYXRvciAqaW50ZWxfYWxsb2NhdG9yX3JlbG9jX2Ny ZWF0ZShpbnQgZmQsIHVpbnQ2NF90IGVuZCkKIHsKIAlzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICpp YWw7CiAJc3RydWN0IGludGVsX2FsbG9jYXRvcl9yZWxvYyAqaWFscjsKQEAgLTE3NywxNCArMTcx LDEwIEBAIHN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmludGVsX2FsbG9jYXRvcl9yZWxvY19jcmVh dGUoaW50IGZkKQogCWlhbHIgPSBpYWwtPnByaXYgPSBjYWxsb2MoMSwgc2l6ZW9mKCppYWxyKSk7 CiAJaWd0X2Fzc2VydChpYWwtPnByaXYpOwogCWlhbHItPnBybmcgPSAodWludDMyX3QpIHRvX3Vz ZXJfcG9pbnRlcihpYWwpOwotCWlhbHItPmd0dF9zaXplID0gZ2VtX2FwZXJ0dXJlX3NpemUoZmQp OwotCWlndF9kZWJ1ZygiR3R0IHNpemU6ICUiIFBSSWQ2NCAiXG4iLCBpYWxyLT5ndHRfc2l6ZSk7 Ci0JaWYgKCFnZW1fdXNlc19mdWxsX3BwZ3R0KGZkKSkKLQkJaWFsci0+Z3R0X3NpemUgLz0gMjsK IAotCWlhbHItPmJpYXMgPSBpYWxyLT5vZmZzZXQgPSBnZXRfYmlhcyhmZCk7CisJaWFsci0+Ymlh cyA9IGlhbHItPm9mZnNldCA9IEJJQVM7CiAJaWFsci0+c3RhcnQgPSBpYWxyLT5iaWFzOwotCWlh bHItPmVuZCA9IGlhbHItPmd0dF9zaXplIC0gUkVTRVJWRUQ7CisJaWFsci0+ZW5kID0gZW5kOwog CiAJaWFsci0+YWxsb2NhdGVkX29iamVjdHMgPSAwOwogCmRpZmYgLS1naXQgYS9saWIvaW50ZWxf YWxsb2NhdG9yX3NpbXBsZS5jIGIvbGliL2ludGVsX2FsbG9jYXRvcl9zaW1wbGUuYwppbmRleCA5 NjNkOGQyNTcuLjYwMjJlODMyYiAxMDA2NDQKLS0tIGEvbGliL2ludGVsX2FsbG9jYXRvcl9zaW1w bGUuYworKysgYi9saWIvaW50ZWxfYWxsb2NhdG9yX3NpbXBsZS5jCkBAIC0xMSwxNyArMTEsMTEg QEAKICNpbmNsdWRlICJpbnRlbF9idWZvcHMuaCIKICNpbmNsdWRlICJpZ3RfbWFwLmgiCiAKLS8q Ci0gKiBXZSBsaW1pdCBhbGxvY2F0b3Igc3BhY2UgdG8gYXZvaWQgaGFuZyB3aGVuIGJhdGNoIHdv dWxkIGJlCi0gKiBwaW5uZWQgaW4gdGhlIGxhc3QgcGFnZS4KLSAqLwotI2RlZmluZSBSRVNFUlZF RCA0MDk2CiAKIC8qIEF2b2lkIGNvbXBpbGF0aW9uIHdhcm5pbmcgKi8KLXN0cnVjdCBpbnRlbF9h bGxvY2F0b3IgKmludGVsX2FsbG9jYXRvcl9zaW1wbGVfY3JlYXRlKGludCBmZCk7CiBzdHJ1Y3Qg aW50ZWxfYWxsb2NhdG9yICoKLWludGVsX2FsbG9jYXRvcl9zaW1wbGVfY3JlYXRlX2Z1bGwoaW50 IGZkLCB1aW50NjRfdCBzdGFydCwgdWludDY0X3QgZW5kLAotCQkJCSAgIGVudW0gYWxsb2NhdG9y X3N0cmF0ZWd5IHN0cmF0ZWd5KTsKK2ludGVsX2FsbG9jYXRvcl9zaW1wbGVfY3JlYXRlKGludCBm ZCwgdWludDY0X3Qgc3RhcnQsIHVpbnQ2NF90IGVuZCwKKwkJCSAgICAgIGVudW0gYWxsb2NhdG9y X3N0cmF0ZWd5IHN0cmF0ZWd5KTsKIAogc3RydWN0IHNpbXBsZV92bWFfaGVhcCB7CiAJc3RydWN0 IGlndF9saXN0X2hlYWQgaG9sZXM7CkBAIC03MzQsOSArNzI4LDkgQEAgc3RhdGljIHZvaWQgaW50 ZWxfYWxsb2NhdG9yX3NpbXBsZV9wcmludChzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICppYWwsIGJv b2wgZnVsbCkKIAkJIGlhbHMtPmFsbG9jYXRlZF9vYmplY3RzLCBpYWxzLT5yZXNlcnZlZF9hcmVh cyk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICoKLV9faW50ZWxfYWxsb2Nh dG9yX3NpbXBsZV9jcmVhdGUoaW50IGZkLCB1aW50NjRfdCBzdGFydCwgdWludDY0X3QgZW5kLAot CQkJCWVudW0gYWxsb2NhdG9yX3N0cmF0ZWd5IHN0cmF0ZWd5KQorc3RydWN0IGludGVsX2FsbG9j YXRvciAqCitpbnRlbF9hbGxvY2F0b3Jfc2ltcGxlX2NyZWF0ZShpbnQgZmQsIHVpbnQ2NF90IHN0 YXJ0LCB1aW50NjRfdCBlbmQsCisJCQkgICAgICBlbnVtIGFsbG9jYXRvcl9zdHJhdGVneSBzdHJh dGVneSkKIHsKIAlzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICppYWw7CiAJc3RydWN0IGludGVsX2Fs bG9jYXRvcl9zaW1wbGUgKmlhbHM7CkBAIC03NzcsMzEgKzc3MSwzIEBAIF9faW50ZWxfYWxsb2Nh dG9yX3NpbXBsZV9jcmVhdGUoaW50IGZkLCB1aW50NjRfdCBzdGFydCwgdWludDY0X3QgZW5kLAog CiAJcmV0dXJuIGlhbDsKIH0KLQotc3RydWN0IGludGVsX2FsbG9jYXRvciAqCi1pbnRlbF9hbGxv Y2F0b3Jfc2ltcGxlX2NyZWF0ZShpbnQgZmQpCi17Ci0JdWludDY0X3QgZ3R0X3NpemUgPSBnZW1f YXBlcnR1cmVfc2l6ZShmZCk7Ci0KLQlpZiAoIWdlbV91c2VzX2Z1bGxfcHBndHQoZmQpKQotCQln dHRfc2l6ZSAvPSAyOwotCWVsc2UKLQkJZ3R0X3NpemUgLT0gUkVTRVJWRUQ7Ci0KLQlyZXR1cm4g X19pbnRlbF9hbGxvY2F0b3Jfc2ltcGxlX2NyZWF0ZShmZCwgMCwgZ3R0X3NpemUsCi0JCQkJCSAg ICAgICBBTExPQ19TVFJBVEVHWV9ISUdIX1RPX0xPVyk7Ci19Ci0KLXN0cnVjdCBpbnRlbF9hbGxv Y2F0b3IgKgotaW50ZWxfYWxsb2NhdG9yX3NpbXBsZV9jcmVhdGVfZnVsbChpbnQgZmQsIHVpbnQ2 NF90IHN0YXJ0LCB1aW50NjRfdCBlbmQsCi0JCQkJICAgZW51bSBhbGxvY2F0b3Jfc3RyYXRlZ3kg c3RyYXRlZ3kpCi17Ci0JdWludDY0X3QgZ3R0X3NpemUgPSBnZW1fYXBlcnR1cmVfc2l6ZShmZCk7 Ci0KLQlpZ3RfYXNzZXJ0KGVuZCA8PSBndHRfc2l6ZSk7Ci0JaWYgKCFnZW1fdXNlc19mdWxsX3Bw Z3R0KGZkKSkKLQkJZ3R0X3NpemUgLz0gMjsKLQlpZ3RfYXNzZXJ0KGVuZCAtIHN0YXJ0IDw9IGd0 dF9zaXplKTsKLQotCXJldHVybiBfX2ludGVsX2FsbG9jYXRvcl9zaW1wbGVfY3JlYXRlKGZkLCBz dGFydCwgZW5kLCBzdHJhdGVneSk7Ci19CmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2FwaV9pbnRl bF9hbGxvY2F0b3IuYyBiL3Rlc3RzL2k5MTUvYXBpX2ludGVsX2FsbG9jYXRvci5jCmluZGV4IDE4 MmQ5YmE3OS4uYjRmNzc5OWU3IDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2FwaV9pbnRlbF9hbGxv Y2F0b3IuYworKysgYi90ZXN0cy9pOTE1L2FwaV9pbnRlbF9hbGxvY2F0b3IuYwpAQCAtNjIwLDYg KzYyMCw1MCBAQCBzdGF0aWMgdm9pZCBleGVjYnVmX3dpdGhfYWxsb2NhdG9yKGludCBmZCkKIAlp Z3RfYXNzZXJ0KGludGVsX2FsbG9jYXRvcl9jbG9zZShhaG5kKSA9PSB0cnVlKTsKIH0KIAorc3Rh dGljIHZvaWQgbXVsdGlwcm9jZXNzKGludCBmZCwgdWludDhfdCB0eXBlKSB7CisJdWludDY0X3Qg cF9haG5kLCBzaF9haG5kLCBmZF9haG5kLCBjdHhfYWhuZDsKKwl1aW50NjRfdCBzaF9sZWZ0LCBz aF9yaWdodCwgZmRfbGVmdCwgZmRfcmlnaHQ7CisJdWludDY0X3Qgb2Zmc2V0OworCisJaW50ZWxf YWxsb2NhdG9yX211bHRpcHJvY2Vzc19zdGFydCgpOworCisJcF9haG5kID0gaW50ZWxfYWxsb2Nh dG9yX29wZW4oZmQsIDAsIHR5cGUpOworCW9mZnNldCA9IGludGVsX2FsbG9jYXRvcl9hbGxvYyhw X2FobmQsIDEsIDEyMywgMCk7CisJaWYgKHR5cGUgPT0gSU5URUxfQUxMT0NBVE9SX1NJTVBMRSkK KwkJaWd0X2Fzc2VydChpbnRlbF9hbGxvY2F0b3JfaXNfYWxsb2NhdGVkKHBfYWhuZCwgMSwgMTIz LCBvZmZzZXQpKTsKKworCWlndF9mb3JrKGNoaWxkLCAxKSB7CisKKwkJc2hfYWhuZCA9IGludGVs X2FsbG9jYXRvcl9vcGVuKGZkLCAwLCB0eXBlKTsKKwkJaWYgKHR5cGUgPT0gSU5URUxfQUxMT0NB VE9SX1NJTVBMRSkKKwkJCWlndF9hc3NlcnQoaW50ZWxfYWxsb2NhdG9yX2lzX2FsbG9jYXRlZChz aF9haG5kLCAxLCAxMjMsIG9mZnNldCkpOworCisJCWN0eF9haG5kID0gaW50ZWxfYWxsb2NhdG9y X29wZW4oZmQsIDEsIHR5cGUpOworCQlpZ3RfYXNzZXJ0KCFpbnRlbF9hbGxvY2F0b3JfaXNfYWxs b2NhdGVkKGN0eF9haG5kLCAxLCAxMjMsIG9mZnNldCkpOworCQlpbnRlbF9hbGxvY2F0b3JfYWxs b2MoY3R4X2FobmQsIDIsIDEyMywgMCk7CisKKwkJZmQgPSBnZW1fcmVvcGVuX2RyaXZlcihmZCk7 CisJCWZkX2FobmQgPSBpbnRlbF9hbGxvY2F0b3Jfb3BlbihmZCwgMCwgdHlwZSk7CisJCWlndF9h c3NlcnQoIWludGVsX2FsbG9jYXRvcl9pc19hbGxvY2F0ZWQoZmRfYWhuZCwgMSwgMTIzLCBvZmZz ZXQpKTsKKwkJaW50ZWxfYWxsb2NhdG9yX2FsbG9jKGZkX2FobmQsIDIsIDEyMywgMCk7CisKKwor CQlpbnRlbF9hbGxvY2F0b3JfZ2V0X2FkZHJlc3NfcmFuZ2Uoc2hfYWhuZCwgJnNoX2xlZnQsICZz aF9yaWdodCk7CisJCWludGVsX2FsbG9jYXRvcl9nZXRfYWRkcmVzc19yYW5nZShmZF9haG5kLCAm ZmRfbGVmdCwgJmZkX3JpZ2h0KTsKKwkJaWd0X2Fzc2VydChzaF9sZWZ0ID09IGZkX2xlZnQgJiYg c2hfcmlnaHQgPT0gZmRfcmlnaHQpOworCisJCWludGVsX2FsbG9jYXRvcl9jbG9zZShzaF9haG5k KTsKKwkJaW50ZWxfYWxsb2NhdG9yX2Nsb3NlKGN0eF9haG5kKTsKKwkJaW50ZWxfYWxsb2NhdG9y X2Nsb3NlKGZkX2FobmQpOworCisJfQorCisJaWd0X3dhaXRjaGlsZHJlbigpOworCWludGVsX2Fs bG9jYXRvcl9jbG9zZShwX2FobmQpOworCisJaW50ZWxfYWxsb2NhdG9yX211bHRpcHJvY2Vzc19z dG9wKCk7Cit9CisKIHN0cnVjdCBhbGxvY2F0b3JzIHsKIAljb25zdCBjaGFyICpuYW1lOwogCXVp bnQ4X3QgdHlwZTsKQEAgLTY3MSw2ICs3MTUsOSBAQCBpZ3RfbWFpbgogCQkJCWlndF9keW5hbWlj KCJyZXNlcnZlIikKIAkJCQkJcmVzZXJ2ZShmZCwgYS0+dHlwZSk7CiAJCQl9CisKKwkJCWlndF9k eW5hbWljKCJtdWx0aXByb2Nlc3MiKQorCQkJCQltdWx0aXByb2Nlc3MoZmQsIGEtPnR5cGUpOwog CQl9CiAJfQogCi0tIAoyLjI1LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0 LWRldgo=