From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [PATCH v2 02/12] drm/fb-helper: Avoid race with DRM userspace Date: Sun, 7 Apr 2019 18:52:33 +0200 Message-ID: <20190407165243.54043-3-noralf@tronnes.org> References: <20190407165243.54043-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190407165243.54043-1-noralf@tronnes.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= List-Id: dri-devel@lists.freedesktop.org ZHJtX2ZiX2hlbHBlcl9pc19ib3VuZCgpIGlzIHVzZWQgdG8gY2hlY2sgaWYgRFJNIHVzZXJzcGFj ZSBpcyBpbiBjb250cm9sLgpUaGlzIGlzIGRvbmUgYnkgbG9va2luZyBhdCB0aGUgZmIgb24gdGhl IHByaW1hcnkgcGxhbmUuIEJ5IHRoZSB0aW1lCmZiLWhlbHBlciBnZXRzIGFyb3VuZCB0byBjb21t aXR0aW5nLCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGZhY3RzIGhhdmUKY2hhbmdlZC4KCkF2b2lk IHRoaXMgcmFjZSBieSBob2xkaW5nIHRoZSBkcm1fZGV2aWNlLT5tYXN0ZXJfbXV0ZXggbG9jayB3 aGlsZQpjb21taXR0aW5nLiBXaGVuIERSTSB1c2Vyc3BhY2UgZG9lcyBpdHMgZmlyc3Qgb3Blbiwg aXQgd2lsbCBub3cgd2FpdAp1bnRpbCBmYi1oZWxwZXIgaXMgZG9uZS4gVGhlIGhlbHBlciB3aWxs IHN0YXkgYXdheSBpZiB0aGVyZSdzIGEgbWFzdGVyLgoKTG9ja2luZyBydWxlOiBBbHdheXMgdGFr ZSB0aGUgZmItaGVscGVyIGxvY2sgZmlyc3QuCgp2MjoKLSBSZW1vdmUgZHJtX2ZiX2hlbHBlcl9p c19ib3VuZCgpIChEYW5pZWwgVmV0dGVyKQotIE5vIG5lZWQgdG8gY2hlY2sgZmJfaGVscGVyLT5k ZXYtPm1hc3RlciBpbgogIGRybV9mYl9oZWxwZXJfc2luZ2xlX2ZiX3Byb2JlKCksIHJlc3RvcmVf ZmJkZXZfbW9kZSgpIGhhcyB0aGUgY2hlY2suCgpTdWdnZXN0ZWQtYnk6IERhbmllbCBWZXR0ZXIg PGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+ClNpZ25lZC1vZmYtYnk6IE5vcmFsZiBUcsO4bm5lcyA8 bm9yYWxmQHRyb25uZXMub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXV0aC5jICAgICAg fCAyMCArKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYyB8IDkwICsrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5h bC5oICB8ICAyICsKIDMgZmlsZXMgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2F1dGguYwppbmRleCAxNjY5YzQyYzQwZWQuLmRiMTk5ODA3YjdkYyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2RybV9hdXRoLmMKQEAgLTM2OCwzICszNjgsMjMgQEAgdm9pZCBkcm1fbWFzdGVyX3B1dChzdHJ1 Y3QgZHJtX21hc3RlciAqKm1hc3RlcikKIAkqbWFzdGVyID0gTlVMTDsKIH0KIEVYUE9SVF9TWU1C T0woZHJtX21hc3Rlcl9wdXQpOworCisvKiBVc2VkIGJ5IGRybV9jbGllbnQgYW5kIGRybV9mYl9o ZWxwZXIgKi8KK2Jvb2wgZHJtX21hc3Rlcl9pbnRlcm5hbF9hY3F1aXJlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCit7CisJbXV0ZXhfbG9jaygmZGV2LT5tYXN0ZXJfbXV0ZXgpOworCWlmIChkZXYt Pm1hc3RlcikgeworCQltdXRleF91bmxvY2soJmRldi0+bWFzdGVyX211dGV4KTsKKwkJcmV0dXJu IGZhbHNlOworCX0KKworCXJldHVybiB0cnVlOworfQorRVhQT1JUX1NZTUJPTChkcm1fbWFzdGVy X2ludGVybmFsX2FjcXVpcmUpOworCisvKiBVc2VkIGJ5IGRybV9jbGllbnQgYW5kIGRybV9mYl9o ZWxwZXIgKi8KK3ZvaWQgZHJtX21hc3Rlcl9pbnRlcm5hbF9yZWxlYXNlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCit7CisJbXV0ZXhfdW5sb2NrKCZkZXYtPm1hc3Rlcl9tdXRleCk7Cit9CitFWFBP UlRfU1lNQk9MKGRybV9tYXN0ZXJfaW50ZXJuYWxfcmVsZWFzZSk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxw ZXIuYwppbmRleCA4NDc5MWRkNGE5MGQuLmE2YmUwOWFlODk5YiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hl bHBlci5jCkBAIC00NCw2ICs0NCw3IEBACiAKICNpbmNsdWRlICJkcm1fY3J0Y19pbnRlcm5hbC5o IgogI2luY2x1ZGUgImRybV9jcnRjX2hlbHBlcl9pbnRlcm5hbC5oIgorI2luY2x1ZGUgImRybV9p bnRlcm5hbC5oIgogCiBzdGF0aWMgYm9vbCBkcm1fZmJkZXZfZW11bGF0aW9uID0gdHJ1ZTsKIG1v ZHVsZV9wYXJhbV9uYW1lZChmYmRldl9lbXVsYXRpb24sIGRybV9mYmRldl9lbXVsYXRpb24sIGJv b2wsIDA2MDApOwpAQCAtNTA5LDcgKzUxMCw3IEBAIHN0YXRpYyBpbnQgcmVzdG9yZV9mYmRldl9t b2RlX2xlZ2FjeShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKQogCXJldHVybiByZXQ7 CiB9CiAKLXN0YXRpYyBpbnQgcmVzdG9yZV9mYmRldl9tb2RlKHN0cnVjdCBkcm1fZmJfaGVscGVy ICpmYl9oZWxwZXIpCitzdGF0aWMgaW50IHJlc3RvcmVfZmJkZXZfbW9kZV9mb3JjZShzdHJ1Y3Qg ZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBm Yl9oZWxwZXItPmRldjsKIApAQCAtNTE5LDYgKzUyMCwyMSBAQCBzdGF0aWMgaW50IHJlc3RvcmVf ZmJkZXZfbW9kZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKQogCQlyZXR1cm4gcmVz dG9yZV9mYmRldl9tb2RlX2xlZ2FjeShmYl9oZWxwZXIpOwogfQogCitzdGF0aWMgaW50IHJlc3Rv cmVfZmJkZXZfbW9kZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKQoreworCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBmYl9oZWxwZXItPmRldjsKKwlpbnQgcmV0OworCisJaWYgKCFk cm1fbWFzdGVyX2ludGVybmFsX2FjcXVpcmUoZGV2KSkKKwkJcmV0dXJuIC1FQlVTWTsKKworCXJl dCA9IHJlc3RvcmVfZmJkZXZfbW9kZV9mb3JjZShmYl9oZWxwZXIpOworCisJZHJtX21hc3Rlcl9p bnRlcm5hbF9yZWxlYXNlKGRldik7CisKKwlyZXR1cm4gcmV0OworfQorCiAvKioKICAqIGRybV9m Yl9oZWxwZXJfcmVzdG9yZV9mYmRldl9tb2RlX3VubG9ja2VkIC0gcmVzdG9yZSBmYmRldiBjb25m aWd1cmF0aW9uCiAgKiBAZmJfaGVscGVyOiBkcml2ZXItYWxsb2NhdGVkIGZiZGV2IGhlbHBlciwg Y2FuIGJlIE5VTEwKQEAgLTU1NiwzNCArNTcyLDYgQEAgaW50IGRybV9mYl9oZWxwZXJfcmVzdG9y ZV9mYmRldl9tb2RlX3VubG9ja2VkKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpCiB9 CiBFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfcmVzdG9yZV9mYmRldl9tb2RlX3VubG9ja2Vk KTsKIAotc3RhdGljIGJvb2wgZHJtX2ZiX2hlbHBlcl9pc19ib3VuZChzdHJ1Y3QgZHJtX2ZiX2hl bHBlciAqZmJfaGVscGVyKQotewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmYl9oZWxwZXIt PmRldjsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Ci0JaW50IGJvdW5kID0gMCwgY3J0Y3NfYm91 bmQgPSAwOwotCi0JLyoKLQkgKiBTb21ldGltZXMgdXNlciBzcGFjZSB3YW50cyBldmVyeXRoaW5n IGRpc2FibGVkLCBzbyBkb24ndCBzdGVhbCB0aGUKLQkgKiBkaXNwbGF5IGlmIHRoZXJlJ3MgYSBt YXN0ZXIuCi0JICovCi0JaWYgKFJFQURfT05DRShkZXYtPm1hc3RlcikpCi0JCXJldHVybiBmYWxz ZTsKLQotCWRybV9mb3JfZWFjaF9jcnRjKGNydGMsIGRldikgewotCQlkcm1fbW9kZXNldF9sb2Nr KCZjcnRjLT5tdXRleCwgTlVMTCk7Ci0JCWlmIChjcnRjLT5wcmltYXJ5LT5mYikKLQkJCWNydGNz X2JvdW5kKys7Ci0JCWlmIChjcnRjLT5wcmltYXJ5LT5mYiA9PSBmYl9oZWxwZXItPmZiKQotCQkJ Ym91bmQrKzsKLQkJZHJtX21vZGVzZXRfdW5sb2NrKCZjcnRjLT5tdXRleCk7Ci0JfQotCi0JaWYg KGJvdW5kIDwgY3J0Y3NfYm91bmQpCi0JCXJldHVybiBmYWxzZTsKLQotCXJldHVybiB0cnVlOwot fQotCiAjaWZkZWYgQ09ORklHX01BR0lDX1NZU1JRCiAvKgogICogcmVzdG9yZSBmYmNvbiBkaXNw bGF5IGZvciBhbGwga21zIGRyaXZlcidzIHVzaW5nIHRoaXMgaGVscGVyLCB1c2VkIGZvciBzeXNy cQpAQCAtNjA0LDcgKzU5Miw3IEBAIHN0YXRpYyBib29sIGRybV9mYl9oZWxwZXJfZm9yY2Vfa2Vy bmVsX21vZGUodm9pZCkKIAkJCWNvbnRpbnVlOwogCiAJCW11dGV4X2xvY2soJmhlbHBlci0+bG9j ayk7Ci0JCXJldCA9IHJlc3RvcmVfZmJkZXZfbW9kZShoZWxwZXIpOworCQlyZXQgPSByZXN0b3Jl X2ZiZGV2X21vZGVfZm9yY2UoaGVscGVyKTsKIAkJaWYgKHJldCkKIAkJCWVycm9yID0gdHJ1ZTsK IAkJbXV0ZXhfdW5sb2NrKCZoZWxwZXItPmxvY2spOwpAQCAtNjYzLDIwICs2NTEsMjIgQEAgc3Rh dGljIHZvaWQgZHBtc19sZWdhY3koc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwgaW50 IGRwbXNfbW9kZSkKIHN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZHBtcyhzdHJ1Y3QgZmJfaW5m byAqaW5mbywgaW50IGRwbXNfbW9kZSkKIHsKIAlzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVs cGVyID0gaW5mby0+cGFyOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmYl9oZWxwZXItPmRl djsKIAogCS8qCiAJICogRm9yIGVhY2ggQ1JUQyBpbiB0aGlzIGZiLCB0dXJuIHRoZSBjb25uZWN0 b3JzIG9uL29mZi4KIAkgKi8KIAltdXRleF9sb2NrKCZmYl9oZWxwZXItPmxvY2spOwotCWlmICgh ZHJtX2ZiX2hlbHBlcl9pc19ib3VuZChmYl9oZWxwZXIpKSB7Ci0JCW11dGV4X3VubG9jaygmZmJf aGVscGVyLT5sb2NrKTsKLQkJcmV0dXJuOwotCX0KKwlpZiAoIWRybV9tYXN0ZXJfaW50ZXJuYWxf YWNxdWlyZShkZXYpKQorCQlnb3RvIHVubG9jazsKIAotCWlmIChkcm1fZHJ2X3VzZXNfYXRvbWlj X21vZGVzZXQoZmJfaGVscGVyLT5kZXYpKQorCWlmIChkcm1fZHJ2X3VzZXNfYXRvbWljX21vZGVz ZXQoZGV2KSkKIAkJcmVzdG9yZV9mYmRldl9tb2RlX2F0b21pYyhmYl9oZWxwZXIsIGRwbXNfbW9k ZSA9PSBEUk1fTU9ERV9EUE1TX09OKTsKIAllbHNlCiAJCWRwbXNfbGVnYWN5KGZiX2hlbHBlciwg ZHBtc19tb2RlKTsKKworCWRybV9tYXN0ZXJfaW50ZXJuYWxfcmVsZWFzZShkZXYpOwordW5sb2Nr OgogCW11dGV4X3VubG9jaygmZmJfaGVscGVyLT5sb2NrKTsKIH0KIApAQCAtMTUwOSw2ICsxNDk5 LDcgQEAgc3RhdGljIGludCBzZXRjbWFwX2F0b21pYyhzdHJ1Y3QgZmJfY21hcCAqY21hcCwgc3Ry dWN0IGZiX2luZm8gKmluZm8pCiBpbnQgZHJtX2ZiX2hlbHBlcl9zZXRjbWFwKHN0cnVjdCBmYl9j bWFwICpjbWFwLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIHsKIAlzdHJ1Y3QgZHJtX2ZiX2hlbHBl ciAqZmJfaGVscGVyID0gaW5mby0+cGFyOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmYl9o ZWxwZXItPmRldjsKIAlpbnQgcmV0OwogCiAJaWYgKG9vcHNfaW5fcHJvZ3Jlc3MpCkBAIC0xNTE2 LDkgKzE1MDcsOSBAQCBpbnQgZHJtX2ZiX2hlbHBlcl9zZXRjbWFwKHN0cnVjdCBmYl9jbWFwICpj bWFwLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAogCW11dGV4X2xvY2soJmZiX2hlbHBlci0+bG9j ayk7CiAKLQlpZiAoIWRybV9mYl9oZWxwZXJfaXNfYm91bmQoZmJfaGVscGVyKSkgeworCWlmICgh ZHJtX21hc3Rlcl9pbnRlcm5hbF9hY3F1aXJlKGRldikpIHsKIAkJcmV0ID0gLUVCVVNZOwotCQln b3RvIG91dDsKKwkJZ290byB1bmxvY2s7CiAJfQogCiAJaWYgKGluZm8tPmZpeC52aXN1YWwgPT0g RkJfVklTVUFMX1RSVUVDT0xPUikKQEAgLTE1MjgsNyArMTUxOSw4IEBAIGludCBkcm1fZmJfaGVs cGVyX3NldGNtYXAoc3RydWN0IGZiX2NtYXAgKmNtYXAsIHN0cnVjdCBmYl9pbmZvICppbmZvKQog CWVsc2UKIAkJcmV0ID0gc2V0Y21hcF9sZWdhY3koY21hcCwgaW5mbyk7CiAKLW91dDoKKwlkcm1f bWFzdGVyX2ludGVybmFsX3JlbGVhc2UoZGV2KTsKK3VubG9jazoKIAltdXRleF91bmxvY2soJmZi X2hlbHBlci0+bG9jayk7CiAKIAlyZXR1cm4gcmV0OwpAQCAtMTU0OCwxMiArMTU0MCwxMyBAQCBp bnQgZHJtX2ZiX2hlbHBlcl9pb2N0bChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgdW5zaWduZWQgaW50 IGNtZCwKIAkJCXVuc2lnbmVkIGxvbmcgYXJnKQogewogCXN0cnVjdCBkcm1fZmJfaGVscGVyICpm Yl9oZWxwZXIgPSBpbmZvLT5wYXI7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGZiX2hlbHBl ci0+ZGV2OwogCXN0cnVjdCBkcm1fbW9kZV9zZXQgKm1vZGVfc2V0OwogCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YzsKIAlpbnQgcmV0ID0gMDsKIAogCW11dGV4X2xvY2soJmZiX2hlbHBlci0+bG9jayk7 Ci0JaWYgKCFkcm1fZmJfaGVscGVyX2lzX2JvdW5kKGZiX2hlbHBlcikpIHsKKwlpZiAoIWRybV9t YXN0ZXJfaW50ZXJuYWxfYWNxdWlyZShkZXYpKSB7CiAJCXJldCA9IC1FQlVTWTsKIAkJZ290byB1 bmxvY2s7CiAJfQpAQCAtMTU5MSwxMSArMTU4NCwxMiBAQCBpbnQgZHJtX2ZiX2hlbHBlcl9pb2N0 bChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgdW5zaWduZWQgaW50IGNtZCwKIAkJfQogCiAJCXJldCA9 IDA7Ci0JCWdvdG8gdW5sb2NrOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlyZXQgPSAtRU5PVFRZ OwogCX0KIAorCWRybV9tYXN0ZXJfaW50ZXJuYWxfcmVsZWFzZShkZXYpOwogdW5sb2NrOgogCW11 dGV4X3VubG9jaygmZmJfaGVscGVyLT5sb2NrKTsKIAlyZXR1cm4gcmV0OwpAQCAtMTg0NywxNSAr MTg0MSwxOCBAQCBpbnQgZHJtX2ZiX2hlbHBlcl9wYW5fZGlzcGxheShzdHJ1Y3QgZmJfdmFyX3Nj cmVlbmluZm8gKnZhciwKIAkJcmV0dXJuIC1FQlVTWTsKIAogCW11dGV4X2xvY2soJmZiX2hlbHBl ci0+bG9jayk7Ci0JaWYgKCFkcm1fZmJfaGVscGVyX2lzX2JvdW5kKGZiX2hlbHBlcikpIHsKLQkJ bXV0ZXhfdW5sb2NrKCZmYl9oZWxwZXItPmxvY2spOwotCQlyZXR1cm4gLUVCVVNZOworCWlmICgh ZHJtX21hc3Rlcl9pbnRlcm5hbF9hY3F1aXJlKGRldikpIHsKKwkJcmV0ID0gLUVCVVNZOworCQln b3RvIHVubG9jazsKIAl9CiAKIAlpZiAoZHJtX2Rydl91c2VzX2F0b21pY19tb2Rlc2V0KGRldikp CiAJCXJldCA9IHBhbl9kaXNwbGF5X2F0b21pYyh2YXIsIGluZm8pOwogCWVsc2UKIAkJcmV0ID0g cGFuX2Rpc3BsYXlfbGVnYWN5KHZhciwgaW5mbyk7CisKKwlkcm1fbWFzdGVyX2ludGVybmFsX3Jl bGVhc2UoZGV2KTsKK3VubG9jazoKIAltdXRleF91bmxvY2soJmZiX2hlbHBlci0+bG9jayk7CiAK IAlyZXR1cm4gcmV0OwpAQCAtMjAxNCw3ICsyMDExLDcgQEAgc3RhdGljIGludCBkcm1fZmJfaGVs cGVyX3NpbmdsZV9mYl9wcm9iZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLAogCQlE Uk1fSU5GTygiQ2Fubm90IGZpbmQgYW55IGNydGMgb3Igc2l6ZXNcbiIpOwogCiAJCS8qIEZpcnN0 IHRpbWU6IGRpc2FibGUgYWxsIGNydGMncy4uICovCi0JCWlmICghZmJfaGVscGVyLT5kZWZlcnJl ZF9zZXR1cCAmJiAhUkVBRF9PTkNFKGZiX2hlbHBlci0+ZGV2LT5tYXN0ZXIpKQorCQlpZiAoIWZi X2hlbHBlci0+ZGVmZXJyZWRfc2V0dXApCiAJCQlyZXN0b3JlX2ZiZGV2X21vZGUoZmJfaGVscGVy KTsKIAkJcmV0dXJuIC1FQUdBSU47CiAJfQpAQCAtMjg0Miw2ICsyODM5LDcgQEAgRVhQT1JUX1NZ TUJPTChkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKTsKICAqLwogaW50IGRybV9mYl9oZWxw ZXJfaG90cGx1Z19ldmVudChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKQogeworCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmYl9oZWxwZXItPmRldjsKIAlpbnQgZXJyID0gMDsKIAog CWlmICghZHJtX2ZiZGV2X2VtdWxhdGlvbiB8fCAhZmJfaGVscGVyKQpAQCAtMjg1NCwxMiArMjg1 MiwxNCBAQCBpbnQgZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50KHN0cnVjdCBkcm1fZmJfaGVs cGVyICpmYl9oZWxwZXIpCiAJCXJldHVybiBlcnI7CiAJfQogCi0JaWYgKCFmYl9oZWxwZXItPmZi IHx8ICFkcm1fZmJfaGVscGVyX2lzX2JvdW5kKGZiX2hlbHBlcikpIHsKKwlpZiAoIWZiX2hlbHBl ci0+ZmIgfHwgIWRybV9tYXN0ZXJfaW50ZXJuYWxfYWNxdWlyZShkZXYpKSB7CiAJCWZiX2hlbHBl ci0+ZGVsYXllZF9ob3RwbHVnID0gdHJ1ZTsKIAkJbXV0ZXhfdW5sb2NrKCZmYl9oZWxwZXItPmxv Y2spOwogCQlyZXR1cm4gZXJyOwogCX0KIAorCWRybV9tYXN0ZXJfaW50ZXJuYWxfcmVsZWFzZShk ZXYpOworCiAJRFJNX0RFQlVHX0tNUygiXG4iKTsKIAogCWRybV9zZXR1cF9jcnRjcyhmYl9oZWxw ZXIsIGZiX2hlbHBlci0+ZmItPndpZHRoLCBmYl9oZWxwZXItPmZiLT5oZWlnaHQpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9pbnRlcm5hbC5oCmluZGV4IGQ5YTQ4M2E1ZmNlMC4uM2VlOTdjOTk5OGEyIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9pbnRlcm5hbC5oCkBAIC05MSw2ICs5MSw4IEBAIGludCBkcm1fZHJvcG1hc3Rlcl9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJIHN0cnVjdCBkcm1fZmlsZSAq ZmlsZV9wcml2KTsKIGludCBkcm1fbWFzdGVyX29wZW4oc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYpOwogdm9pZCBkcm1fbWFzdGVyX3JlbGVhc2Uoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYp OworYm9vbCBkcm1fbWFzdGVyX2ludGVybmFsX2FjcXVpcmUoc3RydWN0IGRybV9kZXZpY2UgKmRl dik7Cit2b2lkIGRybV9tYXN0ZXJfaW50ZXJuYWxfcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KTsKIAogLyogZHJtX3N5c2ZzLmMgKi8KIGV4dGVybiBzdHJ1Y3QgY2xhc3MgKmRybV9jbGFz czsKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4