From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 19/38] drm/i915: Allow contexts to share a single timeline across all engines Date: Fri, 1 Mar 2019 14:03:45 +0000 Message-ID: <20190301140404.26690-19-chris@chris-wilson.co.uk> References: <20190301140404.26690-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 4A9876E30B for ; Fri, 1 Mar 2019 14:04:49 +0000 (UTC) In-Reply-To: <20190301140404.26690-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 UHJldmlvdXNseSwgb3VyIHZpZXcgaGFzIGJlZW4gYWx3YXlzIHRvIHJ1biB0aGUgZW5naW5lcyBp bmRlcGVuZGVudGx5CndpdGhpbiBhIGNvbnRleHQuIChNdWx0aXBsZSBlbmdpbmVzIGhhcHBlbmVk IGJlZm9yZSB3ZSBoYWQgY29udGV4dHMgYW5kCnRpbWVsaW5lcywgc28gdGhleSBhbHdheXMgb3Bl cmF0ZWQgaW5kZXBlbmRlbnRseSBhbmQgdGhhdCBiZWhhdmlvdXIKcGVyc2lzdGVkIGludG8gY29u dGV4dHMuKSBIb3dldmVyLCBhdCB0aGUgdXNlciBsZXZlbCB0aGUgY29udGV4dCBvZnRlbgpyZXBy ZXNlbnRzIGEgc2luZ2xlIHRpbWVsaW5lIChlLmcuIEdMIGNvbnRleHRzKSBhbmQgdXNlcnNwYWNl IG11c3QKZW5zdXJlIHRoYXQgdGhlIGluZGl2aWR1YWwgZW5naW5lcyBhcmUgc2VyaWFsaXNlZCB0 byBwcmVzZW50IHRoYXQKb3JkZXJpbmcgdG8gdGhlIGNsaWVudCAob3IgZm9yZ290IGFib3V0IHRo aXMgZGV0YWlsIGVudGlyZWx5IGFuZCBob3BlIG5vCm9uZSBub3RpY2VzIC0gYSBmYWlyIHBsb3kg aWYgdGhlIGNsaWVudCBjYW4gb25seSBkaXJlY3RseSBjb250cm9sIG9uZQplbmdpbmUgdGhlbXNl bHZlcyA7KQoKSW4gdGhlIG5leHQgcGF0Y2gsIHdlIHdpbGwgd2FudCB0byBjb25zdHJ1Y3QgYSBz ZXQgb2YgZW5naW5lcyB0aGF0Cm9wZXJhdGUgYXMgb25lLCB0aGF0IGhhdmUgYSBzaW5nbGUgdGlt ZWxpbmUgaW50ZXJ3b3ZlbiBiZXR3ZWVuIHRoZW0sIHRvCnByZXNlbnQgYSBzaW5nbGUgdmlydHVh bCBlbmdpbmUgdG8gdGhlIHVzZXIuIChUaGV5IHN1Ym1pdCB0byB0aGUgdmlydHVhbAplbmdpbmUs IHRoZW4gd2UgZGVjaWRlIHdoaWNoIGVuZ2luZSB0byBleGVjdXRlIG9uIGJhc2VkLikKClRvIHRo YXQgZW5kLCB3ZSB3YW50IHRvIGJlIGFibGUgdG8gY3JlYXRlIGNvbnRleHRzIHdoaWNoIGhhdmUg YSBzaW5nbGUKdGltZWxpbmUgKGZlbmNlIGNvbnRleHQpIHNoYXJlZCBiZXR3ZWVuIGFsbCBlbmdp bmVzLCByYXRoZXIgdGhhbiBtdWx0aXBsZQp0aW1lbGluZXMuCgpTaWduZWQtb2ZmLWJ5OiBDaHJp cyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgICAgICAgfCAzMiArKysrKysrKysrKystLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaCAgICAgICB8ICAzICsrCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyAgICAgICAgICAgfCAxMCArKysrLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmggICAgICAgICAgIHwgIDUgKystCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmMgICAgICAgICAgfCAzOSArKysrKysrKysrKysr KysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmggICAgICAgICAgfCAx MyArKysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgICAgICAg fCAgNSArKy0KIC4uLi9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYyB8 IDE5ICsrKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfY29udGV4 dC5jIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCAgICAgICAgICAgICAgICAg ICB8ICAzICstCiAxMCBmaWxlcyBjaGFuZ2VkLCAxMDQgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4 dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCmluZGV4IGY4ODNk OTk2NTNhMy4uZDhlMjIyODYzNmJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29u dGV4dC5jCkBAIC0yMzksNiArMjM5LDkgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fY29udGV4dF9m cmVlKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCiAJCQljZS0+b3BzLT5kZXN0cm95KGNl KTsKIAl9CiAKKwlpZiAoY3R4LT50aW1lbGluZSkKKwkJaTkxNV90aW1lbGluZV9wdXQoY3R4LT50 aW1lbGluZSk7CisKIAlrZnJlZShjdHgtPm5hbWUpOwogCXB1dF9waWQoY3R4LT5waWQpOwogCkBA IC00NzgsMTIgKzQ4MSwxNyBAQCBzdGF0aWMgdm9pZCBfX2Fzc2lnbl9wcGd0dChzdHJ1Y3QgaTkx NV9nZW1fY29udGV4dCAqY3R4LAogCiBzdGF0aWMgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKgog aTkxNV9nZW1fY3JlYXRlX2NvbnRleHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAotCQkJc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2KQorCQkJc3RydWN0 IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2LAorCQkJdW5zaWduZWQgaW50IGZsYWdz KQogewogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7CiAKIAlsb2NrZGVwX2Fzc2VydF9o ZWxkKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKKwlpZiAoZmxhZ3MgJiBJOTE1X0NP TlRFWFRfQ1JFQVRFX0ZMQUdTX1NJTkdMRV9USU1FTElORSAmJgorCSAgICAhSEFTX0VYRUNMSVNU UyhkZXZfcHJpdikpCisJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOworCiAJLyogUmVhcCB0aGUg bW9zdCBzdGFsZSBjb250ZXh0ICovCiAJY29udGV4dHNfZnJlZV9maXJzdChkZXZfcHJpdik7CiAK QEAgLTUwNiw2ICs1MTQsMTggQEAgaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlpOTE1X3BwZ3R0X3B1dChwcGd0dCk7CiAJfQogCisJ aWYgKGZsYWdzICYgSTkxNV9DT05URVhUX0NSRUFURV9GTEFHU19TSU5HTEVfVElNRUxJTkUpIHsK KwkJc3RydWN0IGk5MTVfdGltZWxpbmUgKnRpbWVsaW5lOworCisJCXRpbWVsaW5lID0gaTkxNV90 aW1lbGluZV9jcmVhdGUoZGV2X3ByaXYsIGN0eC0+bmFtZSwgTlVMTCk7CisJCWlmIChJU19FUlIo dGltZWxpbmUpKSB7CisJCQlfX2Rlc3Ryb3lfaHdfY29udGV4dChjdHgsIGZpbGVfcHJpdik7CisJ CQlyZXR1cm4gRVJSX0NBU1QodGltZWxpbmUpOworCQl9CisKKwkJY3R4LT50aW1lbGluZSA9IHRp bWVsaW5lOworCX0KKwogCXRyYWNlX2k5MTVfY29udGV4dF9jcmVhdGUoY3R4KTsKIAogCXJldHVy biBjdHg7CkBAIC01MzQsNyArNTU0LDcgQEAgaTkxNV9nZW1fY29udGV4dF9jcmVhdGVfZ3Z0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWYgKHJldCkKIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsK IAotCWN0eCA9IGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KHRvX2k5MTUoZGV2KSwgTlVMTCk7CisJ Y3R4ID0gaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQodG9faTkxNShkZXYpLCBOVUxMLCAwKTsKIAlp ZiAoSVNfRVJSKGN0eCkpCiAJCWdvdG8gb3V0OwogCkBAIC01NzAsNyArNTkwLDcgQEAgaTkxNV9n ZW1fY29udGV4dF9jcmVhdGVfa2VybmVsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBp bnQgcHJpbykKIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4OwogCWludCBlcnI7CiAKLQlj dHggPSBpOTE1X2dlbV9jcmVhdGVfY29udGV4dChpOTE1LCBOVUxMKTsKKwljdHggPSBpOTE1X2dl bV9jcmVhdGVfY29udGV4dChpOTE1LCBOVUxMLCAwKTsKIAlpZiAoSVNfRVJSKGN0eCkpCiAJCXJl dHVybiBjdHg7CiAKQEAgLTcwMiw3ICs3MjIsNyBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9vcGVu KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCWlkcl9pbml0X2Jhc2UoJmZpbGVfcHJp di0+dm1faWRyLCAxKTsKIAogCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwot CWN0eCA9IGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KGk5MTUsIGZpbGVfcHJpdik7CisJY3R4ID0g aTkxNV9nZW1fY3JlYXRlX2NvbnRleHQoaTkxNSwgZmlsZV9wcml2LCAwKTsKIAltdXRleF91bmxv Y2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCWlmIChJU19FUlIoY3R4KSkgewogCQlpZHJf ZGVzdHJveSgmZmlsZV9wcml2LT5jb250ZXh0X2lkcik7CkBAIC04MTgsNyArODM4LDcgQEAgbGFz dF9yZXF1ZXN0X29uX2VuZ2luZShzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGltZWxpbmUsCiAKIAly cSA9IGk5MTVfYWN0aXZlX3JlcXVlc3RfcmF3KCZ0aW1lbGluZS0+bGFzdF9yZXF1ZXN0LAogCQkJ CSAgICAgJmVuZ2luZS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0JaWYgKHJxICYmIHJxLT5l bmdpbmUgPT0gZW5naW5lKSB7CisJaWYgKHJxICYmIHJxLT5lbmdpbmUtPm1hc2sgJiBlbmdpbmUt Pm1hc2spIHsKIAkJR0VNX1RSQUNFKCJsYXN0IHJlcXVlc3QgZm9yICVzIG9uIGVuZ2luZSAlczog JWxseDolbGx1XG4iLAogCQkJICB0aW1lbGluZS0+bmFtZSwgZW5naW5lLT5uYW1lLAogCQkJICBy cS0+ZmVuY2UuY29udGV4dCwgcnEtPmZlbmNlLnNlcW5vKTsKQEAgLTE0NzYsNyArMTQ5Niw3IEBA IGludCBpOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQljdHggPSBpOTE1X2dl bV9jcmVhdGVfY29udGV4dChpOTE1LCBmaWxlX3ByaXYpOworCWN0eCA9IGk5MTVfZ2VtX2NyZWF0 ZV9jb250ZXh0KGk5MTUsIGZpbGVfcHJpdiwgYXJncy0+ZmxhZ3MpOwogCW11dGV4X3VubG9jaygm ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCWlmIChJU19FUlIoY3R4KSkKIAkJcmV0dXJuIFBUUl9FUlIo Y3R4KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaAppbmRleCA5N2NmOWQz ZDA3YWUuLmUxZjI3MGMwOThmMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fY29udGV4dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRl eHQuaApAQCAtNDMsNiArNDMsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKIHN0cnVjdCBk cm1faTkxNV9maWxlX3ByaXZhdGU7CiBzdHJ1Y3QgaTkxNV9od19wcGd0dDsKIHN0cnVjdCBpOTE1 X3JlcXVlc3Q7CitzdHJ1Y3QgaTkxNV90aW1lbGluZTsKIHN0cnVjdCBpOTE1X3ZtYTsKIHN0cnVj dCBpbnRlbF9yaW5nOwogCkBAIC03OCw2ICs3OSw4IEBAIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0 IHsKIAkvKiogZmlsZV9wcml2OiBvd25pbmcgZmlsZSBkZXNjcmlwdG9yICovCiAJc3RydWN0IGRy bV9pOTE1X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2OwogCisJc3RydWN0IGk5MTVfdGltZWxpbmUg KnRpbWVsaW5lOworCiAJLyoqCiAJICogQHBwZ3R0OiB1bmlxdWUgYWRkcmVzcyBzcGFjZSAoR1RU KQogCSAqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCmluZGV4IDlkMTExZWVkYWQ1YS4u ZTA4MDdhNjFkY2Y0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVl c3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwpAQCAtMTA0NSw4 ICsxMDQ1LDE0IEBAIHZvaWQgaTkxNV9yZXF1ZXN0X2FkZChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpy ZXF1ZXN0KQogCXByZXYgPSBpOTE1X2FjdGl2ZV9yZXF1ZXN0X3JhdygmdGltZWxpbmUtPmxhc3Rf cmVxdWVzdCwKIAkJCQkgICAgICAgJnJlcXVlc3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwog CWlmIChwcmV2ICYmICFpOTE1X3JlcXVlc3RfY29tcGxldGVkKHByZXYpKSB7Ci0JCWk5MTVfc3df ZmVuY2VfYXdhaXRfc3dfZmVuY2UoJnJlcXVlc3QtPnN1Ym1pdCwgJnByZXYtPnN1Ym1pdCwKLQkJ CQkJICAgICAmcmVxdWVzdC0+c3VibWl0cSk7CisJCWlmIChpc19wb3dlcl9vZl8yKHByZXYtPmVu Z2luZS0+bWFzayB8IGVuZ2luZS0+bWFzaykpCisJCQlpOTE1X3N3X2ZlbmNlX2F3YWl0X3N3X2Zl bmNlKCZyZXF1ZXN0LT5zdWJtaXQsCisJCQkJCQkgICAgICZwcmV2LT5zdWJtaXQsCisJCQkJCQkg ICAgICZyZXF1ZXN0LT5zdWJtaXRxKTsKKwkJZWxzZQorCQkJX19pOTE1X3N3X2ZlbmNlX2F3YWl0 X2RtYV9mZW5jZSgmcmVxdWVzdC0+c3VibWl0LAorCQkJCQkJCSZwcmV2LT5mZW5jZSwKKwkJCQkJ CQkmcmVxdWVzdC0+ZG1hcSk7CiAJCWlmIChlbmdpbmUtPnNjaGVkdWxlKQogCQkJX19pOTE1X3Nj aGVkX25vZGVfYWRkX2RlcGVuZGVuY3koJnJlcXVlc3QtPnNjaGVkLAogCQkJCQkJCSAmcHJldi0+ c2NoZWQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oCmluZGV4IDNlMGQ2MmQzNTIyNi4u ZDQxMTMwNzRhOGY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVl c3QuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaApAQCAtMTI4LDcg KzEyOCwxMCBAQCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0IHsKIAkgKiBJdCBpcyB1c2VkIGJ5IHRoZSBk cml2ZXIgdG8gdGhlbiBxdWV1ZSB0aGUgcmVxdWVzdCBmb3IgZXhlY3V0aW9uLgogCSAqLwogCXN0 cnVjdCBpOTE1X3N3X2ZlbmNlIHN1Ym1pdDsKLQl3YWl0X3F1ZXVlX2VudHJ5X3Qgc3VibWl0cTsK Kwl1bmlvbiB7CisJCXdhaXRfcXVldWVfZW50cnlfdCBzdWJtaXRxOworCQlzdHJ1Y3QgaTkxNV9z d19kbWFfZmVuY2VfY2IgZG1hcTsKKwl9OwogCXN0cnVjdCBsaXN0X2hlYWQgZXhlY3V0ZV9jYjsK IAogCS8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmMKaW5kZXggOGQxNDAwZDM3OGQ3 Li41Mzg3YWFmZDM0MjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3df ZmVuY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmMKQEAgLTM1 OSwxMSArMzU5LDYgQEAgaW50IGk5MTVfc3dfZmVuY2VfYXdhaXRfc3dfZmVuY2VfZ2ZwKHN0cnVj dCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwKIAlyZXR1cm4gX19pOTE1X3N3X2ZlbmNlX2F3YWl0X3N3 X2ZlbmNlKGZlbmNlLCBzaWduYWxlciwgTlVMTCwgZ2ZwKTsKIH0KIAotc3RydWN0IGk5MTVfc3df ZG1hX2ZlbmNlX2NiIHsKLQlzdHJ1Y3QgZG1hX2ZlbmNlX2NiIGJhc2U7Ci0Jc3RydWN0IGk5MTVf c3dfZmVuY2UgKmZlbmNlOwotfTsKLQogc3RydWN0IGk5MTVfc3dfZG1hX2ZlbmNlX2NiX3RpbWVy IHsKIAlzdHJ1Y3QgaTkxNV9zd19kbWFfZmVuY2VfY2IgYmFzZTsKIAlzdHJ1Y3QgZG1hX2ZlbmNl ICpkbWE7CkBAIC00ODAsNiArNDc1LDQwIEBAIGludCBpOTE1X3N3X2ZlbmNlX2F3YWl0X2RtYV9m ZW5jZShzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2UsCiAJcmV0dXJuIHJldDsKIH0KIAorc3Rh dGljIHZvaWQgX19kbWFfaTkxNV9zd19mZW5jZV93YWtlKHN0cnVjdCBkbWFfZmVuY2UgKmRtYSwK KwkJCQkgICAgIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmRhdGEpCit7CisJc3RydWN0IGk5MTVfc3df ZG1hX2ZlbmNlX2NiICpjYiA9IGNvbnRhaW5lcl9vZihkYXRhLCB0eXBlb2YoKmNiKSwgYmFzZSk7 CisKKwlpOTE1X3N3X2ZlbmNlX2NvbXBsZXRlKGNiLT5mZW5jZSk7Cit9CisKK2ludCBfX2k5MTVf c3dfZmVuY2VfYXdhaXRfZG1hX2ZlbmNlKHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwKKwkJ CQkgICAgc3RydWN0IGRtYV9mZW5jZSAqZG1hLAorCQkJCSAgICBzdHJ1Y3QgaTkxNV9zd19kbWFf ZmVuY2VfY2IgKmNiKQoreworCWludCByZXQ7CisKKwlkZWJ1Z19mZW5jZV9hc3NlcnQoZmVuY2Up OworCisJaWYgKGRtYV9mZW5jZV9pc19zaWduYWxlZChkbWEpKQorCQlyZXR1cm4gMDsKKworCWNi LT5mZW5jZSA9IGZlbmNlOworCWk5MTVfc3dfZmVuY2VfYXdhaXQoZmVuY2UpOworCisJcmV0ID0g ZG1hX2ZlbmNlX2FkZF9jYWxsYmFjayhkbWEsICZjYi0+YmFzZSwgX19kbWFfaTkxNV9zd19mZW5j ZV93YWtlKTsKKwlpZiAocmV0ID09IDApIHsKKwkJcmV0ID0gMTsKKwl9IGVsc2UgeworCQlpOTE1 X3N3X2ZlbmNlX2NvbXBsZXRlKGZlbmNlKTsKKwkJaWYgKHJldCA9PSAtRU5PRU5UKSAvKiBmZW5j ZSBhbHJlYWR5IHNpZ25hbGVkICovCisJCQlyZXQgPSAwOworCX0KKworCXJldHVybiByZXQ7Cit9 CisKIGludCBpOTE1X3N3X2ZlbmNlX2F3YWl0X3Jlc2VydmF0aW9uKHN0cnVjdCBpOTE1X3N3X2Zl bmNlICpmZW5jZSwKIAkJCQkgICAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKIAkJ CQkgICAgY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgKmV4Y2x1ZGUsCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3N3X2ZlbmNlLmgKaW5kZXggNmRlYzllMWQxMTAyLi45Y2I1YzNiMzA3YTYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dfZmVuY2UuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmgKQEAgLTksMTQgKzksMTMgQEAKICNpZm5kZWYg X0k5MTVfU1dfRkVOQ0VfSF8KICNkZWZpbmUgX0k5MTVfU1dfRkVOQ0VfSF8KIAorI2luY2x1ZGUg PGxpbnV4L2RtYS1mZW5jZS5oPgogI2luY2x1ZGUgPGxpbnV4L2dmcC5oPgogI2luY2x1ZGUgPGxp bnV4L2tyZWYuaD4KICNpbmNsdWRlIDxsaW51eC9ub3RpZmllci5oPiAvKiBmb3IgTk9USUZZX0RP TkUgKi8KICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CiAKIHN0cnVjdCBjb21wbGV0aW9uOwotc3Ry dWN0IGRtYV9mZW5jZTsKLXN0cnVjdCBkbWFfZmVuY2Vfb3BzOwogc3RydWN0IHJlc2VydmF0aW9u X29iamVjdDsKIAogc3RydWN0IGk5MTVfc3dfZmVuY2UgewpAQCAtNjgsMTAgKzY3LDIwIEBAIGlu dCBpOTE1X3N3X2ZlbmNlX2F3YWl0X3N3X2ZlbmNlKHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5j ZSwKIGludCBpOTE1X3N3X2ZlbmNlX2F3YWl0X3N3X2ZlbmNlX2dmcChzdHJ1Y3QgaTkxNV9zd19m ZW5jZSAqZmVuY2UsCiAJCQkJICAgICBzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqYWZ0ZXIsCiAJCQkJ ICAgICBnZnBfdCBnZnApOworCitzdHJ1Y3QgaTkxNV9zd19kbWFfZmVuY2VfY2IgeworCXN0cnVj dCBkbWFfZmVuY2VfY2IgYmFzZTsKKwlzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2U7Cit9Owor CitpbnQgX19pOTE1X3N3X2ZlbmNlX2F3YWl0X2RtYV9mZW5jZShzdHJ1Y3QgaTkxNV9zd19mZW5j ZSAqZmVuY2UsCisJCQkJICAgIHN0cnVjdCBkbWFfZmVuY2UgKmRtYSwKKwkJCQkgICAgc3RydWN0 IGk5MTVfc3dfZG1hX2ZlbmNlX2NiICpjYik7CiBpbnQgaTkxNV9zd19mZW5jZV9hd2FpdF9kbWFf ZmVuY2Uoc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlLAogCQkJCSAgc3RydWN0IGRtYV9mZW5j ZSAqZG1hLAogCQkJCSAgdW5zaWduZWQgbG9uZyB0aW1lb3V0LAogCQkJCSAgZ2ZwX3QgZ2ZwKTsK KwogaW50IGk5MTVfc3dfZmVuY2VfYXdhaXRfcmVzZXJ2YXRpb24oc3RydWN0IGk5MTVfc3dfZmVu Y2UgKmZlbmNlLAogCQkJCSAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2LAogCQkJ CSAgICBjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyAqZXhjbHVkZSwKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMKaW5kZXggNTBhN2M4NzcwNWM4Li5kNTBhMzNjNTc4YzUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jCkBAIC0yODUzLDcgKzI4NTMsMTAgQEAgc3RhdGljIGludCBleGVjbGlzdHNf Y29udGV4dF9kZWZlcnJlZF9hbGxvYyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCQln b3RvIGVycm9yX2RlcmVmX29iajsKIAl9CiAKLQl0aW1lbGluZSA9IGk5MTVfdGltZWxpbmVfY3Jl YXRlKGN0eC0+aTkxNSwgY3R4LT5uYW1lLCBOVUxMKTsKKwlpZiAoY3R4LT50aW1lbGluZSkKKwkJ dGltZWxpbmUgPSBpOTE1X3RpbWVsaW5lX2dldChjdHgtPnRpbWVsaW5lKTsKKwllbHNlCisJCXRp bWVsaW5lID0gaTkxNV90aW1lbGluZV9jcmVhdGUoY3R4LT5pOTE1LCBjdHgtPm5hbWUsIE5VTEwp OwogCWlmIChJU19FUlIodGltZWxpbmUpKSB7CiAJCXJldCA9IFBUUl9FUlIodGltZWxpbmUpOwog CQlnb3RvIGVycm9yX2RlcmVmX29iajsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvaTkxNV9nZW1fY29udGV4dC5jCmluZGV4IDkxMzNhZmMwMzEzNS4uMTVmMDE2Y2E4ZTBk IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fY29u dGV4dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250 ZXh0LmMKQEAgLTc2LDcgKzc2LDcgQEAgc3RhdGljIGludCBsaXZlX25vcF9zd2l0Y2godm9pZCAq YXJnKQogCX0KIAogCWZvciAobiA9IDA7IG4gPCBuY3R4OyBuKyspIHsKLQkJY3R4W25dID0gaTkx NV9nZW1fY3JlYXRlX2NvbnRleHQoaTkxNSwgZmlsZS0+ZHJpdmVyX3ByaXYpOworCQljdHhbbl0g PSBpOTE1X2dlbV9jcmVhdGVfY29udGV4dChpOTE1LCBmaWxlLT5kcml2ZXJfcHJpdiwgMCk7CiAJ CWlmIChJU19FUlIoY3R4W25dKSkgewogCQkJZXJyID0gUFRSX0VSUihjdHhbbl0pOwogCQkJZ290 byBvdXRfdW5sb2NrOwpAQCAtNTI2LDcgKzUyNiw4IEBAIHN0YXRpYyBpbnQgaWd0X2N0eF9leGVj KHZvaWQgKmFyZykKIAkJCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7CiAJCQlpbnRlbF93 YWtlcmVmX3Qgd2FrZXJlZjsKIAotCQkJY3R4ID0gaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQoaTkx NSwgZmlsZS0+ZHJpdmVyX3ByaXYpOworCQkJY3R4ID0gaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQo aTkxNSwKKwkJCQkJCSAgICAgIGZpbGUtPmRyaXZlcl9wcml2LCAwKTsKIAkJCWlmIChJU19FUlIo Y3R4KSkgewogCQkJCWVyciA9IFBUUl9FUlIoY3R4KTsKIAkJCQlnb3RvIG91dF91bmxvY2s7CkBA IC02MjMsNyArNjI0LDggQEAgc3RhdGljIGludCBpZ3Rfc2hhcmVkX2N0eF9leGVjKHZvaWQgKmFy ZykKIAkJaWYgKGVycikKIAkJCWdvdG8gb3V0X3VubG9jazsKIAotCQlwYXJlbnQgPSBpOTE1X2dl bV9jcmVhdGVfY29udGV4dChpOTE1LCBmaWxlLT5kcml2ZXJfcHJpdik7CisJCXBhcmVudCA9IGk5 MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KGk5MTUsCisJCQkJCQkgZmlsZS0+ZHJpdmVyX3ByaXYsIDAp OwogCQlpZiAoSVNfRVJSKHBhcmVudCkpIHsKIAkJCWVyciA9IFBUUl9FUlIocGFyZW50KTsKIAkJ CWlmIChlcnIgPT0gLUVOT0RFVikgLyogbm8gbG9naWNhbCBjdHggc3VwcG9ydCAqLwpAQCAtNjQ1 LDcgKzY0Nyw4IEBAIHN0YXRpYyBpbnQgaWd0X3NoYXJlZF9jdHhfZXhlYyh2b2lkICphcmcpCiAJ CQlpZiAoY3R4KQogCQkJCV9fZGVzdHJveV9od19jb250ZXh0KGN0eCwgZmlsZS0+ZHJpdmVyX3By aXYpOwogCi0JCQljdHggPSBpOTE1X2dlbV9jcmVhdGVfY29udGV4dChpOTE1LCBmaWxlLT5kcml2 ZXJfcHJpdik7CisJCQljdHggPSBpOTE1X2dlbV9jcmVhdGVfY29udGV4dChpOTE1LAorCQkJCQkJ ICAgICAgZmlsZS0+ZHJpdmVyX3ByaXYsIDApOwogCQkJaWYgKElTX0VSUihjdHgpKSB7CiAJCQkJ ZXJyID0gUFRSX0VSUihjdHgpOwogCQkJCWdvdG8gb3V0X3VubG9jazsKQEAgLTEwOTEsNyArMTA5 NCw3IEBAIF9faWd0X2N0eF9zc2V1KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCiAJ bXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKLQljdHggPSBpOTE1X2dlbV9j cmVhdGVfY29udGV4dChpOTE1LCBmaWxlLT5kcml2ZXJfcHJpdik7CisJY3R4ID0gaTkxNV9nZW1f Y3JlYXRlX2NvbnRleHQoaTkxNSwgZmlsZS0+ZHJpdmVyX3ByaXYsIDApOwogCWlmIChJU19FUlIo Y3R4KSkgewogCQlyZXQgPSBQVFJfRVJSKGN0eCk7CiAJCWdvdG8gb3V0X3VubG9jazsKQEAgLTEy MDEsNyArMTIwNCw3IEBAIHN0YXRpYyBpbnQgaWd0X2N0eF9yZWFkb25seSh2b2lkICphcmcpCiAJ aWYgKGVycikKIAkJZ290byBvdXRfdW5sb2NrOwogCi0JY3R4ID0gaTkxNV9nZW1fY3JlYXRlX2Nv bnRleHQoaTkxNSwgZmlsZS0+ZHJpdmVyX3ByaXYpOworCWN0eCA9IGk5MTVfZ2VtX2NyZWF0ZV9j b250ZXh0KGk5MTUsIGZpbGUtPmRyaXZlcl9wcml2LCAwKTsKIAlpZiAoSVNfRVJSKGN0eCkpIHsK IAkJZXJyID0gUFRSX0VSUihjdHgpOwogCQlnb3RvIG91dF91bmxvY2s7CkBAIC0xNTI3LDEzICsx NTMwLDEzIEBAIHN0YXRpYyBpbnQgaWd0X3ZtX2lzb2xhdGlvbih2b2lkICphcmcpCiAJaWYgKGVy cikKIAkJZ290byBvdXRfdW5sb2NrOwogCi0JY3R4X2EgPSBpOTE1X2dlbV9jcmVhdGVfY29udGV4 dChpOTE1LCBmaWxlLT5kcml2ZXJfcHJpdik7CisJY3R4X2EgPSBpOTE1X2dlbV9jcmVhdGVfY29u dGV4dChpOTE1LCBmaWxlLT5kcml2ZXJfcHJpdiwgMCk7CiAJaWYgKElTX0VSUihjdHhfYSkpIHsK IAkJZXJyID0gUFRSX0VSUihjdHhfYSk7CiAJCWdvdG8gb3V0X3VubG9jazsKIAl9CiAKLQljdHhf YiA9IGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KGk5MTUsIGZpbGUtPmRyaXZlcl9wcml2KTsKKwlj dHhfYiA9IGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KGk5MTUsIGZpbGUtPmRyaXZlcl9wcml2LCAw KTsKIAlpZiAoSVNfRVJSKGN0eF9iKSkgewogCQllcnIgPSBQVFJfRVJSKGN0eF9iKTsKIAkJZ290 byBvdXRfdW5sb2NrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L21vY2tfY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfY29u dGV4dC5jCmluZGV4IDVlZGRmOWZjZmU4YS4uNWQwZmYyMjkzYWJjIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19jb250ZXh0LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfY29udGV4dC5jCkBAIC05NSw3ICs5NSw3IEBAIGxp dmVfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgc3RydWN0IGRybV9maWxl ICpmaWxlKQogewogCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgp OwogCi0JcmV0dXJuIGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KGk5MTUsIGZpbGUtPmRyaXZlcl9w cml2KTsKKwlyZXR1cm4gaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQoaTkxNSwgZmlsZS0+ZHJpdmVy X3ByaXYsIDApOwogfQogCiBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqCmRpZmYgLS1naXQgYS9p bmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgK aW5kZXggZWVjNjM1ZmIyZTFjLi40NTFkMmYzNjgzMGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFw aS9kcm0vaTkxNV9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKQEAgLTE0 NTIsOCArMTQ1Miw5IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9jcmVhdGVfZXh0IHsK IAlfX3UzMiBjdHhfaWQ7IC8qIG91dHB1dDogaWQgb2YgbmV3IGNvbnRleHQqLwogCV9fdTMyIGZs YWdzOwogI2RlZmluZSBJOTE1X0NPTlRFWFRfQ1JFQVRFX0ZMQUdTX1VTRV9FWFRFTlNJT05TCSgx dSA8PCAwKQorI2RlZmluZSBJOTE1X0NPTlRFWFRfQ1JFQVRFX0ZMQUdTX1NJTkdMRV9USU1FTElO RQkoMXUgPDwgMSkKICNkZWZpbmUgSTkxNV9DT05URVhUX0NSRUFURV9GTEFHU19VTktOT1dOIFwK LQkoLShJOTE1X0NPTlRFWFRfQ1JFQVRFX0ZMQUdTX1VTRV9FWFRFTlNJT05TIDw8IDEpKQorCSgt KEk5MTVfQ09OVEVYVF9DUkVBVEVfRkxBR1NfU0lOR0xFX1RJTUVMSU5FIDw8IDEpKQogCV9fdTY0 IGV4dGVuc2lvbnM7CiB9OwogCi0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeA==