From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Anholt Subject: [PATCH] vc4: Add an ioctl for labeling GEM BOs for summary stats Date: Thu, 22 Jun 2017 13:50:54 -0700 Message-ID: <20170622205054.31472-1-eric@anholt.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from anholt.net (anholt.net [50.246.234.109]) by gabe.freedesktop.org (Postfix) with ESMTP id C4A4C6E6D0 for ; Thu, 22 Jun 2017 20:50:58 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org VGhpcyBoYXMgcHJvdmVuIGltbWVuc2VseSB1c2VmdWwgZm9yIGRlYnVnZ2luZyBtZW1vcnkgbGVh a3MgYW5kCm92ZXJhbGxvY2F0aW9uICh3aGljaCBpcyBhIHJhdGhlciBzZXJpb3VzIGNvbmNlcm4g b24gdGhlIHBsYXRmb3JtLApnaXZlbiB0aGF0IHdlIHR5cGljYWxseSBydW4gYXQgYWJvdXQgMjU2 TUIgb2YgQ01BIG91dCBvZiB1cCB0byAxR0IKdG90YWwgbWVtb3J5LCB3aXRoIGZyYW1lYnVmZmVy cyB0aGF0IGFyZSBhYm91dCA4TUIgZWNhaCkuCgpUaGUgc3RhdGUgb2YgdGhlIGFydCB3aXRob3V0 IHRoaXMgaXMgdG8gZHVtcCBkZWJ1ZyBsb2dzIGZyb20gZXZlcnkgR0wKYXBwbGljYXRpb24sIGd1 ZXNzIGFzIHRvIGtlcm5lbCBhbGxvY2F0aW9ucyBiYXNlZCBvbiBib19zdGF0cywgYW5kIHRyeQp0 byBtZXJnZSB0aGF0IGFsbCB0b2dldGhlciBpbnRvIGEgZ2xvYmFsIHBpY3R1cmUgb2YgbWVtb3J5 IGFsbG9jYXRpb24Kc3RhdGUuICBXaXRoIHRoaXMsIHlvdSBjYW4gYWRkIGEgY291cGxlIG9mIGNh bGxzIHRvIHRoZSBkZWJ1ZyBidWlsZCBvZgp0aGUgM0QgZHJpdmVyIGFuZCBnZXQgYSBwcmV0dHkg ZGV0YWlsZWQgdmlldyBvZiBHUFUgbWVtb3J5IHVzYWdlIGZyb20KL2RlYnVnL2RyaS8wL2JvX3N0 YXRzIChvciB3aGVuIHdlIGRlYnVnIHByaW50IHRvIGRtZXNnIG9uIGFsbG9jYXRpb24KZmFpbHVy ZSkuCgpUaGUgTWVzYSBzaWRlIGN1cnJlbnRseSBsYWJlbHMgYXQgdGhlIGdhbGxpdW0gcmVzb3Vy Y2UgbGV2ZWwgKHNvIHlvdQpzZWUgdGhhdCBhIDE5MjB4MjAgcGl4bWFwIGhhcyBiZWVuIGNyZWF0 ZWQsIHByZXN1bWFibHkgZm9yIHRoZSB3aW5kb3cKc3lzdGVtIHBhbmVsKSwgYnV0IHdlIGNvdWxk IGV4dGVuZCB0aGF0IHRvIGJlIGV2ZW4gbW9yZSB1c2VmdWwgd2l0aApnbE9iamVjdExhYmVsKCkg bmFtZXMgYmVpbmcgc2VudCBhbGwgdGhlIHdheSBkb3duIHRvIHRoZSBrZXJuZWwuCgoocGFydGlh bCkgZXhhbXBsZSBvZiBzb3J0ZWQgZGVidWdmcyBvdXRwdXQgd2l0aCBNZXNhIGxhYmVsaW5nIGFs bApyZXNvdXJjZXM6CgogICAgICAgICAgICAgICBrZXJuZWwgQk8gY2FjaGU6ICAxNjM5MmtiIEJP cyAoMykKICAgICAgIHRpbGluZyBzaGFkb3cgMTkyMHgxMDgwOiAgIDgxNjBrYiBCT3MgKDEpCiAg ICAgICByZXNvdXJjZSAxOTIweDEwODBAMzIvMDogICA4MTYwa2IgQk9zICgxKQpzY2Fub3V0IHJl c291cmNlIDE5MjB4MTA4MEAzMi8wOiAgIDgxMDBrYiBCT3MgKDEpCiAgICAgICAgICAgICAgICAg ICAgICAgIGtlcm5lbDogICA4MTAwa2IgQk9zICgxKQoKU2lnbmVkLW9mZi1ieTogRXJpYyBBbmhv bHQgPGVyaWNAYW5ob2x0Lm5ldD4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9iby5jICAg ICAgICB8IDI1NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS92YzQvdmM0X2Rydi5jICAgICAgIHwgICA4ICstCiBkcml2ZXJzL2dwdS9kcm0vdmM0 L3ZjNF9kcnYuaCAgICAgICB8ICAzOSArKysrKy0KIGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2dl bS5jICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9yZW5kZXJfY2wuYyB8 ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfdjNkLmMgICAgICAgfCAgIDMgKy0KIGlu Y2x1ZGUvdWFwaS9kcm0vdmM0X2RybS5oICAgICAgICAgIHwgIDExICsrCiA3IGZpbGVzIGNoYW5n ZWQsIDI1NCBpbnNlcnRpb25zKCspLCA2NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vdmM0L3ZjNF9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfYm8uYwpp bmRleCA0ODdmOTY0MTJkMzUuLjY0MTQ3ZjFmY2NhNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3ZjNC92YzRfYm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9iby5jCkBAIC0y NCwyMSArMjQsMzUgQEAKICNpbmNsdWRlICJ2YzRfZHJ2LmgiCiAjaW5jbHVkZSAidWFwaS9kcm0v dmM0X2RybS5oIgogCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGJvX3R5cGVfbmFtZXNbXSA9 IHsKKwkia2VybmVsIiwKKwkiVjNEIiwKKwkiVjNEIHNoYWRlciIsCisJImR1bWIiLAorCSJiaW5u ZXIiLAorCSJSQ0wiLAorCSJCQ0wiLAorCSJrZXJuZWwgQk8gY2FjaGUiLAorfTsKKworc3RhdGlj IGJvb2wgaXNfdXNlcl9sYWJlbChpbnQgbGFiZWwpCit7CisJcmV0dXJuIGxhYmVsID49IFZDNF9C T19UWVBFX0NPVU5UOworfQorCiBzdGF0aWMgdm9pZCB2YzRfYm9fc3RhdHNfZHVtcChzdHJ1Y3Qg dmM0X2RldiAqdmM0KQogewotCURSTV9JTkZPKCJudW0gYm9zIGFsbG9jYXRlZDogJWRcbiIsCi0J CSB2YzQtPmJvX3N0YXRzLm51bV9hbGxvY2F0ZWQpOwotCURSTV9JTkZPKCJzaXplIGJvcyBhbGxv Y2F0ZWQ6ICVka2JcbiIsCi0JCSB2YzQtPmJvX3N0YXRzLnNpemVfYWxsb2NhdGVkIC8gMTAyNCk7 Ci0JRFJNX0lORk8oIm51bSBib3MgdXNlZDogJWRcbiIsCi0JCSB2YzQtPmJvX3N0YXRzLm51bV9h bGxvY2F0ZWQgLSB2YzQtPmJvX3N0YXRzLm51bV9jYWNoZWQpOwotCURSTV9JTkZPKCJzaXplIGJv cyB1c2VkOiAlZGtiXG4iLAotCQkgKHZjNC0+Ym9fc3RhdHMuc2l6ZV9hbGxvY2F0ZWQgLQotCQkg IHZjNC0+Ym9fc3RhdHMuc2l6ZV9jYWNoZWQpIC8gMTAyNCk7Ci0JRFJNX0lORk8oIm51bSBib3Mg Y2FjaGVkOiAlZFxuIiwKLQkJIHZjNC0+Ym9fc3RhdHMubnVtX2NhY2hlZCk7Ci0JRFJNX0lORk8o InNpemUgYm9zIGNhY2hlZDogJWRrYlxuIiwKLQkJIHZjNC0+Ym9fc3RhdHMuc2l6ZV9jYWNoZWQg LyAxMDI0KTsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCB2YzQtPm51bV9sYWJlbHM7IGkr KykgeworCQlpZiAoIXZjNC0+Ym9fbGFiZWxzW2ldLm51bV9hbGxvY2F0ZWQpCisJCQljb250aW51 ZTsKKworCQlEUk1fSU5GTygiJTMwczogJTZka2IgQk9zICglZClcbiIsCisJCQkgdmM0LT5ib19s YWJlbHNbaV0ubmFtZSwKKwkJCSB2YzQtPmJvX2xhYmVsc1tpXS5zaXplX2FsbG9jYXRlZCAvIDEw MjQsCisJCQkgdmM0LT5ib19sYWJlbHNbaV0ubnVtX2FsbG9jYXRlZCk7CisJfQogfQogCiAjaWZk ZWYgQ09ORklHX0RFQlVHX0ZTCkBAIC00NywzMCArNjEsOTYgQEAgaW50IHZjNF9ib19zdGF0c19k ZWJ1Z2ZzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCXN0cnVjdCBkcm1faW5m b19ub2RlICpub2RlID0gKHN0cnVjdCBkcm1faW5mb19ub2RlICopbS0+cHJpdmF0ZTsKIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gbm9kZS0+bWlub3ItPmRldjsKIAlzdHJ1Y3QgdmM0X2RldiAq dmM0ID0gdG9fdmM0X2RldihkZXYpOwotCXN0cnVjdCB2YzRfYm9fc3RhdHMgc3RhdHM7CisJaW50 IGk7CiAKLQkvKiBUYWtlIGEgc25hcHNob3Qgb2YgdGhlIGN1cnJlbnQgc3RhdHMgd2l0aCB0aGUg bG9jayBoZWxkLiAqLwogCW11dGV4X2xvY2soJnZjNC0+Ym9fbG9jayk7Ci0Jc3RhdHMgPSB2YzQt PmJvX3N0YXRzOworCWZvciAoaSA9IDA7IGkgPCB2YzQtPm51bV9sYWJlbHM7IGkrKykgeworCQlp ZiAoIXZjNC0+Ym9fbGFiZWxzW2ldLm51bV9hbGxvY2F0ZWQpCisJCQljb250aW51ZTsKKworCQlz ZXFfcHJpbnRmKG0sICIlMzBzOiAlNmRrYiBCT3MgKCVkKVxuIiwKKwkJCSAgIHZjNC0+Ym9fbGFi ZWxzW2ldLm5hbWUsCisJCQkgICB2YzQtPmJvX2xhYmVsc1tpXS5zaXplX2FsbG9jYXRlZCAvIDEw MjQsCisJCQkgICB2YzQtPmJvX2xhYmVsc1tpXS5udW1fYWxsb2NhdGVkKTsKKwl9CiAJbXV0ZXhf dW5sb2NrKCZ2YzQtPmJvX2xvY2spOwogCi0Jc2VxX3ByaW50ZihtLCAibnVtIGJvcyBhbGxvY2F0 ZWQ6ICVkXG4iLAotCQkgICBzdGF0cy5udW1fYWxsb2NhdGVkKTsKLQlzZXFfcHJpbnRmKG0sICJz aXplIGJvcyBhbGxvY2F0ZWQ6ICVka2JcbiIsCi0JCSAgIHN0YXRzLnNpemVfYWxsb2NhdGVkIC8g MTAyNCk7Ci0Jc2VxX3ByaW50ZihtLCAibnVtIGJvcyB1c2VkOiAlZFxuIiwKLQkJICAgc3RhdHMu bnVtX2FsbG9jYXRlZCAtIHN0YXRzLm51bV9jYWNoZWQpOwotCXNlcV9wcmludGYobSwgInNpemUg Ym9zIHVzZWQ6ICVka2JcbiIsCi0JCSAgIChzdGF0cy5zaXplX2FsbG9jYXRlZCAtIHN0YXRzLnNp emVfY2FjaGVkKSAvIDEwMjQpOwotCXNlcV9wcmludGYobSwgIm51bSBib3MgY2FjaGVkOiAlZFxu IiwKLQkJICAgc3RhdHMubnVtX2NhY2hlZCk7Ci0Jc2VxX3ByaW50ZihtLCAic2l6ZSBib3MgY2Fj aGVkOiAlZGtiXG4iLAotCQkgICBzdGF0cy5zaXplX2NhY2hlZCAvIDEwMjQpOwotCiAJcmV0dXJu IDA7CiB9CiAjZW5kaWYKIAorLyogVGFrZXMgb3duZXJzaGlwIG9mICpuYW1lIGFuZCByZXR1cm5z IHRoZSBhcHByb3ByaWF0ZSBzbG90IGZvciBpdCBpbgorICogdGhlIGJvX2xhYmVsc1tdIGFycmF5 LCBleHRlbmRpbmcgaXQgYXMgbmVjZXNzYXJ5LgorICoKKyAqIFRoaXMgaXMgaW5lZmZpY2llbnQg YW5kIGNvdWxkIHVzZSBhIGhhc2ggdGFibGUgaW5zdGVhZCBvZiB3YWxraW5nCisgKiBhbiBhcnJh eSBhbmQgc3RyY21wKClpbmcuICBIb3dldmVyLCB0aGUgYXNzdW1wdGlvbiBpcyB0aGF0IHVzZXIK KyAqIGxhYmVsaW5nIHdpbGwgYmUgaW5mcmVxdWVudCAoc2Nhbm91dCBidWZmZXJzIGFuZCBvdGhl ciBsb25nLWxpdmVkCisgKiBvYmplY3RzLCBvciBkZWJ1ZyBkcml2ZXIgYnVpbGRzKSwgc28gd2Ug Y2FuIGxpdmUgd2l0aCBpdCBmb3Igbm93LgorICovCitzdGF0aWMgaW50IHZjNF9nZXRfdXNlcl9s YWJlbChzdHJ1Y3QgdmM0X2RldiAqdmM0LCBjb25zdCBjaGFyICpuYW1lKQoreworCWludCBpOwor CWludCBmcmVlX3Nsb3QgPSAtMTsKKworCWZvciAoaSA9IDA7IGkgPCB2YzQtPm51bV9sYWJlbHM7 IGkrKykgeworCQlpZiAoIXZjNC0+Ym9fbGFiZWxzW2ldLm5hbWUpIHsKKwkJCWZyZWVfc2xvdCA9 IGk7CisJCX0gZWxzZSBpZiAoc3RyY21wKHZjNC0+Ym9fbGFiZWxzW2ldLm5hbWUsIG5hbWUpID09 IDApIHsKKwkJCWtmcmVlKG5hbWUpOworCQkJcmV0dXJuIGk7CisJCX0KKwl9CisKKwlpZiAoZnJl ZV9zbG90ICE9IC0xKSB7CisJCVdBUk5fT04odmM0LT5ib19sYWJlbHNbZnJlZV9zbG90XS5udW1f YWxsb2NhdGVkICE9IDApOworCQl2YzQtPmJvX2xhYmVsc1tmcmVlX3Nsb3RdLm5hbWUgPSBuYW1l OworCQlyZXR1cm4gZnJlZV9zbG90OworCX0gZWxzZSB7CisJCXUzMiBuZXdfbGFiZWxfY291bnQg PSB2YzQtPm51bV9sYWJlbHMgKyAxOworCQlzdHJ1Y3QgdmM0X2xhYmVsICpuZXdfbGFiZWxzID0K KwkJCWtyZWFsbG9jKHZjNC0+Ym9fbGFiZWxzLAorCQkJCSBuZXdfbGFiZWxfY291bnQgKiBzaXpl b2YoKm5ld19sYWJlbHMpLAorCQkJCSBHRlBfS0VSTkVMKTsKKworCQlpZiAoIW5ld19sYWJlbHMp IHsKKwkJCWtmcmVlKG5hbWUpOworCQkJcmV0dXJuIC0xOworCQl9CisKKwkJZnJlZV9zbG90ID0g dmM0LT5udW1fbGFiZWxzOworCQl2YzQtPmJvX2xhYmVscyA9IG5ld19sYWJlbHM7CisJCXZjNC0+ bnVtX2xhYmVscyA9IG5ld19sYWJlbF9jb3VudDsKKworCQl2YzQtPmJvX2xhYmVsc1tmcmVlX3Ns b3RdLm5hbWUgPSBuYW1lOworCQl2YzQtPmJvX2xhYmVsc1tmcmVlX3Nsb3RdLm51bV9hbGxvY2F0 ZWQgPSAwOworCQl2YzQtPmJvX2xhYmVsc1tmcmVlX3Nsb3RdLnNpemVfYWxsb2NhdGVkID0gMDsK KworCQlyZXR1cm4gZnJlZV9zbG90OworCX0KK30KKworLyogTXVzdCBiZSBjYWxsZWQgd2l0aCBi b19sb2NrIGhlbGQuICovCitzdGF0aWMgdm9pZCB2YzRfYm9fc2V0X2xhYmVsKHN0cnVjdCBkcm1f Z2VtX29iamVjdCAqZ2VtX29iaiwgaW50IGxhYmVsKQoreworCXN0cnVjdCB2YzRfYm8gKmJvID0g dG9fdmM0X2JvKGdlbV9vYmopOworCXN0cnVjdCB2YzRfZGV2ICp2YzQgPSB0b192YzRfZGV2KGdl bV9vYmotPmRldik7CisKKwl2YzQtPmJvX2xhYmVsc1tsYWJlbF0ubnVtX2FsbG9jYXRlZCsrOwor CXZjNC0+Ym9fbGFiZWxzW2xhYmVsXS5zaXplX2FsbG9jYXRlZCArPSBnZW1fb2JqLT5zaXplOwor CisJdmM0LT5ib19sYWJlbHNbYm8tPmxhYmVsXS5udW1fYWxsb2NhdGVkLS07CisJdmM0LT5ib19s YWJlbHNbYm8tPmxhYmVsXS5zaXplX2FsbG9jYXRlZCAtPSBnZW1fb2JqLT5zaXplOworCisJaWYg KHZjNC0+Ym9fbGFiZWxzW2JvLT5sYWJlbF0ubnVtX2FsbG9jYXRlZCA9PSAwICYmCisJICAgIGlz X3VzZXJfbGFiZWwoYm8tPmxhYmVsKSkgeworCQkvKiBGcmVlIHVzZXIgQk8gbGFiZWwgc2xvdHMg b24gbGFzdCB1bnJlZmVyZW5jZS4gKi8KKwkJa2ZyZWUodmM0LT5ib19sYWJlbHNbYm8tPmxhYmVs XS5uYW1lKTsKKwkJdmM0LT5ib19sYWJlbHNbYm8tPmxhYmVsXS5uYW1lID0gTlVMTDsKKwl9CisK Kwliby0+bGFiZWwgPSBsYWJlbDsKK30KKwogc3RhdGljIHVpbnQzMl90IGJvX3BhZ2VfaW5kZXgo c2l6ZV90IHNpemUpCiB7CiAJcmV0dXJuIChzaXplIC8gUEFHRV9TSVpFKSAtIDE7CkBAIC04MCw3 ICsxNjAsOCBAQCBzdGF0aWMgdWludDMyX3QgYm9fcGFnZV9pbmRleChzaXplX3Qgc2l6ZSkKIHN0 YXRpYyB2b2lkIHZjNF9ib19kZXN0cm95KHN0cnVjdCB2YzRfYm8gKmJvKQogewogCXN0cnVjdCBk cm1fZ2VtX29iamVjdCAqb2JqID0gJmJvLT5iYXNlLmJhc2U7Ci0Jc3RydWN0IHZjNF9kZXYgKnZj NCA9IHRvX3ZjNF9kZXYob2JqLT5kZXYpOworCisJdmM0X2JvX3NldF9sYWJlbChvYmosIC0xKTsK IAogCWlmIChiby0+dmFsaWRhdGVkX3NoYWRlcikgewogCQlrZnJlZShiby0+dmFsaWRhdGVkX3No YWRlci0+dGV4dHVyZV9zYW1wbGVzKTsKQEAgLTg4LDkgKzE2OSw2IEBAIHN0YXRpYyB2b2lkIHZj NF9ib19kZXN0cm95KHN0cnVjdCB2YzRfYm8gKmJvKQogCQliby0+dmFsaWRhdGVkX3NoYWRlciA9 IE5VTEw7CiAJfQogCi0JdmM0LT5ib19zdGF0cy5udW1fYWxsb2NhdGVkLS07Ci0JdmM0LT5ib19z dGF0cy5zaXplX2FsbG9jYXRlZCAtPSBvYmotPnNpemU7Ci0KIAlyZXNlcnZhdGlvbl9vYmplY3Rf ZmluaSgmYm8tPl9yZXN2KTsKIAogCWRybV9nZW1fY21hX2ZyZWVfb2JqZWN0KG9iaik7CkBAIC05 OSwxMiArMTc3LDYgQEAgc3RhdGljIHZvaWQgdmM0X2JvX2Rlc3Ryb3koc3RydWN0IHZjNF9ibyAq Ym8pCiAvKiBNdXN0IGJlIGNhbGxlZCB3aXRoIGJvX2xvY2sgaGVsZC4gKi8KIHN0YXRpYyB2b2lk IHZjNF9ib19yZW1vdmVfZnJvbV9jYWNoZShzdHJ1Y3QgdmM0X2JvICpibykKIHsKLQlzdHJ1Y3Qg ZHJtX2dlbV9vYmplY3QgKm9iaiA9ICZiby0+YmFzZS5iYXNlOwotCXN0cnVjdCB2YzRfZGV2ICp2 YzQgPSB0b192YzRfZGV2KG9iai0+ZGV2KTsKLQotCXZjNC0+Ym9fc3RhdHMubnVtX2NhY2hlZC0t OwotCXZjNC0+Ym9fc3RhdHMuc2l6ZV9jYWNoZWQgLT0gb2JqLT5zaXplOwotCiAJbGlzdF9kZWwo JmJvLT51bnJlZl9oZWFkKTsKIAlsaXN0X2RlbCgmYm8tPnNpemVfaGVhZCk7CiB9CkBAIC0xNjUs NyArMjM3LDggQEAgc3RhdGljIHZvaWQgdmM0X2JvX2NhY2hlX3B1cmdlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiB9CiAKIHN0YXRpYyBzdHJ1Y3QgdmM0X2JvICp2YzRfYm9fZ2V0X2Zyb21fY2Fj aGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCQkJICAgIHVpbnQzMl90IHNpemUpCisJCQkJ CSAgICB1aW50MzJfdCBzaXplLAorCQkJCQkgICAgZW51bSB2YzRfa2VybmVsX2JvX3R5cGUgdHlw ZSkKIHsKIAlzdHJ1Y3QgdmM0X2RldiAqdmM0ID0gdG9fdmM0X2RldihkZXYpOwogCXVpbnQzMl90 IHBhZ2VfaW5kZXggPSBib19wYWdlX2luZGV4KHNpemUpOwpAQCAtMTg2LDYgKzI1OSw4IEBAIHN0 YXRpYyBzdHJ1Y3QgdmM0X2JvICp2YzRfYm9fZ2V0X2Zyb21fY2FjaGUoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAlrcmVmX2luaXQoJmJvLT5iYXNlLmJhc2UucmVmY291bnQpOwogCiBvdXQ6CisJ aWYgKGJvKQorCQl2YzRfYm9fc2V0X2xhYmVsKCZiby0+YmFzZS5iYXNlLCB0eXBlKTsKIAltdXRl eF91bmxvY2soJnZjNC0+Ym9fbG9jayk7CiAJcmV0dXJuIGJvOwogfQpAQCAtMjA4LDggKzI4Myw5 IEBAIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqdmM0X2NyZWF0ZV9vYmplY3Qoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgc2l6ZV90IHNpemUpCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCiAJ bXV0ZXhfbG9jaygmdmM0LT5ib19sb2NrKTsKLQl2YzQtPmJvX3N0YXRzLm51bV9hbGxvY2F0ZWQr KzsKLQl2YzQtPmJvX3N0YXRzLnNpemVfYWxsb2NhdGVkICs9IHNpemU7CisJYm8tPmxhYmVsID0g VkM0X0JPX1RZUEVfS0VSTkVMOworCXZjNC0+Ym9fbGFiZWxzW1ZDNF9CT19UWVBFX0tFUk5FTF0u bnVtX2FsbG9jYXRlZCsrOworCXZjNC0+Ym9fbGFiZWxzW1ZDNF9CT19UWVBFX0tFUk5FTF0uc2l6 ZV9hbGxvY2F0ZWQgKz0gc2l6ZTsKIAltdXRleF91bmxvY2soJnZjNC0+Ym9fbG9jayk7CiAJYm8t PnJlc3YgPSAmYm8tPl9yZXN2OwogCXJlc2VydmF0aW9uX29iamVjdF9pbml0KGJvLT5yZXN2KTsK QEAgLTIxOCw3ICsyOTQsNyBAQCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKnZjNF9jcmVhdGVfb2Jq ZWN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHNpemVfdCBzaXplKQogfQogCiBzdHJ1Y3QgdmM0 X2JvICp2YzRfYm9fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHNpemVfdCB1bmFsaWdu ZWRfc2l6ZSwKLQkJCSAgICAgYm9vbCBhbGxvd191bnplcm9lZCkKKwkJCSAgICAgYm9vbCBhbGxv d191bnplcm9lZCwgZW51bSB2YzRfa2VybmVsX2JvX3R5cGUgdHlwZSkKIHsKIAlzaXplX3Qgc2l6 ZSA9IHJvdW5kdXAodW5hbGlnbmVkX3NpemUsIFBBR0VfU0laRSk7CiAJc3RydWN0IHZjNF9kZXYg KnZjNCA9IHRvX3ZjNF9kZXYoZGV2KTsKQEAgLTIyOSw3ICszMDUsNyBAQCBzdHJ1Y3QgdmM0X2Jv ICp2YzRfYm9fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHNpemVfdCB1bmFsaWduZWRf c2l6ZSwKIAkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CiAKIAkvKiBGaXJzdCwgdHJ5IHRvIGdl dCBhIHZjNF9ibyBmcm9tIHRoZSBrZXJuZWwgQk8gY2FjaGUuICovCi0JYm8gPSB2YzRfYm9fZ2V0 X2Zyb21fY2FjaGUoZGV2LCBzaXplKTsKKwlibyA9IHZjNF9ib19nZXRfZnJvbV9jYWNoZShkZXYs IHNpemUsIHR5cGUpOwogCWlmIChibykgewogCQlpZiAoIWFsbG93X3VuemVyb2VkKQogCQkJbWVt c2V0KGJvLT5iYXNlLnZhZGRyLCAwLCBiby0+YmFzZS5iYXNlLnNpemUpOwpAQCAtMjUxLDcgKzMy NywxMyBAQCBzdHJ1Y3QgdmM0X2JvICp2YzRfYm9fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHNpemVfdCB1bmFsaWduZWRfc2l6ZSwKIAkJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwog CQl9CiAJfQotCXJldHVybiB0b192YzRfYm8oJmNtYV9vYmotPmJhc2UpOworCWJvID0gdG9fdmM0 X2JvKCZjbWFfb2JqLT5iYXNlKTsKKworCW11dGV4X2xvY2soJnZjNC0+Ym9fbG9jayk7CisJdmM0 X2JvX3NldF9sYWJlbCgmY21hX29iai0+YmFzZSwgdHlwZSk7CisJbXV0ZXhfdW5sb2NrKCZ2YzQt PmJvX2xvY2spOworCisJcmV0dXJuIGJvOwogfQogCiBpbnQgdmM0X2R1bWJfY3JlYXRlKHN0cnVj dCBkcm1fZmlsZSAqZmlsZV9wcml2LApAQCAtMjY4LDcgKzM1MCw3IEBAIGludCB2YzRfZHVtYl9j cmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCiAJaWYgKGFyZ3MtPnNpemUgPCBhcmdz LT5waXRjaCAqIGFyZ3MtPmhlaWdodCkKIAkJYXJncy0+c2l6ZSA9IGFyZ3MtPnBpdGNoICogYXJn cy0+aGVpZ2h0OwogCi0JYm8gPSB2YzRfYm9fY3JlYXRlKGRldiwgYXJncy0+c2l6ZSwgZmFsc2Up OworCWJvID0gdmM0X2JvX2NyZWF0ZShkZXYsIGFyZ3MtPnNpemUsIGZhbHNlLCBWQzRfQk9fVFlQ RV9EVU1CKTsKIAlpZiAoSVNfRVJSKGJvKSkKIAkJcmV0dXJuIFBUUl9FUlIoYm8pOwogCkBAIC0z NDgsOCArNDMwLDcgQEAgdm9pZCB2YzRfZnJlZV9vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpnZW1fYm8pCiAJbGlzdF9hZGQoJmJvLT5zaXplX2hlYWQsIGNhY2hlX2xpc3QpOwogCWxpc3Rf YWRkKCZiby0+dW5yZWZfaGVhZCwgJnZjNC0+Ym9fY2FjaGUudGltZV9saXN0KTsKIAotCXZjNC0+ Ym9fc3RhdHMubnVtX2NhY2hlZCsrOwotCXZjNC0+Ym9fc3RhdHMuc2l6ZV9jYWNoZWQgKz0gZ2Vt X2JvLT5zaXplOworCXZjNF9ib19zZXRfbGFiZWwoJmJvLT5iYXNlLmJhc2UsIFZDNF9CT19UWVBF X0tFUk5FTF9DQUNIRSk7CiAKIAl2YzRfYm9fY2FjaGVfZnJlZV9vbGQoZGV2KTsKIApAQCAtNDgz LDcgKzU2NCw3IEBAIGludCB2YzRfY3JlYXRlX2JvX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCiAJICogV2UgY2FuJ3QgYWxsb2NhdGUgZnJvbSB0aGUgQk8gY2FjaGUs IGJlY2F1c2UgdGhlIEJPcyBkb24ndAogCSAqIGdldCB6ZXJvZWQsIGFuZCB0aGF0IG1pZ2h0IGxl YWsgZGF0YSBiZXR3ZWVuIHVzZXJzLgogCSAqLwotCWJvID0gdmM0X2JvX2NyZWF0ZShkZXYsIGFy Z3MtPnNpemUsIGZhbHNlKTsKKwlibyA9IHZjNF9ib19jcmVhdGUoZGV2LCBhcmdzLT5zaXplLCBm YWxzZSwgVkM0X0JPX1RZUEVfVjNEKTsKIAlpZiAoSVNfRVJSKGJvKSkKIAkJcmV0dXJuIFBUUl9F UlIoYm8pOwogCkBAIC01MzYsNyArNjE3LDcgQEAgdmM0X2NyZWF0ZV9zaGFkZXJfYm9faW9jdGwo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJcmV0dXJuIC1FSU5WQUw7CiAJ fQogCi0JYm8gPSB2YzRfYm9fY3JlYXRlKGRldiwgYXJncy0+c2l6ZSwgdHJ1ZSk7CisJYm8gPSB2 YzRfYm9fY3JlYXRlKGRldiwgYXJncy0+c2l6ZSwgdHJ1ZSwgVkM0X0JPX1RZUEVfVjNEX1NIQURF Uik7CiAJaWYgKElTX0VSUihibykpCiAJCXJldHVybiBQVFJfRVJSKGJvKTsKIApAQCAtNjUxLDkg KzczMiwyNCBAQCBpbnQgdmM0X2dldF90aWxpbmdfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKIAlyZXR1cm4gMDsKIH0KIAotdm9pZCB2YzRfYm9fY2FjaGVfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoraW50IHZjNF9ib19jYWNoZV9pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IHZjNF9kZXYgKnZjNCA9IHRvX3ZjNF9kZXYoZGV2KTsK KwlpbnQgaTsKKworCS8qIENyZWF0ZSB0aGUgaW5pdGlhbCBzZXQgb2YgQk8gbGFiZWxzIHRoYXQg dGhlIGtlcm5lbCB3aWxsCisJICogdXNlLiAgVGhpcyBsZXRzIHVzIGF2b2lkIGEgYnVuY2ggb2Yg c3RyaW5nIHJlYWxsb2NhdGlvbiBpbgorCSAqIHRoZSBrZXJuZWwncyBkcmF3IGFuZCBCTyBhbGxv Y2F0aW9uIHBhdGhzLgorCSAqLworCXZjNC0+Ym9fbGFiZWxzID0ga2NhbGxvYyhWQzRfQk9fVFlQ RV9DT1VOVCwgc2l6ZW9mKCp2YzQtPmJvX2xhYmVscyksCisJCQkJIEdGUF9LRVJORUwpOworCWlm ICghdmM0LT5ib19sYWJlbHMpCisJCXJldHVybiAtRU5PTUVNOworCXZjNC0+bnVtX2xhYmVscyA9 IFZDNF9CT19UWVBFX0NPVU5UOworCisJQlVJTERfQlVHX09OKEFSUkFZX1NJWkUoYm9fdHlwZV9u YW1lcykgIT0gVkM0X0JPX1RZUEVfQ09VTlQpOworCWZvciAoaSA9IDA7IGkgPCBWQzRfQk9fVFlQ RV9DT1VOVDsgaSsrKQorCQl2YzQtPmJvX2xhYmVsc1tpXS5uYW1lID0gYm9fdHlwZV9uYW1lc1tp XTsKIAogCW11dGV4X2luaXQoJnZjNC0+Ym9fbG9jayk7CiAKQEAgLTY2MywxOSArNzU5LDcwIEBA IHZvaWQgdmM0X2JvX2NhY2hlX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlzZXR1cF90 aW1lcigmdmM0LT5ib19jYWNoZS50aW1lX3RpbWVyLAogCQkgICAgdmM0X2JvX2NhY2hlX3RpbWVf dGltZXIsCiAJCSAgICAodW5zaWduZWQgbG9uZylkZXYpOworCisJcmV0dXJuIDA7CiB9CiAKIHZv aWQgdmM0X2JvX2NhY2hlX2Rlc3Ryb3koc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1 Y3QgdmM0X2RldiAqdmM0ID0gdG9fdmM0X2RldihkZXYpOworCWludCBpOwogCiAJZGVsX3RpbWVy KCZ2YzQtPmJvX2NhY2hlLnRpbWVfdGltZXIpOwogCWNhbmNlbF93b3JrX3N5bmMoJnZjNC0+Ym9f Y2FjaGUudGltZV93b3JrKTsKIAogCXZjNF9ib19jYWNoZV9wdXJnZShkZXYpOwogCi0JaWYgKHZj NC0+Ym9fc3RhdHMubnVtX2FsbG9jYXRlZCkgewotCQlEUk1fRVJST1IoIkRlc3Ryb3lpbmcgQk8g Y2FjaGUgd2hpbGUgQk9zIHN0aWxsIGFsbG9jYXRlZDpcbiIpOwotCQl2YzRfYm9fc3RhdHNfZHVt cCh2YzQpOworCWZvciAoaSA9IDA7IGkgPCB2YzQtPm51bV9sYWJlbHM7IGkrKykgeworCQlpZiAo dmM0LT5ib19sYWJlbHNbaV0ubnVtX2FsbG9jYXRlZCkgeworCQkJRFJNX0VSUk9SKCJEZXN0cm95 aW5nIEJPIGNhY2hlIHdpdGggJWQgJXMgIgorCQkJCSAgIkJPcyBzdGlsbCBhbGxvY2F0ZWRcbiIs CisJCQkJICB2YzQtPmJvX2xhYmVsc1tpXS5udW1fYWxsb2NhdGVkLAorCQkJCSAgdmM0LT5ib19s YWJlbHNbaV0ubmFtZSk7CisJCX0KKworCQlpZiAoaXNfdXNlcl9sYWJlbChpKSkKKwkJCWtmcmVl KHZjNC0+Ym9fbGFiZWxzW2ldLm5hbWUpOworCX0KKwlrZnJlZSh2YzQtPmJvX2xhYmVscyk7Cit9 CisKK2ludCB2YzRfbGFiZWxfYm9faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAq ZGF0YSwKKwkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCXN0cnVjdCB2 YzRfZGV2ICp2YzQgPSB0b192YzRfZGV2KGRldik7CisJc3RydWN0IGRybV92YzRfbGFiZWxfYm8g KmFyZ3MgPSBkYXRhOworCWNoYXIgKm5hbWU7CisJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW1f b2JqOworCWludCByZXQgPSAwLCBsYWJlbDsKKworCW5hbWUgPSBrbWFsbG9jKGFyZ3MtPmxlbiAr IDEsIEdGUF9LRVJORUwpOworCWlmICghbmFtZSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlpZiAo Y29weV9mcm9tX3VzZXIobmFtZSwgKHZvaWQgX191c2VyICopKHVpbnRwdHJfdClhcmdzLT5uYW1l LAorCQkJICAgYXJncy0+bGVuKSkgeworCQlrZnJlZShuYW1lKTsKKwkJcmV0dXJuIC1FRkFVTFQ7 CisJfQorCW5hbWVbYXJncy0+bGVuXSA9IDA7CisKKwlnZW1fb2JqID0gZHJtX2dlbV9vYmplY3Rf bG9va3VwKGZpbGVfcHJpdiwgYXJncy0+aGFuZGxlKTsKKwlpZiAoIWdlbV9vYmopIHsKKwkJRFJN X0VSUk9SKCJGYWlsZWQgdG8gbG9vayB1cCBHRU0gQk8gJWRcbiIsIGFyZ3MtPmhhbmRsZSk7CisJ CWtmcmVlKG5hbWUpOworCQlyZXR1cm4gLUVOT0VOVDsKIAl9CisKKwltdXRleF9sb2NrKCZ2YzQt PmJvX2xvY2spOworCWxhYmVsID0gdmM0X2dldF91c2VyX2xhYmVsKHZjNCwgbmFtZSk7CisJaWYg KGxhYmVsICE9IC0xKQorCQl2YzRfYm9fc2V0X2xhYmVsKGdlbV9vYmosIGxhYmVsKTsKKwllbHNl CisJCXJldCA9IC1FTk9NRU07CisJbXV0ZXhfdW5sb2NrKCZ2YzQtPmJvX2xvY2spOworCisJZHJt X2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQoZ2VtX29iaik7CisKKwlyZXR1cm4gcmV0 OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmMgYi9kcml2ZXJz L2dwdS9kcm0vdmM0L3ZjNF9kcnYuYwppbmRleCBjNmI0ODdjM2QyYjcuLjc1YzFmNTBhN2I1ZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3ZjNC92YzRfZHJ2LmMKQEAgLTE0MCw2ICsxNDAsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRybV9pb2N0bF9kZXNjIHZjNF9kcm1faW9jdGxzW10gPSB7CiAJRFJNX0lPQ1RMX0RFRl9E UlYoVkM0X0dFVF9QQVJBTSwgdmM0X2dldF9wYXJhbV9pb2N0bCwgRFJNX1JFTkRFUl9BTExPVyks CiAJRFJNX0lPQ1RMX0RFRl9EUlYoVkM0X1NFVF9USUxJTkcsIHZjNF9zZXRfdGlsaW5nX2lvY3Rs LCBEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGX0RSVihWQzRfR0VUX1RJTElORywg dmM0X2dldF90aWxpbmdfaW9jdGwsIERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZf RFJWKFZDNF9MQUJFTF9CTywgdmM0X2xhYmVsX2JvX2lvY3RsLCBEUk1fUkVOREVSX0FMTE9XKSwK IH07CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciB2YzRfZHJtX2RyaXZlciA9IHsKQEAgLTI1 Nyw3ICsyNTgsOSBAQCBzdGF0aWMgaW50IHZjNF9kcm1fYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYp CiAJdmM0LT5kZXYgPSBkcm07CiAJZHJtLT5kZXZfcHJpdmF0ZSA9IHZjNDsKIAotCXZjNF9ib19j YWNoZV9pbml0KGRybSk7CisJcmV0ID0gdmM0X2JvX2NhY2hlX2luaXQoZHJtKTsKKwlpZiAocmV0 KQorCQlnb3RvIGRldl91bnJlZjsKIAogCWRybV9tb2RlX2NvbmZpZ19pbml0KGRybSk7CiAKQEAg LTI4MSw4ICsyODQsOSBAQCBzdGF0aWMgaW50IHZjNF9kcm1fYmluZChzdHJ1Y3QgZGV2aWNlICpk ZXYpCiAJY29tcG9uZW50X3VuYmluZF9hbGwoZGV2LCBkcm0pOwogZ2VtX2Rlc3Ryb3k6CiAJdmM0 X2dlbV9kZXN0cm95KGRybSk7Ci0JZHJtX2Rldl91bnJlZihkcm0pOwogCXZjNF9ib19jYWNoZV9k ZXN0cm95KGRybSk7CitkZXZfdW5yZWY6CisJZHJtX2Rldl91bnJlZihkcm0pOwogCXJldHVybiBy ZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmgKaW5kZXggMTA0Nzk1MzIxNmE4Li44N2YyZDhlNWMx MzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rydi5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS92YzQvdmM0X2Rydi5oCkBAIC0xMSw2ICsxMSwyNCBAQAogI2luY2x1ZGUgPGRy bS9kcm1fZW5jb2Rlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KIAor LyogRG9uJ3QgZm9yZ2V0IHRvIHVwZGF0ZSB2YzRfYm8uYzogYm9fdHlwZV9uYW1lc1tdIHdoZW4g YWRkaW5nIHRvCisgKiB0aGlzLgorICovCitlbnVtIHZjNF9rZXJuZWxfYm9fdHlwZSB7CisJLyog QW55IGtlcm5lbCBhbGxvY2F0aW9uIChnZW1fY3JlYXRlX29iamVjdCBob29rKSBiZWZvcmUgaXQK KwkgKiBnZXRzIGFub3RoZXIgdHlwZSBzZXQuCisJICovCisJVkM0X0JPX1RZUEVfS0VSTkVMLAor CVZDNF9CT19UWVBFX1YzRCwKKwlWQzRfQk9fVFlQRV9WM0RfU0hBREVSLAorCVZDNF9CT19UWVBF X0RVTUIsCisJVkM0X0JPX1RZUEVfQklOLAorCVZDNF9CT19UWVBFX1JDTCwKKwlWQzRfQk9fVFlQ RV9CQ0wsCisJVkM0X0JPX1RZUEVfS0VSTkVMX0NBQ0hFLAorCVZDNF9CT19UWVBFX0NPVU5UCit9 OworCiBzdHJ1Y3QgdmM0X2RldiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldjsKIApAQCAtNDYs MTQgKzY0LDE0IEBAIHN0cnVjdCB2YzRfZGV2IHsKIAkJc3RydWN0IHRpbWVyX2xpc3QgdGltZV90 aW1lcjsKIAl9IGJvX2NhY2hlOwogCi0Jc3RydWN0IHZjNF9ib19zdGF0cyB7CisJdTMyIG51bV9s YWJlbHM7CisJc3RydWN0IHZjNF9sYWJlbCB7CisJCWNvbnN0IGNoYXIgKm5hbWU7CiAJCXUzMiBu dW1fYWxsb2NhdGVkOwogCQl1MzIgc2l6ZV9hbGxvY2F0ZWQ7Ci0JCXUzMiBudW1fY2FjaGVkOwot CQl1MzIgc2l6ZV9jYWNoZWQ7Ci0JfSBib19zdGF0czsKKwl9ICpib19sYWJlbHM7CiAKLQkvKiBQ cm90ZWN0cyBib19jYWNoZSBhbmQgdGhlIEJPIHN0YXRzLiAqLworCS8qIFByb3RlY3RzIGJvX2Nh Y2hlIGFuZCBib19sYWJlbHMuICovCiAJc3RydWN0IG11dGV4IGJvX2xvY2s7CiAKIAl1aW50NjRf dCBkbWFfZmVuY2VfY29udGV4dDsKQEAgLTE2OSw2ICsxODcsMTEgQEAgc3RydWN0IHZjNF9ibyB7 CiAJLyogbm9ybWFsbHkgKHJlc3YgPT0gJl9yZXN2KSBleGNlcHQgZm9yIGltcG9ydGVkIGJvJ3Mg Ki8KIAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2OwogCXN0cnVjdCByZXNlcnZhdGlv bl9vYmplY3QgX3Jlc3Y7CisKKwkvKiBPbmUgb2YgZW51bSB2YzRfa2VybmVsX2JvX3R5cGUsIG9y IFZDNF9CT19UWVBFX0NPVU5UICsgaQorCSAqIGZvciB1c2VyLWFsbG9jYXRlZCBsYWJlbHMuCisJ ICovCisJaW50IGxhYmVsOwogfTsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgdmM0X2JvICoKQEAg LTQ2MCw3ICs0ODMsNyBAQCBzdHJ1Y3QgdmM0X3ZhbGlkYXRlZF9zaGFkZXJfaW5mbyB7CiBzdHJ1 Y3QgZHJtX2dlbV9vYmplY3QgKnZjNF9jcmVhdGVfb2JqZWN0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHNpemVfdCBzaXplKTsKIHZvaWQgdmM0X2ZyZWVfb2JqZWN0KHN0cnVjdCBkcm1fZ2VtX29i amVjdCAqZ2VtX29iaik7CiBzdHJ1Y3QgdmM0X2JvICp2YzRfYm9fY3JlYXRlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAotCQkJICAgICBib29sIGZyb21fY2FjaGUpOworCQkJ ICAgICBib29sIGZyb21fY2FjaGUsIGVudW0gdmM0X2tlcm5lbF9ib190eXBlIHR5cGUpOwogaW50 IHZjNF9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKIAkJICAgIHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCiAJCSAgICBzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgKmFy Z3MpOwpAQCAtNDc4LDYgKzUwMSw4IEBAIGludCB2YzRfZ2V0X3RpbGluZ19pb2N0bChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9w cml2KTsKIGludCB2YzRfZ2V0X2hhbmdfc3RhdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKIAkJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworaW50 IHZjNF9sYWJlbF9ib19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAor CQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwogaW50IHZjNF9tbWFwKHN0cnVj dCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7CiBzdHJ1Y3QgcmVzZXJ2 YXRpb25fb2JqZWN0ICp2YzRfcHJpbWVfcmVzX29iaihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9i aik7CiBpbnQgdmM0X3ByaW1lX21tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVj dCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKQEAgLTQ4NSw3ICs1MTAsNyBAQCBzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKnZjNF9wcmltZV9pbXBvcnRfc2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKIAkJCQkJCSBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gsCiAJCQkJCQkgc3Ry dWN0IHNnX3RhYmxlICpzZ3QpOwogdm9pZCAqdmM0X3ByaW1lX3ZtYXAoc3RydWN0IGRybV9nZW1f b2JqZWN0ICpvYmopOwotdm9pZCB2YzRfYm9fY2FjaGVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KTsKK2ludCB2YzRfYm9fY2FjaGVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZv aWQgdmM0X2JvX2NhY2hlX2Rlc3Ryb3koc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBpbnQgdmM0 X2JvX3N0YXRzX2RlYnVnZnMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICphcmcpOwogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS92 YzQvdmM0X2dlbS5jCmluZGV4IGQ1YjgyMWFkMDZhZi4uZTc1Nzg3ZDYwZTU3IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0 L3ZjNF9nZW0uYwpAQCAtNzc1LDcgKzc3NSw3IEBAIHZjNF9nZXRfYmNsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHN0cnVjdCB2YzRfZXhlY19pbmZvICpleGVjKQogCQlnb3RvIGZhaWw7CiAJfQog Ci0JYm8gPSB2YzRfYm9fY3JlYXRlKGRldiwgZXhlY19zaXplLCB0cnVlKTsKKwlibyA9IHZjNF9i b19jcmVhdGUoZGV2LCBleGVjX3NpemUsIHRydWUsIFZDNF9CT19UWVBFX0JDTCk7CiAJaWYgKElT X0VSUihibykpIHsKIAkJRFJNX0VSUk9SKCJDb3VsZG4ndCBhbGxvY2F0ZSBCTyBmb3IgYmlubmlu Z1xuIik7CiAJCXJldCA9IFBUUl9FUlIoYm8pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3ZjNC92YzRfcmVuZGVyX2NsLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9yZW5kZXJfY2wu YwppbmRleCA1ZGMxOTQyOWQ0YWUuLjRhODA1MTUzMmYwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3ZjNC92YzRfcmVuZGVyX2NsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRf cmVuZGVyX2NsLmMKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGF0aWMgaW50IHZjNF9jcmVhdGVfcmNs X2JvKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCB2YzRfZXhlY19pbmZvICpleGVjLAog CiAJc2l6ZSArPSB4dGlsZXMgKiB5dGlsZXMgKiBsb29wX2JvZHlfc2l6ZTsKIAotCXNldHVwLT5y Y2wgPSAmdmM0X2JvX2NyZWF0ZShkZXYsIHNpemUsIHRydWUpLT5iYXNlOworCXNldHVwLT5yY2wg PSAmdmM0X2JvX2NyZWF0ZShkZXYsIHNpemUsIHRydWUsIFZDNF9CT19UWVBFX1JDTCktPmJhc2U7 CiAJaWYgKElTX0VSUihzZXR1cC0+cmNsKSkKIAkJcmV0dXJuIFBUUl9FUlIoc2V0dXAtPnJjbCk7 CiAJbGlzdF9hZGRfdGFpbCgmdG9fdmM0X2JvKCZzZXR1cC0+cmNsLT5iYXNlKS0+dW5yZWZfaGVh ZCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3YzZC5jIGIvZHJpdmVycy9n cHUvZHJtL3ZjNC92YzRfdjNkLmMKaW5kZXggOGM3MjNkYTcxZjY2Li42MjJjZDQzODQwYjggMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3YzZC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS92YzQvdmM0X3YzZC5jCkBAIC0yMzYsNyArMjM2LDggQEAgdmM0X2FsbG9jYXRlX2Jpbl9i byhzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKQogCUlOSVRfTElTVF9IRUFEKCZsaXN0KTsKIAogCXdo aWxlICh0cnVlKSB7Ci0JCXN0cnVjdCB2YzRfYm8gKmJvID0gdmM0X2JvX2NyZWF0ZShkcm0sIHNp emUsIHRydWUpOworCQlzdHJ1Y3QgdmM0X2JvICpibyA9IHZjNF9ib19jcmVhdGUoZHJtLCBzaXpl LCB0cnVlLAorCQkJCQkJICBWQzRfQk9fVFlQRV9CSU4pOwogCiAJCWlmIChJU19FUlIoYm8pKSB7 CiAJCQlyZXQgPSBQVFJfRVJSKGJvKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vdmM0 X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS92YzRfZHJtLmgKaW5kZXggNmFjNGM1YzAxNGNiLi41 NTE2MjhlNTcxZjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vdmM0X2RybS5oCisrKyBi L2luY2x1ZGUvdWFwaS9kcm0vdmM0X2RybS5oCkBAIC00MCw2ICs0MCw3IEBAIGV4dGVybiAiQyIg ewogI2RlZmluZSBEUk1fVkM0X0dFVF9QQVJBTSAgICAgICAgICAgICAgICAgICAgICAgICAweDA3 CiAjZGVmaW5lIERSTV9WQzRfU0VUX1RJTElORyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgK ICNkZWZpbmUgRFJNX1ZDNF9HRVRfVElMSU5HICAgICAgICAgICAgICAgICAgICAgICAgMHgwOQor I2RlZmluZSBEUk1fVkM0X0xBQkVMX0JPICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhCiAK ICNkZWZpbmUgRFJNX0lPQ1RMX1ZDNF9TVUJNSVRfQ0wgICAgICAgICAgIERSTV9JT1dSKERSTV9D T01NQU5EX0JBU0UgKyBEUk1fVkM0X1NVQk1JVF9DTCwgc3RydWN0IGRybV92YzRfc3VibWl0X2Ns KQogI2RlZmluZSBEUk1fSU9DVExfVkM0X1dBSVRfU0VRTk8gICAgICAgICAgRFJNX0lPV1IoRFJN X0NPTU1BTkRfQkFTRSArIERSTV9WQzRfV0FJVF9TRVFOTywgc3RydWN0IGRybV92YzRfd2FpdF9z ZXFubykKQEAgLTUxLDYgKzUyLDcgQEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIERSTV9JT0NUTF9W QzRfR0VUX1BBUkFNICAgICAgICAgICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1ZD NF9HRVRfUEFSQU0sIHN0cnVjdCBkcm1fdmM0X2dldF9wYXJhbSkKICNkZWZpbmUgRFJNX0lPQ1RM X1ZDNF9TRVRfVElMSU5HICAgICAgICAgIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1f VkM0X1NFVF9USUxJTkcsIHN0cnVjdCBkcm1fdmM0X3NldF90aWxpbmcpCiAjZGVmaW5lIERSTV9J T0NUTF9WQzRfR0VUX1RJTElORyAgICAgICAgICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsg RFJNX1ZDNF9HRVRfVElMSU5HLCBzdHJ1Y3QgZHJtX3ZjNF9nZXRfdGlsaW5nKQorI2RlZmluZSBE Uk1fSU9DVExfVkM0X0xBQkVMX0JPICAgICAgICAgICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFT RSArIERSTV9WQzRfTEFCRUxfQk8sIHN0cnVjdCBkcm1fdmM0X2xhYmVsX2JvKQogCiBzdHJ1Y3Qg ZHJtX3ZjNF9zdWJtaXRfcmNsX3N1cmZhY2UgewogCV9fdTMyIGhpbmRleDsgLyogSGFuZGxlIGlu ZGV4LCBvciB+MCBpZiBub3QgcHJlc2VudC4gKi8KQEAgLTMxMSw2ICszMTMsMTUgQEAgc3RydWN0 IGRybV92YzRfc2V0X3RpbGluZyB7CiAJX191NjQgbW9kaWZpZXI7CiB9OwogCisvKioKKyAqIHN0 cnVjdCBkcm1fdmM0X2xhYmVsX2JvIC0gQXR0YWNoIGEgbmFtZSB0byBhIEJPIGZvciBkZWJ1ZyBw dXJwb3Nlcy4KKyAqLworc3RydWN0IGRybV92YzRfbGFiZWxfYm8geworCV9fdTMyIGhhbmRsZTsK KwlfX3UzMiBsZW47CisJX191NjQgbmFtZTsKK307CisKICNpZiBkZWZpbmVkKF9fY3BsdXNwbHVz KQogfQogI2VuZGlmCi0tIAoyLjExLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo=