From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [PATCH v3 02/11] drm/fb-helper: Avoid race with DRM userspace Date: Sat, 20 Apr 2019 12:45:47 +0200 Message-ID: <20190420104556.31127-3-noralf@tronnes.org> References: <20190420104556.31127-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190420104556.31127-1-noralf@tronnes.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: maxime.ripard@bootlin.com, daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org ZHJtX2ZiX2hlbHBlcl9pc19ib3VuZCgpIGlzIHVzZWQgdG8gY2hlY2sgaWYgRFJNIHVzZXJzcGFj ZSBpcyBpbiBjb250cm9sLgpUaGlzIGlzIGRvbmUgYnkgbG9va2luZyBhdCB0aGUgZmIgb24gdGhl IHByaW1hcnkgcGxhbmUuIEJ5IHRoZSB0aW1lCmZiLWhlbHBlciBnZXRzIGFyb3VuZCB0byBjb21t aXR0aW5nLCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGZhY3RzIGhhdmUKY2hhbmdlZC4KCkF2b2lk IHRoaXMgcmFjZSBieSBob2xkaW5nIHRoZSBkcm1fZGV2aWNlLT5tYXN0ZXJfbXV0ZXggbG9jayB3 aGlsZQpjb21taXR0aW5nLiBXaGVuIERSTSB1c2Vyc3BhY2UgZG9lcyBpdHMgZmlyc3Qgb3Blbiwg aXQgd2lsbCBub3cgd2FpdAp1bnRpbCBmYi1oZWxwZXIgaXMgZG9uZS4gVGhlIGhlbHBlciB3aWxs IHN0YXkgYXdheSBpZiB0aGVyZSdzIGEgbWFzdGVyLgoKTG9ja2luZyBydWxlOiBBbHdheXMgdGFr ZSB0aGUgZmItaGVscGVyIGxvY2sgZmlyc3QuCgp2MjoKLSBSZW1vdmUgZHJtX2ZiX2hlbHBlcl9p c19ib3VuZCgpIChEYW5pZWwgVmV0dGVyKQotIE5vIG5lZWQgdG8gY2hlY2sgZmJfaGVscGVyLT5k ZXYtPm1hc3RlciBpbgogIGRybV9mYl9oZWxwZXJfc2luZ2xlX2ZiX3Byb2JlKCksIHJlc3RvcmVf ZmJkZXZfbW9kZSgpIGhhcyB0aGUgY2hlY2suCgpTdWdnZXN0ZWQtYnk6IERhbmllbCBWZXR0ZXIg PGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+ClNpZ25lZC1vZmYtYnk6IE5vcmFsZiBUcsO4bm5lcyA8 bm9yYWxmQHRyb25uZXMub3JnPgpSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZl dHRlckBmZndsbC5jaD4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F1dGguYyAgICAgIHwgMjAg KysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgfCA5MCArKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCAg fCAgMiArCiAzIGZpbGVzIGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDQ1IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXV0aC5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9hdXRoLmMKaW5kZXggMTY2OWM0MmM0MGVkLi5kYjE5OTgwN2I3ZGMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXV0aC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f YXV0aC5jCkBAIC0zNjgsMyArMzY4LDIzIEBAIHZvaWQgZHJtX21hc3Rlcl9wdXQoc3RydWN0IGRy bV9tYXN0ZXIgKiptYXN0ZXIpCiAJKm1hc3RlciA9IE5VTEw7CiB9CiBFWFBPUlRfU1lNQk9MKGRy bV9tYXN0ZXJfcHV0KTsKKworLyogVXNlZCBieSBkcm1fY2xpZW50IGFuZCBkcm1fZmJfaGVscGVy ICovCitib29sIGRybV9tYXN0ZXJfaW50ZXJuYWxfYWNxdWlyZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQoreworCW11dGV4X2xvY2soJmRldi0+bWFzdGVyX211dGV4KTsKKwlpZiAoZGV2LT5tYXN0 ZXIpIHsKKwkJbXV0ZXhfdW5sb2NrKCZkZXYtPm1hc3Rlcl9tdXRleCk7CisJCXJldHVybiBmYWxz ZTsKKwl9CisKKwlyZXR1cm4gdHJ1ZTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX21hc3Rlcl9pbnRl cm5hbF9hY3F1aXJlKTsKKworLyogVXNlZCBieSBkcm1fY2xpZW50IGFuZCBkcm1fZmJfaGVscGVy ICovCit2b2lkIGRybV9tYXN0ZXJfaW50ZXJuYWxfcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQoreworCW11dGV4X3VubG9jaygmZGV2LT5tYXN0ZXJfbXV0ZXgpOworfQorRVhQT1JUX1NZ TUJPTChkcm1fbWFzdGVyX2ludGVybmFsX3JlbGVhc2UpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9mYl9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMK aW5kZXggMjMzOWYwZjhmNWE4Li41Nzg0Mjg0NjEzOTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZmJfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIu YwpAQCAtNDQsNiArNDQsNyBAQAogCiAjaW5jbHVkZSAiZHJtX2NydGNfaW50ZXJuYWwuaCIKICNp bmNsdWRlICJkcm1fY3J0Y19oZWxwZXJfaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJkcm1faW50ZXJu YWwuaCIKIAogc3RhdGljIGJvb2wgZHJtX2ZiZGV2X2VtdWxhdGlvbiA9IHRydWU7CiBtb2R1bGVf cGFyYW1fbmFtZWQoZmJkZXZfZW11bGF0aW9uLCBkcm1fZmJkZXZfZW11bGF0aW9uLCBib29sLCAw NjAwKTsKQEAgLTUwOSw3ICs1MTAsNyBAQCBzdGF0aWMgaW50IHJlc3RvcmVfZmJkZXZfbW9kZV9s ZWdhY3koc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcikKIAlyZXR1cm4gcmV0OwogfQog Ci1zdGF0aWMgaW50IHJlc3RvcmVfZmJkZXZfbW9kZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJf aGVscGVyKQorc3RhdGljIGludCByZXN0b3JlX2ZiZGV2X21vZGVfZm9yY2Uoc3RydWN0IGRybV9m Yl9oZWxwZXIgKmZiX2hlbHBlcikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZmJfaGVs cGVyLT5kZXY7CiAKQEAgLTUxOSw2ICs1MjAsMjEgQEAgc3RhdGljIGludCByZXN0b3JlX2ZiZGV2 X21vZGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcikKIAkJcmV0dXJuIHJlc3RvcmVf ZmJkZXZfbW9kZV9sZWdhY3koZmJfaGVscGVyKTsKIH0KIAorc3RhdGljIGludCByZXN0b3JlX2Zi ZGV2X21vZGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcikKK3sKKwlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gZmJfaGVscGVyLT5kZXY7CisJaW50IHJldDsKKworCWlmICghZHJtX21h c3Rlcl9pbnRlcm5hbF9hY3F1aXJlKGRldikpCisJCXJldHVybiAtRUJVU1k7CisKKwlyZXQgPSBy ZXN0b3JlX2ZiZGV2X21vZGVfZm9yY2UoZmJfaGVscGVyKTsKKworCWRybV9tYXN0ZXJfaW50ZXJu YWxfcmVsZWFzZShkZXYpOworCisJcmV0dXJuIHJldDsKK30KKwogLyoqCiAgKiBkcm1fZmJfaGVs cGVyX3Jlc3RvcmVfZmJkZXZfbW9kZV91bmxvY2tlZCAtIHJlc3RvcmUgZmJkZXYgY29uZmlndXJh dGlvbgogICogQGZiX2hlbHBlcjogZHJpdmVyLWFsbG9jYXRlZCBmYmRldiBoZWxwZXIsIGNhbiBi ZSBOVUxMCkBAIC01NTYsMzQgKzU3Miw2IEBAIGludCBkcm1fZmJfaGVscGVyX3Jlc3RvcmVfZmJk ZXZfbW9kZV91bmxvY2tlZChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKQogfQogRVhQ T1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX3Jlc3RvcmVfZmJkZXZfbW9kZV91bmxvY2tlZCk7CiAK LXN0YXRpYyBib29sIGRybV9mYl9oZWxwZXJfaXNfYm91bmQoc3RydWN0IGRybV9mYl9oZWxwZXIg KmZiX2hlbHBlcikKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZmJfaGVscGVyLT5kZXY7 Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjOwotCWludCBib3VuZCA9IDAsIGNydGNzX2JvdW5kID0g MDsKLQotCS8qCi0JICogU29tZXRpbWVzIHVzZXIgc3BhY2Ugd2FudHMgZXZlcnl0aGluZyBkaXNh YmxlZCwgc28gZG9uJ3Qgc3RlYWwgdGhlCi0JICogZGlzcGxheSBpZiB0aGVyZSdzIGEgbWFzdGVy LgotCSAqLwotCWlmIChSRUFEX09OQ0UoZGV2LT5tYXN0ZXIpKQotCQlyZXR1cm4gZmFsc2U7Ci0K LQlkcm1fZm9yX2VhY2hfY3J0YyhjcnRjLCBkZXYpIHsKLQkJZHJtX21vZGVzZXRfbG9jaygmY3J0 Yy0+bXV0ZXgsIE5VTEwpOwotCQlpZiAoY3J0Yy0+cHJpbWFyeS0+ZmIpCi0JCQljcnRjc19ib3Vu ZCsrOwotCQlpZiAoY3J0Yy0+cHJpbWFyeS0+ZmIgPT0gZmJfaGVscGVyLT5mYikKLQkJCWJvdW5k Kys7Ci0JCWRybV9tb2Rlc2V0X3VubG9jaygmY3J0Yy0+bXV0ZXgpOwotCX0KLQotCWlmIChib3Vu ZCA8IGNydGNzX2JvdW5kKQotCQlyZXR1cm4gZmFsc2U7Ci0KLQlyZXR1cm4gdHJ1ZTsKLX0KLQog I2lmZGVmIENPTkZJR19NQUdJQ19TWVNSUQogLyoKICAqIHJlc3RvcmUgZmJjb24gZGlzcGxheSBm b3IgYWxsIGttcyBkcml2ZXIncyB1c2luZyB0aGlzIGhlbHBlciwgdXNlZCBmb3Igc3lzcnEKQEAg LTYwNCw3ICs1OTIsNyBAQCBzdGF0aWMgYm9vbCBkcm1fZmJfaGVscGVyX2ZvcmNlX2tlcm5lbF9t b2RlKHZvaWQpCiAJCQljb250aW51ZTsKIAogCQltdXRleF9sb2NrKCZoZWxwZXItPmxvY2spOwot CQlyZXQgPSByZXN0b3JlX2ZiZGV2X21vZGUoaGVscGVyKTsKKwkJcmV0ID0gcmVzdG9yZV9mYmRl dl9tb2RlX2ZvcmNlKGhlbHBlcik7CiAJCWlmIChyZXQpCiAJCQllcnJvciA9IHRydWU7CiAJCW11 dGV4X3VubG9jaygmaGVscGVyLT5sb2NrKTsKQEAgLTY2MywyMCArNjUxLDIyIEBAIHN0YXRpYyB2 b2lkIGRwbXNfbGVnYWN5KHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsIGludCBkcG1z X21vZGUpCiBzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX2RwbXMoc3RydWN0IGZiX2luZm8gKmlu Zm8sIGludCBkcG1zX21vZGUpCiB7CiAJc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9 IGluZm8tPnBhcjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZmJfaGVscGVyLT5kZXY7CiAK IAkvKgogCSAqIEZvciBlYWNoIENSVEMgaW4gdGhpcyBmYiwgdHVybiB0aGUgY29ubmVjdG9ycyBv bi9vZmYuCiAJICovCiAJbXV0ZXhfbG9jaygmZmJfaGVscGVyLT5sb2NrKTsKLQlpZiAoIWRybV9m Yl9oZWxwZXJfaXNfYm91bmQoZmJfaGVscGVyKSkgewotCQltdXRleF91bmxvY2soJmZiX2hlbHBl ci0+bG9jayk7Ci0JCXJldHVybjsKLQl9CisJaWYgKCFkcm1fbWFzdGVyX2ludGVybmFsX2FjcXVp cmUoZGV2KSkKKwkJZ290byB1bmxvY2s7CiAKLQlpZiAoZHJtX2Rydl91c2VzX2F0b21pY19tb2Rl c2V0KGZiX2hlbHBlci0+ZGV2KSkKKwlpZiAoZHJtX2Rydl91c2VzX2F0b21pY19tb2Rlc2V0KGRl dikpCiAJCXJlc3RvcmVfZmJkZXZfbW9kZV9hdG9taWMoZmJfaGVscGVyLCBkcG1zX21vZGUgPT0g RFJNX01PREVfRFBNU19PTik7CiAJZWxzZQogCQlkcG1zX2xlZ2FjeShmYl9oZWxwZXIsIGRwbXNf bW9kZSk7CisKKwlkcm1fbWFzdGVyX2ludGVybmFsX3JlbGVhc2UoZGV2KTsKK3VubG9jazoKIAlt dXRleF91bmxvY2soJmZiX2hlbHBlci0+bG9jayk7CiB9CiAKQEAgLTE1MDksNiArMTQ5OSw3IEBA IHN0YXRpYyBpbnQgc2V0Y21hcF9hdG9taWMoc3RydWN0IGZiX2NtYXAgKmNtYXAsIHN0cnVjdCBm Yl9pbmZvICppbmZvKQogaW50IGRybV9mYl9oZWxwZXJfc2V0Y21hcChzdHJ1Y3QgZmJfY21hcCAq Y21hcCwgc3RydWN0IGZiX2luZm8gKmluZm8pCiB7CiAJc3RydWN0IGRybV9mYl9oZWxwZXIgKmZi X2hlbHBlciA9IGluZm8tPnBhcjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZmJfaGVscGVy LT5kZXY7CiAJaW50IHJldDsKIAogCWlmIChvb3BzX2luX3Byb2dyZXNzKQpAQCAtMTUxNiw5ICsx NTA3LDkgQEAgaW50IGRybV9mYl9oZWxwZXJfc2V0Y21hcChzdHJ1Y3QgZmJfY21hcCAqY21hcCwg c3RydWN0IGZiX2luZm8gKmluZm8pCiAKIAltdXRleF9sb2NrKCZmYl9oZWxwZXItPmxvY2spOwog Ci0JaWYgKCFkcm1fZmJfaGVscGVyX2lzX2JvdW5kKGZiX2hlbHBlcikpIHsKKwlpZiAoIWRybV9t YXN0ZXJfaW50ZXJuYWxfYWNxdWlyZShkZXYpKSB7CiAJCXJldCA9IC1FQlVTWTsKLQkJZ290byBv dXQ7CisJCWdvdG8gdW5sb2NrOwogCX0KIAogCWlmIChpbmZvLT5maXgudmlzdWFsID09IEZCX1ZJ U1VBTF9UUlVFQ09MT1IpCkBAIC0xNTI4LDcgKzE1MTksOCBAQCBpbnQgZHJtX2ZiX2hlbHBlcl9z ZXRjbWFwKHN0cnVjdCBmYl9jbWFwICpjbWFwLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAllbHNl CiAJCXJldCA9IHNldGNtYXBfbGVnYWN5KGNtYXAsIGluZm8pOwogCi1vdXQ6CisJZHJtX21hc3Rl cl9pbnRlcm5hbF9yZWxlYXNlKGRldik7Cit1bmxvY2s6CiAJbXV0ZXhfdW5sb2NrKCZmYl9oZWxw ZXItPmxvY2spOwogCiAJcmV0dXJuIHJldDsKQEAgLTE1NDgsMTIgKzE1NDAsMTMgQEAgaW50IGRy bV9mYl9oZWxwZXJfaW9jdGwoc3RydWN0IGZiX2luZm8gKmluZm8sIHVuc2lnbmVkIGludCBjbWQs CiAJCQl1bnNpZ25lZCBsb25nIGFyZykKIHsKIAlzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVs cGVyID0gaW5mby0+cGFyOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmYl9oZWxwZXItPmRl djsKIAlzdHJ1Y3QgZHJtX21vZGVfc2V0ICptb2RlX3NldDsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNy dGM7CiAJaW50IHJldCA9IDA7CiAKIAltdXRleF9sb2NrKCZmYl9oZWxwZXItPmxvY2spOwotCWlm ICghZHJtX2ZiX2hlbHBlcl9pc19ib3VuZChmYl9oZWxwZXIpKSB7CisJaWYgKCFkcm1fbWFzdGVy X2ludGVybmFsX2FjcXVpcmUoZGV2KSkgewogCQlyZXQgPSAtRUJVU1k7CiAJCWdvdG8gdW5sb2Nr OwogCX0KQEAgLTE1OTEsMTEgKzE1ODQsMTIgQEAgaW50IGRybV9mYl9oZWxwZXJfaW9jdGwoc3Ry dWN0IGZiX2luZm8gKmluZm8sIHVuc2lnbmVkIGludCBjbWQsCiAJCX0KIAogCQlyZXQgPSAwOwot CQlnb3RvIHVubG9jazsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0ID0gLUVOT1RUWTsKIAl9 CiAKKwlkcm1fbWFzdGVyX2ludGVybmFsX3JlbGVhc2UoZGV2KTsKIHVubG9jazoKIAltdXRleF91 bmxvY2soJmZiX2hlbHBlci0+bG9jayk7CiAJcmV0dXJuIHJldDsKQEAgLTE4NDcsMTUgKzE4NDEs MTggQEAgaW50IGRybV9mYl9oZWxwZXJfcGFuX2Rpc3BsYXkoc3RydWN0IGZiX3Zhcl9zY3JlZW5p bmZvICp2YXIsCiAJCXJldHVybiAtRUJVU1k7CiAKIAltdXRleF9sb2NrKCZmYl9oZWxwZXItPmxv Y2spOwotCWlmICghZHJtX2ZiX2hlbHBlcl9pc19ib3VuZChmYl9oZWxwZXIpKSB7Ci0JCW11dGV4 X3VubG9jaygmZmJfaGVscGVyLT5sb2NrKTsKLQkJcmV0dXJuIC1FQlVTWTsKKwlpZiAoIWRybV9t YXN0ZXJfaW50ZXJuYWxfYWNxdWlyZShkZXYpKSB7CisJCXJldCA9IC1FQlVTWTsKKwkJZ290byB1 bmxvY2s7CiAJfQogCiAJaWYgKGRybV9kcnZfdXNlc19hdG9taWNfbW9kZXNldChkZXYpKQogCQly ZXQgPSBwYW5fZGlzcGxheV9hdG9taWModmFyLCBpbmZvKTsKIAllbHNlCiAJCXJldCA9IHBhbl9k aXNwbGF5X2xlZ2FjeSh2YXIsIGluZm8pOworCisJZHJtX21hc3Rlcl9pbnRlcm5hbF9yZWxlYXNl KGRldik7Cit1bmxvY2s6CiAJbXV0ZXhfdW5sb2NrKCZmYl9oZWxwZXItPmxvY2spOwogCiAJcmV0 dXJuIHJldDsKQEAgLTIwMTQsNyArMjAxMSw3IEBAIHN0YXRpYyBpbnQgZHJtX2ZiX2hlbHBlcl9z aW5nbGVfZmJfcHJvYmUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwKIAkJRFJNX0lO Rk8oIkNhbm5vdCBmaW5kIGFueSBjcnRjIG9yIHNpemVzXG4iKTsKIAogCQkvKiBGaXJzdCB0aW1l OiBkaXNhYmxlIGFsbCBjcnRjJ3MuLiAqLwotCQlpZiAoIWZiX2hlbHBlci0+ZGVmZXJyZWRfc2V0 dXAgJiYgIVJFQURfT05DRShmYl9oZWxwZXItPmRldi0+bWFzdGVyKSkKKwkJaWYgKCFmYl9oZWxw ZXItPmRlZmVycmVkX3NldHVwKQogCQkJcmVzdG9yZV9mYmRldl9tb2RlKGZiX2hlbHBlcik7CiAJ CXJldHVybiAtRUFHQUlOOwogCX0KQEAgLTMwMjgsNiArMzAyNSw3IEBAIEVYUE9SVF9TWU1CT0wo ZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZyk7CiAgKi8KIGludCBkcm1fZmJfaGVscGVyX2hv dHBsdWdfZXZlbnQoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcikKIHsKKwlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gZmJfaGVscGVyLT5kZXY7CiAJaW50IGVyciA9IDA7CiAKIAlpZiAo IWRybV9mYmRldl9lbXVsYXRpb24gfHwgIWZiX2hlbHBlcikKQEAgLTMwNDAsMTIgKzMwMzgsMTQg QEAgaW50IGRybV9mYl9oZWxwZXJfaG90cGx1Z19ldmVudChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAq ZmJfaGVscGVyKQogCQlyZXR1cm4gZXJyOwogCX0KIAotCWlmICghZmJfaGVscGVyLT5mYiB8fCAh ZHJtX2ZiX2hlbHBlcl9pc19ib3VuZChmYl9oZWxwZXIpKSB7CisJaWYgKCFmYl9oZWxwZXItPmZi IHx8ICFkcm1fbWFzdGVyX2ludGVybmFsX2FjcXVpcmUoZGV2KSkgewogCQlmYl9oZWxwZXItPmRl bGF5ZWRfaG90cGx1ZyA9IHRydWU7CiAJCW11dGV4X3VubG9jaygmZmJfaGVscGVyLT5sb2NrKTsK IAkJcmV0dXJuIGVycjsKIAl9CiAKKwlkcm1fbWFzdGVyX2ludGVybmFsX3JlbGVhc2UoZGV2KTsK KwogCURSTV9ERUJVR19LTVMoIlxuIik7CiAKIAlkcm1fc2V0dXBfY3J0Y3MoZmJfaGVscGVyLCBm Yl9oZWxwZXItPmZiLT53aWR0aCwgZmJfaGVscGVyLT5mYi0+aGVpZ2h0KTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50 ZXJuYWwuaAppbmRleCBkOWE0ODNhNWZjZTAuLjNlZTk3Yzk5OThhMiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50 ZXJuYWwuaApAQCAtOTEsNiArOTEsOCBAQCBpbnQgZHJtX2Ryb3BtYXN0ZXJfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdik7CiBpbnQgZHJtX21hc3Rlcl9vcGVuKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsK IHZvaWQgZHJtX21hc3Rlcl9yZWxlYXNlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2Jv b2wgZHJtX21hc3Rlcl9pbnRlcm5hbF9hY3F1aXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwor dm9pZCBkcm1fbWFzdGVyX2ludGVybmFsX3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldik7 CiAKIC8qIGRybV9zeXNmcy5jICovCiBleHRlcm4gc3RydWN0IGNsYXNzICpkcm1fY2xhc3M7Ci0t IAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==