From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 1/2] drm/i915: Mark CPU cache as dirty on every transition for CPU writes Date: Thu, 1 Jun 2017 17:59:31 +0100 Message-ID: <20170601165932.20977-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 583F06E0AE for ; Thu, 1 Jun 2017 16:59:48 +0000 (UTC) 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 Cc: Dongwon Kim List-Id: intel-gfx@lists.freedesktop.org Q3VycmVudGx5LCB3ZSBvbmx5IG1hcmsgdGhlIENQVSBjYWNoZSBhcyBkaXJ0eSBpZiB3ZSBza2lw IGEgY2xmbHVzaC4KVGhpcyBsZWFkcyB0byBzb21lIGNvbmZ1c2lvbiB3aGVyZSB3ZSBoYXZlIHRv IGFzayBpZiB0aGUgb2JqZWN0IGlzIGluCnRoZSB3cml0ZSBkb21haW4gb3IgbWlzc2VkIGEgY2xm bHVzaC4gSWYgd2UgYWx3YXlzIG1hcmsgdGhlIGNhY2hlIGFzCmRpcnR5LCB0aGlzIGJlY29tZXMg YSBtdWNoIHNpbXBseSBxdWVzdGlvbiB0byBhbnN3ZXIuCgpUaGUgZ29hbCByZW1haW5zIHRvIGRv IGFzIGZldyBjbGZsdXNoZXMgYXMgcmVxdWlyZWQgYW5kIHRvIGRvIHRoZW0gYXMKbGF0ZSBhcyBw b3NzaWJsZSwgaW4gdGhlIGhvcGUgb2YgZGVmZXJyaW5nIHRoZSB3b3JrIHRvIGEga3RocmVhZCBh bmQgbm90CmJsb2NrIHRoZSBjYWxsZXIgKGUuZy4gZXhlY2J1ZiwgZmxpcHMpLgoKdjI6IEFsd2F5 cyBjYWxsIGNsZmx1c2ggYmVmb3JlIEdQVSBleGVjdXRpb24gd2hlbiB0aGUgY2FjaGVfZGlydHkg ZmxhZwppcyBzZXQuIFRoaXMgbWF5IGNhdXNlIHNvbWUgZXh0cmEgd29yayBvbiBsbGMgc3lzdGVt cyB0aGF0IG1pZ3JhdGUgZGlydHkKYnVmZmVycyBiYWNrIGFuZCBmb3J0aCAtIGJ1dCB3ZSBkbyB0 cnkgdG8gbGltaXQgdGhhdCBieSBvbmx5IHNldHRpbmcKY2FjaGVfZGlydHkgYXQgdGhlIGVuZCBv ZiB0aGUgZ3B1IHNlcXVlbmNlLgoKdjM6IEFsd2F5cyBtYXJrIHRoZSBjYWNoZSBhcyBkaXJ0eSB1 cG9uIGEgbGV2ZWwgY2hhbmdlLCBhcyB3ZSBuZWVkIHRvCmludmFsaWRhdGUgYW55IHN0YWxlIGNh Y2hlbGluZXMgZHVlIHRvIGV4dGVybmFsIHdyaXRlcy4KClJlcG9ydGVkLWJ5OiBEb25nd29uIEtp bSA8ZG9uZ3dvbi5raW1AaW50ZWwuY29tPgpGaXhlczogYTZhN2NjNGI3ZGI2ICgiZHJtL2k5MTU6 IEFsd2F5cyBmbHVzaCB0aGUgZGlydHkgQ1BVIGNhY2hlIHdoZW4gcGlubmluZyB0aGUgc2Nhbm91 dCIpClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVr PgpDYzogRG9uZ3dvbiBLaW0gPGRvbmd3b24ua2ltQGludGVsLmNvbT4KQ2M6IE1hdHQgUm9wZXIg PG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+ClRlc3RlZC1ieTogRG9uZ3dvbiBLaW0gPGRvbmd3 b24ua2ltQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAg ICAgICAgICAgICAgICAgfCA3NiArKysrKysrKysrKysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2NsZmx1c2guYyAgICAgICAgICB8IDE1ICsrKy0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgICAgICAgfCAyMSArKystLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9pbnRlcm5hbC5jICAgICAgICAgfCAgMyArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jICAgICAgICAgIHwgIDUgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9odWdlX2dlbV9vYmplY3QuYyB8ICAzICst CiA2IGZpbGVzIGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDUzYzUxNzg3ZDJlZC4uOWZhNTcxNTIzNjQxIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTQ5LDcgKzQ5LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9n ZW1fZmx1c2hfZnJlZV9vYmplY3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKIAog c3RhdGljIGJvb2wgY3B1X3dyaXRlX25lZWRzX2NsZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKIHsKLQlpZiAob2JqLT5iYXNlLndyaXRlX2RvbWFpbiA9PSBJOTE1X0dFTV9E T01BSU5fQ1BVKQorCWlmIChvYmotPmNhY2hlX2RpcnR5KQogCQlyZXR1cm4gZmFsc2U7CiAKIAlp ZiAoIWk5MTVfZ2VtX29iamVjdF9pc19jb2hlcmVudChvYmopKQpAQCAtMjMzLDYgKzIzMywxNCBA QCBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX3BoeXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaikKIAlyZXR1cm4gc3Q7CiB9CiAKK3N0YXRpYyB2b2lkIF9fc3RhcnRfY3B1X3dyaXRl KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCit7CisJb2JqLT5iYXNlLnJlYWRfZG9t YWlucyA9IEk5MTVfR0VNX0RPTUFJTl9DUFU7CisJb2JqLT5iYXNlLndyaXRlX2RvbWFpbiA9IEk5 MTVfR0VNX0RPTUFJTl9DUFU7CisJaWYgKGNwdV93cml0ZV9uZWVkc19jbGZsdXNoKG9iaikpCisJ CW9iai0+Y2FjaGVfZGlydHkgPSB0cnVlOworfQorCiBzdGF0aWMgdm9pZAogX19pOTE1X2dlbV9v YmplY3RfcmVsZWFzZV9zaG1lbShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJ CXN0cnVjdCBzZ190YWJsZSAqcGFnZXMsCkBAIC0yNDgsOCArMjU2LDcgQEAgX19pOTE1X2dlbV9v YmplY3RfcmVsZWFzZV9zaG1lbShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCSAg ICAhaTkxNV9nZW1fb2JqZWN0X2lzX2NvaGVyZW50KG9iaikpCiAJCWRybV9jbGZsdXNoX3NnKHBh Z2VzKTsKIAotCW9iai0+YmFzZS5yZWFkX2RvbWFpbnMgPSBJOTE1X0dFTV9ET01BSU5fQ1BVOwot CW9iai0+YmFzZS53cml0ZV9kb21haW4gPSBJOTE1X0dFTV9ET01BSU5fQ1BVOworCV9fc3RhcnRf Y3B1X3dyaXRlKG9iaik7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC02ODQsNiArNjkxLDEyIEBAIGk5 MTVfZ2VtX2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKIAkJCSAgICAgICBhcmdz LT5zaXplLCAmYXJncy0+aGFuZGxlKTsKIH0KIAorc3RhdGljIGJvb2wgZ3B1X3dyaXRlX25lZWRz X2NsZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sKKwlyZXR1cm4gIShv YmotPmNhY2hlX2xldmVsID09IEk5MTVfQ0FDSEVfTk9ORSB8fAorCQkgb2JqLT5jYWNoZV9sZXZl bCA9PSBJOTE1X0NBQ0hFX1dUKTsKK30KKwogLyoqCiAgKiBDcmVhdGVzIGEgbmV3IG1tIG9iamVj dCBhbmQgcmV0dXJucyBhIGhhbmRsZSB0byBpdC4KICAqIEBkZXY6IGRybSBkZXZpY2UgcG9pbnRl cgpAQCAtNzUzLDYgKzc2NiwxMSBAQCBmbHVzaF93cml0ZV9kb21haW4oc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwgdW5zaWduZWQgaW50IGZsdXNoX2RvbWFpbnMpCiAJY2FzZSBJOTE1 X0dFTV9ET01BSU5fQ1BVOgogCQlpOTE1X2dlbV9jbGZsdXNoX29iamVjdChvYmosIEk5MTVfQ0xG TFVTSF9TWU5DKTsKIAkJYnJlYWs7CisKKwljYXNlIEk5MTVfR0VNX0RPTUFJTl9SRU5ERVI6CisJ CWlmIChncHVfd3JpdGVfbmVlZHNfY2xmbHVzaChvYmopKQorCQkJb2JqLT5jYWNoZV9kaXJ0eSA9 IHRydWU7CisJCWJyZWFrOwogCX0KIAogCW9iai0+YmFzZS53cml0ZV9kb21haW4gPSAwOwpAQCAt ODU0LDcgKzg3Miw4IEBAIGludCBpOTE1X2dlbV9vYmpfcHJlcGFyZV9zaG1lbV9yZWFkKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJICogb3B0aW1pemVzIGZvciB0aGUgY2FzZSB3 aGVuIHRoZSBncHUgd2lsbCBkaXJ0eSB0aGUgZGF0YQogCSAqIGFueXdheSBhZ2FpbiBiZWZvcmUg dGhlIG5leHQgcHJlYWQgaGFwcGVucy4KIAkgKi8KLQlpZiAoIShvYmotPmJhc2UucmVhZF9kb21h aW5zICYgSTkxNV9HRU1fRE9NQUlOX0NQVSkpCisJaWYgKCFvYmotPmNhY2hlX2RpcnR5ICYmCisJ ICAgICEob2JqLT5iYXNlLnJlYWRfZG9tYWlucyAmIEk5MTVfR0VNX0RPTUFJTl9DUFUpKQogCQkq bmVlZHNfY2xmbHVzaCA9IENMRkxVU0hfQkVGT1JFOwogCiBvdXQ6CkBAIC05MDYsMTQgKzkyNSwx NiBAQCBpbnQgaTkxNV9nZW1fb2JqX3ByZXBhcmVfc2htZW1fd3JpdGUoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKIAkgKiBUaGlzIG9wdGltaXplcyBmb3IgdGhlIGNhc2Ugd2hlbiB0 aGUgZ3B1IHdpbGwgdXNlIHRoZSBkYXRhCiAJICogcmlnaHQgYXdheSBhbmQgd2UgdGhlcmVmb3Jl IGhhdmUgdG8gY2xmbHVzaCBhbnl3YXkuCiAJICovCi0JaWYgKG9iai0+YmFzZS53cml0ZV9kb21h aW4gIT0gSTkxNV9HRU1fRE9NQUlOX0NQVSkKKwlpZiAoIW9iai0+Y2FjaGVfZGlydHkpIHsKIAkJ Km5lZWRzX2NsZmx1c2ggfD0gQ0xGTFVTSF9BRlRFUjsKIAotCS8qIFNhbWUgdHJpY2sgYXBwbGll cyB0byBpbnZhbGlkYXRlIHBhcnRpYWxseSB3cml0dGVuIGNhY2hlbGluZXMgcmVhZAotCSAqIGJl Zm9yZSB3cml0aW5nLgotCSAqLwotCWlmICghKG9iai0+YmFzZS5yZWFkX2RvbWFpbnMgJiBJOTE1 X0dFTV9ET01BSU5fQ1BVKSkKLQkJKm5lZWRzX2NsZmx1c2ggfD0gQ0xGTFVTSF9CRUZPUkU7CisJ CS8qCisJCSAqIFNhbWUgdHJpY2sgYXBwbGllcyB0byBpbnZhbGlkYXRlIHBhcnRpYWxseSB3cml0 dGVuCisJCSAqIGNhY2hlbGluZXMgcmVhZCBiZWZvcmUgd3JpdGluZy4KKwkJICovCisJCWlmICgh KG9iai0+YmFzZS5yZWFkX2RvbWFpbnMgJiBJOTE1X0dFTV9ET01BSU5fQ1BVKSkKKwkJCSpuZWVk c19jbGZsdXNoIHw9IENMRkxVU0hfQkVGT1JFOworCX0KIAogb3V0OgogCWludGVsX2ZiX29ial9p bnZhbGlkYXRlKG9iaiwgT1JJR0lOX0NQVSk7CkBAIC0zMzk5LDEwICszNDIwLDEzIEBAIGludCBp OTE1X2dlbV93YWl0X2Zvcl9pZGxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCB1bnNp Z25lZCBpbnQgZmxhZ3MpCiAKIHN0YXRpYyB2b2lkIF9faTkxNV9nZW1fb2JqZWN0X2ZsdXNoX2Zv cl9kaXNwbGF5KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7Ci0JaWYgKG9iai0+ YmFzZS53cml0ZV9kb21haW4gIT0gSTkxNV9HRU1fRE9NQUlOX0NQVSAmJiAhb2JqLT5jYWNoZV9k aXJ0eSkKLQkJcmV0dXJuOwotCi0JaTkxNV9nZW1fY2xmbHVzaF9vYmplY3Qob2JqLCBJOTE1X0NM RkxVU0hfRk9SQ0UpOworCS8qCisJICogV2UgbWFudWFsbHkgZmx1c2ggdGhlIENQVSBkb21haW4g c28gdGhhdCB3ZSBjYW4gb3ZlcnJpZGUgYW5kCisJICogZm9yY2UgdGhlIGZsdXNoIGZvciB0aGUg ZGlzcGxheSwgYW5kIHBlcmZvcm0gaXQgYXN5bmNyaG9ub3VzbHkuCisJICovCisJZmx1c2hfd3Jp dGVfZG9tYWluKG9iaiwgfkk5MTVfR0VNX0RPTUFJTl9DUFUpOworCWlmIChvYmotPmNhY2hlX2Rp cnR5KQorCQlpOTE1X2dlbV9jbGZsdXNoX29iamVjdChvYmosIEk5MTVfQ0xGTFVTSF9GT1JDRSk7 CiAJb2JqLT5iYXNlLndyaXRlX2RvbWFpbiA9IDA7CiB9CiAKQEAgLTM2NjEsMTMgKzM2ODUsMTAg QEAgaW50IGk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfbGV2ZWwoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaiwKIAkJfQogCX0KIAotCWlmIChvYmotPmJhc2Uud3JpdGVfZG9tYWluID09 IEk5MTVfR0VNX0RPTUFJTl9DUFUgJiYKLQkgICAgaTkxNV9nZW1fb2JqZWN0X2lzX2NvaGVyZW50 KG9iaikpCi0JCW9iai0+Y2FjaGVfZGlydHkgPSB0cnVlOwotCiAJbGlzdF9mb3JfZWFjaF9lbnRy eSh2bWEsICZvYmotPnZtYV9saXN0LCBvYmpfbGluaykKIAkJdm1hLT5ub2RlLmNvbG9yID0gY2Fj aGVfbGV2ZWw7CiAJb2JqLT5jYWNoZV9sZXZlbCA9IGNhY2hlX2xldmVsOworCW9iai0+Y2FjaGVf ZGlydHkgPSB0cnVlOyAvKiBBbHdheXMgaW52YWxpZGF0ZSBzdGFsZSBjYWNoZWxpbmVzICovCiAK IAlyZXR1cm4gMDsKIH0KQEAgLTM4ODksOSArMzkxMCw2IEBAIGk5MTVfZ2VtX29iamVjdF9zZXRf dG9fY3B1X2RvbWFpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCBib29sIHdyaXRl KQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlpZiAob2JqLT5iYXNlLndyaXRlX2RvbWFp biA9PSBJOTE1X0dFTV9ET01BSU5fQ1BVKQotCQlyZXR1cm4gMDsKLQogCWZsdXNoX3dyaXRlX2Rv bWFpbihvYmosIH5JOTE1X0dFTV9ET01BSU5fQ1BVKTsKIAogCS8qIEZsdXNoIHRoZSBDUFUgY2Fj aGUgaWYgaXQncyBzdGlsbCBpbnZhbGlkLiAqLwpAQCAtMzkwMywxNSArMzkyMSwxMyBAQCBpOTE1 X2dlbV9vYmplY3Rfc2V0X3RvX2NwdV9kb21haW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiwgYm9vbCB3cml0ZSkKIAkvKiBJdCBzaG91bGQgbm93IGJlIG91dCBvZiBhbnkgb3RoZXIg d3JpdGUgZG9tYWlucywgYW5kIHdlIGNhbiB1cGRhdGUKIAkgKiB0aGUgZG9tYWluIHZhbHVlcyBm b3Igb3VyIGNoYW5nZXMuCiAJICovCi0JR0VNX0JVR19PTigob2JqLT5iYXNlLndyaXRlX2RvbWFp biAmIH5JOTE1X0dFTV9ET01BSU5fQ1BVKSAhPSAwKTsKKwlHRU1fQlVHX09OKG9iai0+YmFzZS53 cml0ZV9kb21haW4gJiB+STkxNV9HRU1fRE9NQUlOX0NQVSk7CiAKIAkvKiBJZiB3ZSdyZSB3cml0 aW5nIHRocm91Z2ggdGhlIENQVSwgdGhlbiB0aGUgR1BVIHJlYWQgZG9tYWlucyB3aWxsCiAJICog bmVlZCB0byBiZSBpbnZhbGlkYXRlZCBhdCBuZXh0IHVzZS4KIAkgKi8KLQlpZiAod3JpdGUpIHsK LQkJb2JqLT5iYXNlLnJlYWRfZG9tYWlucyA9IEk5MTVfR0VNX0RPTUFJTl9DUFU7Ci0JCW9iai0+ YmFzZS53cml0ZV9kb21haW4gPSBJOTE1X0dFTV9ET01BSU5fQ1BVOwotCX0KKwlpZiAod3JpdGUp CisJCV9fc3RhcnRfY3B1X3dyaXRlKG9iaik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTQzMzIsNiAr NDM0OCw4IEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LCB1NjQgc2l6ZSkKIAl9IGVsc2UKIAkJb2JqLT5jYWNoZV9sZXZlbCA9IEk5MTVf Q0FDSEVfTk9ORTsKIAorCW9iai0+Y2FjaGVfZGlydHkgPSAhaTkxNV9nZW1fb2JqZWN0X2lzX2Nv aGVyZW50KG9iaik7CisKIAl0cmFjZV9pOTE1X2dlbV9vYmplY3RfY3JlYXRlKG9iaik7CiAKIAly ZXR1cm4gb2JqOwpAQCAtNDk5OCwxMCArNTAxNiw4IEBAIGludCBpOTE1X2dlbV9mcmVlemVfbGF0 ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAltdXRleF9sb2NrKCZkZXZf cHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJZm9yIChwID0gcGhhc2VzOyAqcDsgcCsrKSB7Ci0J CWxpc3RfZm9yX2VhY2hfZW50cnkob2JqLCAqcCwgZ2xvYmFsX2xpbmspIHsKLQkJCW9iai0+YmFz ZS5yZWFkX2RvbWFpbnMgPSBJOTE1X0dFTV9ET01BSU5fQ1BVOwotCQkJb2JqLT5iYXNlLndyaXRl X2RvbWFpbiA9IEk5MTVfR0VNX0RPTUFJTl9DUFU7Ci0JCX0KKwkJbGlzdF9mb3JfZWFjaF9lbnRy eShvYmosICpwLCBnbG9iYWxfbGluaykKKwkJCV9fc3RhcnRfY3B1X3dyaXRlKG9iaik7CiAJfQog CW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jbGZsdXNoLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9jbGZsdXNoLmMKaW5kZXggZmZhYzdhMWYwY2FmLi4xN2IyMDdlOTYz YzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NsZmx1c2guYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jbGZsdXNoLmMKQEAgLTcxLDggKzcx LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIGk5MTVfY2xmbHVzaF9vcHMg PSB7CiBzdGF0aWMgdm9pZCBfX2k5MTVfZG9fY2xmbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqKQogewogCWRybV9jbGZsdXNoX3NnKG9iai0+bW0ucGFnZXMpOwotCW9iai0+Y2Fj aGVfZGlydHkgPSBmYWxzZTsKLQogCWludGVsX2ZiX29ial9mbHVzaChvYmosIE9SSUdJTl9DUFUp OwogfQogCkBAIC04MSw5ICs3OSw2IEBAIHN0YXRpYyB2b2lkIGk5MTVfY2xmbHVzaF93b3JrKHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlzdHJ1Y3QgY2xmbHVzaCAqY2xmbHVzaCA9IGNvbnRh aW5lcl9vZih3b3JrLCB0eXBlb2YoKmNsZmx1c2gpLCB3b3JrKTsKIAlzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqID0gY2xmbHVzaC0+b2JqOwogCi0JaWYgKCFvYmotPmNhY2hlX2RpcnR5 KQotCQlnb3RvIG91dDsKLQogCWlmIChpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9iaikpIHsK IAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWNxdWlyZSBvYmotPnBhZ2VzIGZvciBjbGZsdXNoaW5n XG4iKTsKIAkJZ290byBvdXQ7CkBAIC0xMzEsMTAgKzEyNiwxMCBAQCB2b2lkIGk5MTVfZ2VtX2Ns Zmx1c2hfb2JqZWN0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJICogYW55dGhp bmcgbm90IGJhY2tlZCBieSBwaHlzaWNhbCBtZW1vcnkgd2UgY29uc2lkZXIgdG8gYmUgYWx3YXlz CiAJICogY29oZXJlbnQgYW5kIG5vdCBuZWVkIGNsZmx1c2hpbmcuCiAJICovCi0JaWYgKCFpOTE1 X2dlbV9vYmplY3RfaGFzX3N0cnVjdF9wYWdlKG9iaikpCisJaWYgKCFpOTE1X2dlbV9vYmplY3Rf aGFzX3N0cnVjdF9wYWdlKG9iaikpIHsKKwkJb2JqLT5jYWNoZV9kaXJ0eSA9IGZhbHNlOwogCQly ZXR1cm47Ci0KLQlvYmotPmNhY2hlX2RpcnR5ID0gdHJ1ZTsKKwl9CiAKIAkvKiBJZiB0aGUgR1BV IGlzIHNub29waW5nIHRoZSBjb250ZW50cyBvZiB0aGUgQ1BVIGNhY2hlLAogCSAqIHdlIGRvIG5v dCBuZWVkIHRvIG1hbnVhbGx5IGNsZWFyIHRoZSBDUFUgY2FjaGUgbGluZXMuICBIb3dldmVyLApA QCAtMTUzLDYgKzE0OCw4IEBAIHZvaWQgaTkxNV9nZW1fY2xmbHVzaF9vYmplY3Qoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlpZiAoIShmbGFncyAmIEk5MTVfQ0xGTFVTSF9TWU5D KSkKIAkJY2xmbHVzaCA9IGttYWxsb2Moc2l6ZW9mKCpjbGZsdXNoKSwgR0ZQX0tFUk5FTCk7CiAJ aWYgKGNsZmx1c2gpIHsKKwkJR0VNX0JVR19PTighb2JqLT5jYWNoZV9kaXJ0eSk7CisKIAkJZG1h X2ZlbmNlX2luaXQoJmNsZmx1c2gtPmRtYSwKIAkJCSAgICAgICAmaTkxNV9jbGZsdXNoX29wcywK IAkJCSAgICAgICAmY2xmbHVzaF9sb2NrLApAQCAtMTgwLDQgKzE3Nyw2IEBAIHZvaWQgaTkxNV9n ZW1fY2xmbHVzaF9vYmplY3Qoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAl9IGVs c2UgewogCQlHRU1fQlVHX09OKG9iai0+YmFzZS53cml0ZV9kb21haW4gIT0gSTkxNV9HRU1fRE9N QUlOX0NQVSk7CiAJfQorCisJb2JqLT5jYWNoZV9kaXJ0eSA9IGZhbHNlOwogfQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCmluZGV4IDA0MjExYzk3MGI5Zi4uODc1 MDVjZmI3NWMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVj YnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5j CkBAIC0yOTEsNyArMjkxLDcgQEAgc3RhdGljIGlubGluZSBpbnQgdXNlX2NwdV9yZWxvYyhzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCQlyZXR1cm4gREJHX1VTRV9DUFVfUkVMT0Mg PiAwOwogCiAJcmV0dXJuIChIQVNfTExDKHRvX2k5MTUob2JqLT5iYXNlLmRldikpIHx8Ci0JCW9i ai0+YmFzZS53cml0ZV9kb21haW4gPT0gSTkxNV9HRU1fRE9NQUlOX0NQVSB8fAorCQlvYmotPmNh Y2hlX2RpcnR5IHx8CiAJCW9iai0+Y2FjaGVfbGV2ZWwgIT0gSTkxNV9DQUNIRV9OT05FKTsKIH0K IApAQCAtMTEyOSwxMCArMTEyOSw4IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXJfbW92ZV90b19ncHUo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJCWlmICh2bWEtPmV4ZWNfZW50cnkt PmZsYWdzICYgRVhFQ19PQkpFQ1RfQVNZTkMpCiAJCQljb250aW51ZTsKIAotCQlpZiAob2JqLT5i YXNlLndyaXRlX2RvbWFpbiAmIEk5MTVfR0VNX0RPTUFJTl9DUFUpIHsKKwkJaWYgKG9iai0+Y2Fj aGVfZGlydHkpCiAJCQlpOTE1X2dlbV9jbGZsdXNoX29iamVjdChvYmosIDApOwotCQkJb2JqLT5i YXNlLndyaXRlX2RvbWFpbiA9IDA7Ci0JCX0KIAogCQlyZXQgPSBpOTE1X2dlbV9yZXF1ZXN0X2F3 YWl0X29iamVjdAogCQkJKHJlcSwgb2JqLCBvYmotPmJhc2UucGVuZGluZ193cml0ZV9kb21haW4p OwpAQCAtMTI2NSwxMiArMTI2Myw2IEBAIGk5MTVfZ2VtX3ZhbGlkYXRlX2NvbnRleHQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlLAogCXJldHVybiBjdHg7CiB9 CiAKLXN0YXRpYyBib29sIGdwdV93cml0ZV9uZWVkc19jbGZsdXNoKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmopCi17Ci0JcmV0dXJuICEob2JqLT5jYWNoZV9sZXZlbCA9PSBJOTE1X0NB Q0hFX05PTkUgfHwKLQkJIG9iai0+Y2FjaGVfbGV2ZWwgPT0gSTkxNV9DQUNIRV9XVCk7Ci19Ci0K IHZvaWQgaTkxNV92bWFfbW92ZV90b19hY3RpdmUoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJCQkg ICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkJICAgICB1bnNpZ25lZCBp bnQgZmxhZ3MpCkBAIC0xMjk0LDE1ICsxMjg2LDE2IEBAIHZvaWQgaTkxNV92bWFfbW92ZV90b19h Y3RpdmUoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJaTkxNV9nZW1fYWN0aXZlX3NldCgmdm1hLT5s YXN0X3JlYWRbaWR4XSwgcmVxKTsKIAlsaXN0X21vdmVfdGFpbCgmdm1hLT52bV9saW5rLCAmdm1h LT52bS0+YWN0aXZlX2xpc3QpOwogCisJb2JqLT5iYXNlLndyaXRlX2RvbWFpbiA9IDA7CiAJaWYg KGZsYWdzICYgRVhFQ19PQkpFQ1RfV1JJVEUpIHsKKwkJb2JqLT5iYXNlLndyaXRlX2RvbWFpbiA9 IEk5MTVfR0VNX0RPTUFJTl9SRU5ERVI7CisKIAkJaWYgKGludGVsX2ZiX29ial9pbnZhbGlkYXRl KG9iaiwgT1JJR0lOX0NTKSkKIAkJCWk5MTVfZ2VtX2FjdGl2ZV9zZXQoJm9iai0+ZnJvbnRidWZm ZXJfd3JpdGUsIHJlcSk7CiAKLQkJLyogdXBkYXRlIGZvciB0aGUgaW1wbGljaXQgZmx1c2ggYWZ0 ZXIgYSBiYXRjaCAqLwotCQlvYmotPmJhc2Uud3JpdGVfZG9tYWluICY9IH5JOTE1X0dFTV9HUFVf RE9NQUlOUzsKLQkJaWYgKCFvYmotPmNhY2hlX2RpcnR5ICYmIGdwdV93cml0ZV9uZWVkc19jbGZs dXNoKG9iaikpCi0JCQlvYmotPmNhY2hlX2RpcnR5ID0gdHJ1ZTsKKwkJb2JqLT5iYXNlLnJlYWRf ZG9tYWlucyA9IDA7CiAJfQorCW9iai0+YmFzZS5yZWFkX2RvbWFpbnMgfD0gSTkxNV9HRU1fR1BV X0RPTUFJTlM7CiAKIAlpZiAoZmxhZ3MgJiBFWEVDX09CSkVDVF9ORUVEU19GRU5DRSkKIAkJaTkx NV9nZW1fYWN0aXZlX3NldCgmdm1hLT5sYXN0X2ZlbmNlLCByZXEpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1faW50ZXJuYWwuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2ludGVybmFsLmMKaW5kZXggZmM5NTBhYmJlNDAwLi41OGU5M2U4N2Q1NzMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2ludGVybmFsLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1faW50ZXJuYWwuYwpAQCAtMTg4LDkgKzE4 OCwxMCBAQCBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2ludGVybmFsKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1LAogCWRybV9nZW1fcHJpdmF0ZV9vYmplY3RfaW5pdCgmaTkxNS0+ZHJtLCAm b2JqLT5iYXNlLCBzaXplKTsKIAlpOTE1X2dlbV9vYmplY3RfaW5pdChvYmosICZpOTE1X2dlbV9v YmplY3RfaW50ZXJuYWxfb3BzKTsKIAotCW9iai0+YmFzZS53cml0ZV9kb21haW4gPSBJOTE1X0dF TV9ET01BSU5fQ1BVOwogCW9iai0+YmFzZS5yZWFkX2RvbWFpbnMgPSBJOTE1X0dFTV9ET01BSU5f Q1BVOworCW9iai0+YmFzZS53cml0ZV9kb21haW4gPSBJOTE1X0dFTV9ET01BSU5fQ1BVOwogCW9i ai0+Y2FjaGVfbGV2ZWwgPSBIQVNfTExDKGk5MTUpID8gSTkxNV9DQUNIRV9MTEMgOiBJOTE1X0NB Q0hFX05PTkU7CisJb2JqLT5jYWNoZV9kaXJ0eSA9ICFpOTE1X2dlbV9vYmplY3RfaXNfY29oZXJl bnQob2JqKTsKIAogCXJldHVybiBvYmo7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV91c2VycHRyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91 c2VycHRyLmMKaW5kZXggMWEwY2UxZGM2OGY1Li4zNDQ2MWUxOTI4YmMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3VzZXJwdHIuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMKQEAgLTgwMiw5ICs4MDIsMTAgQEAgaTkxNV9nZW1f dXNlcnB0cl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGUKIAogCWRybV9nZW1fcHJpdmF0ZV9vYmplY3RfaW5pdChkZXYsICZvYmot PmJhc2UsIGFyZ3MtPnVzZXJfc2l6ZSk7CiAJaTkxNV9nZW1fb2JqZWN0X2luaXQob2JqLCAmaTkx NV9nZW1fdXNlcnB0cl9vcHMpOwotCW9iai0+Y2FjaGVfbGV2ZWwgPSBJOTE1X0NBQ0hFX0xMQzsK LQlvYmotPmJhc2Uud3JpdGVfZG9tYWluID0gSTkxNV9HRU1fRE9NQUlOX0NQVTsKIAlvYmotPmJh c2UucmVhZF9kb21haW5zID0gSTkxNV9HRU1fRE9NQUlOX0NQVTsKKwlvYmotPmJhc2Uud3JpdGVf ZG9tYWluID0gSTkxNV9HRU1fRE9NQUlOX0NQVTsKKwlvYmotPmNhY2hlX2xldmVsID0gSTkxNV9D QUNIRV9MTEM7CisJb2JqLT5jYWNoZV9kaXJ0eSA9ICFpOTE1X2dlbV9vYmplY3RfaXNfY29oZXJl bnQob2JqKTsKIAogCW9iai0+dXNlcnB0ci5wdHIgPSBhcmdzLT51c2VyX3B0cjsKIAlvYmotPnVz ZXJwdHIucmVhZF9vbmx5ID0gISEoYXJncy0+ZmxhZ3MgJiBJOTE1X1VTRVJQVFJfUkVBRF9PTkxZ KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9odWdlX2dlbV9v YmplY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9odWdlX2dlbV9vYmplY3Qu YwppbmRleCA0ZTY4MWZjMTNiZTQuLjBjYTg2N2E4NzdiNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2h1Z2VfZ2VtX29iamVjdC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9odWdlX2dlbV9vYmplY3QuYwpAQCAtMTI2LDkgKzEyNiwxMCBA QCBodWdlX2dlbV9vYmplY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJZHJtX2dl bV9wcml2YXRlX29iamVjdF9pbml0KCZpOTE1LT5kcm0sICZvYmotPmJhc2UsIGRtYV9zaXplKTsK IAlpOTE1X2dlbV9vYmplY3RfaW5pdChvYmosICZodWdlX29wcyk7CiAKLQlvYmotPmJhc2Uud3Jp dGVfZG9tYWluID0gSTkxNV9HRU1fRE9NQUlOX0NQVTsKIAlvYmotPmJhc2UucmVhZF9kb21haW5z ID0gSTkxNV9HRU1fRE9NQUlOX0NQVTsKKwlvYmotPmJhc2Uud3JpdGVfZG9tYWluID0gSTkxNV9H RU1fRE9NQUlOX0NQVTsKIAlvYmotPmNhY2hlX2xldmVsID0gSEFTX0xMQyhpOTE1KSA/IEk5MTVf Q0FDSEVfTExDIDogSTkxNV9DQUNIRV9OT05FOworCW9iai0+Y2FjaGVfZGlydHkgPSAhaTkxNV9n ZW1fb2JqZWN0X2lzX2NvaGVyZW50KG9iaik7CiAJb2JqLT5zY3JhdGNoID0gcGh5c19zaXplOwog CiAJcmV0dXJuIG9iajsKLS0gCjIuMTEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==