From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Hellwig Subject: [PATCH 25/44] arm: implement ->mapping_error Date: Thu, 8 Jun 2017 15:25:50 +0200 Message-ID: <20170608132609.32662-26-hch@lst.de> References: <20170608132609.32662-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 1dIxTl-0004Wv-WC for xen-devel@lists.xenproject.org; Thu, 08 Jun 2017 13:28:02 +0000 In-Reply-To: <20170608132609.32662-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 YXJtL2NvbW1vbi9kbWFib3VuY2UuYyAgICAgICAgfCAxNiArKysrKysrKysrKystLS0KIGFyY2gv YXJtL2luY2x1ZGUvYXNtL2RtYS1pb21tdS5oICAgfCAgMiArKwogYXJjaC9hcm0vaW5jbHVkZS9h c20vZG1hLW1hcHBpbmcuaCB8ICAxIC0KIGFyY2gvYXJtL21tL2RtYS1tYXBwaW5nLmMgICAgICAg ICAgfCA0MSArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBj aGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9h cmNoL2FybS9jb21tb24vZG1hYm91bmNlLmMgYi9hcmNoL2FybS9jb21tb24vZG1hYm91bmNlLmMK aW5kZXggOWIxYjdiZTJlYzBlLi5iYWQ0NTczOTVmZjEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2Nv bW1vbi9kbWFib3VuY2UuYworKysgYi9hcmNoL2FybS9jb21tb24vZG1hYm91bmNlLmMKQEAgLTMz LDYgKzMzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9zY2F0dGVybGlzdC5oPgogCiAjaW5jbHVkZSA8 YXNtL2NhY2hlZmx1c2guaD4KKyNpbmNsdWRlIDxhc20vZG1hLWlvbW11Lmg+CiAKICN1bmRlZiBT VEFUUwogCkBAIC0yNTYsNyArMjU3LDcgQEAgc3RhdGljIGlubGluZSBkbWFfYWRkcl90IG1hcF9z aW5nbGUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpwdHIsIHNpemVfdCBzaXplLAogCWlmIChi dWYgPT0gTlVMTCkgewogCQlkZXZfZXJyKGRldiwgIiVzOiB1bmFibGUgdG8gbWFwIHVuc2FmZSBi dWZmZXIgJXAhXG4iLAogCQkgICAgICAgX19mdW5jX18sIHB0cik7Ci0JCXJldHVybiBETUFfRVJS T1JfQ09ERTsKKwkJcmV0dXJuIEFSTV9NQVBQSU5HX0VSUk9SOwogCX0KIAogCWRldl9kYmcoZGV2 LCAiJXM6IHVuc2FmZSBidWZmZXIgJXAgKGRtYT0lI3gpIG1hcHBlZCB0byAlcCAoZG1hPSUjeClc biIsCkBAIC0zMjYsNyArMzI3LDcgQEAgc3RhdGljIGRtYV9hZGRyX3QgZG1hYm91bmNlX21hcF9w YWdlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnBhZ2UsCiAKIAlyZXQgPSBuZWVk c19ib3VuY2UoZGV2LCBkbWFfYWRkciwgc2l6ZSk7CiAJaWYgKHJldCA8IDApCi0JCXJldHVybiBE TUFfRVJST1JfQ09ERTsKKwkJcmV0dXJuIEFSTV9NQVBQSU5HX0VSUk9SOwogCiAJaWYgKHJldCA9 PSAwKSB7CiAJCWFybV9kbWFfb3BzLnN5bmNfc2luZ2xlX2Zvcl9kZXZpY2UoZGV2LCBkbWFfYWRk ciwgc2l6ZSwgZGlyKTsKQEAgLTMzNSw3ICszMzYsNyBAQCBzdGF0aWMgZG1hX2FkZHJfdCBkbWFi b3VuY2VfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAog CWlmIChQYWdlSGlnaE1lbShwYWdlKSkgewogCQlkZXZfZXJyKGRldiwgIkRNQSBidWZmZXIgYm91 bmNpbmcgb2YgSElHSE1FTSBwYWdlcyBpcyBub3Qgc3VwcG9ydGVkXG4iKTsKLQkJcmV0dXJuIERN QV9FUlJPUl9DT0RFOworCQlyZXR1cm4gQVJNX01BUFBJTkdfRVJST1I7CiAJfQogCiAJcmV0dXJu IG1hcF9zaW5nbGUoZGV2LCBwYWdlX2FkZHJlc3MocGFnZSkgKyBvZmZzZXQsIHNpemUsIGRpciwg YXR0cnMpOwpAQCAtNDUyLDYgKzQ1MywxNCBAQCBzdGF0aWMgaW50IGRtYWJvdW5jZV9zZXRfbWFz ayhzdHJ1Y3QgZGV2aWNlICpkZXYsIHU2NCBkbWFfbWFzaykKIAlyZXR1cm4gYXJtX2RtYV9vcHMu c2V0X2RtYV9tYXNrKGRldiwgZG1hX21hc2spOwogfQogCitzdGF0aWMgaW50IGRtYWJvdW5jZV9t YXBwaW5nX2Vycm9yKHN0cnVjdCBkZXZpY2UgKmRldiwgZG1hX2FkZHJfdCBkbWFfYWRkcikKK3sK KwlpZiAoZGV2LT5hcmNoZGF0YS5kbWFib3VuY2UpCisJCXJldHVybiAwOworCisJcmV0dXJuIGFy bV9kbWFfb3BzLm1hcHBpbmdfZXJyb3IoZGV2LCBkbWFfYWRkcik7Cit9CisKIHN0YXRpYyBjb25z dCBzdHJ1Y3QgZG1hX21hcF9vcHMgZG1hYm91bmNlX29wcyA9IHsKIAkuYWxsb2MJCQk9IGFybV9k bWFfYWxsb2MsCiAJLmZyZWUJCQk9IGFybV9kbWFfZnJlZSwKQEAgLTQ2Niw2ICs0NzUsNyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzIGRtYWJvdW5jZV9vcHMgPSB7CiAJLnN5bmNf c2dfZm9yX2NwdQk9IGFybV9kbWFfc3luY19zZ19mb3JfY3B1LAogCS5zeW5jX3NnX2Zvcl9kZXZp Y2UJPSBhcm1fZG1hX3N5bmNfc2dfZm9yX2RldmljZSwKIAkuc2V0X2RtYV9tYXNrCQk9IGRtYWJv dW5jZV9zZXRfbWFzaywKKwkubWFwcGluZ19lcnJvcgkJPSBkbWFib3VuY2VfbWFwcGluZ19lcnJv ciwKIH07CiAKIHN0YXRpYyBpbnQgZG1hYm91bmNlX2luaXRfcG9vbChzdHJ1Y3QgZG1hYm91bmNl X3Bvb2wgKnBvb2wsIHN0cnVjdCBkZXZpY2UgKmRldiwKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2lu Y2x1ZGUvYXNtL2RtYS1pb21tdS5oIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vZG1hLWlvbW11LmgK aW5kZXggMmVmMjgyZjk2NjUxLi4zODlhMjZhMTBlYTMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2lu Y2x1ZGUvYXNtL2RtYS1pb21tdS5oCisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2RtYS1pb21t dS5oCkBAIC05LDYgKzksOCBAQAogI2luY2x1ZGUgPGxpbnV4L2ttZW1jaGVjay5oPgogI2luY2x1 ZGUgPGxpbnV4L2tyZWYuaD4KIAorI2RlZmluZSBBUk1fTUFQUElOR19FUlJPUgkJKH4oZG1hX2Fk ZHJfdCkweDApCisKIHN0cnVjdCBkbWFfaW9tbXVfbWFwcGluZyB7CiAJLyogaW9tbXUgc3BlY2lm aWMgZGF0YSAqLwogCXN0cnVjdCBpb21tdV9kb21haW4JKmRvbWFpbjsKZGlmZiAtLWdpdCBhL2Fy Y2gvYXJtL2luY2x1ZGUvYXNtL2RtYS1tYXBwaW5nLmggYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9k bWEtbWFwcGluZy5oCmluZGV4IDY4MGQzZjM4ODllNy4uNTJhOGZkNWE4ZWRiIDEwMDY0NAotLS0g YS9hcmNoL2FybS9pbmNsdWRlL2FzbS9kbWEtbWFwcGluZy5oCisrKyBiL2FyY2gvYXJtL2luY2x1 ZGUvYXNtL2RtYS1tYXBwaW5nLmgKQEAgLTEyLDcgKzEyLDYgQEAKICNpbmNsdWRlIDx4ZW4veGVu Lmg+CiAjaW5jbHVkZSA8YXNtL3hlbi9oeXBlcnZpc29yLmg+CiAKLSNkZWZpbmUgRE1BX0VSUk9S X0NPREUJKH4oZG1hX2FkZHJfdCkweDApCiBleHRlcm4gY29uc3Qgc3RydWN0IGRtYV9tYXBfb3Bz IGFybV9kbWFfb3BzOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBkbWFfbWFwX29wcyBhcm1fY29oZXJl bnRfZG1hX29wczsKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbW0vZG1hLW1hcHBpbmcuYyBiL2Fy Y2gvYXJtL21tL2RtYS1tYXBwaW5nLmMKaW5kZXggYzc0MmRmZDI5NjdiLi4yZGJjOTRiNWZlNWMg MTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21tL2RtYS1tYXBwaW5nLmMKKysrIGIvYXJjaC9hcm0vbW0v ZG1hLW1hcHBpbmcuYwpAQCAtMTgwLDYgKzE4MCwxMSBAQCBzdGF0aWMgdm9pZCBhcm1fZG1hX3N5 bmNfc2luZ2xlX2Zvcl9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LAogCV9fZG1hX3BhZ2VfY3B1 X3RvX2RldihwYWdlLCBvZmZzZXQsIHNpemUsIGRpcik7CiB9CiAKK3N0YXRpYyBpbnQgYXJtX2Rt YV9tYXBwaW5nX2Vycm9yKHN0cnVjdCBkZXZpY2UgKmRldiwgZG1hX2FkZHJfdCBkbWFfYWRkcikK K3sKKwlyZXR1cm4gZG1hX2FkZHIgPT0gQVJNX01BUFBJTkdfRVJST1I7Cit9CisKIGNvbnN0IHN0 cnVjdCBkbWFfbWFwX29wcyBhcm1fZG1hX29wcyA9IHsKIAkuYWxsb2MJCQk9IGFybV9kbWFfYWxs b2MsCiAJLmZyZWUJCQk9IGFybV9kbWFfZnJlZSwKQEAgLTE5Myw2ICsxOTgsNyBAQCBjb25zdCBz dHJ1Y3QgZG1hX21hcF9vcHMgYXJtX2RtYV9vcHMgPSB7CiAJLnN5bmNfc2luZ2xlX2Zvcl9kZXZp Y2UJPSBhcm1fZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UsCiAJLnN5bmNfc2dfZm9yX2NwdQk9 IGFybV9kbWFfc3luY19zZ19mb3JfY3B1LAogCS5zeW5jX3NnX2Zvcl9kZXZpY2UJPSBhcm1fZG1h X3N5bmNfc2dfZm9yX2RldmljZSwKKwkubWFwcGluZ19lcnJvcgkJPSBhcm1fZG1hX21hcHBpbmdf ZXJyb3IsCiB9OwogRVhQT1JUX1NZTUJPTChhcm1fZG1hX29wcyk7CiAKQEAgLTIxMSw2ICsyMTcs NyBAQCBjb25zdCBzdHJ1Y3QgZG1hX21hcF9vcHMgYXJtX2NvaGVyZW50X2RtYV9vcHMgPSB7CiAJ LmdldF9zZ3RhYmxlCQk9IGFybV9kbWFfZ2V0X3NndGFibGUsCiAJLm1hcF9wYWdlCQk9IGFybV9j b2hlcmVudF9kbWFfbWFwX3BhZ2UsCiAJLm1hcF9zZwkJCT0gYXJtX2RtYV9tYXBfc2csCisJLm1h cHBpbmdfZXJyb3IJCT0gYXJtX2RtYV9tYXBwaW5nX2Vycm9yLAogfTsKIEVYUE9SVF9TWU1CT0wo YXJtX2NvaGVyZW50X2RtYV9vcHMpOwogCkBAIC03OTksNyArODA2LDcgQEAgc3RhdGljIHZvaWQg Kl9fZG1hX2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIGRtYV9hZGRyX3Qg KmhhbmRsZSwKIAlnZnAgJj0gfihfX0dGUF9DT01QKTsKIAlhcmdzLmdmcCA9IGdmcDsKIAotCSpo YW5kbGUgPSBETUFfRVJST1JfQ09ERTsKKwkqaGFuZGxlID0gQVJNX01BUFBJTkdfRVJST1I7CiAJ YWxsb3dibG9jayA9IGdmcGZsYWdzX2FsbG93X2Jsb2NraW5nKGdmcCk7CiAJY21hID0gYWxsb3di bG9jayA/IGRldl9nZXRfY21hX2FyZWEoZGV2KSA6IGZhbHNlOwogCkBAIC0xMjU0LDcgKzEyNjEs NyBAQCBzdGF0aWMgaW5saW5lIGRtYV9hZGRyX3QgX19hbGxvY19pb3ZhKHN0cnVjdCBkbWFfaW9t bXVfbWFwcGluZyAqbWFwcGluZywKIAlpZiAoaSA9PSBtYXBwaW5nLT5ucl9iaXRtYXBzKSB7CiAJ CWlmIChleHRlbmRfaW9tbXVfbWFwcGluZyhtYXBwaW5nKSkgewogCQkJc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmbWFwcGluZy0+bG9jaywgZmxhZ3MpOwotCQkJcmV0dXJuIERNQV9FUlJPUl9DT0RF OworCQkJcmV0dXJuIEFSTV9NQVBQSU5HX0VSUk9SOwogCQl9CiAKIAkJc3RhcnQgPSBiaXRtYXBf ZmluZF9uZXh0X3plcm9fYXJlYShtYXBwaW5nLT5iaXRtYXBzW2ldLApAQCAtMTI2Miw3ICsxMjY5 LDcgQEAgc3RhdGljIGlubGluZSBkbWFfYWRkcl90IF9fYWxsb2NfaW92YShzdHJ1Y3QgZG1hX2lv bW11X21hcHBpbmcgKm1hcHBpbmcsCiAKIAkJaWYgKHN0YXJ0ID4gbWFwcGluZy0+Yml0cykgewog CQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbWFwcGluZy0+bG9jaywgZmxhZ3MpOwotCQkJcmV0 dXJuIERNQV9FUlJPUl9DT0RFOworCQkJcmV0dXJuIEFSTV9NQVBQSU5HX0VSUk9SOwogCQl9CiAK IAkJYml0bWFwX3NldChtYXBwaW5nLT5iaXRtYXBzW2ldLCBzdGFydCwgY291bnQpOwpAQCAtMTQ0 NSw3ICsxNDUyLDcgQEAgX19pb21tdV9jcmVhdGVfbWFwcGluZyhzdHJ1Y3QgZGV2aWNlICpkZXYs IHN0cnVjdCBwYWdlICoqcGFnZXMsIHNpemVfdCBzaXplLAogCWludCBpOwogCiAJZG1hX2FkZHIg PSBfX2FsbG9jX2lvdmEobWFwcGluZywgc2l6ZSk7Ci0JaWYgKGRtYV9hZGRyID09IERNQV9FUlJP Ul9DT0RFKQorCWlmIChkbWFfYWRkciA9PSBBUk1fTUFQUElOR19FUlJPUikKIAkJcmV0dXJuIGRt YV9hZGRyOwogCiAJaW92YSA9IGRtYV9hZGRyOwpAQCAtMTQ3Miw3ICsxNDc5LDcgQEAgX19pb21t dV9jcmVhdGVfbWFwcGluZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBwYWdlICoqcGFnZXMs IHNpemVfdCBzaXplLAogZmFpbDoKIAlpb21tdV91bm1hcChtYXBwaW5nLT5kb21haW4sIGRtYV9h ZGRyLCBpb3ZhLWRtYV9hZGRyKTsKIAlfX2ZyZWVfaW92YShtYXBwaW5nLCBkbWFfYWRkciwgc2l6 ZSk7Ci0JcmV0dXJuIERNQV9FUlJPUl9DT0RFOworCXJldHVybiBBUk1fTUFQUElOR19FUlJPUjsK IH0KIAogc3RhdGljIGludCBfX2lvbW11X3JlbW92ZV9tYXBwaW5nKHN0cnVjdCBkZXZpY2UgKmRl diwgZG1hX2FkZHJfdCBpb3ZhLCBzaXplX3Qgc2l6ZSkKQEAgLTE1MzMsNyArMTU0MCw3IEBAIHN0 YXRpYyB2b2lkICpfX2lvbW11X2FsbG9jX3NpbXBsZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVf dCBzaXplLCBnZnBfdCBnZnAsCiAJCXJldHVybiBOVUxMOwogCiAJKmhhbmRsZSA9IF9faW9tbXVf Y3JlYXRlX21hcHBpbmcoZGV2LCAmcGFnZSwgc2l6ZSwgYXR0cnMpOwotCWlmICgqaGFuZGxlID09 IERNQV9FUlJPUl9DT0RFKQorCWlmICgqaGFuZGxlID09IEFSTV9NQVBQSU5HX0VSUk9SKQogCQln b3RvIGVycl9tYXBwaW5nOwogCiAJcmV0dXJuIGFkZHI7CkBAIC0xNTYxLDcgKzE1NjgsNyBAQCBz dGF0aWMgdm9pZCAqX19hcm1faW9tbXVfYWxsb2NfYXR0cnMoc3RydWN0IGRldmljZSAqZGV2LCBz aXplX3Qgc2l6ZSwKIAlzdHJ1Y3QgcGFnZSAqKnBhZ2VzOwogCXZvaWQgKmFkZHIgPSBOVUxMOwog Ci0JKmhhbmRsZSA9IERNQV9FUlJPUl9DT0RFOworCSpoYW5kbGUgPSBBUk1fTUFQUElOR19FUlJP UjsKIAlzaXplID0gUEFHRV9BTElHTihzaXplKTsKIAogCWlmIChjb2hlcmVudF9mbGFnICA9PSBD T0hFUkVOVCB8fCAhZ2ZwZmxhZ3NfYWxsb3dfYmxvY2tpbmcoZ2ZwKSkKQEAgLTE1ODIsNyArMTU4 OSw3IEBAIHN0YXRpYyB2b2lkICpfX2FybV9pb21tdV9hbGxvY19hdHRycyhzdHJ1Y3QgZGV2aWNl ICpkZXYsIHNpemVfdCBzaXplLAogCQlyZXR1cm4gTlVMTDsKIAogCSpoYW5kbGUgPSBfX2lvbW11 X2NyZWF0ZV9tYXBwaW5nKGRldiwgcGFnZXMsIHNpemUsIGF0dHJzKTsKLQlpZiAoKmhhbmRsZSA9 PSBETUFfRVJST1JfQ09ERSkKKwlpZiAoKmhhbmRsZSA9PSBBUk1fTUFQUElOR19FUlJPUikKIAkJ Z290byBlcnJfYnVmZmVyOwogCiAJaWYgKGF0dHJzICYgRE1BX0FUVFJfTk9fS0VSTkVMX01BUFBJ TkcpCkBAIC0xNzMyLDEwICsxNzM5LDEwIEBAIHN0YXRpYyBpbnQgX19tYXBfc2dfY2h1bmsoc3Ry dWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLAogCWludCBwcm90OwogCiAJ c2l6ZSA9IFBBR0VfQUxJR04oc2l6ZSk7Ci0JKmhhbmRsZSA9IERNQV9FUlJPUl9DT0RFOworCSpo YW5kbGUgPSBBUk1fTUFQUElOR19FUlJPUjsKIAogCWlvdmFfYmFzZSA9IGlvdmEgPSBfX2FsbG9j X2lvdmEobWFwcGluZywgc2l6ZSk7Ci0JaWYgKGlvdmEgPT0gRE1BX0VSUk9SX0NPREUpCisJaWYg KGlvdmEgPT0gQVJNX01BUFBJTkdfRVJST1IpCiAJCXJldHVybiAtRU5PTUVNOwogCiAJZm9yIChj b3VudCA9IDAsIHMgPSBzZzsgY291bnQgPCAoc2l6ZSA+PiBQQUdFX1NISUZUKTsgcyA9IHNnX25l eHQocykpIHsKQEAgLTE3NzUsNyArMTc4Miw3IEBAIHN0YXRpYyBpbnQgX19pb21tdV9tYXBfc2co c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLCBpbnQgbmVudHMsCiAJ Zm9yIChpID0gMTsgaSA8IG5lbnRzOyBpKyspIHsKIAkJcyA9IHNnX25leHQocyk7CiAKLQkJcy0+ ZG1hX2FkZHJlc3MgPSBETUFfRVJST1JfQ09ERTsKKwkJcy0+ZG1hX2FkZHJlc3MgPSBBUk1fTUFQ UElOR19FUlJPUjsKIAkJcy0+ZG1hX2xlbmd0aCA9IDA7CiAKIAkJaWYgKHMtPm9mZnNldCB8fCAo c2l6ZSAmIH5QQUdFX01BU0spIHx8IHNpemUgKyBzLT5sZW5ndGggPiBtYXgpIHsKQEAgLTE5NTAs NyArMTk1Nyw3IEBAIHN0YXRpYyBkbWFfYWRkcl90IGFybV9jb2hlcmVudF9pb21tdV9tYXBfcGFn ZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBwYWdlICpwCiAJaW50IHJldCwgcHJvdCwgbGVu ID0gUEFHRV9BTElHTihzaXplICsgb2Zmc2V0KTsKIAogCWRtYV9hZGRyID0gX19hbGxvY19pb3Zh KG1hcHBpbmcsIGxlbik7Ci0JaWYgKGRtYV9hZGRyID09IERNQV9FUlJPUl9DT0RFKQorCWlmIChk bWFfYWRkciA9PSBBUk1fTUFQUElOR19FUlJPUikKIAkJcmV0dXJuIGRtYV9hZGRyOwogCiAJcHJv dCA9IF9fZG1hX2luZm9fdG9fcHJvdChkaXIsIGF0dHJzKTsKQEAgLTE5NjIsNyArMTk2OSw3IEBA IHN0YXRpYyBkbWFfYWRkcl90IGFybV9jb2hlcmVudF9pb21tdV9tYXBfcGFnZShzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCBwYWdlICpwCiAJcmV0dXJuIGRtYV9hZGRyICsgb2Zmc2V0OwogZmFp bDoKIAlfX2ZyZWVfaW92YShtYXBwaW5nLCBkbWFfYWRkciwgbGVuKTsKLQlyZXR1cm4gRE1BX0VS Uk9SX0NPREU7CisJcmV0dXJuIEFSTV9NQVBQSU5HX0VSUk9SOwogfQogCiAvKioKQEAgLTIwNTYs NyArMjA2Myw3IEBAIHN0YXRpYyBkbWFfYWRkcl90IGFybV9pb21tdV9tYXBfcmVzb3VyY2Uoc3Ry dWN0IGRldmljZSAqZGV2LAogCXNpemVfdCBsZW4gPSBQQUdFX0FMSUdOKHNpemUgKyBvZmZzZXQp OwogCiAJZG1hX2FkZHIgPSBfX2FsbG9jX2lvdmEobWFwcGluZywgbGVuKTsKLQlpZiAoZG1hX2Fk ZHIgPT0gRE1BX0VSUk9SX0NPREUpCisJaWYgKGRtYV9hZGRyID09IEFSTV9NQVBQSU5HX0VSUk9S KQogCQlyZXR1cm4gZG1hX2FkZHI7CiAKIAlwcm90ID0gX19kbWFfaW5mb190b19wcm90KGRpciwg YXR0cnMpIHwgSU9NTVVfTU1JTzsKQEAgLTIwNjgsNyArMjA3NSw3IEBAIHN0YXRpYyBkbWFfYWRk cl90IGFybV9pb21tdV9tYXBfcmVzb3VyY2Uoc3RydWN0IGRldmljZSAqZGV2LAogCXJldHVybiBk bWFfYWRkciArIG9mZnNldDsKIGZhaWw6CiAJX19mcmVlX2lvdmEobWFwcGluZywgZG1hX2FkZHIs IGxlbik7Ci0JcmV0dXJuIERNQV9FUlJPUl9DT0RFOworCXJldHVybiBBUk1fTUFQUElOR19FUlJP UjsKIH0KIAogLyoqCkBAIC0yMTQwLDYgKzIxNDcsOCBAQCBjb25zdCBzdHJ1Y3QgZG1hX21hcF9v cHMgaW9tbXVfb3BzID0gewogCiAJLm1hcF9yZXNvdXJjZQkJPSBhcm1faW9tbXVfbWFwX3Jlc291 cmNlLAogCS51bm1hcF9yZXNvdXJjZQkJPSBhcm1faW9tbXVfdW5tYXBfcmVzb3VyY2UsCisKKwku bWFwcGluZ19lcnJvcgkJPSBhcm1fZG1hX21hcHBpbmdfZXJyb3IsCiB9OwogCiBjb25zdCBzdHJ1 Y3QgZG1hX21hcF9vcHMgaW9tbXVfY29oZXJlbnRfb3BzID0gewpAQCAtMjE1Niw2ICsyMTY1LDgg QEAgY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzIGlvbW11X2NvaGVyZW50X29wcyA9IHsKIAogCS5t YXBfcmVzb3VyY2UJPSBhcm1faW9tbXVfbWFwX3Jlc291cmNlLAogCS51bm1hcF9yZXNvdXJjZQk9 IGFybV9pb21tdV91bm1hcF9yZXNvdXJjZSwKKworCS5tYXBwaW5nX2Vycm9yCQk9IGFybV9kbWFf bWFwcGluZ19lcnJvciwKIH07CiAKIC8qKgotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==