From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [CI 09/10] drm/i915/execlists: Virtual engine bonding Date: Tue, 21 May 2019 13:43:17 +0100 Message-ID: <20190521124318.26310-9-chris@chris-wilson.co.uk> References: <20190521124318.26310-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 405AD8921A for ; Tue, 21 May 2019 12:50:40 +0000 (UTC) In-Reply-To: <20190521124318.26310-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org U29tZSB1c2VycyByZXF1aXJlIHRoYXQgd2hlbiBhIG1hc3RlciBiYXRjaCBpcyBleGVjdXRlZCBv biBvbmUgcGFydGljdWxhcgplbmdpbmUsIGEgY29tcGFuaW9uIGJhdGNoIGlzIHJ1biBzaW11bHRh bmVvdXNseSBvbiBhIHNwZWNpZmljIHNsYXZlCmVuZ2luZS4gRm9yIHRoaXMgcHVycG9zZSwgd2Ug aW50cm9kdWNlIHZpcnR1YWwgZW5naW5lIGJvbmRpbmcsIGFsbG93aW5nCm1hcHMgb2YgbWFzdGVy OnNsYXZlcyB0byBiZSBjb25zdHJ1Y3RlZCB0byBjb25zdHJhaW4gd2hpY2ggcGh5c2ljYWwKZW5n aW5lcyBhIHZpcnR1YWwgZW5naW5lIG1heSBzZWxlY3QgZ2l2ZW4gYSBmZW5jZSBvbiBhIG1hc3Rl ciBlbmdpbmUuCgpGb3IgdGhlIG1vbWVudCwgd2UgY29udGludWUgdG8gaWdub3JlIHRoZSBpc3N1 ZSBvZiBwcmVlbXB0aW9uIGRlZmVycmluZwp0aGUgbWFzdGVyIHJlcXVlc3QgZm9yIGxhdGVyLiBJ ZGVhbGx5LCB3ZSB3b3VsZCBsaWtlIHRvIHRoZW4gYWxzbyByZW1vdmUKdGhlIHNsYXZlIGFuZCBy dW4gc29tZXRoaW5nIGVsc2UgcmF0aGVyIHRoYW4gaGF2ZSBpdCBzdGFsbCB0aGUgcGlwZWxpbmUu CldpdGggbG9hZCBiYWxhbmNpbmcsIHdlIHNob3VsZCBiZSBhYmxlIHRvIG1vdmUgd29ya2xvYWQg YXJvdW5kIGl0LCBidXQKdGhlcmUgaXMgYSBzaW1pbGFyIHN0YWxsIG9uIHRoZSBtYXN0ZXIgcGlw ZWxpbmUgd2hpbGUgaXQgbWF5IHdhaXQgZm9yCnRoZSBzbGF2ZSB0byBiZSBleGVjdXRlZC4gQXQg dGhlIGNvc3Qgb2YgbW9yZSBsYXRlbmN5IGZvciB0aGUgYm9uZGVkCnJlcXVlc3QsIGl0IG1heSBi ZSBpbnRlcmVzdGluZyB0byBsYXVuY2ggYm90aCBvbiB0aGVpciBlbmdpbmVzIGluCmxvY2tzdGVw LiAoQnViYmxlcyBhYm91bmQuKQoKT3BlbnM6IEFsc28gd2hhdCBhYm91dCBib25kaW5nIGFuIGVu Z2luZSBhcyBpdHMgb3duIG1hc3Rlcj8gSXQgZG9lc24ndApicmVhayBhbnl0aGluZyBpbnRlcm5h bGx5LCBzbyBhbGxvdyB0aGUgc2lsbGluZXNzLgoKdjI6IEVtYW5jaXBhdGUgdGhlIGJvbmRzCnYz OiBDb3VwbGUgaW4gZGVsYXllZCBzY2hlZHVsaW5nIGZvciB0aGUgc2VsZnRlc3RzCnY0OiBIYW5k bGUgaW52YWxpZCBtdXR1YWxseSBleGNsdXNpdmUgYm9uZGluZwp2NTogTWVudGlvbiB3aGF0IHRo ZSB1YXBpIGRvZXMKdjY6IHMvbmJvbmQvbnVtX2JvbmRzLwoKU2lnbmVkLW9mZi1ieTogQ2hyaXMg V2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBUdnJ0a28gVXJzdWxpbiA8dHZy dGtvLnVyc3VsaW5AaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRr by51cnN1bGluQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9l bmdpbmVfdHlwZXMuaCAgfCAgIDcgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJj LmMgICAgICAgICAgIHwgIDk4ICsrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfbHJjLmggICAgICAgICAgIHwgICA0ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0 ZXN0X2xyYy5jICAgICAgICB8IDE5MSArKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyAgICAgICB8ICA4NCArKysrKysrKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2xpYl9zd19mZW5jZS5jIHwgICAzICsKIGluY2x1ZGUvdWFw aS9kcm0vaTkxNV9kcm0uaCAgICAgICAgICAgICAgICAgICB8ICA0NCArKysrCiA3IGZpbGVzIGNo YW5nZWQsIDQzMSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9lbmdpbmVfdHlwZXMuaAppbmRleCA3YjQ3ZTAwZmEwODIuLmYzZmMyZThhY2M5MCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmgKQEAgLTQwNSw2ICs0 MDUsMTMgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJICovCiAJdm9pZAkJKCpzdWJtaXRf cmVxdWVzdCkoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpOwogCisJLyoKKwkgKiBDYWxsZWQgb24g c2lnbmFsaW5nIG9mIGEgU1VCTUlUX0ZFTkNFLCBwYXNzaW5nIGFsb25nIHRoZSBzaWduYWxpbmcK KwkgKiByZXF1ZXN0IGRvd24gdG8gdGhlIGJvbmRlZCBwYWlycy4KKwkgKi8KKwl2b2lkICAgICAg ICAgICAgKCpib25kX2V4ZWN1dGUpKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAorCQkJCQlzdHJ1 Y3QgZG1hX2ZlbmNlICpzaWduYWwpOworCiAJLyoKIAkgKiBDYWxsIHdoZW4gdGhlIHByaW9yaXR5 IG9uIGEgcmVxdWVzdCBoYXMgY2hhbmdlZCBhbmQgaXQgYW5kIGl0cwogCSAqIGRlcGVuZGVuY2ll cyBtYXkgbmVlZCByZXNjaGVkdWxpbmcuIE5vdGUgdGhlIHJlcXVlc3QgaXRzZWxmIG1heQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYwppbmRleCAwYjRkMjlkNDgxNmIuLjFmN2JlZTBjYWUw YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMKQEAgLTE4OSw2ICsxODksMTggQEAg c3RydWN0IHZpcnR1YWxfZW5naW5lIHsKIAkJaW50IHByaW87CiAJfSBub2Rlc1tJOTE1X05VTV9F TkdJTkVTXTsKIAorCS8qCisJICogS2VlcCB0cmFjayBvZiBib25kZWQgcGFpcnMgLS0gcmVzdHJp Y3Rpb25zIHVwb24gb24gb3VyIHNlbGVjdGlvbgorCSAqIG9mIHBoeXNpY2FsIGVuZ2luZXMgYW55 IHBhcnRpY3VsYXIgcmVxdWVzdCBtYXkgYmUgc3VibWl0dGVkIHRvLgorCSAqIElmIHdlIHJlY2Vp dmUgYSBzdWJtaXQtZmVuY2UgZnJvbSBhIG1hc3RlciBlbmdpbmUsIHdlIHdpbGwgb25seQorCSAq IHVzZSBvbmUgb2Ygc2libGluZ19tYXNrIHBoeXNpY2FsIGVuZ2luZXMuCisJICovCisJc3RydWN0 IHZlX2JvbmQgeworCQljb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICptYXN0ZXI7CisJCWlu dGVsX2VuZ2luZV9tYXNrX3Qgc2libGluZ19tYXNrOworCX0gKmJvbmRzOworCXVuc2lnbmVkIGlu dCBudW1fYm9uZHM7CisKIAkvKiBBbmQgZmluYWxseSwgd2hpY2ggcGh5c2ljYWwgZW5naW5lcyB0 aGlzIHZpcnR1YWwgZW5naW5lIG1hcHMgb250by4gKi8KIAl1bnNpZ25lZCBpbnQgbnVtX3NpYmxp bmdzOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnNpYmxpbmdzWzBdOwpAQCAtOTYwLDYgKzk3 Miw3IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKIAkJCXJiX2VyYXNlX2NhY2hlZChyYiwgJmV4ZWNsaXN0cy0+dmlydHVhbCk7 CiAJCQlSQl9DTEVBUl9OT0RFKHJiKTsKIAorCQkJR0VNX0JVR19PTighKHJxLT5leGVjdXRpb25f bWFzayAmIGVuZ2luZS0+bWFzaykpOwogCQkJcnEtPmVuZ2luZSA9IGVuZ2luZTsKIAogCQkJaWYg KGVuZ2luZSAhPSB2ZS0+c2libGluZ3NbMF0pIHsKQEAgLTMwNjksNiArMzA4Miw4IEBAIHN0YXRp YyB2b2lkIHZpcnR1YWxfY29udGV4dF9kZXN0cm95KHN0cnVjdCBrcmVmICprcmVmKQogCWlmICh2 ZS0+Y29udGV4dC5zdGF0ZSkKIAkJX19leGVjbGlzdHNfY29udGV4dF9maW5pKCZ2ZS0+Y29udGV4 dCk7CiAKKwlrZnJlZSh2ZS0+Ym9uZHMpOworCiAJaTkxNV90aW1lbGluZV9maW5pKCZ2ZS0+YmFz ZS50aW1lbGluZSk7CiAJa2ZyZWUodmUpOwogfQpAQCAtMzI2NSw2ICszMjgwLDM4IEBAIHN0YXRp YyB2b2lkIHZpcnR1YWxfc3VibWl0X3JlcXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAJ dGFza2xldF9zY2hlZHVsZSgmdmUtPmJhc2UuZXhlY2xpc3RzLnRhc2tsZXQpOwogfQogCitzdGF0 aWMgc3RydWN0IHZlX2JvbmQgKgordmlydHVhbF9maW5kX2JvbmQoc3RydWN0IHZpcnR1YWxfZW5n aW5lICp2ZSwKKwkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICptYXN0ZXIpCit7CisJ aW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgdmUtPm51bV9ib25kczsgaSsrKSB7CisJCWlmICh2 ZS0+Ym9uZHNbaV0ubWFzdGVyID09IG1hc3RlcikKKwkJCXJldHVybiAmdmUtPmJvbmRzW2ldOwor CX0KKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9pZAordmlydHVhbF9ib25kX2V4ZWN1 dGUoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHN0cnVjdCBkbWFfZmVuY2UgKnNpZ25hbCkKK3sK KwlzdHJ1Y3QgdmlydHVhbF9lbmdpbmUgKnZlID0gdG9fdmlydHVhbF9lbmdpbmUocnEtPmVuZ2lu ZSk7CisJc3RydWN0IHZlX2JvbmQgKmJvbmQ7CisKKwlib25kID0gdmlydHVhbF9maW5kX2JvbmQo dmUsIHRvX3JlcXVlc3Qoc2lnbmFsKS0+ZW5naW5lKTsKKwlpZiAoYm9uZCkgeworCQlpbnRlbF9l bmdpbmVfbWFza190IG9sZCwgbmV3LCBjbXA7CisKKwkJY21wID0gUkVBRF9PTkNFKHJxLT5leGVj dXRpb25fbWFzayk7CisJCWRvIHsKKwkJCW9sZCA9IGNtcDsKKwkJCW5ldyA9IGNtcCAmIGJvbmQt PnNpYmxpbmdfbWFzazsKKwkJfSB3aGlsZSAoKGNtcCA9IGNtcHhjaGcoJnJxLT5leGVjdXRpb25f bWFzaywgb2xkLCBuZXcpKSAhPSBvbGQpOworCX0KK30KKwogc3RydWN0IGludGVsX2NvbnRleHQg KgogaW50ZWxfZXhlY2xpc3RzX2NyZWF0ZV92aXJ0dWFsKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0 ICpjdHgsCiAJCQkgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqKnNpYmxpbmdzLApAQCAt MzMwNSw2ICszMzUyLDcgQEAgaW50ZWxfZXhlY2xpc3RzX2NyZWF0ZV92aXJ0dWFsKHN0cnVjdCBp OTE1X2dlbV9jb250ZXh0ICpjdHgsCiAKIAl2ZS0+YmFzZS5zY2hlZHVsZSA9IGk5MTVfc2NoZWR1 bGU7CiAJdmUtPmJhc2Uuc3VibWl0X3JlcXVlc3QgPSB2aXJ0dWFsX3N1Ym1pdF9yZXF1ZXN0Owor CXZlLT5iYXNlLmJvbmRfZXhlY3V0ZSA9IHZpcnR1YWxfYm9uZF9leGVjdXRlOwogCiAJdmUtPmJh c2UuZXhlY2xpc3RzLnF1ZXVlX3ByaW9yaXR5X2hpbnQgPSBJTlRfTUlOOwogCXRhc2tsZXRfaW5p dCgmdmUtPmJhc2UuZXhlY2xpc3RzLnRhc2tsZXQsCkBAIC0zMzk0LDkgKzM0NDIsNTkgQEAgaW50 ZWxfZXhlY2xpc3RzX2Nsb25lX3ZpcnR1YWwoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwK IAlpZiAoSVNfRVJSKGRzdCkpCiAJCXJldHVybiBkc3Q7CiAKKwlpZiAoc2UtPm51bV9ib25kcykg eworCQlzdHJ1Y3QgdmlydHVhbF9lbmdpbmUgKmRlID0gdG9fdmlydHVhbF9lbmdpbmUoZHN0LT5l bmdpbmUpOworCisJCWRlLT5ib25kcyA9IGttZW1kdXAoc2UtPmJvbmRzLAorCQkJCSAgICBzaXpl b2YoKnNlLT5ib25kcykgKiBzZS0+bnVtX2JvbmRzLAorCQkJCSAgICBHRlBfS0VSTkVMKTsKKwkJ aWYgKCFkZS0+Ym9uZHMpIHsKKwkJCWludGVsX2NvbnRleHRfcHV0KGRzdCk7CisJCQlyZXR1cm4g RVJSX1BUUigtRU5PTUVNKTsKKwkJfQorCisJCWRlLT5udW1fYm9uZHMgPSBzZS0+bnVtX2JvbmRz OworCX0KKwogCXJldHVybiBkc3Q7CiB9CiAKK2ludCBpbnRlbF92aXJ0dWFsX2VuZ2luZV9hdHRh Y2hfYm9uZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCQkJICAgICBjb25zdCBz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICptYXN0ZXIsCisJCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpzaWJsaW5nKQoreworCXN0cnVjdCB2aXJ0dWFsX2VuZ2luZSAqdmUgPSB0 b192aXJ0dWFsX2VuZ2luZShlbmdpbmUpOworCXN0cnVjdCB2ZV9ib25kICpib25kOworCWludCBu OworCisJLyogU2FuaXR5IGNoZWNrIHRoZSBzaWJsaW5nIGlzIHBhcnQgb2YgdGhlIHZpcnR1YWwg ZW5naW5lICovCisJZm9yIChuID0gMDsgbiA8IHZlLT5udW1fc2libGluZ3M7IG4rKykKKwkJaWYg KHNpYmxpbmcgPT0gdmUtPnNpYmxpbmdzW25dKQorCQkJYnJlYWs7CisJaWYgKG4gPT0gdmUtPm51 bV9zaWJsaW5ncykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlib25kID0gdmlydHVhbF9maW5kX2Jv bmQodmUsIG1hc3Rlcik7CisJaWYgKGJvbmQpIHsKKwkJYm9uZC0+c2libGluZ19tYXNrIHw9IHNp YmxpbmctPm1hc2s7CisJCXJldHVybiAwOworCX0KKworCWJvbmQgPSBrcmVhbGxvYyh2ZS0+Ym9u ZHMsCisJCQlzaXplb2YoKmJvbmQpICogKHZlLT5udW1fYm9uZHMgKyAxKSwKKwkJCUdGUF9LRVJO RUwpOworCWlmICghYm9uZCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlib25kW3ZlLT5udW1fYm9u ZHNdLm1hc3RlciA9IG1hc3RlcjsKKwlib25kW3ZlLT5udW1fYm9uZHNdLnNpYmxpbmdfbWFzayA9 IHNpYmxpbmctPm1hc2s7CisKKwl2ZS0+Ym9uZHMgPSBib25kOworCXZlLT5udW1fYm9uZHMrKzsK KworCXJldHVybiAwOworfQorCiB2b2lkIGludGVsX2V4ZWNsaXN0c19zaG93X3JlcXVlc3RzKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJCQkgICBzdHJ1Y3QgZHJtX3ByaW50ZXIg Km0sCiAJCQkJICAgdm9pZCAoKnNob3dfcmVxdWVzdCkoc3RydWN0IGRybV9wcmludGVyICptLApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuaAppbmRleCA1NTMwNjA2MDUyZTUuLmUwMjlhZWU4 N2FkZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmgKQEAgLTEyMyw0ICsxMjMsOCBA QCBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqCiBpbnRlbF9leGVjbGlzdHNfY2xvbmVfdmlydHVhbChz dHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCQkJICAgICAgc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqc3JjKTsKIAoraW50IGludGVsX3ZpcnR1YWxfZW5naW5lX2F0dGFjaF9ib25kKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKm1hc3RlciwKKwkJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnNpYmxpbmcpOworCiAjZW5kaWYgLyogX0lOVEVMX0xSQ19IXyAqLwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9zZWxmdGVzdF9scmMuYwppbmRleCA2MTYzN2Y1MjU2OTAuLmE4YzUwOTAwZTJkNCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMKQEAgLTEzLDYgKzEzLDcgQEAKICNp bmNsdWRlICJzZWxmdGVzdHMvaWd0X2dlbV91dGlscy5oIgogI2luY2x1ZGUgInNlbGZ0ZXN0cy9p Z3RfbGl2ZV90ZXN0LmgiCiAjaW5jbHVkZSAic2VsZnRlc3RzL2lndF9zcGlubmVyLmgiCisjaW5j bHVkZSAic2VsZnRlc3RzL2xpYl9zd19mZW5jZS5oIgogI2luY2x1ZGUgInNlbGZ0ZXN0cy9tb2Nr X2NvbnRleHQuaCIKIAogc3RhdGljIGludCBsaXZlX3Nhbml0eWNoZWNrKHZvaWQgKmFyZykKQEAg LTE2MTksNiArMTYyMCwxOTUgQEAgc3RhdGljIGludCBsaXZlX3ZpcnR1YWxfbWFzayh2b2lkICph cmcpCiAJcmV0dXJuIGVycjsKIH0KIAorc3RhdGljIGludCBib25kX3ZpcnR1YWxfZW5naW5lKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAorCQkJICAgICAgIHVuc2lnbmVkIGludCBjbGFz cywKKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICoqc2libGluZ3MsCisJCQkgICAg ICAgdW5zaWduZWQgaW50IG5zaWJsaW5nLAorCQkJICAgICAgIHVuc2lnbmVkIGludCBmbGFncykK KyNkZWZpbmUgQk9ORF9TQ0hFRFVMRSBCSVQoMCkKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICptYXN0ZXI7CisJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKKwlzdHJ1Y3QgaTkxNV9y ZXF1ZXN0ICpycVsxNl07CisJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CisJdW5zaWduZWQgbG9u ZyBuOworCWludCBlcnI7CisKKwlHRU1fQlVHX09OKG5zaWJsaW5nID49IEFSUkFZX1NJWkUocnEp IC0gMSk7CisKKwljdHggPSBrZXJuZWxfY29udGV4dChpOTE1KTsKKwlpZiAoIWN0eCkKKwkJcmV0 dXJuIC1FTk9NRU07CisKKwllcnIgPSAwOworCXJxWzBdID0gRVJSX1BUUigtRU5PTUVNKTsKKwlm b3JfZWFjaF9lbmdpbmUobWFzdGVyLCBpOTE1LCBpZCkgeworCQlzdHJ1Y3QgaTkxNV9zd19mZW5j ZSBmZW5jZSA9IHt9OworCisJCWlmIChtYXN0ZXItPmNsYXNzID09IGNsYXNzKQorCQkJY29udGlu dWU7CisKKwkJbWVtc2V0X3AoKHZvaWQgKilycSwgRVJSX1BUUigtRUlOVkFMKSwgQVJSQVlfU0la RShycSkpOworCisJCXJxWzBdID0gaWd0X3JlcXVlc3RfYWxsb2MoY3R4LCBtYXN0ZXIpOworCQlp ZiAoSVNfRVJSKHJxWzBdKSkgeworCQkJZXJyID0gUFRSX0VSUihycVswXSk7CisJCQlnb3RvIG91 dDsKKwkJfQorCQlpOTE1X3JlcXVlc3RfZ2V0KHJxWzBdKTsKKworCQlpZiAoZmxhZ3MgJiBCT05E X1NDSEVEVUxFKSB7CisJCQlvbnN0YWNrX2ZlbmNlX2luaXQoJmZlbmNlKTsKKwkJCWVyciA9IGk5 MTVfc3dfZmVuY2VfYXdhaXRfc3dfZmVuY2VfZ2ZwKCZycVswXS0+c3VibWl0LAorCQkJCQkJCSAg ICAgICAmZmVuY2UsCisJCQkJCQkJICAgICAgIEdGUF9LRVJORUwpOworCQl9CisJCWk5MTVfcmVx dWVzdF9hZGQocnFbMF0pOworCQlpZiAoZXJyIDwgMCkKKwkJCWdvdG8gb3V0OworCisJCWZvciAo biA9IDA7IG4gPCBuc2libGluZzsgbisrKSB7CisJCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqdmU7 CisKKwkJCXZlID0gaW50ZWxfZXhlY2xpc3RzX2NyZWF0ZV92aXJ0dWFsKGN0eCwKKwkJCQkJCQkg ICAgc2libGluZ3MsCisJCQkJCQkJICAgIG5zaWJsaW5nKTsKKwkJCWlmIChJU19FUlIodmUpKSB7 CisJCQkJZXJyID0gUFRSX0VSUih2ZSk7CisJCQkJb25zdGFja19mZW5jZV9maW5pKCZmZW5jZSk7 CisJCQkJZ290byBvdXQ7CisJCQl9CisKKwkJCWVyciA9IGludGVsX3ZpcnR1YWxfZW5naW5lX2F0 dGFjaF9ib25kKHZlLT5lbmdpbmUsCisJCQkJCQkJICAgICAgIG1hc3RlciwKKwkJCQkJCQkgICAg ICAgc2libGluZ3Nbbl0pOworCQkJaWYgKGVycikgeworCQkJCWludGVsX2NvbnRleHRfcHV0KHZl KTsKKwkJCQlvbnN0YWNrX2ZlbmNlX2ZpbmkoJmZlbmNlKTsKKwkJCQlnb3RvIG91dDsKKwkJCX0K KworCQkJZXJyID0gaW50ZWxfY29udGV4dF9waW4odmUpOworCQkJaW50ZWxfY29udGV4dF9wdXQo dmUpOworCQkJaWYgKGVycikgeworCQkJCW9uc3RhY2tfZmVuY2VfZmluaSgmZmVuY2UpOworCQkJ CWdvdG8gb3V0OworCQkJfQorCisJCQlycVtuICsgMV0gPSBpOTE1X3JlcXVlc3RfY3JlYXRlKHZl KTsKKwkJCWludGVsX2NvbnRleHRfdW5waW4odmUpOworCQkJaWYgKElTX0VSUihycVtuICsgMV0p KSB7CisJCQkJZXJyID0gUFRSX0VSUihycVtuICsgMV0pOworCQkJCW9uc3RhY2tfZmVuY2VfZmlu aSgmZmVuY2UpOworCQkJCWdvdG8gb3V0OworCQkJfQorCQkJaTkxNV9yZXF1ZXN0X2dldChycVtu ICsgMV0pOworCisJCQllcnIgPSBpOTE1X3JlcXVlc3RfYXdhaXRfZXhlY3V0aW9uKHJxW24gKyAx XSwKKwkJCQkJCQkgICAmcnFbMF0tPmZlbmNlLAorCQkJCQkJCSAgIHZlLT5lbmdpbmUtPmJvbmRf ZXhlY3V0ZSk7CisJCQlpOTE1X3JlcXVlc3RfYWRkKHJxW24gKyAxXSk7CisJCQlpZiAoZXJyIDwg MCkgeworCQkJCW9uc3RhY2tfZmVuY2VfZmluaSgmZmVuY2UpOworCQkJCWdvdG8gb3V0OworCQkJ fQorCQl9CisJCW9uc3RhY2tfZmVuY2VfZmluaSgmZmVuY2UpOworCisJCWlmIChpOTE1X3JlcXVl c3Rfd2FpdChycVswXSwKKwkJCQkgICAgICBJOTE1X1dBSVRfTE9DS0VELAorCQkJCSAgICAgIEha IC8gMTApIDwgMCkgeworCQkJcHJfZXJyKCJNYXN0ZXIgcmVxdWVzdCBkaWQgbm90IGV4ZWN1dGUg KG9uICVzKSFcbiIsCisJCQkgICAgICAgcnFbMF0tPmVuZ2luZS0+bmFtZSk7CisJCQllcnIgPSAt RUlPOworCQkJZ290byBvdXQ7CisJCX0KKworCQlmb3IgKG4gPSAwOyBuIDwgbnNpYmxpbmc7IG4r KykgeworCQkJaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJxW24gKyAxXSwKKwkJCQkJICAgICAgSTkx NV9XQUlUX0xPQ0tFRCwKKwkJCQkJICAgICAgTUFYX1NDSEVEVUxFX1RJTUVPVVQpIDwgMCkgewor CQkJCWVyciA9IC1FSU87CisJCQkJZ290byBvdXQ7CisJCQl9CisKKwkJCWlmIChycVtuICsgMV0t PmVuZ2luZSAhPSBzaWJsaW5nc1tuXSkgeworCQkJCXByX2VycigiQm9uZGVkIHJlcXVlc3QgZGlk IG5vdCBleGVjdXRlIG9uIHRhcmdldCBlbmdpbmU6IGV4cGVjdGVkICVzLCB1c2VkICVzOyBtYXN0 ZXIgd2FzICVzXG4iLAorCQkJCSAgICAgICBzaWJsaW5nc1tuXS0+bmFtZSwKKwkJCQkgICAgICAg cnFbbiArIDFdLT5lbmdpbmUtPm5hbWUsCisJCQkJICAgICAgIHJxWzBdLT5lbmdpbmUtPm5hbWUp OworCQkJCWVyciA9IC1FSU5WQUw7CisJCQkJZ290byBvdXQ7CisJCQl9CisJCX0KKworCQlmb3Ig KG4gPSAwOyAhSVNfRVJSKHJxW25dKTsgbisrKQorCQkJaTkxNV9yZXF1ZXN0X3B1dChycVtuXSk7 CisJCXJxWzBdID0gRVJSX1BUUigtRU5PTUVNKTsKKwl9CisKK291dDoKKwlmb3IgKG4gPSAwOyAh SVNfRVJSKHJxW25dKTsgbisrKQorCQlpOTE1X3JlcXVlc3RfcHV0KHJxW25dKTsKKwlpZiAoaWd0 X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCkpCisJCWVyciA9IC1FSU87CisKKwlr ZXJuZWxfY29udGV4dF9jbG9zZShjdHgpOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQg bGl2ZV92aXJ0dWFsX2JvbmQodm9pZCAqYXJnKQoreworCXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGhh c2UgeworCQljb25zdCBjaGFyICpuYW1lOworCQl1bnNpZ25lZCBpbnQgZmxhZ3M7CisJfSBwaGFz ZXNbXSA9IHsKKwkJeyAiIiwgMCB9LAorCQl7ICJzY2hlZHVsZSIsIEJPTkRfU0NIRURVTEUgfSwK KwkJeyB9LAorCX07CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7CisJc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqc2libGluZ3NbTUFYX0VOR0lORV9JTlNUQU5DRSArIDFdOwor CXVuc2lnbmVkIGludCBjbGFzcywgaW5zdDsKKwlpbnQgZXJyID0gMDsKKworCWlmIChVU0VTX0dV Q19TVUJNSVNTSU9OKGk5MTUpKQorCQlyZXR1cm4gMDsKKworCW11dGV4X2xvY2soJmk5MTUtPmRy bS5zdHJ1Y3RfbXV0ZXgpOworCisJZm9yIChjbGFzcyA9IDA7IGNsYXNzIDw9IE1BWF9FTkdJTkVf Q0xBU1M7IGNsYXNzKyspIHsKKwkJY29uc3Qgc3RydWN0IHBoYXNlICpwOworCQlpbnQgbnNpYmxp bmc7CisKKwkJbnNpYmxpbmcgPSAwOworCQlmb3IgKGluc3QgPSAwOyBpbnN0IDw9IE1BWF9FTkdJ TkVfSU5TVEFOQ0U7IGluc3QrKykgeworCQkJaWYgKCFpOTE1LT5lbmdpbmVfY2xhc3NbY2xhc3Nd W2luc3RdKQorCQkJCWJyZWFrOworCisJCQlHRU1fQlVHX09OKG5zaWJsaW5nID09IEFSUkFZX1NJ WkUoc2libGluZ3MpKTsKKwkJCXNpYmxpbmdzW25zaWJsaW5nKytdID0gaTkxNS0+ZW5naW5lX2Ns YXNzW2NsYXNzXVtpbnN0XTsKKwkJfQorCQlpZiAobnNpYmxpbmcgPCAyKQorCQkJY29udGludWU7 CisKKwkJZm9yIChwID0gcGhhc2VzOyBwLT5uYW1lOyBwKyspIHsKKwkJCWVyciA9IGJvbmRfdmly dHVhbF9lbmdpbmUoaTkxNSwKKwkJCQkJCSAgY2xhc3MsIHNpYmxpbmdzLCBuc2libGluZywKKwkJ CQkJCSAgcC0+ZmxhZ3MpOworCQkJaWYgKGVycikgeworCQkJCXByX2VycigiJXMoJXMpOiBmYWls ZWQgY2xhc3M9JWQsIG5zaWJsaW5nPSVkLCBlcnI9JWRcbiIsCisJCQkJICAgICAgIF9fZnVuY19f LCBwLT5uYW1lLCBjbGFzcywgbnNpYmxpbmcsIGVycik7CisJCQkJZ290byBvdXRfdW5sb2NrOwor CQkJfQorCQl9CisJfQorCitvdXRfdW5sb2NrOgorCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0 cnVjdF9tdXRleCk7CisJcmV0dXJuIGVycjsKK30KKwogaW50IGludGVsX2V4ZWNsaXN0c19saXZl X3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKIAlzdGF0aWMgY29u c3Qgc3RydWN0IGk5MTVfc3VidGVzdCB0ZXN0c1tdID0gewpAQCAtMTYzMyw2ICsxODIzLDcgQEAg aW50IGludGVsX2V4ZWNsaXN0c19saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSkKIAkJU1VCVEVTVChsaXZlX3ByZWVtcHRfc21va2UpLAogCQlTVUJURVNUKGxpdmVf dmlydHVhbF9lbmdpbmUpLAogCQlTVUJURVNUKGxpdmVfdmlydHVhbF9tYXNrKSwKKwkJU1VCVEVT VChsaXZlX3ZpcnR1YWxfYm9uZCksCiAJfTsKIAogCWlmICghSEFTX0VYRUNMSVNUUyhpOTE1KSkK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwppbmRleCAzYWUxZDI3MTMwYTgu LjE4MjU0Nzk4NjRkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Y29udGV4dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwpA QCAtMTUwNCw4ICsxNTA0LDkyIEBAIHNldF9lbmdpbmVzX19sb2FkX2JhbGFuY2Uoc3RydWN0IGk5 MTVfdXNlcl9leHRlbnNpb24gX191c2VyICpiYXNlLCB2b2lkICpkYXRhKQogCXJldHVybiBlcnI7 CiB9CiAKK3N0YXRpYyBpbnQKK3NldF9lbmdpbmVzX19ib25kKHN0cnVjdCBpOTE1X3VzZXJfZXh0 ZW5zaW9uIF9fdXNlciAqYmFzZSwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgaTkxNV9jb250ZXh0 X2VuZ2luZXNfYm9uZCBfX3VzZXIgKmV4dCA9CisJCWNvbnRhaW5lcl9vZl91c2VyKGJhc2UsIHR5 cGVvZigqZXh0KSwgYmFzZSk7CisJY29uc3Qgc3RydWN0IHNldF9lbmdpbmVzICpzZXQgPSBkYXRh OworCXN0cnVjdCBpOTE1X2VuZ2luZV9jbGFzc19pbnN0YW5jZSBjaTsKKwlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICp2aXJ0dWFsOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKm1hc3RlcjsKKwl1 MTYgaWR4LCBudW1fYm9uZHM7CisJaW50IGVyciwgbjsKKworCWlmIChnZXRfdXNlcihpZHgsICZl eHQtPnZpcnR1YWxfaW5kZXgpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCWlmIChpZHggPj0gc2V0 LT5lbmdpbmVzLT5udW1fZW5naW5lcykgeworCQlEUk1fREVCVUcoIkludmFsaWQgaW5kZXggZm9y IHZpcnR1YWwgZW5naW5lOiAlZCA+PSAlZFxuIiwKKwkJCSAgaWR4LCBzZXQtPmVuZ2luZXMtPm51 bV9lbmdpbmVzKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWR4ID0gYXJyYXlfaW5kZXhf bm9zcGVjKGlkeCwgc2V0LT5lbmdpbmVzLT5udW1fZW5naW5lcyk7CisJaWYgKCFzZXQtPmVuZ2lu ZXMtPmVuZ2luZXNbaWR4XSkgeworCQlEUk1fREVCVUcoIkludmFsaWQgZW5naW5lIGF0ICVkXG4i LCBpZHgpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJdmlydHVhbCA9IHNldC0+ZW5naW5lcy0+ ZW5naW5lc1tpZHhdLT5lbmdpbmU7CisKKwllcnIgPSBjaGVja191c2VyX21ieigmZXh0LT5mbGFn cyk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCWZvciAobiA9IDA7IG4gPCBBUlJBWV9T SVpFKGV4dC0+bWJ6NjQpOyBuKyspIHsKKwkJZXJyID0gY2hlY2tfdXNlcl9tYnooJmV4dC0+bWJ6 NjRbbl0pOworCQlpZiAoZXJyKQorCQkJcmV0dXJuIGVycjsKKwl9CisKKwlpZiAoY29weV9mcm9t X3VzZXIoJmNpLCAmZXh0LT5tYXN0ZXIsIHNpemVvZihjaSkpKQorCQlyZXR1cm4gLUVGQVVMVDsK KworCW1hc3RlciA9IGludGVsX2VuZ2luZV9sb29rdXBfdXNlcihzZXQtPmN0eC0+aTkxNSwKKwkJ CQkJICBjaS5lbmdpbmVfY2xhc3MsIGNpLmVuZ2luZV9pbnN0YW5jZSk7CisJaWYgKCFtYXN0ZXIp IHsKKwkJRFJNX0RFQlVHKCJVbnJlY29nbmlzZWQgbWFzdGVyIGVuZ2luZTogeyBjbGFzczoldSwg aW5zdGFuY2U6JXUgfVxuIiwKKwkJCSAgY2kuZW5naW5lX2NsYXNzLCBjaS5lbmdpbmVfaW5zdGFu Y2UpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAoZ2V0X3VzZXIobnVtX2JvbmRzLCAm ZXh0LT5udW1fYm9uZHMpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCWZvciAobiA9IDA7IG4gPCBu dW1fYm9uZHM7IG4rKykgeworCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpib25kOworCisJCWlm IChjb3B5X2Zyb21fdXNlcigmY2ksICZleHQtPmVuZ2luZXNbbl0sIHNpemVvZihjaSkpKQorCQkJ cmV0dXJuIC1FRkFVTFQ7CisKKwkJYm9uZCA9IGludGVsX2VuZ2luZV9sb29rdXBfdXNlcihzZXQt PmN0eC0+aTkxNSwKKwkJCQkJCWNpLmVuZ2luZV9jbGFzcywKKwkJCQkJCWNpLmVuZ2luZV9pbnN0 YW5jZSk7CisJCWlmICghYm9uZCkgeworCQkJRFJNX0RFQlVHKCJVbnJlY29nbmlzZWQgZW5naW5l WyVkXSBmb3IgYm9uZGluZzogeyBjbGFzczolZCwgaW5zdGFuY2U6ICVkIH1cbiIsCisJCQkJICBu LCBjaS5lbmdpbmVfY2xhc3MsIGNpLmVuZ2luZV9pbnN0YW5jZSk7CisJCQlyZXR1cm4gLUVJTlZB TDsKKwkJfQorCisJCS8qCisJCSAqIEEgbm9uLXZpcnR1YWwgZW5naW5lIGhhcyBubyBzaWJsaW5n cyB0byBjaG9vc2UgYmV0d2VlbjsgYW5kCisJCSAqIGEgc3VibWl0IGZlbmNlIHdpbGwgYWx3YXlz IGJlIGRpcmVjdGVkIHRvIHRoZSBvbmUgZW5naW5lLgorCQkgKi8KKwkJaWYgKGludGVsX2VuZ2lu ZV9pc192aXJ0dWFsKHZpcnR1YWwpKSB7CisJCQllcnIgPSBpbnRlbF92aXJ0dWFsX2VuZ2luZV9h dHRhY2hfYm9uZCh2aXJ0dWFsLAorCQkJCQkJCSAgICAgICBtYXN0ZXIsCisJCQkJCQkJICAgICAg IGJvbmQpOworCQkJaWYgKGVycikKKwkJCQlyZXR1cm4gZXJyOworCQl9CisJfQorCisJcmV0dXJu IDA7Cit9CisKIHN0YXRpYyBjb25zdCBpOTE1X3VzZXJfZXh0ZW5zaW9uX2ZuIHNldF9lbmdpbmVz X19leHRlbnNpb25zW10gPSB7CiAJW0k5MTVfQ09OVEVYVF9FTkdJTkVTX0VYVF9MT0FEX0JBTEFO Q0VdID0gc2V0X2VuZ2luZXNfX2xvYWRfYmFsYW5jZSwKKwlbSTkxNV9DT05URVhUX0VOR0lORVNf RVhUX0JPTkRdID0gc2V0X2VuZ2luZXNfX2JvbmQsCiB9OwogCiBzdGF0aWMgaW50CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbGliX3N3X2ZlbmNlLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbGliX3N3X2ZlbmNlLmMKaW5kZXggMmJmYTcyYzE2 NTRiLi5iOTc2YzEyODE3YzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9saWJfc3dfZmVuY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMv bGliX3N3X2ZlbmNlLmMKQEAgLTQ1LDYgKzQ1LDkgQEAgdm9pZCBfX29uc3RhY2tfZmVuY2VfaW5p dChzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2UsCiAKIHZvaWQgb25zdGFja19mZW5jZV9maW5p KHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSkKIHsKKwlpZiAoIWZlbmNlLT5mbGFncykKKwkJ cmV0dXJuOworCiAJaTkxNV9zd19mZW5jZV9jb21taXQoZmVuY2UpOwogCWk5MTVfc3dfZmVuY2Vf ZmluaShmZW5jZSk7CiB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgg Yi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKaW5kZXggZjk3NzA5NDgxNjFjLi5lMmRhOTAy N2JjZGYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAorKysgYi9pbmNs dWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKQEAgLTE1NDMsNiArMTU0MywxMCBAQCBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gewogICogc2l6ZWQgYXJndW1lbnQsIHdpbGwgcmV2ZXJ0 IGJhY2sgdG8gZGVmYXVsdCBzZXR0aW5ncy4KICAqCiAgKiBTZWUgc3RydWN0IGk5MTVfY29udGV4 dF9wYXJhbV9lbmdpbmVzLgorICoKKyAqIEV4dGVuc2lvbnM6CisgKiAgIGk5MTVfY29udGV4dF9l bmdpbmVzX2xvYWRfYmFsYW5jZSAoSTkxNV9DT05URVhUX0VOR0lORVNfRVhUX0xPQURfQkFMQU5D RSkKKyAqICAgaTkxNV9jb250ZXh0X2VuZ2luZXNfYm9uZCAoSTkxNV9DT05URVhUX0VOR0lORVNf RVhUX0JPTkQpCiAgKi8KICNkZWZpbmUgSTkxNV9DT05URVhUX1BBUkFNX0VOR0lORVMJMHhhCiAv KiBNdXN0IGJlIGtlcHQgY29tcGFjdCAtLSBubyBob2xlcyBhbmQgd2VsbCBkb2N1bWVudGVkICov CkBAIC0xNjQ2LDkgKzE2NTAsNDkgQEAgc3RydWN0IGk5MTVfY29udGV4dF9lbmdpbmVzX2xvYWRf YmFsYW5jZSB7CiAJc3RydWN0IGk5MTVfZW5naW5lX2NsYXNzX2luc3RhbmNlIGVuZ2luZXNbTl9f XTsgXAogfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSBuYW1lX18KIAorLyoKKyAqIGk5MTVfY29u dGV4dF9lbmdpbmVzX2JvbmQ6CisgKgorICogQ29uc3RydWN0ZWQgYm9uZGVkIHBhaXJzIGZvciBl eGVjdXRpb24gd2l0aGluIGEgdmlydHVhbCBlbmdpbmUuCisgKgorICogQWxsIGVuZ2luZXMgYXJl IGVxdWFsLCBidXQgc29tZSBhcmUgbW9yZSBlcXVhbCB0aGFuIG90aGVycy4gR2l2ZW4KKyAqIHRo ZSBkaXN0cmlidXRpb24gb2YgcmVzb3VyY2VzIGluIHRoZSBIVywgaXQgbWF5IGJlIHByZWZlcmFi bGUgdG8gcnVuCisgKiBhIHJlcXVlc3Qgb24gYSBnaXZlbiBzdWJzZXQgb2YgZW5naW5lcyBpbiBw YXJhbGxlbCB0byBhIHJlcXVlc3Qgb24gYQorICogc3BlY2lmaWMgZW5naW5lLiBXZSBlbmFibGUg dGhpcyBzZWxlY3Rpb24gb2YgZW5naW5lcyB3aXRoaW4gYSB2aXJ0dWFsCisgKiBlbmdpbmUgYnkg c3BlY2lmeWluZyBib25kaW5nIHBhaXJzLCBmb3IgYW55IGdpdmVuIG1hc3RlciBlbmdpbmUgd2Ug d2lsbAorICogb25seSBleGVjdXRlIG9uIG9uZSBvZiB0aGUgY29ycmVzcG9uZGluZyBzaWJsaW5n cyB3aXRoaW4gdGhlIHZpcnR1YWwgZW5naW5lLgorICoKKyAqIFRvIGV4ZWN1dGUgYSByZXF1ZXN0 IGluIHBhcmFsbGVsIG9uIHRoZSBtYXN0ZXIgZW5naW5lIGFuZCBhIHNpYmxpbmcgcmVxdWlyZXMK KyAqIGNvb3JkaW5hdGlvbiB3aXRoIGEgSTkxNV9FWEVDX0ZFTkNFX1NVQk1JVC4KKyAqLworc3Ry dWN0IGk5MTVfY29udGV4dF9lbmdpbmVzX2JvbmQgeworCXN0cnVjdCBpOTE1X3VzZXJfZXh0ZW5z aW9uIGJhc2U7CisKKwlzdHJ1Y3QgaTkxNV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgbWFzdGVyOwor CisJX191MTYgdmlydHVhbF9pbmRleDsgLyogaW5kZXggb2YgdmlydHVhbCBlbmdpbmUgaW4gY3R4 LT5lbmdpbmVzW10gKi8KKwlfX3UxNiBudW1fYm9uZHM7CisKKwlfX3U2NCBmbGFnczsgLyogYWxs IHVuZGVmaW5lZCBmbGFncyBtdXN0IGJlIHplcm8gKi8KKwlfX3U2NCBtYno2NFs0XTsgLyogcmVz ZXJ2ZWQgZm9yIGZ1dHVyZSB1c2U7IG11c3QgYmUgemVybyAqLworCisJc3RydWN0IGk5MTVfZW5n aW5lX2NsYXNzX2luc3RhbmNlIGVuZ2luZXNbMF07Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkp OworCisjZGVmaW5lIEk5MTVfREVGSU5FX0NPTlRFWFRfRU5HSU5FU19CT05EKG5hbWVfXywgTl9f KSBzdHJ1Y3QgeyBcCisJc3RydWN0IGk5MTVfdXNlcl9leHRlbnNpb24gYmFzZTsgXAorCXN0cnVj dCBpOTE1X2VuZ2luZV9jbGFzc19pbnN0YW5jZSBtYXN0ZXI7IFwKKwlfX3UxNiB2aXJ0dWFsX2lu ZGV4OyBcCisJX191MTYgbnVtX2JvbmRzOyBcCisJX191NjQgZmxhZ3M7IFwKKwlfX3U2NCBtYno2 NFs0XTsgXAorCXN0cnVjdCBpOTE1X2VuZ2luZV9jbGFzc19pbnN0YW5jZSBlbmdpbmVzW05fX107 IFwKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSkgbmFtZV9fCisKIHN0cnVjdCBpOTE1X2NvbnRl eHRfcGFyYW1fZW5naW5lcyB7CiAJX191NjQgZXh0ZW5zaW9uczsgLyogbGlua2VkIGNoYWluIG9m IGV4dGVuc2lvbiBibG9ja3MsIDAgdGVybWluYXRlcyAqLwogI2RlZmluZSBJOTE1X0NPTlRFWFRf RU5HSU5FU19FWFRfTE9BRF9CQUxBTkNFIDAgLyogc2VlIGk5MTVfY29udGV4dF9lbmdpbmVzX2xv YWRfYmFsYW5jZSAqLworI2RlZmluZSBJOTE1X0NPTlRFWFRfRU5HSU5FU19FWFRfQk9ORCAxIC8q IHNlZSBpOTE1X2NvbnRleHRfZW5naW5lc19ib25kICovCiAJc3RydWN0IGk5MTVfZW5naW5lX2Ns YXNzX2luc3RhbmNlIGVuZ2luZXNbMF07CiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogCi0t IAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==