From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Subject: [PATCH libdrm] amdgpu: add a faster BO list API Date: Mon, 7 Jan 2019 14:31:04 -0500 Message-ID: <20190107193104.4361-1-maraeo@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org RnJvbTogTWFyZWsgT2zFocOhayA8bWFyZWsub2xzYWtAYW1kLmNvbT4KCi0tLQogYW1kZ3B1L2Ft ZGdwdS1zeW1ib2wtY2hlY2sgfCAgMyArKwogYW1kZ3B1L2FtZGdwdS5oICAgICAgICAgICAgfCA1 NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogYW1kZ3B1L2FtZGdwdV9i by5jICAgICAgICAgfCAzNiArKysrKysrKysrKysrKysrKysrKysrKysKIGFtZGdwdS9hbWRncHVf Y3MuYyAgICAgICAgIHwgMjUgKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTE5 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9hbWRncHUvYW1kZ3B1 LXN5bWJvbC1jaGVjayBiL2FtZGdwdS9hbWRncHUtc3ltYm9sLWNoZWNrCmluZGV4IDZmNWUwZjk1 Li45NmE0NGI0MCAxMDA3NTUKLS0tIGEvYW1kZ3B1L2FtZGdwdS1zeW1ib2wtY2hlY2sKKysrIGIv YW1kZ3B1L2FtZGdwdS1zeW1ib2wtY2hlY2sKQEAgLTEyLDIwICsxMiwyMiBAQCBfZWRhdGEKIF9l bmQKIF9maW5pCiBfaW5pdAogYW1kZ3B1X2JvX2FsbG9jCiBhbWRncHVfYm9fY3B1X21hcAogYW1k Z3B1X2JvX2NwdV91bm1hcAogYW1kZ3B1X2JvX2V4cG9ydAogYW1kZ3B1X2JvX2ZyZWUKIGFtZGdw dV9ib19pbXBvcnQKIGFtZGdwdV9ib19pbmNfcmVmCithbWRncHVfYm9fbGlzdF9jcmVhdGVfcmF3 CithbWRncHVfYm9fbGlzdF9kZXN0cm95X3JhdwogYW1kZ3B1X2JvX2xpc3RfY3JlYXRlCiBhbWRn cHVfYm9fbGlzdF9kZXN0cm95CiBhbWRncHVfYm9fbGlzdF91cGRhdGUKIGFtZGdwdV9ib19xdWVy eV9pbmZvCiBhbWRncHVfYm9fc2V0X21ldGFkYXRhCiBhbWRncHVfYm9fdmFfb3AKIGFtZGdwdV9i b192YV9vcF9yYXcKIGFtZGdwdV9ib193YWl0X2Zvcl9pZGxlCiBhbWRncHVfY3JlYXRlX2JvX2Zy b21fdXNlcl9tZW0KIGFtZGdwdV9jc19jaHVua19mZW5jZV9pbmZvX3RvX2RhdGEKQEAgLTQwLDIw ICs0MiwyMSBAQCBhbWRncHVfY3NfZGVzdHJveV9zZW1hcGhvcmUKIGFtZGdwdV9jc19kZXN0cm95 X3N5bmNvYmoKIGFtZGdwdV9jc19leHBvcnRfc3luY29iagogYW1kZ3B1X2NzX2ZlbmNlX3RvX2hh bmRsZQogYW1kZ3B1X2NzX2ltcG9ydF9zeW5jb2JqCiBhbWRncHVfY3NfcXVlcnlfZmVuY2Vfc3Rh dHVzCiBhbWRncHVfY3NfcXVlcnlfcmVzZXRfc3RhdGUKIGFtZGdwdV9xdWVyeV9zd19pbmZvCiBh bWRncHVfY3Nfc2lnbmFsX3NlbWFwaG9yZQogYW1kZ3B1X2NzX3N1Ym1pdAogYW1kZ3B1X2NzX3N1 Ym1pdF9yYXcKK2FtZGdwdV9jc19zdWJtaXRfcmF3MgogYW1kZ3B1X2NzX3N5bmNvYmpfZXhwb3J0 X3N5bmNfZmlsZQogYW1kZ3B1X2NzX3N5bmNvYmpfaW1wb3J0X3N5bmNfZmlsZQogYW1kZ3B1X2Nz X3N5bmNvYmpfcmVzZXQKIGFtZGdwdV9jc19zeW5jb2JqX3NpZ25hbAogYW1kZ3B1X2NzX3N5bmNv Ympfd2FpdAogYW1kZ3B1X2NzX3dhaXRfZmVuY2VzCiBhbWRncHVfY3Nfd2FpdF9zZW1hcGhvcmUK IGFtZGdwdV9kZXZpY2VfZGVpbml0aWFsaXplCiBhbWRncHVfZGV2aWNlX2luaXRpYWxpemUKIGFt ZGdwdV9maW5kX2JvX2J5X2NwdV9tYXBwaW5nCmRpZmYgLS1naXQgYS9hbWRncHUvYW1kZ3B1Lmgg Yi9hbWRncHUvYW1kZ3B1LmgKaW5kZXggZGM1MTY1OWEuLjViODAwMDMzIDEwMDY0NAotLS0gYS9h bWRncHUvYW1kZ3B1LmgKKysrIGIvYW1kZ3B1L2FtZGdwdS5oCkBAIC0zNSwyMCArMzUsMjEgQEAK ICNkZWZpbmUgX0FNREdQVV9IXwogCiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAjaW5jbHVkZSA8c3Rk Ym9vbC5oPgogCiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKIHN0 cnVjdCBkcm1fYW1kZ3B1X2luZm9faHdfaXA7CitzdHJ1Y3QgZHJtX2FtZGdwdV9ib19saXN0X2Vu dHJ5OwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSBEZWZpbmVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogLyot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSovCiAKIC8qKgogICogRGVmaW5lIG1heC4gbnVtYmVyIG9mIENvbW1h bmQgQnVmZmVycyAoSUIpIHdoaWNoIGNvdWxkIGJlIHNlbnQgdG8gdGhlIHNpbmdsZQogICogaGFy ZHdhcmUgSVAgdG8gYWNjb21tb2RhdGUgQ0UvREUgcmVxdWlyZW1lbnRzCiAgKgogICogXHNhIGFt ZGdwdV9jc19pYl9pbmZvCkBAIC03NjcsMzQgKzc2OCw2NSBAQCBpbnQgYW1kZ3B1X2JvX2NwdV91 bm1hcChhbWRncHVfYm9faGFuZGxlIGJ1Zl9oYW5kbGUpOwogICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgYW5kIG5vIEdQVSBhY2Nlc3MgaXMgc2NoZWR1bGVkLgogICogICAgICAgICAgICAg ICAgICAgICAgICAgIDEgR1BVIGFjY2VzcyBpcyBpbiBmbHkgb3Igc2NoZWR1bGVkCiAgKgogICog XHJldHVybiAgIDAgLSBvbiBzdWNjZXNzCiAgKiAgICAgICAgICA8MCAtIE5lZ2F0aXZlIFBPU0lY IEVycm9yIGNvZGUKICAqLwogaW50IGFtZGdwdV9ib193YWl0X2Zvcl9pZGxlKGFtZGdwdV9ib19o YW5kbGUgYnVmX2hhbmRsZSwKIAkJCSAgICB1aW50NjRfdCB0aW1lb3V0X25zLAogCQkJICAgIGJv b2wgKmJ1ZmZlcl9idXN5KTsKIAorLyoqCisgKiBDcmVhdGVzIGEgQk8gbGlzdCBoYW5kbGUgZm9y IGNvbW1hbmQgc3VibWlzc2lvbi4KKyAqCisgKiBccGFyYW0gICBkZXYJCQktIFxjIFtpbl0gRGV2 aWNlIGhhbmRsZS4KKyAqCQkJCSAgIFNlZSAjYW1kZ3B1X2RldmljZV9pbml0aWFsaXplKCkKKyAq IFxwYXJhbSAgIG51bWJlcl9vZl9idWZmZXJzCS0gXGMgW2luXSBOdW1iZXIgb2YgQk9zIGluIHRo ZSBsaXN0CisgKiBccGFyYW0gICBidWZmZXJzCQktIFxjIFtpbl0gTGlzdCBvZiBCTyBoYW5kbGVz CisgKiBccGFyYW0gICByZXN1bHQJCS0gXGMgW291dF0gQ3JlYXRlZCBCTyBsaXN0IGhhbmRsZQor ICoKKyAqIFxyZXR1cm4gICAwIG9uIHN1Y2Nlc3NcbgorICogICAgICAgICAgPDAgLSBOZWdhdGl2 ZSBQT1NJWCBFcnJvciBjb2RlCisgKgorICogXHNhIGFtZGdwdV9ib19saXN0X2Rlc3Ryb3lfcmF3 KCkKKyovCitpbnQgYW1kZ3B1X2JvX2xpc3RfY3JlYXRlX3JhdyhhbWRncHVfZGV2aWNlX2hhbmRs ZSBkZXYsCisJCQkgICAgICB1aW50MzJfdCBudW1iZXJfb2ZfYnVmZmVycywKKwkJCSAgICAgIHN0 cnVjdCBkcm1fYW1kZ3B1X2JvX2xpc3RfZW50cnkgKmJ1ZmZlcnMsCisJCQkgICAgICB1aW50MzJf dCAqcmVzdWx0KTsKKworLyoqCisgKiBEZXN0cm95cyBhIEJPIGxpc3QgaGFuZGxlLgorICoKKyAq IFxwYXJhbSAgIGJvX2xpc3QJLSBcYyBbaW5dIEJPIGxpc3QgaGFuZGxlLgorICoKKyAqIFxyZXR1 cm4gICAwIG9uIHN1Y2Nlc3NcbgorICogICAgICAgICAgPDAgLSBOZWdhdGl2ZSBQT1NJWCBFcnJv ciBjb2RlCisgKgorICogXHNhIGFtZGdwdV9ib19saXN0X2NyZWF0ZV9yYXcoKSwgYW1kZ3B1X2Nz X3N1Ym1pdF9yYXcyKCkKKyovCitpbnQgYW1kZ3B1X2JvX2xpc3RfZGVzdHJveV9yYXcoYW1kZ3B1 X2RldmljZV9oYW5kbGUgZGV2LCB1aW50MzJfdCBib19saXN0KTsKKwogLyoqCiAgKiBDcmVhdGVz IGEgQk8gbGlzdCBoYW5kbGUgZm9yIGNvbW1hbmQgc3VibWlzc2lvbi4KICAqCiAgKiBccGFyYW0g ICBkZXYJCQktIFxjIFtpbl0gRGV2aWNlIGhhbmRsZS4KICAqCQkJCSAgIFNlZSAjYW1kZ3B1X2Rl dmljZV9pbml0aWFsaXplKCkKICAqIFxwYXJhbSAgIG51bWJlcl9vZl9yZXNvdXJjZXMJLSBcYyBb aW5dIE51bWJlciBvZiBCT3MgaW4gdGhlIGxpc3QKICAqIFxwYXJhbSAgIHJlc291cmNlcwkJLSBc YyBbaW5dIExpc3Qgb2YgQk8gaGFuZGxlcwogICogXHBhcmFtICAgcmVzb3VyY2VfcHJpb3MJLSBc YyBbaW5dIE9wdGlvbmFsIHByaW9yaXR5IGZvciBlYWNoIGhhbmRsZQogICogXHBhcmFtICAgcmVz dWx0CQktIFxjIFtvdXRdIENyZWF0ZWQgQk8gbGlzdCBoYW5kbGUKICAqCiAgKiBccmV0dXJuICAg MCBvbiBzdWNjZXNzXG4KICAqICAgICAgICAgIDwwIC0gTmVnYXRpdmUgUE9TSVggRXJyb3IgY29k ZQogICoKLSAqIFxzYSBhbWRncHVfYm9fbGlzdF9kZXN0cm95KCkKKyAqIFxzYSBhbWRncHVfYm9f bGlzdF9kZXN0cm95KCksIGFtZGdwdV9jc19zdWJtaXRfcmF3MigpCiAqLwogaW50IGFtZGdwdV9i b19saXN0X2NyZWF0ZShhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCiAJCQkgIHVpbnQzMl90IG51 bWJlcl9vZl9yZXNvdXJjZXMsCiAJCQkgIGFtZGdwdV9ib19oYW5kbGUgKnJlc291cmNlcywKIAkJ CSAgdWludDhfdCAqcmVzb3VyY2VfcHJpb3MsCiAJCQkgIGFtZGdwdV9ib19saXN0X2hhbmRsZSAq cmVzdWx0KTsKIAogLyoqCiAgKiBEZXN0cm95cyBhIEJPIGxpc3QgaGFuZGxlLgogICoKQEAgLTE1 ODAsMjAgKzE2MTIsNDIgQEAgc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bms7CiBzdHJ1Y3QgZHJt X2FtZGdwdV9jc19jaHVua19kZXA7CiBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19kYXRhOwog CiBpbnQgYW1kZ3B1X2NzX3N1Ym1pdF9yYXcoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAogCQkJ IGFtZGdwdV9jb250ZXh0X2hhbmRsZSBjb250ZXh0LAogCQkJIGFtZGdwdV9ib19saXN0X2hhbmRs ZSBib19saXN0X2hhbmRsZSwKIAkJCSBpbnQgbnVtX2NodW5rcywKIAkJCSBzdHJ1Y3QgZHJtX2Ft ZGdwdV9jc19jaHVuayAqY2h1bmtzLAogCQkJIHVpbnQ2NF90ICpzZXFfbm8pOwogCisvKioKKyAq IFN1Ym1pdCByYXcgY29tbWFuZCBzdWJtaXNzaW9uIHRvIHRoZSBrZXJuZWwgd2l0aCBhIHJhdyBC TyBsaXN0IGhhbmRsZS4KKyAqCisgKiBccGFyYW0gICBkZXYJICAgICAgIC0gXGMgW2luXSBkZXZp Y2UgaGFuZGxlCisgKiBccGFyYW0gICBjb250ZXh0ICAgIC0gXGMgW2luXSBjb250ZXh0IGhhbmRs ZSBmb3IgY29udGV4dCBpZAorICogXHBhcmFtICAgYm9fbGlzdF9oYW5kbGUgLSBcYyBbaW5dIHJh dyBibyBsaXN0IGhhbmRsZSAoMCBmb3Igbm9uZSkKKyAqIFxwYXJhbSAgIG51bV9jaHVua3MgLSBc YyBbaW5dIG51bWJlciBvZiBDUyBjaHVua3MgdG8gc3VibWl0CisgKiBccGFyYW0gICBjaHVua3Mg ICAgIC0gXGMgW2luXSBhcnJheSBvZiBDUyBjaHVua3MKKyAqIFxwYXJhbSAgIHNlcV9ubyAgICAg LSBcYyBbb3V0XSBvdXRwdXQgc2VxdWVuY2UgbnVtYmVyIGZvciBzdWJtaXNzaW9uLgorICoKKyAq IFxyZXR1cm4gICAwIG9uIHN1Y2Nlc3NcbgorICogICAgICAgICAgPDAgLSBOZWdhdGl2ZSBQT1NJ WCBFcnJvciBjb2RlCisgKgorICogXHNhIGFtZGdwdV9ib19saXN0X2NyZWF0ZV9yYXcoKSwgYW1k Z3B1X2JvX2xpc3RfZGVzdHJveV9yYXcoKQorICovCitpbnQgYW1kZ3B1X2NzX3N1Ym1pdF9yYXcy KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKKwkJCSAgYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNv bnRleHQsCisJCQkgIHVpbnQzMl90IGJvX2xpc3RfaGFuZGxlLAorCQkJICBpbnQgbnVtX2NodW5r cywKKwkJCSAgc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmsgKmNodW5rcywKKwkJCSAgdWludDY0 X3QgKnNlcV9ubyk7CisKIHZvaWQgYW1kZ3B1X2NzX2NodW5rX2ZlbmNlX3RvX2RlcChzdHJ1Y3Qg YW1kZ3B1X2NzX2ZlbmNlICpmZW5jZSwKIAkJCQkgIHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5r X2RlcCAqZGVwKTsKIHZvaWQgYW1kZ3B1X2NzX2NodW5rX2ZlbmNlX2luZm9fdG9fZGF0YShzdHJ1 Y3QgYW1kZ3B1X2NzX2ZlbmNlX2luZm8gKmZlbmNlX2luZm8sCiAJCQkJCXN0cnVjdCBkcm1fYW1k Z3B1X2NzX2NodW5rX2RhdGEgKmRhdGEpOwogCiAvKioKICAqIFJlc2VydmUgVk1JRAogICogXHBh cmFtICAgY29udGV4dCAtIFxjIFtpbl0gIEdQVSBDb250ZXh0CiAgKiBccGFyYW0gICBmbGFncyAt IFxjIFtpbl0gIFRCRAogICoKZGlmZiAtLWdpdCBhL2FtZGdwdS9hbWRncHVfYm8uYyBiL2FtZGdw dS9hbWRncHVfYm8uYwppbmRleCBjMGY0MmU4MS4uMjFiYzczYWEgMTAwNjQ0Ci0tLSBhL2FtZGdw dS9hbWRncHVfYm8uYworKysgYi9hbWRncHUvYW1kZ3B1X2JvLmMKQEAgLTYxMSwyMCArNjExLDU2 IEBAIGRybV9wdWJsaWMgaW50IGFtZGdwdV9jcmVhdGVfYm9fZnJvbV91c2VyX21lbShhbWRncHVf ZGV2aWNlX2hhbmRsZSBkZXYsCiAJcHRocmVhZF9tdXRleF9sb2NrKCZkZXYtPmJvX3RhYmxlX211 dGV4KTsKIAlyID0gaGFuZGxlX3RhYmxlX2luc2VydCgmZGV2LT5ib19oYW5kbGVzLCAoKmJ1Zl9o YW5kbGUpLT5oYW5kbGUsCiAJCQkJKmJ1Zl9oYW5kbGUpOwogCXB0aHJlYWRfbXV0ZXhfdW5sb2Nr KCZkZXYtPmJvX3RhYmxlX211dGV4KTsKIAlpZiAocikKIAkJYW1kZ3B1X2JvX2ZyZWUoKmJ1Zl9o YW5kbGUpOwogb3V0OgogCXJldHVybiByOwogfQogCitkcm1fcHVibGljIGludCBhbWRncHVfYm9f bGlzdF9jcmVhdGVfcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKKwkJCQkJIHVpbnQzMl90 IG51bWJlcl9vZl9idWZmZXJzLAorCQkJCQkgc3RydWN0IGRybV9hbWRncHVfYm9fbGlzdF9lbnRy eSAqYnVmZmVycywKKwkJCQkJIHVpbnQzMl90ICpyZXN1bHQpCit7CisJdW5pb24gZHJtX2FtZGdw dV9ib19saXN0IGFyZ3M7CisJaW50IHI7CisKKwltZW1zZXQoJmFyZ3MsIDAsIHNpemVvZihhcmdz KSk7CisJYXJncy5pbi5vcGVyYXRpb24gPSBBTURHUFVfQk9fTElTVF9PUF9DUkVBVEU7CisJYXJn cy5pbi5ib19udW1iZXIgPSBudW1iZXJfb2ZfYnVmZmVyczsKKwlhcmdzLmluLmJvX2luZm9fc2l6 ZSA9IHNpemVvZihzdHJ1Y3QgZHJtX2FtZGdwdV9ib19saXN0X2VudHJ5KTsKKwlhcmdzLmluLmJv X2luZm9fcHRyID0gKHVpbnQ2NF90KSh1aW50cHRyX3QpYnVmZmVyczsKKworCXIgPSBkcm1Db21t YW5kV3JpdGVSZWFkKGRldi0+ZmQsIERSTV9BTURHUFVfQk9fTElTVCwKKwkJCQkmYXJncywgc2l6 ZW9mKGFyZ3MpKTsKKwlpZiAocikKKwkJcmV0dXJuIHI7CisKKwkqcmVzdWx0ID0gYXJncy5vdXQu bGlzdF9oYW5kbGU7CisJcmV0dXJuIDA7Cit9CisKK2RybV9wdWJsaWMgaW50IGFtZGdwdV9ib19s aXN0X2Rlc3Ryb3lfcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKKwkJCQkJICB1aW50MzJf dCBib19saXN0KQoreworCXVuaW9uIGRybV9hbWRncHVfYm9fbGlzdCBhcmdzOworCisJbWVtc2V0 KCZhcmdzLCAwLCBzaXplb2YoYXJncykpOworCWFyZ3MuaW4ub3BlcmF0aW9uID0gQU1ER1BVX0JP X0xJU1RfT1BfREVTVFJPWTsKKwlhcmdzLmluLmxpc3RfaGFuZGxlID0gYm9fbGlzdDsKKworCXJl dHVybiBkcm1Db21tYW5kV3JpdGVSZWFkKGRldi0+ZmQsIERSTV9BTURHUFVfQk9fTElTVCwKKwkJ CQkgICAmYXJncywgc2l6ZW9mKGFyZ3MpKTsKK30KKwogZHJtX3B1YmxpYyBpbnQgYW1kZ3B1X2Jv X2xpc3RfY3JlYXRlKGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKIAkJCQkgICAgIHVpbnQzMl90 IG51bWJlcl9vZl9yZXNvdXJjZXMsCiAJCQkJICAgICBhbWRncHVfYm9faGFuZGxlICpyZXNvdXJj ZXMsCiAJCQkJICAgICB1aW50OF90ICpyZXNvdXJjZV9wcmlvcywKIAkJCQkgICAgIGFtZGdwdV9i b19saXN0X2hhbmRsZSAqcmVzdWx0KQogewogCXN0cnVjdCBkcm1fYW1kZ3B1X2JvX2xpc3RfZW50 cnkgKmxpc3Q7CiAJdW5pb24gZHJtX2FtZGdwdV9ib19saXN0IGFyZ3M7CiAJdW5zaWduZWQgaTsK IAlpbnQgcjsKZGlmZiAtLWdpdCBhL2FtZGdwdS9hbWRncHVfY3MuYyBiL2FtZGdwdS9hbWRncHVf Y3MuYwppbmRleCAzYjgyMzFhYS4uNWJlZGY3NDggMTAwNjQ0Ci0tLSBhL2FtZGdwdS9hbWRncHVf Y3MuYworKysgYi9hbWRncHUvYW1kZ3B1X2NzLmMKQEAgLTcyNCwyMCArNzI0LDQ1IEBAIGRybV9w dWJsaWMgaW50IGFtZGdwdV9jc19zdWJtaXRfcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwK IAlyID0gZHJtQ29tbWFuZFdyaXRlUmVhZChkZXYtPmZkLCBEUk1fQU1ER1BVX0NTLAogCQkJCSZj cywgc2l6ZW9mKGNzKSk7CiAJaWYgKHIpCiAJCXJldHVybiByOwogCiAJaWYgKHNlcV9ubykKIAkJ KnNlcV9ubyA9IGNzLm91dC5oYW5kbGU7CiAJcmV0dXJuIDA7CiB9CiAKK2RybV9wdWJsaWMgaW50 IGFtZGdwdV9jc19zdWJtaXRfcmF3MihhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCisJCQkJICAg ICBhbWRncHVfY29udGV4dF9oYW5kbGUgY29udGV4dCwKKwkJCQkgICAgIHVpbnQzMl90IGJvX2xp c3RfaGFuZGxlLAorCQkJCSAgICAgaW50IG51bV9jaHVua3MsCisJCQkJICAgICBzdHJ1Y3QgZHJt X2FtZGdwdV9jc19jaHVuayAqY2h1bmtzLAorCQkJCSAgICAgdWludDY0X3QgKnNlcV9ubykKK3sK Kwl1bmlvbiBkcm1fYW1kZ3B1X2NzIGNzID0gezB9OworCXVpbnQ2NF90ICpjaHVua19hcnJheTsK KwlpbnQgaSwgcjsKKworCWNodW5rX2FycmF5ID0gYWxsb2NhKHNpemVvZih1aW50NjRfdCkgKiBu dW1fY2h1bmtzKTsKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2NodW5rczsgaSsrKQorCQljaHVua19h cnJheVtpXSA9ICh1aW50NjRfdCkodWludHB0cl90KSZjaHVua3NbaV07CisJY3MuaW4uY2h1bmtz ID0gKHVpbnQ2NF90KSh1aW50cHRyX3QpY2h1bmtfYXJyYXk7CisJY3MuaW4uY3R4X2lkID0gY29u dGV4dC0+aWQ7CisJY3MuaW4uYm9fbGlzdF9oYW5kbGUgPSBib19saXN0X2hhbmRsZTsKKwljcy5p bi5udW1fY2h1bmtzID0gbnVtX2NodW5rczsKKwlyID0gZHJtQ29tbWFuZFdyaXRlUmVhZChkZXYt PmZkLCBEUk1fQU1ER1BVX0NTLAorCQkJCSZjcywgc2l6ZW9mKGNzKSk7CisJaWYgKCFyICYmIHNl cV9ubykKKwkJKnNlcV9ubyA9IGNzLm91dC5oYW5kbGU7CisJcmV0dXJuIHI7Cit9CisKIGRybV9w dWJsaWMgdm9pZCBhbWRncHVfY3NfY2h1bmtfZmVuY2VfaW5mb190b19kYXRhKHN0cnVjdCBhbWRn cHVfY3NfZmVuY2VfaW5mbyAqZmVuY2VfaW5mbywKIAkJCQkJc3RydWN0IGRybV9hbWRncHVfY3Nf Y2h1bmtfZGF0YSAqZGF0YSkKIHsKIAlkYXRhLT5mZW5jZV9kYXRhLmhhbmRsZSA9IGZlbmNlX2lu Zm8tPmhhbmRsZS0+aGFuZGxlOwogCWRhdGEtPmZlbmNlX2RhdGEub2Zmc2V0ID0gZmVuY2VfaW5m by0+b2Zmc2V0ICogc2l6ZW9mKHVpbnQ2NF90KTsKIH0KIAogZHJtX3B1YmxpYyB2b2lkIGFtZGdw dV9jc19jaHVua19mZW5jZV90b19kZXAoc3RydWN0IGFtZGdwdV9jc19mZW5jZSAqZmVuY2UsCiAJ CQkJCXN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX2RlcCAqZGVwKQogewotLSAKMi4xNy4xCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1h aWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK