From mboxrd@z Thu Jan 1 00:00:00 1970 From: Krzysztof Kozlowski Subject: [PATCH v4 04/44] ARM: dma-mapping: Use unsigned long for dma_attrs Date: Fri, 10 Jun 2016 12:11:21 +0200 Message-ID: <1465553521-27303-5-git-send-email-k.kozlowski__35843.2749788792$1465553621$gmane$org@samsung.com> References: <1465553521-27303-1-git-send-email-k.kozlowski@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bBJQW-00077H-8v for xen-devel@lists.xenproject.org; Fri, 10 Jun 2016 10:12:32 +0000 Received: from eucpsbgm2.samsung.com (unknown [203.254.199.245]) by mailout1.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0O8J00AVWWCRLP40@mailout1.w1.samsung.com> for xen-devel@lists.xenproject.org; Fri, 10 Jun 2016 11:12:28 +0100 (BST) In-reply-to: <1465553521-27303-1-git-send-email-k.kozlowski@samsung.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Andrew Morton Cc: Rabin Vincent , Krzysztof Kozlowski , Stefano Stabellini , Bartlomiej Zolnierkiewicz , Will Deacon , Russell King , linux-kernel@vger.kernel.org, hch@infradead.org, Max Filippov , Alexandre Courbot , linux-arm-kernel@lists.infradead.org, xen-devel@lists.xenproject.org, Doug Anderson , Dan Williams , Robin Murphy , Guenter Roeck , Marek Szyprowski List-Id: xen-devel@lists.xenproject.org U3BsaXQgb3V0IHN1YnN5c3RlbSBzcGVjaWZpYyBjaGFuZ2VzIGZvciBlYXNpZXIgcmV2aWV3cy4g VGhpcyB3aWxsIGJlCnNxdWFzaGVkIHdpdGggbWFpbiBjb21taXQuCgpTaWduZWQtb2ZmLWJ5OiBL cnp5c3p0b2YgS296bG93c2tpIDxrLmtvemxvd3NraUBzYW1zdW5nLmNvbT4KLS0tCiBhcmNoL2Fy bS9jb21tb24vZG1hYm91bmNlLmMgICAgICAgICAgICAgIHwgIDQgKy0KIGFyY2gvYXJtL2luY2x1 ZGUvYXNtL2RtYS1tYXBwaW5nLmggICAgICAgfCAxMyArKystLQogYXJjaC9hcm0vaW5jbHVkZS9h c20veGVuL3BhZ2UtY29oZXJlbnQuaCB8IDE2ICsrKy0tLQogYXJjaC9hcm0vbW0vZG1hLW1hcHBp bmcuYyAgICAgICAgICAgICAgICB8IDg1ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t CiBhcmNoL2FybS94ZW4vbW0uYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIDUgZmls ZXMgY2hhbmdlZCwgNTcgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvYXJjaC9hcm0vY29tbW9uL2RtYWJvdW5jZS5jIGIvYXJjaC9hcm0vY29tbW9uL2RtYWJvdW5j ZS5jCmluZGV4IDExNDNjNGQ1YzU2Ny4uMzAxMjgxNjQ1ZDA4IDEwMDY0NAotLS0gYS9hcmNoL2Fy bS9jb21tb24vZG1hYm91bmNlLmMKKysrIGIvYXJjaC9hcm0vY29tbW9uL2RtYWJvdW5jZS5jCkBA IC0zMTAsNyArMzEwLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHVubWFwX3NpbmdsZShzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHN0cnVjdCBzYWZlX2J1ZmZlciAqYnVmLAogICovCiBzdGF0aWMgZG1hX2Fk ZHJfdCBkbWFib3VuY2VfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAq cGFnZSwKIAkJdW5zaWduZWQgbG9uZyBvZmZzZXQsIHNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRh X2RpcmVjdGlvbiBkaXIsCi0JCXN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKQorCQl1bnNpZ25lZCBs b25nIGF0dHJzKQogewogCWRtYV9hZGRyX3QgZG1hX2FkZHI7CiAJaW50IHJldDsKQEAgLTM0NCw3 ICszNDQsNyBAQCBzdGF0aWMgZG1hX2FkZHJfdCBkbWFib3VuY2VfbWFwX3BhZ2Uoc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKICAqIHNob3VsZCBiZSkKICAqLwogc3RhdGlj IHZvaWQgZG1hYm91bmNlX3VubWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2LCBkbWFfYWRkcl90 IGRtYV9hZGRyLCBzaXplX3Qgc2l6ZSwKLQkJZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCBz dHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCB1 bnNpZ25lZCBsb25nIGF0dHJzKQogewogCXN0cnVjdCBzYWZlX2J1ZmZlciAqYnVmOwogCmRpZmYg LS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9kbWEtbWFwcGluZy5oIGIvYXJjaC9hcm0vaW5j bHVkZS9hc20vZG1hLW1hcHBpbmcuaAppbmRleCBhODM1NzBmMTAxMjQuLmQwMDlmNzkxMWZmYyAx MDA2NDQKLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vZG1hLW1hcHBpbmcuaAorKysgYi9hcmNo L2FybS9pbmNsdWRlL2FzbS9kbWEtbWFwcGluZy5oCkBAIC01LDcgKzUsNiBAQAogCiAjaW5jbHVk ZSA8bGludXgvbW1fdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9zY2F0dGVybGlzdC5oPgotI2lu Y2x1ZGUgPGxpbnV4L2RtYS1hdHRycy5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1kZWJ1Zy5oPgog CiAjaW5jbHVkZSA8YXNtL21lbW9yeS5oPgpAQCAtMTc0LDcgKzE3Myw3IEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBkbWFfbWFya19jbGVhbih2b2lkICphZGRyLCBzaXplX3Qgc2l6ZSkgeyB9CiAgKiB0 byBiZSB0aGUgZGV2aWNlLXZpZXdlZCBhZGRyZXNzLgogICovCiBleHRlcm4gdm9pZCAqYXJtX2Rt YV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLCBkbWFfYWRkcl90ICpoYW5k bGUsCi0JCQkgICBnZnBfdCBnZnAsIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKTsKKwkJCSAgIGdm cF90IGdmcCwgdW5zaWduZWQgbG9uZyBhdHRycyk7CiAKIC8qKgogICogYXJtX2RtYV9mcmVlIC0g ZnJlZSBtZW1vcnkgYWxsb2NhdGVkIGJ5IGFybV9kbWFfYWxsb2MKQEAgLTE5MSw3ICsxOTAsNyBA QCBleHRlcm4gdm9pZCAqYXJtX2RtYV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBz aXplLCBkbWFfYWRkcl90ICpoYW5kbGUsCiAgKiBkdXJpbmcgYW5kIGFmdGVyIHRoaXMgY2FsbCBl eGVjdXRpbmcgYXJlIGlsbGVnYWwuCiAgKi8KIGV4dGVybiB2b2lkIGFybV9kbWFfZnJlZShzdHJ1 Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLCB2b2lkICpjcHVfYWRkciwKLQkJCSBkbWFfYWRk cl90IGhhbmRsZSwgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpOworCQkJIGRtYV9hZGRyX3QgaGFu ZGxlLCB1bnNpZ25lZCBsb25nIGF0dHJzKTsKIAogLyoqCiAgKiBhcm1fZG1hX21tYXAgLSBtYXAg YSBjb2hlcmVudCBETUEgYWxsb2NhdGlvbiBpbnRvIHVzZXIgc3BhY2UKQEAgLTIwOCw3ICsyMDcs NyBAQCBleHRlcm4gdm9pZCBhcm1fZG1hX2ZyZWUoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qg c2l6ZSwgdm9pZCAqY3B1X2FkZHIsCiAgKi8KIGV4dGVybiBpbnQgYXJtX2RtYV9tbWFwKHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJCQl2b2lkICpjcHVf YWRkciwgZG1hX2FkZHJfdCBkbWFfYWRkciwgc2l6ZV90IHNpemUsCi0JCQlzdHJ1Y3QgZG1hX2F0 dHJzICphdHRycyk7CisJCQl1bnNpZ25lZCBsb25nIGF0dHJzKTsKIAogLyoKICAqIFRoaXMgY2Fu IGJlIGNhbGxlZCBkdXJpbmcgZWFybHkgYm9vdCB0byBpbmNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUg YXRvbWljCkBAIC0yNjIsMTYgKzI2MSwxNiBAQCBleHRlcm4gdm9pZCBkbWFib3VuY2VfdW5yZWdp c3Rlcl9kZXYoc3RydWN0IGRldmljZSAqKTsKICAqIFRoZSBzY2F0dGVyIGxpc3QgdmVyc2lvbnMg b2YgdGhlIGFib3ZlIG1ldGhvZHMuCiAgKi8KIGV4dGVybiBpbnQgYXJtX2RtYV9tYXBfc2coc3Ry dWN0IGRldmljZSAqLCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKiwgaW50LAotCQllbnVtIGRtYV9kYXRh X2RpcmVjdGlvbiwgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpOworCQllbnVtIGRtYV9kYXRhX2Rp cmVjdGlvbiwgdW5zaWduZWQgbG9uZyBhdHRycyk7CiBleHRlcm4gdm9pZCBhcm1fZG1hX3VubWFw X3NnKHN0cnVjdCBkZXZpY2UgKiwgc3RydWN0IHNjYXR0ZXJsaXN0ICosIGludCwKLQkJZW51bSBk bWFfZGF0YV9kaXJlY3Rpb24sIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKTsKKwkJZW51bSBkbWFf ZGF0YV9kaXJlY3Rpb24sIHVuc2lnbmVkIGxvbmcgYXR0cnMpOwogZXh0ZXJuIHZvaWQgYXJtX2Rt YV9zeW5jX3NnX2Zvcl9jcHUoc3RydWN0IGRldmljZSAqLCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKiwg aW50LAogCQllbnVtIGRtYV9kYXRhX2RpcmVjdGlvbik7CiBleHRlcm4gdm9pZCBhcm1fZG1hX3N5 bmNfc2dfZm9yX2RldmljZShzdHJ1Y3QgZGV2aWNlICosIHN0cnVjdCBzY2F0dGVybGlzdCAqLCBp bnQsCiAJCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uKTsKIGV4dGVybiBpbnQgYXJtX2RtYV9nZXRf c2d0YWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzZ190YWJsZSAqc2d0LAogCQl2b2lk ICpjcHVfYWRkciwgZG1hX2FkZHJfdCBkbWFfYWRkciwgc2l6ZV90IHNpemUsCi0JCXN0cnVjdCBk bWFfYXR0cnMgKmF0dHJzKTsKKwkJdW5zaWduZWQgbG9uZyBhdHRycyk7CiAKICNlbmRpZiAvKiBf X0tFUk5FTF9fICovCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3hl bi9wYWdlLWNvaGVyZW50LmggYi9hcmNoL2FybS9pbmNsdWRlL2FzbS94ZW4vcGFnZS1jb2hlcmVu dC5oCmluZGV4IDk0MDhhOTk0Y2M5MS4uOTVjZTZhYzNhOTcxIDEwMDY0NAotLS0gYS9hcmNoL2Fy bS9pbmNsdWRlL2FzbS94ZW4vcGFnZS1jb2hlcmVudC5oCisrKyBiL2FyY2gvYXJtL2luY2x1ZGUv YXNtL3hlbi9wYWdlLWNvaGVyZW50LmgKQEAgLTIsMTUgKzIsMTQgQEAKICNkZWZpbmUgX0FTTV9B Uk1fWEVOX1BBR0VfQ09IRVJFTlRfSAogCiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KLSNpbmNsdWRl IDxsaW51eC9kbWEtYXR0cnMuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogCiB2 b2lkIF9feGVuX2RtYV9tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpod2Rldiwgc3RydWN0IHBhZ2Ug KnBhZ2UsCiAJICAgICBkbWFfYWRkcl90IGRldl9hZGRyLCB1bnNpZ25lZCBsb25nIG9mZnNldCwg c2l6ZV90IHNpemUsCi0JICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsIHN0cnVjdCBk bWFfYXR0cnMgKmF0dHJzKTsKKwkgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgdW5z aWduZWQgbG9uZyBhdHRycyk7CiB2b2lkIF9feGVuX2RtYV91bm1hcF9wYWdlKHN0cnVjdCBkZXZp Y2UgKmh3ZGV2LCBkbWFfYWRkcl90IGhhbmRsZSwKIAkJc2l6ZV90IHNpemUsIGVudW0gZG1hX2Rh dGFfZGlyZWN0aW9uIGRpciwKLQkJc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpOworCQl1bnNpZ25l ZCBsb25nIGF0dHJzKTsKIHZvaWQgX194ZW5fZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUoc3RydWN0 IGRldmljZSAqaHdkZXYsCiAJCWRtYV9hZGRyX3QgaGFuZGxlLCBzaXplX3Qgc2l6ZSwgZW51bSBk bWFfZGF0YV9kaXJlY3Rpb24gZGlyKTsKIApAQCAtMTgsMjIgKzE3LDIwIEBAIHZvaWQgX194ZW5f ZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2Uoc3RydWN0IGRldmljZSAqaHdkZXYsCiAJCWRtYV9h ZGRyX3QgaGFuZGxlLCBzaXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKTsK IAogc3RhdGljIGlubGluZSB2b2lkICp4ZW5fYWxsb2NfY29oZXJlbnRfcGFnZXMoc3RydWN0IGRl dmljZSAqaHdkZXYsIHNpemVfdCBzaXplLAotCQlkbWFfYWRkcl90ICpkbWFfaGFuZGxlLCBnZnBf dCBmbGFncywKLQkJc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCWRtYV9hZGRyX3QgKmRtYV9o YW5kbGUsIGdmcF90IGZsYWdzLCB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCXJldHVybiBfX2dl bmVyaWNfZG1hX29wcyhod2RldiktPmFsbG9jKGh3ZGV2LCBzaXplLCBkbWFfaGFuZGxlLCBmbGFn cywgYXR0cnMpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX2ZyZWVfY29oZXJlbnRfcGFn ZXMoc3RydWN0IGRldmljZSAqaHdkZXYsIHNpemVfdCBzaXplLAotCQl2b2lkICpjcHVfYWRkciwg ZG1hX2FkZHJfdCBkbWFfaGFuZGxlLAotCQlzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJdm9p ZCAqY3B1X2FkZHIsIGRtYV9hZGRyX3QgZG1hX2hhbmRsZSwgdW5zaWduZWQgbG9uZyBhdHRycykK IHsKIAlfX2dlbmVyaWNfZG1hX29wcyhod2RldiktPmZyZWUoaHdkZXYsIHNpemUsIGNwdV9hZGRy LCBkbWFfaGFuZGxlLCBhdHRycyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fZG1hX21h cF9wYWdlKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAkgICAgIGRt YV9hZGRyX3QgZGV2X2FkZHIsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwKLQkg ICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMp CisJICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsIHVuc2lnbmVkIGxvbmcgYXR0cnMp CiB7CiAJdW5zaWduZWQgbG9uZyBwYWdlX3BmbiA9IHBhZ2VfdG9feGVuX3BmbihwYWdlKTsKIAl1 bnNpZ25lZCBsb25nIGRldl9wZm4gPSBYRU5fUEZOX0RPV04oZGV2X2FkZHIpOwpAQCAtNTgsOCAr NTUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX2RtYV9tYXBfcGFnZShzdHJ1Y3QgZGV2aWNl ICpod2Rldiwgc3RydWN0IHBhZ2UgKnBhZ2UsCiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5f ZG1hX3VubWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqaHdkZXYsIGRtYV9hZGRyX3QgaGFuZGxlLAot CQlzaXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLAotCQlzdHJ1Y3QgZG1h X2F0dHJzICphdHRycykKKwkJc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRp ciwgdW5zaWduZWQgbG9uZyBhdHRycykKIHsKIAl1bnNpZ25lZCBsb25nIHBmbiA9IFBGTl9ET1dO KGhhbmRsZSk7CiAJLyoKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21tL2RtYS1tYXBwaW5nLmMgYi9h cmNoL2FybS9tbS9kbWEtbWFwcGluZy5jCmluZGV4IDRhYmM1MDk1MjQ1MS4uZWJiM2ZkZTk5MDQz IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tbS9kbWEtbWFwcGluZy5jCisrKyBiL2FyY2gvYXJtL21t L2RtYS1tYXBwaW5nLmMKQEAgLTEyNCw3ICsxMjQsNyBAQCBzdGF0aWMgdm9pZCBfX2RtYV9wYWdl X2Rldl90b19jcHUoc3RydWN0IHBhZ2UgKiwgdW5zaWduZWQgbG9uZywKICAqLwogc3RhdGljIGRt YV9hZGRyX3QgYXJtX2RtYV9tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBwYWdl ICpwYWdlLAogCSAgICAgdW5zaWduZWQgbG9uZyBvZmZzZXQsIHNpemVfdCBzaXplLCBlbnVtIGRt YV9kYXRhX2RpcmVjdGlvbiBkaXIsCi0JICAgICBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkg ICAgIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJaWYgKCFkbWFfZ2V0X2F0dHIoRE1BX0FUVFJf U0tJUF9DUFVfU1lOQywgYXR0cnMpKQogCQlfX2RtYV9wYWdlX2NwdV90b19kZXYocGFnZSwgb2Zm c2V0LCBzaXplLCBkaXIpOwpAQCAtMTMzLDcgKzEzMyw3IEBAIHN0YXRpYyBkbWFfYWRkcl90IGFy bV9kbWFfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAog c3RhdGljIGRtYV9hZGRyX3QgYXJtX2NvaGVyZW50X2RtYV9tYXBfcGFnZShzdHJ1Y3QgZGV2aWNl ICpkZXYsIHN0cnVjdCBwYWdlICpwYWdlLAogCSAgICAgdW5zaWduZWQgbG9uZyBvZmZzZXQsIHNp emVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsCi0JICAgICBzdHJ1Y3QgZG1h X2F0dHJzICphdHRycykKKwkgICAgIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJcmV0dXJuIHBm bl90b19kbWEoZGV2LCBwYWdlX3RvX3BmbihwYWdlKSkgKyBvZmZzZXQ7CiB9CkBAIC0xNTMsOCAr MTUzLDcgQEAgc3RhdGljIGRtYV9hZGRyX3QgYXJtX2NvaGVyZW50X2RtYV9tYXBfcGFnZShzdHJ1 Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBwYWdlICpwYWcKICAqIHdoYXRldmVyIHRoZSBkZXZpY2Ug d3JvdGUgdGhlcmUuCiAgKi8KIHN0YXRpYyB2b2lkIGFybV9kbWFfdW5tYXBfcGFnZShzdHJ1Y3Qg ZGV2aWNlICpkZXYsIGRtYV9hZGRyX3QgaGFuZGxlLAotCQlzaXplX3Qgc2l6ZSwgZW51bSBkbWFf ZGF0YV9kaXJlY3Rpb24gZGlyLAotCQlzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJc2l6ZV90 IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgdW5zaWduZWQgbG9uZyBhdHRycykK IHsKIAlpZiAoIWRtYV9nZXRfYXR0cihETUFfQVRUUl9TS0lQX0NQVV9TWU5DLCBhdHRycykpCiAJ CV9fZG1hX3BhZ2VfZGV2X3RvX2NwdShwZm5fdG9fcGFnZShkbWFfdG9fcGZuKGRldiwgaGFuZGxl KSksCkBAIC0xOTQsMTIgKzE5MywxMiBAQCBzdHJ1Y3QgZG1hX21hcF9vcHMgYXJtX2RtYV9vcHMg PSB7CiBFWFBPUlRfU1lNQk9MKGFybV9kbWFfb3BzKTsKIAogc3RhdGljIHZvaWQgKmFybV9jb2hl cmVudF9kbWFfYWxsb2Moc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKLQlkbWFfYWRk cl90ICpoYW5kbGUsIGdmcF90IGdmcCwgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpOworCWRtYV9h ZGRyX3QgKmhhbmRsZSwgZ2ZwX3QgZ2ZwLCB1bnNpZ25lZCBsb25nIGF0dHJzKTsKIHN0YXRpYyB2 b2lkIGFybV9jb2hlcmVudF9kbWFfZnJlZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXpl LCB2b2lkICpjcHVfYWRkciwKLQkJCQkgIGRtYV9hZGRyX3QgaGFuZGxlLCBzdHJ1Y3QgZG1hX2F0 dHJzICphdHRycyk7CisJCQkJICBkbWFfYWRkcl90IGhhbmRsZSwgdW5zaWduZWQgbG9uZyBhdHRy cyk7CiBzdGF0aWMgaW50IGFybV9jb2hlcmVudF9kbWFfbW1hcChzdHJ1Y3QgZGV2aWNlICpkZXYs IHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCQkgdm9pZCAqY3B1X2FkZHIsIGRtYV9hZGRy X3QgZG1hX2FkZHIsIHNpemVfdCBzaXplLAotCQkgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpOwor CQkgdW5zaWduZWQgbG9uZyBhdHRycyk7CiAKIHN0cnVjdCBkbWFfbWFwX29wcyBhcm1fY29oZXJl bnRfZG1hX29wcyA9IHsKIAkuYWxsb2MJCQk9IGFybV9jb2hlcmVudF9kbWFfYWxsb2MsCkBAIC02 MjEsNyArNjIwLDcgQEAgc3RhdGljIHZvaWQgX19mcmVlX2Zyb21fY29udGlndW91cyhzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHN0cnVjdCBwYWdlICpwYWdlLAogCWRtYV9yZWxlYXNlX2Zyb21fY29udGln dW91cyhkZXYsIHBhZ2UsIHNpemUgPj4gUEFHRV9TSElGVCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUg cGdwcm90X3QgX19nZXRfZG1hX3BncHJvdChjb25zdCBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycywg cGdwcm90X3QgcHJvdCkKK3N0YXRpYyBpbmxpbmUgcGdwcm90X3QgX19nZXRfZG1hX3BncHJvdCh1 bnNpZ25lZCBsb25nIGF0dHJzLCBwZ3Byb3RfdCBwcm90KQogewogCXByb3QgPSBkbWFfZ2V0X2F0 dHIoRE1BX0FUVFJfV1JJVEVfQ09NQklORSwgYXR0cnMpID8KIAkJCSAgICBwZ3Byb3Rfd3JpdGVj b21iaW5lKHByb3QpIDoKQEAgLTczMiw3ICs3MzEsNyBAQCBzdGF0aWMgc3RydWN0IGFybV9kbWFf YWxsb2NhdG9yIHJlbWFwX2FsbG9jYXRvciA9IHsKIAogc3RhdGljIHZvaWQgKl9fZG1hX2FsbG9j KHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIGRtYV9hZGRyX3QgKmhhbmRsZSwKIAkJ CSBnZnBfdCBnZnAsIHBncHJvdF90IHByb3QsIGJvb2wgaXNfY29oZXJlbnQsCi0JCQkgY29uc3Qg c3RydWN0IGRtYV9hdHRycyAqYXR0cnMsIGNvbnN0IHZvaWQgKmNhbGxlcikKKwkJCSB1bnNpZ25l ZCBsb25nIGF0dHJzLCBjb25zdCB2b2lkICpjYWxsZXIpCiB7CiAJdTY0IG1hc2sgPSBnZXRfY29o ZXJlbnRfZG1hX21hc2soZGV2KTsKIAlzdHJ1Y3QgcGFnZSAqcGFnZSA9IE5VTEw7CkBAIC04MTQs NyArODEzLDcgQEAgc3RhdGljIHZvaWQgKl9fZG1hX2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRldiwg c2l6ZV90IHNpemUsIGRtYV9hZGRyX3QgKmhhbmRsZSwKICAqIHZpcnR1YWwgYW5kIGJ1cyBhZGRy ZXNzIGZvciB0aGF0IHNwYWNlLgogICovCiB2b2lkICphcm1fZG1hX2FsbG9jKHN0cnVjdCBkZXZp Y2UgKmRldiwgc2l6ZV90IHNpemUsIGRtYV9hZGRyX3QgKmhhbmRsZSwKLQkJICAgIGdmcF90IGdm cCwgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCSAgICBnZnBfdCBnZnAsIHVuc2lnbmVkIGxv bmcgYXR0cnMpCiB7CiAJcGdwcm90X3QgcHJvdCA9IF9fZ2V0X2RtYV9wZ3Byb3QoYXR0cnMsIFBB R0VfS0VSTkVMKTsKIApAQCAtODIzLDcgKzgyMiw3IEBAIHZvaWQgKmFybV9kbWFfYWxsb2Moc3Ry dWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwgZG1hX2FkZHJfdCAqaGFuZGxlLAogfQogCiBz dGF0aWMgdm9pZCAqYXJtX2NvaGVyZW50X2RtYV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNp emVfdCBzaXplLAotCWRtYV9hZGRyX3QgKmhhbmRsZSwgZ2ZwX3QgZ2ZwLCBzdHJ1Y3QgZG1hX2F0 dHJzICphdHRycykKKwlkbWFfYWRkcl90ICpoYW5kbGUsIGdmcF90IGdmcCwgdW5zaWduZWQgbG9u ZyBhdHRycykKIHsKIAlyZXR1cm4gX19kbWFfYWxsb2MoZGV2LCBzaXplLCBoYW5kbGUsIGdmcCwg UEFHRV9LRVJORUwsIHRydWUsCiAJCQkgICBhdHRycywgX19idWlsdGluX3JldHVybl9hZGRyZXNz KDApKTsKQEAgLTgzMSw3ICs4MzAsNyBAQCBzdGF0aWMgdm9pZCAqYXJtX2NvaGVyZW50X2RtYV9h bGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAogCiBzdGF0aWMgaW50IF9fYXJt X2RtYV9tbWFwKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEs CiAJCSB2b2lkICpjcHVfYWRkciwgZG1hX2FkZHJfdCBkbWFfYWRkciwgc2l6ZV90IHNpemUsCi0J CSBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJ aW50IHJldCA9IC1FTlhJTzsKICNpZmRlZiBDT05GSUdfTU1VCkBAIC04NTksMTQgKzg1OCwxNCBA QCBzdGF0aWMgaW50IF9fYXJtX2RtYV9tbWFwKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHZt X2FyZWFfc3RydWN0ICp2bWEsCiAgKi8KIHN0YXRpYyBpbnQgYXJtX2NvaGVyZW50X2RtYV9tbWFw KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJCSB2b2lk ICpjcHVfYWRkciwgZG1hX2FkZHJfdCBkbWFfYWRkciwgc2l6ZV90IHNpemUsCi0JCSBzdHJ1Y3Qg ZG1hX2F0dHJzICphdHRycykKKwkJIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJcmV0dXJuIF9f YXJtX2RtYV9tbWFwKGRldiwgdm1hLCBjcHVfYWRkciwgZG1hX2FkZHIsIHNpemUsIGF0dHJzKTsK IH0KIAogaW50IGFybV9kbWFfbW1hcChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB2bV9hcmVh X3N0cnVjdCAqdm1hLAogCQkgdm9pZCAqY3B1X2FkZHIsIGRtYV9hZGRyX3QgZG1hX2FkZHIsIHNp emVfdCBzaXplLAotCQkgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCSB1bnNpZ25lZCBsb25n IGF0dHJzKQogewogI2lmZGVmIENPTkZJR19NTVUKIAl2bWEtPnZtX3BhZ2VfcHJvdCA9IF9fZ2V0 X2RtYV9wZ3Byb3QoYXR0cnMsIHZtYS0+dm1fcGFnZV9wcm90KTsKQEAgLTg3OCw3ICs4NzcsNyBA QCBpbnQgYXJtX2RtYV9tbWFwKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHZtX2FyZWFfc3Ry dWN0ICp2bWEsCiAgKiBGcmVlIGEgYnVmZmVyIGFzIGRlZmluZWQgYnkgdGhlIGFib3ZlIG1hcHBp bmcuCiAgKi8KIHN0YXRpYyB2b2lkIF9fYXJtX2RtYV9mcmVlKHN0cnVjdCBkZXZpY2UgKmRldiwg c2l6ZV90IHNpemUsIHZvaWQgKmNwdV9hZGRyLAotCQkJICAgZG1hX2FkZHJfdCBoYW5kbGUsIGNv bnN0IHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzLAorCQkJICAgZG1hX2FkZHJfdCBoYW5kbGUsIHVu c2lnbmVkIGxvbmcgYXR0cnMsCiAJCQkgICBib29sIGlzX2NvaGVyZW50KQogewogCXN0cnVjdCBw YWdlICpwYWdlID0gcGZuX3RvX3BhZ2UoZG1hX3RvX3BmbihkZXYsIGhhbmRsZSkpOwpAQCAtOTAw LDIwICs4OTksMjAgQEAgc3RhdGljIHZvaWQgX19hcm1fZG1hX2ZyZWUoc3RydWN0IGRldmljZSAq ZGV2LCBzaXplX3Qgc2l6ZSwgdm9pZCAqY3B1X2FkZHIsCiB9CiAKIHZvaWQgYXJtX2RtYV9mcmVl KHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIHZvaWQgKmNwdV9hZGRyLAotCQkgIGRt YV9hZGRyX3QgaGFuZGxlLCBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJICBkbWFfYWRkcl90 IGhhbmRsZSwgdW5zaWduZWQgbG9uZyBhdHRycykKIHsKIAlfX2FybV9kbWFfZnJlZShkZXYsIHNp emUsIGNwdV9hZGRyLCBoYW5kbGUsIGF0dHJzLCBmYWxzZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGFy bV9jb2hlcmVudF9kbWFfZnJlZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLCB2b2lk ICpjcHVfYWRkciwKLQkJCQkgIGRtYV9hZGRyX3QgaGFuZGxlLCBzdHJ1Y3QgZG1hX2F0dHJzICph dHRycykKKwkJCQkgIGRtYV9hZGRyX3QgaGFuZGxlLCB1bnNpZ25lZCBsb25nIGF0dHJzKQogewog CV9fYXJtX2RtYV9mcmVlKGRldiwgc2l6ZSwgY3B1X2FkZHIsIGhhbmRsZSwgYXR0cnMsIHRydWUp OwogfQogCiBpbnQgYXJtX2RtYV9nZXRfc2d0YWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVj dCBzZ190YWJsZSAqc2d0LAogCQkgdm9pZCAqY3B1X2FkZHIsIGRtYV9hZGRyX3QgaGFuZGxlLCBz aXplX3Qgc2l6ZSwKLQkJIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKQorCQkgdW5zaWduZWQgbG9u ZyBhdHRycykKIHsKIAlzdHJ1Y3QgcGFnZSAqcGFnZSA9IHBmbl90b19wYWdlKGRtYV90b19wZm4o ZGV2LCBoYW5kbGUpKTsKIAlpbnQgcmV0OwpAQCAtMTA0Niw3ICsxMDQ1LDcgQEAgc3RhdGljIHZv aWQgX19kbWFfcGFnZV9kZXZfdG9fY3B1KHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBsb25n IG9mZiwKICAqIGhlcmUuCiAgKi8KIGludCBhcm1fZG1hX21hcF9zZyhzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2csIGludCBuZW50cywKLQkJZW51bSBkbWFfZGF0YV9k aXJlY3Rpb24gZGlyLCBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJZW51bSBkbWFfZGF0YV9k aXJlY3Rpb24gZGlyLCB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCXN0cnVjdCBkbWFfbWFwX29w cyAqb3BzID0gZ2V0X2RtYV9vcHMoZGV2KTsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnM7CkBAIC0x MDgwLDcgKzEwNzksNyBAQCBpbnQgYXJtX2RtYV9tYXBfc2coc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLCBpbnQgbmVudHMsCiAgKiBydWxlcyBjb25jZXJuaW5nIGNh bGxzIGhlcmUgYXJlIHRoZSBzYW1lIGFzIGZvciBkbWFfdW5tYXBfc2luZ2xlKCkuCiAgKi8KIHZv aWQgYXJtX2RtYV91bm1hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlz dCAqc2csIGludCBuZW50cywKLQkJZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCBzdHJ1Y3Qg ZG1hX2F0dHJzICphdHRycykKKwkJZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCB1bnNpZ25l ZCBsb25nIGF0dHJzKQogewogCXN0cnVjdCBkbWFfbWFwX29wcyAqb3BzID0gZ2V0X2RtYV9vcHMo ZGV2KTsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnM7CkBAIC0xMjUzLDggKzEyNTIsNyBAQCBzdGF0 aWMgaW5saW5lIHZvaWQgX19mcmVlX2lvdmEoc3RydWN0IGRtYV9pb21tdV9tYXBwaW5nICptYXBw aW5nLAogc3RhdGljIGNvbnN0IGludCBpb21tdV9vcmRlcl9hcnJheVtdID0geyA5LCA4LCA0LCAw IH07CiAKIHN0YXRpYyBzdHJ1Y3QgcGFnZSAqKl9faW9tbXVfYWxsb2NfYnVmZmVyKHN0cnVjdCBk ZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCi0JCQkJCSAgZ2ZwX3QgZ2ZwLAotCQkJCQkgIGNvbnN0 IHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKQorCQkJCQkgIGdmcF90IGdmcCwgdW5zaWduZWQgbG9u ZyBhdHRycykKIHsKIAlzdHJ1Y3QgcGFnZSAqKnBhZ2VzOwogCWludCBjb3VudCA9IHNpemUgPj4g UEFHRV9TSElGVDsKQEAgLTEzNDMsNyArMTM0MSw3IEBAIGVycm9yOgogfQogCiBzdGF0aWMgaW50 IF9faW9tbXVfZnJlZV9idWZmZXIoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqKnBh Z2VzLAotCQkJICAgICAgIHNpemVfdCBzaXplLCBjb25zdCBzdHJ1Y3QgZG1hX2F0dHJzICphdHRy cykKKwkJCSAgICAgICBzaXplX3Qgc2l6ZSwgdW5zaWduZWQgbG9uZyBhdHRycykKIHsKIAlpbnQg Y291bnQgPSBzaXplID4+IFBBR0VfU0hJRlQ7CiAJaW50IGk7CkBAIC0xNDQwLDggKzE0MzgsNyBA QCBzdGF0aWMgc3RydWN0IHBhZ2UgKipfX2F0b21pY19nZXRfcGFnZXModm9pZCAqYWRkcikKIAly ZXR1cm4gKHN0cnVjdCBwYWdlICoqKXBhZ2U7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgcGFnZSAqKl9f aW9tbXVfZ2V0X3BhZ2VzKHZvaWQgKmNwdV9hZGRyLAotCQkJCSAgICAgICBjb25zdCBzdHJ1Y3Qg ZG1hX2F0dHJzICphdHRycykKK3N0YXRpYyBzdHJ1Y3QgcGFnZSAqKl9faW9tbXVfZ2V0X3BhZ2Vz KHZvaWQgKmNwdV9hZGRyLCB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCXN0cnVjdCB2bV9zdHJ1 Y3QgKmFyZWE7CiAKQEAgLTE0ODYsNyArMTQ4Myw3IEBAIHN0YXRpYyB2b2lkIF9faW9tbXVfZnJl ZV9hdG9taWMoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpjcHVfYWRkciwKIH0KIAogc3RhdGlj IHZvaWQgKmFybV9pb21tdV9hbGxvY19hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBz aXplLAotCSAgICBkbWFfYWRkcl90ICpoYW5kbGUsIGdmcF90IGdmcCwgc3RydWN0IGRtYV9hdHRy cyAqYXR0cnMpCisJICAgIGRtYV9hZGRyX3QgKmhhbmRsZSwgZ2ZwX3QgZ2ZwLCB1bnNpZ25lZCBs b25nIGF0dHJzKQogewogCXBncHJvdF90IHByb3QgPSBfX2dldF9kbWFfcGdwcm90KGF0dHJzLCBQ QUdFX0tFUk5FTCk7CiAJc3RydWN0IHBhZ2UgKipwYWdlczsKQEAgLTE1MzQsNyArMTUzMSw3IEBA IGVycl9idWZmZXI6CiAKIHN0YXRpYyBpbnQgYXJtX2lvbW11X21tYXBfYXR0cnMoc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAkJICAgIHZvaWQgKmNwdV9h ZGRyLCBkbWFfYWRkcl90IGRtYV9hZGRyLCBzaXplX3Qgc2l6ZSwKLQkJICAgIHN0cnVjdCBkbWFf YXR0cnMgKmF0dHJzKQorCQkgICAgdW5zaWduZWQgbG9uZyBhdHRycykKIHsKIAl1bnNpZ25lZCBs b25nIHVhZGRyID0gdm1hLT52bV9zdGFydDsKIAl1bnNpZ25lZCBsb25nIHVzaXplID0gdm1hLT52 bV9lbmQgLSB2bWEtPnZtX3N0YXJ0OwpAQCAtMTU3MCw3ICsxNTY3LDcgQEAgc3RhdGljIGludCBh cm1faW9tbXVfbW1hcF9hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqdm1hLAogICogTXVzdCBub3QgYmUgY2FsbGVkIHdpdGggSVJRcyBkaXNhYmxlZC4KICAq Lwogdm9pZCBhcm1faW9tbXVfZnJlZV9hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBz aXplLCB2b2lkICpjcHVfYWRkciwKLQkJCSAgZG1hX2FkZHJfdCBoYW5kbGUsIHN0cnVjdCBkbWFf YXR0cnMgKmF0dHJzKQorCQkJICBkbWFfYWRkcl90IGhhbmRsZSwgdW5zaWduZWQgbG9uZyBhdHRy cykKIHsKIAlzdHJ1Y3QgcGFnZSAqKnBhZ2VzOwogCXNpemUgPSBQQUdFX0FMSUdOKHNpemUpOwpA QCAtMTU5Nyw3ICsxNTk0LDcgQEAgdm9pZCBhcm1faW9tbXVfZnJlZV9hdHRycyhzdHJ1Y3QgZGV2 aWNlICpkZXYsIHNpemVfdCBzaXplLCB2b2lkICpjcHVfYWRkciwKIAogc3RhdGljIGludCBhcm1f aW9tbXVfZ2V0X3NndGFibGUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2dfdGFibGUgKnNn dCwKIAkJCQkgdm9pZCAqY3B1X2FkZHIsIGRtYV9hZGRyX3QgZG1hX2FkZHIsCi0JCQkJIHNpemVf dCBzaXplLCBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJCQkgc2l6ZV90IHNpemUsIHVuc2ln bmVkIGxvbmcgYXR0cnMpCiB7CiAJdW5zaWduZWQgaW50IGNvdW50ID0gUEFHRV9BTElHTihzaXpl KSA+PiBQQUdFX1NISUZUOwogCXN0cnVjdCBwYWdlICoqcGFnZXMgPSBfX2lvbW11X2dldF9wYWdl cyhjcHVfYWRkciwgYXR0cnMpOwpAQCAtMTYzNSw4ICsxNjMyLDggQEAgc3RhdGljIGludCBfX2Rt YV9kaXJlY3Rpb25fdG9fcHJvdChlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCiAgKi8KIHN0 YXRpYyBpbnQgX19tYXBfc2dfY2h1bmsoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRl cmxpc3QgKnNnLAogCQkJICBzaXplX3Qgc2l6ZSwgZG1hX2FkZHJfdCAqaGFuZGxlLAotCQkJICBl bnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsCi0JCQkgIGNvbnN0IHN0cnVjdCBkbWFfYXR0cnMg KmF0dHJzLCBib29sIGlzX2NvaGVyZW50KQorCQkJICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBk aXIsIHVuc2lnbmVkIGxvbmcgYXR0cnMsCisJCQkgIGJvb2wgaXNfY29oZXJlbnQpCiB7CiAJc3Ry dWN0IGRtYV9pb21tdV9tYXBwaW5nICptYXBwaW5nID0gdG9fZG1hX2lvbW11X21hcHBpbmcoZGV2 KTsKIAlkbWFfYWRkcl90IGlvdmEsIGlvdmFfYmFzZTsKQEAgLTE2NzgsOCArMTY3NSw4IEBAIGZh aWw6CiB9CiAKIHN0YXRpYyBpbnQgX19pb21tdV9tYXBfc2coc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLCBpbnQgbmVudHMsCi0JCSAgICAgZW51bSBkbWFfZGF0YV9k aXJlY3Rpb24gZGlyLAotCQkgICAgIGNvbnN0IHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzLCBib29s IGlzX2NvaGVyZW50KQorCQkgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgdW5zaWdu ZWQgbG9uZyBhdHRycywKKwkJICAgICBib29sIGlzX2NvaGVyZW50KQogewogCXN0cnVjdCBzY2F0 dGVybGlzdCAqcyA9IHNnLCAqZG1hID0gc2csICpzdGFydCA9IHNnOwogCWludCBpLCBjb3VudCA9 IDA7CkBAIC0xNzM2LDcgKzE3MzMsNyBAQCBiYWRfbWFwcGluZzoKICAqIG9idGFpbmVkIHZpYSBz Z19kbWFfe2FkZHJlc3MsbGVuZ3RofS4KICAqLwogaW50IGFybV9jb2hlcmVudF9pb21tdV9tYXBf c2coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLAotCQlpbnQgbmVu dHMsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMp CisJCWludCBuZW50cywgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCB1bnNpZ25lZCBsb25n IGF0dHJzKQogewogCXJldHVybiBfX2lvbW11X21hcF9zZyhkZXYsIHNnLCBuZW50cywgZGlyLCBh dHRycywgdHJ1ZSk7CiB9CkBAIC0xNzU0LDE0ICsxNzUxLDE0IEBAIGludCBhcm1fY29oZXJlbnRf aW9tbXVfbWFwX3NnKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywK ICAqIHNnX2RtYV97YWRkcmVzcyxsZW5ndGh9LgogICovCiBpbnQgYXJtX2lvbW11X21hcF9zZyhz dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2csCi0JCWludCBuZW50cywg ZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJ aW50IG5lbnRzLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsIHVuc2lnbmVkIGxvbmcgYXR0 cnMpCiB7CiAJcmV0dXJuIF9faW9tbXVfbWFwX3NnKGRldiwgc2csIG5lbnRzLCBkaXIsIGF0dHJz LCBmYWxzZSk7CiB9CiAKIHN0YXRpYyB2b2lkIF9faW9tbXVfdW5tYXBfc2coc3RydWN0IGRldmlj ZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLAogCQlpbnQgbmVudHMsIGVudW0gZG1hX2Rh dGFfZGlyZWN0aW9uIGRpciwKLQkJY29uc3Qgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMsIGJvb2wg aXNfY29oZXJlbnQpCisJCXVuc2lnbmVkIGxvbmcgYXR0cnMsIGJvb2wgaXNfY29oZXJlbnQpCiB7 CiAJc3RydWN0IHNjYXR0ZXJsaXN0ICpzOwogCWludCBpOwpAQCAtMTc4OCw3ICsxNzg1LDggQEAg c3RhdGljIHZvaWQgX19pb21tdV91bm1hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBz Y2F0dGVybGlzdCAqc2csCiAgKiBydWxlcyBjb25jZXJuaW5nIGNhbGxzIGhlcmUgYXJlIHRoZSBz YW1lIGFzIGZvciBkbWFfdW5tYXBfc2luZ2xlKCkuCiAgKi8KIHZvaWQgYXJtX2NvaGVyZW50X2lv bW11X3VubWFwX3NnKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywK LQkJaW50IG5lbnRzLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsIHN0cnVjdCBkbWFfYXR0 cnMgKmF0dHJzKQorCQlpbnQgbmVudHMsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKKwkJ dW5zaWduZWQgbG9uZyBhdHRycykKIHsKIAlfX2lvbW11X3VubWFwX3NnKGRldiwgc2csIG5lbnRz LCBkaXIsIGF0dHJzLCB0cnVlKTsKIH0KQEAgLTE4MDQsNyArMTgwMiw4IEBAIHZvaWQgYXJtX2Nv aGVyZW50X2lvbW11X3VubWFwX3NnKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNjYXR0ZXJs aXN0ICpzZywKICAqIHJ1bGVzIGNvbmNlcm5pbmcgY2FsbHMgaGVyZSBhcmUgdGhlIHNhbWUgYXMg Zm9yIGRtYV91bm1hcF9zaW5nbGUoKS4KICAqLwogdm9pZCBhcm1faW9tbXVfdW5tYXBfc2coc3Ry dWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLCBpbnQgbmVudHMsCi0JCQll bnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKQorCQkJ ZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLAorCQkJdW5zaWduZWQgbG9uZyBhdHRycykKIHsK IAlfX2lvbW11X3VubWFwX3NnKGRldiwgc2csIG5lbnRzLCBkaXIsIGF0dHJzLCBmYWxzZSk7CiB9 CkBAIC0xODU3LDcgKzE4NTYsNyBAQCB2b2lkIGFybV9pb21tdV9zeW5jX3NnX2Zvcl9kZXZpY2Uo c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLAogICovCiBzdGF0aWMg ZG1hX2FkZHJfdCBhcm1fY29oZXJlbnRfaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2 LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAkgICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCBzaXplX3Qg c2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLAotCSAgICAgc3RydWN0IGRtYV9hdHRy cyAqYXR0cnMpCisJICAgICB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCXN0cnVjdCBkbWFfaW9t bXVfbWFwcGluZyAqbWFwcGluZyA9IHRvX2RtYV9pb21tdV9tYXBwaW5nKGRldik7CiAJZG1hX2Fk ZHJfdCBkbWFfYWRkcjsKQEAgLTE4OTEsNyArMTg5MCw3IEBAIGZhaWw6CiAgKi8KIHN0YXRpYyBk bWFfYWRkcl90IGFybV9pb21tdV9tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBw YWdlICpwYWdlLAogCSAgICAgdW5zaWduZWQgbG9uZyBvZmZzZXQsIHNpemVfdCBzaXplLCBlbnVt IGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsCi0JICAgICBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykK KwkgICAgIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJaWYgKCFkbWFfZ2V0X2F0dHIoRE1BX0FU VFJfU0tJUF9DUFVfU1lOQywgYXR0cnMpKQogCQlfX2RtYV9wYWdlX2NwdV90b19kZXYocGFnZSwg b2Zmc2V0LCBzaXplLCBkaXIpOwpAQCAtMTkwOSw4ICsxOTA4LDcgQEAgc3RhdGljIGRtYV9hZGRy X3QgYXJtX2lvbW11X21hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnBh Z2UsCiAgKiBDb2hlcmVudCBJT01NVSBhd2FyZSB2ZXJzaW9uIG9mIGFybV9kbWFfdW5tYXBfcGFn ZSgpCiAgKi8KIHN0YXRpYyB2b2lkIGFybV9jb2hlcmVudF9pb21tdV91bm1hcF9wYWdlKHN0cnVj dCBkZXZpY2UgKmRldiwgZG1hX2FkZHJfdCBoYW5kbGUsCi0JCXNpemVfdCBzaXplLCBlbnVtIGRt YV9kYXRhX2RpcmVjdGlvbiBkaXIsCi0JCXN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKQorCQlzaXpl X3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCB1bnNpZ25lZCBsb25nIGF0dHJz KQogewogCXN0cnVjdCBkbWFfaW9tbXVfbWFwcGluZyAqbWFwcGluZyA9IHRvX2RtYV9pb21tdV9t YXBwaW5nKGRldik7CiAJZG1hX2FkZHJfdCBpb3ZhID0gaGFuZGxlICYgUEFHRV9NQVNLOwpAQCAt MTkzNCw4ICsxOTMyLDcgQEAgc3RhdGljIHZvaWQgYXJtX2NvaGVyZW50X2lvbW11X3VubWFwX3Bh Z2Uoc3RydWN0IGRldmljZSAqZGV2LCBkbWFfYWRkcl90IGhhbmRsZSwKICAqIElPTU1VIGF3YXJl IHZlcnNpb24gb2YgYXJtX2RtYV91bm1hcF9wYWdlKCkKICAqLwogc3RhdGljIHZvaWQgYXJtX2lv bW11X3VubWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2LCBkbWFfYWRkcl90IGhhbmRsZSwKLQkJ c2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKLQkJc3RydWN0IGRtYV9h dHRycyAqYXR0cnMpCisJCXNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIs IHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJc3RydWN0IGRtYV9pb21tdV9tYXBwaW5nICptYXBw aW5nID0gdG9fZG1hX2lvbW11X21hcHBpbmcoZGV2KTsKIAlkbWFfYWRkcl90IGlvdmEgPSBoYW5k bGUgJiBQQUdFX01BU0s7CmRpZmYgLS1naXQgYS9hcmNoL2FybS94ZW4vbW0uYyBiL2FyY2gvYXJt L3hlbi9tbS5jCmluZGV4IGM1ZjlhOWUzZDFmMy4uZmM2N2VkMjM2YTEwIDEwMDY0NAotLS0gYS9h cmNoL2FybS94ZW4vbW0uYworKysgYi9hcmNoL2FybS94ZW4vbW0uYwpAQCAtOTgsNyArOTgsNyBA QCBzdGF0aWMgdm9pZCBfX3hlbl9kbWFfcGFnZV9jcHVfdG9fZGV2KHN0cnVjdCBkZXZpY2UgKmh3 ZGV2LCBkbWFfYWRkcl90IGhhbmRsZSwKIAogdm9pZCBfX3hlbl9kbWFfbWFwX3BhZ2Uoc3RydWN0 IGRldmljZSAqaHdkZXYsIHN0cnVjdCBwYWdlICpwYWdlLAogCSAgICAgZG1hX2FkZHJfdCBkZXZf YWRkciwgdW5zaWduZWQgbG9uZyBvZmZzZXQsIHNpemVfdCBzaXplLAotCSAgICAgZW51bSBkbWFf ZGF0YV9kaXJlY3Rpb24gZGlyLCBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkgICAgIGVudW0g ZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgdW5zaWduZWQgbG9uZyBhdHRycykKIHsKIAlpZiAoaXNf ZGV2aWNlX2RtYV9jb2hlcmVudChod2RldikpCiAJCXJldHVybjsKQEAgLTExMCw3ICsxMTAsNyBA QCB2b2lkIF9feGVuX2RtYV9tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpod2Rldiwgc3RydWN0IHBh Z2UgKnBhZ2UsCiAKIHZvaWQgX194ZW5fZG1hX3VubWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqaHdk ZXYsIGRtYV9hZGRyX3QgaGFuZGxlLAogCQlzaXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJl Y3Rpb24gZGlyLAotCQlzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJdW5zaWduZWQgbG9uZyBh dHRycykKIAogewogCWlmIChpc19kZXZpY2VfZG1hX2NvaGVyZW50KGh3ZGV2KSkKLS0gCjEuOS4x CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVu Lm9yZy94ZW4tZGV2ZWwK