From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/ast: Replace struct ast_framebuffer with GEM framebuffer helpers Date: Thu, 27 Jun 2019 23:36:21 +0200 Message-ID: <20190627213621.GR12905@phenom.ffwll.local> References: <20190627173410.8300-1-tzimmermann@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com [IPv6:2a00:1450:4864:20::542]) by gabe.freedesktop.org (Postfix) with ESMTPS id 02C156E843 for ; Thu, 27 Jun 2019 21:36:25 +0000 (UTC) Received: by mail-ed1-x542.google.com with SMTP id w20so8543745edd.2 for ; Thu, 27 Jun 2019 14:36:25 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20190627173410.8300-1-tzimmermann@suse.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thomas Zimmermann Cc: maxime.ripard@bootlin.com, sam@ravnborg.org, dri-devel@lists.freedesktop.org, kraxel@redhat.com, airlied@redhat.com, sean@poorly.run List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBKdW4gMjcsIDIwMTkgYXQgMDc6MzQ6MTBQTSArMDIwMCwgVGhvbWFzIFppbW1lcm1h bm4gd3JvdGU6Cj4gVGhlIGFzdCBkcml2ZXIncyBzdHJ1Y3QgYXN0X2ZyYW1lYnVmZmVyIGlzIGEg YnVmZmVyIG9iamVjdCB3aXRoIEdFTQo+IGludGVyZmFjZS4gVGhlcmUgYXJlIGFscmVhZHkgR0VN IGZyYW1lYnVmZmVyIGhlbHBlcnMgdGhhdCBpbXBsZW1lbnQKPiB0aGUgc2FtZSBmdW5jdGlvbmFs aXR5LiBDb252ZXJ0IGFzdCB0byB0aGVzZS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgWmlt bWVybWFubiA8dHppbW1lcm1hbm5Ac3VzZS5kZT4KCk1PYXIgcmVmYWN0b3JpbmcsIHllcyEhCgpB Y2tlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KCj4gLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2Rydi5oICB8IDEyIC0tLS0tLS0KPiAgZHJpdmVycy9n cHUvZHJtL2FzdC9hc3RfZmIuYyAgIHwgMjcgKysrKysrLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2FzdC9hc3RfbWFpbi5jIHwgNjUgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQo+ICBkcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9tb2RlLmMgfCAyMiArKysrKy0tLS0tLS0KPiAg NCBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAxMDQgZGVsZXRpb25zKC0pCj4gCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2FzdC9hc3RfZHJ2LmgKPiBpbmRleCA2ODRlMTVlNjRhNjIuLmNhNzk0YTNmY2Y4ZiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9hc3QvYXN0X2Rydi5oCj4gQEAgLTIzOSwxNCArMjM5LDggQEAgc3RydWN0IGFzdF9l bmNvZGVyIHsKPiAgCXN0cnVjdCBkcm1fZW5jb2RlciBiYXNlOwo+ICB9Owo+ICAKPiAtc3RydWN0 IGFzdF9mcmFtZWJ1ZmZlciB7Cj4gLQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyIGJhc2U7Cj4gLQlz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iajsKPiAtfTsKPiAtCj4gIHN0cnVjdCBhc3RfZmJkZXYg ewo+ICAJc3RydWN0IGRybV9mYl9oZWxwZXIgaGVscGVyOyAvKiBtdXN0IGJlIGZpcnN0ICovCj4g LQlzdHJ1Y3QgYXN0X2ZyYW1lYnVmZmVyIGFmYjsKPiAgCXZvaWQgKnN5c3JhbTsKPiAgCWludCBz aXplOwo+ICAJaW50IHgxLCB5MSwgeDIsIHkyOyAvKiBkaXJ0eSByZWN0ICovCj4gQEAgLTI1Niw3 ICsyNTAsNiBAQCBzdHJ1Y3QgYXN0X2ZiZGV2IHsKPiAgI2RlZmluZSB0b19hc3RfY3J0Yyh4KSBj b250YWluZXJfb2YoeCwgc3RydWN0IGFzdF9jcnRjLCBiYXNlKQo+ICAjZGVmaW5lIHRvX2FzdF9j b25uZWN0b3IoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBhc3RfY29ubmVjdG9yLCBiYXNlKQo+ ICAjZGVmaW5lIHRvX2FzdF9lbmNvZGVyKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgYXN0X2Vu Y29kZXIsIGJhc2UpCj4gLSNkZWZpbmUgdG9fYXN0X2ZyYW1lYnVmZmVyKHgpIGNvbnRhaW5lcl9v Zih4LCBzdHJ1Y3QgYXN0X2ZyYW1lYnVmZmVyLCBiYXNlKQo+ICAKPiAgc3RydWN0IGFzdF92Ymlv c19zdGR0YWJsZSB7Cj4gIAl1OCBtaXNjOwo+IEBAIC0yOTYsMTEgKzI4OSw2IEBAIHN0cnVjdCBh c3RfdmJpb3NfbW9kZV9pbmZvIHsKPiAgZXh0ZXJuIGludCBhc3RfbW9kZV9pbml0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpOwo+ICBleHRlcm4gdm9pZCBhc3RfbW9kZV9maW5pKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpOwo+ICAKPiAtaW50IGFzdF9mcmFtZWJ1ZmZlcl9pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4gLQkJCSBzdHJ1Y3QgYXN0X2ZyYW1lYnVmZmVyICphc3RfZmIsCj4gLQkJ CSBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQsCj4gLQkJCSBzdHJ1Y3Qg ZHJtX2dlbV9vYmplY3QgKm9iaik7Cj4gLQo+ICBpbnQgYXN0X2ZiZGV2X2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldik7Cj4gIHZvaWQgYXN0X2ZiZGV2X2Zpbmkoc3RydWN0IGRybV9kZXZpY2Ug KmRldik7Cj4gIHZvaWQgYXN0X2ZiZGV2X3NldF9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIGludCBzdGF0ZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2Zi LmMgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9mYi5jCj4gaW5kZXggODIwMGIyNWRhZDE2Li5h ODQ5ZTU4YjQwYmMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZmIuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2ZiLmMKPiBAQCAtMzgsOSArMzgsMTAgQEAK PiAgCj4gICNpbmNsdWRlIDxkcm0vZHJtUC5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+ Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJt X2ZiX2hlbHBlci5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVy Lmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJtX3V0aWwuaD4KPiAtI2luY2x1ZGUgPGRybS9kcm1fY3J0 Y19oZWxwZXIuaD4KPiAgCj4gICNpbmNsdWRlICJhc3RfZHJ2LmgiCj4gIAo+IEBAIC01MCwxNSAr NTEsMTYgQEAgc3RhdGljIHZvaWQgYXN0X2RpcnR5X3VwZGF0ZShzdHJ1Y3QgYXN0X2ZiZGV2ICph ZmJkZXYsCj4gIAlpbnQgaTsKPiAgCXN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm87Cj4g IAlpbnQgc3JjX29mZnNldCwgZHN0X29mZnNldDsKPiAtCWludCBicHAgPSBhZmJkZXYtPmFmYi5i YXNlLmZvcm1hdC0+Y3BwWzBdOwo+ICAJaW50IHJldDsKPiAgCXU4ICpkc3Q7Cj4gIAlib29sIHVu bWFwID0gZmFsc2U7Cj4gIAlib29sIHN0b3JlX2Zvcl9sYXRlciA9IGZhbHNlOwo+ICAJaW50IHgy LCB5MjsKPiAgCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmYiA9IGFmYmRldi0+aGVscGVyLmZiOwo+ICsJaW50IGJwcCA9IGZiLT5mb3JtYXQtPmNwcFsw XTsKPiAgCj4gLQlnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKGFmYmRldi0+YWZiLm9iaik7Cj4g KwlnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKGZiLT5vYmpbMF0pOwo+ICAKPiAgCWlmIChkcm1f Y2FuX3NsZWVwKCkpIHsKPiAgCQkvKiBXZSBwaW4gdGhlIEJPIHNvIGl0IHdvbid0IGJlIG1vdmVk IGR1cmluZyB0aGUKPiBAQCAtMTE2LDggKzExOCw3IEBAIHN0YXRpYyB2b2lkIGFzdF9kaXJ0eV91 cGRhdGUoc3RydWN0IGFzdF9mYmRldiAqYWZiZGV2LAo+ICAKPiAgCWZvciAoaSA9IHk7IGkgPD0g eTI7IGkrKykgewo+ICAJCS8qIGFzc3VtZSBlcXVhbCBzdHJpZGUgZm9yIG5vdyAqLwo+IC0JCXNy Y19vZmZzZXQgPSBkc3Rfb2Zmc2V0ID0KPiAtCQkJaSAqIGFmYmRldi0+YWZiLmJhc2UucGl0Y2hl c1swXSArICh4ICogYnBwKTsKPiArCQlzcmNfb2Zmc2V0ID0gZHN0X29mZnNldCA9IGkgKiBmYi0+ cGl0Y2hlc1swXSArICh4ICogYnBwKTsKPiAgCQltZW1jcHlfdG9pbyhkc3QgKyBkc3Rfb2Zmc2V0 LCBhZmJkZXYtPnN5c3JhbSArIHNyY19vZmZzZXQsCj4gIAkJCSAgICAoeDIgLSB4ICsgMSkgKiBi cHApOwo+ICAJfQo+IEBAIC0yMjIsMTQgKzIyMywxNSBAQCBzdGF0aWMgaW50IGFzdGZiX2NyZWF0 ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAo+ICAJCXJldCA9IFBUUl9FUlIoaW5mbyk7 Cj4gIAkJZ290byBvdXQ7Cj4gIAl9Cj4gLQlyZXQgPSBhc3RfZnJhbWVidWZmZXJfaW5pdChkZXYs ICZhZmJkZXYtPmFmYiwgJm1vZGVfY21kLCBnb2JqKTsKPiAtCWlmIChyZXQpCj4gKwlmYiA9IGRy bV9nZW1fZmJkZXZfZmJfY3JlYXRlKGRldiwgc2l6ZXMsIDAsIGdvYmosIE5VTEwpOwo+ICsJaWYg KElTX0VSUihmYikpIHsKPiArCQlyZXQgPSBQVFJfRVJSKGZiKTsKPiAgCQlnb3RvIG91dDsKPiAr CX0KPiAgCj4gIAlhZmJkZXYtPnN5c3JhbSA9IHN5c3JhbTsKPiAgCWFmYmRldi0+c2l6ZSA9IHNp emU7Cj4gIAo+IC0JZmIgPSAmYWZiZGV2LT5hZmIuYmFzZTsKPiAgCWFmYmRldi0+aGVscGVyLmZi ID0gZmI7Cj4gIAo+ICAJaW5mby0+ZmJvcHMgPSAmYXN0ZmJfb3BzOwo+IEBAIC0yNjEsMjAgKzI2 MywxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9mYl9oZWxwZXJfZnVuY3MgYXN0X2ZiX2hl bHBlcl9mdW5jcyA9IHsKPiAgc3RhdGljIHZvaWQgYXN0X2ZiZGV2X2Rlc3Ryb3koc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiAgCQkJICAgICAgc3RydWN0IGFzdF9mYmRldiAqYWZiZGV2KQo+ICB7 Cj4gLQlzdHJ1Y3QgYXN0X2ZyYW1lYnVmZmVyICphZmIgPSAmYWZiZGV2LT5hZmI7Cj4gLQo+ICAJ ZHJtX2hlbHBlcl9mb3JjZV9kaXNhYmxlX2FsbChkZXYpOwo+ICAJZHJtX2ZiX2hlbHBlcl91bnJl Z2lzdGVyX2ZiaSgmYWZiZGV2LT5oZWxwZXIpOwo+ICAKPiAtCWlmIChhZmItPm9iaikgewo+IC0J CWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChhZmItPm9iaik7Cj4gLQkJYWZiLT5vYmogPSBO VUxMOwo+IC0JfQo+ICAJZHJtX2ZiX2hlbHBlcl9maW5pKCZhZmJkZXYtPmhlbHBlcik7Cj4gKwlk cm1fZnJhbWVidWZmZXJfcHV0KGFmYmRldi0+aGVscGVyLmZiKTsKPiAgCj4gIAl2ZnJlZShhZmJk ZXYtPnN5c3JhbSk7Cj4gLQlkcm1fZnJhbWVidWZmZXJfdW5yZWdpc3Rlcl9wcml2YXRlKCZhZmIt PmJhc2UpOwo+IC0JZHJtX2ZyYW1lYnVmZmVyX2NsZWFudXAoJmFmYi0+YmFzZSk7Cj4gIH0KPiAg Cj4gIGludCBhc3RfZmJkZXZfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9tYWluLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXN0 L2FzdF9tYWluLmMKPiBpbmRleCA0YzdlMzFjYjQ1ZmYuLjFiZDYxNjk2ZTUwOSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9tYWluLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vYXN0L2FzdF9tYWluLmMKPiBAQCAtMjgsOSArMjgsOSBAQAo+ICAjaW5jbHVkZSA8ZHJtL2Ry bVAuaD4KPiAgI2luY2x1ZGUgImFzdF9kcnYuaCIKPiAgCj4gLQo+IC0jaW5jbHVkZSA8ZHJtL2Ry bV9mYl9oZWxwZXIuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KPiArI2lu Y2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFt ZWJ1ZmZlcl9oZWxwZXIuaD4KPiAgCj4gIHZvaWQgYXN0X3NldF9pbmRleF9yZWdfbWFzayhzdHJ1 Y3QgYXN0X3ByaXZhdGUgKmFzdCwKPiAgCQkJICAgIHVpbnQzMl90IGJhc2UsIHVpbnQ4X3QgaW5k ZXgsCj4gQEAgLTM4Myw2NyArMzgzLDggQEAgc3RhdGljIGludCBhc3RfZ2V0X2RyYW1faW5mbyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2 b2lkIGFzdF91c2VyX2ZyYW1lYnVmZmVyX2Rlc3Ryb3koc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIpCj4gLXsKPiAtCXN0cnVjdCBhc3RfZnJhbWVidWZmZXIgKmFzdF9mYiA9IHRvX2FzdF9mcmFt ZWJ1ZmZlcihmYik7Cj4gLQo+IC0JZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKGFzdF9mYi0+ b2JqKTsKPiAtCWRybV9mcmFtZWJ1ZmZlcl9jbGVhbnVwKGZiKTsKPiAtCWtmcmVlKGFzdF9mYik7 Cj4gLX0KPiAtCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzIGFz dF9mYl9mdW5jcyA9IHsKPiAtCS5kZXN0cm95ID0gYXN0X3VzZXJfZnJhbWVidWZmZXJfZGVzdHJv eSwKPiAtfTsKPiAtCj4gLQo+IC1pbnQgYXN0X2ZyYW1lYnVmZmVyX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiAtCQkJIHN0cnVjdCBhc3RfZnJhbWVidWZmZXIgKmFzdF9mYiwKPiAtCQkJ IGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICptb2RlX2NtZCwKPiAtCQkJIHN0cnVjdCBk cm1fZ2VtX29iamVjdCAqb2JqKQo+IC17Cj4gLQlpbnQgcmV0Owo+IC0KPiAtCWRybV9oZWxwZXJf bW9kZV9maWxsX2ZiX3N0cnVjdChkZXYsICZhc3RfZmItPmJhc2UsIG1vZGVfY21kKTsKPiAtCWFz dF9mYi0+b2JqID0gb2JqOwo+IC0JcmV0ID0gZHJtX2ZyYW1lYnVmZmVyX2luaXQoZGV2LCAmYXN0 X2ZiLT5iYXNlLCAmYXN0X2ZiX2Z1bmNzKTsKPiAtCWlmIChyZXQpIHsKPiAtCQlEUk1fRVJST1Io ImZyYW1lYnVmZmVyIGluaXQgZmFpbGVkICVkXG4iLCByZXQpOwo+IC0JCXJldHVybiByZXQ7Cj4g LQl9Cj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAtc3RhdGljIHN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKgo+IC1hc3RfdXNlcl9mcmFtZWJ1ZmZlcl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKPiAtCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHAsCj4gLQkgICAgICAgY29uc3Qgc3Ry dWN0IGRybV9tb2RlX2ZiX2NtZDIgKm1vZGVfY21kKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2dlbV9v YmplY3QgKm9iajsKPiAtCXN0cnVjdCBhc3RfZnJhbWVidWZmZXIgKmFzdF9mYjsKPiAtCWludCBy ZXQ7Cj4gLQo+IC0Jb2JqID0gZHJtX2dlbV9vYmplY3RfbG9va3VwKGZpbHAsIG1vZGVfY21kLT5o YW5kbGVzWzBdKTsKPiAtCWlmIChvYmogPT0gTlVMTCkKPiAtCQlyZXR1cm4gRVJSX1BUUigtRU5P RU5UKTsKPiAtCj4gLQlhc3RfZmIgPSBremFsbG9jKHNpemVvZigqYXN0X2ZiKSwgR0ZQX0tFUk5F TCk7Cj4gLQlpZiAoIWFzdF9mYikgewo+IC0JCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChv YmopOwo+IC0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+IC0JfQo+IC0KPiAtCXJldCA9IGFz dF9mcmFtZWJ1ZmZlcl9pbml0KGRldiwgYXN0X2ZiLCBtb2RlX2NtZCwgb2JqKTsKPiAtCWlmIChy ZXQpIHsKPiAtCQlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQob2JqKTsKPiAtCQlrZnJlZShh c3RfZmIpOwo+IC0JCXJldHVybiBFUlJfUFRSKHJldCk7Cj4gLQl9Cj4gLQlyZXR1cm4gJmFzdF9m Yi0+YmFzZTsKPiAtfQo+IC0KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdf ZnVuY3MgYXN0X21vZGVfZnVuY3MgPSB7Cj4gLQkuZmJfY3JlYXRlID0gYXN0X3VzZXJfZnJhbWVi dWZmZXJfY3JlYXRlLAo+ICsJLmZiX2NyZWF0ZSA9IGRybV9nZW1fZmJfY3JlYXRlCj4gIH07Cj4g IAo+ICBzdGF0aWMgdTMyIGFzdF9nZXRfdnJhbV9pbmZvKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuYyBiL2RyaXZlcnMv Z3B1L2RybS9hc3QvYXN0X21vZGUuYwo+IGluZGV4IGZmY2NiZWY5NjJhNC4uYzQ4MjQ5ZGY3NThl IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuYwo+IEBAIC01MjYsMjcgKzUyNiwyMSBAQCBzdGF0 aWMgaW50IGFzdF9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQkJ CWludCB4LCBpbnQgeSwgaW50IGF0b21pYykKPiAgewo+ICAJc3RydWN0IGFzdF9wcml2YXRlICph c3QgPSBjcnRjLT5kZXYtPmRldl9wcml2YXRlOwo+IC0Jc3RydWN0IGRybV9nZW1fb2JqZWN0ICpv Ymo7Cj4gLQlzdHJ1Y3QgYXN0X2ZyYW1lYnVmZmVyICphc3RfZmI7Cj4gIAlzdHJ1Y3QgZHJtX2dl bV92cmFtX29iamVjdCAqZ2JvOwo+ICAJaW50IHJldDsKPiAgCXM2NCBncHVfYWRkcjsKPiAgCXZv aWQgKmJhc2U7Cj4gIAo+ICAJaWYgKCFhdG9taWMgJiYgZmIpIHsKPiAtCQlhc3RfZmIgPSB0b19h c3RfZnJhbWVidWZmZXIoZmIpOwo+IC0JCW9iaiA9IGFzdF9mYi0+b2JqOwo+IC0JCWdibyA9IGRy bV9nZW1fdnJhbV9vZl9nZW0ob2JqKTsKPiArCQlnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKGZi LT5vYmpbMF0pOwo+ICAKPiAgCQkvKiB1bm1hcCBpZiBjb25zb2xlICovCj4gLQkJaWYgKCZhc3Qt PmZiZGV2LT5hZmIgPT0gYXN0X2ZiKQo+ICsJCWlmIChhc3QtPmZiZGV2LT5oZWxwZXIuZmIgPT0g ZmIpCj4gIAkJCWRybV9nZW1fdnJhbV9rdW5tYXAoZ2JvKTsKPiAgCQlkcm1fZ2VtX3ZyYW1fdW5w aW4oZ2JvKTsKPiAgCX0KPiAgCj4gLQlhc3RfZmIgPSB0b19hc3RfZnJhbWVidWZmZXIoY3J0Yy0+ cHJpbWFyeS0+ZmIpOwo+IC0Jb2JqID0gYXN0X2ZiLT5vYmo7Cj4gLQlnYm8gPSBkcm1fZ2VtX3Zy YW1fb2ZfZ2VtKG9iaik7Cj4gKwlnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKGNydGMtPnByaW1h cnktPmZiLT5vYmpbMF0pOwo+ICAKPiAgCXJldCA9IGRybV9nZW1fdnJhbV9waW4oZ2JvLCBEUk1f R0VNX1ZSQU1fUExfRkxBR19WUkFNKTsKPiAgCWlmIChyZXQpCj4gQEAgLTU1Nyw3ICs1NTEsNyBA QCBzdGF0aWMgaW50IGFzdF9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK PiAgCQlnb3RvIGVycl9kcm1fZ2VtX3ZyYW1fdW5waW47Cj4gIAl9Cj4gIAo+IC0JaWYgKCZhc3Qt PmZiZGV2LT5hZmIgPT0gYXN0X2ZiKSB7Cj4gKwlpZiAoYXN0LT5mYmRldi0+aGVscGVyLmZiID09 IGNydGMtPnByaW1hcnktPmZiKSB7Cj4gIAkJLyogaWYgcHVzaGluZyBjb25zb2xlIGluIGttYXAg aXQgKi8KPiAgCQliYXNlID0gZHJtX2dlbV92cmFtX2ttYXAoZ2JvLCB0cnVlLCBOVUxMKTsKPiAg CQlpZiAoSVNfRVJSKGJhc2UpKSB7Cj4gQEAgLTYyNSwxMiArNjE5LDEyIEBAIHN0YXRpYyB2b2lk IGFzdF9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJYXN0X2NydGNfZHBt cyhjcnRjLCBEUk1fTU9ERV9EUE1TX09GRik7Cj4gIAlpZiAoY3J0Yy0+cHJpbWFyeS0+ZmIpIHsK PiAgCQlzdHJ1Y3QgYXN0X3ByaXZhdGUgKmFzdCA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7Cj4g LQkJc3RydWN0IGFzdF9mcmFtZWJ1ZmZlciAqYXN0X2ZiID0gdG9fYXN0X2ZyYW1lYnVmZmVyKGNy dGMtPnByaW1hcnktPmZiKTsKPiAtCQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiA9IGFzdF9m Yi0+b2JqOwo+IC0JCXN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm8gPSBkcm1fZ2VtX3Zy YW1fb2ZfZ2VtKG9iaik7Cj4gKwkJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBjcnRjLT5w cmltYXJ5LT5mYjsKPiArCQlzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvID0KPiArCQkJ ZHJtX2dlbV92cmFtX29mX2dlbShmYi0+b2JqWzBdKTsKPiAgCj4gIAkJLyogdW5tYXAgaWYgY29u c29sZSAqLwo+IC0JCWlmICgmYXN0LT5mYmRldi0+YWZiID09IGFzdF9mYikKPiArCQlpZiAoYXN0 LT5mYmRldi0+aGVscGVyLmZiID09IGZiKQo+ICAJCQlkcm1fZ2VtX3ZyYW1fa3VubWFwKGdibyk7 Cj4gIAkJZHJtX2dlbV92cmFtX3VucGluKGdibyk7Cj4gIAl9Cj4gLS0gCj4gMi4yMS4wCj4gCgot LSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0 cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVs