From mboxrd@z Thu Jan 1 00:00:00 1970 From: Krzysztof Kozlowski Subject: [RFC v3 02/45] dma-mapping: Use unsigned long for dma_attrs Date: Thu, 02 Jun 2016 17:39:04 +0200 Message-ID: <1464881987-13203-3-git-send-email-k.kozlowski__37813.6589694352$1464882106$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 1b8Ujb-0002Sp-R9 for xen-devel@lists.xenproject.org; Thu, 02 Jun 2016 15:40:36 +0000 Received: from eucpsbgm1.samsung.com (unknown [203.254.199.244]) by mailout3.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0O85008L8I7JD710@mailout3.w1.samsung.com> for xen-devel@lists.xenproject.org; Thu, 02 Jun 2016 16:40:33 +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 VGhlIGRtYS1tYXBwaW5nIGNvcmUgYW5kIHRoZSBpbXBsZW1lbnRhdGlvbnMgZG8gbm90IGNoYW5n ZSB0aGUKRE1BIGF0dHJpYnV0ZXMgcGFzc2VkIGJ5IHBvaW50ZXIuICBUaHVzIHRoZSBwb2ludGVy IGNhbiBwb2ludCB0byBjb25zdApkYXRhLiAgSG93ZXZlciB0aGUgYXR0cmlidXRlcyBkbyBub3Qg aGF2ZSB0byBiZSBhIGJpdGZpZWxkLiBJbnN0ZWFkCnVuc2lnbmVkIGxvbmcgd2lsbCBkbyBmaW5l OgoKMS4gVGhpcyBpcyBqdXN0IHNpbXBsZXIuICBCb3RoIGluIHRlcm1zIG9mIHJlYWRpbmcgdGhl IGNvZGUgYW5kIHNldHRpbmcKICAgYXR0cmlidXRlcy4gIEluc3RlYWQgb2YgaW5pdGlhbGl6aW5n IGxvY2FsIGF0dHJpYnV0ZXMgb24gdGhlIHN0YWNrCiAgIGFuZCBwYXNzaW5nIHBvaW50ZXIgdG8g aXQgdG8gZG1hX3NldF9hdHRyKCksIGp1c3Qgc2V0IHRoZSBiaXRzLgoKMi4gSXQgYnJpbmdzIHNh ZmVuZXNzIGFuZCBjaGVja2luZyBmb3IgY29uc3QgY29ycmVjdG5lc3MgYmVjYXVzZSB0aGUKICAg YXR0cmlidXRlcyBhcmUgcGFzc2VkIGJ5IHZhbHVlLgoKU2VtYW50aWMgcGF0Y2hlcyBmb3IgdGhp cyBjaGFuZ2UgKGF0IGxlYXN0IG1vc3Qgb2YgdGhlbSk6Cj09PQp2aXJ0dWFsIHBhdGNoCnZpcnR1 YWwgY29udGV4dAoKQHJACmlkZW50aWZpZXIgZiwgYXR0cnM7CgpAQApmKC4uLiwKLSBzdHJ1Y3Qg ZG1hX2F0dHJzICphdHRycworIHVuc2lnbmVkIGxvbmcgYXR0cnMKLCAuLi4pCnsKLi4uCn0KCkBA CmlkZW50aWZpZXIgci5mOwpAQApmKC4uLiwKLSBOVUxMCisgMAogKQo9PT0KLy8gT3B0aW9uczog LS1hbGwtaW5jbHVkZXMKdmlydHVhbCBwYXRjaAp2aXJ0dWFsIGNvbnRleHQKCkByQAppZGVudGlm aWVyIGYsIGF0dHJzOwp0eXBlIHQ7CgpAQAp0IGYoLi4uLCBzdHJ1Y3QgZG1hX2F0dHJzICphdHRy cyk7CgpAQAppZGVudGlmaWVyIHIuZjsKQEAKZiguLi4sCi0gTlVMTAorIDAKICkKPT09CgpTaWdu ZWQtb2ZmLWJ5OiBLcnp5c3p0b2YgS296bG93c2tpIDxrLmtvemxvd3NraUBzYW1zdW5nLmNvbT4K LS0tCiBEb2N1bWVudGF0aW9uL0RNQS1BUEkudHh0ICAgICAgICB8ICAyOSArKysrKy0tLS0tLQog RG9jdW1lbnRhdGlvbi9ETUEtYXR0cmlidXRlcy50eHQgfCAgIDIgKy0KIGluY2x1ZGUvbGludXgv ZG1hLWF0dHJzLmggICAgICAgIHwgIDcxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGluY2x1 ZGUvbGludXgvZG1hLW1hcHBpbmcuaCAgICAgIHwgMTA4ICsrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLQogbGliL2RtYS1ub29wLmMgICAgICAgICAgICAgICAgICAgfCAgIDkg KystLQogNSBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCAxMzYgZGVsZXRpb25zKC0p CiBkZWxldGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9saW51eC9kbWEtYXR0cnMuaAoKZGlmZiAtLWdp dCBhL0RvY3VtZW50YXRpb24vRE1BLUFQSS50eHQgYi9Eb2N1bWVudGF0aW9uL0RNQS1BUEkudHh0 CmluZGV4IDQ1ZWYzZjI3OWMzYi4uMjRmOTY4OGJiOThhIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0 aW9uL0RNQS1BUEkudHh0CisrKyBiL0RvY3VtZW50YXRpb24vRE1BLUFQSS50eHQKQEAgLTM2OSwz NSArMzY5LDMyIEBAIFNlZSBhbHNvIGRtYV9tYXBfc2luZ2xlKCkuCiBkbWFfYWRkcl90CiBkbWFf bWFwX3NpbmdsZV9hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmNwdV9hZGRyLCBzaXpl X3Qgc2l6ZSwKIAkJICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsCi0JCSAgICAgc3Ry dWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCSAgICAgdW5zaWduZWQgbG9uZyBhdHRycykKIAogdm9p ZAogZG1hX3VubWFwX3NpbmdsZV9hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsIGRtYV9hZGRyX3Qg ZG1hX2FkZHIsCiAJCSAgICAgICBzaXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24g ZGlyLAotCQkgICAgICAgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCSAgICAgICB1bnNpZ25l ZCBsb25nIGF0dHJzKQogCiBpbnQKIGRtYV9tYXBfc2dfYXR0cnMoc3RydWN0IGRldmljZSAqZGV2 LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbCwKIAkJIGludCBuZW50cywgZW51bSBkbWFfZGF0YV9k aXJlY3Rpb24gZGlyLAotCQkgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCSB1bnNpZ25lZCBs b25nIGF0dHJzKQogCiB2b2lkCiBkbWFfdW5tYXBfc2dfYXR0cnMoc3RydWN0IGRldmljZSAqZGV2 LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbCwKIAkJICAgaW50IG5lbnRzLCBlbnVtIGRtYV9kYXRh X2RpcmVjdGlvbiBkaXIsCi0JCSAgIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKQorCQkgICB1bnNp Z25lZCBsb25nIGF0dHJzKQogCiBUaGUgZm91ciBmdW5jdGlvbnMgYWJvdmUgYXJlIGp1c3QgbGlr ZSB0aGUgY291bnRlcnBhcnQgZnVuY3Rpb25zCiB3aXRob3V0IHRoZSBfYXR0cnMgc3VmZml4ZXMs IGV4Y2VwdCB0aGF0IHRoZXkgcGFzcyBhbiBvcHRpb25hbAotc3RydWN0IGRtYV9hdHRycyouCi0K LXN0cnVjdCBkbWFfYXR0cnMgZW5jYXBzdWxhdGVzIGEgc2V0IG9mICJETUEgYXR0cmlidXRlcyIu IEZvciB0aGUKLWRlZmluaXRpb24gb2Ygc3RydWN0IGRtYV9hdHRycyBzZWUgbGludXgvZG1hLWF0 dHJzLmguCitkbWFfYXR0cnMuCiAKIFRoZSBpbnRlcnByZXRhdGlvbiBvZiBETUEgYXR0cmlidXRl cyBpcyBhcmNoaXRlY3R1cmUtc3BlY2lmaWMsIGFuZAogZWFjaCBhdHRyaWJ1dGUgc2hvdWxkIGJl IGRvY3VtZW50ZWQgaW4gRG9jdW1lbnRhdGlvbi9ETUEtYXR0cmlidXRlcy50eHQuCiAKLUlmIHN0 cnVjdCBkbWFfYXR0cnMqIGlzIE5VTEwsIHRoZSBzZW1hbnRpY3Mgb2YgZWFjaCBvZiB0aGVzZQot ZnVuY3Rpb25zIGlzIGlkZW50aWNhbCB0byB0aG9zZSBvZiB0aGUgY29ycmVzcG9uZGluZyBmdW5j dGlvbgorSWYgZG1hX2F0dHJzIGFyZSAwLCB0aGUgc2VtYW50aWNzIG9mIGVhY2ggb2YgdGhlc2Ug ZnVuY3Rpb25zCitpcyBpZGVudGljYWwgdG8gdGhvc2Ugb2YgdGhlIGNvcnJlc3BvbmRpbmcgZnVu Y3Rpb24KIHdpdGhvdXQgdGhlIF9hdHRycyBzdWZmaXguIEFzIGEgcmVzdWx0IGRtYV9tYXBfc2lu Z2xlX2F0dHJzKCkKIGNhbiBnZW5lcmFsbHkgcmVwbGFjZSBkbWFfbWFwX3NpbmdsZSgpLCBldGMu CiAKQEAgLTQwNSwxNSArNDAyLDE1IEBAIEFzIGFuIGV4YW1wbGUgb2YgdGhlIHVzZSBvZiB0aGUg Kl9hdHRycyBmdW5jdGlvbnMsIGhlcmUncyBob3cKIHlvdSBjb3VsZCBwYXNzIGFuIGF0dHJpYnV0 ZSBETUFfQVRUUl9GT08gd2hlbiBtYXBwaW5nIG1lbW9yeQogZm9yIERNQToKIAotI2luY2x1ZGUg PGxpbnV4L2RtYS1hdHRycy5oPgotLyogRE1BX0FUVFJfRk9PIHNob3VsZCBiZSBkZWZpbmVkIGlu IGxpbnV4L2RtYS1hdHRycy5oIGFuZAorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+Cisv KiBETUFfQVRUUl9GT08gc2hvdWxkIGJlIGRlZmluZWQgaW4gbGludXgvZG1hLW1hcHBpbmcuaCBh bmQKICAqIGRvY3VtZW50ZWQgaW4gRG9jdW1lbnRhdGlvbi9ETUEtYXR0cmlidXRlcy50eHQgKi8K IC4uLgogCi0JREVGSU5FX0RNQV9BVFRSUyhhdHRycyk7Ci0JZG1hX3NldF9hdHRyKERNQV9BVFRS X0ZPTywgJmF0dHJzKTsKKwl1bnNpZ25lZCBsb25nIGF0dHI7CisJYXR0ciB8PSBETUFfQVRUUl9G T087CiAJLi4uLgotCW4gPSBkbWFfbWFwX3NnX2F0dHJzKGRldiwgc2csIG5lbnRzLCBETUFfVE9f REVWSUNFLCAmYXR0cik7CisJbiA9IGRtYV9tYXBfc2dfYXR0cnMoZGV2LCBzZywgbmVudHMsIERN QV9UT19ERVZJQ0UsIGF0dHIpOwogCS4uLi4KIAogQXJjaGl0ZWN0dXJlcyB0aGF0IGNhcmUgYWJv dXQgRE1BX0FUVFJfRk9PIHdvdWxkIGNoZWNrIGZvciBpdHMKQEAgLTQyMiw3ICs0MTksNyBAQCBy b3V0aW5lcywgZS5nLjoKIAogdm9pZCB3aGl6Y29fZG1hX21hcF9zZ19hdHRycyhzdHJ1Y3QgZGV2 aWNlICpkZXYsIGRtYV9hZGRyX3QgZG1hX2FkZHIsCiAJCQkgICAgIHNpemVfdCBzaXplLCBlbnVt IGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsCi0JCQkgICAgIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJz KQorCQkJICAgICB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCS4uLi4KIAlpbnQgZm9vID0gIGRt YV9nZXRfYXR0cihETUFfQVRUUl9GT08sIGF0dHJzKTsKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRp b24vRE1BLWF0dHJpYnV0ZXMudHh0IGIvRG9jdW1lbnRhdGlvbi9ETUEtYXR0cmlidXRlcy50eHQK aW5kZXggZThjZjljZjg3M2IzLi4yZDQ1NWE1Y2Y2NzEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRp b24vRE1BLWF0dHJpYnV0ZXMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vRE1BLWF0dHJpYnV0ZXMu dHh0CkBAIC0yLDcgKzIsNyBAQAogCQkJPT09PT09PT09PT09PT0KIAogVGhpcyBkb2N1bWVudCBk ZXNjcmliZXMgdGhlIHNlbWFudGljcyBvZiB0aGUgRE1BIGF0dHJpYnV0ZXMgdGhhdCBhcmUKLWRl ZmluZWQgaW4gbGludXgvZG1hLWF0dHJzLmguCitkZWZpbmVkIGluIGxpbnV4L2RtYS1tYXBwaW5n LmguCiAKIERNQV9BVFRSX1dSSVRFX0JBUlJJRVIKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZG1hLWF0dHJzLmggYi9pbmNsdWRlL2xpbnV4L2RtYS1h dHRycy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MjQ2MjM5YTQ5NTMuLjAwMDAw MDAwMDAwMAotLS0gYS9pbmNsdWRlL2xpbnV4L2RtYS1hdHRycy5oCisrKyAvZGV2L251bGwKQEAg LTEsNzEgKzAsMCBAQAotI2lmbmRlZiBfRE1BX0FUVFJfSAotI2RlZmluZSBfRE1BX0FUVFJfSAot Ci0jaW5jbHVkZSA8bGludXgvYml0bWFwLmg+Ci0jaW5jbHVkZSA8bGludXgvYml0b3BzLmg+Ci0j aW5jbHVkZSA8bGludXgvYnVnLmg+Ci0KLS8qKgotICogYW4gZW51bSBkbWFfYXR0ciByZXByZXNl bnRzIGFuIGF0dHJpYnV0ZSBhc3NvY2lhdGVkIHdpdGggYSBETUEKLSAqIG1hcHBpbmcuIFRoZSBz ZW1hbnRpY3Mgb2YgZWFjaCBhdHRyaWJ1dGUgc2hvdWxkIGJlIGRlZmluZWQgaW4KLSAqIERvY3Vt ZW50YXRpb24vRE1BLWF0dHJpYnV0ZXMudHh0LgotICovCi1lbnVtIGRtYV9hdHRyIHsKLQlETUFf QVRUUl9XUklURV9CQVJSSUVSLAotCURNQV9BVFRSX1dFQUtfT1JERVJJTkcsCi0JRE1BX0FUVFJf V1JJVEVfQ09NQklORSwKLQlETUFfQVRUUl9OT05fQ09OU0lTVEVOVCwKLQlETUFfQVRUUl9OT19L RVJORUxfTUFQUElORywKLQlETUFfQVRUUl9TS0lQX0NQVV9TWU5DLAotCURNQV9BVFRSX0ZPUkNF X0NPTlRJR1VPVVMsCi0JRE1BX0FUVFJfQUxMT0NfU0lOR0xFX1BBR0VTLAotCURNQV9BVFRSX01B WCwKLX07Ci0KLSNkZWZpbmUgX19ETUFfQVRUUlNfTE9OR1MgQklUU19UT19MT05HUyhETUFfQVRU Ul9NQVgpCi0KLS8qKgotICogc3RydWN0IGRtYV9hdHRycyAtIGFuIG9wYXF1ZSBjb250YWluZXIg Zm9yIERNQSBhdHRyaWJ1dGVzCi0gKiBAZmxhZ3MgLSBiaXRtYXNrIHJlcHJlc2VudGluZyBhIGNv bGxlY3Rpb24gb2YgZW51bSBkbWFfYXR0cgotICovCi1zdHJ1Y3QgZG1hX2F0dHJzIHsKLQl1bnNp Z25lZCBsb25nIGZsYWdzW19fRE1BX0FUVFJTX0xPTkdTXTsKLX07Ci0KLSNkZWZpbmUgREVGSU5F X0RNQV9BVFRSUyh4KSAJCQkJCVwKLQlzdHJ1Y3QgZG1hX2F0dHJzIHggPSB7CQkJCQlcCi0JCS5m bGFncyA9IHsgWzAgLi4uIF9fRE1BX0FUVFJTX0xPTkdTLTFdID0gMCB9LAlcCi0JfQotCi1zdGF0 aWMgaW5saW5lIHZvaWQgaW5pdF9kbWFfYXR0cnMoc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCi17 Ci0JYml0bWFwX3plcm8oYXR0cnMtPmZsYWdzLCBfX0RNQV9BVFRSU19MT05HUyk7Ci19Ci0KLS8q KgotICogZG1hX3NldF9hdHRyIC0gc2V0IGEgc3BlY2lmaWMgYXR0cmlidXRlCi0gKiBAYXR0cjog YXR0cmlidXRlIHRvIHNldAotICogQGF0dHJzOiBzdHJ1Y3QgZG1hX2F0dHJzIChtYXkgYmUgTlVM TCkKLSAqLwotc3RhdGljIGlubGluZSB2b2lkIGRtYV9zZXRfYXR0cihlbnVtIGRtYV9hdHRyIGF0 dHIsIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKQotewotCWlmIChhdHRycyA9PSBOVUxMKQotCQly ZXR1cm47Ci0JQlVHX09OKGF0dHIgPj0gRE1BX0FUVFJfTUFYKTsKLQlfX3NldF9iaXQoYXR0ciwg YXR0cnMtPmZsYWdzKTsKLX0KLQotLyoqCi0gKiBkbWFfZ2V0X2F0dHIgLSBjaGVjayBmb3IgYSBz cGVjaWZpYyBhdHRyaWJ1dGUKLSAqIEBhdHRyOiBhdHRyaWJ1dGUgdG8gc2V0Ci0gKiBAYXR0cnM6 IHN0cnVjdCBkbWFfYXR0cnMgKG1heSBiZSBOVUxMKQotICovCi1zdGF0aWMgaW5saW5lIGludCBk bWFfZ2V0X2F0dHIoZW51bSBkbWFfYXR0ciBhdHRyLCBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykK LXsKLQlpZiAoYXR0cnMgPT0gTlVMTCkKLQkJcmV0dXJuIDA7Ci0JQlVHX09OKGF0dHIgPj0gRE1B X0FUVFJfTUFYKTsKLQlyZXR1cm4gdGVzdF9iaXQoYXR0ciwgYXR0cnMtPmZsYWdzKTsKLX0KLQot I2VuZGlmIC8qIF9ETUFfQVRUUl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2RtYS1t YXBwaW5nLmggYi9pbmNsdWRlL2xpbnV4L2RtYS1tYXBwaW5nLmgKaW5kZXggNzFjMWIyMTVlZjY2 Li5iNzUyYjljY2VjNzggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZG1hLW1hcHBpbmcuaAor KysgYi9pbmNsdWRlL2xpbnV4L2RtYS1tYXBwaW5nLmgKQEAgLTUsMTMgKzUsMjUgQEAKICNpbmNs dWRlIDxsaW51eC9zdHJpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KICNpbmNsdWRl IDxsaW51eC9lcnIuaD4KLSNpbmNsdWRlIDxsaW51eC9kbWEtYXR0cnMuaD4KICNpbmNsdWRlIDxs aW51eC9kbWEtZGVidWcuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtZGlyZWN0aW9uLmg+CiAjaW5j bHVkZSA8bGludXgvc2NhdHRlcmxpc3QuaD4KICNpbmNsdWRlIDxsaW51eC9rbWVtY2hlY2suaD4K ICNpbmNsdWRlIDxsaW51eC9idWcuaD4KIAorLyoqCisgKiBMaXN0IG9mIHBvc3NpYmxlIGF0dHJp YnV0ZXMgYXNzb2NpYXRlZCB3aXRoIGEgRE1BIG1hcHBpbmcuIFRoZSBzZW1hbnRpY3MKKyAqIG9m IGVhY2ggYXR0cmlidXRlIHNob3VsZCBiZSBkZWZpbmVkIGluIERvY3VtZW50YXRpb24vRE1BLWF0 dHJpYnV0ZXMudHh0LgorICovCisjZGVmaW5lIERNQV9BVFRSX1dSSVRFX0JBUlJJRVIJCSgxVUwg PDwgMSkKKyNkZWZpbmUgRE1BX0FUVFJfV0VBS19PUkRFUklORwkJKDFVTCA8PCAyKQorI2RlZmlu ZSBETUFfQVRUUl9XUklURV9DT01CSU5FCQkoMVVMIDw8IDMpCisjZGVmaW5lIERNQV9BVFRSX05P Tl9DT05TSVNURU5UCQkoMVVMIDw8IDQpCisjZGVmaW5lIERNQV9BVFRSX05PX0tFUk5FTF9NQVBQ SU5HCSgxVUwgPDwgNSkKKyNkZWZpbmUgRE1BX0FUVFJfU0tJUF9DUFVfU1lOQwkJKDFVTCA8PCA2 KQorI2RlZmluZSBETUFfQVRUUl9GT1JDRV9DT05USUdVT1VTCSgxVUwgPDwgNykKKyNkZWZpbmUg RE1BX0FUVFJfQUxMT0NfU0lOR0xFX1BBR0VTCSgxVUwgPDwgOCkKKwogLyoKICAqIEEgZG1hX2Fk ZHJfdCBjYW4gaG9sZCBhbnkgdmFsaWQgRE1BIG9yIGJ1cyBhZGRyZXNzIGZvciB0aGUgcGxhdGZv cm0uCiAgKiBJdCBjYW4gYmUgZ2l2ZW4gdG8gYSBkZXZpY2UgdG8gdXNlIGFzIGEgRE1BIHNvdXJj ZSBvciB0YXJnZXQuICBBIENQVSBjYW5ub3QKQEAgLTIxLDM0ICszMywzNSBAQAogc3RydWN0IGRt YV9tYXBfb3BzIHsKIAl2b2lkKiAoKmFsbG9jKShzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBz aXplLAogCQkJCWRtYV9hZGRyX3QgKmRtYV9oYW5kbGUsIGdmcF90IGdmcCwKLQkJCQlzdHJ1Y3Qg ZG1hX2F0dHJzICphdHRycyk7CisJCQkJdW5zaWduZWQgbG9uZyBhdHRycyk7CiAJdm9pZCAoKmZy ZWUpKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCiAJCQkgICAgICB2b2lkICp2YWRk ciwgZG1hX2FkZHJfdCBkbWFfaGFuZGxlLAotCQkJICAgICAgc3RydWN0IGRtYV9hdHRycyAqYXR0 cnMpOworCQkJICAgICAgdW5zaWduZWQgbG9uZyBhdHRycyk7CiAJaW50ICgqbW1hcCkoc3RydWN0 IGRldmljZSAqLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKiwKLQkJCSAgdm9pZCAqLCBkbWFfYWRk cl90LCBzaXplX3QsIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJzKTsKKwkJCSAgdm9pZCAqLCBkbWFf YWRkcl90LCBzaXplX3QsCisJCQkgIHVuc2lnbmVkIGxvbmcgYXR0cnMpOwogCiAJaW50ICgqZ2V0 X3NndGFibGUpKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNnX3RhYmxlICpzZ3QsIHZvaWQg KiwKLQkJCSAgIGRtYV9hZGRyX3QsIHNpemVfdCwgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpOwor CQkJICAgZG1hX2FkZHJfdCwgc2l6ZV90LCB1bnNpZ25lZCBsb25nIGF0dHJzKTsKIAogCWRtYV9h ZGRyX3QgKCptYXBfcGFnZSkoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwK IAkJCSAgICAgICB1bnNpZ25lZCBsb25nIG9mZnNldCwgc2l6ZV90IHNpemUsCiAJCQkgICAgICAg ZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLAotCQkJICAgICAgIHN0cnVjdCBkbWFfYXR0cnMg KmF0dHJzKTsKKwkJCSAgICAgICB1bnNpZ25lZCBsb25nIGF0dHJzKTsKIAl2b2lkICgqdW5tYXBf cGFnZSkoc3RydWN0IGRldmljZSAqZGV2LCBkbWFfYWRkcl90IGRtYV9oYW5kbGUsCiAJCQkgICBz aXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLAotCQkJICAgc3RydWN0IGRt YV9hdHRycyAqYXR0cnMpOworCQkJICAgdW5zaWduZWQgbG9uZyBhdHRycyk7CiAJLyoKIAkgKiBt YXBfc2cgcmV0dXJucyAwIG9uIGVycm9yIGFuZCBhIHZhbHVlID4gMCBvbiBzdWNjZXNzLgogCSAq IEl0IHNob3VsZCBuZXZlciByZXR1cm4gYSB2YWx1ZSA8IDAuCiAJICovCiAJaW50ICgqbWFwX3Nn KShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2csCiAJCSAgICAgIGlu dCBuZW50cywgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLAotCQkgICAgICBzdHJ1Y3QgZG1h X2F0dHJzICphdHRycyk7CisJCSAgICAgIHVuc2lnbmVkIGxvbmcgYXR0cnMpOwogCXZvaWQgKCp1 bm1hcF9zZykoc3RydWN0IGRldmljZSAqZGV2LAogCQkJIHN0cnVjdCBzY2F0dGVybGlzdCAqc2cs IGludCBuZW50cywKIAkJCSBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsCi0JCQkgc3RydWN0 IGRtYV9hdHRycyAqYXR0cnMpOworCQkJIHVuc2lnbmVkIGxvbmcgYXR0cnMpOwogCXZvaWQgKCpz eW5jX3NpbmdsZV9mb3JfY3B1KShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQkJICAgIGRtYV9hZGRy X3QgZG1hX2hhbmRsZSwgc2l6ZV90IHNpemUsCiAJCQkJICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0 aW9uIGRpcik7CkBAIC04OCw2ICsxMDEsMTkgQEAgc3RhdGljIGlubGluZSBpbnQgaXNfZGV2aWNl X2RtYV9jYXBhYmxlKHN0cnVjdCBkZXZpY2UgKmRldikKIAlyZXR1cm4gZGV2LT5kbWFfbWFzayAh PSBOVUxMICYmICpkZXYtPmRtYV9tYXNrICE9IERNQV9NQVNLX05PTkU7CiB9CiAKKy8qKgorICog ZG1hX2dldF9hdHRyIC0gY2hlY2sgZm9yIGEgc3BlY2lmaWMgYXR0cmlidXRlCisgKiBAYXR0cjog YXR0cmlidXRlIHRvIGxvb2sgZm9yCisgKiBAYXR0cnM6IGF0dHJpYnV0ZXMgdG8gY2hlY2sgd2l0 aGluCisgKgorICogVW5saWtlIGFsbCBvdGhlciBkbWEtbWFwcGluZyBmdW5jdGlvbnMsIHRoaXMg b25lIGdldHMgcG9pbnRlciB0bworICogYXR0cmlidXRlcyAoZm9yIG9sZC1jb2RlIGNvbXBhdGli bGl0eSByZWFzb25zKS4KKyAqLworc3RhdGljIGlubGluZSBib29sIGRtYV9nZXRfYXR0cih1bnNp Z25lZCBsb25nIGF0dHIsIHVuc2lnbmVkIGxvbmcgYXR0cnMpCit7CisJcmV0dXJuICEhKGF0dHIg JiBhdHRycyk7Cit9CisKICNpZmRlZiBDT05GSUdfSEFWRV9HRU5FUklDX0RNQV9DT0hFUkVOVAog LyoKICAqIFRoZXNlIHRocmVlIGZ1bmN0aW9ucyBhcmUgb25seSBmb3IgZG1hIGFsbG9jYXRvci4K QEAgLTEyMyw3ICsxNDksNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBkbWFfbWFwX29wcyAqZ2V0 X2RtYV9vcHMoc3RydWN0IGRldmljZSAqZGV2KQogc3RhdGljIGlubGluZSBkbWFfYWRkcl90IGRt YV9tYXBfc2luZ2xlX2F0dHJzKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqcHRyLAogCQkJCQkg ICAgICBzaXplX3Qgc2l6ZSwKIAkJCQkJICAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGly LAotCQkJCQkgICAgICBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJCQkJICAgICAgdW5zaWdu ZWQgbG9uZyBhdHRycykKIHsKIAlzdHJ1Y3QgZG1hX21hcF9vcHMgKm9wcyA9IGdldF9kbWFfb3Bz KGRldik7CiAJZG1hX2FkZHJfdCBhZGRyOwpAQCAtMTQyLDcgKzE2OCw3IEBAIHN0YXRpYyBpbmxp bmUgZG1hX2FkZHJfdCBkbWFfbWFwX3NpbmdsZV9hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHZv aWQgKnB0ciwKIHN0YXRpYyBpbmxpbmUgdm9pZCBkbWFfdW5tYXBfc2luZ2xlX2F0dHJzKHN0cnVj dCBkZXZpY2UgKmRldiwgZG1hX2FkZHJfdCBhZGRyLAogCQkJCQkgIHNpemVfdCBzaXplLAogCQkJ CQkgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKLQkJCQkJICBzdHJ1Y3QgZG1hX2F0dHJz ICphdHRycykKKwkJCQkJICB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCXN0cnVjdCBkbWFfbWFw X29wcyAqb3BzID0gZ2V0X2RtYV9vcHMoZGV2KTsKIApAQCAtMTU4LDcgKzE4NCw3IEBAIHN0YXRp YyBpbmxpbmUgdm9pZCBkbWFfdW5tYXBfc2luZ2xlX2F0dHJzKHN0cnVjdCBkZXZpY2UgKmRldiwg ZG1hX2FkZHJfdCBhZGRyLAogICovCiBzdGF0aWMgaW5saW5lIGludCBkbWFfbWFwX3NnX2F0dHJz KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywKIAkJCQkgICBpbnQg bmVudHMsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKLQkJCQkgICBzdHJ1Y3QgZG1hX2F0 dHJzICphdHRycykKKwkJCQkgICB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCXN0cnVjdCBkbWFf bWFwX29wcyAqb3BzID0gZ2V0X2RtYV9vcHMoZGV2KTsKIAlpbnQgaSwgZW50czsKQEAgLTE3Niw3 ICsyMDIsNyBAQCBzdGF0aWMgaW5saW5lIGludCBkbWFfbWFwX3NnX2F0dHJzKHN0cnVjdCBkZXZp Y2UgKmRldiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywKIAogc3RhdGljIGlubGluZSB2b2lkIGRt YV91bm1hcF9zZ19hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAq c2csCiAJCQkJICAgICAgaW50IG5lbnRzLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsCi0J CQkJICAgICAgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCQkJICAgICAgdW5zaWduZWQgbG9u ZyBhdHRycykKIHsKIAlzdHJ1Y3QgZG1hX21hcF9vcHMgKm9wcyA9IGdldF9kbWFfb3BzKGRldik7 CiAKQEAgLTE5NSw3ICsyMjEsNyBAQCBzdGF0aWMgaW5saW5lIGRtYV9hZGRyX3QgZG1hX21hcF9w YWdlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnBhZ2UsCiAKIAlrbWVtY2hlY2tf bWFya19pbml0aWFsaXplZChwYWdlX2FkZHJlc3MocGFnZSkgKyBvZmZzZXQsIHNpemUpOwogCUJV R19PTighdmFsaWRfZG1hX2RpcmVjdGlvbihkaXIpKTsKLQlhZGRyID0gb3BzLT5tYXBfcGFnZShk ZXYsIHBhZ2UsIG9mZnNldCwgc2l6ZSwgZGlyLCBOVUxMKTsKKwlhZGRyID0gb3BzLT5tYXBfcGFn ZShkZXYsIHBhZ2UsIG9mZnNldCwgc2l6ZSwgZGlyLCAwKTsKIAlkZWJ1Z19kbWFfbWFwX3BhZ2Uo ZGV2LCBwYWdlLCBvZmZzZXQsIHNpemUsIGRpciwgYWRkciwgZmFsc2UpOwogCiAJcmV0dXJuIGFk ZHI7CkBAIC0yMDgsNyArMjM0LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGRtYV91bm1hcF9wYWdl KHN0cnVjdCBkZXZpY2UgKmRldiwgZG1hX2FkZHJfdCBhZGRyLAogCiAJQlVHX09OKCF2YWxpZF9k bWFfZGlyZWN0aW9uKGRpcikpOwogCWlmIChvcHMtPnVubWFwX3BhZ2UpCi0JCW9wcy0+dW5tYXBf cGFnZShkZXYsIGFkZHIsIHNpemUsIGRpciwgTlVMTCk7CisJCW9wcy0+dW5tYXBfcGFnZShkZXYs IGFkZHIsIHNpemUsIGRpciwgMCk7CiAJZGVidWdfZG1hX3VubWFwX3BhZ2UoZGV2LCBhZGRyLCBz aXplLCBkaXIsIGZhbHNlKTsKIH0KIApAQCAtMjg5LDEwICszMTUsMTAgQEAgZG1hX3N5bmNfc2df Zm9yX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2csCiAK IH0KIAotI2RlZmluZSBkbWFfbWFwX3NpbmdsZShkLCBhLCBzLCByKSBkbWFfbWFwX3NpbmdsZV9h dHRycyhkLCBhLCBzLCByLCBOVUxMKQotI2RlZmluZSBkbWFfdW5tYXBfc2luZ2xlKGQsIGEsIHMs IHIpIGRtYV91bm1hcF9zaW5nbGVfYXR0cnMoZCwgYSwgcywgciwgTlVMTCkKLSNkZWZpbmUgZG1h X21hcF9zZyhkLCBzLCBuLCByKSBkbWFfbWFwX3NnX2F0dHJzKGQsIHMsIG4sIHIsIE5VTEwpCi0j ZGVmaW5lIGRtYV91bm1hcF9zZyhkLCBzLCBuLCByKSBkbWFfdW5tYXBfc2dfYXR0cnMoZCwgcywg biwgciwgTlVMTCkKKyNkZWZpbmUgZG1hX21hcF9zaW5nbGUoZCwgYSwgcywgcikgZG1hX21hcF9z aW5nbGVfYXR0cnMoZCwgYSwgcywgciwgMCkKKyNkZWZpbmUgZG1hX3VubWFwX3NpbmdsZShkLCBh LCBzLCByKSBkbWFfdW5tYXBfc2luZ2xlX2F0dHJzKGQsIGEsIHMsIHIsIDApCisjZGVmaW5lIGRt YV9tYXBfc2coZCwgcywgbiwgcikgZG1hX21hcF9zZ19hdHRycyhkLCBzLCBuLCByLCAwKQorI2Rl ZmluZSBkbWFfdW5tYXBfc2coZCwgcywgbiwgcikgZG1hX3VubWFwX3NnX2F0dHJzKGQsIHMsIG4s IHIsIDApCiAKIGV4dGVybiBpbnQgZG1hX2NvbW1vbl9tbWFwKHN0cnVjdCBkZXZpY2UgKmRldiwg c3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJCQkgICB2b2lkICpjcHVfYWRkciwgZG1hX2Fk ZHJfdCBkbWFfYWRkciwgc2l6ZV90IHNpemUpOwpAQCAtMzIxLDcgKzM0Nyw3IEBAIHZvaWQgZG1h X2NvbW1vbl9mcmVlX3JlbWFwKHZvaWQgKmNwdV9hZGRyLCBzaXplX3Qgc2l6ZSwgdW5zaWduZWQg bG9uZyB2bV9mbGFncyk7CiAgKi8KIHN0YXRpYyBpbmxpbmUgaW50CiBkbWFfbW1hcF9hdHRycyhz dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB2b2lkICpjcHVf YWRkciwKLQkgICAgICAgZG1hX2FkZHJfdCBkbWFfYWRkciwgc2l6ZV90IHNpemUsIHN0cnVjdCBk bWFfYXR0cnMgKmF0dHJzKQorCSAgICAgICBkbWFfYWRkcl90IGRtYV9hZGRyLCBzaXplX3Qgc2l6 ZSwgdW5zaWduZWQgbG9uZyBhdHRycykKIHsKIAlzdHJ1Y3QgZG1hX21hcF9vcHMgKm9wcyA9IGdl dF9kbWFfb3BzKGRldik7CiAJQlVHX09OKCFvcHMpOwpAQCAtMzMwLDcgKzM1Niw3IEBAIGRtYV9t bWFwX2F0dHJzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEs IHZvaWQgKmNwdV9hZGRyLAogCXJldHVybiBkbWFfY29tbW9uX21tYXAoZGV2LCB2bWEsIGNwdV9h ZGRyLCBkbWFfYWRkciwgc2l6ZSk7CiB9CiAKLSNkZWZpbmUgZG1hX21tYXBfY29oZXJlbnQoZCwg diwgYywgaCwgcykgZG1hX21tYXBfYXR0cnMoZCwgdiwgYywgaCwgcywgTlVMTCkKKyNkZWZpbmUg ZG1hX21tYXBfY29oZXJlbnQoZCwgdiwgYywgaCwgcykgZG1hX21tYXBfYXR0cnMoZCwgdiwgYywg aCwgcywgMCkKIAogaW50CiBkbWFfY29tbW9uX2dldF9zZ3RhYmxlKHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IHNnX3RhYmxlICpzZ3QsCkBAIC0zMzgsNyArMzY0LDggQEAgZG1hX2NvbW1vbl9n ZXRfc2d0YWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzZ190YWJsZSAqc2d0LAogCiBz dGF0aWMgaW5saW5lIGludAogZG1hX2dldF9zZ3RhYmxlX2F0dHJzKHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IHNnX3RhYmxlICpzZ3QsIHZvaWQgKmNwdV9hZGRyLAotCQkgICAgICBkbWFfYWRk cl90IGRtYV9hZGRyLCBzaXplX3Qgc2l6ZSwgc3RydWN0IGRtYV9hdHRycyAqYXR0cnMpCisJCSAg ICAgIGRtYV9hZGRyX3QgZG1hX2FkZHIsIHNpemVfdCBzaXplLAorCQkgICAgICB1bnNpZ25lZCBs b25nIGF0dHJzKQogewogCXN0cnVjdCBkbWFfbWFwX29wcyAqb3BzID0gZ2V0X2RtYV9vcHMoZGV2 KTsKIAlCVUdfT04oIW9wcyk7CkBAIC0zNDgsNyArMzc1LDcgQEAgZG1hX2dldF9zZ3RhYmxlX2F0 dHJzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNnX3RhYmxlICpzZ3QsIHZvaWQgKmNwdV9h ZGRyLAogCXJldHVybiBkbWFfY29tbW9uX2dldF9zZ3RhYmxlKGRldiwgc2d0LCBjcHVfYWRkciwg ZG1hX2FkZHIsIHNpemUpOwogfQogCi0jZGVmaW5lIGRtYV9nZXRfc2d0YWJsZShkLCB0LCB2LCBo LCBzKSBkbWFfZ2V0X3NndGFibGVfYXR0cnMoZCwgdCwgdiwgaCwgcywgTlVMTCkKKyNkZWZpbmUg ZG1hX2dldF9zZ3RhYmxlKGQsIHQsIHYsIGgsIHMpIGRtYV9nZXRfc2d0YWJsZV9hdHRycyhkLCB0 LCB2LCBoLCBzLCAwKQogCiAjaWZuZGVmIGFyY2hfZG1hX2FsbG9jX2F0dHJzCiAjZGVmaW5lIGFy Y2hfZG1hX2FsbG9jX2F0dHJzKGRldiwgZmxhZykJKHRydWUpCkBAIC0zNTYsNyArMzgzLDcgQEAg ZG1hX2dldF9zZ3RhYmxlX2F0dHJzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNnX3RhYmxl ICpzZ3QsIHZvaWQgKmNwdV9hZGRyLAogCiBzdGF0aWMgaW5saW5lIHZvaWQgKmRtYV9hbGxvY19h dHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAogCQkJCSAgICAgICBkbWFfYWRk cl90ICpkbWFfaGFuZGxlLCBnZnBfdCBmbGFnLAotCQkJCSAgICAgICBzdHJ1Y3QgZG1hX2F0dHJz ICphdHRycykKKwkJCQkgICAgICAgdW5zaWduZWQgbG9uZyBhdHRycykKIHsKIAlzdHJ1Y3QgZG1h X21hcF9vcHMgKm9wcyA9IGdldF9kbWFfb3BzKGRldik7CiAJdm9pZCAqY3B1X2FkZHI7CkBAIC0z NzgsNyArNDA1LDcgQEAgc3RhdGljIGlubGluZSB2b2lkICpkbWFfYWxsb2NfYXR0cnMoc3RydWN0 IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKIAogc3RhdGljIGlubGluZSB2b2lkIGRtYV9mcmVl X2F0dHJzKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCiAJCQkJICAgICB2b2lkICpj cHVfYWRkciwgZG1hX2FkZHJfdCBkbWFfaGFuZGxlLAotCQkJCSAgICAgc3RydWN0IGRtYV9hdHRy cyAqYXR0cnMpCisJCQkJICAgICB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCXN0cnVjdCBkbWFf bWFwX29wcyAqb3BzID0gZ2V0X2RtYV9vcHMoZGV2KTsKIApAQCAtMzk4LDMxICs0MjUsMjcgQEAg c3RhdGljIGlubGluZSB2b2lkIGRtYV9mcmVlX2F0dHJzKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6 ZV90IHNpemUsCiBzdGF0aWMgaW5saW5lIHZvaWQgKmRtYV9hbGxvY19jb2hlcmVudChzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAogCQlkbWFfYWRkcl90ICpkbWFfaGFuZGxlLCBnZnBf dCBmbGFnKQogewotCXJldHVybiBkbWFfYWxsb2NfYXR0cnMoZGV2LCBzaXplLCBkbWFfaGFuZGxl LCBmbGFnLCBOVUxMKTsKKwlyZXR1cm4gZG1hX2FsbG9jX2F0dHJzKGRldiwgc2l6ZSwgZG1hX2hh bmRsZSwgZmxhZywgMCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBkbWFfZnJlZV9jb2hlcmVu dChzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAogCQl2b2lkICpjcHVfYWRkciwgZG1h X2FkZHJfdCBkbWFfaGFuZGxlKQogewotCXJldHVybiBkbWFfZnJlZV9hdHRycyhkZXYsIHNpemUs IGNwdV9hZGRyLCBkbWFfaGFuZGxlLCBOVUxMKTsKKwlyZXR1cm4gZG1hX2ZyZWVfYXR0cnMoZGV2 LCBzaXplLCBjcHVfYWRkciwgZG1hX2hhbmRsZSwgMCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9p ZCAqZG1hX2FsbG9jX25vbmNvaGVyZW50KHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUs CiAJCWRtYV9hZGRyX3QgKmRtYV9oYW5kbGUsIGdmcF90IGdmcCkKIHsKLQlERUZJTkVfRE1BX0FU VFJTKGF0dHJzKTsKLQotCWRtYV9zZXRfYXR0cihETUFfQVRUUl9OT05fQ09OU0lTVEVOVCwgJmF0 dHJzKTsKLQlyZXR1cm4gZG1hX2FsbG9jX2F0dHJzKGRldiwgc2l6ZSwgZG1hX2hhbmRsZSwgZ2Zw LCAmYXR0cnMpOworCXJldHVybiBkbWFfYWxsb2NfYXR0cnMoZGV2LCBzaXplLCBkbWFfaGFuZGxl LCBnZnAsCisJCQkgICAgICAgRE1BX0FUVFJfTk9OX0NPTlNJU1RFTlQpOwogfQogCiBzdGF0aWMg aW5saW5lIHZvaWQgZG1hX2ZyZWVfbm9uY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXpl X3Qgc2l6ZSwKIAkJdm9pZCAqY3B1X2FkZHIsIGRtYV9hZGRyX3QgZG1hX2hhbmRsZSkKIHsKLQlE RUZJTkVfRE1BX0FUVFJTKGF0dHJzKTsKLQotCWRtYV9zZXRfYXR0cihETUFfQVRUUl9OT05fQ09O U0lTVEVOVCwgJmF0dHJzKTsKLQlkbWFfZnJlZV9hdHRycyhkZXYsIHNpemUsIGNwdV9hZGRyLCBk bWFfaGFuZGxlLCAmYXR0cnMpOworCWRtYV9mcmVlX2F0dHJzKGRldiwgc2l6ZSwgY3B1X2FkZHIs IGRtYV9oYW5kbGUsCisJCSAgICAgICBETUFfQVRUUl9OT05fQ09OU0lTVEVOVCk7CiB9CiAKIHN0 YXRpYyBpbmxpbmUgaW50IGRtYV9tYXBwaW5nX2Vycm9yKHN0cnVjdCBkZXZpY2UgKmRldiwgZG1h X2FkZHJfdCBkbWFfYWRkcikKQEAgLTY0Niw5ICs2NjksOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQg ZG1hbV9yZWxlYXNlX2RlY2xhcmVkX21lbW9yeShzdHJ1Y3QgZGV2aWNlICpkZXYpCiBzdGF0aWMg aW5saW5lIHZvaWQgKmRtYV9hbGxvY193YyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXpl LAogCQkJCSBkbWFfYWRkcl90ICpkbWFfYWRkciwgZ2ZwX3QgZ2ZwKQogewotCURFRklORV9ETUFf QVRUUlMoYXR0cnMpOwotCWRtYV9zZXRfYXR0cihETUFfQVRUUl9XUklURV9DT01CSU5FLCAmYXR0 cnMpOwotCXJldHVybiBkbWFfYWxsb2NfYXR0cnMoZGV2LCBzaXplLCBkbWFfYWRkciwgZ2ZwLCAm YXR0cnMpOworCXJldHVybiBkbWFfYWxsb2NfYXR0cnMoZGV2LCBzaXplLCBkbWFfYWRkciwgZ2Zw LAorCQkJICAgICAgIERNQV9BVFRSX1dSSVRFX0NPTUJJTkUpOwogfQogI2lmbmRlZiBkbWFfYWxs b2Nfd3JpdGVjb21iaW5lCiAjZGVmaW5lIGRtYV9hbGxvY193cml0ZWNvbWJpbmUgZG1hX2FsbG9j X3djCkBAIC02NTcsOSArNjc5LDggQEAgc3RhdGljIGlubGluZSB2b2lkICpkbWFfYWxsb2Nfd2Mo c3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKIHN0YXRpYyBpbmxpbmUgdm9pZCBkbWFf ZnJlZV93YyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAogCQkJICAgICAgIHZvaWQg KmNwdV9hZGRyLCBkbWFfYWRkcl90IGRtYV9hZGRyKQogewotCURFRklORV9ETUFfQVRUUlMoYXR0 cnMpOwotCWRtYV9zZXRfYXR0cihETUFfQVRUUl9XUklURV9DT01CSU5FLCAmYXR0cnMpOwotCXJl dHVybiBkbWFfZnJlZV9hdHRycyhkZXYsIHNpemUsIGNwdV9hZGRyLCBkbWFfYWRkciwgJmF0dHJz KTsKKwlyZXR1cm4gZG1hX2ZyZWVfYXR0cnMoZGV2LCBzaXplLCBjcHVfYWRkciwgZG1hX2FkZHIs CisJCQkgICAgICBETUFfQVRUUl9XUklURV9DT01CSU5FKTsKIH0KICNpZm5kZWYgZG1hX2ZyZWVf d3JpdGVjb21iaW5lCiAjZGVmaW5lIGRtYV9mcmVlX3dyaXRlY29tYmluZSBkbWFfZnJlZV93YwpA QCAtNjcwLDkgKzY5MSw4IEBAIHN0YXRpYyBpbmxpbmUgaW50IGRtYV9tbWFwX3djKHN0cnVjdCBk ZXZpY2UgKmRldiwKIAkJCSAgICAgIHZvaWQgKmNwdV9hZGRyLCBkbWFfYWRkcl90IGRtYV9hZGRy LAogCQkJICAgICAgc2l6ZV90IHNpemUpCiB7Ci0JREVGSU5FX0RNQV9BVFRSUyhhdHRycyk7Ci0J ZG1hX3NldF9hdHRyKERNQV9BVFRSX1dSSVRFX0NPTUJJTkUsICZhdHRycyk7Ci0JcmV0dXJuIGRt YV9tbWFwX2F0dHJzKGRldiwgdm1hLCBjcHVfYWRkciwgZG1hX2FkZHIsIHNpemUsICZhdHRycyk7 CisJcmV0dXJuIGRtYV9tbWFwX2F0dHJzKGRldiwgdm1hLCBjcHVfYWRkciwgZG1hX2FkZHIsIHNp emUsCisJCQkgICAgICBETUFfQVRUUl9XUklURV9DT01CSU5FKTsKIH0KICNpZm5kZWYgZG1hX21t YXBfd3JpdGVjb21iaW5lCiAjZGVmaW5lIGRtYV9tbWFwX3dyaXRlY29tYmluZSBkbWFfbW1hcF93 YwpkaWZmIC0tZ2l0IGEvbGliL2RtYS1ub29wLmMgYi9saWIvZG1hLW5vb3AuYwppbmRleCA3MjE0 NTY0Njg1N2UuLjNkNzY2ZTc4ZmJlMiAxMDA2NDQKLS0tIGEvbGliL2RtYS1ub29wLmMKKysrIGIv bGliL2RtYS1ub29wLmMKQEAgLTEwLDcgKzEwLDcgQEAKIAogc3RhdGljIHZvaWQgKmRtYV9ub29w X2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCiAJCQkgICAgZG1hX2FkZHJf dCAqZG1hX2hhbmRsZSwgZ2ZwX3QgZ2ZwLAotCQkJICAgIHN0cnVjdCBkbWFfYXR0cnMgKmF0dHJz KQorCQkJICAgIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7CiAJdm9pZCAqcmV0OwogCkBAIC0yMiw3 ICsyMiw3IEBAIHN0YXRpYyB2b2lkICpkbWFfbm9vcF9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYs IHNpemVfdCBzaXplLAogCiBzdGF0aWMgdm9pZCBkbWFfbm9vcF9mcmVlKHN0cnVjdCBkZXZpY2Ug KmRldiwgc2l6ZV90IHNpemUsCiAJCQkgIHZvaWQgKmNwdV9hZGRyLCBkbWFfYWRkcl90IGRtYV9h ZGRyLAotCQkJICBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKKwkJCSAgdW5zaWduZWQgbG9uZyBh dHRycykKIHsKIAlmcmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25nKWNwdV9hZGRyLCBnZXRfb3JkZXIo c2l6ZSkpOwogfQpAQCAtMzAsMTMgKzMwLDE0IEBAIHN0YXRpYyB2b2lkIGRtYV9ub29wX2ZyZWUo c3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKIHN0YXRpYyBkbWFfYWRkcl90IGRtYV9u b29wX21hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJCQkJ ICAgICAgdW5zaWduZWQgbG9uZyBvZmZzZXQsIHNpemVfdCBzaXplLAogCQkJCSAgICAgIGVudW0g ZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKLQkJCQkgICAgICBzdHJ1Y3QgZG1hX2F0dHJzICphdHRy cykKKwkJCQkgICAgICB1bnNpZ25lZCBsb25nIGF0dHJzKQogewogCXJldHVybiBwYWdlX3RvX3Bo eXMocGFnZSkgKyBvZmZzZXQ7CiB9CiAKIHN0YXRpYyBpbnQgZG1hX25vb3BfbWFwX3NnKHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZ2wsIGludCBuZW50cywKLQkJCSAg ICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykK KwkJCSAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLAorCQkJICAgICB1bnNpZ25lZCBs b25nIGF0dHJzKQogewogCWludCBpOwogCXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7Ci0tIAoxLjku MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhl bi5vcmcveGVuLWRldmVsCg==