From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Hellstrom Subject: [RFC PATCH] drm/gem: Warn on illegal use of the dumb buffer interface Date: Wed, 12 Nov 2014 12:55:32 +0100 Message-ID: <1415793332-57236-1-git-send-email-thellstrom@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtp-outbound-2.vmware.com (smtp-outbound-2.vmware.com [208.91.2.13]) by gabe.freedesktop.org (Postfix) with ESMTP id B3A386E2BC for ; Wed, 12 Nov 2014 03:55:51 -0800 (PST) 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: Thomas Hellstrom List-Id: dri-devel@lists.freedesktop.org SXQgaGFwcGVucyBvbiBvY2Nhc2lvbiB0aGF0IGRldmVsb3BlcnMgb2YgZ2VuZXJpYyB1c2VyLXNw YWNlIGFwcGxpY2F0aW9ucwphYnVzZSB0aGUgZHVtYiBidWZmZXIgQVBJIHRvIGdldCBob2xkIG9m IGRybSBidWZmZXJzIHRoYXQgdGhleSBjYW4gYm90aAptbWFwKCkgYW5kIHVzZSBmb3IgR1BVIGFj Y2VsZXJhdGlvbiwgdXNpbmcgdGhlIGFzc3VtcHRpb25zIHRoYXQgZHVtYiBidWZmZXJzCmFuZCBi dWZmZXJzIGF2YWlsYWJsZSBmb3IgR1BVIGFyZQphKSBUaGUgc2FtZSB0eXBlIGFuZCBjYW4gYmUg YXJpYnRyYXJpbHkgdHlwZS1jYXN0ZWQuCmIpIGZ1bGx5IGNvaGVyZW50LgoKVGhpcyBwYXRjaCBt YWtlcyB0aGUgbW9zdCB3aWRlbHkgdXNlZCBkcml2ZXJzIHdhcm4gbmljZWx5IHdoZW4gdGhhdCBo YXBwZW5zLAp0aGUgbmV4dCBzdGVwIHdpbGwgYmUgdG8gZmFpbC4KClNpZ25lZC1vZmYtYnk6IFRo b21hcyBIZWxsc3Ryb20gPHRoZWxsc3Ryb21Adm13YXJlLmNvbT4KLS0tClBhdGNoIGlzIG9ubHkg Y29tcGlsZS10ZXN0ZWQuCkZXSVcgdm13YXJlIHNob3VsZCB0eXBpY2FsbHkgZmFpbCBvbiB0aGVz ZSBlcnJvcnMuCgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAgICAg ICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgfCAg NSArKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgMjgg KysrKysrKysrKysrKysrKysrKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZXhlY2J1ZmZlci5jIHwgIDMgKysrCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1 X2Rpc3BsYXkuYyAgfCAgOSArKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZl YXVfZ2VtLmMgICAgICB8ICAzICsrKwogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZ2Vt LmMgICAgICAgIHwgMjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIGRyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jICAgICB8ICAzICsrKwogaW5jbHVkZS9kcm0vZHJt UC5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcgKysrKysrKwogOSBmaWxlcyBjaGFuZ2Vk LCA4MCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5j CmluZGV4IGUyN2NkYmUuLjk1NmIxNTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtMTU5 Myw3ICsxNTkzLDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGRyaXZlciA9IHsKIAkuZ2Vt X3ByaW1lX2ltcG9ydCA9IGk5MTVfZ2VtX3ByaW1lX2ltcG9ydCwKIAogCS5kdW1iX2NyZWF0ZSA9 IGk5MTVfZ2VtX2R1bWJfY3JlYXRlLAotCS5kdW1iX21hcF9vZmZzZXQgPSBpOTE1X2dlbV9tbWFw X2d0dCwKKwkuZHVtYl9tYXBfb2Zmc2V0ID0gaTkxNV9nZW1fZHVtYl9tYXBfb2Zmc2V0LAogCS5k dW1iX2Rlc3Ryb3kgPSBkcm1fZ2VtX2R1bWJfZGVzdHJveSwKIAkuaW9jdGxzID0gaTkxNV9pb2N0 bHMsCiAJLmZvcHMgPSAmaTkxNV9kcml2ZXJfZm9wcywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmlu ZGV4IDdhODMwZWEuLjY2OTUzN2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjMyMSw4 ICsyMzIxLDkgQEAgdm9pZCBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZShzdHJ1Y3QgaTkxNV92bWEg KnZtYSwKIGludCBpOTE1X2dlbV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJp diwKIAkJCSBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJIHN0cnVjdCBkcm1fbW9kZV9jcmVh dGVfZHVtYiAqYXJncyk7Ci1pbnQgaTkxNV9nZW1fbW1hcF9ndHQoc3RydWN0IGRybV9maWxlICpm aWxlX3ByaXYsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCSAgICAgIHVpbnQzMl90IGhhbmRs ZSwgdWludDY0X3QgKm9mZnNldCk7CitpbnQgaTkxNV9nZW1fZHVtYl9tYXBfb2Zmc2V0KHN0cnVj dCBkcm1fZmlsZSAqZmlsZV9wcml2LAorCQkJICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1 aW50MzJfdCBoYW5kbGUsCisJCQkgICAgIHVpbnQ2NF90ICpvZmZzZXQpOwogLyoqCiAgKiBSZXR1 cm5zIHRydWUgaWYgc2VxMSBpcyBsYXRlciB0aGFuIHNlcTIuCiAgKi8KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jCmluZGV4IGJhN2Y1YzYuLjNkOTdhNDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpA QCAtMzQ3LDYgKzM0Nyw3IEBAIHN0YXRpYyBpbnQKIGk5MTVfZ2VtX2NyZWF0ZShzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGUsCiAJCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCXVpbnQ2NF90IHNpemUs CisJCWJvb2wgZHVtYiwKIAkJdWludDMyX3QgKmhhbmRsZV9wKQogewogCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmo7CkBAIC0zNjIsNiArMzYzLDcgQEAgaTkxNV9nZW1fY3JlYXRlKHN0 cnVjdCBkcm1fZmlsZSAqZmlsZSwKIAlpZiAob2JqID09IE5VTEwpCiAJCXJldHVybiAtRU5PTUVN OwogCisJb2JqLT5iYXNlLmR1bWIgPSBkdW1iOwogCXJldCA9IGRybV9nZW1faGFuZGxlX2NyZWF0 ZShmaWxlLCAmb2JqLT5iYXNlLCAmaGFuZGxlKTsKIAkvKiBkcm9wIHJlZmVyZW5jZSBmcm9tIGFs bG9jYXRlIC0gaGFuZGxlIGhvbGRzIGl0IG5vdyAqLwogCWRybV9nZW1fb2JqZWN0X3VucmVmZXJl bmNlX3VubG9ja2VkKCZvYmotPmJhc2UpOwpAQCAtMzgxLDcgKzM4Myw3IEBAIGk5MTVfZ2VtX2R1 bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKIAlhcmdzLT5waXRjaCA9IEFMSUdOKGFy Z3MtPndpZHRoICogRElWX1JPVU5EX1VQKGFyZ3MtPmJwcCwgOCksIDY0KTsKIAlhcmdzLT5zaXpl ID0gYXJncy0+cGl0Y2ggKiBhcmdzLT5oZWlnaHQ7CiAJcmV0dXJuIGk5MTVfZ2VtX2NyZWF0ZShm aWxlLCBkZXYsCi0JCQkgICAgICAgYXJncy0+c2l6ZSwgJmFyZ3MtPmhhbmRsZSk7CisJCQkgICAg ICAgYXJncy0+c2l6ZSwgdHJ1ZSwgJmFyZ3MtPmhhbmRsZSk7CiB9CiAKIC8qKgpAQCAtMzk0LDcg KzM5Niw3IEBAIGk5MTVfZ2VtX2NyZWF0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLAogCXN0cnVjdCBkcm1faTkxNV9nZW1fY3JlYXRlICphcmdzID0gZGF0YTsKIAog CXJldHVybiBpOTE1X2dlbV9jcmVhdGUoZmlsZSwgZGV2LAotCQkJICAgICAgIGFyZ3MtPnNpemUs ICZhcmdzLT5oYW5kbGUpOworCQkJICAgICAgIGFyZ3MtPnNpemUsIGZhbHNlLCAmYXJncy0+aGFu ZGxlKTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQKQEAgLTE3NTAsMTAgKzE3NTIsMTAgQEAgc3Rh dGljIHZvaWQgaTkxNV9nZW1fb2JqZWN0X2ZyZWVfbW1hcF9vZmZzZXQoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaikKIAlkcm1fZ2VtX2ZyZWVfbW1hcF9vZmZzZXQoJm9iai0+YmFzZSk7 CiB9CiAKLWludAorc3RhdGljIGludAogaTkxNV9nZW1fbW1hcF9ndHQoc3RydWN0IGRybV9maWxl ICpmaWxlLAogCQkgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCSAgdWludDMyX3QgaGFuZGxl LAorCQkgIHVpbnQzMl90IGhhbmRsZSwgYm9vbCBkdW1iLAogCQkgIHVpbnQ2NF90ICpvZmZzZXQp CiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKQEAgLTE3NzAsNiArMTc3MiwxMyBAQCBpOTE1X2dlbV9tbWFwX2d0dChzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGUsCiAJCWdvdG8gdW5sb2NrOwogCX0KIAorCS8qCisJICogV2UgZG9uJ3QgYWxsb3cg ZHVtYiBtbWFwcyBvbiBvYmplY3RzIGNyZWF0ZWQgdXNpbmcgYW5vdGhlcgorCSAqIGludGVyZmFj ZS4KKwkgKi8KKwlXQVJOX09OQ0UoZHVtYiAmJiAhKG9iai0+YmFzZS5kdW1iIHx8IG9iai0+YmFz ZS5pbXBvcnRfYXR0YWNoKSwKKwkJICAiSWxsZWdhbCBkdW1iIG1hcCBvZiBhY2NlbGVyYXRlZCBi dWZmZXIuXG4iKTsKKwogCWlmIChvYmotPmJhc2Uuc2l6ZSA+IGRldl9wcml2LT5ndHQubWFwcGFi bGVfZW5kKSB7CiAJCXJldCA9IC1FMkJJRzsKIAkJZ290byBvdXQ7CkBAIC0xNzk0LDYgKzE4MDMs MTUgQEAgdW5sb2NrOgogCXJldHVybiByZXQ7CiB9CiAKK2ludAoraTkxNV9nZW1fZHVtYl9tYXBf b2Zmc2V0KHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKKwkJCSBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAorCQkJIHVpbnQzMl90IGhhbmRsZSwKKwkJCSB1aW50NjRfdCAqb2Zmc2V0KQoreworCXJldHVy biBpOTE1X2dlbV9tbWFwX2d0dChmaWxlLCBkZXYsIGhhbmRsZSwgdHJ1ZSwgb2Zmc2V0KTsKK30K KwogLyoqCiAgKiBpOTE1X2dlbV9tbWFwX2d0dF9pb2N0bCAtIHByZXBhcmUgYW4gb2JqZWN0IGZv ciBHVFQgbW1hcCdpbmcKICAqIEBkZXY6IERSTSBkZXZpY2UKQEAgLTE4MTUsNyArMTgzMyw3IEBA IGk5MTVfZ2VtX21tYXBfZ3R0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9tbWFwX2d0dCAqYXJncyA9IGRhdGE7CiAKLQly ZXR1cm4gaTkxNV9nZW1fbW1hcF9ndHQoZmlsZSwgZGV2LCBhcmdzLT5oYW5kbGUsICZhcmdzLT5v ZmZzZXQpOworCXJldHVybiBpOTE1X2dlbV9tbWFwX2d0dChmaWxlLCBkZXYsIGFyZ3MtPmhhbmRs ZSwgZmFsc2UsICZhcmdzLT5vZmZzZXQpOwogfQogCiBzdGF0aWMgaW5saW5lIGludApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCmluZGV4IDYwOTk4ZmMuLmJhNzhl YTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKQEAgLTEy MCw2ICsxMjAsOSBAQCBlYl9sb29rdXBfdm1hcyhzdHJ1Y3QgZWJfdm1hcyAqZWIsCiAJCQlyZXQg PSAtRUlOVkFMOwogCQkJZ290byBlcnI7CiAJCX0KKworCQlXQVJOX09OQ0Uob2JqLT5iYXNlLmR1 bWIsCisJCQkgICJHUFUgdXNlIG9mIGR1bWIgYnVmZmVyIGlzIGlsbGVnYWwuXG4iKTsKIAogCQlk cm1fZ2VtX29iamVjdF9yZWZlcmVuY2UoJm9iai0+YmFzZSk7CiAJCWxpc3RfYWRkX3RhaWwoJm9i ai0+b2JqX2V4ZWNfbGluaywgJm9iamVjdHMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvbm91dmVhdV9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2 ZWF1X2Rpc3BsYXkuYwppbmRleCA2NWI0ZmQ1Li42M2Y3NDZhIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9ub3V2ZWF1X2Rpc3BsYXkuYwpAQCAtODY3LDYgKzg2Nyw3IEBAIG5vdXZlYXVfZGlz cGxheV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCisJYm8tPmdlbS5kdW1iID0g dHJ1ZTsKIAlyZXQgPSBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZV9wcml2LCAmYm8tPmdlbSwg JmFyZ3MtPmhhbmRsZSk7CiAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQoJmJv LT5nZW0pOwogCXJldHVybiByZXQ7CkBAIC04ODIsNiArODgzLDE0IEBAIG5vdXZlYXVfZGlzcGxh eV9kdW1iX21hcF9vZmZzZXQoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCiAJZ2VtID0gZHJt X2dlbV9vYmplY3RfbG9va3VwKGRldiwgZmlsZV9wcml2LCBoYW5kbGUpOwogCWlmIChnZW0pIHsK IAkJc3RydWN0IG5vdXZlYXVfYm8gKmJvID0gbm91dmVhdV9nZW1fb2JqZWN0KGdlbSk7CisKKwkJ LyoKKwkJICogV2UgZG9uJ3QgYWxsb3cgZHVtYiBtbWFwcyBvbiBvYmplY3RzIGNyZWF0ZWQgdXNp bmcgYW5vdGhlcgorCQkgKiBpbnRlcmZhY2UuCisJCSAqLworCQlXQVJOX09OQ0UoIShnZW0tPmR1 bWIgfHwgZ2VtLT5pbXBvcnRfYXR0YWNoKSwKKwkJCSAgIklsbGVnYWwgZHVtYiBtYXAgb2YgYWNj ZWxlcmF0ZWQgYnVmZmVyLlxuIik7CisKIAkJKnBvZmZzZXQgPSBkcm1fdm1hX25vZGVfb2Zmc2V0 X2FkZHIoJmJvLT5iby52bWFfbm9kZSk7CiAJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3Vu bG9ja2VkKGdlbSk7CiAJCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvbm91dmVhdV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZ2Vt LmMKaW5kZXggMjkyYTY3Ny4uOTJiYTQ4ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvbm91dmVhdV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1 X2dlbS5jCkBAIC00NTksNiArNDU5LDkgQEAgdmFsaWRhdGVfbGlzdChzdHJ1Y3Qgbm91dmVhdV9j aGFubmVsICpjaGFuLCBzdHJ1Y3Qgbm91dmVhdV9jbGkgKmNsaSwKIAlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KG52Ym8sIGxpc3QsIGVudHJ5KSB7CiAJCXN0cnVjdCBkcm1fbm91dmVhdV9nZW1fcHVzaGJ1 Zl9ibyAqYiA9ICZwYmJvW252Ym8tPnBiYm9faW5kZXhdOwogCisJCVdBUk5fT05DRShudmJvLT5n ZW0uZHVtYiwKKwkJCSAgIkdQVSB1c2Ugb2YgZHVtYiBidWZmZXIgaXMgaWxsZWdhbC5cbiIpOwor CiAJCXJldCA9IG5vdXZlYXVfZ2VtX3NldF9kb21haW4oJm52Ym8tPmdlbSwgYi0+cmVhZF9kb21h aW5zLAogCQkJCQkgICAgIGItPndyaXRlX2RvbWFpbnMsCiAJCQkJCSAgICAgYi0+dmFsaWRfZG9t YWlucyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9nZW0uYyBi L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jCmluZGV4IGJmZDdlMWIuLmNiZmJh MTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jCkBAIC0zMDMsNiArMzAzLDI0IEBA IGludCByYWRlb25fZ2VtX3NldF9kb21haW5faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dm9pZCAqZGF0YSwKIAlyZXR1cm4gcjsKIH0KIAorc3RhdGljIGludCByYWRlb25fbW9kZV9tbWFw KHN0cnVjdCBkcm1fZmlsZSAqZmlscCwKKwkJCSAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAor CQkJICAgIHVpbnQzMl90IGhhbmRsZSwgdWludDY0X3QgKm9mZnNldF9wKQoreworCXN0cnVjdCBk cm1fZ2VtX29iamVjdCAqZ29iajsKKwlzdHJ1Y3QgcmFkZW9uX2JvICpyb2JqOworCisJZ29iaiA9 IGRybV9nZW1fb2JqZWN0X2xvb2t1cChkZXYsIGZpbHAsIGhhbmRsZSk7CisJaWYgKGdvYmogPT0g TlVMTCkgeworCQlyZXR1cm4gLUVOT0VOVDsKKwl9CisKKwlyb2JqID0gZ2VtX3RvX3JhZGVvbl9i byhnb2JqKTsKKwkqb2Zmc2V0X3AgPSByYWRlb25fYm9fbW1hcF9vZmZzZXQocm9iaik7CisJZHJt X2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQoZ29iaik7CisJcmV0dXJuIDA7Cit9CisK IGludCByYWRlb25fbW9kZV9kdW1iX21tYXAoc3RydWN0IGRybV9maWxlICpmaWxwLAogCQkJICBz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJICB1aW50MzJfdCBoYW5kbGUsIHVpbnQ2NF90ICpv ZmZzZXRfcCkKQEAgLTMxNCw2ICszMzIsMTQgQEAgaW50IHJhZGVvbl9tb2RlX2R1bWJfbW1hcChz dHJ1Y3QgZHJtX2ZpbGUgKmZpbHAsCiAJaWYgKGdvYmogPT0gTlVMTCkgewogCQlyZXR1cm4gLUVO T0VOVDsKIAl9CisKKwkvKgorCSAqIFdlIGRvbid0IGFsbG93IGR1bWIgbW1hcHMgb24gb2JqZWN0 cyBjcmVhdGVkIHVzaW5nIGFub3RoZXIKKwkgKiBpbnRlcmZhY2UuCisJICovCisJV0FSTl9PTkNF KCEoZ29iai0+ZHVtYiB8fCBnb2JqLT5pbXBvcnRfYXR0YWNoKSwKKwkJIklsbGVnYWwgZHVtYiBt YXAgb2YgR1BVIGJ1ZmZlci5cbiIpOworCiAJcm9iaiA9IGdlbV90b19yYWRlb25fYm8oZ29iaik7 CiAJKm9mZnNldF9wID0gcmFkZW9uX2JvX21tYXBfb2Zmc2V0KHJvYmopOwogCWRybV9nZW1fb2Jq ZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKGdvYmopOwpAQCAtMzI1LDcgKzM1MSw3IEBAIGludCBy YWRlb25fZ2VtX21tYXBfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwK IHsKIAlzdHJ1Y3QgZHJtX3JhZGVvbl9nZW1fbW1hcCAqYXJncyA9IGRhdGE7CiAKLQlyZXR1cm4g cmFkZW9uX21vZGVfZHVtYl9tbWFwKGZpbHAsIGRldiwgYXJncy0+aGFuZGxlLCAmYXJncy0+YWRk cl9wdHIpOworCXJldHVybiByYWRlb25fbW9kZV9tbWFwKGZpbHAsIGRldiwgYXJncy0+aGFuZGxl LCAmYXJncy0+YWRkcl9wdHIpOwogfQogCiBpbnQgcmFkZW9uX2dlbV9idXN5X2lvY3RsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCkBAIC01NzUsNiArNjAxLDcgQEAgaW50IHJh ZGVvbl9tb2RlX2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAogCQlyZXR1 cm4gLUVOT01FTTsKIAogCXIgPSBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZV9wcml2LCBnb2Jq LCAmaGFuZGxlKTsKKwlnb2JqLT5kdW1iID0gdHJ1ZTsKIAkvKiBkcm9wIHJlZmVyZW5jZSBmcm9t IGFsbG9jYXRlIC0gaGFuZGxlIGhvbGRzIGl0IG5vdyAqLwogCWRybV9nZW1fb2JqZWN0X3VucmVm ZXJlbmNlX3VubG9ja2VkKGdvYmopOwogCWlmIChyKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX29iamVjdC5jCmluZGV4IDQ4MGM4N2QuLjE0NTBlYTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX29iamVjdC5jCkBAIC00NzEsNiArNDcxLDkgQEAgaW50IHJhZGVvbl9ib19saXN0 X3ZhbGlkYXRlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkJdTMyIGN1cnJlbnRfZG9t YWluID0KIAkJCQlyYWRlb25fbWVtX3R5cGVfdG9fZG9tYWluKGJvLT50Ym8ubWVtLm1lbV90eXBl KTsKIAorCQkJV0FSTl9PTkNFKGJvLT5nZW1fYmFzZS5kdW1iLAorCQkJCSAgIkdQVSB1c2Ugb2Yg ZHVtYiBidWZmZXIgaXMgaWxsZWdhbC5cbiIpOworCiAJCQkvKiBDaGVjayBpZiB0aGlzIGJ1ZmZl ciB3aWxsIGJlIG1vdmVkIGFuZCBkb24ndCBtb3ZlIGl0CiAJCQkgKiBpZiB3ZSBoYXZlIG1vdmVk IHRvbyBtYW55IGJ1ZmZlcnMgZm9yIHRoaXMgSUIgYWxyZWFkeS4KIAkJCSAqCmRpZmYgLS1naXQg YS9pbmNsdWRlL2RybS9kcm1QLmggYi9pbmNsdWRlL2RybS9kcm1QLmgKaW5kZXggMTk2ODkwNy4u M2Q3OTA4ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtUC5oCisrKyBiL2luY2x1ZGUvZHJt L2RybVAuaApAQCAtNjQwLDYgKzY0MCwxMyBAQCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgewogCSAq IHNpbXBseSBsZWF2ZSBpdCBhcyBOVUxMLgogCSAqLwogCXN0cnVjdCBkbWFfYnVmX2F0dGFjaG1l bnQgKmltcG9ydF9hdHRhY2g7CisKKwkvKioKKwkgKiBkdW1iIC0gY3JlYXRlZCBhcyBkdW1iIGJ1 ZmZlcgorCSAqIFdoZXRoZXIgdGhlIGdlbSBvYmplY3Qgd2FzIGNyZWF0ZWQgdXNpbmcgdGhlIGR1 bWIgYnVmZmVyIGludGVyZmFjZQorCSAqIGFzIHN1Y2ggaXQgbWF5IG5vdCBiZSB1c2VkIGZvciBH UFUgcmVuZGVyaW5nLgorCSAqLworCWJvb2wgZHVtYjsKIH07CiAKICNpbmNsdWRlIDxkcm0vZHJt X2NydGMuaD4KLS0gCjEuOC4zLjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==