From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 10/39] drm/i915: Allow contexts to share a single timeline across all engines Date: Wed, 13 Mar 2019 14:43:32 +0000 Message-ID: <20190313144401.17735-10-chris@chris-wilson.co.uk> References: <20190313144401.17735-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 5C8206E0F3 for ; Wed, 13 Mar 2019 14:45:38 +0000 (UTC) In-Reply-To: <20190313144401.17735-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 bmVzLCByYXRoZXIgdGhhbiBtdWx0aXBsZQp0aW1lbGluZXMuCgp2MjogTW92ZSB0aGUgc3BlY2lh bGlzZWQgdGltZWxpbmUgb3JkZXJpbmcgdG8gaXRzIG93biBmdW5jdGlvbi4KClNpZ25lZC1vZmYt Ynk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyAgICAgICB8IDMyICsrKysrKy0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0X3R5cGVzLmggfCAgMiArCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyAgICAgICAgICAgfCA4MCArKysrKysrKysrKysr LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaCAgICAgICAgICAgfCAg NSArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zd19mZW5jZS5jICAgICAgICAgIHwgMzkg KysrKysrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmggICAgICAgICAg fCAxMyArKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICAgICAgICB8 ICA1ICstCiAuLi4vZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMgfCAx OCArKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfY29udGV4dC5jIHwg IDIgKy0KIGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCAgICAgICAgICAgICAgICAgICB8ICAz ICstCiAxMCBmaWxlcyBjaGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCmluZGV4IDA3YzA5N2FkODNl ZS4uNGU0YjBiNWM0YmUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5j CkBAIC0yMzgsNiArMjM4LDkgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fY29udGV4dF9mcmVlKHN0 cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCiAJcmJ0cmVlX3Bvc3RvcmRlcl9mb3JfZWFjaF9l bnRyeV9zYWZlKGl0LCBuLCAmY3R4LT5od19jb250ZXh0cywgbm9kZSkKIAkJaW50ZWxfY29udGV4 dF9wdXQoaXQpOwogCisJaWYgKGN0eC0+dGltZWxpbmUpCisJCWk5MTVfdGltZWxpbmVfcHV0KGN0 eC0+dGltZWxpbmUpOworCiAJa2ZyZWUoY3R4LT5uYW1lKTsKIAlwdXRfcGlkKGN0eC0+cGlkKTsK IApAQCAtNDQ5LDEyICs0NTIsMTcgQEAgc3RhdGljIHZvaWQgX19hc3NpZ25fcHBndHQoc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAogc3RhdGljIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0 ICoKIGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKLQkJCXN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVfcHJpdikKKwkJCXN0 cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVfcHJpdiwKKwkJCXVuc2lnbmVkIGludCBm bGFncykKIHsKIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4OwogCiAJbG9ja2RlcF9hc3Nl cnRfaGVsZCgmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCisJaWYgKGZsYWdzICYgSTkx NV9DT05URVhUX0NSRUFURV9GTEFHU19TSU5HTEVfVElNRUxJTkUgJiYKKwkgICAgIUhBU19FWEVD TElTVFMoZGV2X3ByaXYpKQorCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKwogCS8qIFJlYXAg dGhlIG1vc3Qgc3RhbGUgY29udGV4dCAqLwogCWNvbnRleHRzX2ZyZWVfZmlyc3QoZGV2X3ByaXYp OwogCkBAIC00NzcsNiArNDg1LDE4IEBAIGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJaTkxNV9wcGd0dF9wdXQocHBndHQpOwogCX0K IAorCWlmIChmbGFncyAmIEk5MTVfQ09OVEVYVF9DUkVBVEVfRkxBR1NfU0lOR0xFX1RJTUVMSU5F KSB7CisJCXN0cnVjdCBpOTE1X3RpbWVsaW5lICp0aW1lbGluZTsKKworCQl0aW1lbGluZSA9IGk5 MTVfdGltZWxpbmVfY3JlYXRlKGRldl9wcml2LCBjdHgtPm5hbWUsIE5VTEwpOworCQlpZiAoSVNf RVJSKHRpbWVsaW5lKSkgeworCQkJX19kZXN0cm95X2h3X2NvbnRleHQoY3R4LCBmaWxlX3ByaXYp OworCQkJcmV0dXJuIEVSUl9DQVNUKHRpbWVsaW5lKTsKKwkJfQorCisJCWN0eC0+dGltZWxpbmUg PSB0aW1lbGluZTsKKwl9CisKIAl0cmFjZV9pOTE1X2NvbnRleHRfY3JlYXRlKGN0eCk7CiAKIAly ZXR1cm4gY3R4OwpAQCAtNTA1LDcgKzUyNSw3IEBAIGk5MTVfZ2VtX2NvbnRleHRfY3JlYXRlX2d2 dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWlmIChyZXQpCiAJCXJldHVybiBFUlJfUFRSKHJl dCk7CiAKLQljdHggPSBpOTE1X2dlbV9jcmVhdGVfY29udGV4dCh0b19pOTE1KGRldiksIE5VTEwp OworCWN0eCA9IGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KHRvX2k5MTUoZGV2KSwgTlVMTCwgMCk7 CiAJaWYgKElTX0VSUihjdHgpKQogCQlnb3RvIG91dDsKIApAQCAtNTQxLDcgKzU2MSw3IEBAIGk5 MTVfZ2VtX2NvbnRleHRfY3JlYXRlX2tlcm5lbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSwgaW50IHByaW8pCiAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKIAlpbnQgZXJyOwog Ci0JY3R4ID0gaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQoaTkxNSwgTlVMTCk7CisJY3R4ID0gaTkx NV9nZW1fY3JlYXRlX2NvbnRleHQoaTkxNSwgTlVMTCwgMCk7CiAJaWYgKElTX0VSUihjdHgpKQog CQlyZXR1cm4gY3R4OwogCkBAIC02NzMsNyArNjkzLDcgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRf b3BlbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAlpZHJfaW5pdF9iYXNlKCZmaWxl X3ByaXYtPnZtX2lkciwgMSk7CiAKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4 KTsKLQljdHggPSBpOTE1X2dlbV9jcmVhdGVfY29udGV4dChpOTE1LCBmaWxlX3ByaXYpOworCWN0 eCA9IGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KGk5MTUsIGZpbGVfcHJpdiwgMCk7CiAJbXV0ZXhf dW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAlpZiAoSVNfRVJSKGN0eCkpIHsKIAkJ aWRyX2Rlc3Ryb3koJmZpbGVfcHJpdi0+Y29udGV4dF9pZHIpOwpAQCAtNzg5LDcgKzgwOSw3IEBA IGxhc3RfcmVxdWVzdF9vbl9lbmdpbmUoc3RydWN0IGk5MTVfdGltZWxpbmUgKnRpbWVsaW5lLAog CiAJcnEgPSBpOTE1X2FjdGl2ZV9yZXF1ZXN0X3JhdygmdGltZWxpbmUtPmxhc3RfcmVxdWVzdCwK IAkJCQkgICAgICZlbmdpbmUtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCWlmIChycSAmJiBy cS0+ZW5naW5lID09IGVuZ2luZSkgeworCWlmIChycSAmJiBycS0+ZW5naW5lLT5tYXNrICYgZW5n aW5lLT5tYXNrKSB7CiAJCUdFTV9UUkFDRSgibGFzdCByZXF1ZXN0IGZvciAlcyBvbiBlbmdpbmUg JXM6ICVsbHg6JWxsdVxuIiwKIAkJCSAgdGltZWxpbmUtPm5hbWUsIGVuZ2luZS0+bmFtZSwKIAkJ CSAgcnEtPmZlbmNlLmNvbnRleHQsIHJxLT5mZW5jZS5zZXFubyk7CkBAIC0xNTA4LDcgKzE1Mjgs NyBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JY3R4ID0gaTkx NV9nZW1fY3JlYXRlX2NvbnRleHQoaTkxNSwgZmlsZV9wcml2KTsKKwljdHggPSBpOTE1X2dlbV9j cmVhdGVfY29udGV4dChpOTE1LCBmaWxlX3ByaXYsIGFyZ3MtPmZsYWdzKTsKIAltdXRleF91bmxv Y2soJmRldi0+c3RydWN0X211dGV4KTsKIAlpZiAoSVNfRVJSKGN0eCkpCiAJCXJldHVybiBQVFJf RVJSKGN0eCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250 ZXh0X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0X3R5cGVz LmgKaW5kZXggMmJmMTk3MzBlYWE5Li5mOGY2ZTZjOTYwYTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHRfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0X3R5cGVzLmgKQEAgLTQxLDYgKzQxLDggQEAgc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgewogCS8qKiBmaWxlX3ByaXY6IG93bmluZyBmaWxlIGRlc2NyaXB0 b3IgKi8KIAlzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXY7CiAKKwlzdHJ1 Y3QgaTkxNV90aW1lbGluZSAqdGltZWxpbmU7CisKIAkvKioKIAkgKiBAcHBndHQ6IHVuaXF1ZSBh ZGRyZXNzIHNwYWNlIChHVFQpCiAJICoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMKaW5k ZXggMGEzZDk0NTE3ZDBhLi4yMzgyMzM5MTcyYjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVxdWVzdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVx dWVzdC5jCkBAIC05OTMsNiArOTkzLDYwIEBAIHZvaWQgaTkxNV9yZXF1ZXN0X3NraXAoc3RydWN0 IGk5MTVfcmVxdWVzdCAqcnEsIGludCBlcnJvcikKIAltZW1zZXQodmFkZHIgKyBoZWFkLCAwLCBy cS0+cG9zdGZpeCAtIGhlYWQpOwogfQogCitzdGF0aWMgc3RydWN0IGk5MTVfcmVxdWVzdCAqCitf X2k5MTVfcmVxdWVzdF9hZGRfdG9fdGltZWxpbmUoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCit7 CisJc3RydWN0IGk5MTVfdGltZWxpbmUgKnRpbWVsaW5lID0gcnEtPnRpbWVsaW5lOworCXN0cnVj dCBpOTE1X3JlcXVlc3QgKnByZXY7CisKKwkvKgorCSAqIERlcGVuZGVuY3kgdHJhY2tpbmcgYW5k IHJlcXVlc3Qgb3JkZXJpbmcgYWxvbmcgdGhlIHRpbWVsaW5lCisJICogaXMgc3BlY2lhbCBjYXNl ZCBzbyB0aGF0IHdlIGNhbiBlbGltaW5hdGUgcmVkdW5kYW50IG9yZGVyaW5nCisJICogb3BlcmF0 aW9ucyB3aGlsZSBidWlsZGluZyB0aGUgcmVxdWVzdCAod2Uga25vdyB0aGF0IHRoZSB0aW1lbGlu ZQorCSAqIGl0c2VsZiBpcyBvcmRlcmVkLCBhbmQgaGVyZSB3ZSBndWFyYW50ZWUgaXQpLgorCSAq CisJICogQXMgd2Uga25vdyB3ZSB3aWxsIG5lZWQgdG8gZW1pdCB0cmFja2luZyBhbG9uZyB0aGUg dGltZWxpbmUsCisJICogd2UgZW1iZWQgdGhlIGhvb2tzIGludG8gb3VyIHJlcXVlc3Qgc3RydWN0 IC0tIGF0IHRoZSBjb3N0IG9mCisJICogaGF2aW5nIHRvIGhhdmUgc3BlY2lhbGlzZWQgbm8tYWxs b2NhdGlvbiBpbnRlcmZhY2VzICh3aGljaCB3aWxsCisJICogYmUgYmVuZWZpY2lhbCBlbHNld2hl cmUpLgorCSAqCisJICogQSBzZWNvbmQgYmVuZWZpdCB0byBvcGVuLWNvZGluZyBpOTE1X3JlcXVl c3RfYXdhaXRfcmVxdWVzdCBpcworCSAqIHRoYXQgd2UgY2FuIGFwcGx5IGEgc2xpZ2h0IHZhcmlh bnQgb2YgdGhlIHJ1bGVzIHNwZWNpYWxpc2VkCisJICogZm9yIHRpbWVsaW5lcyB0aGF0IGp1bXAg YmV0d2VlbiBlbmdpbmVzIChzdWNoIGFzIHZpcnR1YWwgZW5naW5lcykuCisJICogSWYgd2UgY29u c2lkZXIgdGhlIGNhc2Ugb2YgdmlydHVhbCBlbmdpbmUsIHdlIG11c3QgZW1pdCBhIGRtYS1mZW5j ZQorCSAqIHRvIHByZXZlbnQgc2NoZWR1bGluZyBvZiB0aGUgc2Vjb25kIHJlcXVlc3QgdW50aWwg dGhlIGZpcnN0IGlzCisJICogY29tcGxldGUgKHRvIG1heGltaXNlIG91ciBncmVlZHkgbGF0ZSBs b2FkIGJhbGFuY2luZykgYW5kIHRoaXMKKwkgKiBwcmVjbHVkZXMgb3B0aW1pc2luZyB0byB1c2Ug c2VtYXBob3JlcyBzZXJpYWxpc2F0aW9uIG9mIGEgc2luZ2xlCisJICogdGltZWxpbmUgYWNyb3Nz IGVuZ2luZXMuCisJICovCisJcHJldiA9IGk5MTVfYWN0aXZlX3JlcXVlc3RfcmF3KCZ0aW1lbGlu ZS0+bGFzdF9yZXF1ZXN0LAorCQkJCSAgICAgICAmcnEtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgp OworCWlmIChwcmV2ICYmICFpOTE1X3JlcXVlc3RfY29tcGxldGVkKHByZXYpKSB7CisJCWlmIChp c19wb3dlcl9vZl8yKHByZXYtPmVuZ2luZS0+bWFzayB8IHJxLT5lbmdpbmUtPm1hc2spKQorCQkJ aTkxNV9zd19mZW5jZV9hd2FpdF9zd19mZW5jZSgmcnEtPnN1Ym1pdCwKKwkJCQkJCSAgICAgJnBy ZXYtPnN1Ym1pdCwKKwkJCQkJCSAgICAgJnJxLT5zdWJtaXRxKTsKKwkJZWxzZQorCQkJX19pOTE1 X3N3X2ZlbmNlX2F3YWl0X2RtYV9mZW5jZSgmcnEtPnN1Ym1pdCwKKwkJCQkJCQkmcHJldi0+ZmVu Y2UsCisJCQkJCQkJJnJxLT5kbWFxKTsKKwkJaWYgKHJxLT5lbmdpbmUtPnNjaGVkdWxlKQorCQkJ X19pOTE1X3NjaGVkX25vZGVfYWRkX2RlcGVuZGVuY3koJnJxLT5zY2hlZCwKKwkJCQkJCQkgJnBy ZXYtPnNjaGVkLAorCQkJCQkJCSAmcnEtPmRlcCwKKwkJCQkJCQkgMCk7CisJfQorCisJc3Bpbl9s b2NrX2lycSgmdGltZWxpbmUtPmxvY2spOworCWxpc3RfYWRkX3RhaWwoJnJxLT5saW5rLCAmdGlt ZWxpbmUtPnJlcXVlc3RzKTsKKwlzcGluX3VubG9ja19pcnEoJnRpbWVsaW5lLT5sb2NrKTsKKwor CUdFTV9CVUdfT04odGltZWxpbmUtPnNlcW5vICE9IHJxLT5mZW5jZS5zZXFubyk7CisJX19pOTE1 X2FjdGl2ZV9yZXF1ZXN0X3NldCgmdGltZWxpbmUtPmxhc3RfcmVxdWVzdCwgcnEpOworCisJcmV0 dXJuIHByZXY7Cit9CisKIC8qCiAgKiBOQjogVGhpcyBmdW5jdGlvbiBpcyBub3QgYWxsb3dlZCB0 byBmYWlsLiBEb2luZyBzbyB3b3VsZCBtZWFuIHRoZSB0aGUKICAqIHJlcXVlc3QgaXMgbm90IGJl aW5nIHRyYWNrZWQgZm9yIGNvbXBsZXRpb24gYnV0IHRoZSB3b3JrIGl0c2VsZiBpcwpAQCAtMTAz NywzMSArMTA5MSw3IEBAIHZvaWQgaTkxNV9yZXF1ZXN0X2FkZChzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICpyZXF1ZXN0KQogCUdFTV9CVUdfT04oSVNfRVJSKGNzKSk7CiAJcmVxdWVzdC0+cG9zdGZpeCA9 IGludGVsX3Jpbmdfb2Zmc2V0KHJlcXVlc3QsIGNzKTsKIAotCS8qCi0JICogU2VhbCB0aGUgcmVx dWVzdCBhbmQgbWFyayBpdCBhcyBwZW5kaW5nIGV4ZWN1dGlvbi4gTm90ZSB0aGF0Ci0JICogd2Ug bWF5IGluc3BlY3QgdGhpcyBzdGF0ZSwgd2l0aG91dCBob2xkaW5nIGFueSBsb2NrcywgZHVyaW5n Ci0JICogaGFuZ2NoZWNrLiBIZW5jZSB3ZSBhcHBseSB0aGUgYmFycmllciB0byBlbnN1cmUgdGhh dCB3ZSBkbyBub3QKLQkgKiBzZWUgYSBtb3JlIHJlY2VudCB2YWx1ZSBpbiB0aGUgaHdzIHRoYW4g d2UgYXJlIHRyYWNraW5nLgotCSAqLwotCi0JcHJldiA9IGk5MTVfYWN0aXZlX3JlcXVlc3RfcmF3 KCZ0aW1lbGluZS0+bGFzdF9yZXF1ZXN0LAotCQkJCSAgICAgICAmcmVxdWVzdC0+aTkxNS0+ZHJt LnN0cnVjdF9tdXRleCk7Ci0JaWYgKHByZXYgJiYgIWk5MTVfcmVxdWVzdF9jb21wbGV0ZWQocHJl dikpIHsKLQkJaTkxNV9zd19mZW5jZV9hd2FpdF9zd19mZW5jZSgmcmVxdWVzdC0+c3VibWl0LCAm cHJldi0+c3VibWl0LAotCQkJCQkgICAgICZyZXF1ZXN0LT5zdWJtaXRxKTsKLQkJaWYgKGVuZ2lu ZS0+c2NoZWR1bGUpCi0JCQlfX2k5MTVfc2NoZWRfbm9kZV9hZGRfZGVwZW5kZW5jeSgmcmVxdWVz dC0+c2NoZWQsCi0JCQkJCQkJICZwcmV2LT5zY2hlZCwKLQkJCQkJCQkgJnJlcXVlc3QtPmRlcCwK LQkJCQkJCQkgMCk7Ci0JfQotCi0Jc3Bpbl9sb2NrX2lycSgmdGltZWxpbmUtPmxvY2spOwotCWxp c3RfYWRkX3RhaWwoJnJlcXVlc3QtPmxpbmssICZ0aW1lbGluZS0+cmVxdWVzdHMpOwotCXNwaW5f dW5sb2NrX2lycSgmdGltZWxpbmUtPmxvY2spOwotCi0JR0VNX0JVR19PTih0aW1lbGluZS0+c2Vx bm8gIT0gcmVxdWVzdC0+ZmVuY2Uuc2Vxbm8pOwotCV9faTkxNV9hY3RpdmVfcmVxdWVzdF9zZXQo JnRpbWVsaW5lLT5sYXN0X3JlcXVlc3QsIHJlcXVlc3QpOworCXByZXYgPSBfX2k5MTVfcmVxdWVz dF9hZGRfdG9fdGltZWxpbmUocmVxdWVzdCk7CiAKIAlsaXN0X2FkZF90YWlsKCZyZXF1ZXN0LT5y aW5nX2xpbmssICZyaW5nLT5yZXF1ZXN0X2xpc3QpOwogCWlmIChsaXN0X2lzX2ZpcnN0KCZyZXF1 ZXN0LT5yaW5nX2xpbmssICZyaW5nLT5yZXF1ZXN0X2xpc3QpKSB7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVxdWVzdC5oCmluZGV4IDhjOGZhNTAxMDY0NC4uY2Q2YzEzMDk2NGNkIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlcXVlc3QuaApAQCAtMTI4LDcgKzEyOCwxMCBAQCBzdHJ1Y3QgaTkxNV9y ZXF1ZXN0IHsKIAkgKiBJdCBpcyB1c2VkIGJ5IHRoZSBkcml2ZXIgdG8gdGhlbiBxdWV1ZSB0aGUg cmVxdWVzdCBmb3IgZXhlY3V0aW9uLgogCSAqLwogCXN0cnVjdCBpOTE1X3N3X2ZlbmNlIHN1Ym1p dDsKLQl3YWl0X3F1ZXVlX2VudHJ5X3Qgc3VibWl0cTsKKwl1bmlvbiB7CisJCXdhaXRfcXVldWVf ZW50cnlfdCBzdWJtaXRxOworCQlzdHJ1Y3QgaTkxNV9zd19kbWFfZmVuY2VfY2IgZG1hcTsKKwl9 OwogCXN0cnVjdCBsaXN0X2hlYWQgZXhlY3V0ZV9jYjsKIAogCS8qCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3N3X2ZlbmNlLmMKaW5kZXggOGQxNDAwZDM3OGQ3Li41Mzg3YWFmZDM0MjQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dfZmVuY2UuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmMKQEAgLTM1OSwxMSArMzU5LDYgQEAgaW50IGk5MTVf c3dfZmVuY2VfYXdhaXRfc3dfZmVuY2VfZ2ZwKHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwK IAlyZXR1cm4gX19pOTE1X3N3X2ZlbmNlX2F3YWl0X3N3X2ZlbmNlKGZlbmNlLCBzaWduYWxlciwg TlVMTCwgZ2ZwKTsKIH0KIAotc3RydWN0IGk5MTVfc3dfZG1hX2ZlbmNlX2NiIHsKLQlzdHJ1Y3Qg ZG1hX2ZlbmNlX2NiIGJhc2U7Ci0Jc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlOwotfTsKLQog c3RydWN0IGk5MTVfc3dfZG1hX2ZlbmNlX2NiX3RpbWVyIHsKIAlzdHJ1Y3QgaTkxNV9zd19kbWFf ZmVuY2VfY2IgYmFzZTsKIAlzdHJ1Y3QgZG1hX2ZlbmNlICpkbWE7CkBAIC00ODAsNiArNDc1LDQw IEBAIGludCBpOTE1X3N3X2ZlbmNlX2F3YWl0X2RtYV9mZW5jZShzdHJ1Y3QgaTkxNV9zd19mZW5j ZSAqZmVuY2UsCiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIHZvaWQgX19kbWFfaTkxNV9zd19m ZW5jZV93YWtlKHN0cnVjdCBkbWFfZmVuY2UgKmRtYSwKKwkJCQkgICAgIHN0cnVjdCBkbWFfZmVu Y2VfY2IgKmRhdGEpCit7CisJc3RydWN0IGk5MTVfc3dfZG1hX2ZlbmNlX2NiICpjYiA9IGNvbnRh aW5lcl9vZihkYXRhLCB0eXBlb2YoKmNiKSwgYmFzZSk7CisKKwlpOTE1X3N3X2ZlbmNlX2NvbXBs ZXRlKGNiLT5mZW5jZSk7Cit9CisKK2ludCBfX2k5MTVfc3dfZmVuY2VfYXdhaXRfZG1hX2ZlbmNl KHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwKKwkJCQkgICAgc3RydWN0IGRtYV9mZW5jZSAq ZG1hLAorCQkJCSAgICBzdHJ1Y3QgaTkxNV9zd19kbWFfZmVuY2VfY2IgKmNiKQoreworCWludCBy ZXQ7CisKKwlkZWJ1Z19mZW5jZV9hc3NlcnQoZmVuY2UpOworCisJaWYgKGRtYV9mZW5jZV9pc19z aWduYWxlZChkbWEpKQorCQlyZXR1cm4gMDsKKworCWNiLT5mZW5jZSA9IGZlbmNlOworCWk5MTVf c3dfZmVuY2VfYXdhaXQoZmVuY2UpOworCisJcmV0ID0gZG1hX2ZlbmNlX2FkZF9jYWxsYmFjayhk bWEsICZjYi0+YmFzZSwgX19kbWFfaTkxNV9zd19mZW5jZV93YWtlKTsKKwlpZiAocmV0ID09IDAp IHsKKwkJcmV0ID0gMTsKKwl9IGVsc2UgeworCQlpOTE1X3N3X2ZlbmNlX2NvbXBsZXRlKGZlbmNl KTsKKwkJaWYgKHJldCA9PSAtRU5PRU5UKSAvKiBmZW5jZSBhbHJlYWR5IHNpZ25hbGVkICovCisJ CQlyZXQgPSAwOworCX0KKworCXJldHVybiByZXQ7Cit9CisKIGludCBpOTE1X3N3X2ZlbmNlX2F3 YWl0X3Jlc2VydmF0aW9uKHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwKIAkJCQkgICAgc3Ry dWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKIAkJCQkgICAgY29uc3Qgc3RydWN0IGRtYV9m ZW5jZV9vcHMgKmV4Y2x1ZGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3N3X2ZlbmNlLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmgKaW5kZXgg NmRlYzllMWQxMTAyLi45Y2I1YzNiMzA3YTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfc3dfZmVuY2UuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2Zl bmNlLmgKQEAgLTksMTQgKzksMTMgQEAKICNpZm5kZWYgX0k5MTVfU1dfRkVOQ0VfSF8KICNkZWZp bmUgX0k5MTVfU1dfRkVOQ0VfSF8KIAorI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgogI2lu Y2x1ZGUgPGxpbnV4L2dmcC5oPgogI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4KICNpbmNsdWRlIDxs aW51eC9ub3RpZmllci5oPiAvKiBmb3IgTk9USUZZX0RPTkUgKi8KICNpbmNsdWRlIDxsaW51eC93 YWl0Lmg+CiAKIHN0cnVjdCBjb21wbGV0aW9uOwotc3RydWN0IGRtYV9mZW5jZTsKLXN0cnVjdCBk bWFfZmVuY2Vfb3BzOwogc3RydWN0IHJlc2VydmF0aW9uX29iamVjdDsKIAogc3RydWN0IGk5MTVf c3dfZmVuY2UgewpAQCAtNjgsMTAgKzY3LDIwIEBAIGludCBpOTE1X3N3X2ZlbmNlX2F3YWl0X3N3 X2ZlbmNlKHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwKIGludCBpOTE1X3N3X2ZlbmNlX2F3 YWl0X3N3X2ZlbmNlX2dmcChzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2UsCiAJCQkJICAgICBz dHJ1Y3QgaTkxNV9zd19mZW5jZSAqYWZ0ZXIsCiAJCQkJICAgICBnZnBfdCBnZnApOworCitzdHJ1 Y3QgaTkxNV9zd19kbWFfZmVuY2VfY2IgeworCXN0cnVjdCBkbWFfZmVuY2VfY2IgYmFzZTsKKwlz dHJ1Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2U7Cit9OworCitpbnQgX19pOTE1X3N3X2ZlbmNlX2F3 YWl0X2RtYV9mZW5jZShzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2UsCisJCQkJICAgIHN0cnVj dCBkbWFfZmVuY2UgKmRtYSwKKwkJCQkgICAgc3RydWN0IGk5MTVfc3dfZG1hX2ZlbmNlX2NiICpj Yik7CiBpbnQgaTkxNV9zd19mZW5jZV9hd2FpdF9kbWFfZmVuY2Uoc3RydWN0IGk5MTVfc3dfZmVu Y2UgKmZlbmNlLAogCQkJCSAgc3RydWN0IGRtYV9mZW5jZSAqZG1hLAogCQkJCSAgdW5zaWduZWQg bG9uZyB0aW1lb3V0LAogCQkJCSAgZ2ZwX3QgZ2ZwKTsKKwogaW50IGk5MTVfc3dfZmVuY2VfYXdh aXRfcmVzZXJ2YXRpb24oc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlLAogCQkJCSAgICBzdHJ1 Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2LAogCQkJCSAgICBjb25zdCBzdHJ1Y3QgZG1hX2Zl bmNlX29wcyAqZXhjbHVkZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggNTY2OTgyM2Y2 OTAxLi42ZTliZDcwZjVlOTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC0yODA0LDcg KzI4MDQsMTAgQEAgcG9wdWxhdGVfbHJfY29udGV4dChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2Us CiAKIHN0YXRpYyBzdHJ1Y3QgaTkxNV90aW1lbGluZSAqZ2V0X3RpbWVsaW5lKHN0cnVjdCBpOTE1 X2dlbV9jb250ZXh0ICpjdHgpCiB7Ci0JcmV0dXJuIGk5MTVfdGltZWxpbmVfY3JlYXRlKGN0eC0+ aTkxNSwgY3R4LT5uYW1lLCBOVUxMKTsKKwlpZiAoY3R4LT50aW1lbGluZSkKKwkJcmV0dXJuIGk5 MTVfdGltZWxpbmVfZ2V0KGN0eC0+dGltZWxpbmUpOworCWVsc2UKKwkJcmV0dXJuIGk5MTVfdGlt ZWxpbmVfY3JlYXRlKGN0eC0+aTkxNSwgY3R4LT5uYW1lLCBOVUxMKTsKIH0KIAogc3RhdGljIGlu dCBleGVjbGlzdHNfY29udGV4dF9kZWZlcnJlZF9hbGxvYyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAq Y2UsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1f Y29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRl eHQuYwppbmRleCAxYmEzNTRhOTE2YzAuLjg2Yjg2NTY5ZWUyMSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jCkBAIC03Niw3ICs3Niw3 IEBAIHN0YXRpYyBpbnQgbGl2ZV9ub3Bfc3dpdGNoKHZvaWQgKmFyZykKIAl9CiAKIAlmb3IgKG4g PSAwOyBuIDwgbmN0eDsgbisrKSB7Ci0JCWN0eFtuXSA9IGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0 KGk5MTUsIGZpbGUtPmRyaXZlcl9wcml2KTsKKwkJY3R4W25dID0gaTkxNV9nZW1fY3JlYXRlX2Nv bnRleHQoaTkxNSwgZmlsZS0+ZHJpdmVyX3ByaXYsIDApOwogCQlpZiAoSVNfRVJSKGN0eFtuXSkp IHsKIAkJCWVyciA9IFBUUl9FUlIoY3R4W25dKTsKIAkJCWdvdG8gb3V0X3VubG9jazsKQEAgLTUy Niw3ICs1MjYsOCBAQCBzdGF0aWMgaW50IGlndF9jdHhfZXhlYyh2b2lkICphcmcpCiAJCQlzdHJ1 Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4OwogCQkJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAK LQkJCWN0eCA9IGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KGk5MTUsIGZpbGUtPmRyaXZlcl9wcml2 KTsKKwkJCWN0eCA9IGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KGk5MTUsCisJCQkJCQkgICAgICBm aWxlLT5kcml2ZXJfcHJpdiwgMCk7CiAJCQlpZiAoSVNfRVJSKGN0eCkpIHsKIAkJCQllcnIgPSBQ VFJfRVJSKGN0eCk7CiAJCQkJZ290byBvdXRfdW5sb2NrOwpAQCAtNjExLDcgKzYxMiw3IEBAIHN0 YXRpYyBpbnQgaWd0X3NoYXJlZF9jdHhfZXhlYyh2b2lkICphcmcpCiAKIAltdXRleF9sb2NrKCZp OTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAotCXBhcmVudCA9IGk5MTVfZ2VtX2NyZWF0ZV9jb250 ZXh0KGk5MTUsIGZpbGUtPmRyaXZlcl9wcml2KTsKKwlwYXJlbnQgPSBpOTE1X2dlbV9jcmVhdGVf Y29udGV4dChpOTE1LCBmaWxlLT5kcml2ZXJfcHJpdiwgMCk7CiAJaWYgKElTX0VSUihwYXJlbnQp KSB7CiAJCWVyciA9IFBUUl9FUlIocGFyZW50KTsKIAkJZ290byBvdXRfdW5sb2NrOwpAQCAtNjQ1 LDcgKzY0Niw4IEBAIHN0YXRpYyBpbnQgaWd0X3NoYXJlZF9jdHhfZXhlYyh2b2lkICphcmcpCiAJ CQlpZiAoY3R4KQogCQkJCV9fZGVzdHJveV9od19jb250ZXh0KGN0eCwgZmlsZS0+ZHJpdmVyX3By aXYpOwogCi0JCQljdHggPSBpOTE1X2dlbV9jcmVhdGVfY29udGV4dChpOTE1LCBmaWxlLT5kcml2 ZXJfcHJpdik7CisJCQljdHggPSBpOTE1X2dlbV9jcmVhdGVfY29udGV4dChpOTE1LAorCQkJCQkJ ICAgICAgZmlsZS0+ZHJpdmVyX3ByaXYsIDApOwogCQkJaWYgKElTX0VSUihjdHgpKSB7CiAJCQkJ ZXJyID0gUFRSX0VSUihjdHgpOwogCQkJCWdvdG8gb3V0X3Rlc3Q7CkBAIC0xMDg4LDcgKzEwOTAs NyBAQCBfX2lndF9jdHhfc3NldShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAogCW11 dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCi0JY3R4ID0gaTkxNV9nZW1fY3Jl YXRlX2NvbnRleHQoaTkxNSwgZmlsZS0+ZHJpdmVyX3ByaXYpOworCWN0eCA9IGk5MTVfZ2VtX2Ny ZWF0ZV9jb250ZXh0KGk5MTUsIGZpbGUtPmRyaXZlcl9wcml2LCAwKTsKIAlpZiAoSVNfRVJSKGN0 eCkpIHsKIAkJcmV0ID0gUFRSX0VSUihjdHgpOwogCQlnb3RvIG91dF91bmxvY2s7CkBAIC0xMTk4 LDcgKzEyMDAsNyBAQCBzdGF0aWMgaW50IGlndF9jdHhfcmVhZG9ubHkodm9pZCAqYXJnKQogCWlm IChlcnIpCiAJCWdvdG8gb3V0X3VubG9jazsKIAotCWN0eCA9IGk5MTVfZ2VtX2NyZWF0ZV9jb250 ZXh0KGk5MTUsIGZpbGUtPmRyaXZlcl9wcml2KTsKKwljdHggPSBpOTE1X2dlbV9jcmVhdGVfY29u dGV4dChpOTE1LCBmaWxlLT5kcml2ZXJfcHJpdiwgMCk7CiAJaWYgKElTX0VSUihjdHgpKSB7CiAJ CWVyciA9IFBUUl9FUlIoY3R4KTsKIAkJZ290byBvdXRfdW5sb2NrOwpAQCAtMTUyNCwxMyArMTUy NiwxMyBAQCBzdGF0aWMgaW50IGlndF92bV9pc29sYXRpb24odm9pZCAqYXJnKQogCWlmIChlcnIp CiAJCWdvdG8gb3V0X3VubG9jazsKIAotCWN0eF9hID0gaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQo aTkxNSwgZmlsZS0+ZHJpdmVyX3ByaXYpOworCWN0eF9hID0gaTkxNV9nZW1fY3JlYXRlX2NvbnRl eHQoaTkxNSwgZmlsZS0+ZHJpdmVyX3ByaXYsIDApOwogCWlmIChJU19FUlIoY3R4X2EpKSB7CiAJ CWVyciA9IFBUUl9FUlIoY3R4X2EpOwogCQlnb3RvIG91dF91bmxvY2s7CiAJfQogCi0JY3R4X2Ig PSBpOTE1X2dlbV9jcmVhdGVfY29udGV4dChpOTE1LCBmaWxlLT5kcml2ZXJfcHJpdik7CisJY3R4 X2IgPSBpOTE1X2dlbV9jcmVhdGVfY29udGV4dChpOTE1LCBmaWxlLT5kcml2ZXJfcHJpdiwgMCk7 CiAJaWYgKElTX0VSUihjdHhfYikpIHsKIAkJZXJyID0gUFRSX0VSUihjdHhfYik7CiAJCWdvdG8g b3V0X3VubG9jazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9t b2NrX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2NvbnRl eHQuYwppbmRleCBmOTAzMjhiMjE3NjMuLjFkNmRjMmZlMzZhYiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfY29udGV4dC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2NvbnRleHQuYwpAQCAtOTQsNyArOTQsNyBAQCBsaXZl X2NvbnRleHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHN0cnVjdCBkcm1fZmlsZSAq ZmlsZSkKIHsKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsK IAotCXJldHVybiBpOTE1X2dlbV9jcmVhdGVfY29udGV4dChpOTE1LCBmaWxlLT5kcml2ZXJfcHJp dik7CisJcmV0dXJuIGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KGk5MTUsIGZpbGUtPmRyaXZlcl9w cml2LCAwKTsKIH0KIAogc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKgpkaWZmIC0tZ2l0IGEvaW5j bHVkZS91YXBpL2RybS9pOTE1X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCmlu ZGV4IDQ2MTg5YThlYWVjYi4uNTIwNmQwMDA2MDQzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkv ZHJtL2k5MTVfZHJtLmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCkBAIC0xNDU2 LDggKzE0NTYsOSBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfY3JlYXRlX2V4dCB7CiAJ X191MzIgY3R4X2lkOyAvKiBvdXRwdXQ6IGlkIG9mIG5ldyBjb250ZXh0Ki8KIAlfX3UzMiBmbGFn czsKICNkZWZpbmUgSTkxNV9DT05URVhUX0NSRUFURV9GTEFHU19VU0VfRVhURU5TSU9OUwkoMXUg PDwgMCkKKyNkZWZpbmUgSTkxNV9DT05URVhUX0NSRUFURV9GTEFHU19TSU5HTEVfVElNRUxJTkUJ KDF1IDw8IDEpCiAjZGVmaW5lIEk5MTVfQ09OVEVYVF9DUkVBVEVfRkxBR1NfVU5LTk9XTiBcCi0J KC0oSTkxNV9DT05URVhUX0NSRUFURV9GTEFHU19VU0VfRVhURU5TSU9OUyA8PCAxKSkKKwkoLShJ OTE1X0NPTlRFWFRfQ1JFQVRFX0ZMQUdTX1NJTkdMRV9USU1FTElORSA8PCAxKSkKIAlfX3U2NCBl eHRlbnNpb25zOwogfTsKIAotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZng=