From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrey Grodzovsky Subject: [PATCH v5 3/6] drm/scheduler: rework job destruction Date: Thu, 18 Apr 2019 11:00:21 -0400 Message-ID: <1555599624-12285-3-git-send-email-andrey.grodzovsky@amd.com> References: <1555599624-12285-1-git-send-email-andrey.grodzovsky@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1555599624-12285-1-git-send-email-andrey.grodzovsky-5C7GfCeVMHo@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, eric-WhKQ6XTQaPysTnJN9+BGXg@public.gmane.org, etnaviv-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, ckoenig.leichtzumerken-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org Cc: Andrey Grodzovsky , Nicholas.Kazlauskas-5C7GfCeVMHo@public.gmane.org, =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKV2Ugbm93 IGRlc3Ryb3kgZmluaXNoZWQgam9icyBmcm9tIHRoZSB3b3JrZXIgdGhyZWFkIHRvIG1ha2Ugc3Vy ZSB0aGF0CndlIG5ldmVyIGRlc3Ryb3kgYSBqb2IgY3VycmVudGx5IGluIHRpbWVvdXQgcHJvY2Vz c2luZy4KQnkgdGhpcyB3ZSBhdm9pZCBob2xkaW5nIGxvY2sgYXJvdW5kIHJpbmcgbWlycm9yIGxp c3QgaW4gZHJtX3NjaGVkX3N0b3AKd2hpY2ggc2hvdWxkIHNvbHZlIGEgZGVhZGxvY2sgcmVwb3J0 ZWQgYnkgYSB1c2VyLgoKdjI6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCnY0OiBNb3ZlIGd1aWx0 eSBqb2IgZnJlZSBpbnRvIHNjaGVkIGNvZGUuCnY1OgpNb3ZlIHNjaGVkLT5od19ycV9jb3VudCB0 byBkcm1fc2NoZWRfc3RhcnQgdG8gYWNjb3VudCBmb3IgY291bnRlcgpkZWNyZW1lbnQgaW4gZHJt X3NjaGVkX3N0b3AgZXZlbiB3aGVuIHdlIGRvbid0IGNhbGwgcmVzdWJtaXQgam9icwppZiBndWls eSBqb2IgZGlkIHNpZ25hbC4KCkJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3Jn L3Nob3dfYnVnLmNnaT9pZD0xMDk2OTIKClNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcg PGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KU2lnbmVkLW9mZi1ieTogQW5kcmV5IEdyb2R6b3Zz a3kgPGFuZHJleS5ncm9kem92c2t5QGFtZC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2RldmljZS5jIHwgICA5ICstCiBkcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9l dG5hdml2X2R1bXAuYyAgICAgfCAgIDQgLQogZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZp dl9zY2hlZC5jICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vbGltYS9saW1hX3NjaGVkLmMg ICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9qb2Iu YyAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9tYWluLmMgICAg IHwgMTU5ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vdjNk L3YzZF9zY2hlZC5jICAgICAgICAgICAgfCAgIDIgKy0KIGluY2x1ZGUvZHJtL2dwdV9zY2hlZHVs ZXIuaCAgICAgICAgICAgICAgICB8ICAgNiArLQogOCBmaWxlcyBjaGFuZ2VkLCAxMDIgaW5zZXJ0 aW9ucygrKSwgODQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2RldmljZS5jCmluZGV4IDdjZWUyNjkuLmEwZTE2NWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKQEAgLTMzMzQsNyArMzMzNCw3IEBAIHN0YXRpYyBp bnQgYW1kZ3B1X2RldmljZV9wcmVfYXNpY19yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwKIAkJaWYgKCFyaW5nIHx8ICFyaW5nLT5zY2hlZC50aHJlYWQpCiAJCQljb250aW51ZTsKIAot CQlkcm1fc2NoZWRfc3RvcCgmcmluZy0+c2NoZWQpOworCQlkcm1fc2NoZWRfc3RvcCgmcmluZy0+ c2NoZWQsICZqb2ItPmJhc2UpOwogCiAJCS8qIGFmdGVyIGFsbCBodyBqb2JzIGFyZSByZXNldCwg aHcgZmVuY2UgaXMgbWVhbmluZ2xlc3MsIHNvIGZvcmNlX2NvbXBsZXRpb24gKi8KIAkJYW1kZ3B1 X2ZlbmNlX2RyaXZlcl9mb3JjZV9jb21wbGV0aW9uKHJpbmcpOwpAQCAtMzM0Myw4ICszMzQzLDYg QEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX3ByZV9hc2ljX3Jlc2V0KHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2LAogCWlmKGpvYikKIAkJZHJtX3NjaGVkX2luY3JlYXNlX2thcm1hKCZqb2It PmJhc2UpOwogCi0KLQogCWlmICghYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKSB7CiAKIAkJaWYgKCFu ZWVkX2Z1bGxfcmVzZXQpCkBAIC0zNDgyLDggKzM0ODAsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9k b19hc2ljX3Jlc2V0KHN0cnVjdCBhbWRncHVfaGl2ZV9pbmZvICpoaXZlLAogCXJldHVybiByOwog fQogCi1zdGF0aWMgdm9pZCBhbWRncHVfZGV2aWNlX3Bvc3RfYXNpY19yZXNldChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwKLQkJCQkJICBzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iKQorc3RhdGlj IHZvaWQgYW1kZ3B1X2RldmljZV9wb3N0X2FzaWNfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYpCiB7CiAJaW50IGk7CiAKQEAgLTM2MjMsNyArMzYyMCw3IEBAIGludCBhbWRncHVfZGV2 aWNlX2dwdV9yZWNvdmVyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCiAJLyogUG9zdCBB U0lDIHJlc2V0IGZvciBhbGwgZGV2cyAuKi8KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHRtcF9hZGV2 LCBkZXZpY2VfbGlzdF9oYW5kbGUsIGdtYy54Z21pLmhlYWQpIHsKLQkJYW1kZ3B1X2RldmljZV9w b3N0X2FzaWNfcmVzZXQodG1wX2FkZXYsIHRtcF9hZGV2ID09IGFkZXYgPyBqb2IgOiBOVUxMKTsK KwkJYW1kZ3B1X2RldmljZV9wb3N0X2FzaWNfcmVzZXQodG1wX2FkZXYpOwogCiAJCWlmIChyKSB7 CiAJCQkvKiBiYWQgbmV3cywgaG93IHRvIHRlbGwgaXQgdG8gdXNlcnNwYWNlID8gKi8KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZHVtcC5jIGIvZHJpdmVycy9n cHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9kdW1wLmMKaW5kZXggMzM4NTRjOS4uNTc3OGQ5YyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9kdW1wLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9kdW1wLmMKQEAgLTEzNSwxMyArMTM1LDExIEBA IHZvaWQgZXRuYXZpdl9jb3JlX2R1bXAoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiAJCSAgICBt bXVfc2l6ZSArIGdwdS0+YnVmZmVyLnNpemU7CiAKIAkvKiBBZGQgaW4gdGhlIGFjdGl2ZSBjb21t YW5kIGJ1ZmZlcnMgKi8KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZ3B1LT5zY2hlZC5qb2JfbGlzdF9s b2NrLCBmbGFncyk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShzX2pvYiwgJmdwdS0+c2NoZWQucmlu Z19taXJyb3JfbGlzdCwgbm9kZSkgewogCQlzdWJtaXQgPSB0b19ldG5hdml2X3N1Ym1pdChzX2pv Yik7CiAJCWZpbGVfc2l6ZSArPSBzdWJtaXQtPmNtZGJ1Zi5zaXplOwogCQluX29iaisrOwogCX0K LQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZncHUtPnNjaGVkLmpvYl9saXN0X2xvY2ssIGZsYWdz KTsKIAogCS8qIEFkZCBpbiB0aGUgYWN0aXZlIGJ1ZmZlciBvYmplY3RzICovCiAJbGlzdF9mb3Jf ZWFjaF9lbnRyeSh2cmFtLCAmZ3B1LT5tbXUtPm1hcHBpbmdzLCBtbXVfbm9kZSkgewpAQCAtMTgz LDE0ICsxODEsMTIgQEAgdm9pZCBldG5hdml2X2NvcmVfZHVtcChzdHJ1Y3QgZXRuYXZpdl9ncHUg KmdwdSkKIAkJCSAgICAgIGdwdS0+YnVmZmVyLnNpemUsCiAJCQkgICAgICBldG5hdml2X2NtZGJ1 Zl9nZXRfdmEoJmdwdS0+YnVmZmVyKSk7CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmZ3B1LT5zY2hl ZC5qb2JfbGlzdF9sb2NrLCBmbGFncyk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShzX2pvYiwgJmdw dS0+c2NoZWQucmluZ19taXJyb3JfbGlzdCwgbm9kZSkgewogCQlzdWJtaXQgPSB0b19ldG5hdml2 X3N1Ym1pdChzX2pvYik7CiAJCWV0bmF2aXZfY29yZV9kdW1wX21lbSgmaXRlciwgRVREVU1QX0JV Rl9DTUQsCiAJCQkJICAgICAgc3VibWl0LT5jbWRidWYudmFkZHIsIHN1Ym1pdC0+Y21kYnVmLnNp emUsCiAJCQkJICAgICAgZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKCZzdWJtaXQtPmNtZGJ1ZikpOwog CX0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZncHUtPnNjaGVkLmpvYl9saXN0X2xvY2ssIGZs YWdzKTsKIAogCS8qIFJlc2VydmUgc3BhY2UgZm9yIHRoZSBib21hcCAqLwogCWlmIChuX2JvbWFw X3BhZ2VzKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X3Nj aGVkLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X3NjaGVkLmMKaW5kZXggNmQy NGZlYS4uYTgxM2M4MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZp dl9zY2hlZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfc2NoZWQuYwpA QCAtMTA5LDcgKzEwOSw3IEBAIHN0YXRpYyB2b2lkIGV0bmF2aXZfc2NoZWRfdGltZWRvdXRfam9i KHN0cnVjdCBkcm1fc2NoZWRfam9iICpzY2hlZF9qb2IpCiAJfQogCiAJLyogYmxvY2sgc2NoZWR1 bGVyICovCi0JZHJtX3NjaGVkX3N0b3AoJmdwdS0+c2NoZWQpOworCWRybV9zY2hlZF9zdG9wKCZn cHUtPnNjaGVkLCBzY2hlZF9qb2IpOwogCiAJaWYoc2NoZWRfam9iKQogCQlkcm1fc2NoZWRfaW5j cmVhc2Vfa2FybWEoc2NoZWRfam9iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9saW1h L2xpbWFfc2NoZWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9saW1hL2xpbWFfc2NoZWQuYwppbmRleCA5 N2JkOWMxLi5kZjk4OTMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbGltYS9saW1hX3Nj aGVkLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2xpbWEvbGltYV9zY2hlZC5jCkBAIC0zMDAsNyAr MzAwLDcgQEAgc3RhdGljIHN0cnVjdCBkbWFfZmVuY2UgKmxpbWFfc2NoZWRfcnVuX2pvYihzdHJ1 Y3QgZHJtX3NjaGVkX2pvYiAqam9iKQogc3RhdGljIHZvaWQgbGltYV9zY2hlZF9oYW5kbGVfZXJy b3JfdGFzayhzdHJ1Y3QgbGltYV9zY2hlZF9waXBlICpwaXBlLAogCQkJCQkgc3RydWN0IGxpbWFf c2NoZWRfdGFzayAqdGFzaykKIHsKLQlkcm1fc2NoZWRfc3RvcCgmcGlwZS0+YmFzZSk7CisJZHJt X3NjaGVkX3N0b3AoJnBpcGUtPmJhc2UsICZ0YXNrLT5iYXNlKTsKIAogCWlmICh0YXNrKQogCQlk cm1fc2NoZWRfaW5jcmVhc2Vfa2FybWEoJnRhc2stPmJhc2UpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2pvYi5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmZy b3N0L3BhbmZyb3N0X2pvYi5jCmluZGV4IDBhN2VkMDQuLmM2MzM2YjcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9qb2IuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vcGFuZnJvc3QvcGFuZnJvc3Rfam9iLmMKQEAgLTM4NSw3ICszODUsNyBAQCBzdGF0aWMgdm9p ZCBwYW5mcm9zdF9qb2JfdGltZWRvdXQoc3RydWN0IGRybV9zY2hlZF9qb2IgKnNjaGVkX2pvYikK IAkJc2NoZWRfam9iKTsKIAogCWZvciAoaSA9IDA7IGkgPCBOVU1fSk9CX1NMT1RTOyBpKyspCi0J CWRybV9zY2hlZF9zdG9wKCZwZmRldi0+anMtPnF1ZXVlW2ldLnNjaGVkKTsKKwkJZHJtX3NjaGVk X3N0b3AoJnBmZGV2LT5qcy0+cXVldWVbaV0uc2NoZWQsIHNjaGVkX2pvYik7CiAKIAlpZiAoc2No ZWRfam9iKQogCQlkcm1fc2NoZWRfaW5jcmVhc2Vfa2FybWEoc2NoZWRfam9iKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5jIGIvZHJpdmVycy9ncHUv ZHJtL3NjaGVkdWxlci9zY2hlZF9tYWluLmMKaW5kZXggMTlmYzYwMS4uNzgxNmRlNyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9tYWluLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9tYWluLmMKQEAgLTI2NSwzMiArMjY1LDYgQEAgdm9p ZCBkcm1fc2NoZWRfcmVzdW1lX3RpbWVvdXQoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hl ZCwKIH0KIEVYUE9SVF9TWU1CT0woZHJtX3NjaGVkX3Jlc3VtZV90aW1lb3V0KTsKIAotLyogam9i X2ZpbmlzaCBpcyBjYWxsZWQgYWZ0ZXIgaHcgZmVuY2Ugc2lnbmFsZWQKLSAqLwotc3RhdGljIHZv aWQgZHJtX3NjaGVkX2pvYl9maW5pc2goc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQotewotCXN0 cnVjdCBkcm1fc2NoZWRfam9iICpzX2pvYiA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZHJt X3NjaGVkX2pvYiwKLQkJCQkJCSAgIGZpbmlzaF93b3JrKTsKLQlzdHJ1Y3QgZHJtX2dwdV9zY2hl ZHVsZXIgKnNjaGVkID0gc19qb2ItPnNjaGVkOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQkv KgotCSAqIENhbmNlbGluZyB0aGUgdGltZW91dCB3aXRob3V0IHJlbW92aW5nIG91ciBqb2IgZnJv bSB0aGUgcmluZyBtaXJyb3IKLQkgKiBsaXN0IGlzIHNhZmUsIGFzIHdlIHdpbGwgb25seSBlbmQg dXAgaW4gdGhpcyB3b3JrZXIgaWYgb3VyIGpvYnMKLQkgKiBmaW5pc2hlZCBmZW5jZSBoYXMgYmVl biBzaWduYWxlZC4gU28gZXZlbiBpZiBzb21lIGFub3RoZXIgd29ya2VyCi0JICogbWFuYWdlcyB0 byBmaW5kIHRoaXMgam9iIGFzIHRoZSBuZXh0IGpvYiBpbiB0aGUgbGlzdCwgdGhlIGZlbmNlCi0J ICogc2lnbmFsZWQgY2hlY2sgYmVsb3cgd2lsbCBwcmV2ZW50IHRoZSB0aW1lb3V0IHRvIGJlIHJl c3RhcnRlZC4KLQkgKi8KLQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJnNjaGVkLT53b3JrX3Rk cik7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZsYWdzKTsK LQkvKiBxdWV1ZSBURFIgZm9yIG5leHQgam9iICovCi0JZHJtX3NjaGVkX3N0YXJ0X3RpbWVvdXQo c2NoZWQpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBm bGFncyk7Ci0KLQlzY2hlZC0+b3BzLT5mcmVlX2pvYihzX2pvYik7Ci19Ci0KIHN0YXRpYyB2b2lk IGRybV9zY2hlZF9qb2JfYmVnaW4oc3RydWN0IGRybV9zY2hlZF9qb2IgKnNfam9iKQogewogCXN0 cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQgPSBzX2pvYi0+c2NoZWQ7CkBAIC0zMTUsNiAr Mjg5LDEzIEBAIHN0YXRpYyB2b2lkIGRybV9zY2hlZF9qb2JfdGltZWRvdXQoc3RydWN0IHdvcmtf c3RydWN0ICp3b3JrKQogCWlmIChqb2IpCiAJCWpvYi0+c2NoZWQtPm9wcy0+dGltZWRvdXRfam9i KGpvYik7CiAKKwkvKgorCSAqIEd1aWx0eSBqb2IgZGlkIGNvbXBsZXRlIGFuZCBoZW5jZSBuZWVk cyB0byBiZSBtYW51YWxseSByZW1vdmVkCisJICogU2VlIGRybV9zY2hlZF9zdG9wIGRvYy4KKwkg Ki8KKwlpZiAobGlzdF9lbXB0eSgmam9iLT5ub2RlKSkKKwkJam9iLT5zY2hlZC0+b3BzLT5mcmVl X2pvYihqb2IpOworCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBm bGFncyk7CiAJZHJtX3NjaGVkX3N0YXJ0X3RpbWVvdXQoc2NoZWQpOwogCXNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7CkBAIC0zNzEsMjMgKzM1Miwy NiBAQCBFWFBPUlRfU1lNQk9MKGRybV9zY2hlZF9pbmNyZWFzZV9rYXJtYSk7CiAgKiBAc2NoZWQ6 IHNjaGVkdWxlciBpbnN0YW5jZQogICogQGJhZDogYmFkIHNjaGVkdWxlciBqb2IKICAqCisgKiBT dG9wIHRoZSBzY2hlZHVsZXIgYW5kIGFsc28gcmVtb3ZlcyBhbmQgZnJlZXMgYWxsIGNvbXBsZXRl ZCBqb2JzLgorICogTm90ZTogYmFkIGpvYiB3aWxsIG5vdCBiZSBmcmVlZCBhcyBpdCBtaWdodCBi ZSB1c2VkIGxhdGVyIGFuZCBzbyBpdCdzCisgKiBjYWxsZXJzIHJlc3BvbnNpYmlsaXR5IHRvIHJl bGVhc2UgaXQgbWFudWFsbHkgaWYgaXQncyBub3QgcGFydCBvZiB0aGUKKyAqIG1pcnJvciBsaXN0 IGFueSBtb3JlLgorICoKICAqLwotdm9pZCBkcm1fc2NoZWRfc3RvcChzdHJ1Y3QgZHJtX2dwdV9z Y2hlZHVsZXIgKnNjaGVkKQordm9pZCBkcm1fc2NoZWRfc3RvcChzdHJ1Y3QgZHJtX2dwdV9zY2hl ZHVsZXIgKnNjaGVkLCBzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqYmFkKQogewotCXN0cnVjdCBkcm1f c2NoZWRfam9iICpzX2pvYjsKKwlzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc19qb2IsICp0bXA7CiAJ dW5zaWduZWQgbG9uZyBmbGFnczsKLQlzdHJ1Y3QgZG1hX2ZlbmNlICpsYXN0X2ZlbmNlID0gIE5V TEw7CiAKIAlrdGhyZWFkX3Bhcmsoc2NoZWQtPnRocmVhZCk7CiAKIAkvKgotCSAqIFZlcmlmeSBh bGwgdGhlIHNpZ25hbGVkIGpvYnMgaW4gbWlycm9yIGxpc3QgYXJlIHJlbW92ZWQgZnJvbSB0aGUg cmluZwotCSAqIGJ5IHdhaXRpbmcgZm9yIHRoZSBsYXRlc3Qgam9iIHRvIGVudGVyIHRoZSBsaXN0 LiBUaGlzIHNob3VsZCBpbnN1cmUgdGhhdAotCSAqIGFsc28gYWxsIHRoZSBwcmV2aW91cyBqb2Jz IHRoYXQgd2VyZSBpbiBmbGlnaHQgYWxzbyBhbHJlYWR5IHNpbmdhbGVkCi0JICogYW5kIHJlbW92 ZWQgZnJvbSB0aGUgbGlzdC4KKwkgKiBJdGVyYXRlIHRoZSBqb2IgbGlzdCBmcm9tIGxhdGVyIHRv ICBlYXJsaWVyIG9uZSBhbmQgZWl0aGVyIGRlYWN0aXZlCisJICogdGhlaXIgSFcgY2FsbGJhY2tz IG9yIHJlbW92ZSB0aGVtIGZyb20gbWlycm9yIGxpc3QgaWYgdGhleSBhbHJlYWR5CisJICogc2ln bmFsZWQuCisJICogVGhpcyBpdGVyYXRpb24gaXMgdGhyZWFkIHNhZmUgYXMgc2NoZWQgdGhyZWFk IGlzIHN0b3BwZWQuCiAJICovCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkLT5qb2JfbGlzdF9s b2NrLCBmbGFncyk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeV9yZXZlcnNlKHNfam9iLCAmc2NoZWQt PnJpbmdfbWlycm9yX2xpc3QsIG5vZGUpIHsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmVfcmV2 ZXJzZShzX2pvYiwgdG1wLCAmc2NoZWQtPnJpbmdfbWlycm9yX2xpc3QsIG5vZGUpIHsKIAkJaWYg KHNfam9iLT5zX2ZlbmNlLT5wYXJlbnQgJiYKIAkJICAgIGRtYV9mZW5jZV9yZW1vdmVfY2FsbGJh Y2soc19qb2ItPnNfZmVuY2UtPnBhcmVudCwKIAkJCQkJICAgICAgJnNfam9iLT5jYikpIHsKQEAg LTM5NSwxNiArMzc5LDMwIEBAIHZvaWQgZHJtX3NjaGVkX3N0b3Aoc3RydWN0IGRybV9ncHVfc2No ZWR1bGVyICpzY2hlZCkKIAkJCXNfam9iLT5zX2ZlbmNlLT5wYXJlbnQgPSBOVUxMOwogCQkJYXRv bWljX2RlYygmc2NoZWQtPmh3X3JxX2NvdW50KTsKIAkJfSBlbHNlIHsKLQkJCSBsYXN0X2ZlbmNl ID0gZG1hX2ZlbmNlX2dldCgmc19qb2ItPnNfZmVuY2UtPmZpbmlzaGVkKTsKLQkJCSBicmVhazsK KwkJCS8qCisJCQkgKiByZW1vdmUgam9iIGZyb20gcmluZ19taXJyb3JfbGlzdC4KKwkJCSAqIExv Y2tpbmcgaGVyZSBpcyBmb3IgY29uY3VycmVudCByZXN1bWUgdGltZW91dAorCQkJICovCisJCQlz cGluX2xvY2tfaXJxc2F2ZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZsYWdzKTsKKwkJCWxpc3Rf ZGVsX2luaXQoJnNfam9iLT5ub2RlKTsKKwkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVk LT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7CisKKwkJCS8qCisJCQkgKiBXYWl0IGZvciBqb2IncyBI VyBmZW5jZSBjYWxsYmFjayB0byBmaW5pc2ggdXNpbmcgc19qb2IKKwkJCSAqIGJlZm9yZSByZWxl YXNpbmcgaXQuCisJCQkgKgorCQkJICogSm9iIGlzIHN0aWxsIGFsaXZlIHNvIGZlbmNlIHJlZmNv dW50IGF0IGxlYXN0IDEKKwkJCSAqLworCQkJZG1hX2ZlbmNlX3dhaXQoJnNfam9iLT5zX2ZlbmNl LT5maW5pc2hlZCwgZmFsc2UpOworCisJCQkvKgorCQkJICogV2UgbXVzdCBrZWVwIGJhZCBqb2Ig YWxpdmUgZm9yIGxhdGVyIHVzZSBkdXJpbmcKKwkJCSAqIHJlY292ZXJ5IGJ5IHNvbWUgb2YgdGhl IGRyaXZlcnMKKwkJCSAqLworCQkJaWYgKGJhZCAhPSBzX2pvYikKKwkJCQlzY2hlZC0+b3BzLT5m cmVlX2pvYihzX2pvYik7CiAJCX0KIAl9Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NoZWQt PmpvYl9saXN0X2xvY2ssIGZsYWdzKTsKLQotCWlmIChsYXN0X2ZlbmNlKSB7Ci0JCWRtYV9mZW5j ZV93YWl0KGxhc3RfZmVuY2UsIGZhbHNlKTsKLQkJZG1hX2ZlbmNlX3B1dChsYXN0X2ZlbmNlKTsK LQl9CiB9CiAKIEVYUE9SVF9TWU1CT0woZHJtX3NjaGVkX3N0b3ApOwpAQCAtNDE4LDIxICs0MTYs MjIgQEAgRVhQT1JUX1NZTUJPTChkcm1fc2NoZWRfc3RvcCk7CiB2b2lkIGRybV9zY2hlZF9zdGFy dChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkLCBib29sIGZ1bGxfcmVjb3ZlcnkpCiB7 CiAJc3RydWN0IGRybV9zY2hlZF9qb2IgKnNfam9iLCAqdG1wOworCXVuc2lnbmVkIGxvbmcgZmxh Z3M7CiAJaW50IHI7CiAKLQlpZiAoIWZ1bGxfcmVjb3ZlcnkpCi0JCWdvdG8gdW5wYXJrOwotCiAJ LyoKIAkgKiBMb2NraW5nIHRoZSBsaXN0IGlzIG5vdCByZXF1aXJlZCBoZXJlIGFzIHRoZSBzY2hl ZCB0aHJlYWQgaXMgcGFya2VkCi0JICogc28gbm8gbmV3IGpvYnMgYXJlIGJlaW5nIHB1c2hlZCBp biB0byBIVyBhbmQgaW4gZHJtX3NjaGVkX3N0b3Agd2UKLQkgKiBmbHVzaGVkIGFsbCB0aGUgam9i cyB3aG8gd2VyZSBzdGlsbCBpbiBtaXJyb3IgbGlzdCBidXQgd2hvIGFscmVhZHkKLQkgKiBzaWdu YWxlZCBhbmQgcmVtb3ZlZCB0aGVtIHNlbGYgZnJvbSB0aGUgbGlzdC4gQWxzbyBjb25jdXJyZW50 CisJICogc28gbm8gbmV3IGpvYnMgYXJlIGJlaW5nIGluc2VydGVkIG9yIHJlbW92ZWQuIEFsc28g Y29uY3VycmVudAogCSAqIEdQVSByZWNvdmVycyBjYW4ndCBydW4gaW4gcGFyYWxsZWwuCiAJICov CiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHNfam9iLCB0bXAsICZzY2hlZC0+cmluZ19taXJy b3JfbGlzdCwgbm9kZSkgewogCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IHNfam9iLT5zX2Zl bmNlLT5wYXJlbnQ7CiAKKwkJYXRvbWljX2luYygmc2NoZWQtPmh3X3JxX2NvdW50KTsKKworCQlp ZiAoIWZ1bGxfcmVjb3ZlcnkpCisJCQljb250aW51ZTsKKwogCQlpZiAoZmVuY2UpIHsKIAkJCXIg PSBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGZlbmNlLCAmc19qb2ItPmNiLAogCQkJCQkJICAgZHJt X3NjaGVkX3Byb2Nlc3Nfam9iKTsKQEAgLTQ0NSw5ICs0NDQsMTIgQEAgdm9pZCBkcm1fc2NoZWRf c3RhcnQoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwgYm9vbCBmdWxsX3JlY292ZXJ5 KQogCQkJZHJtX3NjaGVkX3Byb2Nlc3Nfam9iKE5VTEwsICZzX2pvYi0+Y2IpOwogCX0KIAotCWRy bV9zY2hlZF9zdGFydF90aW1lb3V0KHNjaGVkKTsKKwlpZiAoZnVsbF9yZWNvdmVyeSkgeworCQlz cGluX2xvY2tfaXJxc2F2ZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZsYWdzKTsKKwkJZHJtX3Nj aGVkX3N0YXJ0X3RpbWVvdXQoc2NoZWQpOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2hl ZC0+am9iX2xpc3RfbG9jaywgZmxhZ3MpOworCX0KIAotdW5wYXJrOgogCWt0aHJlYWRfdW5wYXJr KHNjaGVkLT50aHJlYWQpOwogfQogRVhQT1JUX1NZTUJPTChkcm1fc2NoZWRfc3RhcnQpOwpAQCAt NDY0LDcgKzQ2Niw2IEBAIHZvaWQgZHJtX3NjaGVkX3Jlc3VibWl0X2pvYnMoc3RydWN0IGRybV9n cHVfc2NoZWR1bGVyICpzY2hlZCkKIAl1aW50NjRfdCBndWlsdHlfY29udGV4dDsKIAlib29sIGZv dW5kX2d1aWx0eSA9IGZhbHNlOwogCi0JLypUT0RPIERPIHdlIG5lZWQgc3BpbmxvY2sgaGVyZSA/ ICovCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHNfam9iLCB0bXAsICZzY2hlZC0+cmluZ19t aXJyb3JfbGlzdCwgbm9kZSkgewogCQlzdHJ1Y3QgZHJtX3NjaGVkX2ZlbmNlICpzX2ZlbmNlID0g c19qb2ItPnNfZmVuY2U7CiAKQEAgLTQ3Nyw3ICs0NzgsNiBAQCB2b2lkIGRybV9zY2hlZF9yZXN1 Ym1pdF9qb2JzKHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQpCiAJCQlkbWFfZmVuY2Vf c2V0X2Vycm9yKCZzX2ZlbmNlLT5maW5pc2hlZCwgLUVDQU5DRUxFRCk7CiAKIAkJc19qb2ItPnNf ZmVuY2UtPnBhcmVudCA9IHNjaGVkLT5vcHMtPnJ1bl9qb2Ioc19qb2IpOwotCQlhdG9taWNfaW5j KCZzY2hlZC0+aHdfcnFfY291bnQpOwogCX0KIH0KIEVYUE9SVF9TWU1CT0woZHJtX3NjaGVkX3Jl c3VibWl0X2pvYnMpOwpAQCAtNTE0LDcgKzUxNCw2IEBAIGludCBkcm1fc2NoZWRfam9iX2luaXQo c3RydWN0IGRybV9zY2hlZF9qb2IgKmpvYiwKIAkJcmV0dXJuIC1FTk9NRU07CiAJam9iLT5pZCA9 IGF0b21pYzY0X2luY19yZXR1cm4oJnNjaGVkLT5qb2JfaWRfY291bnQpOwogCi0JSU5JVF9XT1JL KCZqb2ItPmZpbmlzaF93b3JrLCBkcm1fc2NoZWRfam9iX2ZpbmlzaCk7CiAJSU5JVF9MSVNUX0hF QUQoJmpvYi0+bm9kZSk7CiAKIAlyZXR1cm4gMDsKQEAgLTU5NywyNCArNTk2LDUzIEBAIHN0YXRp YyB2b2lkIGRybV9zY2hlZF9wcm9jZXNzX2pvYihzdHJ1Y3QgZG1hX2ZlbmNlICpmLCBzdHJ1Y3Qg ZG1hX2ZlbmNlX2NiICpjYikKIAlzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc19qb2IgPSBjb250YWlu ZXJfb2YoY2IsIHN0cnVjdCBkcm1fc2NoZWRfam9iLCBjYik7CiAJc3RydWN0IGRybV9zY2hlZF9m ZW5jZSAqc19mZW5jZSA9IHNfam9iLT5zX2ZlbmNlOwogCXN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxl ciAqc2NoZWQgPSBzX2ZlbmNlLT5zY2hlZDsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0JY2Fu Y2VsX2RlbGF5ZWRfd29yaygmc2NoZWQtPndvcmtfdGRyKTsKIAogCWF0b21pY19kZWMoJnNjaGVk LT5od19ycV9jb3VudCk7CiAJYXRvbWljX2RlYygmc2NoZWQtPm51bV9qb2JzKTsKIAotCXNwaW5f bG9ja19pcnFzYXZlKCZzY2hlZC0+am9iX2xpc3RfbG9jaywgZmxhZ3MpOwotCS8qIHJlbW92ZSBq b2IgZnJvbSByaW5nX21pcnJvcl9saXN0ICovCi0JbGlzdF9kZWxfaW5pdCgmc19qb2ItPm5vZGUp OwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7 CisJdHJhY2VfZHJtX3NjaGVkX3Byb2Nlc3Nfam9iKHNfZmVuY2UpOwogCiAJZHJtX3NjaGVkX2Zl bmNlX2ZpbmlzaGVkKHNfZmVuY2UpOwotCi0JdHJhY2VfZHJtX3NjaGVkX3Byb2Nlc3Nfam9iKHNf ZmVuY2UpOwogCXdha2VfdXBfaW50ZXJydXB0aWJsZSgmc2NoZWQtPndha2VfdXBfd29ya2VyKTsK K30KKworLyoqCisgKiBkcm1fc2NoZWRfY2xlYW51cF9qb2JzIC0gZGVzdHJveSBmaW5pc2hlZCBq b2JzCisgKgorICogQHNjaGVkOiBzY2hlZHVsZXIgaW5zdGFuY2UKKyAqCisgKiBSZW1vdmUgYWxs IGZpbmlzaGVkIGpvYnMgZnJvbSB0aGUgbWlycm9yIGxpc3QgYW5kIGRlc3Ryb3kgdGhlbS4KKyAq Lworc3RhdGljIHZvaWQgZHJtX3NjaGVkX2NsZWFudXBfam9icyhzdHJ1Y3QgZHJtX2dwdV9zY2hl ZHVsZXIgKnNjaGVkKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwkvKiBEb24ndCBkZXN0 cm95IGpvYnMgd2hpbGUgdGhlIHRpbWVvdXQgd29ya2VyIGlzIHJ1bm5pbmcgKi8KKwlpZiAoIWNh bmNlbF9kZWxheWVkX3dvcmsoJnNjaGVkLT53b3JrX3RkcikpCisJCXJldHVybjsKKworCisJd2hp bGUgKCFsaXN0X2VtcHR5KCZzY2hlZC0+cmluZ19taXJyb3JfbGlzdCkpIHsKKwkJc3RydWN0IGRy bV9zY2hlZF9qb2IgKmpvYjsKKworCQlqb2IgPSBsaXN0X2ZpcnN0X2VudHJ5KCZzY2hlZC0+cmlu Z19taXJyb3JfbGlzdCwKKwkJCQkgICAgICAgc3RydWN0IGRybV9zY2hlZF9qb2IsIG5vZGUpOwor CQlpZiAoIWRtYV9mZW5jZV9pc19zaWduYWxlZCgmam9iLT5zX2ZlbmNlLT5maW5pc2hlZCkpCisJ CQlicmVhazsKKworCQlzcGluX2xvY2tfaXJxc2F2ZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZs YWdzKTsKKwkJLyogcmVtb3ZlIGpvYiBmcm9tIHJpbmdfbWlycm9yX2xpc3QgKi8KKwkJbGlzdF9k ZWxfaW5pdCgmam9iLT5ub2RlKTsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NoZWQtPmpv Yl9saXN0X2xvY2ssIGZsYWdzKTsKKworCQlzY2hlZC0+b3BzLT5mcmVlX2pvYihqb2IpOworCX0K KworCS8qIHF1ZXVlIHRpbWVvdXQgZm9yIG5leHQgam9iICovCisJc3Bpbl9sb2NrX2lycXNhdmUo JnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7CisJZHJtX3NjaGVkX3N0YXJ0X3RpbWVvdXQo c2NoZWQpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBm bGFncyk7CiAKLQlzY2hlZHVsZV93b3JrKCZzX2pvYi0+ZmluaXNoX3dvcmspOwogfQogCiAvKioK QEAgLTY1Niw5ICs2ODQsMTAgQEAgc3RhdGljIGludCBkcm1fc2NoZWRfbWFpbih2b2lkICpwYXJh bSkKIAkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAKIAkJd2FpdF9ldmVudF9pbnRlcnJ1cHRp YmxlKHNjaGVkLT53YWtlX3VwX3dvcmtlciwKKwkJCQkJIChkcm1fc2NoZWRfY2xlYW51cF9qb2Jz KHNjaGVkKSwKIAkJCQkJICghZHJtX3NjaGVkX2Jsb2NrZWQoc2NoZWQpICYmCiAJCQkJCSAgKGVu dGl0eSA9IGRybV9zY2hlZF9zZWxlY3RfZW50aXR5KHNjaGVkKSkpIHx8Ci0JCQkJCSBrdGhyZWFk X3Nob3VsZF9zdG9wKCkpOworCQkJCQkga3RocmVhZF9zaG91bGRfc3RvcCgpKSk7CiAKIAkJaWYg KCFlbnRpdHkpCiAJCQljb250aW51ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92M2Qv djNkX3NjaGVkLmMgYi9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9zY2hlZC5jCmluZGV4IGU3NDBm M2IuLjFhNGFiZTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX3NjaGVkLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3YzZC92M2Rfc2NoZWQuYwpAQCAtMjMyLDcgKzIzMiw3IEBA IHYzZF9ncHVfcmVzZXRfZm9yX3RpbWVvdXQoc3RydWN0IHYzZF9kZXYgKnYzZCwgc3RydWN0IGRy bV9zY2hlZF9qb2IgKnNjaGVkX2pvYikKIAogCS8qIGJsb2NrIHNjaGVkdWxlciAqLwogCWZvciAo cSA9IDA7IHEgPCBWM0RfTUFYX1FVRVVFUzsgcSsrKQotCQlkcm1fc2NoZWRfc3RvcCgmdjNkLT5x dWV1ZVtxXS5zY2hlZCk7CisJCWRybV9zY2hlZF9zdG9wKCZ2M2QtPnF1ZXVlW3FdLnNjaGVkLCBz Y2hlZF9qb2IpOwogCiAJaWYgKHNjaGVkX2pvYikKIAkJZHJtX3NjaGVkX2luY3JlYXNlX2thcm1h KHNjaGVkX2pvYik7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmggYi9p bmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmgKaW5kZXggMGRhY2E0ZC4uOWVlMGYyNyAxMDA2NDQK LS0tIGEvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oCisrKyBiL2luY2x1ZGUvZHJtL2dwdV9z Y2hlZHVsZXIuaApAQCAtMTY3LDkgKzE2Nyw2IEBAIHN0cnVjdCBkcm1fc2NoZWRfZmVuY2UgKnRv X2RybV9zY2hlZF9mZW5jZShzdHJ1Y3QgZG1hX2ZlbmNlICpmKTsKICAqIEBzY2hlZDogdGhlIHNj aGVkdWxlciBpbnN0YW5jZSBvbiB3aGljaCB0aGlzIGpvYiBpcyBzY2hlZHVsZWQuCiAgKiBAc19m ZW5jZTogY29udGFpbnMgdGhlIGZlbmNlcyBmb3IgdGhlIHNjaGVkdWxpbmcgb2Ygam9iLgogICog QGZpbmlzaF9jYjogdGhlIGNhbGxiYWNrIGZvciB0aGUgZmluaXNoZWQgZmVuY2UuCi0gKiBAZmlu aXNoX3dvcms6IHNjaGVkdWxlcyB0aGUgZnVuY3Rpb24gQGRybV9zY2hlZF9qb2JfZmluaXNoIG9u Y2UgdGhlIGpvYiBoYXMKLSAqICAgICAgICAgICAgICAgZmluaXNoZWQgdG8gcmVtb3ZlIHRoZSBq b2IgZnJvbSB0aGUKLSAqICAgICAgICAgICAgICAgQGRybV9ncHVfc2NoZWR1bGVyLnJpbmdfbWly cm9yX2xpc3QuCiAgKiBAbm9kZTogdXNlZCB0byBhcHBlbmQgdGhpcyBzdHJ1Y3QgdG8gdGhlIEBk cm1fZ3B1X3NjaGVkdWxlci5yaW5nX21pcnJvcl9saXN0LgogICogQGlkOiBhIHVuaXF1ZSBpZCBh c3NpZ25lZCB0byBlYWNoIGpvYiBzY2hlZHVsZWQgb24gdGhlIHNjaGVkdWxlci4KICAqIEBrYXJt YTogaW5jcmVtZW50IG9uIGV2ZXJ5IGhhbmcgY2F1c2VkIGJ5IHRoaXMgam9iLiBJZiB0aGlzIGV4 Y2VlZHMgdGhlIGhhbmcKQEAgLTE4OCw3ICsxODUsNiBAQCBzdHJ1Y3QgZHJtX3NjaGVkX2pvYiB7 CiAJc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyCSpzY2hlZDsKIAlzdHJ1Y3QgZHJtX3NjaGVkX2Zl bmNlCQkqc19mZW5jZTsKIAlzdHJ1Y3QgZG1hX2ZlbmNlX2NiCQlmaW5pc2hfY2I7Ci0Jc3RydWN0 IHdvcmtfc3RydWN0CQlmaW5pc2hfd29yazsKIAlzdHJ1Y3QgbGlzdF9oZWFkCQlub2RlOwogCXVp bnQ2NF90CQkJaWQ7CiAJYXRvbWljX3QJCQlrYXJtYTsKQEAgLTI5Niw3ICsyOTIsNyBAQCBpbnQg ZHJtX3NjaGVkX2pvYl9pbml0KHN0cnVjdCBkcm1fc2NoZWRfam9iICpqb2IsCiAJCSAgICAgICB2 b2lkICpvd25lcik7CiB2b2lkIGRybV9zY2hlZF9qb2JfY2xlYW51cChzdHJ1Y3QgZHJtX3NjaGVk X2pvYiAqam9iKTsKIHZvaWQgZHJtX3NjaGVkX3dha2V1cChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVs ZXIgKnNjaGVkKTsKLXZvaWQgZHJtX3NjaGVkX3N0b3Aoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVy ICpzY2hlZCk7Cit2b2lkIGRybV9zY2hlZF9zdG9wKHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAq c2NoZWQsIHN0cnVjdCBkcm1fc2NoZWRfam9iICpiYWQpOwogdm9pZCBkcm1fc2NoZWRfc3RhcnQo c3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwgYm9vbCBmdWxsX3JlY292ZXJ5KTsKIHZv aWQgZHJtX3NjaGVkX3Jlc3VibWl0X2pvYnMoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hl ZCk7CiB2b2lkIGRybV9zY2hlZF9pbmNyZWFzZV9rYXJtYShzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAq YmFkKTsKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZng=