From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 11/17] drm/cma-helper: simplify setup for drivers with ->dirty callbacks Date: Fri, 30 Dec 2016 15:44:58 +0200 Message-ID: <3476979.826duYxApZ@avalon> References: <1483044517-5770-1-git-send-email-daniel.vetter@ffwll.ch> <1483044517-5770-11-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1483044517-5770-11-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Daniel Vetter , Intel Graphics Development , DRI Development List-Id: dri-devel@lists.freedesktop.org SGkgRGFuaWVsLAoKVGhhbmsgeW91IGZvciB0aGUgcGF0Y2guCgpPbiBUaHVyc2RheSAyOSBEZWMg MjAxNiAyMTo0ODozMSBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+IElmIHdlIHN0b3JlIHRoZSBmYiBm dW5jcyBwb2ludGVyLCB3ZSBjYW4gcmVtb3ZlIGEgYml0IG9mIGJvaWxlcnBsYXRlLgo+IEFsc28g cmVtb3ZlIHRoZSBfZmJkZXZfIGluIHRoZSBleGFtcGxlIGNvZGUsIHNpbmNlIHRoZSBmYl9mdW5j cy0+ZGlydHkKPiBjYWxsYmFjayBoYXMgbm90aGluZyB0byBkbyB3aXRoIGZiZGV2LiBJdCdzIGEg S01TIGZlYXR1cmUsIG9ubHkKPiB1c2VkIGJ5IHRoZSBmYmRldiBkZWZlcnJlZF9pbyBzdXBwb3J0 IHRvIGltcGxlbWVudCBmbHVzaGluZy91cGxvYWQuCj4gCj4gQ2M6IE5vcmFsZiBUcsO4bm5lcyA8 bm9yYWxmQHRyb25uZXMub3JnPgo+IENjOiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNo YXJ0QGlkZWFzb25ib2FyZC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFu aWVsLnZldHRlckBpbnRlbC5jb20+CgpSZXZpZXdlZC1ieTogTGF1cmVudCBQaW5jaGFydCA8bGF1 cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2RybV9mYl9jbWFfaGVscGVyLmMgfCA1OCArKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KPiAgaW5jbHVkZS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaCAgICAgfCAgNSArLS0tCj4gIDIg ZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgNDIgZGVsZXRpb25zKC0pCj4gCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfY21hX2hlbHBlci5jCj4gYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIuYyBpbmRleCA3NmNiMWFhMWIwODkuLmVjMDgxNzI3 Y2Q1YQo+IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfY21hX2hlbHBlci5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9jbWFfaGVscGVyLmMKPiBAQCAtMzksNiAr MzksNyBAQCBzdHJ1Y3QgZHJtX2ZiX2NtYSB7Cj4gIHN0cnVjdCBkcm1fZmJkZXZfY21hIHsKPiAg CXN0cnVjdCBkcm1fZmJfaGVscGVyCWZiX2hlbHBlcjsKPiAgCXN0cnVjdCBkcm1fZmJfY21hCSpm YjsKPiArCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3MgKmZiX2Z1bmNzOwo+ICB9 Owo+IAo+ICAvKioKPiBAQCAtNTgsMzkgKzU5LDI5IEBAIHN0cnVjdCBkcm1fZmJkZXZfY21hIHsK PiAgICoKPiAgICogRXhhbXBsZSBmYmRldiBkZWZlcnJlZCBpbyBjb2RlOjoKPiAgICoKPiAtICog ICAgIHN0YXRpYyBpbnQgZHJpdmVyX2ZiZGV2X2ZiX2RpcnR5KHN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiLAo+IC0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IGRybV9maWxlICpmaWxlX3ByaXYsCj4gLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBmbGFncywgdW5zaWduZWQgY29sb3IsCj4gLSAqICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqY2xpcHMsCj4g LSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBudW1fY2xp cHMpCj4gKyAqICAgICBzdGF0aWMgaW50IGRyaXZlcl9mYl9kaXJ0eShzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiwKPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2LAo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgZmxhZ3MsIHVuc2lnbmVkIGNvbG9yLAo+ICsgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGRybV9jbGlwX3JlY3QgKmNsaXBzLAo+ICsgKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbnVtX2NsaXBzKQo+ICAgKiAgICAgewo+ICAg KiAgICAgICAgIHN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmNtYSA9IGRybV9mYl9jbWFfZ2V0 X2dlbV9vYmooZmIsIDApOwo+ICAgKiAgICAgICAgIC4uLiBwdXNoIGNoYW5nZXMgLi4uCj4gICAq ICAgICAgICAgcmV0dXJuIDA7Cj4gICAqICAgICB9Cj4gICAqCj4gLSAqICAgICBzdGF0aWMgc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlcl9mdW5jcyBkcml2ZXJfZmJkZXZfZmJfZnVuY3MgPSB7Cj4gKyAq ICAgICBzdGF0aWMgc3RydWN0IGRybV9mcmFtZWJ1ZmZlcl9mdW5jcyBkcml2ZXJfZmJfZnVuY3Mg PSB7Cj4gICAqICAgICAgICAgLmRlc3Ryb3kgICAgICAgPSBkcm1fZmJfY21hX2Rlc3Ryb3ksCj4g ICAqICAgICAgICAgLmNyZWF0ZV9oYW5kbGUgPSBkcm1fZmJfY21hX2NyZWF0ZV9oYW5kbGUsCj4g LSAqICAgICAgICAgLmRpcnR5ICAgICAgICAgPSBkcml2ZXJfZmJkZXZfZmJfZGlydHksCj4gKyAq ICAgICAgICAgLmRpcnR5ICAgICAgICAgPSBkcml2ZXJfZmJfZGlydHksCj4gICAqICAgICB9Owo+ ICAgKgo+IC0gKiAgICAgc3RhdGljIGludCBkcml2ZXJfZmJkZXZfY3JlYXRlKHN0cnVjdCBkcm1f ZmJfaGVscGVyICpoZWxwZXIsCj4gLSAqICAgICAgICAgICAgIHN0cnVjdCBkcm1fZmJfaGVscGVy X3N1cmZhY2Vfc2l6ZSAqc2l6ZXMpCj4gLSAqICAgICB7Cj4gLSAqICAgICAgICAgcmV0dXJuIGRy bV9mYmRldl9jbWFfY3JlYXRlX3dpdGhfZnVuY3MoaGVscGVyLCBzaXplcywKPiAtICogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZHJpdmVyX2ZiZGV2X2Zi X2Z1bmNzKTsKPiAtICogICAgIH0KPiAtICoKPiAtICogICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZHJtX2ZiX2hlbHBlcl9mdW5jcyBkcml2ZXJfZmJfaGVscGVyX2Z1bmNzID0gewo+IC0gKiAgICAg ICAgIC5mYl9wcm9iZSA9IGRyaXZlcl9mYmRldl9jcmVhdGUsCj4gLSAqICAgICB9Owo+ICsgKiBJ bml0aWFsaXplOjoKPiAgICoKPiAtICogICAgIEluaXRpYWxpemU6Cj4gICAqICAgICBmYmRldiA9 IGRybV9mYmRldl9jbWFfaW5pdF93aXRoX2Z1bmNzKGRldiwgMTYsCj4gICAqICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldi0+bW9kZV9jb25maWcubnVtX2NydGMs Cj4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCj4gZGV2LT5t b2RlX2NvbmZpZy5udW1fY29ubmVjdG9yLCAtICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCj4gICAmZHJpdmVyX2ZiX2hlbHBlcl9mdW5jcyk7ICsgKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo+ICZkcml2ZXJfZmJfZnVuY3MpOwo+ICAg Kgo+ICAgKi8KPiAKPiBAQCAtNDA4LDEzICszOTksOSBAQCBzdGF0aWMgdm9pZCBkcm1fZmJkZXZf Y21hX2RlZmlvX2Zpbmkoc3RydWN0IGZiX2luZm8KPiAqZmJpKSBrZnJlZShmYmktPmZib3BzKTsK PiAgfQo+IAo+IC0vKgo+IC0gKiBGb3IgdXNlIGluIGEgKHN0cnVjdCBkcm1fZmJfaGVscGVyX2Z1 bmNzICopLT5mYl9wcm9iZSBjYWxsYmFjayBmdW5jdGlvbgo+IHRoYXQgLSAqIG5lZWRzIGN1c3Rv bSBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzLCBsaWtlIGRpcnR5KCkgZm9yCj4gZGVmZXJy ZWRfaW8gdXNlLiAtICovCj4gLWludCBkcm1fZmJkZXZfY21hX2NyZWF0ZV93aXRoX2Z1bmNzKHN0 cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCj4gLQlzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9zdXJm YWNlX3NpemUgKnNpemVzLAo+IC0JY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlcl9mdW5jcyAq ZnVuY3MpCj4gK3N0YXRpYyBpbnQKPiArZHJtX2ZiZGV2X2NtYV9jcmVhdGUoc3RydWN0IGRybV9m Yl9oZWxwZXIgKmhlbHBlciwKPiArCXN0cnVjdCBkcm1fZmJfaGVscGVyX3N1cmZhY2Vfc2l6ZSAq c2l6ZXMpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZmJkZXZfY21hICpmYmRldl9jbWEgPSB0b19mYmRl dl9jbWEoaGVscGVyKTsKPiAgCXN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyIG1vZGVfY21kID0geyAw IH07Cj4gQEAgLTQ1MCw3ICs0MzcsOCBAQCBpbnQgZHJtX2ZiZGV2X2NtYV9jcmVhdGVfd2l0aF9m dW5jcyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlcgo+ICpoZWxwZXIsIGdvdG8gZXJyX2dlbV9mcmVlX29i amVjdDsKPiAgCX0KPiAKPiAtCWZiZGV2X2NtYS0+ZmIgPSBkcm1fZmJfY21hX2FsbG9jKGRldiwg Jm1vZGVfY21kLCAmb2JqLCAxLCBmdW5jcyk7Cj4gKwlmYmRldl9jbWEtPmZiID0gZHJtX2ZiX2Nt YV9hbGxvYyhkZXYsICZtb2RlX2NtZCwgJm9iaiwgMSwKPiArCQkJCQkgZmJkZXZfY21hLT5mYl9m dW5jcyk7Cj4gIAlpZiAoSVNfRVJSKGZiZGV2X2NtYS0+ZmIpKSB7Cj4gIAkJZGV2X2VycihkZXYt PmRldiwgIkZhaWxlZCB0byBhbGxvY2F0ZSBEUk0gZnJhbWVidWZmZXIuXG4iKTsKPiAgCQlyZXQg PSBQVFJfRVJSKGZiZGV2X2NtYS0+ZmIpOwo+IEBAIC00NzYsNyArNDY0LDcgQEAgaW50IGRybV9m YmRldl9jbWFfY3JlYXRlX3dpdGhfZnVuY3Moc3RydWN0IGRybV9mYl9oZWxwZXIKPiAqaGVscGVy LCBmYmktPnNjcmVlbl9zaXplID0gc2l6ZTsKPiAgCWZiaS0+Zml4LnNtZW1fbGVuID0gc2l6ZTsK PiAKPiAtCWlmIChmdW5jcy0+ZGlydHkpIHsKPiArCWlmIChmYmRldl9jbWEtPmZiX2Z1bmNzLT5k aXJ0eSkgewo+ICAJCXJldCA9IGRybV9mYmRldl9jbWFfZGVmaW9faW5pdChmYmksIG9iaik7Cj4g IAkJaWYgKHJldCkKPiAgCQkJZ290byBlcnJfY21hX2Rlc3Ryb3k7Cj4gQEAgLTQ5MiwxMyArNDgw LDYgQEAgaW50IGRybV9mYmRldl9jbWFfY3JlYXRlX3dpdGhfZnVuY3Moc3RydWN0Cj4gZHJtX2Zi X2hlbHBlciAqaGVscGVyLCBkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZCgmb2Jq LT5iYXNlKTsKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAtRVhQT1JUX1NZTUJPTChkcm1fZmJkZXZf Y21hX2NyZWF0ZV93aXRoX2Z1bmNzKTsKPiAtCj4gLXN0YXRpYyBpbnQgZHJtX2ZiZGV2X2NtYV9j cmVhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKPiAtCXN0cnVjdCBkcm1fZmJfaGVs cGVyX3N1cmZhY2Vfc2l6ZSAqc2l6ZXMpCj4gLXsKPiAtCXJldHVybiBkcm1fZmJkZXZfY21hX2Ny ZWF0ZV93aXRoX2Z1bmNzKGhlbHBlciwgc2l6ZXMsIAomZHJtX2ZiX2NtYV9mdW5jcyk7Cj4gLX0K PiAKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZmJfaGVscGVyX2Z1bmNzIGRybV9mYl9jbWFf aGVscGVyX2Z1bmNzID0gewo+ICAJLmZiX3Byb2JlID0gZHJtX2ZiZGV2X2NtYV9jcmVhdGUsCj4g QEAgLTUxNiw3ICs0OTcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9mYl9oZWxwZXJfZnVu Y3MKPiBkcm1fZmJfY21hX2hlbHBlcl9mdW5jcyA9IHsgKi8KPiAgc3RydWN0IGRybV9mYmRldl9j bWEgKmRybV9mYmRldl9jbWFfaW5pdF93aXRoX2Z1bmNzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gdW5zaWduZWQgaW50IHByZWZlcnJlZF9icHAsIHVuc2lnbmVkIGludCBudW1fY3J0YywKPiAt CXVuc2lnbmVkIGludCBtYXhfY29ubl9jb3VudCwgY29uc3Qgc3RydWN0IGRybV9mYl9oZWxwZXJf ZnVuY3MgKmZ1bmNzKQo+ICsJdW5zaWduZWQgaW50IG1heF9jb25uX2NvdW50LCBjb25zdCBzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzIAoqZnVuY3MpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZmJk ZXZfY21hICpmYmRldl9jbWE7Cj4gIAlzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyOwo+IEBA IC01MjcsMTAgKzUwOCwxMSBAQCBzdHJ1Y3QgZHJtX2ZiZGV2X2NtYQo+ICpkcm1fZmJkZXZfY21h X2luaXRfd2l0aF9mdW5jcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBkZXZfZXJyKGRldi0+ZGV2 LAo+ICJGYWlsZWQgdG8gYWxsb2NhdGUgZHJtIGZiZGV2LlxuIik7Cj4gIAkJcmV0dXJuIEVSUl9Q VFIoLUVOT01FTSk7Cj4gIAl9Cj4gKwlmYmRldl9jbWEtPmZiX2Z1bmNzID0gZnVuY3M7Cj4gCj4g IAloZWxwZXIgPSAmZmJkZXZfY21hLT5mYl9oZWxwZXI7Cj4gCj4gLQlkcm1fZmJfaGVscGVyX3By ZXBhcmUoZGV2LCBoZWxwZXIsIGZ1bmNzKTsKPiArCWRybV9mYl9oZWxwZXJfcHJlcGFyZShkZXYs IGhlbHBlciwgJmRybV9mYl9jbWFfaGVscGVyX2Z1bmNzKTsKPiAKPiAgCXJldCA9IGRybV9mYl9o ZWxwZXJfaW5pdChkZXYsIGhlbHBlciwgbnVtX2NydGMsIG1heF9jb25uX2NvdW50KTsKPiAgCWlm IChyZXQgPCAwKSB7Cj4gQEAgLTU3Niw3ICs1NTgsNyBAQCBzdHJ1Y3QgZHJtX2ZiZGV2X2NtYSAq ZHJtX2ZiZGV2X2NtYV9pbml0KHN0cnVjdAo+IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50 IG1heF9jb25uX2NvdW50KQo+ICB7Cj4gIAlyZXR1cm4gZHJtX2ZiZGV2X2NtYV9pbml0X3dpdGhf ZnVuY3MoZGV2LCBwcmVmZXJyZWRfYnBwLCBudW1fY3J0YywKPiAtCQkJCW1heF9jb25uX2NvdW50 LCAmZHJtX2ZiX2NtYV9oZWxwZXJfZnVuY3MpOwo+ICsJCQkJbWF4X2Nvbm5fY291bnQsICZkcm1f ZmJfY21hX2Z1bmNzKTsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MX0dQTChkcm1fZmJkZXZfY21hX2lu aXQpOwo+IAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZmJfY21hX2hlbHBlci5oCj4g Yi9pbmNsdWRlL2RybS9kcm1fZmJfY21hX2hlbHBlci5oIGluZGV4IDNiMDBmNjQ4MGI4My4uOWY0 ZTM0ZWE5OWZkIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9mYl9jbWFfaGVscGVyLmgK PiArKysgYi9pbmNsdWRlL2RybS9kcm1fZmJfY21hX2hlbHBlci5oCj4gQEAgLTE3LDcgKzE3LDcg QEAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZTsKPiAKPiAgc3RydWN0IGRybV9mYmRldl9jbWEgKmRy bV9mYmRldl9jbWFfaW5pdF93aXRoX2Z1bmNzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gdW5z aWduZWQgaW50IHByZWZlcnJlZF9icHAsIHVuc2lnbmVkIGludCBudW1fY3J0YywKPiAtCXVuc2ln bmVkIGludCBtYXhfY29ubl9jb3VudCwgY29uc3Qgc3RydWN0IGRybV9mYl9oZWxwZXJfZnVuY3Mg KmZ1bmNzKTsKPiArCXVuc2lnbmVkIGludCBtYXhfY29ubl9jb3VudCwgY29uc3Qgc3RydWN0IGRy bV9mcmFtZWJ1ZmZlcl9mdW5jcyAKKmZ1bmNzKTsKPiAgc3RydWN0IGRybV9mYmRldl9jbWEgKmRy bV9mYmRldl9jbWFfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJdW5zaWduZWQgaW50 IHByZWZlcnJlZF9icHAsIHVuc2lnbmVkIGludCBudW1fY3J0YywKPiAgCXVuc2lnbmVkIGludCBt YXhfY29ubl9jb3VudCk7Cj4gQEAgLTI2LDkgKzI2LDYgQEAgdm9pZCBkcm1fZmJkZXZfY21hX2Zp bmkoc3RydWN0IGRybV9mYmRldl9jbWEgKmZiZGV2X2NtYSk7Cj4gIHZvaWQgZHJtX2ZiZGV2X2Nt YV9yZXN0b3JlX21vZGUoc3RydWN0IGRybV9mYmRldl9jbWEgKmZiZGV2X2NtYSk7Cj4gIHZvaWQg ZHJtX2ZiZGV2X2NtYV9ob3RwbHVnX2V2ZW50KHN0cnVjdCBkcm1fZmJkZXZfY21hICpmYmRldl9j bWEpOwo+ICB2b2lkIGRybV9mYmRldl9jbWFfc2V0X3N1c3BlbmQoc3RydWN0IGRybV9mYmRldl9j bWEgKmZiZGV2X2NtYSwgaW50IHN0YXRlKTsKPiAtaW50IGRybV9mYmRldl9jbWFfY3JlYXRlX3dp dGhfZnVuY3Moc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwgLQlzdHJ1Y3QKPiBkcm1fZmJf aGVscGVyX3N1cmZhY2Vfc2l6ZSAqc2l6ZXMsCj4gLQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyX2Z1bmNzICpmdW5jcyk7Cj4gCj4gIHZvaWQgZHJtX2ZiX2NtYV9kZXN0cm95KHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiKTsKPiAgaW50IGRybV9mYl9jbWFfY3JlYXRlX2hhbmRsZShzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKCi0tIApSZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFydAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==