From mboxrd@z Thu Jan 1 00:00:00 1970 From: Krzysztof Kozlowski Subject: [PATCH v4 23/44] x86: dma-mapping: Use unsigned long for dma_attrs Date: Fri, 10 Jun 2016 12:11:40 +0200 Message-ID: <1465553521-27303-24-git-send-email-k.kozlowski@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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bBJRT-0007I9-S1 for xen-devel@lists.xenproject.org; Fri, 10 Jun 2016 10:13:32 +0000 Received: from eucpsbgm2.samsung.com (unknown [203.254.199.245]) by mailout4.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0O8J0092AWEGMV50@mailout4.w1.samsung.com> for xen-devel@lists.xenproject.org; Fri, 10 Jun 2016 11:13: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: Krzysztof Kozlowski , x86@kernel.org, linux-pci@vger.kernel.org, Keith Busch , Max Filippov , "H. Peter Anvin" , Junichi Nomura , Boris Ostrovsky , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Bartlomiej Zolnierkiewicz , hch@infradead.org, Ingo Molnar , xen-devel@lists.xenproject.org, Guenter Roeck , Muli Ben-Yehuda , Bjorn Helgaas , Thomas Gleixner , Vlastimil Babka , Valentin Rothberg , Juergen Gross , discuss@x86-64.org, linux-kernel@vger.kernel.org, David Vrabel , "Jon D. Mason" , Mel List-Id: xen-devel@lists.xenproject.org U3BsaXQgb3V0IHN1YnN5c3RlbSBzcGVjaWZpYyBjaGFuZ2VzIGZvciBlYXNpZXIgcmV2aWV3cy4g VGhpcyB3aWxsIGJlCnNxdWFzaGVkIHdpdGggbWFpbiBjb21taXQuCgpTaWduZWQtb2ZmLWJ5OiBL cnp5c3p0b2YgS296bG93c2tpIDxrLmtvemxvd3NraUBzYW1zdW5nLmNvbT4KLS0tCiBhcmNoL3g4 Ni9pbmNsdWRlL2FzbS9kbWEtbWFwcGluZy5oICAgICAgIHwgIDUgKystLS0KIGFyY2gveDg2L2lu Y2x1ZGUvYXNtL3N3aW90bGIuaCAgICAgICAgICAgfCAgNCArKy0tCiBhcmNoL3g4Ni9pbmNsdWRl L2FzbS94ZW4vcGFnZS1jb2hlcmVudC5oIHwgIDkgKysrKy0tLS0tCiBhcmNoL3g4Ni9rZXJuZWwv YW1kX2dhcnRfNjQuYyAgICAgICAgICAgIHwgMjAgKysrKysrKysrKy0tLS0tLS0tLS0KIGFyY2gv eDg2L2tlcm5lbC9wY2ktY2FsZ2FyeV82NC5jICAgICAgICAgfCAxNCArKysrKysrLS0tLS0tLQog YXJjaC94ODYva2VybmVsL3BjaS1kbWEuYyAgICAgICAgICAgICAgICB8ICA0ICsrLS0KIGFyY2gv eDg2L2tlcm5lbC9wY2ktbm9tbXUuYyAgICAgICAgICAgICAgfCAgNCArKy0tCiBhcmNoL3g4Ni9r ZXJuZWwvcGNpLXN3aW90bGIuYyAgICAgICAgICAgIHwgIDQgKystLQogYXJjaC94ODYvcGNpL3N0 YTJ4MTEtZml4dXAuYyAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3g4Ni9wY2kvdm1kLmMgICAg ICAgICAgICAgICAgICAgICAgIHwgMTYgKysrKysrKystLS0tLS0tLQogMTAgZmlsZXMgY2hhbmdl ZCwgNDAgaW5zZXJ0aW9ucygrKSwgNDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC94 ODYvaW5jbHVkZS9hc20vZG1hLW1hcHBpbmcuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2RtYS1t YXBwaW5nLmgKaW5kZXggM2EyN2I5M2U2MjYxLi40NDQ2MTYyNjgzMGUgMTAwNjQ0Ci0tLSBhL2Fy Y2gveDg2L2luY2x1ZGUvYXNtL2RtYS1tYXBwaW5nLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9h c20vZG1hLW1hcHBpbmcuaApAQCAtOSw3ICs5LDYgQEAKICNpbmNsdWRlIDxsaW51eC9rbWVtY2hl Y2suaD4KICNpbmNsdWRlIDxsaW51eC9zY2F0dGVybGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L2Rt YS1kZWJ1Zy5oPgotI2luY2x1ZGUgPGxpbnV4L2RtYS1hdHRycy5oPgogI2luY2x1ZGUgPGFzbS9p by5oPgogI2luY2x1ZGUgPGFzbS9zd2lvdGxiLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLWNvbnRp Z3VvdXMuaD4KQEAgLTQ4LDExICs0NywxMSBAQCBleHRlcm4gaW50IGRtYV9zdXBwb3J0ZWQoc3Ry dWN0IGRldmljZSAqaHdkZXYsIHU2NCBtYXNrKTsKIAogZXh0ZXJuIHZvaWQgKmRtYV9nZW5lcmlj X2FsbG9jX2NvaGVyZW50KHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCiAJCQkJCWRt YV9hZGRyX3QgKmRtYV9hZGRyLCBnZnBfdCBmbGFnLAotCQkJCQlzdHJ1Y3QgZG1hX2F0dHJzICph dHRycyk7CisJCQkJCXVuc2lnbmVkIGxvbmcgYXR0cnMpOwogCiBleHRlcm4gdm9pZCBkbWFfZ2Vu ZXJpY19mcmVlX2NvaGVyZW50KHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCiAJCQkJ ICAgICAgdm9pZCAqdmFkZHIsIGRtYV9hZGRyX3QgZG1hX2FkZHIsCi0JCQkJICAgICAgc3RydWN0 IGRtYV9hdHRycyAqYXR0cnMpOworCQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgYXR0cnMpOwogCiAj aWZkZWYgQ09ORklHX1g4Nl9ETUFfUkVNQVAgLyogUGxhdGZvcm0gY29kZSBkZWZpbmVzIGJyaWRn ZS1zcGVjaWZpYyBjb2RlICovCiBleHRlcm4gYm9vbCBkbWFfY2FwYWJsZShzdHJ1Y3QgZGV2aWNl ICpkZXYsIGRtYV9hZGRyX3QgYWRkciwgc2l6ZV90IHNpemUpOwpkaWZmIC0tZ2l0IGEvYXJjaC94 ODYvaW5jbHVkZS9hc20vc3dpb3RsYi5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vc3dpb3RsYi5o CmluZGV4IGFiMDVkNzNlMmJiNy4uZDJmNjliOWZmNzMyIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9p bmNsdWRlL2FzbS9zd2lvdGxiLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vc3dpb3RsYi5o CkBAIC0zMSw5ICszMSw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkbWFfbWFya19jbGVhbih2b2lk ICphZGRyLCBzaXplX3Qgc2l6ZSkge30KIAogZXh0ZXJuIHZvaWQgKng4Nl9zd2lvdGxiX2FsbG9j X2NvaGVyZW50KHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBzaXplX3Qgc2l6ZSwKIAkJCQkJZG1hX2Fk ZHJfdCAqZG1hX2hhbmRsZSwgZ2ZwX3QgZmxhZ3MsCi0JCQkJCXN0cnVjdCBkbWFfYXR0cnMgKmF0 dHJzKTsKKwkJCQkJdW5zaWduZWQgbG9uZyBhdHRycyk7CiBleHRlcm4gdm9pZCB4ODZfc3dpb3Rs Yl9mcmVlX2NvaGVyZW50KHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCiAJCQkJCXZv aWQgKnZhZGRyLCBkbWFfYWRkcl90IGRtYV9hZGRyLAotCQkJCQlzdHJ1Y3QgZG1hX2F0dHJzICph dHRycyk7CisJCQkJCXVuc2lnbmVkIGxvbmcgYXR0cnMpOwogCiAjZW5kaWYgLyogX0FTTV9YODZf U1dJT1RMQl9IICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ZW4vcGFnZS1j b2hlcmVudC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20veGVuL3BhZ2UtY29oZXJlbnQuaAppbmRl eCBhY2Q4NDRjMDE3ZDMuLmYwMmYwMjVmZjk4OCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVk ZS9hc20veGVuL3BhZ2UtY29oZXJlbnQuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ZW4v cGFnZS1jb2hlcmVudC5oCkBAIC0yLDEyICsyLDExIEBACiAjZGVmaW5lIF9BU01fWDg2X1hFTl9Q QUdFX0NPSEVSRU5UX0gKIAogI2luY2x1ZGUgPGFzbS9wYWdlLmg+Ci0jaW5jbHVkZSA8bGludXgv ZG1hLWF0dHJzLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KIAogc3RhdGljIGlu bGluZSB2b2lkICp4ZW5fYWxsb2NfY29oZXJlbnRfcGFnZXMoc3RydWN0IGRldmljZSAqaHdkZXYs IHNpemVfdCBzaXplLAogCQlkbWFfYWRkcl90ICpkbWFfaGFuZGxlLCBnZnBfdCBmbGFncywKLQkJ c3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCXVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJdm9p ZCAqdnN0YXJ0ID0gKHZvaWQqKV9fZ2V0X2ZyZWVfcGFnZXMoZmxhZ3MsIGdldF9vcmRlcihzaXpl KSk7CiAJKmRtYV9oYW5kbGUgPSB2aXJ0X3RvX3BoeXModnN0YXJ0KTsKQEAgLTE2LDE4ICsxNSwx OCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgKnhlbl9hbGxvY19jb2hlcmVudF9wYWdlcyhzdHJ1Y3Qg ZGV2aWNlICpod2Rldiwgc2l6ZV90IHNpemUsCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fZnJl ZV9jb2hlcmVudF9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpod2Rldiwgc2l6ZV90IHNpemUsCiAJCXZv aWQgKmNwdV9hZGRyLCBkbWFfYWRkcl90IGRtYV9oYW5kbGUsCi0JCXN0cnVjdCBkbWFfYXR0cnMg KmF0dHJzKQorCQl1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCWZyZWVfcGFnZXMoKHVuc2lnbmVk IGxvbmcpIGNwdV9hZGRyLCBnZXRfb3JkZXIoc2l6ZSkpOwogfQogCiBzdGF0aWMgaW5saW5lIHZv aWQgeGVuX2RtYV9tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpod2Rldiwgc3RydWN0IHBhZ2UgKnBh Z2UsCiAJICAgICBkbWFfYWRkcl90IGRldl9hZGRyLCB1bnNpZ25lZCBsb25nIG9mZnNldCwgc2l6 ZV90IHNpemUsCi0JICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsIHN0cnVjdCBkbWFf YXR0cnMgKmF0dHJzKSB7IH0KKwkgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgdW5z aWduZWQgbG9uZyBhdHRycykgeyB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fZG1hX3VubWFw X3BhZ2Uoc3RydWN0IGRldmljZSAqaHdkZXYsIGRtYV9hZGRyX3QgaGFuZGxlLAogCQlzaXplX3Qg c2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLAotCQlzdHJ1Y3QgZG1hX2F0dHJzICph dHRycykgeyB9CisJCXVuc2lnbmVkIGxvbmcgYXR0cnMpIHsgfQogCiBzdGF0aWMgaW5saW5lIHZv aWQgeGVuX2RtYV9zeW5jX3NpbmdsZV9mb3JfY3B1KHN0cnVjdCBkZXZpY2UgKmh3ZGV2LAogCQlk bWFfYWRkcl90IGhhbmRsZSwgc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRp cikgeyB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYW1kX2dhcnRfNjQuYyBiL2FyY2gv eDg2L2tlcm5lbC9hbWRfZ2FydF82NC5jCmluZGV4IDhlMzg0MmZjOGJlYS4uNGFmZjI4OGUzN2E0 IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvYW1kX2dhcnRfNjQuYworKysgYi9hcmNoL3g4 Ni9rZXJuZWwvYW1kX2dhcnRfNjQuYwpAQCAtMjQyLDcgKzI0Miw3IEBAIHN0YXRpYyBkbWFfYWRk cl90IGRtYV9tYXBfYXJlYShzdHJ1Y3QgZGV2aWNlICpkZXYsIGRtYV9hZGRyX3QgcGh5c19tZW0s CiBzdGF0aWMgZG1hX2FkZHJfdCBnYXJ0X21hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3Ry dWN0IHBhZ2UgKnBhZ2UsCiAJCQkJdW5zaWduZWQgbG9uZyBvZmZzZXQsIHNpemVfdCBzaXplLAog CQkJCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKLQkJCQlzdHJ1Y3QgZG1hX2F0dHJzICph dHRycykKKwkJCQl1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCXVuc2lnbmVkIGxvbmcgYnVzOwog CXBoeXNfYWRkcl90IHBhZGRyID0gcGFnZV90b19waHlzKHBhZ2UpICsgb2Zmc2V0OwpAQCAtMjY0 LDcgKzI2NCw3IEBAIHN0YXRpYyBkbWFfYWRkcl90IGdhcnRfbWFwX3BhZ2Uoc3RydWN0IGRldmlj ZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKICAqLwogc3RhdGljIHZvaWQgZ2FydF91bm1hcF9w YWdlKHN0cnVjdCBkZXZpY2UgKmRldiwgZG1hX2FkZHJfdCBkbWFfYWRkciwKIAkJCSAgICBzaXpl X3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLAotCQkJICAgIHN0cnVjdCBkbWFf YXR0cnMgKmF0dHJzKQorCQkJICAgIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJdW5zaWduZWQg bG9uZyBpb21tdV9wYWdlOwogCWludCBucGFnZXM7CkBAIC0yODYsNyArMjg2LDcgQEAgc3RhdGlj IHZvaWQgZ2FydF91bm1hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmRldiwgZG1hX2FkZHJfdCBkbWFf YWRkciwKICAqIFdyYXBwZXIgZm9yIHBjaV91bm1hcF9zaW5nbGUgd29ya2luZyB3aXRoIHNjYXR0 ZXJsaXN0cy4KICAqLwogc3RhdGljIHZvaWQgZ2FydF91bm1hcF9zZyhzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2csIGludCBuZW50cywKLQkJCSAgZW51bSBkbWFfZGF0 YV9kaXJlY3Rpb24gZGlyLCBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJCSAgZW51bSBkbWFf ZGF0YV9kaXJlY3Rpb24gZGlyLCB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCXN0cnVjdCBzY2F0 dGVybGlzdCAqczsKIAlpbnQgaTsKQEAgLTI5NCw3ICsyOTQsNyBAQCBzdGF0aWMgdm9pZCBnYXJ0 X3VubWFwX3NnKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywgaW50 IG5lbnRzLAogCWZvcl9lYWNoX3NnKHNnLCBzLCBuZW50cywgaSkgewogCQlpZiAoIXMtPmRtYV9s ZW5ndGggfHwgIXMtPmxlbmd0aCkKIAkJCWJyZWFrOwotCQlnYXJ0X3VubWFwX3BhZ2UoZGV2LCBz LT5kbWFfYWRkcmVzcywgcy0+ZG1hX2xlbmd0aCwgZGlyLCBOVUxMKTsKKwkJZ2FydF91bm1hcF9w YWdlKGRldiwgcy0+ZG1hX2FkZHJlc3MsIHMtPmRtYV9sZW5ndGgsIGRpciwgMCk7CiAJfQogfQog CkBAIC0zMTYsNyArMzE2LDcgQEAgc3RhdGljIGludCBkbWFfbWFwX3NnX25vbmZvcmNlKHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywKIAkJCWFkZHIgPSBkbWFfbWFw X2FyZWEoZGV2LCBhZGRyLCBzLT5sZW5ndGgsIGRpciwgMCk7CiAJCQlpZiAoYWRkciA9PSBiYWRf ZG1hX2FkZHIpIHsKIAkJCQlpZiAoaSA+IDApCi0JCQkJCWdhcnRfdW5tYXBfc2coZGV2LCBzZywg aSwgZGlyLCBOVUxMKTsKKwkJCQkJZ2FydF91bm1hcF9zZyhkZXYsIHNnLCBpLCBkaXIsIDApOwog CQkJCW5lbnRzID0gMDsKIAkJCQlzZ1swXS5kbWFfbGVuZ3RoID0gMDsKIAkJCQlicmVhazsKQEAg LTM4Nyw3ICszODcsNyBAQCBkbWFfbWFwX2NvbnQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg c2NhdHRlcmxpc3QgKnN0YXJ0LCBpbnQgbmVsZW1zLAogICogTWVyZ2UgY2h1bmtzIHRoYXQgaGF2 ZSBwYWdlIGFsaWduZWQgc2l6ZXMgaW50byBhIGNvbnRpbnVvdXMgbWFwcGluZy4KICAqLwogc3Rh dGljIGludCBnYXJ0X21hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlz dCAqc2csIGludCBuZW50cywKLQkJICAgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwg c3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCSAgICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlv biBkaXIsIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJc3RydWN0IHNjYXR0ZXJsaXN0ICpzLCAq cHMsICpzdGFydF9zZywgKnNnbWFwOwogCWludCBuZWVkID0gMCwgbmV4dG5lZWQsIGksIG91dCwg c3RhcnQ7CkBAIC00NTcsNyArNDU3LDcgQEAgc3RhdGljIGludCBnYXJ0X21hcF9zZyhzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2csIGludCBuZW50cywKIAogZXJyb3I6 CiAJZmx1c2hfZ2FydCgpOwotCWdhcnRfdW5tYXBfc2coZGV2LCBzZywgb3V0LCBkaXIsIE5VTEwp OworCWdhcnRfdW5tYXBfc2coZGV2LCBzZywgb3V0LCBkaXIsIDApOwogCiAJLyogV2hlbiBpdCB3 YXMgZm9yY2VkIG9yIG1lcmdlZCB0cnkgYWdhaW4gaW4gYSBkdW1iIHdheSAqLwogCWlmIChmb3Jj ZV9pb21tdSB8fCBpb21tdV9tZXJnZSkgewpAQCAtNDc3LDcgKzQ3Nyw3IEBAIGVycm9yOgogLyog YWxsb2NhdGUgYW5kIG1hcCBhIGNvaGVyZW50IG1hcHBpbmcgKi8KIHN0YXRpYyB2b2lkICoKIGdh cnRfYWxsb2NfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwgZG1hX2Fk ZHJfdCAqZG1hX2FkZHIsCi0JCSAgICBnZnBfdCBmbGFnLCBzdHJ1Y3QgZG1hX2F0dHJzICphdHRy cykKKwkJICAgIGdmcF90IGZsYWcsIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJZG1hX2FkZHJf dCBwYWRkcjsKIAl1bnNpZ25lZCBsb25nIGFsaWduX21hc2s7CkBAIC01MDksOSArNTA5LDkgQEAg Z2FydF9hbGxvY19jb2hlcmVudChzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLCBkbWFf YWRkcl90ICpkbWFfYWRkciwKIC8qIGZyZWUgYSBjb2hlcmVudCBtYXBwaW5nICovCiBzdGF0aWMg dm9pZAogZ2FydF9mcmVlX2NvaGVyZW50KHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUs IHZvaWQgKnZhZGRyLAotCQkgICBkbWFfYWRkcl90IGRtYV9hZGRyLCBzdHJ1Y3QgZG1hX2F0dHJz ICphdHRycykKKwkJICAgZG1hX2FkZHJfdCBkbWFfYWRkciwgdW5zaWduZWQgbG9uZyBhdHRycykK IHsKLQlnYXJ0X3VubWFwX3BhZ2UoZGV2LCBkbWFfYWRkciwgc2l6ZSwgRE1BX0JJRElSRUNUSU9O QUwsIE5VTEwpOworCWdhcnRfdW5tYXBfcGFnZShkZXYsIGRtYV9hZGRyLCBzaXplLCBETUFfQklE SVJFQ1RJT05BTCwgMCk7CiAJZG1hX2dlbmVyaWNfZnJlZV9jb2hlcmVudChkZXYsIHNpemUsIHZh ZGRyLCBkbWFfYWRkciwgYXR0cnMpOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwv cGNpLWNhbGdhcnlfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9wY2ktY2FsZ2FyeV82NC5jCmluZGV4 IDgzM2IxZDMyOWM0Ny4uNWQ0MDBiYTEzNDlkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwv cGNpLWNhbGdhcnlfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcGNpLWNhbGdhcnlfNjQuYwpA QCAtMzQwLDcgKzM0MCw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGlvbW11X3RhYmxlICpmaW5k X2lvbW11X3RhYmxlKHN0cnVjdCBkZXZpY2UgKmRldikKIAogc3RhdGljIHZvaWQgY2FsZ2FyeV91 bm1hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2dsaXN0LAog CQkJICAgICBpbnQgbmVsZW1zLGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKLQkJCSAgICAg c3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCQkgICAgIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7 CiAJc3RydWN0IGlvbW11X3RhYmxlICp0YmwgPSBmaW5kX2lvbW11X3RhYmxlKGRldik7CiAJc3Ry dWN0IHNjYXR0ZXJsaXN0ICpzOwpAQCAtMzY0LDcgKzM2NCw3IEBAIHN0YXRpYyB2b2lkIGNhbGdh cnlfdW5tYXBfc2coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbGlz dCwKIAogc3RhdGljIGludCBjYWxnYXJ5X21hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVj dCBzY2F0dGVybGlzdCAqc2csCiAJCQkgIGludCBuZWxlbXMsIGVudW0gZG1hX2RhdGFfZGlyZWN0 aW9uIGRpciwKLQkJCSAgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCQkgIHVuc2lnbmVkIGxv bmcgYXR0cnMpCiB7CiAJc3RydWN0IGlvbW11X3RhYmxlICp0YmwgPSBmaW5kX2lvbW11X3RhYmxl KGRldik7CiAJc3RydWN0IHNjYXR0ZXJsaXN0ICpzOwpAQCAtMzk2LDcgKzM5Niw3IEBAIHN0YXRp YyBpbnQgY2FsZ2FyeV9tYXBfc2coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxp c3QgKnNnLAogCiAJcmV0dXJuIG5lbGVtczsKIGVycm9yOgotCWNhbGdhcnlfdW5tYXBfc2coZGV2 LCBzZywgbmVsZW1zLCBkaXIsIE5VTEwpOworCWNhbGdhcnlfdW5tYXBfc2coZGV2LCBzZywgbmVs ZW1zLCBkaXIsIDApOwogCWZvcl9lYWNoX3NnKHNnLCBzLCBuZWxlbXMsIGkpIHsKIAkJc2ctPmRt YV9hZGRyZXNzID0gRE1BX0VSUk9SX0NPREU7CiAJCXNnLT5kbWFfbGVuZ3RoID0gMDsKQEAgLTQw Nyw3ICs0MDcsNyBAQCBlcnJvcjoKIHN0YXRpYyBkbWFfYWRkcl90IGNhbGdhcnlfbWFwX3BhZ2Uo c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAkJCQkgICB1bnNpZ25lZCBs b25nIG9mZnNldCwgc2l6ZV90IHNpemUsCiAJCQkJICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24g ZGlyLAotCQkJCSAgIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKQorCQkJCSAgIHVuc2lnbmVkIGxv bmcgYXR0cnMpCiB7CiAJdm9pZCAqdmFkZHIgPSBwYWdlX2FkZHJlc3MocGFnZSkgKyBvZmZzZXQ7 CiAJdW5zaWduZWQgbG9uZyB1YWRkcjsKQEAgLTQyMiw3ICs0MjIsNyBAQCBzdGF0aWMgZG1hX2Fk ZHJfdCBjYWxnYXJ5X21hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnBh Z2UsCiAKIHN0YXRpYyB2b2lkIGNhbGdhcnlfdW5tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpkZXYs IGRtYV9hZGRyX3QgZG1hX2FkZHIsCiAJCQkgICAgICAgc2l6ZV90IHNpemUsIGVudW0gZG1hX2Rh dGFfZGlyZWN0aW9uIGRpciwKLQkJCSAgICAgICBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJ CSAgICAgICB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCXN0cnVjdCBpb21tdV90YWJsZSAqdGJs ID0gZmluZF9pb21tdV90YWJsZShkZXYpOwogCXVuc2lnbmVkIGludCBucGFnZXM7CkBAIC00MzIs NyArNDMyLDcgQEAgc3RhdGljIHZvaWQgY2FsZ2FyeV91bm1hcF9wYWdlKHN0cnVjdCBkZXZpY2Ug KmRldiwgZG1hX2FkZHJfdCBkbWFfYWRkciwKIH0KIAogc3RhdGljIHZvaWQqIGNhbGdhcnlfYWxs b2NfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKLQlkbWFfYWRkcl90 ICpkbWFfaGFuZGxlLCBnZnBfdCBmbGFnLCBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwlkbWFf YWRkcl90ICpkbWFfaGFuZGxlLCBnZnBfdCBmbGFnLCB1bnNpZ25lZCBsb25nIGF0dHJzKQogewog CXZvaWQgKnJldCA9IE5VTEw7CiAJZG1hX2FkZHJfdCBtYXBwaW5nOwpAQCAtNDY2LDcgKzQ2Niw3 IEBAIGVycm9yOgogCiBzdGF0aWMgdm9pZCBjYWxnYXJ5X2ZyZWVfY29oZXJlbnQoc3RydWN0IGRl dmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKIAkJCQkgIHZvaWQgKnZhZGRyLCBkbWFfYWRkcl90IGRt YV9oYW5kbGUsCi0JCQkJICBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJCQkgIHVuc2lnbmVk IGxvbmcgYXR0cnMpCiB7CiAJdW5zaWduZWQgaW50IG5wYWdlczsKIAlzdHJ1Y3QgaW9tbXVfdGFi bGUgKnRibCA9IGZpbmRfaW9tbXVfdGFibGUoZGV2KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tl cm5lbC9wY2ktZG1hLmMgYi9hcmNoL3g4Ni9rZXJuZWwvcGNpLWRtYS5jCmluZGV4IDZiYTAxNGM2 MWQ2Mi4uZDMwYzM3NzUwNzY1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcGNpLWRtYS5j CisrKyBiL2FyY2gveDg2L2tlcm5lbC9wY2ktZG1hLmMKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBf X2luaXQgcGNpX2lvbW11X2FsbG9jKHZvaWQpCiB9CiB2b2lkICpkbWFfZ2VuZXJpY19hbGxvY19j b2hlcmVudChzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAogCQkJCSBkbWFfYWRkcl90 ICpkbWFfYWRkciwgZ2ZwX3QgZmxhZywKLQkJCQkgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJ CQkJIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJdW5zaWduZWQgbG9uZyBkbWFfbWFzazsKIAlz dHJ1Y3QgcGFnZSAqcGFnZTsKQEAgLTEyMCw3ICsxMjAsNyBAQCBhZ2FpbjoKIH0KIAogdm9pZCBk bWFfZ2VuZXJpY19mcmVlX2NvaGVyZW50KHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUs IHZvaWQgKnZhZGRyLAotCQkJICAgICAgIGRtYV9hZGRyX3QgZG1hX2FkZHIsIHN0cnVjdCBkbWFf YXR0cnMgKmF0dHJzKQorCQkJICAgICAgIGRtYV9hZGRyX3QgZG1hX2FkZHIsIHVuc2lnbmVkIGxv bmcgYXR0cnMpCiB7CiAJdW5zaWduZWQgaW50IGNvdW50ID0gUEFHRV9BTElHTihzaXplKSA+PiBQ QUdFX1NISUZUOwogCXN0cnVjdCBwYWdlICpwYWdlID0gdmlydF90b19wYWdlKHZhZGRyKTsKZGlm ZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wY2ktbm9tbXUuYyBiL2FyY2gveDg2L2tlcm5lbC9w Y2ktbm9tbXUuYwppbmRleCBkYTE1OTE4ZDFjODEuLjAwZTcxY2UzOTZhOCAxMDA2NDQKLS0tIGEv YXJjaC94ODYva2VybmVsL3BjaS1ub21tdS5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9wY2ktbm9t bXUuYwpAQCAtMjgsNyArMjgsNyBAQCBjaGVja19hZGRyKGNoYXIgKm5hbWUsIHN0cnVjdCBkZXZp Y2UgKmh3ZGV2LCBkbWFfYWRkcl90IGJ1cywgc2l6ZV90IHNpemUpCiBzdGF0aWMgZG1hX2FkZHJf dCBub21tdV9tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBwYWdlICpwYWdlLAog CQkJCSB1bnNpZ25lZCBsb25nIG9mZnNldCwgc2l6ZV90IHNpemUsCiAJCQkJIGVudW0gZG1hX2Rh dGFfZGlyZWN0aW9uIGRpciwKLQkJCQkgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCQkJIHVu c2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJZG1hX2FkZHJfdCBidXMgPSBwYWdlX3RvX3BoeXMocGFn ZSkgKyBvZmZzZXQ7CiAJV0FSTl9PTihzaXplID09IDApOwpAQCAtNTUsNyArNTUsNyBAQCBzdGF0 aWMgZG1hX2FkZHJfdCBub21tdV9tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBw YWdlICpwYWdlLAogICovCiBzdGF0aWMgaW50IG5vbW11X21hcF9zZyhzdHJ1Y3QgZGV2aWNlICpo d2Rldiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywKIAkJCWludCBuZW50cywgZW51bSBkbWFfZGF0 YV9kaXJlY3Rpb24gZGlyLAotCQkJc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCQl1bnNpZ25l ZCBsb25nIGF0dHJzKQogewogCXN0cnVjdCBzY2F0dGVybGlzdCAqczsKIAlpbnQgaTsKZGlmZiAt LWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wY2ktc3dpb3RsYi5jIGIvYXJjaC94ODYva2VybmVsL3Bj aS1zd2lvdGxiLmMKaW5kZXggN2M1NzdhMTc4ODU5Li5kYjg4YmZlNTZhNzcgMTAwNjQ0Ci0tLSBh L2FyY2gveDg2L2tlcm5lbC9wY2ktc3dpb3RsYi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9wY2kt c3dpb3RsYi5jCkBAIC0xNiw3ICsxNiw3IEBAIGludCBzd2lvdGxiIF9fcmVhZF9tb3N0bHk7CiAK IHZvaWQgKng4Nl9zd2lvdGxiX2FsbG9jX2NvaGVyZW50KHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBz aXplX3Qgc2l6ZSwKIAkJCQkJZG1hX2FkZHJfdCAqZG1hX2hhbmRsZSwgZ2ZwX3QgZmxhZ3MsCi0J CQkJCXN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKQorCQkJCQl1bnNpZ25lZCBsb25nIGF0dHJzKQog ewogCXZvaWQgKnZhZGRyOwogCkBAIC0zNyw3ICszNyw3IEBAIHZvaWQgKng4Nl9zd2lvdGxiX2Fs bG9jX2NvaGVyZW50KHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBzaXplX3Qgc2l6ZSwKIAogdm9pZCB4 ODZfc3dpb3RsYl9mcmVlX2NvaGVyZW50KHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUs CiAJCQkJICAgICAgdm9pZCAqdmFkZHIsIGRtYV9hZGRyX3QgZG1hX2FkZHIsCi0JCQkJICAgICAg c3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCQkJICAgICAgdW5zaWduZWQgbG9uZyBhdHRycykK IHsKIAlpZiAoaXNfc3dpb3RsYl9idWZmZXIoZG1hX3RvX3BoeXMoZGV2LCBkbWFfYWRkcikpKQog CQlzd2lvdGxiX2ZyZWVfY29oZXJlbnQoZGV2LCBzaXplLCB2YWRkciwgZG1hX2FkZHIpOwpkaWZm IC0tZ2l0IGEvYXJjaC94ODYvcGNpL3N0YTJ4MTEtZml4dXAuYyBiL2FyY2gveDg2L3BjaS9zdGEy eDExLWZpeHVwLmMKaW5kZXggNWNlZGE4NWI4Njg3Li4wNTJjMWNiNzYzMDUgMTAwNjQ0Ci0tLSBh L2FyY2gveDg2L3BjaS9zdGEyeDExLWZpeHVwLmMKKysrIGIvYXJjaC94ODYvcGNpL3N0YTJ4MTEt Zml4dXAuYwpAQCAtMTY5LDcgKzE2OSw3IEBAIHN0YXRpYyB2b2lkICpzdGEyeDExX3N3aW90bGJf YWxsb2NfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LAogCQkJCQkgICAgc2l6ZV90IHNpemUs CiAJCQkJCSAgICBkbWFfYWRkcl90ICpkbWFfaGFuZGxlLAogCQkJCQkgICAgZ2ZwX3QgZmxhZ3Ms Ci0JCQkJCSAgICBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJCQkJICAgIHVuc2lnbmVkIGxv bmcgYXR0cnMpCiB7CiAJdm9pZCAqdmFkZHI7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS92 bWQuYyBiL2FyY2gveDg2L3BjaS92bWQuYwppbmRleCA3NzkyYWJhMjY2ZGYuLmQ1ODM0Y2M2NThj MCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL3ZtZC5jCisrKyBiL2FyY2gveDg2L3BjaS92bWQu YwpAQCAtMjY1LDE0ICsyNjUsMTQgQEAgc3RhdGljIHN0cnVjdCBkbWFfbWFwX29wcyAqdm1kX2Rt YV9vcHMoc3RydWN0IGRldmljZSAqZGV2KQogfQogCiBzdGF0aWMgdm9pZCAqdm1kX2FsbG9jKHN0 cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIGRtYV9hZGRyX3QgKmFkZHIsCi0JCSAgICAg ICBnZnBfdCBmbGFnLCBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJICAgICAgIGdmcF90IGZs YWcsIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJcmV0dXJuIHZtZF9kbWFfb3BzKGRldiktPmFs bG9jKHRvX3ZtZF9kZXYoZGV2KSwgc2l6ZSwgYWRkciwgZmxhZywKIAkJCQkgICAgICAgYXR0cnMp OwogfQogCiBzdGF0aWMgdm9pZCB2bWRfZnJlZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBz aXplLCB2b2lkICp2YWRkciwKLQkJICAgICBkbWFfYWRkcl90IGFkZHIsIHN0cnVjdCBkbWFfYXR0 cnMgKmF0dHJzKQorCQkgICAgIGRtYV9hZGRyX3QgYWRkciwgdW5zaWduZWQgbG9uZyBhdHRycykK IHsKIAlyZXR1cm4gdm1kX2RtYV9vcHMoZGV2KS0+ZnJlZSh0b192bWRfZGV2KGRldiksIHNpemUs IHZhZGRyLCBhZGRyLAogCQkJCSAgICAgIGF0dHJzKTsKQEAgLTI4MCw3ICsyODAsNyBAQCBzdGF0 aWMgdm9pZCB2bWRfZnJlZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLCB2b2lkICp2 YWRkciwKIAogc3RhdGljIGludCB2bWRfbW1hcChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB2 bV9hcmVhX3N0cnVjdCAqdm1hLAogCQkgICAgdm9pZCAqY3B1X2FkZHIsIGRtYV9hZGRyX3QgYWRk ciwgc2l6ZV90IHNpemUsCi0JCSAgICBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJICAgIHVu c2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJcmV0dXJuIHZtZF9kbWFfb3BzKGRldiktPm1tYXAodG9f dm1kX2RldihkZXYpLCB2bWEsIGNwdV9hZGRyLCBhZGRyLAogCQkJCSAgICAgIHNpemUsIGF0dHJz KTsKQEAgLTI4OCw3ICsyODgsNyBAQCBzdGF0aWMgaW50IHZtZF9tbWFwKHN0cnVjdCBkZXZpY2Ug KmRldiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAKIHN0YXRpYyBpbnQgdm1kX2dldF9z Z3RhYmxlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNnX3RhYmxlICpzZ3QsCiAJCQkgICB2 b2lkICpjcHVfYWRkciwgZG1hX2FkZHJfdCBhZGRyLCBzaXplX3Qgc2l6ZSwKLQkJCSAgIHN0cnVj dCBkbWFfYXR0cnMgKmF0dHJzKQorCQkJICAgdW5zaWduZWQgbG9uZyBhdHRycykKIHsKIAlyZXR1 cm4gdm1kX2RtYV9vcHMoZGV2KS0+Z2V0X3NndGFibGUodG9fdm1kX2RldihkZXYpLCBzZ3QsIGNw dV9hZGRyLAogCQkJCQkgICAgIGFkZHIsIHNpemUsIGF0dHJzKTsKQEAgLTI5NywyNiArMjk3LDI2 IEBAIHN0YXRpYyBpbnQgdm1kX2dldF9zZ3RhYmxlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0 IHNnX3RhYmxlICpzZ3QsCiBzdGF0aWMgZG1hX2FkZHJfdCB2bWRfbWFwX3BhZ2Uoc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAkJCSAgICAgICB1bnNpZ25lZCBsb25nIG9m ZnNldCwgc2l6ZV90IHNpemUsCiAJCQkgICAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGly LAotCQkJICAgICAgIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKQorCQkJICAgICAgIHVuc2lnbmVk IGxvbmcgYXR0cnMpCiB7CiAJcmV0dXJuIHZtZF9kbWFfb3BzKGRldiktPm1hcF9wYWdlKHRvX3Zt ZF9kZXYoZGV2KSwgcGFnZSwgb2Zmc2V0LCBzaXplLAogCQkJCQkgIGRpciwgYXR0cnMpOwogfQog CiBzdGF0aWMgdm9pZCB2bWRfdW5tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGRtYV9hZGRy X3QgYWRkciwgc2l6ZV90IHNpemUsCi0JCQkgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIs IHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKQorCQkJICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24g ZGlyLCB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCXZtZF9kbWFfb3BzKGRldiktPnVubWFwX3Bh Z2UodG9fdm1kX2RldihkZXYpLCBhZGRyLCBzaXplLCBkaXIsIGF0dHJzKTsKIH0KIAogc3RhdGlj IGludCB2bWRfbWFwX3NnKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpz ZywgaW50IG5lbnRzLAotCQkgICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsIHN0cnVj dCBkbWFfYXR0cnMgKmF0dHJzKQorCQkgICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIs IHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJcmV0dXJuIHZtZF9kbWFfb3BzKGRldiktPm1hcF9z Zyh0b192bWRfZGV2KGRldiksIHNnLCBuZW50cywgZGlyLCBhdHRycyk7CiB9CiAKIHN0YXRpYyB2 b2lkIHZtZF91bm1hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAq c2csIGludCBuZW50cywKLQkJCSBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsIHN0cnVjdCBk bWFfYXR0cnMgKmF0dHJzKQorCQkJIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgdW5zaWdu ZWQgbG9uZyBhdHRycykKIHsKIAl2bWRfZG1hX29wcyhkZXYpLT51bm1hcF9zZyh0b192bWRfZGV2 KGRldiksIHNnLCBuZW50cywgZGlyLCBhdHRycyk7CiB9Ci0tIAoxLjkuMQoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVs Cg==