From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: Re: [PATCH v2 1/7] drm/msm/dpu: Remove unneeded checks in dpu_plane.c Date: Thu, 20 Sep 2018 11:29:27 -0600 Message-ID: <20180920172927.GC809@jcrouse-lnx.qualcomm.com> References: <20180920164924.225847-1-bzwang@chromium.org> <20180920164924.225847-2-bzwang@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180920164924.225847-2-bzwang-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Bruce Wang Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gVGh1LCBTZXAgMjAsIDIwMTggYXQgMTI6NDk6MThQTSAtMDQwMCwgQnJ1Y2UgV2FuZyB3cm90 ZToKPiBSZW1vdmVzIHNvbWUgY2hlY2tzIGZyb20gZHB1X3BsYW5lLmMgdGhhdCB3aWxsIG5ldmVy IHJlc3VsdCBpbiBhbiBlcnJvci4KPiBTdWJzZXF1ZW50IHZhcmlhYmxlIGFzc2lnbm1lbnRzIGJl Y29tZSBwYXJ0IG9mIHRoZSBpbml0aWFsaXphdGlvbiB3aGVyZXZlcgo+IHBvc3NpYmxlLiBVbnVz ZWQgdmFyaWFibGVzIGFyZSByZW1vdmVkLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEJydWNlIFdhbmcg PGJ6d2FuZ0BjaHJvbWl1bS5vcmc+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9wbGFuZS5jIHwgMTkwICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgMSBmaWxlIGNo YW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDE3MyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3BsYW5lLmMgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcGxhbmUuYwo+IGluZGV4IDFjZTc2NDYwZDcxMC4uOTk4 ODdjODA0ZTRlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9wbGFuZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3BsYW5l LmMKPiBAQCAtMTIzLDEzICsxMjMsOCBAQCBzdHJ1Y3QgZHB1X3BsYW5lIHsKPiAgCj4gIHN0YXRp YyBzdHJ1Y3QgZHB1X2ttcyAqX2RwdV9wbGFuZV9nZXRfa21zKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lKQo+ICB7Cj4gLQlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2Owo+ICsJc3RydWN0IG1z bV9kcm1fcHJpdmF0ZSAqcHJpdiA9IHBsYW5lLT5kZXYtPmRldl9wcml2YXRlOwo+ICAKPiAtCWlm ICghcGxhbmUgfHwgIXBsYW5lLT5kZXYpCj4gLQkJcmV0dXJuIE5VTEw7Cj4gLQlwcml2ID0gcGxh bmUtPmRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlpZiAoIXByaXYpCj4gLQkJcmV0dXJuIE5VTEw7Cj4g IAlyZXR1cm4gdG9fZHB1X2ttcyhwcml2LT5rbXMpOwo+ICB9Cj4gIAo+IEBAIC0xNDgsNyArMTQz LDcgQEAgc3RhdGljIGlubGluZSBpbnQgX2RwdV9wbGFuZV9jYWxjX2ZpbGxfbGV2ZWwoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCj4gIAl1MzIgZml4ZWRfYnVmZl9zaXplOwo+ICAJdTMyIHRvdGFs X2ZsOwo+ICAKPiAtCWlmICghcGxhbmUgfHwgIWZtdCB8fCAhcGxhbmUtPnN0YXRlIHx8ICFzcmNf d2lkdGggfHwgIWZtdC0+YnBwKSB7Cj4gKwlpZiAoIWZtdCB8fCAhcGxhbmUtPnN0YXRlIHx8ICFz cmNfd2lkdGggfHwgIWZtdC0+YnBwKSB7CgpBIGxvdCBvZiB0aGVzZSBzZWNvbmQgbGV2ZWwgaWYg c3RhdGVtZW50cyBjYW4gYWxzbyBzY3J1dGluaXplZCBhbmQgeW91IGNhbiBzcGVuZAphIGxvdCBv ZiB0aW1lIGluIHRob3NlIHJhYmJpdCBob2xlcyBzbyBJJ20gbm90IHN1cmUgaWYgdGhhdCBpcyBm b3IgdGhpcyBwYXRjaCBvcgpmb2xsb3cgb24gcGF0Y2hlcy4KCk15IGJpZ2dlciBjb25jZXJuIGlz IHRoYXQgd2UncmUgc3RvcmluZyBhbmQgcHJpbnRpbmcgYSBsb2cgbWVzc2FnZSBmb3IgbW9zdCBv Zgp0aGVzZSBsb2dpYyBjaGVja3MgYW5kIHRob3NlIGVuZCB1cCBiZWluZyByZWR1bmRhbnQgb3Ig KHByb2JhYmx5KSBpbXBvc3NpYmxlLgpXZSBzaG91bGQgY29uc2lkZXIgdXNpbmcgYSBXQVJOX09O KCkgaW4gcGxhY2Ugb2YgdGhlc2UgImludmFsaWQgYXJndW1lbnRzIgptZXNzYWdlcy4KCkFnYWlu LCBJJ20gbm90IHN1cmUgaWYgdGhhdCBpcyByZWFzb25hYmxlIGZvciB0aGlzIHBhdGNoIHNldCAo c2luY2UgYW55dGhpbmcKdGhhdCBjbGVhbnMgY29kZSBpcyBhICsxIGluIG15IGJvb2spIGJ1dCBz b21ldGhpbmcgdG8ga2VlcCBpbiBtaW5kLgoKPiAgCQlEUFVfRVJST1IoImludmFsaWQgYXJndW1l bnRzXG4iKTsKPiAgCQlyZXR1cm4gMDsKPiAgCX0KPiBAQCAtMjI5LDI2ICsyMjQsMTEgQEAgc3Rh dGljIHU2NCBfZHB1X3BsYW5lX2dldF9xb3NfbHV0KGNvbnN0IHN0cnVjdCBkcHVfcW9zX2x1dF90 YmwgKnRibCwKPiAgc3RhdGljIHZvaWQgX2RwdV9wbGFuZV9zZXRfcW9zX2x1dChzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSwKPiAgCQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKPiAgewo+IC0J c3RydWN0IGRwdV9wbGFuZSAqcGRwdTsKPiArCXN0cnVjdCBkcHVfcGxhbmUgKnBkcHUgPSB0b19k cHVfcGxhbmUocGxhbmUpOwo+ICAJY29uc3Qgc3RydWN0IGRwdV9mb3JtYXQgKmZtdCA9IE5VTEw7 Cj4gIAl1NjQgcW9zX2x1dDsKPiAgCXUzMiB0b3RhbF9mbCA9IDAsIGx1dF91c2FnZTsKPiAgCj4g LQlpZiAoIXBsYW5lIHx8ICFmYikgewo+IC0JCURQVV9FUlJPUigiaW52YWxpZCBhcmd1bWVudHMg cGxhbmUgJWQgZmIgJWRcbiIsCj4gLQkJCQlwbGFuZSAhPSAwLCBmYiAhPSAwKTsKPiAtCQlyZXR1 cm47Cj4gLQl9Cj4gLQo+IC0JcGRwdSA9IHRvX2RwdV9wbGFuZShwbGFuZSk7Cj4gLQo+IC0JaWYg KCFwZHB1LT5waXBlX2h3IHx8ICFwZHB1LT5waXBlX3NibGsgfHwgIXBkcHUtPmNhdGFsb2cpIHsK PiAtCQlEUFVfRVJST1IoImludmFsaWQgYXJndW1lbnRzXG4iKTsKPiAtCQlyZXR1cm47Cj4gLQl9 IGVsc2UgaWYgKCFwZHB1LT5waXBlX2h3LT5vcHMuc2V0dXBfY3JlcV9sdXQpIHsKPiAtCQlyZXR1 cm47Cj4gLQl9Cj4gLQo+ICAJaWYgKCFwZHB1LT5pc19ydF9waXBlKSB7Cj4gIAkJbHV0X3VzYWdl ID0gRFBVX1FPU19MVVRfVVNBR0VfTlJUOwo+ICAJfSBlbHNlIHsKPiBAQCAtMjkwLDI0ICsyNzAs MTAgQEAgc3RhdGljIHZvaWQgX2RwdV9wbGFuZV9zZXRfcW9zX2x1dChzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwKPiAgc3RhdGljIHZvaWQgX2RwdV9wbGFuZV9zZXRfZGFuZ2VyX2x1dChzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKPiAgCQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKPiAgewo+ IC0Jc3RydWN0IGRwdV9wbGFuZSAqcGRwdTsKPiArCXN0cnVjdCBkcHVfcGxhbmUgKnBkcHUgPSB0 b19kcHVfcGxhbmUocGxhbmUpOwo+ICAJY29uc3Qgc3RydWN0IGRwdV9mb3JtYXQgKmZtdCA9IE5V TEw7Cj4gIAl1MzIgZGFuZ2VyX2x1dCwgc2FmZV9sdXQ7Cj4gIAo+IC0JaWYgKCFwbGFuZSB8fCAh ZmIpIHsKPiAtCQlEUFVfRVJST1IoImludmFsaWQgYXJndW1lbnRzXG4iKTsKPiAtCQlyZXR1cm47 Cj4gLQl9Cj4gLQo+IC0JcGRwdSA9IHRvX2RwdV9wbGFuZShwbGFuZSk7Cj4gLQo+IC0JaWYgKCFw ZHB1LT5waXBlX2h3IHx8ICFwZHB1LT5waXBlX3NibGsgfHwgIXBkcHUtPmNhdGFsb2cpIHsKPiAt CQlEUFVfRVJST1IoImludmFsaWQgYXJndW1lbnRzXG4iKTsKPiAtCQlyZXR1cm47Cj4gLQl9IGVs c2UgaWYgKCFwZHB1LT5waXBlX2h3LT5vcHMuc2V0dXBfZGFuZ2VyX3NhZmVfbHV0KSB7Cj4gLQkJ cmV0dXJuOwo+IC0JfQo+IC0KPiAgCWlmICghcGRwdS0+aXNfcnRfcGlwZSkgewo+ICAJCWRhbmdl cl9sdXQgPSBwZHB1LT5jYXRhbG9nLT5wZXJmLmRhbmdlcl9sdXRfdGJsCj4gIAkJCQlbRFBVX1FP U19MVVRfVVNBR0VfTlJUXTsKPiBAQCAtMzYxLDIxICszMjcsNyBAQCBzdGF0aWMgdm9pZCBfZHB1 X3BsYW5lX3NldF9kYW5nZXJfbHV0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICBzdGF0aWMg dm9pZCBfZHB1X3BsYW5lX3NldF9xb3NfY3RybChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAg CWJvb2wgZW5hYmxlLCB1MzIgZmxhZ3MpCj4gIHsKPiAtCXN0cnVjdCBkcHVfcGxhbmUgKnBkcHU7 Cj4gLQo+IC0JaWYgKCFwbGFuZSkgewo+IC0JCURQVV9FUlJPUigiaW52YWxpZCBhcmd1bWVudHNc biIpOwo+IC0JCXJldHVybjsKPiAtCX0KPiAtCj4gLQlwZHB1ID0gdG9fZHB1X3BsYW5lKHBsYW5l KTsKPiAtCj4gLQlpZiAoIXBkcHUtPnBpcGVfaHcgfHwgIXBkcHUtPnBpcGVfc2Jsaykgewo+IC0J CURQVV9FUlJPUigiaW52YWxpZCBhcmd1bWVudHNcbiIpOwo+IC0JCXJldHVybjsKPiAtCX0gZWxz ZSBpZiAoIXBkcHUtPnBpcGVfaHctPm9wcy5zZXR1cF9xb3NfY3RybCkgewo+IC0JCXJldHVybjsK PiAtCX0KPiArCXN0cnVjdCBkcHVfcGxhbmUgKnBkcHUgPSB0b19kcHVfcGxhbmUocGxhbmUpOwo+ ICAKPiAgCWlmIChmbGFncyAmIERQVV9QTEFORV9RT1NfVkJMQU5LX0NUUkwpIHsKPiAgCQlwZHB1 LT5waXBlX3Fvc19jZmcuY3JlcV92YmxhbmsgPSBwZHB1LT5waXBlX3NibGstPmNyZXFfdmJsYW5r Owo+IEBAIC00NTAsMjkgKzQwMiwxMCBAQCBpbnQgZHB1X3BsYW5lX2Rhbmdlcl9zaWduYWxfY3Ry bChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgYm9vbCBlbmFibGUpCj4gIHN0YXRpYyB2b2lkIF9k cHVfcGxhbmVfc2V0X290X2xpbWl0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCXN0cnVj dCBkcm1fY3J0YyAqY3J0YykKPiAgewo+IC0Jc3RydWN0IGRwdV9wbGFuZSAqcGRwdTsKPiArCXN0 cnVjdCBkcHVfcGxhbmUgKnBkcHUgPSB0b19kcHVfcGxhbmUocGxhbmUpOwo+ICAJc3RydWN0IGRw dV92YmlmX3NldF9vdF9wYXJhbXMgb3RfcGFyYW1zOwo+IC0Jc3RydWN0IG1zbV9kcm1fcHJpdmF0 ZSAqcHJpdjsKPiAtCXN0cnVjdCBkcHVfa21zICpkcHVfa21zOwo+IC0KPiAtCWlmICghcGxhbmUg fHwgIXBsYW5lLT5kZXYgfHwgIWNydGMpIHsKPiAtCQlEUFVfRVJST1IoImludmFsaWQgYXJndW1l bnRzIHBsYW5lICVkIGNydGMgJWRcbiIsCj4gLQkJCQlwbGFuZSAhPSAwLCBjcnRjICE9IDApOwo+ IC0JCXJldHVybjsKPiAtCX0KPiAtCj4gLQlwcml2ID0gcGxhbmUtPmRldi0+ZGV2X3ByaXZhdGU7 Cj4gLQlpZiAoIXByaXYgfHwgIXByaXYtPmttcykgewo+IC0JCURQVV9FUlJPUigiaW52YWxpZCBL TVMgcmVmZXJlbmNlXG4iKTsKPiAtCQlyZXR1cm47Cj4gLQl9Cj4gLQo+IC0JZHB1X2ttcyA9IHRv X2RwdV9rbXMocHJpdi0+a21zKTsKPiAtCXBkcHUgPSB0b19kcHVfcGxhbmUocGxhbmUpOwo+IC0J aWYgKCFwZHB1LT5waXBlX2h3KSB7Cj4gLQkJRFBVX0VSUk9SKCJpbnZhbGlkIHBpcGUgcmVmZXJl bmNlXG4iKTsKPiAtCQlyZXR1cm47Cj4gLQl9Cj4gKwlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpw cml2ID0gcGxhbmUtPmRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHB1X2ttcyAqZHB1X2tt cyA9IHRvX2RwdV9rbXMocHJpdi0+a21zKTsKClRoaXMgaXMgdGhlIHNhbWUgYXMgX2RwdV9wbGFu ZV9nZXRfa21zKCkgLSBzbyB5b3UgbWF5YmUgZ2V0IHJpZCBvZiBwcml2IHRvbz8KCj4gIAo+ICAJ bWVtc2V0KCZvdF9wYXJhbXMsIDAsIHNpemVvZihvdF9wYXJhbXMpKTsKPiAgCW90X3BhcmFtcy54 aW5faWQgPSBwZHB1LT5waXBlX2h3LT5jYXAtPnhpbl9pZDsKPiBAQCAtNDk0LDI4ICs0MjcsMTAg QEAgc3RhdGljIHZvaWQgX2RwdV9wbGFuZV9zZXRfb3RfbGltaXQoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCj4gICAqLwo+ICBzdGF0aWMgdm9pZCBfZHB1X3BsYW5lX3NldF9xb3NfcmVtYXAoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUpCj4gIHsKPiAtCXN0cnVjdCBkcHVfcGxhbmUgKnBkcHU7Cj4g KwlzdHJ1Y3QgZHB1X3BsYW5lICpwZHB1ID0gdG9fZHB1X3BsYW5lKHBsYW5lKTsKPiAgCXN0cnVj dCBkcHVfdmJpZl9zZXRfcW9zX3BhcmFtcyBxb3NfcGFyYW1zOwo+IC0Jc3RydWN0IG1zbV9kcm1f cHJpdmF0ZSAqcHJpdjsKPiAtCXN0cnVjdCBkcHVfa21zICpkcHVfa21zOwo+IC0KPiAtCWlmICgh cGxhbmUgfHwgIXBsYW5lLT5kZXYpIHsKPiAtCQlEUFVfRVJST1IoImludmFsaWQgYXJndW1lbnRz XG4iKTsKPiAtCQlyZXR1cm47Cj4gLQl9Cj4gLQo+IC0JcHJpdiA9IHBsYW5lLT5kZXYtPmRldl9w cml2YXRlOwo+IC0JaWYgKCFwcml2IHx8ICFwcml2LT5rbXMpIHsKPiAtCQlEUFVfRVJST1IoImlu dmFsaWQgS01TIHJlZmVyZW5jZVxuIik7Cj4gLQkJcmV0dXJuOwo+IC0JfQo+IC0KPiAtCWRwdV9r bXMgPSB0b19kcHVfa21zKHByaXYtPmttcyk7Cj4gLQlwZHB1ID0gdG9fZHB1X3BsYW5lKHBsYW5l KTsKPiAtCWlmICghcGRwdS0+cGlwZV9odykgewo+IC0JCURQVV9FUlJPUigiaW52YWxpZCBwaXBl IHJlZmVyZW5jZVxuIik7Cj4gLQkJcmV0dXJuOwo+IC0JfQo+ICsJc3RydWN0IG1zbV9kcm1fcHJp dmF0ZSAqcHJpdiA9IHBsYW5lLT5kZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRwdV9rbXMg KmRwdV9rbXMgPSB0b19kcHVfa21zKHByaXYtPmttcyk7CgpTYW1lLgoKPiAgCW1lbXNldCgmcW9z X3BhcmFtcywgMCwgc2l6ZW9mKHFvc19wYXJhbXMpKTsKPiAgCXFvc19wYXJhbXMudmJpZl9pZHgg PSBWQklGX1JUOwo+IEBAIC01NDksMTAgKzQ2NCw2IEBAIHN0YXRpYyBpbnQgX2RwdV9wbGFuZV9n ZXRfYXNwYWNlKAo+ICAJfQo+ICAKPiAgCWttcyA9IF9kcHVfcGxhbmVfZ2V0X2ttcygmcGRwdS0+ YmFzZSk7Cj4gLQlpZiAoIWttcykgewo+IC0JCURQVV9FUlJPUigiaW52YWxpZCBrbXNcbiIpOwo+ IC0JCXJldHVybiAtRUlOVkFMOwo+IC0JfQo+ICAKPiAgCSphc3BhY2UgPSBrbXMtPmJhc2UuYXNw YWNlOwo+ICAKPiBAQCAtNTc2LDEwICs0ODcsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX2RwdV9w bGFuZV9zZXRfc2Nhbm91dChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCX0KPiAgCj4gIAlw ZHB1ID0gdG9fZHB1X3BsYW5lKHBsYW5lKTsKPiAtCWlmICghcGRwdS0+cGlwZV9odykgewo+IC0J CURQVV9FUlJPUl9QTEFORShwZHB1LCAiaW52YWxpZCBwaXBlX2h3XG4iKTsKPiAtCQlyZXR1cm47 Cj4gLQl9Cj4gIAo+ICAJcmV0ID0gX2RwdV9wbGFuZV9nZXRfYXNwYWNlKHBkcHUsIHBzdGF0ZSwg JmFzcGFjZSk7Cj4gIAlpZiAocmV0KSB7Cj4gQEAgLTYxMCwxNSArNTE3LDYgQEAgc3RhdGljIHZv aWQgX2RwdV9wbGFuZV9zZXR1cF9zY2FsZXIzKHN0cnVjdCBkcHVfcGxhbmUgKnBkcHUsCj4gIHsK PiAgCXVpbnQzMl90IGk7Cj4gIAo+IC0JaWYgKCFwZHB1IHx8ICFwc3RhdGUgfHwgIXNjYWxlX2Nm ZyB8fCAhZm10IHx8ICFjaHJvbWFfc3Vic21wbF9oIHx8Cj4gLQkJCSFjaHJvbWFfc3Vic21wbF92 KSB7Cj4gLQkJRFBVX0VSUk9SKAo+IC0JCQkicGRwdSAlZCBwc3RhdGUgJWQgc2NhbGVfY2ZnICVk IGZtdCAlZCBzbXBfaCAlZCBzbXBfdiAlZFxuIiwKPiAtCQkJISFwZHB1LCAhIXBzdGF0ZSwgISFz Y2FsZV9jZmcsICEhZm10LCBjaHJvbWFfc3Vic21wbF9oLAo+IC0JCQljaHJvbWFfc3Vic21wbF92 KTsKPiAtCQlyZXR1cm47Cj4gLQl9Cj4gLQo+ICAJbWVtc2V0KHNjYWxlX2NmZywgMCwgc2l6ZW9m KCpzY2FsZV9jZmcpKTsKPiAgCW1lbXNldCgmcHN0YXRlLT5waXhlbF9leHQsIDAsIHNpemVvZihz dHJ1Y3QgZHB1X2h3X3BpeGVsX2V4dCkpOwo+ICAKPiBAQCAtNzIyLDE3ICs2MjAsOCBAQCBzdGF0 aWMgdm9pZCBfZHB1X3BsYW5lX3NldHVwX3NjYWxlcihzdHJ1Y3QgZHB1X3BsYW5lICpwZHB1LAo+ ICAJCXN0cnVjdCBkcHVfcGxhbmVfc3RhdGUgKnBzdGF0ZSwKPiAgCQljb25zdCBzdHJ1Y3QgZHB1 X2Zvcm1hdCAqZm10LCBib29sIGNvbG9yX2ZpbGwpCj4gIHsKPiAtCXN0cnVjdCBkcHVfaHdfcGl4 ZWxfZXh0ICpwZTsKPiAgCXVpbnQzMl90IGNocm9tYV9zdWJzbXBsX2gsIGNocm9tYV9zdWJzbXBs X3Y7Cj4gIAo+IC0JaWYgKCFwZHB1IHx8ICFmbXQgfHwgIXBzdGF0ZSkgewo+IC0JCURQVV9FUlJP UigiaW52YWxpZCBhcmcocyksIHBsYW5lICVkIGZtdCAlZCBzdGF0ZSAlZFxuIiwKPiAtCQkJCXBk cHUgIT0gMCwgZm10ICE9IDAsIHBzdGF0ZSAhPSAwKTsKPiAtCQlyZXR1cm47Cj4gLQl9Cj4gLQo+ IC0JcGUgPSAmcHN0YXRlLT5waXhlbF9leHQ7Cj4gLQo+ICAJLyogZG9uJ3QgY2hyb21hIHN1YnNh bXBsZSBpZiBkZWNpbWF0aW5nICovCj4gIAljaHJvbWFfc3Vic21wbF9oID0KPiAgCQlkcm1fZm9y bWF0X2hvcnpfY2hyb21hX3N1YnNhbXBsaW5nKGZtdC0+YmFzZS5waXhlbF9mb3JtYXQpOwo+IEBA IC03NjAsMjEgKzY0OSw4IEBAIHN0YXRpYyBpbnQgX2RwdV9wbGFuZV9jb2xvcl9maWxsKHN0cnVj dCBkcHVfcGxhbmUgKnBkcHUsCj4gIAkJdWludDMyX3QgY29sb3IsIHVpbnQzMl90IGFscGhhKQo+ ICB7Cj4gIAljb25zdCBzdHJ1Y3QgZHB1X2Zvcm1hdCAqZm10Owo+IC0JY29uc3Qgc3RydWN0IGRy bV9wbGFuZSAqcGxhbmU7Cj4gLQlzdHJ1Y3QgZHB1X3BsYW5lX3N0YXRlICpwc3RhdGU7Cj4gLQo+ IC0JaWYgKCFwZHB1IHx8ICFwZHB1LT5iYXNlLnN0YXRlKSB7Cj4gLQkJRFBVX0VSUk9SKCJpbnZh bGlkIHBsYW5lXG4iKTsKPiAtCQlyZXR1cm4gLUVJTlZBTDsKPiAtCX0KPiAtCj4gLQlpZiAoIXBk cHUtPnBpcGVfaHcpIHsKPiAtCQlEUFVfRVJST1JfUExBTkUocGRwdSwgImludmFsaWQgcGxhbmUg aC93IHBvaW50ZXJcbiIpOwo+IC0JCXJldHVybiAtRUlOVkFMOwo+IC0JfQo+IC0KPiAtCXBsYW5l ID0gJnBkcHUtPmJhc2U7Cj4gLQlwc3RhdGUgPSB0b19kcHVfcGxhbmVfc3RhdGUocGxhbmUtPnN0 YXRlKTsKPiArCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0gJnBkcHUtPmJhc2U7Cj4g KwlzdHJ1Y3QgZHB1X3BsYW5lX3N0YXRlICpwc3RhdGUgPSB0b19kcHVfcGxhbmVfc3RhdGUocGxh bmUtPnN0YXRlKTsKPiAgCj4gIAlEUFVfREVCVUdfUExBTkUocGRwdSwgIlxuIik7Cj4gIAo+IEBA IC04MjUsMTIgKzcwMSw3IEBAIHN0YXRpYyBpbnQgX2RwdV9wbGFuZV9jb2xvcl9maWxsKHN0cnVj dCBkcHVfcGxhbmUgKnBkcHUsCj4gIAo+ICB2b2lkIGRwdV9wbGFuZV9jbGVhcl9tdWx0aXJlY3Qo Y29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqZHJtX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3Qg ZHB1X3BsYW5lX3N0YXRlICpwc3RhdGU7Cj4gLQo+IC0JaWYgKCFkcm1fc3RhdGUpCj4gLQkJcmV0 dXJuOwo+IC0KPiAtCXBzdGF0ZSA9IHRvX2RwdV9wbGFuZV9zdGF0ZShkcm1fc3RhdGUpOwo+ICsJ c3RydWN0IGRwdV9wbGFuZV9zdGF0ZSAqcHN0YXRlID0gdG9fZHB1X3BsYW5lX3N0YXRlKGRybV9z dGF0ZSk7Cj4gIAo+ICAJcHN0YXRlLT5tdWx0aXJlY3RfaW5kZXggPSBEUFVfU1NQUF9SRUNUX1NP TE87Cj4gIAlwc3RhdGUtPm11bHRpcmVjdF9tb2RlID0gRFBVX1NTUFBfTVVMVElSRUNUX05PTkU7 Cj4gQEAgLTk2MSwxNSArODMyLDYgQEAgaW50IGRwdV9wbGFuZV92YWxpZGF0ZV9tdWx0aXJlY3Rf djIoc3RydWN0IGRwdV9tdWx0aXJlY3RfcGxhbmVfc3RhdGVzICpwbGFuZSkKPiAgdm9pZCBkcHVf cGxhbmVfZ2V0X2N0bF9mbHVzaChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRwdV9o d19jdGwgKmN0bCwKPiAgCQl1MzIgKmZsdXNoX3NzcHApCj4gIHsKPiAtCXN0cnVjdCBkcHVfcGxh bmVfc3RhdGUgKnBzdGF0ZTsKPiAtCj4gLQlpZiAoIXBsYW5lIHx8ICFmbHVzaF9zc3BwKSB7Cj4g LQkJRFBVX0VSUk9SKCJpbnZhbGlkIHBhcmFtZXRlcnNcbiIpOwo+IC0JCXJldHVybjsKPiAtCX0K PiAtCj4gLQlwc3RhdGUgPSB0b19kcHVfcGxhbmVfc3RhdGUocGxhbmUtPnN0YXRlKTsKPiAtCj4g IAkqZmx1c2hfc3NwcCA9IGN0bC0+b3BzLmdldF9iaXRtYXNrX3NzcHAoY3RsLCBkcHVfcGxhbmVf cGlwZShwbGFuZSkpOwo+ICB9Cj4gIAo+IEBAIC0xMzg5LDggKzEyNTEsNyBAQCBzdGF0aWMgdm9p ZCBkcHVfcGxhbmVfZGVzdHJveShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKPiAgCQkvKiB0aGlz IHdpbGwgZGVzdHJveSB0aGUgc3RhdGVzIGFzIHdlbGwgKi8KPiAgCQlkcm1fcGxhbmVfY2xlYW51 cChwbGFuZSk7Cj4gIAo+IC0JCWlmIChwZHB1LT5waXBlX2h3KQo+IC0JCQlkcHVfaHdfc3NwcF9k ZXN0cm95KHBkcHUtPnBpcGVfaHcpOwo+ICsJCWRwdV9od19zc3BwX2Rlc3Ryb3kocGRwdS0+cGlw ZV9odyk7Cj4gIAo+ICAJCWtmcmVlKHBkcHUpOwo+ICAJfQo+IEBAIC0xNzM3LDI4ICsxNTk4LDEx IEBAIHN0cnVjdCBkcm1fcGxhbmUgKmRwdV9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSA9IE5VTEwsICptYXN0ZXJfcGxhbmUgPSBO VUxMOwo+ICAJY29uc3Qgc3RydWN0IGRwdV9mb3JtYXRfZXh0ZW5kZWQgKmZvcm1hdF9saXN0Owo+ ICAJc3RydWN0IGRwdV9wbGFuZSAqcGRwdTsKPiAtCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnBy aXY7Cj4gLQlzdHJ1Y3QgZHB1X2ttcyAqa21zOwo+ICsJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAq cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHB1X2ttcyAqa21zID0gdG9fZHB1 X2ttcyhwcml2LT5rbXMpOwo+ICAJaW50IHpwb3NfbWF4ID0gRFBVX1pQT1NfTUFYOwo+ICAJaW50 IHJldCA9IC1FSU5WQUw7Cj4gIAo+IC0JaWYgKCFkZXYpIHsKPiAtCQlEUFVfRVJST1IoIlsldV1k ZXZpY2UgaXMgTlVMTFxuIiwgcGlwZSk7Cj4gLQkJZ290byBleGl0Owo+IC0JfQo+IC0KPiAtCXBy aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0JaWYgKCFwcml2KSB7Cj4gLQkJRFBVX0VSUk9SKCJb JXVdcHJpdmF0ZSBkYXRhIGlzIE5VTExcbiIsIHBpcGUpOwo+IC0JCWdvdG8gZXhpdDsKPiAtCX0K PiAtCj4gLQlpZiAoIXByaXYtPmttcykgewo+IC0JCURQVV9FUlJPUigiWyV1XWludmFsaWQgS01T IHJlZmVyZW5jZVxuIiwgcGlwZSk7Cj4gLQkJZ290byBleGl0Owo+IC0JfQo+IC0Ja21zID0gdG9f ZHB1X2ttcyhwcml2LT5rbXMpOwo+IC0KPiAgCWlmICgha21zLT5jYXRhbG9nKSB7CgpGcm9tIGEg Y3Vyc29yeSBnbGFuY2UgaXQgc2VlbXMgdGhhdCBtYXliZSBrbXMtPmNhdGFsb2cgaXMgYWx3YXlz IHZhbGlkIGJ1dAp0aGF0IGFzc3VtcHRpb24gc2hvdWxkIGJlIGRvdWJsZSBjaGVja2VkLgoKPiAg CQlEUFVfRVJST1IoIlsldV1pbnZhbGlkIGNhdGFsb2cgcmVmZXJlbmNlXG4iLCBwaXBlKTsKPiAg CQlnb3RvIGV4aXQ7Cj4gLS0gCj4gMi4xOS4wLjQ0NC5nMTgyNDJkYTdlZi1nb29nCgotLSAKVGhl IFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIENvZGUgQXVy b3JhIEZvcnVtLAphIExpbnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0Cl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWls aW5nIGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=