From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Hellstrom Subject: Re: [RFC PATCH] drm/gem: Warn on illegal use of the dumb buffer interface Date: Thu, 13 Nov 2014 20:31:39 +0100 Message-ID: <5465071B.4080307@vmware.com> References: <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 8011A6EBF8 for ; Thu, 13 Nov 2014 11:32:17 -0800 (PST) In-Reply-To: <1415793332-57236-1-git-send-email-thellstrom@vmware.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Cc: =?UTF-8?B?TWljaGVsIETDpG56ZXI=?= , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SGkhCgpDb3VsZCB3ZSBwZXJoYXBzIGdldCBhbiBhY2sgZnJvbSBSYWRlb24gLyBOb3V2ZWF1IGFz IHdlbGw/CgpUaGFua3MsClRob21hcwoKCk9uIDExLzEyLzIwMTQgMTI6NTUgUE0sIFRob21hcyBI ZWxsc3Ryb20gd3JvdGU6Cj4gSXQgaGFwcGVucyBvbiBvY2Nhc2lvbiB0aGF0IGRldmVsb3BlcnMg b2YgZ2VuZXJpYyB1c2VyLXNwYWNlIGFwcGxpY2F0aW9ucwo+IGFidXNlIHRoZSBkdW1iIGJ1ZmZl ciBBUEkgdG8gZ2V0IGhvbGQgb2YgZHJtIGJ1ZmZlcnMgdGhhdCB0aGV5IGNhbiBib3RoCj4gbW1h cCgpIGFuZCB1c2UgZm9yIEdQVSBhY2NlbGVyYXRpb24sIHVzaW5nIHRoZSBhc3N1bXB0aW9ucyB0 aGF0IGR1bWIgYnVmZmVycwo+IGFuZCBidWZmZXJzIGF2YWlsYWJsZSBmb3IgR1BVIGFyZQo+IGEp IFRoZSBzYW1lIHR5cGUgYW5kIGNhbiBiZSBhcmlidHJhcmlseSB0eXBlLWNhc3RlZC4KPiBiKSBm dWxseSBjb2hlcmVudC4KPgo+IFRoaXMgcGF0Y2ggbWFrZXMgdGhlIG1vc3Qgd2lkZWx5IHVzZWQg ZHJpdmVycyB3YXJuIG5pY2VseSB3aGVuIHRoYXQgaGFwcGVucywKPiB0aGUgbmV4dCBzdGVwIHdp bGwgYmUgdG8gZmFpbC4KPgo+IFNpZ25lZC1vZmYtYnk6IFRob21hcyBIZWxsc3Ryb20gPHRoZWxs c3Ryb21Adm13YXJlLmNvbT4KPiAtLS0KPiBQYXRjaCBpcyBvbmx5IGNvbXBpbGUtdGVzdGVkLgo+ IEZXSVcgdm13YXJlIHNob3VsZCB0eXBpY2FsbHkgZmFpbCBvbiB0aGVzZSBlcnJvcnMuCj4KPiAt LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAgICAgIHwgIDIgKy0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgIHwgIDUgKysrLS0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgMjggKysrKysr KysrKysrKysrKysrKysrKystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9l eGVjYnVmZmVyLmMgfCAgMyArKysKPiAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9k aXNwbGF5LmMgIHwgIDkgKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZl YXVfZ2VtLmMgICAgICB8ICAzICsrKwo+ICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9n ZW0uYyAgICAgICAgfCAyOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ICBkcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYyAgICAgfCAgMyArKysKPiAgaW5jbHVkZS9k cm0vZHJtUC5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcgKysrKysrKwo+ICA5IGZpbGVz IGNoYW5nZWQsIDgwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmMKPiBpbmRleCBlMjdjZGJlLi45NTZiMTU0IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5jCj4gQEAgLTE1OTMsNyArMTU5Myw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZl ciBkcml2ZXIgPSB7Cj4gIAkuZ2VtX3ByaW1lX2ltcG9ydCA9IGk5MTVfZ2VtX3ByaW1lX2ltcG9y dCwKPiAgCj4gIAkuZHVtYl9jcmVhdGUgPSBpOTE1X2dlbV9kdW1iX2NyZWF0ZSwKPiAtCS5kdW1i X21hcF9vZmZzZXQgPSBpOTE1X2dlbV9tbWFwX2d0dCwKPiArCS5kdW1iX21hcF9vZmZzZXQgPSBp OTE1X2dlbV9kdW1iX21hcF9vZmZzZXQsCj4gIAkuZHVtYl9kZXN0cm95ID0gZHJtX2dlbV9kdW1i X2Rlc3Ryb3ksCj4gIAkuaW9jdGxzID0gaTkxNV9pb2N0bHMsCj4gIAkuZm9wcyA9ICZpOTE1X2Ry aXZlcl9mb3BzLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDdhODMwZWEuLjY2OTUz N2MgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMjMyMSw4ICsyMzIxLDkgQEAg dm9pZCBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKPiAgaW50 IGk5MTVfZ2VtX2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAo+ICAJCQkg c3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJIHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVt YiAqYXJncyk7Cj4gLWludCBpOTE1X2dlbV9tbWFwX2d0dChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdiwgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAtCQkgICAgICB1aW50MzJfdCBoYW5kbGUs IHVpbnQ2NF90ICpvZmZzZXQpOwo+ICtpbnQgaTkxNV9nZW1fZHVtYl9tYXBfb2Zmc2V0KHN0cnVj dCBkcm1fZmlsZSAqZmlsZV9wcml2LAo+ICsJCQkgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHVpbnQzMl90IGhhbmRsZSwKPiArCQkJICAgICB1aW50NjRfdCAqb2Zmc2V0KTsKPiAgLyoqCj4g ICAqIFJldHVybnMgdHJ1ZSBpZiBzZXExIGlzIGxhdGVyIHRoYW4gc2VxMi4KPiAgICovCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggYmE3ZjVjNi4uM2Q5N2E0MyAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYwo+IEBAIC0zNDcsNiArMzQ3LDcgQEAgc3RhdGljIGludAo+ICBpOTE1 X2dlbV9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLAo+ICAJCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gIAkJdWludDY0X3Qgc2l6ZSwKPiArCQlib29sIGR1bWIsCj4gIAkJdWludDMyX3Qg KmhhbmRsZV9wKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwo+IEBA IC0zNjIsNiArMzYzLDcgQEAgaTkxNV9nZW1fY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwK PiAgCWlmIChvYmogPT0gTlVMTCkKPiAgCQlyZXR1cm4gLUVOT01FTTsKPiAgCj4gKwlvYmotPmJh c2UuZHVtYiA9IGR1bWI7Cj4gIAlyZXQgPSBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZSwgJm9i ai0+YmFzZSwgJmhhbmRsZSk7Cj4gIAkvKiBkcm9wIHJlZmVyZW5jZSBmcm9tIGFsbG9jYXRlIC0g aGFuZGxlIGhvbGRzIGl0IG5vdyAqLwo+ICAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5s b2NrZWQoJm9iai0+YmFzZSk7Cj4gQEAgLTM4MSw3ICszODMsNyBAQCBpOTE1X2dlbV9kdW1iX2Ny ZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCj4gIAlhcmdzLT5waXRjaCA9IEFMSUdOKGFyZ3Mt PndpZHRoICogRElWX1JPVU5EX1VQKGFyZ3MtPmJwcCwgOCksIDY0KTsKPiAgCWFyZ3MtPnNpemUg PSBhcmdzLT5waXRjaCAqIGFyZ3MtPmhlaWdodDsKPiAgCXJldHVybiBpOTE1X2dlbV9jcmVhdGUo ZmlsZSwgZGV2LAo+IC0JCQkgICAgICAgYXJncy0+c2l6ZSwgJmFyZ3MtPmhhbmRsZSk7Cj4gKwkJ CSAgICAgICBhcmdzLT5zaXplLCB0cnVlLCAmYXJncy0+aGFuZGxlKTsKPiAgfQo+ICAKPiAgLyoq Cj4gQEAgLTM5NCw3ICszOTYsNyBAQCBpOTE1X2dlbV9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fY3JlYXRlICph cmdzID0gZGF0YTsKPiAgCj4gIAlyZXR1cm4gaTkxNV9nZW1fY3JlYXRlKGZpbGUsIGRldiwKPiAt CQkJICAgICAgIGFyZ3MtPnNpemUsICZhcmdzLT5oYW5kbGUpOwo+ICsJCQkgICAgICAgYXJncy0+ c2l6ZSwgZmFsc2UsICZhcmdzLT5oYW5kbGUpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW5saW5lIGlu dAo+IEBAIC0xNzUwLDEwICsxNzUyLDEwIEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX29iamVjdF9m cmVlX21tYXBfb2Zmc2V0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gIAlkcm1f Z2VtX2ZyZWVfbW1hcF9vZmZzZXQoJm9iai0+YmFzZSk7Cj4gIH0KPiAgCj4gLWludAo+ICtzdGF0 aWMgaW50Cj4gIGk5MTVfZ2VtX21tYXBfZ3R0KHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKPiAgCQkg IHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gLQkJICB1aW50MzJfdCBoYW5kbGUsCj4gKwkJICB1 aW50MzJfdCBoYW5kbGUsIGJvb2wgZHVtYiwKPiAgCQkgIHVpbnQ2NF90ICpvZmZzZXQpCj4gIHsK PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 Cj4gQEAgLTE3NzAsNiArMTc3MiwxMyBAQCBpOTE1X2dlbV9tbWFwX2d0dChzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGUsCj4gIAkJZ290byB1bmxvY2s7Cj4gIAl9Cj4gIAo+ICsJLyoKPiArCSAqIFdlIGRv bid0IGFsbG93IGR1bWIgbW1hcHMgb24gb2JqZWN0cyBjcmVhdGVkIHVzaW5nIGFub3RoZXIKPiAr CSAqIGludGVyZmFjZS4KPiArCSAqLwo+ICsJV0FSTl9PTkNFKGR1bWIgJiYgIShvYmotPmJhc2Uu ZHVtYiB8fCBvYmotPmJhc2UuaW1wb3J0X2F0dGFjaCksCj4gKwkJICAiSWxsZWdhbCBkdW1iIG1h cCBvZiBhY2NlbGVyYXRlZCBidWZmZXIuXG4iKTsKPiArCj4gIAlpZiAob2JqLT5iYXNlLnNpemUg PiBkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2VuZCkgewo+ICAJCXJldCA9IC1FMkJJRzsKPiAgCQln b3RvIG91dDsKPiBAQCAtMTc5NCw2ICsxODAzLDE1IEBAIHVubG9jazoKPiAgCXJldHVybiByZXQ7 Cj4gIH0KPiAgCj4gK2ludAo+ICtpOTE1X2dlbV9kdW1iX21hcF9vZmZzZXQoc3RydWN0IGRybV9m aWxlICpmaWxlLAo+ICsJCQkgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJIHVpbnQzMl90 IGhhbmRsZSwKPiArCQkJIHVpbnQ2NF90ICpvZmZzZXQpCj4gK3sKPiArCXJldHVybiBpOTE1X2dl bV9tbWFwX2d0dChmaWxlLCBkZXYsIGhhbmRsZSwgdHJ1ZSwgb2Zmc2V0KTsKPiArfQo+ICsKPiAg LyoqCj4gICAqIGk5MTVfZ2VtX21tYXBfZ3R0X2lvY3RsIC0gcHJlcGFyZSBhbiBvYmplY3QgZm9y IEdUVCBtbWFwJ2luZwo+ICAgKiBAZGV2OiBEUk0gZGV2aWNlCj4gQEAgLTE4MTUsNyArMTgzMyw3 IEBAIGk5MTVfZ2VtX21tYXBfZ3R0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQg KmRhdGEsCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fbW1hcF9ndHQgKmFyZ3MgPSBkYXRh Owo+ICAKPiAtCXJldHVybiBpOTE1X2dlbV9tbWFwX2d0dChmaWxlLCBkZXYsIGFyZ3MtPmhhbmRs ZSwgJmFyZ3MtPm9mZnNldCk7Cj4gKwlyZXR1cm4gaTkxNV9nZW1fbW1hcF9ndHQoZmlsZSwgZGV2 LCBhcmdzLT5oYW5kbGUsIGZhbHNlLCAmYXJncy0+b2Zmc2V0KTsKPiAgfQo+ICAKPiAgc3RhdGlj IGlubGluZSBpbnQKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f ZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5j Cj4gaW5kZXggNjA5OThmYy4uYmE3OGVhMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9leGVjYnVmZmVyLmMKPiBAQCAtMTIwLDYgKzEyMCw5IEBAIGViX2xvb2t1cF92bWFz KHN0cnVjdCBlYl92bWFzICplYiwKPiAgCQkJcmV0ID0gLUVJTlZBTDsKPiAgCQkJZ290byBlcnI7 Cj4gIAkJfQo+ICsKPiArCQlXQVJOX09OQ0Uob2JqLT5iYXNlLmR1bWIsCj4gKwkJCSAgIkdQVSB1 c2Ugb2YgZHVtYiBidWZmZXIgaXMgaWxsZWdhbC5cbiIpOwo+ICAKPiAgCQlkcm1fZ2VtX29iamVj dF9yZWZlcmVuY2UoJm9iai0+YmFzZSk7Cj4gIAkJbGlzdF9hZGRfdGFpbCgmb2JqLT5vYmpfZXhl Y19saW5rLCAmb2JqZWN0cyk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1 L25vdXZlYXVfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kaXNw bGF5LmMKPiBpbmRleCA2NWI0ZmQ1Li42M2Y3NDZhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvbm91dmVhdV9kaXNwbGF5LmMKPiBAQCAtODY3LDYgKzg2Nyw3IEBAIG5vdXZlYXVfZGlz cGxheV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gKwliby0+Z2Vt LmR1bWIgPSB0cnVlOwo+ICAJcmV0ID0gZHJtX2dlbV9oYW5kbGVfY3JlYXRlKGZpbGVfcHJpdiwg JmJvLT5nZW0sICZhcmdzLT5oYW5kbGUpOwo+ICAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2Vf dW5sb2NrZWQoJmJvLT5nZW0pOwo+ICAJcmV0dXJuIHJldDsKPiBAQCAtODgyLDYgKzg4MywxNCBA QCBub3V2ZWF1X2Rpc3BsYXlfZHVtYl9tYXBfb2Zmc2V0KHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9w cml2LAo+ICAJZ2VtID0gZHJtX2dlbV9vYmplY3RfbG9va3VwKGRldiwgZmlsZV9wcml2LCBoYW5k bGUpOwo+ICAJaWYgKGdlbSkgewo+ICAJCXN0cnVjdCBub3V2ZWF1X2JvICpibyA9IG5vdXZlYXVf Z2VtX29iamVjdChnZW0pOwo+ICsKPiArCQkvKgo+ICsJCSAqIFdlIGRvbid0IGFsbG93IGR1bWIg bW1hcHMgb24gb2JqZWN0cyBjcmVhdGVkIHVzaW5nIGFub3RoZXIKPiArCQkgKiBpbnRlcmZhY2Uu Cj4gKwkJICovCj4gKwkJV0FSTl9PTkNFKCEoZ2VtLT5kdW1iIHx8IGdlbS0+aW1wb3J0X2F0dGFj aCksCj4gKwkJCSAgIklsbGVnYWwgZHVtYiBtYXAgb2YgYWNjZWxlcmF0ZWQgYnVmZmVyLlxuIik7 Cj4gKwo+ICAJCSpwb2Zmc2V0ID0gZHJtX3ZtYV9ub2RlX29mZnNldF9hZGRyKCZiby0+Ym8udm1h X25vZGUpOwo+ICAJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKGdlbSk7Cj4g IAkJcmV0dXJuIDA7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZl YXVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2dlbS5jCj4gaW5kZXgg MjkyYTY3Ny4uOTJiYTQ4ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9u b3V2ZWF1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9nZW0u Ywo+IEBAIC00NTksNiArNDU5LDkgQEAgdmFsaWRhdGVfbGlzdChzdHJ1Y3Qgbm91dmVhdV9jaGFu bmVsICpjaGFuLCBzdHJ1Y3Qgbm91dmVhdV9jbGkgKmNsaSwKPiAgCWxpc3RfZm9yX2VhY2hfZW50 cnkobnZibywgbGlzdCwgZW50cnkpIHsKPiAgCQlzdHJ1Y3QgZHJtX25vdXZlYXVfZ2VtX3B1c2hi dWZfYm8gKmIgPSAmcGJib1tudmJvLT5wYmJvX2luZGV4XTsKPiAgCj4gKwkJV0FSTl9PTkNFKG52 Ym8tPmdlbS5kdW1iLAo+ICsJCQkgICJHUFUgdXNlIG9mIGR1bWIgYnVmZmVyIGlzIGlsbGVnYWwu XG4iKTsKPiArCj4gIAkJcmV0ID0gbm91dmVhdV9nZW1fc2V0X2RvbWFpbigmbnZiby0+Z2VtLCBi LT5yZWFkX2RvbWFpbnMsCj4gIAkJCQkJICAgICBiLT53cml0ZV9kb21haW5zLAo+ICAJCQkJCSAg ICAgYi0+dmFsaWRfZG9tYWlucyk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZ2VtLmMKPiBp bmRleCBiZmQ3ZTFiLi5jYmZiYTE3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZ2Vt LmMKPiBAQCAtMzAzLDYgKzMwMywyNCBAQCBpbnQgcmFkZW9uX2dlbV9zZXRfZG9tYWluX2lvY3Rs KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gIAlyZXR1cm4gcjsKPiAgfQo+ ICAKPiArc3RhdGljIGludCByYWRlb25fbW9kZV9tbWFwKHN0cnVjdCBkcm1fZmlsZSAqZmlscCwK PiArCQkJICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJCSAgICB1aW50MzJfdCBoYW5k bGUsIHVpbnQ2NF90ICpvZmZzZXRfcCkKPiArewo+ICsJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpn b2JqOwo+ICsJc3RydWN0IHJhZGVvbl9ibyAqcm9iajsKPiArCj4gKwlnb2JqID0gZHJtX2dlbV9v YmplY3RfbG9va3VwKGRldiwgZmlscCwgaGFuZGxlKTsKPiArCWlmIChnb2JqID09IE5VTEwpIHsK PiArCQlyZXR1cm4gLUVOT0VOVDsKPiArCX0KPiArCj4gKwlyb2JqID0gZ2VtX3RvX3JhZGVvbl9i byhnb2JqKTsKPiArCSpvZmZzZXRfcCA9IHJhZGVvbl9ib19tbWFwX29mZnNldChyb2JqKTsKPiAr CWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKGdvYmopOwo+ICsJcmV0dXJuIDA7 Cj4gK30KPiArCj4gIGludCByYWRlb25fbW9kZV9kdW1iX21tYXAoc3RydWN0IGRybV9maWxlICpm aWxwLAo+ICAJCQkgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCSAgdWludDMyX3QgaGFu ZGxlLCB1aW50NjRfdCAqb2Zmc2V0X3ApCj4gQEAgLTMxNCw2ICszMzIsMTQgQEAgaW50IHJhZGVv bl9tb2RlX2R1bWJfbW1hcChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHAsCj4gIAlpZiAoZ29iaiA9PSBO VUxMKSB7Cj4gIAkJcmV0dXJuIC1FTk9FTlQ7Cj4gIAl9Cj4gKwo+ICsJLyoKPiArCSAqIFdlIGRv bid0IGFsbG93IGR1bWIgbW1hcHMgb24gb2JqZWN0cyBjcmVhdGVkIHVzaW5nIGFub3RoZXIKPiAr CSAqIGludGVyZmFjZS4KPiArCSAqLwo+ICsJV0FSTl9PTkNFKCEoZ29iai0+ZHVtYiB8fCBnb2Jq LT5pbXBvcnRfYXR0YWNoKSwKPiArCQkiSWxsZWdhbCBkdW1iIG1hcCBvZiBHUFUgYnVmZmVyLlxu Iik7Cj4gKwo+ICAJcm9iaiA9IGdlbV90b19yYWRlb25fYm8oZ29iaik7Cj4gIAkqb2Zmc2V0X3Ag PSByYWRlb25fYm9fbW1hcF9vZmZzZXQocm9iaik7Cj4gIAlkcm1fZ2VtX29iamVjdF91bnJlZmVy ZW5jZV91bmxvY2tlZChnb2JqKTsKPiBAQCAtMzI1LDcgKzM1MSw3IEBAIGludCByYWRlb25fZ2Vt X21tYXBfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgewo+ICAJ c3RydWN0IGRybV9yYWRlb25fZ2VtX21tYXAgKmFyZ3MgPSBkYXRhOwo+ICAKPiAtCXJldHVybiBy YWRlb25fbW9kZV9kdW1iX21tYXAoZmlscCwgZGV2LCBhcmdzLT5oYW5kbGUsICZhcmdzLT5hZGRy X3B0cik7Cj4gKwlyZXR1cm4gcmFkZW9uX21vZGVfbW1hcChmaWxwLCBkZXYsIGFyZ3MtPmhhbmRs ZSwgJmFyZ3MtPmFkZHJfcHRyKTsKPiAgfQo+ICAKPiAgaW50IHJhZGVvbl9nZW1fYnVzeV9pb2N0 bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+IEBAIC01NzUsNiArNjAxLDcg QEAgaW50IHJhZGVvbl9tb2RlX2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2 LAo+ICAJCXJldHVybiAtRU5PTUVNOwo+ICAKPiAgCXIgPSBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUo ZmlsZV9wcml2LCBnb2JqLCAmaGFuZGxlKTsKPiArCWdvYmotPmR1bWIgPSB0cnVlOwo+ICAJLyog ZHJvcCByZWZlcmVuY2UgZnJvbSBhbGxvY2F0ZSAtIGhhbmRsZSBob2xkcyBpdCBub3cgKi8KPiAg CWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKGdvYmopOwo+ICAJaWYgKHIpIHsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMgYi9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYwo+IGluZGV4IDQ4MGM4N2QuLjE0 NTBlYTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0 LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYwo+IEBAIC00 NzEsNiArNDcxLDkgQEAgaW50IHJhZGVvbl9ib19saXN0X3ZhbGlkYXRlKHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LAo+ICAJCQl1MzIgY3VycmVudF9kb21haW4gPQo+ICAJCQkJcmFkZW9uX21l bV90eXBlX3RvX2RvbWFpbihiby0+dGJvLm1lbS5tZW1fdHlwZSk7Cj4gIAo+ICsJCQlXQVJOX09O Q0UoYm8tPmdlbV9iYXNlLmR1bWIsCj4gKwkJCQkgICJHUFUgdXNlIG9mIGR1bWIgYnVmZmVyIGlz IGlsbGVnYWwuXG4iKTsKPiArCj4gIAkJCS8qIENoZWNrIGlmIHRoaXMgYnVmZmVyIHdpbGwgYmUg bW92ZWQgYW5kIGRvbid0IG1vdmUgaXQKPiAgCQkJICogaWYgd2UgaGF2ZSBtb3ZlZCB0b28gbWFu eSBidWZmZXJzIGZvciB0aGlzIElCIGFscmVhZHkuCj4gIAkJCSAqCj4gZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtL2RybVAuaCBiL2luY2x1ZGUvZHJtL2RybVAuaAo+IGluZGV4IDE5Njg5MDcuLjNk NzkwOGUgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtUC5oCj4gKysrIGIvaW5jbHVkZS9k cm0vZHJtUC5oCj4gQEAgLTY0MCw2ICs2NDAsMTMgQEAgc3RydWN0IGRybV9nZW1fb2JqZWN0IHsK PiAgCSAqIHNpbXBseSBsZWF2ZSBpdCBhcyBOVUxMLgo+ICAJICovCj4gIAlzdHJ1Y3QgZG1hX2J1 Zl9hdHRhY2htZW50ICppbXBvcnRfYXR0YWNoOwo+ICsKPiArCS8qKgo+ICsJICogZHVtYiAtIGNy ZWF0ZWQgYXMgZHVtYiBidWZmZXIKPiArCSAqIFdoZXRoZXIgdGhlIGdlbSBvYmplY3Qgd2FzIGNy ZWF0ZWQgdXNpbmcgdGhlIGR1bWIgYnVmZmVyIGludGVyZmFjZQo+ICsJICogYXMgc3VjaCBpdCBt YXkgbm90IGJlIHVzZWQgZm9yIEdQVSByZW5kZXJpbmcuCj4gKwkgKi8KPiArCWJvb2wgZHVtYjsK PiAgfTsKPiAgCj4gICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==