From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Hellwig Subject: [PATCH 25/44] arm: implement ->mapping_error Date: Fri, 16 Jun 2017 20:10:40 +0200 Message-ID: <20170616181059.19206-26-hch__7388.09559629789$1497636809$gmane$org@lst.de> References: <20170616181059.19206-1-hch@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dLvjd-0000Yn-77 for xen-devel@lists.xenproject.org; Fri, 16 Jun 2017 18:12:41 +0000 In-Reply-To: <20170616181059.19206-1-hch@lst.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: x86@kernel.org, linux-arm-kernel@lists.infradead.org, xen-devel@lists.xenproject.org, linux-c6x-dev@linux-c6x.org, linux-hexagon@vger.kernel.org, linux-ia64@vger.kernel.org, linux-mips@linux-mips.org, openrisc@lists.librecores.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-xtensa@linux-xtensa.org, dmaengine@vger.kernel.org, linux-tegra@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org, iommu@lists.linux-foundation.org, netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org List-Id: xen-devel@lists.xenproject.org RE1BX0VSUk9SX0NPREUgaXMgZ29pbmcgdG8gZ28gYXdheSwgc28gZG9uJ3QgcmVseSBvbiBpdC4K ClNpZ25lZC1vZmYtYnk6IENocmlzdG9waCBIZWxsd2lnIDxoY2hAbHN0LmRlPgotLS0KIGFyY2gv YXJtL2NvbW1vbi9kbWFib3VuY2UuYyAgICAgICAgfCAxMyArKysrKysrKystLS0KIGFyY2gvYXJt L2luY2x1ZGUvYXNtL2RtYS1pb21tdS5oICAgfCAgMiArKwogYXJjaC9hcm0vaW5jbHVkZS9hc20v ZG1hLW1hcHBpbmcuaCB8ICAxIC0KIGFyY2gvYXJtL21tL2RtYS1tYXBwaW5nLmMgICAgICAgICAg fCA0MSArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFu Z2VkLCAzOCBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNo L2FybS9jb21tb24vZG1hYm91bmNlLmMgYi9hcmNoL2FybS9jb21tb24vZG1hYm91bmNlLmMKaW5k ZXggOWIxYjdiZTJlYzBlLi40MDYwMzc4ZTBmMTQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbW1v bi9kbWFib3VuY2UuYworKysgYi9hcmNoL2FybS9jb21tb24vZG1hYm91bmNlLmMKQEAgLTMzLDYg KzMzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9zY2F0dGVybGlzdC5oPgogCiAjaW5jbHVkZSA8YXNt L2NhY2hlZmx1c2guaD4KKyNpbmNsdWRlIDxhc20vZG1hLWlvbW11Lmg+CiAKICN1bmRlZiBTVEFU UwogCkBAIC0yNTYsNyArMjU3LDcgQEAgc3RhdGljIGlubGluZSBkbWFfYWRkcl90IG1hcF9zaW5n bGUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpwdHIsIHNpemVfdCBzaXplLAogCWlmIChidWYg PT0gTlVMTCkgewogCQlkZXZfZXJyKGRldiwgIiVzOiB1bmFibGUgdG8gbWFwIHVuc2FmZSBidWZm ZXIgJXAhXG4iLAogCQkgICAgICAgX19mdW5jX18sIHB0cik7Ci0JCXJldHVybiBETUFfRVJST1Jf Q09ERTsKKwkJcmV0dXJuIEFSTV9NQVBQSU5HX0VSUk9SOwogCX0KIAogCWRldl9kYmcoZGV2LCAi JXM6IHVuc2FmZSBidWZmZXIgJXAgKGRtYT0lI3gpIG1hcHBlZCB0byAlcCAoZG1hPSUjeClcbiIs CkBAIC0zMjYsNyArMzI3LDcgQEAgc3RhdGljIGRtYV9hZGRyX3QgZG1hYm91bmNlX21hcF9wYWdl KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnBhZ2UsCiAKIAlyZXQgPSBuZWVkc19i b3VuY2UoZGV2LCBkbWFfYWRkciwgc2l6ZSk7CiAJaWYgKHJldCA8IDApCi0JCXJldHVybiBETUFf RVJST1JfQ09ERTsKKwkJcmV0dXJuIEFSTV9NQVBQSU5HX0VSUk9SOwogCiAJaWYgKHJldCA9PSAw KSB7CiAJCWFybV9kbWFfb3BzLnN5bmNfc2luZ2xlX2Zvcl9kZXZpY2UoZGV2LCBkbWFfYWRkciwg c2l6ZSwgZGlyKTsKQEAgLTMzNSw3ICszMzYsNyBAQCBzdGF0aWMgZG1hX2FkZHJfdCBkbWFib3Vu Y2VfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAogCWlm IChQYWdlSGlnaE1lbShwYWdlKSkgewogCQlkZXZfZXJyKGRldiwgIkRNQSBidWZmZXIgYm91bmNp bmcgb2YgSElHSE1FTSBwYWdlcyBpcyBub3Qgc3VwcG9ydGVkXG4iKTsKLQkJcmV0dXJuIERNQV9F UlJPUl9DT0RFOworCQlyZXR1cm4gQVJNX01BUFBJTkdfRVJST1I7CiAJfQogCiAJcmV0dXJuIG1h cF9zaW5nbGUoZGV2LCBwYWdlX2FkZHJlc3MocGFnZSkgKyBvZmZzZXQsIHNpemUsIGRpciwgYXR0 cnMpOwpAQCAtNDUyLDYgKzQ1MywxMSBAQCBzdGF0aWMgaW50IGRtYWJvdW5jZV9zZXRfbWFzayhz dHJ1Y3QgZGV2aWNlICpkZXYsIHU2NCBkbWFfbWFzaykKIAlyZXR1cm4gYXJtX2RtYV9vcHMuc2V0 X2RtYV9tYXNrKGRldiwgZG1hX21hc2spOwogfQogCitzdGF0aWMgaW50IGRtYWJvdW5jZV9tYXBw aW5nX2Vycm9yKHN0cnVjdCBkZXZpY2UgKmRldiwgZG1hX2FkZHJfdCBkbWFfYWRkcikKK3sKKwly ZXR1cm4gYXJtX2RtYV9vcHMubWFwcGluZ19lcnJvcihkZXYsIGRtYV9hZGRyKTsKK30KKwogc3Rh dGljIGNvbnN0IHN0cnVjdCBkbWFfbWFwX29wcyBkbWFib3VuY2Vfb3BzID0gewogCS5hbGxvYwkJ CT0gYXJtX2RtYV9hbGxvYywKIAkuZnJlZQkJCT0gYXJtX2RtYV9mcmVlLApAQCAtNDY2LDYgKzQ3 Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX21hcF9vcHMgZG1hYm91bmNlX29wcyA9IHsK IAkuc3luY19zZ19mb3JfY3B1CT0gYXJtX2RtYV9zeW5jX3NnX2Zvcl9jcHUsCiAJLnN5bmNfc2df Zm9yX2RldmljZQk9IGFybV9kbWFfc3luY19zZ19mb3JfZGV2aWNlLAogCS5zZXRfZG1hX21hc2sJ CT0gZG1hYm91bmNlX3NldF9tYXNrLAorCS5tYXBwaW5nX2Vycm9yCQk9IGRtYWJvdW5jZV9tYXBw aW5nX2Vycm9yLAogfTsKIAogc3RhdGljIGludCBkbWFib3VuY2VfaW5pdF9wb29sKHN0cnVjdCBk bWFib3VuY2VfcG9vbCAqcG9vbCwgc3RydWN0IGRldmljZSAqZGV2LApkaWZmIC0tZ2l0IGEvYXJj aC9hcm0vaW5jbHVkZS9hc20vZG1hLWlvbW11LmggYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9kbWEt aW9tbXUuaAppbmRleCAyZWYyODJmOTY2NTEuLjM4OWEyNmExMGVhMyAxMDA2NDQKLS0tIGEvYXJj aC9hcm0vaW5jbHVkZS9hc20vZG1hLWlvbW11LmgKKysrIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20v ZG1hLWlvbW11LmgKQEAgLTksNiArOSw4IEBACiAjaW5jbHVkZSA8bGludXgva21lbWNoZWNrLmg+ CiAjaW5jbHVkZSA8bGludXgva3JlZi5oPgogCisjZGVmaW5lIEFSTV9NQVBQSU5HX0VSUk9SCQko fihkbWFfYWRkcl90KTB4MCkKKwogc3RydWN0IGRtYV9pb21tdV9tYXBwaW5nIHsKIAkvKiBpb21t dSBzcGVjaWZpYyBkYXRhICovCiAJc3RydWN0IGlvbW11X2RvbWFpbgkqZG9tYWluOwpkaWZmIC0t Z2l0IGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vZG1hLW1hcHBpbmcuaCBiL2FyY2gvYXJtL2luY2x1 ZGUvYXNtL2RtYS1tYXBwaW5nLmgKaW5kZXggNjgwZDNmMzg4OWU3Li41MmE4ZmQ1YThlZGIgMTAw NjQ0Ci0tLSBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2RtYS1tYXBwaW5nLmgKKysrIGIvYXJjaC9h cm0vaW5jbHVkZS9hc20vZG1hLW1hcHBpbmcuaApAQCAtMTIsNyArMTIsNiBAQAogI2luY2x1ZGUg PHhlbi94ZW4uaD4KICNpbmNsdWRlIDxhc20veGVuL2h5cGVydmlzb3IuaD4KIAotI2RlZmluZSBE TUFfRVJST1JfQ09ERQkofihkbWFfYWRkcl90KTB4MCkKIGV4dGVybiBjb25zdCBzdHJ1Y3QgZG1h X21hcF9vcHMgYXJtX2RtYV9vcHM7CiBleHRlcm4gY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzIGFy bV9jb2hlcmVudF9kbWFfb3BzOwogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tbS9kbWEtbWFwcGlu Zy5jIGIvYXJjaC9hcm0vbW0vZG1hLW1hcHBpbmcuYwppbmRleCBiZDgzYzUzMTgyOGEuLjhmMmM1 YThhOThmMCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbW0vZG1hLW1hcHBpbmcuYworKysgYi9hcmNo L2FybS9tbS9kbWEtbWFwcGluZy5jCkBAIC0xODAsNiArMTgwLDExIEBAIHN0YXRpYyB2b2lkIGFy bV9kbWFfc3luY19zaW5nbGVfZm9yX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJX19kbWFf cGFnZV9jcHVfdG9fZGV2KHBhZ2UsIG9mZnNldCwgc2l6ZSwgZGlyKTsKIH0KIAorc3RhdGljIGlu dCBhcm1fZG1hX21hcHBpbmdfZXJyb3Ioc3RydWN0IGRldmljZSAqZGV2LCBkbWFfYWRkcl90IGRt YV9hZGRyKQoreworCXJldHVybiBkbWFfYWRkciA9PSBBUk1fTUFQUElOR19FUlJPUjsKK30KKwog Y29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzIGFybV9kbWFfb3BzID0gewogCS5hbGxvYwkJCT0gYXJt X2RtYV9hbGxvYywKIAkuZnJlZQkJCT0gYXJtX2RtYV9mcmVlLApAQCAtMTkzLDYgKzE5OCw3IEBA IGNvbnN0IHN0cnVjdCBkbWFfbWFwX29wcyBhcm1fZG1hX29wcyA9IHsKIAkuc3luY19zaW5nbGVf Zm9yX2RldmljZQk9IGFybV9kbWFfc3luY19zaW5nbGVfZm9yX2RldmljZSwKIAkuc3luY19zZ19m b3JfY3B1CT0gYXJtX2RtYV9zeW5jX3NnX2Zvcl9jcHUsCiAJLnN5bmNfc2dfZm9yX2RldmljZQk9 IGFybV9kbWFfc3luY19zZ19mb3JfZGV2aWNlLAorCS5tYXBwaW5nX2Vycm9yCQk9IGFybV9kbWFf bWFwcGluZ19lcnJvciwKIH07CiBFWFBPUlRfU1lNQk9MKGFybV9kbWFfb3BzKTsKIApAQCAtMjEx LDYgKzIxNyw3IEBAIGNvbnN0IHN0cnVjdCBkbWFfbWFwX29wcyBhcm1fY29oZXJlbnRfZG1hX29w cyA9IHsKIAkuZ2V0X3NndGFibGUJCT0gYXJtX2RtYV9nZXRfc2d0YWJsZSwKIAkubWFwX3BhZ2UJ CT0gYXJtX2NvaGVyZW50X2RtYV9tYXBfcGFnZSwKIAkubWFwX3NnCQkJPSBhcm1fZG1hX21hcF9z ZywKKwkubWFwcGluZ19lcnJvcgkJPSBhcm1fZG1hX21hcHBpbmdfZXJyb3IsCiB9OwogRVhQT1JU X1NZTUJPTChhcm1fY29oZXJlbnRfZG1hX29wcyk7CiAKQEAgLTc5OSw3ICs4MDYsNyBAQCBzdGF0 aWMgdm9pZCAqX19kbWFfYWxsb2Moc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwgZG1h X2FkZHJfdCAqaGFuZGxlLAogCWdmcCAmPSB+KF9fR0ZQX0NPTVApOwogCWFyZ3MuZ2ZwID0gZ2Zw OwogCi0JKmhhbmRsZSA9IERNQV9FUlJPUl9DT0RFOworCSpoYW5kbGUgPSBBUk1fTUFQUElOR19F UlJPUjsKIAlhbGxvd2Jsb2NrID0gZ2ZwZmxhZ3NfYWxsb3dfYmxvY2tpbmcoZ2ZwKTsKIAljbWEg PSBhbGxvd2Jsb2NrID8gZGV2X2dldF9jbWFfYXJlYShkZXYpIDogZmFsc2U7CiAKQEAgLTEyNTQs NyArMTI2MSw3IEBAIHN0YXRpYyBpbmxpbmUgZG1hX2FkZHJfdCBfX2FsbG9jX2lvdmEoc3RydWN0 IGRtYV9pb21tdV9tYXBwaW5nICptYXBwaW5nLAogCWlmIChpID09IG1hcHBpbmctPm5yX2JpdG1h cHMpIHsKIAkJaWYgKGV4dGVuZF9pb21tdV9tYXBwaW5nKG1hcHBpbmcpKSB7CiAJCQlzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZtYXBwaW5nLT5sb2NrLCBmbGFncyk7Ci0JCQlyZXR1cm4gRE1BX0VS Uk9SX0NPREU7CisJCQlyZXR1cm4gQVJNX01BUFBJTkdfRVJST1I7CiAJCX0KIAogCQlzdGFydCA9 IGJpdG1hcF9maW5kX25leHRfemVyb19hcmVhKG1hcHBpbmctPmJpdG1hcHNbaV0sCkBAIC0xMjYy LDcgKzEyNjksNyBAQCBzdGF0aWMgaW5saW5lIGRtYV9hZGRyX3QgX19hbGxvY19pb3ZhKHN0cnVj dCBkbWFfaW9tbXVfbWFwcGluZyAqbWFwcGluZywKIAogCQlpZiAoc3RhcnQgPiBtYXBwaW5nLT5i aXRzKSB7CiAJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZtYXBwaW5nLT5sb2NrLCBmbGFncyk7 Ci0JCQlyZXR1cm4gRE1BX0VSUk9SX0NPREU7CisJCQlyZXR1cm4gQVJNX01BUFBJTkdfRVJST1I7 CiAJCX0KIAogCQliaXRtYXBfc2V0KG1hcHBpbmctPmJpdG1hcHNbaV0sIHN0YXJ0LCBjb3VudCk7 CkBAIC0xNDQ1LDcgKzE0NTIsNyBAQCBfX2lvbW11X2NyZWF0ZV9tYXBwaW5nKHN0cnVjdCBkZXZp Y2UgKmRldiwgc3RydWN0IHBhZ2UgKipwYWdlcywgc2l6ZV90IHNpemUsCiAJaW50IGk7CiAKIAlk bWFfYWRkciA9IF9fYWxsb2NfaW92YShtYXBwaW5nLCBzaXplKTsKLQlpZiAoZG1hX2FkZHIgPT0g RE1BX0VSUk9SX0NPREUpCisJaWYgKGRtYV9hZGRyID09IEFSTV9NQVBQSU5HX0VSUk9SKQogCQly ZXR1cm4gZG1hX2FkZHI7CiAKIAlpb3ZhID0gZG1hX2FkZHI7CkBAIC0xNDcyLDcgKzE0NzksNyBA QCBfX2lvbW11X2NyZWF0ZV9tYXBwaW5nKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBhZ2Ug KipwYWdlcywgc2l6ZV90IHNpemUsCiBmYWlsOgogCWlvbW11X3VubWFwKG1hcHBpbmctPmRvbWFp biwgZG1hX2FkZHIsIGlvdmEtZG1hX2FkZHIpOwogCV9fZnJlZV9pb3ZhKG1hcHBpbmcsIGRtYV9h ZGRyLCBzaXplKTsKLQlyZXR1cm4gRE1BX0VSUk9SX0NPREU7CisJcmV0dXJuIEFSTV9NQVBQSU5H X0VSUk9SOwogfQogCiBzdGF0aWMgaW50IF9faW9tbXVfcmVtb3ZlX21hcHBpbmcoc3RydWN0IGRl dmljZSAqZGV2LCBkbWFfYWRkcl90IGlvdmEsIHNpemVfdCBzaXplKQpAQCAtMTUzMyw3ICsxNTQw LDcgQEAgc3RhdGljIHZvaWQgKl9faW9tbXVfYWxsb2Nfc2ltcGxlKHN0cnVjdCBkZXZpY2UgKmRl diwgc2l6ZV90IHNpemUsIGdmcF90IGdmcCwKIAkJcmV0dXJuIE5VTEw7CiAKIAkqaGFuZGxlID0g X19pb21tdV9jcmVhdGVfbWFwcGluZyhkZXYsICZwYWdlLCBzaXplLCBhdHRycyk7Ci0JaWYgKCpo YW5kbGUgPT0gRE1BX0VSUk9SX0NPREUpCisJaWYgKCpoYW5kbGUgPT0gQVJNX01BUFBJTkdfRVJS T1IpCiAJCWdvdG8gZXJyX21hcHBpbmc7CiAKIAlyZXR1cm4gYWRkcjsKQEAgLTE1NjEsNyArMTU2 OCw3IEBAIHN0YXRpYyB2b2lkICpfX2FybV9pb21tdV9hbGxvY19hdHRycyhzdHJ1Y3QgZGV2aWNl ICpkZXYsIHNpemVfdCBzaXplLAogCXN0cnVjdCBwYWdlICoqcGFnZXM7CiAJdm9pZCAqYWRkciA9 IE5VTEw7CiAKLQkqaGFuZGxlID0gRE1BX0VSUk9SX0NPREU7CisJKmhhbmRsZSA9IEFSTV9NQVBQ SU5HX0VSUk9SOwogCXNpemUgPSBQQUdFX0FMSUdOKHNpemUpOwogCiAJaWYgKGNvaGVyZW50X2Zs YWcgID09IENPSEVSRU5UIHx8ICFnZnBmbGFnc19hbGxvd19ibG9ja2luZyhnZnApKQpAQCAtMTU4 Miw3ICsxNTg5LDcgQEAgc3RhdGljIHZvaWQgKl9fYXJtX2lvbW11X2FsbG9jX2F0dHJzKHN0cnVj dCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCiAJCXJldHVybiBOVUxMOwogCiAJKmhhbmRsZSA9 IF9faW9tbXVfY3JlYXRlX21hcHBpbmcoZGV2LCBwYWdlcywgc2l6ZSwgYXR0cnMpOwotCWlmICgq aGFuZGxlID09IERNQV9FUlJPUl9DT0RFKQorCWlmICgqaGFuZGxlID09IEFSTV9NQVBQSU5HX0VS Uk9SKQogCQlnb3RvIGVycl9idWZmZXI7CiAKIAlpZiAoYXR0cnMgJiBETUFfQVRUUl9OT19LRVJO RUxfTUFQUElORykKQEAgLTE3MzIsMTAgKzE3MzksMTAgQEAgc3RhdGljIGludCBfX21hcF9zZ19j aHVuayhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2csCiAJaW50IHBy b3Q7CiAKIAlzaXplID0gUEFHRV9BTElHTihzaXplKTsKLQkqaGFuZGxlID0gRE1BX0VSUk9SX0NP REU7CisJKmhhbmRsZSA9IEFSTV9NQVBQSU5HX0VSUk9SOwogCiAJaW92YV9iYXNlID0gaW92YSA9 IF9fYWxsb2NfaW92YShtYXBwaW5nLCBzaXplKTsKLQlpZiAoaW92YSA9PSBETUFfRVJST1JfQ09E RSkKKwlpZiAoaW92YSA9PSBBUk1fTUFQUElOR19FUlJPUikKIAkJcmV0dXJuIC1FTk9NRU07CiAK IAlmb3IgKGNvdW50ID0gMCwgcyA9IHNnOyBjb3VudCA8IChzaXplID4+IFBBR0VfU0hJRlQpOyBz ID0gc2dfbmV4dChzKSkgewpAQCAtMTc3NSw3ICsxNzgyLDcgQEAgc3RhdGljIGludCBfX2lvbW11 X21hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2csIGludCBu ZW50cywKIAlmb3IgKGkgPSAxOyBpIDwgbmVudHM7IGkrKykgewogCQlzID0gc2dfbmV4dChzKTsK IAotCQlzLT5kbWFfYWRkcmVzcyA9IERNQV9FUlJPUl9DT0RFOworCQlzLT5kbWFfYWRkcmVzcyA9 IEFSTV9NQVBQSU5HX0VSUk9SOwogCQlzLT5kbWFfbGVuZ3RoID0gMDsKIAogCQlpZiAocy0+b2Zm c2V0IHx8IChzaXplICYgflBBR0VfTUFTSykgfHwgc2l6ZSArIHMtPmxlbmd0aCA+IG1heCkgewpA QCAtMTk1MCw3ICsxOTU3LDcgQEAgc3RhdGljIGRtYV9hZGRyX3QgYXJtX2NvaGVyZW50X2lvbW11 X21hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnAKIAlpbnQgcmV0LCBw cm90LCBsZW4gPSBQQUdFX0FMSUdOKHNpemUgKyBvZmZzZXQpOwogCiAJZG1hX2FkZHIgPSBfX2Fs bG9jX2lvdmEobWFwcGluZywgbGVuKTsKLQlpZiAoZG1hX2FkZHIgPT0gRE1BX0VSUk9SX0NPREUp CisJaWYgKGRtYV9hZGRyID09IEFSTV9NQVBQSU5HX0VSUk9SKQogCQlyZXR1cm4gZG1hX2FkZHI7 CiAKIAlwcm90ID0gX19kbWFfaW5mb190b19wcm90KGRpciwgYXR0cnMpOwpAQCAtMTk2Miw3ICsx OTY5LDcgQEAgc3RhdGljIGRtYV9hZGRyX3QgYXJtX2NvaGVyZW50X2lvbW11X21hcF9wYWdlKHN0 cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnAKIAlyZXR1cm4gZG1hX2FkZHIgKyBvZmZz ZXQ7CiBmYWlsOgogCV9fZnJlZV9pb3ZhKG1hcHBpbmcsIGRtYV9hZGRyLCBsZW4pOwotCXJldHVy biBETUFfRVJST1JfQ09ERTsKKwlyZXR1cm4gQVJNX01BUFBJTkdfRVJST1I7CiB9CiAKIC8qKgpA QCAtMjA1Niw3ICsyMDYzLDcgQEAgc3RhdGljIGRtYV9hZGRyX3QgYXJtX2lvbW11X21hcF9yZXNv dXJjZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJc2l6ZV90IGxlbiA9IFBBR0VfQUxJR04oc2l6ZSAr IG9mZnNldCk7CiAKIAlkbWFfYWRkciA9IF9fYWxsb2NfaW92YShtYXBwaW5nLCBsZW4pOwotCWlm IChkbWFfYWRkciA9PSBETUFfRVJST1JfQ09ERSkKKwlpZiAoZG1hX2FkZHIgPT0gQVJNX01BUFBJ TkdfRVJST1IpCiAJCXJldHVybiBkbWFfYWRkcjsKIAogCXByb3QgPSBfX2RtYV9pbmZvX3RvX3By b3QoZGlyLCBhdHRycykgfCBJT01NVV9NTUlPOwpAQCAtMjA2OCw3ICsyMDc1LDcgQEAgc3RhdGlj IGRtYV9hZGRyX3QgYXJtX2lvbW11X21hcF9yZXNvdXJjZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJ cmV0dXJuIGRtYV9hZGRyICsgb2Zmc2V0OwogZmFpbDoKIAlfX2ZyZWVfaW92YShtYXBwaW5nLCBk bWFfYWRkciwgbGVuKTsKLQlyZXR1cm4gRE1BX0VSUk9SX0NPREU7CisJcmV0dXJuIEFSTV9NQVBQ SU5HX0VSUk9SOwogfQogCiAvKioKQEAgLTIxNDAsNiArMjE0Nyw4IEBAIGNvbnN0IHN0cnVjdCBk bWFfbWFwX29wcyBpb21tdV9vcHMgPSB7CiAKIAkubWFwX3Jlc291cmNlCQk9IGFybV9pb21tdV9t YXBfcmVzb3VyY2UsCiAJLnVubWFwX3Jlc291cmNlCQk9IGFybV9pb21tdV91bm1hcF9yZXNvdXJj ZSwKKworCS5tYXBwaW5nX2Vycm9yCQk9IGFybV9kbWFfbWFwcGluZ19lcnJvciwKIH07CiAKIGNv bnN0IHN0cnVjdCBkbWFfbWFwX29wcyBpb21tdV9jb2hlcmVudF9vcHMgPSB7CkBAIC0yMTU2LDYg KzIxNjUsOCBAQCBjb25zdCBzdHJ1Y3QgZG1hX21hcF9vcHMgaW9tbXVfY29oZXJlbnRfb3BzID0g ewogCiAJLm1hcF9yZXNvdXJjZQk9IGFybV9pb21tdV9tYXBfcmVzb3VyY2UsCiAJLnVubWFwX3Jl c291cmNlCT0gYXJtX2lvbW11X3VubWFwX3Jlc291cmNlLAorCisJLm1hcHBpbmdfZXJyb3IJCT0g YXJtX2RtYV9tYXBwaW5nX2Vycm9yLAogfTsKIAogLyoqCi0tIAoyLjExLjAKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2 ZWwK