From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 15/16] drm/nouveau: Convert nouveau to use new iterator macros Date: Wed, 12 Jul 2017 10:13:43 +0200 Message-ID: <20170712081344.25495-16-maarten.lankhorst@linux.intel.com> References: <20170712081344.25495-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170712081344.25495-1-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: nouveau@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, Ben Skeggs List-Id: dri-devel@lists.freedesktop.org VXNlIHRoZSBuZXcgYXRvbWljIGl0ZXJhdG9yIG1hY3JvcywgdGhlIG9sZCBvbmVzIGFyZSBhYm91 dCB0byBiZQpyZW1vdmVkLiBXaXRoIHRoZSBuZXcgbWFjcm9zLCBpdCdzIG1vcmUgZWFzeSB0byBn ZXQgb2xkIGFuZCBuZXcgc3RhdGUgc28KZ2V0IHRoZW0gZnJvbSB0aGUgbWFjcm9zIGluc3RlYWQg b2YgZnJvbSBvYmotPnN0YXRlLgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1h YXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KQ2M6IEJlbiBTa2VnZ3MgPGJza2VnZ3NA cmVkaGF0LmNvbT4KQ2M6IG5vdXZlYXVAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCi0tLQogZHJpdmVy cy9ncHUvZHJtL25vdXZlYXUvbnY1MF9kaXNwbGF5LmMgfCA3MSArKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwgMzUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1MF9kaXNw bGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2Rpc3BsYXkuYwppbmRleCA0MmE4 NWMxNGFlYTAuLmIxY2U4ZjFmNThkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvbnY1MF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1MF9kaXNw bGF5LmMKQEAgLTIxMDMsNyArMjEwMyw3IEBAIG52NTBfaGVhZF9hdG9taWNfY2hlY2soc3RydWN0 IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQogCiAJTlZfQVRP TUlDKGRybSwgIiVzIGF0b21pY19jaGVjayAlZFxuIiwgY3J0Yy0+bmFtZSwgYXN5aC0+c3RhdGUu YWN0aXZlKTsKIAlpZiAoYXN5aC0+c3RhdGUuYWN0aXZlKSB7Ci0JCWZvcl9lYWNoX2Nvbm5lY3Rv cl9pbl9zdGF0ZShhc3loLT5zdGF0ZS5zdGF0ZSwgY29ubiwgY29ubnMsIGkpIHsKKwkJZm9yX2Vh Y2hfbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZShhc3loLT5zdGF0ZS5zdGF0ZSwgY29ubiwgY29ubnMs IGkpIHsKIAkJCWlmIChjb25ucy0+Y3J0YyA9PSBjcnRjKSB7CiAJCQkJYXN5YyA9IG5vdXZlYXVf Y29ubl9hdG9tKGNvbm5zKTsKIAkJCQlicmVhazsKQEAgLTM5MDQsOSArMzkwNCw5IEBAIHN0YXRp YyB2b2lkCiBudjUwX2Rpc3BfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKLQlz dHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CisJc3RydWN0IGRybV9jcnRjX3N0YXRl ICpuZXdfY3J0Y19zdGF0ZTsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Ci0Jc3RydWN0IGRybV9w bGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqbmV3X3Bs YW5lX3N0YXRlOwogCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwogCXN0cnVjdCBub3V2ZWF1X2Ry bSAqZHJtID0gbm91dmVhdV9kcm0oZGV2KTsKIAlzdHJ1Y3QgbnY1MF9kaXNwICpkaXNwID0gbnY1 MF9kaXNwKGRldik7CkBAIC0zOTI1LDggKzM5MjUsOCBAQCBudjUwX2Rpc3BfYXRvbWljX2NvbW1p dF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJbXV0ZXhfbG9jaygmZGlz cC0+bXV0ZXgpOwogCiAJLyogRGlzYWJsZSBoZWFkKHMpLiAqLwotCWZvcl9lYWNoX2NydGNfaW5f c3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKLQkJc3RydWN0IG52NTBfaGVhZF9h dG9tICphc3loID0gbnY1MF9oZWFkX2F0b20oY3J0Yy0+c3RhdGUpOworCWZvcl9lYWNoX25ld19j cnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkgeworCQlzdHJ1Y3Qg bnY1MF9oZWFkX2F0b20gKmFzeWggPSBudjUwX2hlYWRfYXRvbShuZXdfY3J0Y19zdGF0ZSk7CiAJ CXN0cnVjdCBudjUwX2hlYWQgKmhlYWQgPSBudjUwX2hlYWQoY3J0Yyk7CiAKIAkJTlZfQVRPTUlD KGRybSwgIiVzOiBjbHIgJTA0eCAoc2V0ICUwNHgpXG4iLCBjcnRjLT5uYW1lLApAQCAtMzkzOSw4 ICszOTM5LDggQEAgbnY1MF9kaXNwX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUpCiAJfQogCiAJLyogRGlzYWJsZSBwbGFuZShzKS4gKi8KLQlmb3JfZWFj aF9wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIHBsYW5lX3N0YXRlLCBpKSB7Ci0JCXN0cnVj dCBudjUwX3duZHdfYXRvbSAqYXN5dyA9IG52NTBfd25kd19hdG9tKHBsYW5lLT5zdGF0ZSk7CisJ Zm9yX2VhY2hfbmV3X3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgbmV3X3BsYW5lX3N0YXRl LCBpKSB7CisJCXN0cnVjdCBudjUwX3duZHdfYXRvbSAqYXN5dyA9IG52NTBfd25kd19hdG9tKG5l d19wbGFuZV9zdGF0ZSk7CiAJCXN0cnVjdCBudjUwX3duZHcgKnduZHcgPSBudjUwX3duZHcocGxh bmUpOwogCiAJCU5WX0FUT01JQyhkcm0sICIlczogY2xyICUwMnggKHNldCAlMDJ4KVxuIiwgcGxh bmUtPm5hbWUsCkBAIC00MDA1LDggKzQwMDUsOCBAQCBudjUwX2Rpc3BfYXRvbWljX2NvbW1pdF90 YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAl9CiAKIAkvKiBVcGRhdGUgaGVh ZChzKS4gKi8KLQlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRl LCBpKSB7Ci0JCXN0cnVjdCBudjUwX2hlYWRfYXRvbSAqYXN5aCA9IG52NTBfaGVhZF9hdG9tKGNy dGMtPnN0YXRlKTsKKwlmb3JfZWFjaF9uZXdfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgbmV3 X2NydGNfc3RhdGUsIGkpIHsKKwkJc3RydWN0IG52NTBfaGVhZF9hdG9tICphc3loID0gbnY1MF9o ZWFkX2F0b20obmV3X2NydGNfc3RhdGUpOwogCQlzdHJ1Y3QgbnY1MF9oZWFkICpoZWFkID0gbnY1 MF9oZWFkKGNydGMpOwogCiAJCU5WX0FUT01JQyhkcm0sICIlczogc2V0ICUwNHggKGNsciAlMDR4 KVxuIiwgY3J0Yy0+bmFtZSwKQEAgLTQwMTgsMTQgKzQwMTgsMTQgQEAgbnY1MF9kaXNwX2F0b21p Y19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCX0KIAl9CiAK LQlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Ci0J CWlmIChjcnRjLT5zdGF0ZS0+ZXZlbnQpCisJZm9yX2VhY2hfbmV3X2NydGNfaW5fc3RhdGUoc3Rh dGUsIGNydGMsIG5ld19jcnRjX3N0YXRlLCBpKSB7CisJCWlmIChuZXdfY3J0Y19zdGF0ZS0+ZXZl bnQpCiAJCQlkcm1fY3J0Y192YmxhbmtfZ2V0KGNydGMpOwogCX0KIAogCS8qIFVwZGF0ZSBwbGFu ZShzKS4gKi8KLQlmb3JfZWFjaF9wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIHBsYW5lX3N0 YXRlLCBpKSB7Ci0JCXN0cnVjdCBudjUwX3duZHdfYXRvbSAqYXN5dyA9IG52NTBfd25kd19hdG9t KHBsYW5lLT5zdGF0ZSk7CisJZm9yX2VhY2hfbmV3X3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFu ZSwgbmV3X3BsYW5lX3N0YXRlLCBpKSB7CisJCXN0cnVjdCBudjUwX3duZHdfYXRvbSAqYXN5dyA9 IG52NTBfd25kd19hdG9tKG5ld19wbGFuZV9zdGF0ZSk7CiAJCXN0cnVjdCBudjUwX3duZHcgKndu ZHcgPSBudjUwX3duZHcocGxhbmUpOwogCiAJCU5WX0FUT01JQyhkcm0sICIlczogc2V0ICUwMngg KGNsciAlMDJ4KVxuIiwgcGxhbmUtPm5hbWUsCkBAIC00MDU1LDIzICs0MDU1LDIzIEBAIG52NTBf ZGlzcF9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQog CQltdXRleF91bmxvY2soJmRpc3AtPm11dGV4KTsKIAogCS8qIFdhaXQgZm9yIEhXIHRvIHNpZ25h bCBjb21wbGV0aW9uLiAqLwotCWZvcl9lYWNoX3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwg cGxhbmVfc3RhdGUsIGkpIHsKLQkJc3RydWN0IG52NTBfd25kd19hdG9tICphc3l3ID0gbnY1MF93 bmR3X2F0b20ocGxhbmUtPnN0YXRlKTsKKwlmb3JfZWFjaF9uZXdfcGxhbmVfaW5fc3RhdGUoc3Rh dGUsIHBsYW5lLCBuZXdfcGxhbmVfc3RhdGUsIGkpIHsKKwkJc3RydWN0IG52NTBfd25kd19hdG9t ICphc3l3ID0gbnY1MF93bmR3X2F0b20obmV3X3BsYW5lX3N0YXRlKTsKIAkJc3RydWN0IG52NTBf d25kdyAqd25kdyA9IG52NTBfd25kdyhwbGFuZSk7CiAJCWludCByZXQgPSBudjUwX3duZHdfd2Fp dF9hcm1lZCh3bmR3LCBhc3l3KTsKIAkJaWYgKHJldCkKIAkJCU5WX0VSUk9SKGRybSwgIiVzOiB0 aW1lb3V0XG4iLCBwbGFuZS0+bmFtZSk7CiAJfQogCi0JZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShz dGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewotCQlpZiAoY3J0Yy0+c3RhdGUtPmV2ZW50KSB7 CisJZm9yX2VhY2hfbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG5ld19jcnRjX3N0YXRl LCBpKSB7CisJCWlmIChuZXdfY3J0Y19zdGF0ZS0+ZXZlbnQpIHsKIAkJCXVuc2lnbmVkIGxvbmcg ZmxhZ3M7CiAJCQkvKiBHZXQgY29ycmVjdCBjb3VudC90cyBpZiByYWNpbmcgd2l0aCB2Ymxhbmsg aXJxICovCiAJCQlkcm1fY3J0Y19hY2N1cmF0ZV92YmxhbmtfY291bnQoY3J0Yyk7CiAJCQlzcGlu X2xvY2tfaXJxc2F2ZSgmY3J0Yy0+ZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7Ci0JCQlkcm1fY3J0 Y19zZW5kX3ZibGFua19ldmVudChjcnRjLCBjcnRjLT5zdGF0ZS0+ZXZlbnQpOworCQkJZHJtX2Ny dGNfc2VuZF92YmxhbmtfZXZlbnQoY3J0YywgbmV3X2NydGNfc3RhdGUtPmV2ZW50KTsKIAkJCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmNydGMtPmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwotCQkJ Y3J0Yy0+c3RhdGUtPmV2ZW50ID0gTlVMTDsKKwkJCW5ld19jcnRjX3N0YXRlLT5ldmVudCA9IE5V TEw7CiAJCQlkcm1fY3J0Y192YmxhbmtfcHV0KGNydGMpOwogCQl9CiAJfQpAQCAtNDA5Niw3ICs0 MDk2LDcgQEAgbnY1MF9kaXNwX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IHsKIAlzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSA9IG5vdXZlYXVfZHJtKGRldik7CiAJc3RydWN0 IG52NTBfZGlzcCAqZGlzcCA9IG52NTBfZGlzcChkZXYpOwotCXN0cnVjdCBkcm1fcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlOworCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9zdGF0 ZTsKIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CiAJ Ym9vbCBhY3RpdmUgPSBmYWxzZTsKQEAgLTQxMjIsOCArNDEyMiw4IEBAIG52NTBfZGlzcF9hdG9t aWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQlnb3RvIGRvbmU7CiAJfQogCi0J Zm9yX2VhY2hfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBwbGFuZV9zdGF0ZSwgaSkgewot CQlzdHJ1Y3QgbnY1MF93bmR3X2F0b20gKmFzeXcgPSBudjUwX3duZHdfYXRvbShwbGFuZV9zdGF0 ZSk7CisJZm9yX2VhY2hfb2xkX3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgb2xkX3BsYW5l X3N0YXRlLCBpKSB7CisJCXN0cnVjdCBudjUwX3duZHdfYXRvbSAqYXN5dyA9IG52NTBfd25kd19h dG9tKG9sZF9wbGFuZV9zdGF0ZSk7CiAJCXN0cnVjdCBudjUwX3duZHcgKnduZHcgPSBudjUwX3du ZHcocGxhbmUpOwogCQlpZiAoYXN5dy0+c2V0LmltYWdlKSB7CiAJCQlhc3l3LT5udGZ5LmhhbmRs ZSA9IHduZHctPmRtYWMtPnN5bmMuaGFuZGxlOwpAQCAtNDE4NSwxOCArNDE4NSwxOSBAQCBudjUw X2Rpc3Bfb3V0cF9hdG9taWNfYWRkKHN0cnVjdCBudjUwX2F0b20gKmF0b20sIHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlcikKIAogc3RhdGljIGludAogbnY1MF9kaXNwX291dHBfYXRvbWljX2No ZWNrX2NscihzdHJ1Y3QgbnY1MF9hdG9tICphdG9tLAotCQkJCXN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IpCisJCQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uZWN0 b3Jfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gY29ubmVjdG9yLT5z dGF0ZS0+YmVzdF9lbmNvZGVyOwotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsK KwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSBvbGRfY29ubmVjdG9yX3N0YXRlLT5iZXN0 X2VuY29kZXI7CisJc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwgKm5ld19j cnRjX3N0YXRlOwogCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKIAlzdHJ1Y3QgbnY1MF9vdXRwX2F0 b20gKm91dHA7CiAKLQlpZiAoIShjcnRjID0gY29ubmVjdG9yLT5zdGF0ZS0+Y3J0YykpCisJaWYg KCEoY3J0YyA9IG9sZF9jb25uZWN0b3Jfc3RhdGUtPmNydGMpKQogCQlyZXR1cm4gMDsKIAotCWNy dGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9leGlzdGluZ19jcnRjX3N0YXRlKCZhdG9tLT5zdGF0 ZSwgY3J0Yyk7Ci0JaWYgKGNydGMtPnN0YXRlLT5hY3RpdmUgJiYgZHJtX2F0b21pY19jcnRjX25l ZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpIHsKKwlvbGRfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNf Z2V0X25ld19jcnRjX3N0YXRlKCZhdG9tLT5zdGF0ZSwgY3J0Yyk7CisJbmV3X2NydGNfc3RhdGUg PSBkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZSgmYXRvbS0+c3RhdGUsIGNydGMpOworCWlm IChvbGRfY3J0Y19zdGF0ZS0+YWN0aXZlICYmIGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0 KG5ld19jcnRjX3N0YXRlKSkgewogCQlvdXRwID0gbnY1MF9kaXNwX291dHBfYXRvbWljX2FkZChh dG9tLCBlbmNvZGVyKTsKIAkJaWYgKElTX0VSUihvdXRwKSkKIAkJCXJldHVybiBQVFJfRVJSKG91 dHApOwpAQCAtNDIxNywxNSArNDIxOCwxNSBAQCBudjUwX2Rpc3Bfb3V0cF9hdG9taWNfY2hlY2tf c2V0KHN0cnVjdCBudjUwX2F0b20gKmF0b20sCiAJCQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5lY3Rvcl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSBj b25uZWN0b3Jfc3RhdGUtPmJlc3RfZW5jb2RlcjsKLQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNy dGNfc3RhdGU7CisJc3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZTsKIAlzdHJ1 Y3QgZHJtX2NydGMgKmNydGM7CiAJc3RydWN0IG52NTBfb3V0cF9hdG9tICpvdXRwOwogCiAJaWYg KCEoY3J0YyA9IGNvbm5lY3Rvcl9zdGF0ZS0+Y3J0YykpCiAJCXJldHVybiAwOwogCi0JY3J0Y19z dGF0ZSA9IGRybV9hdG9taWNfZ2V0X2V4aXN0aW5nX2NydGNfc3RhdGUoJmF0b20tPnN0YXRlLCBj cnRjKTsKLQlpZiAoY3J0Y19zdGF0ZS0+YWN0aXZlICYmIGRybV9hdG9taWNfY3J0Y19uZWVkc19t b2Rlc2V0KGNydGNfc3RhdGUpKSB7CisJbmV3X2NydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9u ZXdfY3J0Y19zdGF0ZSgmYXRvbS0+c3RhdGUsIGNydGMpOworCWlmIChuZXdfY3J0Y19zdGF0ZS0+ YWN0aXZlICYmIGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSkg ewogCQlvdXRwID0gbnY1MF9kaXNwX291dHBfYXRvbWljX2FkZChhdG9tLCBlbmNvZGVyKTsKIAkJ aWYgKElTX0VSUihvdXRwKSkKIAkJCXJldHVybiBQVFJfRVJSKG91dHApOwpAQCAtNDI0MSw3ICs0 MjQyLDcgQEAgc3RhdGljIGludAogbnY1MF9kaXNwX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IG52 NTBfYXRvbSAqYXRvbSA9IG52NTBfYXRvbShzdGF0ZSk7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xk X2Nvbm5lY3Rvcl9zdGF0ZSwgKm5ld19jb25uZWN0b3Jfc3RhdGU7CiAJc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcjsKIAlpbnQgcmV0LCBpOwogCkBAIC00MjQ5LDEyICs0MjUwLDEyIEBA IG52NTBfZGlzcF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlmb3Jf ZWFjaF9jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3RvciwgY29ubmVjdG9yX3N0YXRl LCBpKSB7Ci0JCXJldCA9IG52NTBfZGlzcF9vdXRwX2F0b21pY19jaGVja19jbHIoYXRvbSwgY29u bmVjdG9yKTsKKwlmb3JfZWFjaF9vbGRuZXdfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25u ZWN0b3IsIG9sZF9jb25uZWN0b3Jfc3RhdGUsIG5ld19jb25uZWN0b3Jfc3RhdGUsIGkpIHsKKwkJ cmV0ID0gbnY1MF9kaXNwX291dHBfYXRvbWljX2NoZWNrX2NscihhdG9tLCBvbGRfY29ubmVjdG9y X3N0YXRlKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAKLQkJcmV0ID0gbnY1MF9kaXNw X291dHBfYXRvbWljX2NoZWNrX3NldChhdG9tLCBjb25uZWN0b3Jfc3RhdGUpOworCQlyZXQgPSBu djUwX2Rpc3Bfb3V0cF9hdG9taWNfY2hlY2tfc2V0KGF0b20sIG5ld19jb25uZWN0b3Jfc3RhdGUp OwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAl9Ci0tIAoyLjExLjAKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=