From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH v1 1/4] drm/msm/gpu: Move zap shader loading to adreno Date: Tue, 12 Mar 2019 12:13:39 -0600 Message-ID: <1552414422-9568-2-git-send-email-jcrouse@codeaurora.org> References: <1552414422-9568-1-git-send-email-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1552414422-9568-1-git-send-email-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Douglas Anderson , Kees Cook , Jonathan Marek , David Airlie , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Sharat Masetty , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Bjorn Andersson , Rob Clark , Mamta Shukla , Daniel Vetter , Sean Paul List-Id: linux-arm-msm@vger.kernel.org YTV4eCBhbmQgYTZ4eCBib3RoIHNoYXJlIChtb3N0bHkpIHRoZSBzYW1lIGNvZGUgdG8gbG9hZCB0 aGUgemFwIHNoYWRlciBhbmQKYnJpbmcgdGhlIEdQVSBvdXQgb2Ygc2VjdXJlIG1vZGUuIE1vdmUg dGhlIGZvcm1lcmx5IDV4eCBzcGVjaWZpYyBjb2RlIHRvCmFkcmVubyB0byBtYWtlIGl0IGF2YWls YWJsZSBmb3IgYTZ4eCB0b28uCgpTaWduZWQtb2ZmLWJ5OiBKb3JkYW4gQ3JvdXNlIDxqY3JvdXNl QGNvZGVhdXJvcmEub3JnPgotLS0KCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNXh4X2dw dS5jICAgfCAxMDkgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMgfCAxMTMgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19ncHUuaCB8ICAgNiAr KwogMyBmaWxlcyBjaGFuZ2VkLCAxMjAgaW5zZXJ0aW9ucygrKSwgMTA4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E1eHhfZ3B1LmMgYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNXh4X2dwdS5jCmluZGV4IGQ1ZjVlNTYuLmU1ZmNlZmEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E1eHhfZ3B1LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTV4eF9ncHUuYwpAQCAtMTUsOSArMTUsNiBAQAog I2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPgogI2lu Y2x1ZGUgPGxpbnV4L3Fjb21fc2NtLmg+Ci0jaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4K LSNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+Ci0jaW5jbHVkZSA8bGludXgvc29jL3Fjb20v bWR0X2xvYWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L3BtX29wcC5oPgogI2luY2x1ZGUgPGxpbnV4 L252bWVtLWNvbnN1bWVyLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgpAQCAtMzAsOTQgKzI3 LDYgQEAgc3RhdGljIHZvaWQgYTV4eF9kdW1wKHN0cnVjdCBtc21fZ3B1ICpncHUpOwogCiAjZGVm aW5lIEdQVV9QQVNfSUQgMTMKIAotc3RhdGljIGludCB6YXBfc2hhZGVyX2xvYWRfbWR0KHN0cnVj dCBtc21fZ3B1ICpncHUsIGNvbnN0IGNoYXIgKmZ3bmFtZSkKLXsKLQlzdHJ1Y3QgZGV2aWNlICpk ZXYgPSAmZ3B1LT5wZGV2LT5kZXY7Ci0JY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKLQlzdHJ1 Y3QgZGV2aWNlX25vZGUgKm5wOwotCXN0cnVjdCByZXNvdXJjZSByOwotCXBoeXNfYWRkcl90IG1l bV9waHlzOwotCXNzaXplX3QgbWVtX3NpemU7Ci0Jdm9pZCAqbWVtX3JlZ2lvbiA9IE5VTEw7Ci0J aW50IHJldDsKLQotCWlmICghSVNfRU5BQkxFRChDT05GSUdfQVJDSF9RQ09NKSkKLQkJcmV0dXJu IC1FSU5WQUw7Ci0KLQlucCA9IG9mX2dldF9jaGlsZF9ieV9uYW1lKGRldi0+b2Zfbm9kZSwgInph cC1zaGFkZXIiKTsKLQlpZiAoIW5wKQotCQlyZXR1cm4gLUVOT0RFVjsKLQotCW5wID0gb2ZfcGFy c2VfcGhhbmRsZShucCwgIm1lbW9yeS1yZWdpb24iLCAwKTsKLQlpZiAoIW5wKQotCQlyZXR1cm4g LUVJTlZBTDsKLQotCXJldCA9IG9mX2FkZHJlc3NfdG9fcmVzb3VyY2UobnAsIDAsICZyKTsKLQlp ZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JbWVtX3BoeXMgPSByLnN0YXJ0OwotCW1lbV9zaXpl ID0gcmVzb3VyY2Vfc2l6ZSgmcik7Ci0KLQkvKiBSZXF1ZXN0IHRoZSBNRFQgZmlsZSBmb3IgdGhl IGZpcm13YXJlICovCi0JZncgPSBhZHJlbm9fcmVxdWVzdF9mdyh0b19hZHJlbm9fZ3B1KGdwdSks IGZ3bmFtZSk7Ci0JaWYgKElTX0VSUihmdykpIHsKLQkJRFJNX0RFVl9FUlJPUihkZXYsICJVbmFi bGUgdG8gbG9hZCAlc1xuIiwgZnduYW1lKTsKLQkJcmV0dXJuIFBUUl9FUlIoZncpOwotCX0KLQot CS8qIEZpZ3VyZSBvdXQgaG93IG11Y2ggbWVtb3J5IHdlIG5lZWQgKi8KLQltZW1fc2l6ZSA9IHFj b21fbWR0X2dldF9zaXplKGZ3KTsKLQlpZiAobWVtX3NpemUgPCAwKSB7Ci0JCXJldCA9IG1lbV9z aXplOwotCQlnb3RvIG91dDsKLQl9Ci0KLQkvKiBBbGxvY2F0ZSBtZW1vcnkgZm9yIHRoZSBmaXJt d2FyZSBpbWFnZSAqLwotCW1lbV9yZWdpb24gPSBtZW1yZW1hcChtZW1fcGh5cywgbWVtX3NpemUs ICBNRU1SRU1BUF9XQyk7Ci0JaWYgKCFtZW1fcmVnaW9uKSB7Ci0JCXJldCA9IC1FTk9NRU07Ci0J CWdvdG8gb3V0OwotCX0KLQotCS8qCi0JICogTG9hZCB0aGUgcmVzdCBvZiB0aGUgTURUCi0JICoK LQkgKiBOb3RlIHRoYXQgd2UgY291bGQgYmUgZGVhbGluZyB3aXRoIHR3byBkaWZmZXJlbnQgcGF0 aHMsIHNpbmNlCi0JICogd2l0aCB1cHN0cmVhbSBsaW51eC1maXJtd2FyZSBpdCB3b3VsZCBiZSBp biBhIHFjb20vIHN1YmRpci4uCi0JICogYWRyZW5vX3JlcXVlc3RfZncoKSBoYW5kbGVzIHRoaXMs IGJ1dCBxY29tX21kdF9sb2FkKCkgZG9lcwotCSAqIG5vdC4gIEJ1dCBzaW5jZSB3ZSd2ZSBhbHJl YWR5IGdvdHRlbiB0aHJ1IGFkcmVub19yZXF1ZXN0X2Z3KCkKLQkgKiB3ZSBrbm93IHdoaWNoIG9m IHRoZSB0d28gY2FzZXMgaXQgaXM6Ci0JICovCi0JaWYgKHRvX2FkcmVub19ncHUoZ3B1KS0+Znds b2MgPT0gRldfTE9DQVRJT05fTEVHQUNZKSB7Ci0JCXJldCA9IHFjb21fbWR0X2xvYWQoZGV2LCBm dywgZnduYW1lLCBHUFVfUEFTX0lELAotCQkJCW1lbV9yZWdpb24sIG1lbV9waHlzLCBtZW1fc2l6 ZSwgTlVMTCk7Ci0JfSBlbHNlIHsKLQkJY2hhciAqbmV3bmFtZTsKLQotCQluZXduYW1lID0ga2Fz cHJpbnRmKEdGUF9LRVJORUwsICJxY29tLyVzIiwgZnduYW1lKTsKLQotCQlyZXQgPSBxY29tX21k dF9sb2FkKGRldiwgZncsIG5ld25hbWUsIEdQVV9QQVNfSUQsCi0JCQkJbWVtX3JlZ2lvbiwgbWVt X3BoeXMsIG1lbV9zaXplLCBOVUxMKTsKLQkJa2ZyZWUobmV3bmFtZSk7Ci0JfQotCWlmIChyZXQp Ci0JCWdvdG8gb3V0OwotCi0JLyogU2VuZCB0aGUgaW1hZ2UgdG8gdGhlIHNlY3VyZSB3b3JsZCAq LwotCXJldCA9IHFjb21fc2NtX3Bhc19hdXRoX2FuZF9yZXNldChHUFVfUEFTX0lEKTsKLQlpZiAo cmV0KQotCQlEUk1fREVWX0VSUk9SKGRldiwgIlVuYWJsZSB0byBhdXRob3JpemUgdGhlIGltYWdl XG4iKTsKLQotb3V0OgotCWlmIChtZW1fcmVnaW9uKQotCQltZW11bm1hcChtZW1fcmVnaW9uKTsK LQotCXJlbGVhc2VfZmlybXdhcmUoZncpOwotCi0JcmV0dXJuIHJldDsKLX0KLQogc3RhdGljIHZv aWQgYTV4eF9mbHVzaChzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1Y3QgbXNtX3JpbmdidWZmZXIg KnJpbmcpCiB7CiAJc3RydWN0IGFkcmVub19ncHUgKmFkcmVub19ncHUgPSB0b19hZHJlbm9fZ3B1 KGdwdSk7CkBAIC01NjMsOCArNDcyLDYgQEAgc3RhdGljIGludCBhNXh4X3phcF9zaGFkZXJfcmVz dW1lKHN0cnVjdCBtc21fZ3B1ICpncHUpCiBzdGF0aWMgaW50IGE1eHhfemFwX3NoYWRlcl9pbml0 KHN0cnVjdCBtc21fZ3B1ICpncHUpCiB7CiAJc3RhdGljIGJvb2wgbG9hZGVkOwotCXN0cnVjdCBh ZHJlbm9fZ3B1ICphZHJlbm9fZ3B1ID0gdG9fYWRyZW5vX2dwdShncHUpOwotCXN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYgPSBncHUtPnBkZXY7CiAJaW50IHJldDsKIAogCS8qCkBAIC01NzQs MjMgKzQ4MSw5IEBAIHN0YXRpYyBpbnQgYTV4eF96YXBfc2hhZGVyX2luaXQoc3RydWN0IG1zbV9n cHUgKmdwdSkKIAlpZiAobG9hZGVkKQogCQlyZXR1cm4gYTV4eF96YXBfc2hhZGVyX3Jlc3VtZShn cHUpOwogCi0JLyogV2UgbmVlZCBTQ00gdG8gYmUgYWJsZSB0byBsb2FkIHRoZSBmaXJtd2FyZSAq LwotCWlmICghcWNvbV9zY21faXNfYXZhaWxhYmxlKCkpIHsKLQkJRFJNX0RFVl9FUlJPUigmcGRl di0+ZGV2LCAiU0NNIGlzIG5vdCBhdmFpbGFibGVcbiIpOwotCQlyZXR1cm4gLUVQUk9CRV9ERUZF UjsKLQl9Ci0KLQkvKiBFYWNoIEdQVSBoYXMgYSB0YXJnZXQgc3BlY2lmaWMgemFwIHNoYWRlciBm aXJtd2FyZSBuYW1lIHRvIHVzZSAqLwotCWlmICghYWRyZW5vX2dwdS0+aW5mby0+emFwZncpIHsK LQkJRFJNX0RFVl9FUlJPUigmcGRldi0+ZGV2LAotCQkJIlphcCBzaGFkZXIgZmlybXdhcmUgZmls ZSBub3Qgc3BlY2lmaWVkIGZvciB0aGlzIHRhcmdldFxuIik7Ci0JCXJldHVybiAtRU5PREVWOwot CX0KLQotCXJldCA9IHphcF9zaGFkZXJfbG9hZF9tZHQoZ3B1LCBhZHJlbm9fZ3B1LT5pbmZvLT56 YXBmdyk7CisJcmV0ID0gYWRyZW5vX3phcF9zaGFkZXJfbG9hZChncHUsIEdQVV9QQVNfSUQpOwog CiAJbG9hZGVkID0gIXJldDsKLQogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19ncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v YWRyZW5vL2FkcmVub19ncHUuYwppbmRleCAyNzg5ODQ3Li5hOWViNThjIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5jCkBAIC0xOSwxMyArMTksMTI2IEBACiAKICNpbmNs dWRlIDxsaW51eC9hc2NpaTg1Lmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJjb25uZWN0Lmg+Cisj aW5jbHVkZSA8bGludXgvcWNvbV9zY20uaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNp bmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+CiAjaW5jbHVkZSA8bGludXgvcG1fb3BwLmg+CiAj aW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NvYy9xY29tL21kdF9sb2Fk ZXIuaD4KICNpbmNsdWRlICJhZHJlbm9fZ3B1LmgiCiAjaW5jbHVkZSAibXNtX2dlbS5oIgogI2lu Y2x1ZGUgIm1zbV9tbXUuaCIKIAorc3RhdGljIGludCB6YXBfc2hhZGVyX2xvYWRfbWR0KHN0cnVj dCBtc21fZ3B1ICpncHUsIGNvbnN0IGNoYXIgKmZ3bmFtZSwKKwkJdTMyIHBhc2lkKQoreworCXN0 cnVjdCBkZXZpY2UgKmRldiA9ICZncHUtPnBkZXYtPmRldjsKKwljb25zdCBzdHJ1Y3QgZmlybXdh cmUgKmZ3OworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnA7CisJc3RydWN0IHJlc291cmNlIHI7CisJ cGh5c19hZGRyX3QgbWVtX3BoeXM7CisJc3NpemVfdCBtZW1fc2l6ZTsKKwl2b2lkICptZW1fcmVn aW9uID0gTlVMTDsKKwlpbnQgcmV0OworCisJaWYgKCFJU19FTkFCTEVEKENPTkZJR19BUkNIX1FD T00pKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCW5wID0gb2ZfZ2V0X2NoaWxkX2J5X25hbWUoZGV2 LT5vZl9ub2RlLCAiemFwLXNoYWRlciIpOworCWlmICghbnApCisJCXJldHVybiAtRU5PREVWOwor CisJbnAgPSBvZl9wYXJzZV9waGFuZGxlKG5wLCAibWVtb3J5LXJlZ2lvbiIsIDApOworCWlmICgh bnApCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0ID0gb2ZfYWRkcmVzc190b19yZXNvdXJjZShu cCwgMCwgJnIpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwltZW1fcGh5cyA9IHIuc3Rh cnQ7CisJbWVtX3NpemUgPSByZXNvdXJjZV9zaXplKCZyKTsKKworCS8qIFJlcXVlc3QgdGhlIE1E VCBmaWxlIGZvciB0aGUgZmlybXdhcmUgKi8KKwlmdyA9IGFkcmVub19yZXF1ZXN0X2Z3KHRvX2Fk cmVub19ncHUoZ3B1KSwgZnduYW1lKTsKKwlpZiAoSVNfRVJSKGZ3KSkgeworCQlEUk1fREVWX0VS Uk9SKGRldiwgIlVuYWJsZSB0byBsb2FkICVzXG4iLCBmd25hbWUpOworCQlyZXR1cm4gUFRSX0VS Uihmdyk7CisJfQorCisJLyogRmlndXJlIG91dCBob3cgbXVjaCBtZW1vcnkgd2UgbmVlZCAqLwor CW1lbV9zaXplID0gcWNvbV9tZHRfZ2V0X3NpemUoZncpOworCWlmIChtZW1fc2l6ZSA8IDApIHsK KwkJcmV0ID0gbWVtX3NpemU7CisJCWdvdG8gb3V0OworCX0KKworCS8qIEFsbG9jYXRlIG1lbW9y eSBmb3IgdGhlIGZpcm13YXJlIGltYWdlICovCisJbWVtX3JlZ2lvbiA9IG1lbXJlbWFwKG1lbV9w aHlzLCBtZW1fc2l6ZSwgIE1FTVJFTUFQX1dDKTsKKwlpZiAoIW1lbV9yZWdpb24pIHsKKwkJcmV0 ID0gLUVOT01FTTsKKwkJZ290byBvdXQ7CisJfQorCisJLyoKKwkgKiBMb2FkIHRoZSByZXN0IG9m IHRoZSBNRFQKKwkgKgorCSAqIE5vdGUgdGhhdCB3ZSBjb3VsZCBiZSBkZWFsaW5nIHdpdGggdHdv IGRpZmZlcmVudCBwYXRocywgc2luY2UKKwkgKiB3aXRoIHVwc3RyZWFtIGxpbnV4LWZpcm13YXJl IGl0IHdvdWxkIGJlIGluIGEgcWNvbS8gc3ViZGlyLi4KKwkgKiBhZHJlbm9fcmVxdWVzdF9mdygp IGhhbmRsZXMgdGhpcywgYnV0IHFjb21fbWR0X2xvYWQoKSBkb2VzCisJICogbm90LiAgQnV0IHNp bmNlIHdlJ3ZlIGFscmVhZHkgZ290dGVuIHRocm91Z2ggYWRyZW5vX3JlcXVlc3RfZncoKQorCSAq IHdlIGtub3cgd2hpY2ggb2YgdGhlIHR3byBjYXNlcyBpdCBpczoKKwkgKi8KKwlpZiAodG9fYWRy ZW5vX2dwdShncHUpLT5md2xvYyA9PSBGV19MT0NBVElPTl9MRUdBQ1kpIHsKKwkJcmV0ID0gcWNv bV9tZHRfbG9hZChkZXYsIGZ3LCBmd25hbWUsIHBhc2lkLAorCQkJCW1lbV9yZWdpb24sIG1lbV9w aHlzLCBtZW1fc2l6ZSwgTlVMTCk7CisJfSBlbHNlIHsKKwkJY2hhciAqbmV3bmFtZTsKKworCQlu ZXduYW1lID0ga2FzcHJpbnRmKEdGUF9LRVJORUwsICJxY29tLyVzIiwgZnduYW1lKTsKKworCQly ZXQgPSBxY29tX21kdF9sb2FkKGRldiwgZncsIG5ld25hbWUsIHBhc2lkLAorCQkJCW1lbV9yZWdp b24sIG1lbV9waHlzLCBtZW1fc2l6ZSwgTlVMTCk7CisJCWtmcmVlKG5ld25hbWUpOworCX0KKwlp ZiAocmV0KQorCQlnb3RvIG91dDsKKworCS8qIFNlbmQgdGhlIGltYWdlIHRvIHRoZSBzZWN1cmUg d29ybGQgKi8KKwlyZXQgPSBxY29tX3NjbV9wYXNfYXV0aF9hbmRfcmVzZXQocGFzaWQpOworCWlm IChyZXQpCisJCURSTV9ERVZfRVJST1IoZGV2LCAiVW5hYmxlIHRvIGF1dGhvcml6ZSB0aGUgaW1h Z2VcbiIpOworCitvdXQ6CisJaWYgKG1lbV9yZWdpb24pCisJCW1lbXVubWFwKG1lbV9yZWdpb24p OworCisJcmVsZWFzZV9maXJtd2FyZShmdyk7CisKKwlyZXR1cm4gcmV0OworfQorCitpbnQgYWRy ZW5vX3phcF9zaGFkZXJfbG9hZChzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCB1MzIgcGFzaWQpCit7CisJ c3RydWN0IGFkcmVub19ncHUgKmFkcmVub19ncHUgPSB0b19hZHJlbm9fZ3B1KGdwdSk7CisJc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IGdwdS0+cGRldjsKKworCS8qIFdlIG5lZWQgU0NN IHRvIGJlIGFibGUgdG8gbG9hZCB0aGUgZmlybXdhcmUgKi8KKwlpZiAoIXFjb21fc2NtX2lzX2F2 YWlsYWJsZSgpKSB7CisJCURSTV9ERVZfRVJST1IoJnBkZXYtPmRldiwgIlNDTSBpcyBub3QgYXZh aWxhYmxlXG4iKTsKKwkJcmV0dXJuIC1FUFJPQkVfREVGRVI7CisJfQorCisJLyogRWFjaCBHUFUg aGFzIGEgdGFyZ2V0IHNwZWNpZmljIHphcCBzaGFkZXIgZmlybXdhcmUgbmFtZSB0byB1c2UgKi8K KwlpZiAoIWFkcmVub19ncHUtPmluZm8tPnphcGZ3KSB7CisJCURSTV9ERVZfRVJST1IoJnBkZXYt PmRldiwKKwkJCSJaYXAgc2hhZGVyIGZpcm13YXJlIGZpbGUgbm90IHNwZWNpZmllZCBmb3IgdGhp cyB0YXJnZXRcbiIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlyZXR1cm4gemFwX3NoYWRl cl9sb2FkX21kdChncHUsIGFkcmVub19ncHUtPmluZm8tPnphcGZ3LCBwYXNpZCk7Cit9CisKIGlu dCBhZHJlbm9fZ2V0X3BhcmFtKHN0cnVjdCBtc21fZ3B1ICpncHUsIHVpbnQzMl90IHBhcmFtLCB1 aW50NjRfdCAqdmFsdWUpCiB7CiAJc3RydWN0IGFkcmVub19ncHUgKmFkcmVub19ncHUgPSB0b19h ZHJlbm9fZ3B1KGdwdSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9h ZHJlbm9fZ3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmgKaW5k ZXggNWRiNDU5Yi4uMDkyNTYwNmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRy ZW5vL2FkcmVub19ncHUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9f Z3B1LmgKQEAgLTI1Miw2ICsyNTIsMTIgQEAgdm9pZCBhZHJlbm9fZ3B1X3N0YXRlX2Rlc3Ryb3ko c3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRlKTsKIGludCBhZHJlbm9fZ3B1X3N0YXRlX2dldChz dHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqc3RhdGUpOwogaW50IGFk cmVub19ncHVfc3RhdGVfcHV0KHN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZSk7CiAKKy8qCisg KiBGb3IgYTV4eCBhbmQgYTZ4eCB0YXJnZXRzIGxvYWQgdGhlIHphcCBzaGFkZXIgdGhhdCBpcyB1 c2VkIHRvIHB1bGwgdGhlIEdQVQorICogb3V0IG9mIHNlY3VyZSBtb2RlCisgKi8KK2ludCBhZHJl bm9femFwX3NoYWRlcl9sb2FkKHN0cnVjdCBtc21fZ3B1ICpncHUsIHUzMiBwYXNpZCk7CisKIC8q IHJpbmdidWZmZXIgaGVscGVycyAodGhlIHBhcnRzIHRoYXQgYXJlIGFkcmVubyBzcGVjaWZpYykg Ki8KIAogc3RhdGljIGlubGluZSB2b2lkCi0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJl bm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZnJlZWRyZW5v