From mboxrd@z Thu Jan 1 00:00:00 1970 From: Krzysztof Kozlowski Subject: [RFC v3 05/45] ARM: dma-mapping: Use unsigned long for dma_attrs Date: Thu, 02 Jun 2016 17:39:07 +0200 Message-ID: <1464881987-13203-6-git-send-email-k.kozlowski__45193.2084550664$1464882130$gmane$org@samsung.com> References: <1464881987-13203-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.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b8Ujj-0002Xo-Od for xen-devel@lists.xenproject.org; Thu, 02 Jun 2016 15:40:43 +0000 Received: from eucpsbgm1.samsung.com (unknown [203.254.199.244]) by mailout4.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0O8500AJ2I7SB610@mailout4.w1.samsung.com> for xen-devel@lists.xenproject.org; Thu, 02 Jun 2016 16:40:41 +0100 (BST) In-reply-to: <1464881987-13203-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: Richard Henderson , Ivan Kokshaysky , Matt Turner , Vineet Gupta , Russell King , Stefano Stabellini , Catalin Marinas , Will Deacon , Haavard Skinnemoen , Hans-Christian Egtvedt , Steven Miao , Mark Salter , Aurelien Jacquiot , Mikael Starvik , Jesper Nilsson , Yoshinori Sato , Richard Kuo , Tony Luck , Fenghua Yu , Konrad Rzeszutek Wilk , Geert Uytterhoeven , James Hogan Michal Simek Cc: hch@infradead.org, Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz List-Id: xen-devel@lists.xenproject.org U3BsaXQgb3V0IHN1YnN5c3RlbSBzcGVjaWZpYyBjaGFuZ2VzIGZvciBlYXNpZXIgcmV2aWV3cy4g VGhpcyB3aWxsIGJlCnNxdWFzaGVkIHdpdGggbWFpbiBjb21taXQuCgpTaWduZWQtb2ZmLWJ5OiBL cnp5c3p0b2YgS296bG93c2tpIDxrLmtvemxvd3NraUBzYW1zdW5nLmNvbT4KLS0tCiBhcmNoL2Fy bS9jb21tb24vZG1hYm91bmNlLmMgICAgICAgICAgICAgIHwgIDQgKy0KIGFyY2gvYXJtL2luY2x1 ZGUvYXNtL2RtYS1tYXBwaW5nLmggICAgICAgfCAxMyArKystLQogYXJjaC9hcm0vaW5jbHVkZS9h c20veGVuL3BhZ2UtY29oZXJlbnQuaCB8IDE2ICsrKy0tLS0KIGFyY2gvYXJtL21tL2RtYS1tYXBw aW5nLmMgICAgICAgICAgICAgICAgfCA4MSArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LQogYXJjaC9hcm0veGVuL21tLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiA1IGZp bGVzIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDYyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2FyY2gvYXJtL2NvbW1vbi9kbWFib3VuY2UuYyBiL2FyY2gvYXJtL2NvbW1vbi9kbWFib3Vu Y2UuYwppbmRleCAxMTQzYzRkNWM1NjcuLjMwMTI4MTY0NWQwOCAxMDA2NDQKLS0tIGEvYXJjaC9h cm0vY29tbW9uL2RtYWJvdW5jZS5jCisrKyBiL2FyY2gvYXJtL2NvbW1vbi9kbWFib3VuY2UuYwpA QCAtMzEwLDcgKzMxMCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB1bm1hcF9zaW5nbGUoc3RydWN0 IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2FmZV9idWZmZXIgKmJ1ZiwKICAqLwogc3RhdGljIGRtYV9h ZGRyX3QgZG1hYm91bmNlX21hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBhZ2Ug KnBhZ2UsCiAJCXVuc2lnbmVkIGxvbmcgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0 YV9kaXJlY3Rpb24gZGlyLAotCQlzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJdW5zaWduZWQg bG9uZyBhdHRycykKIHsKIAlkbWFfYWRkcl90IGRtYV9hZGRyOwogCWludCByZXQ7CkBAIC0zNDQs NyArMzQ0LDcgQEAgc3RhdGljIGRtYV9hZGRyX3QgZG1hYm91bmNlX21hcF9wYWdlKHN0cnVjdCBk ZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnBhZ2UsCiAgKiBzaG91bGQgYmUpCiAgKi8KIHN0YXRp YyB2b2lkIGRtYWJvdW5jZV91bm1hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmRldiwgZG1hX2FkZHJf dCBkbWFfYWRkciwgc2l6ZV90IHNpemUsCi0JCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwg c3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwg dW5zaWduZWQgbG9uZyBhdHRycykKIHsKIAlzdHJ1Y3Qgc2FmZV9idWZmZXIgKmJ1ZjsKIApkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vZG1hLW1hcHBpbmcuaCBiL2FyY2gvYXJtL2lu Y2x1ZGUvYXNtL2RtYS1tYXBwaW5nLmgKaW5kZXggYTgzNTcwZjEwMTI0Li5kMDA5Zjc5MTFmZmMg MTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2RtYS1tYXBwaW5nLmgKKysrIGIvYXJj aC9hcm0vaW5jbHVkZS9hc20vZG1hLW1hcHBpbmcuaApAQCAtNSw3ICs1LDYgQEAKIAogI2luY2x1 ZGUgPGxpbnV4L21tX3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvc2NhdHRlcmxpc3QuaD4KLSNp bmNsdWRlIDxsaW51eC9kbWEtYXR0cnMuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtZGVidWcuaD4K IAogI2luY2x1ZGUgPGFzbS9tZW1vcnkuaD4KQEAgLTE3NCw3ICsxNzMsNyBAQCBzdGF0aWMgaW5s aW5lIHZvaWQgZG1hX21hcmtfY2xlYW4odm9pZCAqYWRkciwgc2l6ZV90IHNpemUpIHsgfQogICog dG8gYmUgdGhlIGRldmljZS12aWV3ZWQgYWRkcmVzcy4KICAqLwogZXh0ZXJuIHZvaWQgKmFybV9k bWFfYWxsb2Moc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwgZG1hX2FkZHJfdCAqaGFu ZGxlLAotCQkJICAgZ2ZwX3QgZ2ZwLCBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycyk7CisJCQkgICBn ZnBfdCBnZnAsIHVuc2lnbmVkIGxvbmcgYXR0cnMpOwogCiAvKioKICAqIGFybV9kbWFfZnJlZSAt IGZyZWUgbWVtb3J5IGFsbG9jYXRlZCBieSBhcm1fZG1hX2FsbG9jCkBAIC0xOTEsNyArMTkwLDcg QEAgZXh0ZXJuIHZvaWQgKmFybV9kbWFfYWxsb2Moc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qg c2l6ZSwgZG1hX2FkZHJfdCAqaGFuZGxlLAogICogZHVyaW5nIGFuZCBhZnRlciB0aGlzIGNhbGwg ZXhlY3V0aW5nIGFyZSBpbGxlZ2FsLgogICovCiBleHRlcm4gdm9pZCBhcm1fZG1hX2ZyZWUoc3Ry dWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwgdm9pZCAqY3B1X2FkZHIsCi0JCQkgZG1hX2Fk ZHJfdCBoYW5kbGUsIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKTsKKwkJCSBkbWFfYWRkcl90IGhh bmRsZSwgdW5zaWduZWQgbG9uZyBhdHRycyk7CiAKIC8qKgogICogYXJtX2RtYV9tbWFwIC0gbWFw IGEgY29oZXJlbnQgRE1BIGFsbG9jYXRpb24gaW50byB1c2VyIHNwYWNlCkBAIC0yMDgsNyArMjA3 LDcgQEAgZXh0ZXJuIHZvaWQgYXJtX2RtYV9mcmVlKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90 IHNpemUsIHZvaWQgKmNwdV9hZGRyLAogICovCiBleHRlcm4gaW50IGFybV9kbWFfbW1hcChzdHJ1 Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCQkJdm9pZCAqY3B1 X2FkZHIsIGRtYV9hZGRyX3QgZG1hX2FkZHIsIHNpemVfdCBzaXplLAotCQkJc3RydWN0IGRtYV9h dHRycyAqYXR0cnMpOworCQkJdW5zaWduZWQgbG9uZyBhdHRycyk7CiAKIC8qCiAgKiBUaGlzIGNh biBiZSBjYWxsZWQgZHVyaW5nIGVhcmx5IGJvb3QgdG8gaW5jcmVhc2UgdGhlIHNpemUgb2YgdGhl IGF0b21pYwpAQCAtMjYyLDE2ICsyNjEsMTYgQEAgZXh0ZXJuIHZvaWQgZG1hYm91bmNlX3VucmVn aXN0ZXJfZGV2KHN0cnVjdCBkZXZpY2UgKik7CiAgKiBUaGUgc2NhdHRlciBsaXN0IHZlcnNpb25z IG9mIHRoZSBhYm92ZSBtZXRob2RzLgogICovCiBleHRlcm4gaW50IGFybV9kbWFfbWFwX3NnKHN0 cnVjdCBkZXZpY2UgKiwgc3RydWN0IHNjYXR0ZXJsaXN0ICosIGludCwKLQkJZW51bSBkbWFfZGF0 YV9kaXJlY3Rpb24sIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKTsKKwkJZW51bSBkbWFfZGF0YV9k aXJlY3Rpb24sIHVuc2lnbmVkIGxvbmcgYXR0cnMpOwogZXh0ZXJuIHZvaWQgYXJtX2RtYV91bm1h cF9zZyhzdHJ1Y3QgZGV2aWNlICosIHN0cnVjdCBzY2F0dGVybGlzdCAqLCBpbnQsCi0JCWVudW0g ZG1hX2RhdGFfZGlyZWN0aW9uLCBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycyk7CisJCWVudW0gZG1h X2RhdGFfZGlyZWN0aW9uLCB1bnNpZ25lZCBsb25nIGF0dHJzKTsKIGV4dGVybiB2b2lkIGFybV9k bWFfc3luY19zZ19mb3JfY3B1KHN0cnVjdCBkZXZpY2UgKiwgc3RydWN0IHNjYXR0ZXJsaXN0ICos IGludCwKIAkJZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24pOwogZXh0ZXJuIHZvaWQgYXJtX2RtYV9z eW5jX3NnX2Zvcl9kZXZpY2Uoc3RydWN0IGRldmljZSAqLCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKiwg aW50LAogCQllbnVtIGRtYV9kYXRhX2RpcmVjdGlvbik7CiBleHRlcm4gaW50IGFybV9kbWFfZ2V0 X3NndGFibGUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2dfdGFibGUgKnNndCwKIAkJdm9p ZCAqY3B1X2FkZHIsIGRtYV9hZGRyX3QgZG1hX2FkZHIsIHNpemVfdCBzaXplLAotCQlzdHJ1Y3Qg ZG1hX2F0dHJzICphdHRycyk7CisJCXVuc2lnbmVkIGxvbmcgYXR0cnMpOwogCiAjZW5kaWYgLyog X19LRVJORUxfXyAqLwogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS94 ZW4vcGFnZS1jb2hlcmVudC5oIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20veGVuL3BhZ2UtY29oZXJl bnQuaAppbmRleCA5NDA4YTk5NGNjOTEuLjk1Y2U2YWMzYTk3MSAxMDA2NDQKLS0tIGEvYXJjaC9h cm0vaW5jbHVkZS9hc20veGVuL3BhZ2UtY29oZXJlbnQuaAorKysgYi9hcmNoL2FybS9pbmNsdWRl L2FzbS94ZW4vcGFnZS1jb2hlcmVudC5oCkBAIC0yLDE1ICsyLDE0IEBACiAjZGVmaW5lIF9BU01f QVJNX1hFTl9QQUdFX0NPSEVSRU5UX0gKIAogI2luY2x1ZGUgPGFzbS9wYWdlLmg+Ci0jaW5jbHVk ZSA8bGludXgvZG1hLWF0dHJzLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KIAog dm9pZCBfX3hlbl9kbWFfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqaHdkZXYsIHN0cnVjdCBwYWdl ICpwYWdlLAogCSAgICAgZG1hX2FkZHJfdCBkZXZfYWRkciwgdW5zaWduZWQgbG9uZyBvZmZzZXQs IHNpemVfdCBzaXplLAotCSAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCBzdHJ1Y3Qg ZG1hX2F0dHJzICphdHRycyk7CisJICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsIHVu c2lnbmVkIGxvbmcgYXR0cnMpOwogdm9pZCBfX3hlbl9kbWFfdW5tYXBfcGFnZShzdHJ1Y3QgZGV2 aWNlICpod2RldiwgZG1hX2FkZHJfdCBoYW5kbGUsCiAJCXNpemVfdCBzaXplLCBlbnVtIGRtYV9k YXRhX2RpcmVjdGlvbiBkaXIsCi0JCXN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKTsKKwkJdW5zaWdu ZWQgbG9uZyBhdHRycyk7CiB2b2lkIF9feGVuX2RtYV9zeW5jX3NpbmdsZV9mb3JfY3B1KHN0cnVj dCBkZXZpY2UgKmh3ZGV2LAogCQlkbWFfYWRkcl90IGhhbmRsZSwgc2l6ZV90IHNpemUsIGVudW0g ZG1hX2RhdGFfZGlyZWN0aW9uIGRpcik7CiAKQEAgLTE4LDIyICsxNywyMCBAQCB2b2lkIF9feGVu X2RtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LAogCQlkbWFf YWRkcl90IGhhbmRsZSwgc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcik7 CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCAqeGVuX2FsbG9jX2NvaGVyZW50X3BhZ2VzKHN0cnVjdCBk ZXZpY2UgKmh3ZGV2LCBzaXplX3Qgc2l6ZSwKLQkJZG1hX2FkZHJfdCAqZG1hX2hhbmRsZSwgZ2Zw X3QgZmxhZ3MsCi0JCXN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKQorCQlkbWFfYWRkcl90ICpkbWFf aGFuZGxlLCBnZnBfdCBmbGFncywgdW5zaWduZWQgbG9uZyBhdHRycykKIHsKIAlyZXR1cm4gX19n ZW5lcmljX2RtYV9vcHMoaHdkZXYpLT5hbGxvYyhod2Rldiwgc2l6ZSwgZG1hX2hhbmRsZSwgZmxh Z3MsIGF0dHJzKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHhlbl9mcmVlX2NvaGVyZW50X3Bh Z2VzKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBzaXplX3Qgc2l6ZSwKLQkJdm9pZCAqY3B1X2FkZHIs IGRtYV9hZGRyX3QgZG1hX2hhbmRsZSwKLQkJc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCXZv aWQgKmNwdV9hZGRyLCBkbWFfYWRkcl90IGRtYV9oYW5kbGUsIHVuc2lnbmVkIGxvbmcgYXR0cnMp CiB7CiAJX19nZW5lcmljX2RtYV9vcHMoaHdkZXYpLT5mcmVlKGh3ZGV2LCBzaXplLCBjcHVfYWRk ciwgZG1hX2hhbmRsZSwgYXR0cnMpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX2RtYV9t YXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpod2Rldiwgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJICAgICBk bWFfYWRkcl90IGRldl9hZGRyLCB1bnNpZ25lZCBsb25nIG9mZnNldCwgc2l6ZV90IHNpemUsCi0J ICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJz KQorCSAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCB1bnNpZ25lZCBsb25nIGF0dHJz KQogewogCXVuc2lnbmVkIGxvbmcgcGFnZV9wZm4gPSBwYWdlX3RvX3hlbl9wZm4ocGFnZSk7CiAJ dW5zaWduZWQgbG9uZyBkZXZfcGZuID0gWEVOX1BGTl9ET1dOKGRldl9hZGRyKTsKQEAgLTU4LDgg KzU1LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHhlbl9kbWFfbWFwX3BhZ2Uoc3RydWN0IGRldmlj ZSAqaHdkZXYsIHN0cnVjdCBwYWdlICpwYWdlLAogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgeGVu X2RtYV91bm1hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBkbWFfYWRkcl90IGhhbmRsZSwK LQkJc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKLQkJc3RydWN0IGRt YV9hdHRycyAqYXR0cnMpCisJCXNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBk aXIsIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJdW5zaWduZWQgbG9uZyBwZm4gPSBQRk5fRE9X TihoYW5kbGUpOwogCS8qCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tbS9kbWEtbWFwcGluZy5jIGIv YXJjaC9hcm0vbW0vZG1hLW1hcHBpbmcuYwppbmRleCBmZjdlZDU2OTdkM2UuLmViYjNmZGU5OTA0 MyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbW0vZG1hLW1hcHBpbmcuYworKysgYi9hcmNoL2FybS9t bS9kbWEtbWFwcGluZy5jCkBAIC0xMjQsNyArMTI0LDcgQEAgc3RhdGljIHZvaWQgX19kbWFfcGFn ZV9kZXZfdG9fY3B1KHN0cnVjdCBwYWdlICosIHVuc2lnbmVkIGxvbmcsCiAgKi8KIHN0YXRpYyBk bWFfYWRkcl90IGFybV9kbWFfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcGFn ZSAqcGFnZSwKIAkgICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgZW51bSBk bWFfZGF0YV9kaXJlY3Rpb24gZGlyLAotCSAgICAgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJ ICAgICB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCWlmICghZG1hX2dldF9hdHRyKERNQV9BVFRS X1NLSVBfQ1BVX1NZTkMsIGF0dHJzKSkKIAkJX19kbWFfcGFnZV9jcHVfdG9fZGV2KHBhZ2UsIG9m ZnNldCwgc2l6ZSwgZGlyKTsKQEAgLTEzMyw3ICsxMzMsNyBAQCBzdGF0aWMgZG1hX2FkZHJfdCBh cm1fZG1hX21hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnBhZ2UsCiAK IHN0YXRpYyBkbWFfYWRkcl90IGFybV9jb2hlcmVudF9kbWFfbWFwX3BhZ2Uoc3RydWN0IGRldmlj ZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAkgICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCBz aXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLAotCSAgICAgc3RydWN0IGRt YV9hdHRycyAqYXR0cnMpCisJICAgICB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCXJldHVybiBw Zm5fdG9fZG1hKGRldiwgcGFnZV90b19wZm4ocGFnZSkpICsgb2Zmc2V0OwogfQpAQCAtMTUzLDgg KzE1Myw3IEBAIHN0YXRpYyBkbWFfYWRkcl90IGFybV9jb2hlcmVudF9kbWFfbWFwX3BhZ2Uoc3Ry dWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnCiAgKiB3aGF0ZXZlciB0aGUgZGV2aWNl IHdyb3RlIHRoZXJlLgogICovCiBzdGF0aWMgdm9pZCBhcm1fZG1hX3VubWFwX3BhZ2Uoc3RydWN0 IGRldmljZSAqZGV2LCBkbWFfYWRkcl90IGhhbmRsZSwKLQkJc2l6ZV90IHNpemUsIGVudW0gZG1h X2RhdGFfZGlyZWN0aW9uIGRpciwKLQkJc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCXNpemVf dCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsIHVuc2lnbmVkIGxvbmcgYXR0cnMp CiB7CiAJaWYgKCFkbWFfZ2V0X2F0dHIoRE1BX0FUVFJfU0tJUF9DUFVfU1lOQywgYXR0cnMpKQog CQlfX2RtYV9wYWdlX2Rldl90b19jcHUocGZuX3RvX3BhZ2UoZG1hX3RvX3BmbihkZXYsIGhhbmRs ZSkpLApAQCAtMTk0LDEyICsxOTMsMTIgQEAgc3RydWN0IGRtYV9tYXBfb3BzIGFybV9kbWFfb3Bz ID0gewogRVhQT1JUX1NZTUJPTChhcm1fZG1hX29wcyk7CiAKIHN0YXRpYyB2b2lkICphcm1fY29o ZXJlbnRfZG1hX2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCi0JZG1hX2Fk ZHJfdCAqaGFuZGxlLCBnZnBfdCBnZnAsIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKTsKKwlkbWFf YWRkcl90ICpoYW5kbGUsIGdmcF90IGdmcCwgdW5zaWduZWQgbG9uZyBhdHRycyk7CiBzdGF0aWMg dm9pZCBhcm1fY29oZXJlbnRfZG1hX2ZyZWUoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6 ZSwgdm9pZCAqY3B1X2FkZHIsCi0JCQkJICBkbWFfYWRkcl90IGhhbmRsZSwgc3RydWN0IGRtYV9h dHRycyAqYXR0cnMpOworCQkJCSAgZG1hX2FkZHJfdCBoYW5kbGUsIHVuc2lnbmVkIGxvbmcgYXR0 cnMpOwogc3RhdGljIGludCBhcm1fY29oZXJlbnRfZG1hX21tYXAoc3RydWN0IGRldmljZSAqZGV2 LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAkJIHZvaWQgKmNwdV9hZGRyLCBkbWFfYWRk cl90IGRtYV9hZGRyLCBzaXplX3Qgc2l6ZSwKLQkJIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKTsK KwkJIHVuc2lnbmVkIGxvbmcgYXR0cnMpOwogCiBzdHJ1Y3QgZG1hX21hcF9vcHMgYXJtX2NvaGVy ZW50X2RtYV9vcHMgPSB7CiAJLmFsbG9jCQkJPSBhcm1fY29oZXJlbnRfZG1hX2FsbG9jLApAQCAt NjIxLDcgKzYyMCw3IEBAIHN0YXRpYyB2b2lkIF9fZnJlZV9mcm9tX2NvbnRpZ3VvdXMoc3RydWN0 IGRldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAlkbWFfcmVsZWFzZV9mcm9tX2NvbnRp Z3VvdXMoZGV2LCBwYWdlLCBzaXplID4+IFBBR0VfU0hJRlQpOwogfQogCi1zdGF0aWMgaW5saW5l IHBncHJvdF90IF9fZ2V0X2RtYV9wZ3Byb3Qoc3RydWN0IGRtYV9hdHRycyAqYXR0cnMsIHBncHJv dF90IHByb3QpCitzdGF0aWMgaW5saW5lIHBncHJvdF90IF9fZ2V0X2RtYV9wZ3Byb3QodW5zaWdu ZWQgbG9uZyBhdHRycywgcGdwcm90X3QgcHJvdCkKIHsKIAlwcm90ID0gZG1hX2dldF9hdHRyKERN QV9BVFRSX1dSSVRFX0NPTUJJTkUsIGF0dHJzKSA/CiAJCQkgICAgcGdwcm90X3dyaXRlY29tYmlu ZShwcm90KSA6CkBAIC03MzIsNyArNzMxLDcgQEAgc3RhdGljIHN0cnVjdCBhcm1fZG1hX2FsbG9j YXRvciByZW1hcF9hbGxvY2F0b3IgPSB7CiAKIHN0YXRpYyB2b2lkICpfX2RtYV9hbGxvYyhzdHJ1 Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLCBkbWFfYWRkcl90ICpoYW5kbGUsCiAJCQkgZ2Zw X3QgZ2ZwLCBwZ3Byb3RfdCBwcm90LCBib29sIGlzX2NvaGVyZW50LAotCQkJIHN0cnVjdCBkbWFf YXR0cnMgKmF0dHJzLCBjb25zdCB2b2lkICpjYWxsZXIpCisJCQkgdW5zaWduZWQgbG9uZyBhdHRy cywgY29uc3Qgdm9pZCAqY2FsbGVyKQogewogCXU2NCBtYXNrID0gZ2V0X2NvaGVyZW50X2RtYV9t YXNrKGRldik7CiAJc3RydWN0IHBhZ2UgKnBhZ2UgPSBOVUxMOwpAQCAtODE0LDcgKzgxMyw3IEBA IHN0YXRpYyB2b2lkICpfX2RtYV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXpl LCBkbWFfYWRkcl90ICpoYW5kbGUsCiAgKiB2aXJ0dWFsIGFuZCBidXMgYWRkcmVzcyBmb3IgdGhh dCBzcGFjZS4KICAqLwogdm9pZCAqYXJtX2RtYV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNp emVfdCBzaXplLCBkbWFfYWRkcl90ICpoYW5kbGUsCi0JCSAgICBnZnBfdCBnZnAsIHN0cnVjdCBk bWFfYXR0cnMgKmF0dHJzKQorCQkgICAgZ2ZwX3QgZ2ZwLCB1bnNpZ25lZCBsb25nIGF0dHJzKQog ewogCXBncHJvdF90IHByb3QgPSBfX2dldF9kbWFfcGdwcm90KGF0dHJzLCBQQUdFX0tFUk5FTCk7 CiAKQEAgLTgyMyw3ICs4MjIsNyBAQCB2b2lkICphcm1fZG1hX2FsbG9jKHN0cnVjdCBkZXZpY2Ug KmRldiwgc2l6ZV90IHNpemUsIGRtYV9hZGRyX3QgKmhhbmRsZSwKIH0KIAogc3RhdGljIHZvaWQg KmFybV9jb2hlcmVudF9kbWFfYWxsb2Moc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwK LQlkbWFfYWRkcl90ICpoYW5kbGUsIGdmcF90IGdmcCwgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMp CisJZG1hX2FkZHJfdCAqaGFuZGxlLCBnZnBfdCBnZnAsIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7 CiAJcmV0dXJuIF9fZG1hX2FsbG9jKGRldiwgc2l6ZSwgaGFuZGxlLCBnZnAsIFBBR0VfS0VSTkVM LCB0cnVlLAogCQkJICAgYXR0cnMsIF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSk7CkBAIC04 MzEsNyArODMwLDcgQEAgc3RhdGljIHZvaWQgKmFybV9jb2hlcmVudF9kbWFfYWxsb2Moc3RydWN0 IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKIAogc3RhdGljIGludCBfX2FybV9kbWFfbW1hcChz dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCQkgdm9pZCAq Y3B1X2FkZHIsIGRtYV9hZGRyX3QgZG1hX2FkZHIsIHNpemVfdCBzaXplLAotCQkgc3RydWN0IGRt YV9hdHRycyAqYXR0cnMpCisJCSB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCWludCByZXQgPSAt RU5YSU87CiAjaWZkZWYgQ09ORklHX01NVQpAQCAtODU5LDE0ICs4NTgsMTQgQEAgc3RhdGljIGlu dCBfX2FybV9kbWFfbW1hcChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB2bV9hcmVhX3N0cnVj dCAqdm1hLAogICovCiBzdGF0aWMgaW50IGFybV9jb2hlcmVudF9kbWFfbW1hcChzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCQkgdm9pZCAqY3B1X2FkZHIs IGRtYV9hZGRyX3QgZG1hX2FkZHIsIHNpemVfdCBzaXplLAotCQkgc3RydWN0IGRtYV9hdHRycyAq YXR0cnMpCisJCSB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCXJldHVybiBfX2FybV9kbWFfbW1h cChkZXYsIHZtYSwgY3B1X2FkZHIsIGRtYV9hZGRyLCBzaXplLCBhdHRycyk7CiB9CiAKIGludCBh cm1fZG1hX21tYXAoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZt YSwKIAkJIHZvaWQgKmNwdV9hZGRyLCBkbWFfYWRkcl90IGRtYV9hZGRyLCBzaXplX3Qgc2l6ZSwK LQkJIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKQorCQkgdW5zaWduZWQgbG9uZyBhdHRycykKIHsK ICNpZmRlZiBDT05GSUdfTU1VCiAJdm1hLT52bV9wYWdlX3Byb3QgPSBfX2dldF9kbWFfcGdwcm90 KGF0dHJzLCB2bWEtPnZtX3BhZ2VfcHJvdCk7CkBAIC04NzgsNyArODc3LDcgQEAgaW50IGFybV9k bWFfbW1hcChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAog ICogRnJlZSBhIGJ1ZmZlciBhcyBkZWZpbmVkIGJ5IHRoZSBhYm92ZSBtYXBwaW5nLgogICovCiBz dGF0aWMgdm9pZCBfX2FybV9kbWFfZnJlZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXpl LCB2b2lkICpjcHVfYWRkciwKLQkJCSAgIGRtYV9hZGRyX3QgaGFuZGxlLCBzdHJ1Y3QgZG1hX2F0 dHJzICphdHRycywKKwkJCSAgIGRtYV9hZGRyX3QgaGFuZGxlLCB1bnNpZ25lZCBsb25nIGF0dHJz LAogCQkJICAgYm9vbCBpc19jb2hlcmVudCkKIHsKIAlzdHJ1Y3QgcGFnZSAqcGFnZSA9IHBmbl90 b19wYWdlKGRtYV90b19wZm4oZGV2LCBoYW5kbGUpKTsKQEAgLTkwMCwyMCArODk5LDIwIEBAIHN0 YXRpYyB2b2lkIF9fYXJtX2RtYV9mcmVlKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUs IHZvaWQgKmNwdV9hZGRyLAogfQogCiB2b2lkIGFybV9kbWFfZnJlZShzdHJ1Y3QgZGV2aWNlICpk ZXYsIHNpemVfdCBzaXplLCB2b2lkICpjcHVfYWRkciwKLQkJICBkbWFfYWRkcl90IGhhbmRsZSwg c3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCSAgZG1hX2FkZHJfdCBoYW5kbGUsIHVuc2lnbmVk IGxvbmcgYXR0cnMpCiB7CiAJX19hcm1fZG1hX2ZyZWUoZGV2LCBzaXplLCBjcHVfYWRkciwgaGFu ZGxlLCBhdHRycywgZmFsc2UpOwogfQogCiBzdGF0aWMgdm9pZCBhcm1fY29oZXJlbnRfZG1hX2Zy ZWUoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwgdm9pZCAqY3B1X2FkZHIsCi0JCQkJ ICBkbWFfYWRkcl90IGhhbmRsZSwgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCQkJICBkbWFf YWRkcl90IGhhbmRsZSwgdW5zaWduZWQgbG9uZyBhdHRycykKIHsKIAlfX2FybV9kbWFfZnJlZShk ZXYsIHNpemUsIGNwdV9hZGRyLCBoYW5kbGUsIGF0dHJzLCB0cnVlKTsKIH0KIAogaW50IGFybV9k bWFfZ2V0X3NndGFibGUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2dfdGFibGUgKnNndCwK IAkJIHZvaWQgKmNwdV9hZGRyLCBkbWFfYWRkcl90IGhhbmRsZSwgc2l6ZV90IHNpemUsCi0JCSBz dHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJc3Ry dWN0IHBhZ2UgKnBhZ2UgPSBwZm5fdG9fcGFnZShkbWFfdG9fcGZuKGRldiwgaGFuZGxlKSk7CiAJ aW50IHJldDsKQEAgLTEwNDYsNyArMTA0NSw3IEBAIHN0YXRpYyB2b2lkIF9fZG1hX3BhZ2VfZGV2 X3RvX2NwdShzdHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgbG9uZyBvZmYsCiAgKiBoZXJlLgog ICovCiBpbnQgYXJtX2RtYV9tYXBfc2coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRl cmxpc3QgKnNnLCBpbnQgbmVudHMsCi0JCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgc3Ry dWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgdW5z aWduZWQgbG9uZyBhdHRycykKIHsKIAlzdHJ1Y3QgZG1hX21hcF9vcHMgKm9wcyA9IGdldF9kbWFf b3BzKGRldik7CiAJc3RydWN0IHNjYXR0ZXJsaXN0ICpzOwpAQCAtMTA4MCw3ICsxMDc5LDcgQEAg aW50IGFybV9kbWFfbWFwX3NnKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNjYXR0ZXJsaXN0 ICpzZywgaW50IG5lbnRzLAogICogcnVsZXMgY29uY2VybmluZyBjYWxscyBoZXJlIGFyZSB0aGUg c2FtZSBhcyBmb3IgZG1hX3VubWFwX3NpbmdsZSgpLgogICovCiB2b2lkIGFybV9kbWFfdW5tYXBf c2coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLCBpbnQgbmVudHMs Ci0JCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMp CisJCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgdW5zaWduZWQgbG9uZyBhdHRycykKIHsK IAlzdHJ1Y3QgZG1hX21hcF9vcHMgKm9wcyA9IGdldF9kbWFfb3BzKGRldik7CiAJc3RydWN0IHNj YXR0ZXJsaXN0ICpzOwpAQCAtMTI1Myw3ICsxMjUyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIF9f ZnJlZV9pb3ZhKHN0cnVjdCBkbWFfaW9tbXVfbWFwcGluZyAqbWFwcGluZywKIHN0YXRpYyBjb25z dCBpbnQgaW9tbXVfb3JkZXJfYXJyYXlbXSA9IHsgOSwgOCwgNCwgMCB9OwogCiBzdGF0aWMgc3Ry dWN0IHBhZ2UgKipfX2lvbW11X2FsbG9jX2J1ZmZlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVf dCBzaXplLAotCQkJCQkgIGdmcF90IGdmcCwgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCQkJ CSAgZ2ZwX3QgZ2ZwLCB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCXN0cnVjdCBwYWdlICoqcGFn ZXM7CiAJaW50IGNvdW50ID0gc2l6ZSA+PiBQQUdFX1NISUZUOwpAQCAtMTM0Miw3ICsxMzQxLDcg QEAgZXJyb3I6CiB9CiAKIHN0YXRpYyBpbnQgX19pb21tdV9mcmVlX2J1ZmZlcihzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCBwYWdlICoqcGFnZXMsCi0JCQkgICAgICAgc2l6ZV90IHNpemUsIHN0 cnVjdCBkbWFfYXR0cnMgKmF0dHJzKQorCQkJICAgICAgIHNpemVfdCBzaXplLCB1bnNpZ25lZCBs b25nIGF0dHJzKQogewogCWludCBjb3VudCA9IHNpemUgPj4gUEFHRV9TSElGVDsKIAlpbnQgaTsK QEAgLTE0MzksNyArMTQzOCw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZSAqKl9fYXRvbWljX2dldF9w YWdlcyh2b2lkICphZGRyKQogCXJldHVybiAoc3RydWN0IHBhZ2UgKiopcGFnZTsKIH0KIAotc3Rh dGljIHN0cnVjdCBwYWdlICoqX19pb21tdV9nZXRfcGFnZXModm9pZCAqY3B1X2FkZHIsIHN0cnVj dCBkbWFfYXR0cnMgKmF0dHJzKQorc3RhdGljIHN0cnVjdCBwYWdlICoqX19pb21tdV9nZXRfcGFn ZXModm9pZCAqY3B1X2FkZHIsIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJc3RydWN0IHZtX3N0 cnVjdCAqYXJlYTsKIApAQCAtMTQ4NCw3ICsxNDgzLDcgQEAgc3RhdGljIHZvaWQgX19pb21tdV9m cmVlX2F0b21pYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmNwdV9hZGRyLAogfQogCiBzdGF0 aWMgdm9pZCAqYXJtX2lvbW11X2FsbG9jX2F0dHJzKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90 IHNpemUsCi0JICAgIGRtYV9hZGRyX3QgKmhhbmRsZSwgZ2ZwX3QgZ2ZwLCBzdHJ1Y3QgZG1hX2F0 dHJzICphdHRycykKKwkgICAgZG1hX2FkZHJfdCAqaGFuZGxlLCBnZnBfdCBnZnAsIHVuc2lnbmVk IGxvbmcgYXR0cnMpCiB7CiAJcGdwcm90X3QgcHJvdCA9IF9fZ2V0X2RtYV9wZ3Byb3QoYXR0cnMs IFBBR0VfS0VSTkVMKTsKIAlzdHJ1Y3QgcGFnZSAqKnBhZ2VzOwpAQCAtMTUzMiw3ICsxNTMxLDcg QEAgZXJyX2J1ZmZlcjoKIAogc3RhdGljIGludCBhcm1faW9tbXVfbW1hcF9hdHRycyhzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCQkgICAgdm9pZCAqY3B1 X2FkZHIsIGRtYV9hZGRyX3QgZG1hX2FkZHIsIHNpemVfdCBzaXplLAotCQkgICAgc3RydWN0IGRt YV9hdHRycyAqYXR0cnMpCisJCSAgICB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCXVuc2lnbmVk IGxvbmcgdWFkZHIgPSB2bWEtPnZtX3N0YXJ0OwogCXVuc2lnbmVkIGxvbmcgdXNpemUgPSB2bWEt PnZtX2VuZCAtIHZtYS0+dm1fc3RhcnQ7CkBAIC0xNTY4LDcgKzE1NjcsNyBAQCBzdGF0aWMgaW50 IGFybV9pb21tdV9tbWFwX2F0dHJzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHZtX2FyZWFf c3RydWN0ICp2bWEsCiAgKiBNdXN0IG5vdCBiZSBjYWxsZWQgd2l0aCBJUlFzIGRpc2FibGVkLgog ICovCiB2b2lkIGFybV9pb21tdV9mcmVlX2F0dHJzKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90 IHNpemUsIHZvaWQgKmNwdV9hZGRyLAotCQkJICBkbWFfYWRkcl90IGhhbmRsZSwgc3RydWN0IGRt YV9hdHRycyAqYXR0cnMpCisJCQkgIGRtYV9hZGRyX3QgaGFuZGxlLCB1bnNpZ25lZCBsb25nIGF0 dHJzKQogewogCXN0cnVjdCBwYWdlICoqcGFnZXM7CiAJc2l6ZSA9IFBBR0VfQUxJR04oc2l6ZSk7 CkBAIC0xNTk1LDcgKzE1OTQsNyBAQCB2b2lkIGFybV9pb21tdV9mcmVlX2F0dHJzKHN0cnVjdCBk ZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIHZvaWQgKmNwdV9hZGRyLAogCiBzdGF0aWMgaW50IGFy bV9pb21tdV9nZXRfc2d0YWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzZ190YWJsZSAq c2d0LAogCQkJCSB2b2lkICpjcHVfYWRkciwgZG1hX2FkZHJfdCBkbWFfYWRkciwKLQkJCQkgc2l6 ZV90IHNpemUsIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKQorCQkJCSBzaXplX3Qgc2l6ZSwgdW5z aWduZWQgbG9uZyBhdHRycykKIHsKIAl1bnNpZ25lZCBpbnQgY291bnQgPSBQQUdFX0FMSUdOKHNp emUpID4+IFBBR0VfU0hJRlQ7CiAJc3RydWN0IHBhZ2UgKipwYWdlcyA9IF9faW9tbXVfZ2V0X3Bh Z2VzKGNwdV9hZGRyLCBhdHRycyk7CkBAIC0xNjMzLDcgKzE2MzIsNyBAQCBzdGF0aWMgaW50IF9f ZG1hX2RpcmVjdGlvbl90b19wcm90KGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcikKICAqLwog c3RhdGljIGludCBfX21hcF9zZ19jaHVuayhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0 dGVybGlzdCAqc2csCiAJCQkgIHNpemVfdCBzaXplLCBkbWFfYWRkcl90ICpoYW5kbGUsCi0JCQkg IGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMsCisJ CQkgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgdW5zaWduZWQgbG9uZyBhdHRycywKIAkJ CSAgYm9vbCBpc19jb2hlcmVudCkKIHsKIAlzdHJ1Y3QgZG1hX2lvbW11X21hcHBpbmcgKm1hcHBp bmcgPSB0b19kbWFfaW9tbXVfbWFwcGluZyhkZXYpOwpAQCAtMTY3Niw3ICsxNjc1LDcgQEAgZmFp bDoKIH0KIAogc3RhdGljIGludCBfX2lvbW11X21hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0 cnVjdCBzY2F0dGVybGlzdCAqc2csIGludCBuZW50cywKLQkJICAgICBlbnVtIGRtYV9kYXRhX2Rp cmVjdGlvbiBkaXIsIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzLAorCQkgICAgIGVudW0gZG1hX2Rh dGFfZGlyZWN0aW9uIGRpciwgdW5zaWduZWQgbG9uZyBhdHRycywKIAkJICAgICBib29sIGlzX2Nv aGVyZW50KQogewogCXN0cnVjdCBzY2F0dGVybGlzdCAqcyA9IHNnLCAqZG1hID0gc2csICpzdGFy dCA9IHNnOwpAQCAtMTczNCw3ICsxNzMzLDcgQEAgYmFkX21hcHBpbmc6CiAgKiBvYnRhaW5lZCB2 aWEgc2dfZG1hX3thZGRyZXNzLGxlbmd0aH0uCiAgKi8KIGludCBhcm1fY29oZXJlbnRfaW9tbXVf bWFwX3NnKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywKLQkJaW50 IG5lbnRzLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsIHN0cnVjdCBkbWFfYXR0cnMgKmF0 dHJzKQorCQlpbnQgbmVudHMsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgdW5zaWduZWQg bG9uZyBhdHRycykKIHsKIAlyZXR1cm4gX19pb21tdV9tYXBfc2coZGV2LCBzZywgbmVudHMsIGRp ciwgYXR0cnMsIHRydWUpOwogfQpAQCAtMTc1MiwxNCArMTc1MSwxNCBAQCBpbnQgYXJtX2NvaGVy ZW50X2lvbW11X21hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAq c2csCiAgKiBzZ19kbWFfe2FkZHJlc3MsbGVuZ3RofS4KICAqLwogaW50IGFybV9pb21tdV9tYXBf c2coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLAotCQlpbnQgbmVu dHMsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMp CisJCWludCBuZW50cywgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCB1bnNpZ25lZCBsb25n IGF0dHJzKQogewogCXJldHVybiBfX2lvbW11X21hcF9zZyhkZXYsIHNnLCBuZW50cywgZGlyLCBh dHRycywgZmFsc2UpOwogfQogCiBzdGF0aWMgdm9pZCBfX2lvbW11X3VubWFwX3NnKHN0cnVjdCBk ZXZpY2UgKmRldiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywKLQkJaW50IG5lbnRzLCBlbnVtIGRt YV9kYXRhX2RpcmVjdGlvbiBkaXIsIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzLAotCQlib29sIGlz X2NvaGVyZW50KQorCQlpbnQgbmVudHMsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKKwkJ dW5zaWduZWQgbG9uZyBhdHRycywgYm9vbCBpc19jb2hlcmVudCkKIHsKIAlzdHJ1Y3Qgc2NhdHRl cmxpc3QgKnM7CiAJaW50IGk7CkBAIC0xNzg2LDcgKzE3ODUsOCBAQCBzdGF0aWMgdm9pZCBfX2lv bW11X3VubWFwX3NnKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywK ICAqIHJ1bGVzIGNvbmNlcm5pbmcgY2FsbHMgaGVyZSBhcmUgdGhlIHNhbWUgYXMgZm9yIGRtYV91 bm1hcF9zaW5nbGUoKS4KICAqLwogdm9pZCBhcm1fY29oZXJlbnRfaW9tbXVfdW5tYXBfc2coc3Ry dWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLAotCQlpbnQgbmVudHMsIGVu dW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCWlu dCBuZW50cywgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLAorCQl1bnNpZ25lZCBsb25nIGF0 dHJzKQogewogCV9faW9tbXVfdW5tYXBfc2coZGV2LCBzZywgbmVudHMsIGRpciwgYXR0cnMsIHRy dWUpOwogfQpAQCAtMTgwMiw3ICsxODAyLDggQEAgdm9pZCBhcm1fY29oZXJlbnRfaW9tbXVfdW5t YXBfc2coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLAogICogcnVs ZXMgY29uY2VybmluZyBjYWxscyBoZXJlIGFyZSB0aGUgc2FtZSBhcyBmb3IgZG1hX3VubWFwX3Np bmdsZSgpLgogICovCiB2b2lkIGFybV9pb21tdV91bm1hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYs IHN0cnVjdCBzY2F0dGVybGlzdCAqc2csIGludCBuZW50cywKLQkJCWVudW0gZG1hX2RhdGFfZGly ZWN0aW9uIGRpciwgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCQllbnVtIGRtYV9kYXRhX2Rp cmVjdGlvbiBkaXIsCisJCQl1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCV9faW9tbXVfdW5tYXBf c2coZGV2LCBzZywgbmVudHMsIGRpciwgYXR0cnMsIGZhbHNlKTsKIH0KQEAgLTE4NTUsNyArMTg1 Niw3IEBAIHZvaWQgYXJtX2lvbW11X3N5bmNfc2dfZm9yX2RldmljZShzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2csCiAgKi8KIHN0YXRpYyBkbWFfYWRkcl90IGFybV9j b2hlcmVudF9pb21tdV9tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBwYWdlICpw YWdlLAogCSAgICAgdW5zaWduZWQgbG9uZyBvZmZzZXQsIHNpemVfdCBzaXplLCBlbnVtIGRtYV9k YXRhX2RpcmVjdGlvbiBkaXIsCi0JICAgICBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkgICAg IHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJc3RydWN0IGRtYV9pb21tdV9tYXBwaW5nICptYXBw aW5nID0gdG9fZG1hX2lvbW11X21hcHBpbmcoZGV2KTsKIAlkbWFfYWRkcl90IGRtYV9hZGRyOwpA QCAtMTg4OSw3ICsxODkwLDcgQEAgZmFpbDoKICAqLwogc3RhdGljIGRtYV9hZGRyX3QgYXJtX2lv bW11X21hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJICAg ICB1bnNpZ25lZCBsb25nIG9mZnNldCwgc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0 aW9uIGRpciwKLQkgICAgIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKQorCSAgICAgdW5zaWduZWQg bG9uZyBhdHRycykKIHsKIAlpZiAoIWRtYV9nZXRfYXR0cihETUFfQVRUUl9TS0lQX0NQVV9TWU5D LCBhdHRycykpCiAJCV9fZG1hX3BhZ2VfY3B1X3RvX2RldihwYWdlLCBvZmZzZXQsIHNpemUsIGRp cik7CkBAIC0xOTA3LDggKzE5MDgsNyBAQCBzdGF0aWMgZG1hX2FkZHJfdCBhcm1faW9tbXVfbWFw X3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKICAqIENvaGVyZW50 IElPTU1VIGF3YXJlIHZlcnNpb24gb2YgYXJtX2RtYV91bm1hcF9wYWdlKCkKICAqLwogc3RhdGlj IHZvaWQgYXJtX2NvaGVyZW50X2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2LCBk bWFfYWRkcl90IGhhbmRsZSwKLQkJc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9u IGRpciwKLQkJc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCXNpemVfdCBzaXplLCBlbnVtIGRt YV9kYXRhX2RpcmVjdGlvbiBkaXIsIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJc3RydWN0IGRt YV9pb21tdV9tYXBwaW5nICptYXBwaW5nID0gdG9fZG1hX2lvbW11X21hcHBpbmcoZGV2KTsKIAlk bWFfYWRkcl90IGlvdmEgPSBoYW5kbGUgJiBQQUdFX01BU0s7CkBAIC0xOTMyLDggKzE5MzIsNyBA QCBzdGF0aWMgdm9pZCBhcm1fY29oZXJlbnRfaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZGV2aWNl ICpkZXYsIGRtYV9hZGRyX3QgaGFuZGxlLAogICogSU9NTVUgYXdhcmUgdmVyc2lvbiBvZiBhcm1f ZG1hX3VubWFwX3BhZ2UoKQogICovCiBzdGF0aWMgdm9pZCBhcm1faW9tbXVfdW5tYXBfcGFnZShz dHJ1Y3QgZGV2aWNlICpkZXYsIGRtYV9hZGRyX3QgaGFuZGxlLAotCQlzaXplX3Qgc2l6ZSwgZW51 bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLAotCQlzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJ c2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgdW5zaWduZWQgbG9uZyBh dHRycykKIHsKIAlzdHJ1Y3QgZG1hX2lvbW11X21hcHBpbmcgKm1hcHBpbmcgPSB0b19kbWFfaW9t bXVfbWFwcGluZyhkZXYpOwogCWRtYV9hZGRyX3QgaW92YSA9IGhhbmRsZSAmIFBBR0VfTUFTSzsK ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3hlbi9tbS5jIGIvYXJjaC9hcm0veGVuL21tLmMKaW5kZXgg YzVmOWE5ZTNkMWYzLi5mYzY3ZWQyMzZhMTAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3hlbi9tbS5j CisrKyBiL2FyY2gvYXJtL3hlbi9tbS5jCkBAIC05OCw3ICs5OCw3IEBAIHN0YXRpYyB2b2lkIF9f eGVuX2RtYV9wYWdlX2NwdV90b19kZXYoc3RydWN0IGRldmljZSAqaHdkZXYsIGRtYV9hZGRyX3Qg aGFuZGxlLAogCiB2b2lkIF9feGVuX2RtYV9tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpod2Rldiwg c3RydWN0IHBhZ2UgKnBhZ2UsCiAJICAgICBkbWFfYWRkcl90IGRldl9hZGRyLCB1bnNpZ25lZCBs b25nIG9mZnNldCwgc2l6ZV90IHNpemUsCi0JICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBk aXIsIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKQorCSAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rp b24gZGlyLCB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCWlmIChpc19kZXZpY2VfZG1hX2NvaGVy ZW50KGh3ZGV2KSkKIAkJcmV0dXJuOwpAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQgX194ZW5fZG1h X21hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAogdm9p ZCBfX3hlbl9kbWFfdW5tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpod2RldiwgZG1hX2FkZHJfdCBo YW5kbGUsCiAJCXNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsCi0JCXN0 cnVjdCBkbWFfYXR0cnMgKmF0dHJzKQorCQl1bnNpZ25lZCBsb25nIGF0dHJzKQogCiB7CiAJaWYg KGlzX2RldmljZV9kbWFfY29oZXJlbnQoaHdkZXYpKQotLSAKMS45LjEKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=