From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [CI 1/2] drm/i915: Combine write_domain flushes to a single function Date: Wed, 12 Apr 2017 12:01:10 +0100 Message-ID: <20170412110111.26626-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 mail-wr0-x241.google.com (mail-wr0-x241.google.com [IPv6:2a00:1450:400c:c0c::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 53BB96E6D0 for ; Wed, 12 Apr 2017 11:01:14 +0000 (UTC) Received: by mail-wr0-x241.google.com with SMTP id l28so3640517wre.0 for ; Wed, 12 Apr 2017 04:01:14 -0700 (PDT) Received: from haswell.alporthouse.com ([78.156.65.138]) by smtp.gmail.com with ESMTPSA id b10sm6118466wme.22.2017.04.12.04.01.11 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 12 Apr 2017 04:01:12 -0700 (PDT) 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 SW4gdGhlIG5leHQgcGF0Y2gsIHdlIHdpbGwgaW50cm9kdWNlIGEgbmV3IGNhY2hlIGRvbWFpbiBm b3IKZGlmZmVyZW50aWF0aW5nIGJldHdlZW4gR1RUIGFjY2VzcyBhbmQgZGlyZWN0IFdDIGFjY2Vz cy4gVGhpcyB3aWxsCnJlcXVpcmUgdXMgdG8gaW5jbHVkZSBXQyBpbiBvdXIgd3JpdGVfZG9tYWlu IGZsdXNoZXMuIFJhdGhlciB0aGFuCmR1cGxpY2F0ZSBhIHRoaXJkIGZ1bmN0aW9uLCBjb21iaW5l IHRoZSBleGlzdGluZyB0d28gaW50byBvbmUgYW5kCmZsdXNoaW5nIFdDIHdyaXRlcyB3aWxsIHRo ZW4gYmUgYXV0b21hdGljYWxseSBoYW5kbGVkIGFzIHdlbGwuCgp2MjogQmUgc21hcnRlciBhbmQg Y2xlYXJlciBieSBwYXNzaW5nIGluIHRoZSB3cml0ZSBkb21haW5zIHRvIGZsdXNoIChKb29uYXMp CnYzOiBPbmUgbWlzc2VkIH4gaW4gdjIgY29udmVyc2lvbgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMg V2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBKb29uYXMgTGFodGluZW4gPGpv b25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+ClJldmlld2VkLWJ5OiBKb29uYXMgTGFodGlu ZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgICAgICAgICAgfCAxMjUgKysrKysrKysrKy0tLS0t LS0tLS0tCiAuLi4vZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb2hlcmVuY3kuYyAg ICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX29iamVj dC5jICAgfCAgIDIgKy0KIDMgZmlsZXMgY2hhbmdlZCwgNjQgaW5zZXJ0aW9ucygrKSwgNjcgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggY2I4YzZhOTRiYTRlLi5mMWMy ODY2OGVkYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtNDYsOCArNDYsNiBAQAogI2lu Y2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KIAogc3RhdGljIHZvaWQgaTkxNV9nZW1fZmx1c2hfZnJl ZV9vYmplY3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKLXN0YXRpYyB2b2lkIGk5 MTVfZ2VtX29iamVjdF9mbHVzaF9ndHRfd3JpdGVfZG9tYWluKHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmopOwotc3RhdGljIHZvaWQgaTkxNV9nZW1fb2JqZWN0X2ZsdXNoX2NwdV93cml0 ZV9kb21haW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7CiAKIHN0YXRpYyBib29s IGNwdV93cml0ZV9uZWVkc19jbGZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmop CiB7CkBAIC03MDUsNiArNzAzLDYxIEBAIGk5MTVfZ2VtX2NyZWF0ZV9pb2N0bChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJICAgICAgIGFyZ3MtPnNpemUsICZhcmdzLT5o YW5kbGUpOwogfQogCitzdGF0aWMgaW5saW5lIGVudW0gZmJfb3Bfb3JpZ2luCitmYl93cml0ZV9v cmlnaW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgdW5zaWduZWQgaW50IGRvbWFp bikKK3sKKwlyZXR1cm4gKGRvbWFpbiA9PSBJOTE1X0dFTV9ET01BSU5fR1RUID8KKwkJb2JqLT5m cm9udGJ1ZmZlcl9nZ3R0X29yaWdpbiA6IE9SSUdJTl9DUFUpOworfQorCitzdGF0aWMgdm9pZAor Zmx1c2hfd3JpdGVfZG9tYWluKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIHVuc2ln bmVkIGludCBmbHVzaF9kb21haW5zKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUob2JqLT5iYXNlLmRldik7CisKKwlpZiAoIShvYmotPmJhc2Uud3JpdGVf ZG9tYWluICYgZmx1c2hfZG9tYWlucykpCisJCXJldHVybjsKKworCS8qIE5vIGFjdHVhbCBmbHVz aGluZyBpcyByZXF1aXJlZCBmb3IgdGhlIEdUVCB3cml0ZSBkb21haW4uICBXcml0ZXMKKwkgKiB0 byBpdCAiaW1tZWRpYXRlbHkiIGdvIHRvIG1haW4gbWVtb3J5IGFzIGZhciBhcyB3ZSBrbm93LCBz byB0aGVyZSdzCisJICogbm8gY2hpcHNldCBmbHVzaC4gIEl0IGFsc28gZG9lc24ndCBsYW5kIGlu IHJlbmRlciBjYWNoZS4KKwkgKgorCSAqIEhvd2V2ZXIsIHdlIGRvIGhhdmUgdG8gZW5mb3JjZSB0 aGUgb3JkZXIgc28gdGhhdCBhbGwgd3JpdGVzIHRocm91Z2gKKwkgKiB0aGUgR1RUIGxhbmQgYmVm b3JlIGFueSB3cml0ZXMgdG8gdGhlIGRldmljZSwgc3VjaCBhcyB1cGRhdGVzIHRvCisJICogdGhl IEdBVFQgaXRzZWxmLgorCSAqCisJICogV2UgYWxzbyBoYXZlIHRvIHdhaXQgYSBiaXQgZm9yIHRo ZSB3cml0ZXMgdG8gbGFuZCBmcm9tIHRoZSBHVFQuCisJICogQW4gdW5jYWNoZWQgcmVhZCAoaS5l LiBtbWlvKSBzZWVtcyB0byBiZSBpZGVhbCBmb3IgdGhlIHJvdW5kLXRyaXAKKwkgKiB0aW1pbmcu IFRoaXMgaXNzdWUgaGFzIG9ubHkgYmVlbiBvYnNlcnZlZCB3aGVuIHN3aXRjaGluZyBxdWlja2x5 CisJICogYmV0d2VlbiBHVFQgd3JpdGVzIGFuZCBDUFUgcmVhZHMgZnJvbSBpbnNpZGUgdGhlIGtl cm5lbCBvbiByZWNlbnQgaHcsCisJICogYW5kIGl0IGFwcGVhcnMgdG8gb25seSBhZmZlY3QgZGlz Y3JldGUgR1RUIGJsb2NrcyAoaS5lLiBvbiBMTEMKKwkgKiBzeXN0ZW0gYWdlbnRzIHdlIGNhbm5v dCByZXByb2R1Y2UgdGhpcyBiZWhhdmlvdXIpLgorCSAqLworCXdtYigpOworCisJc3dpdGNoIChv YmotPmJhc2Uud3JpdGVfZG9tYWluKSB7CisJY2FzZSBJOTE1X0dFTV9ET01BSU5fR1RUOgorCQlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA2ICYmICFIQVNfTExDKGRldl9wcml2KSkgeworCQkJ aWYgKGludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShkZXZfcHJpdikpIHsKKwkJCQlzcGlu X2xvY2tfaXJxKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2spOworCQkJCVBPU1RJTkdfUkVBRF9GVyhS SU5HX0FDVEhEKGRldl9wcml2LT5lbmdpbmVbUkNTXS0+bW1pb19iYXNlKSk7CisJCQkJc3Bpbl91 bmxvY2tfaXJxKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2spOworCQkJCWludGVsX3J1bnRpbWVfcG1f cHV0KGRldl9wcml2KTsKKwkJCX0KKwkJfQorCisJCWludGVsX2ZiX29ial9mbHVzaChvYmosCisJ CQkJICAgZmJfd3JpdGVfb3JpZ2luKG9iaiwgSTkxNV9HRU1fRE9NQUlOX0dUVCkpOworCQlicmVh azsKKworCWNhc2UgSTkxNV9HRU1fRE9NQUlOX0NQVToKKwkJaTkxNV9nZW1fY2xmbHVzaF9vYmpl Y3Qob2JqLCBJOTE1X0NMRkxVU0hfU1lOQyk7CisJCWJyZWFrOworCX0KKworCW9iai0+YmFzZS53 cml0ZV9kb21haW4gPSAwOworfQorCiBzdGF0aWMgaW5saW5lIGludAogX19jb3B5X3RvX3VzZXJf c3dpenpsZWQoY2hhciBfX3VzZXIgKmNwdV92YWRkciwKIAkJCWNvbnN0IGNoYXIgKmdwdV92YWRk ciwgaW50IGdwdV9vZmZzZXQsCkBAIC03OTQsNyArODQ3LDcgQEAgaW50IGk5MTVfZ2VtX29ial9w cmVwYXJlX3NobWVtX3JlYWQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCWdv dG8gb3V0OwogCX0KIAotCWk5MTVfZ2VtX29iamVjdF9mbHVzaF9ndHRfd3JpdGVfZG9tYWluKG9i aik7CisJZmx1c2hfd3JpdGVfZG9tYWluKG9iaiwgfkk5MTVfR0VNX0RPTUFJTl9DUFUpOwogCiAJ LyogSWYgd2UncmUgbm90IGluIHRoZSBjcHUgcmVhZCBkb21haW4sIHNldCBvdXJzZWxmIGludG8g dGhlIGd0dAogCSAqIHJlYWQgZG9tYWluIGFuZCBtYW51YWxseSBmbHVzaCBjYWNoZWxpbmVzIChp ZiByZXF1aXJlZCkuIFRoaXMKQEAgLTg0Niw3ICs4OTksNyBAQCBpbnQgaTkxNV9nZW1fb2JqX3By ZXBhcmVfc2htZW1fd3JpdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCWdv dG8gb3V0OwogCX0KIAotCWk5MTVfZ2VtX29iamVjdF9mbHVzaF9ndHRfd3JpdGVfZG9tYWluKG9i aik7CisJZmx1c2hfd3JpdGVfZG9tYWluKG9iaiwgfkk5MTVfR0VNX0RPTUFJTl9DUFUpOwogCiAJ LyogSWYgd2UncmUgbm90IGluIHRoZSBjcHUgd3JpdGUgZG9tYWluLCBzZXQgb3Vyc2VsZiBpbnRv IHRoZQogCSAqIGd0dCB3cml0ZSBkb21haW4gYW5kIG1hbnVhbGx5IGZsdXNoIGNhY2hlbGluZXMg KGFzIHJlcXVpcmVkKS4KQEAgLTE1MDEsMTMgKzE1NTQsNiBAQCBpOTE1X2dlbV9wd3JpdGVfaW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlyZXR1cm4gcmV0OwogfQog Ci1zdGF0aWMgaW5saW5lIGVudW0gZmJfb3Bfb3JpZ2luCi13cml0ZV9vcmlnaW4oc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgdW5zaWduZWQgZG9tYWluKQotewotCXJldHVybiAoZG9t YWluID09IEk5MTVfR0VNX0RPTUFJTl9HVFQgPwotCQlvYmotPmZyb250YnVmZmVyX2dndHRfb3Jp Z2luIDogT1JJR0lOX0NQVSk7Ci19Ci0KIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX29iamVjdF9idW1w X2luYWN0aXZlX2dndHQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKQEAgLTE2MDIsNyArMTY0OCw4IEBAIGk5MTVfZ2Vt X3NldF9kb21haW5faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlt dXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAogCWlmICh3cml0ZV9kb21haW4gIT0g MCkKLQkJaW50ZWxfZmJfb2JqX2ludmFsaWRhdGUob2JqLCB3cml0ZV9vcmlnaW4ob2JqLCB3cml0 ZV9kb21haW4pKTsKKwkJaW50ZWxfZmJfb2JqX2ludmFsaWRhdGUob2JqLAorCQkJCQlmYl93cml0 ZV9vcmlnaW4ob2JqLCB3cml0ZV9kb21haW4pKTsKIAogb3V0X3VucGluOgogCWk5MTVfZ2VtX29i amVjdF91bnBpbl9wYWdlcyhvYmopOwpAQCAtMzMyMCw1NiArMzM2Nyw2IEBAIGludCBpOTE1X2dl bV93YWl0X2Zvcl9pZGxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCB1bnNpZ25lZCBp bnQgZmxhZ3MpCiAJcmV0dXJuIHJldDsKIH0KIAotLyoqIEZsdXNoZXMgdGhlIEdUVCB3cml0ZSBk b21haW4gZm9yIHRoZSBvYmplY3QgaWYgaXQncyBkaXJ0eS4gKi8KLXN0YXRpYyB2b2lkCi1pOTE1 X2dlbV9vYmplY3RfZmx1c2hfZ3R0X3dyaXRlX2RvbWFpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqKQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUob2JqLT5iYXNlLmRldik7Ci0KLQlpZiAob2JqLT5iYXNlLndyaXRlX2RvbWFpbiAhPSBJOTE1 X0dFTV9ET01BSU5fR1RUKQotCQlyZXR1cm47Ci0KLQkvKiBObyBhY3R1YWwgZmx1c2hpbmcgaXMg cmVxdWlyZWQgZm9yIHRoZSBHVFQgd3JpdGUgZG9tYWluLiAgV3JpdGVzCi0JICogdG8gaXQgImlt bWVkaWF0ZWx5IiBnbyB0byBtYWluIG1lbW9yeSBhcyBmYXIgYXMgd2Uga25vdywgc28gdGhlcmUn cwotCSAqIG5vIGNoaXBzZXQgZmx1c2guICBJdCBhbHNvIGRvZXNuJ3QgbGFuZCBpbiByZW5kZXIg Y2FjaGUuCi0JICoKLQkgKiBIb3dldmVyLCB3ZSBkbyBoYXZlIHRvIGVuZm9yY2UgdGhlIG9yZGVy IHNvIHRoYXQgYWxsIHdyaXRlcyB0aHJvdWdoCi0JICogdGhlIEdUVCBsYW5kIGJlZm9yZSBhbnkg d3JpdGVzIHRvIHRoZSBkZXZpY2UsIHN1Y2ggYXMgdXBkYXRlcyB0bwotCSAqIHRoZSBHQVRUIGl0 c2VsZi4KLQkgKgotCSAqIFdlIGFsc28gaGF2ZSB0byB3YWl0IGEgYml0IGZvciB0aGUgd3JpdGVz IHRvIGxhbmQgZnJvbSB0aGUgR1RULgotCSAqIEFuIHVuY2FjaGVkIHJlYWQgKGkuZS4gbW1pbykg c2VlbXMgdG8gYmUgaWRlYWwgZm9yIHRoZSByb3VuZC10cmlwCi0JICogdGltaW5nLiBUaGlzIGlz c3VlIGhhcyBvbmx5IGJlZW4gb2JzZXJ2ZWQgd2hlbiBzd2l0Y2hpbmcgcXVpY2tseQotCSAqIGJl dHdlZW4gR1RUIHdyaXRlcyBhbmQgQ1BVIHJlYWRzIGZyb20gaW5zaWRlIHRoZSBrZXJuZWwgb24g cmVjZW50IGh3LAotCSAqIGFuZCBpdCBhcHBlYXJzIHRvIG9ubHkgYWZmZWN0IGRpc2NyZXRlIEdU VCBibG9ja3MgKGkuZS4gb24gTExDCi0JICogc3lzdGVtIGFnZW50cyB3ZSBjYW5ub3QgcmVwcm9k dWNlIHRoaXMgYmVoYXZpb3VyKS4KLQkgKi8KLQl3bWIoKTsKLQlpZiAoSU5URUxfR0VOKGRldl9w cml2KSA+PSA2ICYmICFIQVNfTExDKGRldl9wcml2KSkgewotCQlpZiAoaW50ZWxfcnVudGltZV9w bV9nZXRfaWZfaW5fdXNlKGRldl9wcml2KSkgewotCQkJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYt PnVuY29yZS5sb2NrKTsKLQkJCVBPU1RJTkdfUkVBRF9GVyhSSU5HX0FDVEhEKGRldl9wcml2LT5l bmdpbmVbUkNTXS0+bW1pb19iYXNlKSk7Ci0JCQlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT51 bmNvcmUubG9jayk7Ci0JCQlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7Ci0JCX0KLQl9 Ci0KLQlpbnRlbF9mYl9vYmpfZmx1c2gob2JqLCB3cml0ZV9vcmlnaW4ob2JqLCBJOTE1X0dFTV9E T01BSU5fR1RUKSk7Ci0KLQlvYmotPmJhc2Uud3JpdGVfZG9tYWluID0gMDsKLX0KLQotLyoqIEZs dXNoZXMgdGhlIENQVSB3cml0ZSBkb21haW4gZm9yIHRoZSBvYmplY3QgaWYgaXQncyBkaXJ0eS4g Ki8KLXN0YXRpYyB2b2lkCi1pOTE1X2dlbV9vYmplY3RfZmx1c2hfY3B1X3dyaXRlX2RvbWFpbihz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQotewotCWlmIChvYmotPmJhc2Uud3JpdGVf ZG9tYWluICE9IEk5MTVfR0VNX0RPTUFJTl9DUFUpCi0JCXJldHVybjsKLQotCWk5MTVfZ2VtX2Ns Zmx1c2hfb2JqZWN0KG9iaiwgSTkxNV9DTEZMVVNIX1NZTkMpOwotCW9iai0+YmFzZS53cml0ZV9k b21haW4gPSAwOwotfQotCiBzdGF0aWMgdm9pZCBfX2k5MTVfZ2VtX29iamVjdF9mbHVzaF9mb3Jf ZGlzcGxheShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewogCWlmIChvYmotPmJh c2Uud3JpdGVfZG9tYWluICE9IEk5MTVfR0VNX0RPTUFJTl9DUFUgJiYgIW9iai0+Y2FjaGVfZGly dHkpCkBAIC0zNDI4LDcgKzM0MjUsNyBAQCBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0dF9kb21h aW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgYm9vbCB3cml0ZSkKIAlpZiAocmV0 KQogCQlyZXR1cm4gcmV0OwogCi0JaTkxNV9nZW1fb2JqZWN0X2ZsdXNoX2NwdV93cml0ZV9kb21h aW4ob2JqKTsKKwlmbHVzaF93cml0ZV9kb21haW4ob2JqLCB+STkxNV9HRU1fRE9NQUlOX0dUVCk7 CiAKIAkvKiBTZXJpYWxpc2UgZGlyZWN0IGFjY2VzcyB0byB0aGlzIG9iamVjdCB3aXRoIHRoZSBi YXJyaWVycyBmb3IKIAkgKiBjb2hlcmVudCB3cml0ZXMgZnJvbSB0aGUgR1BVLCBieSBlZmZlY3Rp dmVseSBpbnZhbGlkYXRpbmcgdGhlCkBAIC0zODAyLDcgKzM3OTksNyBAQCBpOTE1X2dlbV9vYmpl Y3Rfc2V0X3RvX2NwdV9kb21haW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgYm9v bCB3cml0ZSkKIAlpZiAob2JqLT5iYXNlLndyaXRlX2RvbWFpbiA9PSBJOTE1X0dFTV9ET01BSU5f Q1BVKQogCQlyZXR1cm4gMDsKIAotCWk5MTVfZ2VtX29iamVjdF9mbHVzaF9ndHRfd3JpdGVfZG9t YWluKG9iaik7CisJZmx1c2hfd3JpdGVfZG9tYWluKG9iaiwgfkk5MTVfR0VNX0RPTUFJTl9DUFUp OwogCiAJLyogRmx1c2ggdGhlIENQVSBjYWNoZSBpZiBpdCdzIHN0aWxsIGludmFsaWQuICovCiAJ aWYgKChvYmotPmJhc2UucmVhZF9kb21haW5zICYgSTkxNV9HRU1fRE9NQUlOX0NQVSkgPT0gMCkg ewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2Nv aGVyZW5jeS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvaGVy ZW5jeS5jCmluZGV4IGYwOGQwMTc5YjNkZi4uYzYxZDBlZjIxMThjIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fY29oZXJlbmN5LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvaGVyZW5jeS5jCkBAIC0xMzks NyArMTM5LDcgQEAgc3RhdGljIGludCB3Y19zZXQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiwKIAlpbnQgZXJyOwogCiAJLyogWFhYIEdUVCB3cml0ZSBmb2xsb3dlZCBieSBXQyB3cml0 ZSBnbyBtaXNzaW5nICovCi0JaTkxNV9nZW1fb2JqZWN0X2ZsdXNoX2d0dF93cml0ZV9kb21haW4o b2JqKTsKKwlmbHVzaF93cml0ZV9kb21haW4ob2JqLCB+MCk7CiAKIAllcnIgPSBpOTE1X2dlbV9v YmplY3Rfc2V0X3RvX2d0dF9kb21haW4ob2JqLCB0cnVlKTsKIAlpZiAoZXJyKQpAQCAtMTYzLDcg KzE2Myw3IEBAIHN0YXRpYyBpbnQgd2NfZ2V0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmosCiAJaW50IGVycjsKIAogCS8qIFhYWCBXQyB3cml0ZSBmb2xsb3dlZCBieSBHVFQgd3JpdGUg Z28gbWlzc2luZyAqLwotCWk5MTVfZ2VtX29iamVjdF9mbHVzaF9ndHRfd3JpdGVfZG9tYWluKG9i aik7CisJZmx1c2hfd3JpdGVfZG9tYWluKG9iaiwgfjApOwogCiAJZXJyID0gaTkxNV9nZW1fb2Jq ZWN0X3NldF90b19ndHRfZG9tYWluKG9iaiwgZmFsc2UpOwogCWlmIChlcnIpCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fb2JqZWN0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fb2JqZWN0LmMKaW5kZXggNjdkODJi ZjE0MDdmLi4xNjM0MjQ3NDhlZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9pOTE1X2dlbV9vYmplY3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvaTkxNV9nZW1fb2JqZWN0LmMKQEAgLTI2Niw3ICsyNjYsNyBAQCBzdGF0aWMgaW50IGNo ZWNrX3BhcnRpYWxfbWFwcGluZyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQlp ZiAob2Zmc2V0ID49IG9iai0+YmFzZS5zaXplKQogCQkJY29udGludWU7CiAKLQkJaTkxNV9nZW1f b2JqZWN0X2ZsdXNoX2d0dF93cml0ZV9kb21haW4ob2JqKTsKKwkJZmx1c2hfd3JpdGVfZG9tYWlu KG9iaiwgfkk5MTVfR0VNX0RPTUFJTl9DUFUpOwogCiAJCXAgPSBpOTE1X2dlbV9vYmplY3RfZ2V0 X3BhZ2Uob2JqLCBvZmZzZXQgPj4gUEFHRV9TSElGVCk7CiAJCWNwdSA9IGttYXAocCkgKyBvZmZz ZXRfaW5fcGFnZShvZmZzZXQpOwotLSAKMi4xMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK