From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 3/6] drm/i915: Extend magic to_i915() to work with drm_i915_gem_object Date: Fri, 15 Apr 2016 18:46:02 +0100 Message-ID: <1460742365-3646-4-git-send-email-chris@chris-wilson.co.uk> References: <1460742365-3646-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4AA4D6E23C for ; Fri, 15 Apr 2016 17:46:16 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id a140so8006680wma.2 for ; Fri, 15 Apr 2016 10:46:16 -0700 (PDT) In-Reply-To: <1460742365-3646-1-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org U2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgIHwgIDcgKystLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8IDE4ICsrKysrKy0t LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgfCA0OCArKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2V4ZWNidWZmZXIuYyB8IDIxICsrKysrLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2ZlbmNlLmMgICAgICB8ICA4ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuYyAgICAgICAgfCAgNSArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9zaHJpbmtlci5jICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3Rv bGVuLmMgICAgIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV90aWxpbmcu YyAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3VzZXJwdHIuYyAg ICB8ICA2ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyAgICB8 ICAyICstCiAxMSBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCA3MSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IDkzMWRjNjA4NmYzYi4uZjVm OWY0OGY4MDAxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMTM1LDcgKzEz NSw2IEBAIHN0YXRpYyB1NjQgaTkxNV9nZW1fb2JqX3RvdGFsX2dndHRfc2l6ZShzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqKQogc3RhdGljIHZvaWQKIGRlc2NyaWJlX29iaihzdHJ1Y3Qg c2VxX2ZpbGUgKm0sIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7Ci0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKIAlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAJ aW50IHBpbl9jb3VudCA9IDA7CkBAIC0xNTMsMTMgKzE1MiwxMyBAQCBkZXNjcmliZV9vYmooc3Ry dWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCQkgICBv YmotPmJhc2Uuc2l6ZSAvIDEwMjQsCiAJCSAgIG9iai0+YmFzZS5yZWFkX2RvbWFpbnMsCiAJCSAg IG9iai0+YmFzZS53cml0ZV9kb21haW4pOwotCWZvcl9lYWNoX2VuZ2luZV9pZChlbmdpbmUsIGRl dl9wcml2LCBpZCkKKwlmb3JfZWFjaF9lbmdpbmVfaWQoZW5naW5lLCBvYmosIGlkKQogCQlzZXFf cHJpbnRmKG0sICIleCAiLAogCQkJCWk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKG9iai0+bGFz dF9yZWFkX3JlcVtpZF0pKTsKIAlzZXFfcHJpbnRmKG0sICJdICV4ICV4JXMlcyVzIiwKIAkJICAg aTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8ob2JqLT5sYXN0X3dyaXRlX3JlcSksCiAJCSAgIGk5 MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKG9iai0+bGFzdF9mZW5jZWRfcmVxKSwKLQkJICAgaTkx NV9jYWNoZV9sZXZlbF9zdHIodG9faTkxNShvYmotPmJhc2UuZGV2KSwgb2JqLT5jYWNoZV9sZXZl bCksCisJCSAgIGk5MTVfY2FjaGVfbGV2ZWxfc3RyKHRvX2k5MTUob2JqKSwgb2JqLT5jYWNoZV9s ZXZlbCksCiAJCSAgIG9iai0+ZGlydHkgPyAiIGRpcnR5IiA6ICIiLAogCQkgICBvYmotPm1hZHYg PT0gSTkxNV9NQURWX0RPTlRORUVEID8gIiBwdXJnZWFibGUiIDogIiIpOwogCWlmIChvYmotPmJh c2UubmFtZSkKQEAgLTM0OSw3ICszNDgsNyBAQCBzdGF0aWMgaW50IHBlcl9maWxlX3N0YXRzKGlu dCBpZCwgdm9pZCAqcHRyLCB2b2lkICpkYXRhKQogCWlmIChvYmotPmJhc2UubmFtZSB8fCBvYmot PmJhc2UuZG1hX2J1ZikKIAkJc3RhdHMtPnNoYXJlZCArPSBvYmotPmJhc2Uuc2l6ZTsKIAotCWlm IChVU0VTX0ZVTExfUFBHVFQob2JqLT5iYXNlLmRldikpIHsKKwlpZiAoVVNFU19GVUxMX1BQR1RU KG9iaikpIHsKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeSh2bWEsICZvYmotPnZtYV9saXN0LCBvYmpf bGluaykgewogCQkJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0OwogCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAppbmRleCAwYTYyMzU0YmE1M2QuLjI4MmQ4OWQwOTdhZSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCkBAIC0yMjI5LDYgKzIyMjksMTIgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgewogfTsKICNkZWZpbmUgdG9faW50ZWxfYm8oeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0LCBiYXNlKQogCitzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICoKK19fb2JqX3RvX2k5MTUoY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaikKK3sKKwlyZXR1cm4gX190b19pOTE1KG9iai0+YmFzZS5kZXYpOworfQorCiB2b2lk IGk5MTVfZ2VtX3RyYWNrX2ZiKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvbGQsCiAJCSAg ICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqbmV3LAogCQkgICAgICAgdW5zaWduZWQg ZnJvbnRidWZmZXJfYml0cyk7CkBAIC0yNDk4LDYgKzI1MDQsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVf Y21kX3RhYmxlIHsKIAkJX19wID0gKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICopcDsgXAogCWVs c2UgaWYgKF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCpwKSwgc3RydWN0IGRy bV9kZXZpY2UpKSBcCiAJCV9fcCA9IF9fdG9faTkxNSgoc3RydWN0IGRybV9kZXZpY2UgKilwKTsg XAorCWVsc2UgaWYgKF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCpwKSwgc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QpKSBcCisJCV9fcCA9IF9fb2JqX3RvX2k5MTUoKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICopcCk7IFwKIAllbHNlIFwKIAkJQlVJTERfQlVHKCk7IFwK IAlfX3A7IFwKQEAgLTMyNTQsOCArMzI2Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dl bV9vYmpfZ2d0dF9ib3VuZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogc3RhdGlj IGlubGluZSB1bnNpZ25lZCBsb25nCiBpOTE1X2dlbV9vYmpfZ2d0dF9zaXplKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0g JmRldl9wcml2LT5nZ3R0OworCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmdG9faTkxNShvYmop LT5nZ3R0OwogCiAJcmV0dXJuIGk5MTVfZ2VtX29ial9zaXplKG9iaiwgJmdndHQtPmJhc2UpOwog fQpAQCAtMzI2NSw4ICszMjcyLDcgQEAgaTkxNV9nZW1fb2JqX2dndHRfcGluKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCSAgICAgIHVpbnQzMl90IGFsaWdubWVudCwKIAkJICAg ICAgdW5zaWduZWQgZmxhZ3MpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmRl dl9wcml2LT5nZ3R0OworCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmdG9faTkxNShvYmopLT5n Z3R0OwogCiAJcmV0dXJuIGk5MTVfZ2VtX29iamVjdF9waW4ob2JqLCAmZ2d0dC0+YmFzZSwKIAkJ CQkgICBhbGlnbm1lbnQsIGZsYWdzIHwgUElOX0dMT0JBTCk7CkBAIC0zMzkyLDkgKzMzOTgsNyBA QCB2b2lkIGk5MTVfZ2VtX3Nocmlua2VyX2NsZWFudXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KTsKIC8qIGk5MTVfZ2VtX3RpbGluZy5jICovCiBzdGF0aWMgaW5saW5lIGJvb2wg aTkxNV9nZW1fb2JqZWN0X25lZWRzX2JpdDE3X3N3aXp6bGUoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBvYmot PmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKLQotCXJldHVybiBkZXZfcHJpdi0+bW0uYml0XzZfc3dp enpsZV94ID09IEk5MTVfQklUXzZfU1dJWlpMRV85XzEwXzE3ICYmCisJcmV0dXJuIHRvX2k5MTUo b2JqKS0+bW0uYml0XzZfc3dpenpsZV94ID09IEk5MTVfQklUXzZfU1dJWlpMRV85XzEwXzE3ICYm CiAJCW9iai0+dGlsaW5nX21vZGUgIT0gSTkxNV9USUxJTkdfTk9ORTsKIH0KIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMKaW5kZXggMmEwY2I5YjE3Y2NkLi5iYmQ3YmZhZGJhZWYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYwpAQCAtMzU2LDE0ICszNTYsMTIgQEAgb3V0OgogCiB2b2lkICppOTE1X2dl bV9vYmplY3RfYWxsb2Moc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXJldHVybiBrbWVtX2Nh Y2hlX3phbGxvYyhkZXZfcHJpdi0+b2JqZWN0cywgR0ZQX0tFUk5FTCk7CisJcmV0dXJuIGttZW1f Y2FjaGVfemFsbG9jKHRvX2k5MTUoZGV2KS0+b2JqZWN0cywgR0ZQX0tFUk5FTCk7CiB9CiAKIHZv aWQgaTkxNV9nZW1fb2JqZWN0X2ZyZWUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikK IHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBvYmotPmJhc2UuZGV2LT5k ZXZfcHJpdmF0ZTsKLQlrbWVtX2NhY2hlX2ZyZWUoZGV2X3ByaXYtPm9iamVjdHMsIG9iaik7CisJ a21lbV9jYWNoZV9mcmVlKHRvX2k5MTUob2JqKS0+b2JqZWN0cywgb2JqKTsKIH0KIAogc3RhdGlj IGludApAQCAtMjAxOSw3ICsyMDE3LDcgQEAgaTkxNV9nZW1fZ2V0X2d0dF9hbGlnbm1lbnQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdWludDMyX3Qgc2l6ZSwKIAogc3RhdGljIGludCBpOTE1X2dl bV9vYmplY3RfY3JlYXRlX21tYXBfb2Zmc2V0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmopCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gb2JqLT5iYXNlLmRl di0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShvYmopOwogCWludCByZXQ7CiAKIAlpZiAoZHJtX3ZtYV9ub2RlX2hhc19vZmZzZXQoJm9i ai0+YmFzZS52bWFfbm9kZSkpCkBAIC0yMjQwLDcgKzIyMzgsNyBAQCBpOTE1X2dlbV9vYmplY3Rf cHV0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiBzdGF0aWMgaW50CiBp OTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG9iai0+YmFzZS5k ZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUob2JqKTsKIAlpbnQgcGFnZV9jb3VudCwgaTsKIAlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq bWFwcGluZzsKIAlzdHJ1Y3Qgc2dfdGFibGUgKnN0OwpAQCAtMjM3NSw3ICsyMzczLDcgQEAgZXJy X3BhZ2VzOgogaW50CiBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmopCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g b2JqLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShvYmopOwogCWNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 X29wcyAqb3BzID0gb2JqLT5vcHM7CiAJaW50IHJldDsKIApAQCAtMjQ5NSw4ICsyNDkzLDcgQEAg aTkxNV9nZW1fb2JqZWN0X3JldGlyZV9fcmVhZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLCBpbnQgcmluZykKIAkgKiBzbyB0aGF0IHdlIGRvbid0IHN0ZWFsIGZyb20gcmVjZW50bHkg dXNlZCBidXQgaW5hY3RpdmUgb2JqZWN0cwogCSAqICh1bmxlc3Mgd2UgYXJlIGZvcmNlZCB0byBv ZmMhKQogCSAqLwotCWxpc3RfbW92ZV90YWlsKCZvYmotPmdsb2JhbF9saXN0LAotCQkgICAgICAg JnRvX2k5MTUob2JqLT5iYXNlLmRldiktPm1tLmJvdW5kX2xpc3QpOworCWxpc3RfbW92ZV90YWls KCZvYmotPmdsb2JhbF9saXN0LCAmdG9faTkxNShvYmopLT5tbS5ib3VuZF9saXN0KTsKIAogCWxp c3RfZm9yX2VhY2hfZW50cnkodm1hLCAmb2JqLT52bWFfbGlzdCwgb2JqX2xpbmspIHsKIAkJaWYg KCFsaXN0X2VtcHR5KCZ2bWEtPnZtX2xpbmspKQpAQCAtMzIxOCw3ICszMjE1LDcgQEAgX19pOTE1 X2dlbV9vYmplY3Rfc3luYyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQlyZXR1 cm4gMDsKIAogCWlmICghaTkxNV9zZW1hcGhvcmVfaXNfZW5hYmxlZChvYmotPmJhc2UuZGV2KSkg ewotCQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUob2JqLT5iYXNlLmRl dik7CisJCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShvYmopOwogCQly ZXQgPSBfX2k5MTVfd2FpdF9yZXF1ZXN0KGZyb21fcmVxLAogCQkJCQkgIGk5MTUtPm1tLmludGVy cnVwdGlibGUsCiAJCQkJCSAgTlVMTCwKQEAgLTMzNTQsNyArMzM1MSw3IEBAIHN0YXRpYyB2b2lk IGk5MTVfZ2VtX29iamVjdF9maW5pc2hfZ3R0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmopCiBzdGF0aWMgaW50IF9faTkxNV92bWFfdW5iaW5kKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCBi b29sIHdhaXQpCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHZtYS0+b2Jq OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG9iai0+YmFzZS5kZXYtPmRl dl9wcml2YXRlOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo b2JqKTsKIAlpbnQgcmV0OwogCiAJaWYgKGxpc3RfZW1wdHkoJnZtYS0+b2JqX2xpbmspKQpAQCAt Mzc1OCw5ICszNzU1LDYgQEAgaTkxNV9nZW1fb2JqZWN0X2ZsdXNoX2NwdV93cml0ZV9kb21haW4o c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIGludAogaTkxNV9nZW1fb2JqZWN0X3Nl dF90b19ndHRfZG9tYWluKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIGJvb2wgd3Jp dGUpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG9iai0+YmFzZS5kZXY7Ci0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBpOTE1 X2dndHQgKmdndHQgPSAmZGV2X3ByaXYtPmdndHQ7CiAJdWludDMyX3Qgb2xkX3dyaXRlX2RvbWFp biwgb2xkX3JlYWRfZG9tYWluczsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAlpbnQgcmV0OwpA QCAtMzgxNSw3ICszODA5LDcgQEAgaTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIGJvb2wgd3JpdGUpCiAJdm1hID0gaTkxNV9n ZW1fb2JqX3RvX2dndHQob2JqKTsKIAlpZiAodm1hICYmIGRybV9tbV9ub2RlX2FsbG9jYXRlZCgm dm1hLT5ub2RlKSAmJiAhb2JqLT5hY3RpdmUpCiAJCWxpc3RfbW92ZV90YWlsKCZ2bWEtPnZtX2xp bmssCi0JCQkgICAgICAgJmdndHQtPmJhc2UuaW5hY3RpdmVfbGlzdCk7CisJCQkgICAgICAgJnRv X2k5MTUob2JqKS0+Z2d0dC5iYXNlLmluYWN0aXZlX2xpc3QpOwogCiAJcmV0dXJuIDA7CiB9CkBA IC0zODM2LDcgKzM4MzAsNiBAQCBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0dF9kb21haW4oc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgYm9vbCB3cml0ZSkKIGludCBpOTE1X2dlbV9v YmplY3Rfc2V0X2NhY2hlX2xldmVsKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJ CQkJICAgIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBjYWNoZV9sZXZlbCkKIHsKLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gb2JqLT5iYXNlLmRldjsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgKm5l eHQ7CiAJYm9vbCBib3VuZCA9IGZhbHNlOwogCWludCByZXQgPSAwOwpAQCAtMzg4Miw3ICszODc1 LDcgQEAgaW50IGk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfbGV2ZWwoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAKLQkJaWYgKCFI QVNfTExDKGRldikgJiYgY2FjaGVfbGV2ZWwgIT0gSTkxNV9DQUNIRV9OT05FKSB7CisJCWlmICgh SEFTX0xMQyhvYmopICYmIGNhY2hlX2xldmVsICE9IEk5MTVfQ0FDSEVfTk9ORSkgewogCQkJLyog QWNjZXNzIHRvIHNub29wYWJsZSBwYWdlcyB0aHJvdWdoIHRoZSBHVFQgaXMKIAkJCSAqIGluY29o ZXJlbnQgYW5kIG9uIHNvbWUgbWFjaGluZXMgY2F1c2VzIGEgaGFyZAogCQkJICogbG9ja3VwLiBS ZWxpbnF1aXNoIHRoZSBDUFUgbW1hcGluZyB0byBmb3JjZQpAQCAtNDA1Myw3ICs0MDQ2LDcgQEAg aTkxNV9nZW1fb2JqZWN0X3Bpbl90b19kaXNwbGF5X3BsYW5lKHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmosCiAJICogd2l0aCB0aGF0IGJpdCBpbiB0aGUgUFRFIHRvIG1haW4gbWVtb3J5 IHdpdGgganVzdCBvbmUgUElQRV9DT05UUk9MLgogCSAqLwogCXJldCA9IGk5MTVfZ2VtX29iamVj dF9zZXRfY2FjaGVfbGV2ZWwob2JqLAotCQkJCQkgICAgICBIQVNfV1Qob2JqLT5iYXNlLmRldikg PyBJOTE1X0NBQ0hFX1dUIDogSTkxNV9DQUNIRV9OT05FKTsKKwkJCQkJICAgICAgSEFTX1dUKG9i aikgPyBJOTE1X0NBQ0hFX1dUIDogSTkxNV9DQUNIRV9OT05FKTsKIAlpZiAocmV0KQogCQlnb3Rv IGVycl91bnBpbl9kaXNwbGF5OwogCkBAIC00MjUwLDcgKzQyNDMsNyBAQCB2b2lkIF9faTkxNV92 bWFfc2V0X21hcF9hbmRfZmVuY2VhYmxlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCQkgICAgICh2 bWEtPm5vZGUuc3RhcnQgJiAoZmVuY2VfYWxpZ25tZW50IC0gMSkpID09IDApOwogCiAJbWFwcGFi bGUgPSAodm1hLT5ub2RlLnN0YXJ0ICsgZmVuY2Vfc2l6ZSA8PQotCQkgICAgdG9faTkxNShvYmot PmJhc2UuZGV2KS0+Z2d0dC5tYXBwYWJsZV9lbmQpOworCQkgICAgdG9faTkxNShvYmopLT5nZ3R0 Lm1hcHBhYmxlX2VuZCk7CiAKIAlvYmotPm1hcF9hbmRfZmVuY2VhYmxlID0gbWFwcGFibGUgJiYg ZmVuY2VhYmxlOwogfQpAQCAtNDI2Miw3ICs0MjU1LDcgQEAgaTkxNV9nZW1fb2JqZWN0X2RvX3Bp bihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkgICAgICAgdWludDMyX3QgYWxp Z25tZW50LAogCQkgICAgICAgdWludDY0X3QgZmxhZ3MpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gb2JqLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShvYmopOwogCXN0cnVjdCBpOTE1X3Zt YSAqdm1hOwogCXVuc2lnbmVkIGJvdW5kOwogCWludCByZXQ7CkBAIC00MzQ0LDkgKzQzMzcsNyBA QCBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiwKIAkJCSB1aW50MzJfdCBhbGlnbm1lbnQsCiAJCQkgdWludDY0X3QgZmxhZ3MpCiB7Ci0Jc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IG9iai0+YmFzZS5kZXY7Ci0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBpOTE1X2dndHQgKmdndHQg PSAmZGV2X3ByaXYtPmdndHQ7CisJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZ0b19pOTE1KG9i aiktPmdndHQ7CiAKIAlCVUdfT04oIXZpZXcpOwogCkBAIC00NDk3LDcgKzQ0ODgsNyBAQCB2b2lk IGk5MTVfZ2VtX29iamVjdF9pbml0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJ b2JqLT5mZW5jZV9yZWcgPSBJOTE1X0ZFTkNFX1JFR19OT05FOwogCW9iai0+bWFkdiA9IEk5MTVf TUFEVl9XSUxMTkVFRDsKIAotCWk5MTVfZ2VtX2luZm9fYWRkX29iaihvYmotPmJhc2UuZGV2LT5k ZXZfcHJpdmF0ZSwgb2JqLT5iYXNlLnNpemUpOworCWk5MTVfZ2VtX2luZm9fYWRkX29iaih0b19p OTE1KG9iaiksIG9iai0+YmFzZS5zaXplKTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0X29wcyBpOTE1X2dlbV9vYmplY3Rfb3BzID0gewpAQCAtNDU5MCw4ICs0 NTgxLDcgQEAgc3RhdGljIGJvb2wgZGlzY2FyZF9iYWNraW5nX3N0b3JhZ2Uoc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaikKIHZvaWQgaTkxNV9nZW1fZnJlZV9vYmplY3Qoc3RydWN0IGRy bV9nZW1fb2JqZWN0ICpnZW1fb2JqKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmogPSB0b19pbnRlbF9ibyhnZW1fb2JqKTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2Jq LT5iYXNlLmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRl dl9wcml2YXRlOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo b2JqKTsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgKm5leHQ7CiAKIAlpbnRlbF9ydW50aW1lX3Bt X2dldChkZXZfcHJpdik7CkBAIC00NjY2LDkgKzQ2NTYsNyBAQCBzdHJ1Y3QgaTkxNV92bWEgKmk5 MTVfZ2VtX29ial90b192bWEoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIHN0cnVj dCBpOTE1X3ZtYSAqaTkxNV9nZW1fb2JqX3RvX2dndHRfdmlldyhzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqLAogCQkJCQkgICBjb25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcp CiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG9iai0+YmFzZS5kZXY7Ci0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBpOTE1X2dn dHQgKmdndHQgPSAmZGV2X3ByaXYtPmdndHQ7CisJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZ0 b19pOTE1KG9iaiktPmdndHQ7CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAKIAlCVUdfT04oIXZp ZXcpOwpAQCAtNDY5Myw3ICs0NjgxLDcgQEAgdm9pZCBpOTE1X2dlbV92bWFfZGVzdHJveShzdHJ1 Y3QgaTkxNV92bWEgKnZtYSkKIAogCWxpc3RfZGVsKCZ2bWEtPm9ial9saW5rKTsKIAotCWttZW1f Y2FjaGVfZnJlZSh0b19pOTE1KHZtYS0+b2JqLT5iYXNlLmRldiktPnZtYXMsIHZtYSk7CisJa21l bV9jYWNoZV9mcmVlKHRvX2k5MTUodm1hLT5vYmopLT52bWFzLCB2bWEpOwogfQogCiBzdGF0aWMg dm9pZApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZl ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCmluZGV4IDZm NGYyYTZjZGY5My4uODY5MTFkY2FmYjZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZXhlY2J1ZmZlci5jCkBAIC0yNDEsNyArMjQxLDcgQEAgc3RhdGljIHZvaWQgZWJfZGVzdHJv eShzdHJ1Y3QgZWJfdm1hcyAqZWIpCiAKIHN0YXRpYyBpbmxpbmUgaW50IHVzZV9jcHVfcmVsb2Mo c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKLQlyZXR1cm4gKEhBU19MTEMob2Jq LT5iYXNlLmRldikgfHwKKwlyZXR1cm4gKEhBU19MTEMob2JqKSB8fAogCQlvYmotPmJhc2Uud3Jp dGVfZG9tYWluID09IEk5MTVfR0VNX0RPTUFJTl9DUFUgfHwKIAkJb2JqLT5jYWNoZV9sZXZlbCAh PSBJOTE1X0NBQ0hFX05PTkUpOwogfQpAQCAtMjc2LDcgKzI3Niw2IEBAIHJlbG9jYXRlX2VudHJ5 X2NwdShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkgICBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlbG9jYXRpb25fZW50cnkgKnJlbG9jLAogCQkgICB1aW50NjRfdCB0YXJnZXRfb2Zm c2V0KQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvYmotPmJhc2UuZGV2OwogCXVpbnQz Ml90IHBhZ2Vfb2Zmc2V0ID0gb2Zmc2V0X2luX3BhZ2UocmVsb2MtPm9mZnNldCk7CiAJdWludDY0 X3QgZGVsdGEgPSByZWxvY2F0aW9uX3RhcmdldChyZWxvYywgdGFyZ2V0X29mZnNldCk7CiAJY2hh ciAqdmFkZHI7CkBAIC0yOTAsNyArMjg5LDcgQEAgcmVsb2NhdGVfZW50cnlfY3B1KHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkJcmVsb2MtPm9mZnNldCA+PiBQQUdFX1NISUZU KSk7CiAJKih1aW50MzJfdCAqKSh2YWRkciArIHBhZ2Vfb2Zmc2V0KSA9IGxvd2VyXzMyX2JpdHMo ZGVsdGEpOwogCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDgpIHsKKwlpZiAoSU5URUxf SU5GTyhvYmopLT5nZW4gPj0gOCkgewogCQlwYWdlX29mZnNldCA9IG9mZnNldF9pbl9wYWdlKHBh Z2Vfb2Zmc2V0ICsgc2l6ZW9mKHVpbnQzMl90KSk7CiAKIAkJaWYgKHBhZ2Vfb2Zmc2V0ID09IDAp IHsKQEAgLTMxMiw5ICszMTEsNyBAQCByZWxvY2F0ZV9lbnRyeV9ndHQoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKIAkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZWxvY2F0aW9uX2Vu dHJ5ICpyZWxvYywKIAkJICAgdWludDY0X3QgdGFyZ2V0X29mZnNldCkKIHsKLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gb2JqLT5iYXNlLmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZf cHJpdi0+Z2d0dDsKKwlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJnRvX2k5MTUob2JqKS0+Z2d0 dDsKIAl1aW50NjRfdCBkZWx0YSA9IHJlbG9jYXRpb25fdGFyZ2V0KHJlbG9jLCB0YXJnZXRfb2Zm c2V0KTsKIAl1aW50NjRfdCBvZmZzZXQ7CiAJdm9pZCBfX2lvbWVtICpyZWxvY19wYWdlOwpAQCAt MzM1LDcgKzMzMiw3IEBAIHJlbG9jYXRlX2VudHJ5X2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqLAogCQkJCQkgICAgICBvZmZzZXQgJiBQQUdFX01BU0spOwogCWlvd3JpdGUzMihs b3dlcl8zMl9iaXRzKGRlbHRhKSwgcmVsb2NfcGFnZSArIG9mZnNldF9pbl9wYWdlKG9mZnNldCkp OwogCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDgpIHsKKwlpZiAoSU5URUxfSU5GTyhv YmopLT5nZW4gPj0gOCkgewogCQlvZmZzZXQgKz0gc2l6ZW9mKHVpbnQzMl90KTsKIAogCQlpZiAo b2Zmc2V0X2luX3BhZ2Uob2Zmc2V0KSA9PSAwKSB7CkBAIC0zNjgsNyArMzY1LDYgQEAgcmVsb2Nh dGVfZW50cnlfY2xmbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkgICAg ICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZWxvY2F0aW9uX2VudHJ5ICpyZWxvYywKIAkJICAgICAg IHVpbnQ2NF90IHRhcmdldF9vZmZzZXQpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG9i ai0+YmFzZS5kZXY7CiAJdWludDMyX3QgcGFnZV9vZmZzZXQgPSBvZmZzZXRfaW5fcGFnZShyZWxv Yy0+b2Zmc2V0KTsKIAl1aW50NjRfdCBkZWx0YSA9IHJlbG9jYXRpb25fdGFyZ2V0KHJlbG9jLCB0 YXJnZXRfb2Zmc2V0KTsKIAljaGFyICp2YWRkcjsKQEAgLTM4Miw3ICszNzgsNyBAQCByZWxvY2F0 ZV9lbnRyeV9jbGZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkJcmVs b2MtPm9mZnNldCA+PiBQQUdFX1NISUZUKSk7CiAJY2xmbHVzaF93cml0ZTMyKHZhZGRyICsgcGFn ZV9vZmZzZXQsIGxvd2VyXzMyX2JpdHMoZGVsdGEpKTsKIAotCWlmIChJTlRFTF9JTkZPKGRldikt PmdlbiA+PSA4KSB7CisJaWYgKElOVEVMX0lORk8ob2JqKS0+Z2VuID49IDgpIHsKIAkJcGFnZV9v ZmZzZXQgPSBvZmZzZXRfaW5fcGFnZShwYWdlX29mZnNldCArIHNpemVvZih1aW50MzJfdCkpOwog CiAJCWlmIChwYWdlX29mZnNldCA9PSAwKSB7CkBAIC00MDQsNyArNDAwLDYgQEAgaTkxNV9nZW1f ZXhlY2J1ZmZlcl9yZWxvY2F0ZV9lbnRyeShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq LAogCQkJCSAgIHN0cnVjdCBlYl92bWFzICplYiwKIAkJCQkgICBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlbG9jYXRpb25fZW50cnkgKnJlbG9jKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBv YmotPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqdGFyZ2V0X29iajsKIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqdGFyZ2V0X2k5MTVfb2JqOwogCXN0cnVjdCBpOTE1X3Zt YSAqdGFyZ2V0X3ZtYTsKQEAgLTQyMyw3ICs0MTgsNyBAQCBpOTE1X2dlbV9leGVjYnVmZmVyX3Jl bG9jYXRlX2VudHJ5KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJLyogU2FuZHli cmlkZ2UgUFBHVFQgZXJyYXRhOiBXZSBuZWVkIGEgZ2xvYmFsIGd0dCBtYXBwaW5nIGZvciBNSSBh bmQKIAkgKiBwaXBlX2NvbnRyb2wgd3JpdGVzIGJlY2F1c2UgdGhlIGdwdSBkb2Vzbid0IHByb3Bl cmx5IHJlZGlyZWN0IHRoZW0KIAkgKiB0aHJvdWdoIHRoZSBwcGd0dCBmb3Igbm9uX3NlY3VyZSBi YXRjaGJ1ZmZlcnMuICovCi0JaWYgKHVubGlrZWx5KElTX0dFTjYoZGV2KSAmJgorCWlmICh1bmxp a2VseShJU19HRU42KG9iaikgJiYKIAkgICAgcmVsb2MtPndyaXRlX2RvbWFpbiA9PSBJOTE1X0dF TV9ET01BSU5fSU5TVFJVQ1RJT04pKSB7CiAJCXJldCA9IGk5MTVfdm1hX2JpbmQodGFyZ2V0X3Zt YSwgdGFyZ2V0X2k5MTVfb2JqLT5jYWNoZV9sZXZlbCwKIAkJCQkgICAgUElOX0dMT0JBTCk7CkBA IC00NjUsNyArNDYwLDcgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZWxvY2F0ZV9lbnRyeShzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCiAJLyogQ2hlY2sgdGhhdCB0aGUgcmVsb2Nh dGlvbiBhZGRyZXNzIGlzIHZhbGlkLi4uICovCiAJaWYgKHVubGlrZWx5KHJlbG9jLT5vZmZzZXQg PgotCQlvYmotPmJhc2Uuc2l6ZSAtIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA4ID8gOCA6IDQp KSkgeworCQlvYmotPmJhc2Uuc2l6ZSAtIChJTlRFTF9JTkZPKG9iaiktPmdlbiA+PSA4ID8gOCA6 IDQpKSkgewogCQlEUk1fREVCVUcoIlJlbG9jYXRpb24gYmV5b25kIG9iamVjdCBib3VuZHM6ICIK IAkJCSAgIm9iaiAlcCB0YXJnZXQgJWQgb2Zmc2V0ICVkIHNpemUgJWQuXG4iLAogCQkJICBvYmos IHJlbG9jLT50YXJnZXRfaGFuZGxlLApAQCAtNjczLDcgKzY2OCw3IEBAIG5lZWRfcmVsb2NfbWFw cGFibGUoc3RydWN0IGk5MTVfdm1hICp2bWEpCiAJCXJldHVybiBmYWxzZTsKIAogCS8qIFNlZSBh bHNvIHVzZV9jcHVfcmVsb2MoKSAqLwotCWlmIChIQVNfTExDKHZtYS0+b2JqLT5iYXNlLmRldikp CisJaWYgKEhBU19MTEModm1hLT5vYmopKQogCQlyZXR1cm4gZmFsc2U7CiAKIAlpZiAodm1hLT5v YmotPmJhc2Uud3JpdGVfZG9tYWluID09IEk5MTVfR0VNX0RPTUFJTl9DUFUpCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZmVuY2UuYwppbmRleCBhMmI5MzhlYzAxYTcuLmIxYTNhNTI3MGJhZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2UuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZS5jCkBAIC0yMjksNyArMjI5LDcgQEAg c3RhdGljIHZvaWQgaTkxNV9nZW1fb2JqZWN0X3VwZGF0ZV9mZW5jZShzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqLAogCQkJCQkgc3RydWN0IGRybV9pOTE1X2ZlbmNlX3JlZyAqZmVuY2Us CiAJCQkJCSBib29sIGVuYWJsZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBvYmotPmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KG9iaik7CiAJaW50IHJlZyA9IGZlbmNlX251bWJlcihkZXZf cHJpdiwgZmVuY2UpOwogCiAJaTkxNV9nZW1fd3JpdGVfZmVuY2Uob2JqLT5iYXNlLmRldiwgcmVn LCBlbmFibGUgPyBvYmogOiBOVUxMKTsKQEAgLTI4Niw3ICsyODYsNyBAQCBpOTE1X2dlbV9vYmpl Y3Rfd2FpdF9mZW5jZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogaW50CiBpOTE1 X2dlbV9vYmplY3RfcHV0X2ZlbmNlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7 Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gb2JqLT5iYXNlLmRldi0+ZGV2 X3ByaXZhdGU7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShv YmopOwogCXN0cnVjdCBkcm1faTkxNV9mZW5jZV9yZWcgKmZlbmNlOwogCWludCByZXQ7CiAKQEAg LTQzMyw3ICs0MzMsNyBAQCBib29sCiBpOTE1X2dlbV9vYmplY3RfcGluX2ZlbmNlKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7CiAJaWYgKG9iai0+ZmVuY2VfcmVnICE9IEk5MTVf RkVOQ0VfUkVHX05PTkUpIHsKLQkJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g b2JqLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7CisJCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUob2JqKTsKIAkJc3RydWN0IGk5MTVfdm1hICpnZ3R0X3ZtYSA9IGk5 MTVfZ2VtX29ial90b19nZ3R0KG9iaik7CiAKIAkJV0FSTl9PTighZ2d0dF92bWEgfHwKQEAgLTQ1 Nyw3ICs0NTcsNyBAQCB2b2lkCiBpOTE1X2dlbV9vYmplY3RfdW5waW5fZmVuY2Uoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKIAlpZiAob2JqLT5mZW5jZV9yZWcgIT0gSTkxNV9G RU5DRV9SRUdfTk9ORSkgewotCQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBv YmotPmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKKwkJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShvYmopOwogCQlXQVJOX09OKGRldl9wcml2LT5mZW5jZV9yZWdzW29i ai0+ZmVuY2VfcmVnXS5waW5fY291bnQgPD0gMCk7CiAJCWRldl9wcml2LT5mZW5jZV9yZWdzW29i ai0+ZmVuY2VfcmVnXS5waW5fY291bnQtLTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0 dC5jCmluZGV4IDlmMTY1ZmViNTRhZS4uNjI3YTRhY2NjNmUzIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYwpAQCAtMzMwOCw3ICszMzA4LDcgQEAgX19pOTE1X2dlbV92bWFfY3JlYXRl KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJaWYgKFdBUk5fT04oaTkxNV9pc19n Z3R0KHZtKSAhPSAhIWdndHRfdmlldykpCiAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCi0J dm1hID0ga21lbV9jYWNoZV96YWxsb2ModG9faTkxNShvYmotPmJhc2UuZGV2KS0+dm1hcywgR0ZQ X0tFUk5FTCk7CisJdm1hID0ga21lbV9jYWNoZV96YWxsb2ModG9faTkxNShvYmopLT52bWFzLCBH RlBfS0VSTkVMKTsKIAlpZiAodm1hID09IE5VTEwpCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0p OwogCkBAIC0zMzQ3LDggKzMzNDcsNyBAQCBzdHJ1Y3QgaTkxNV92bWEgKgogaTkxNV9nZW1fb2Jq X2xvb2t1cF9vcl9jcmVhdGVfZ2d0dF92bWEoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiwKIAkJCQkgICAgICAgY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3ICp2aWV3KQogewotCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvYmotPmJhc2UuZGV2OwotCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KG9iaik7CiAJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZk ZXZfcHJpdi0+Z2d0dDsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYSA9IGk5MTVfZ2VtX29ial90b19n Z3R0X3ZpZXcob2JqLCB2aWV3KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fc2hyaW5rZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3Nocmlu a2VyLmMKaW5kZXggYWRkZTVkOGMzYzE4Li5hMjYxZjYwMDY2ZjEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3Nocmlua2VyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYwpAQCAtNDMxLDcgKzQzMSw3IEBAIHN0YXRpYyBib29s IGNhbl9taWdyYXRlX3BhZ2Uoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAogc3Rh dGljIGludCBkb19taWdyYXRlX3BhZ2Uoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikK IHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KG9iai0+YmFz ZS5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUob2Jq KTsKIAlpbnQgcmV0ID0gMDsKIAogCWlmICghY2FuX21pZ3JhdGVfcGFnZShvYmopKQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYwppbmRleCBlYTA2ZGEwMTJkMzIuLjUxZGExNmQ5 ZWVlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKQEAgLTU0NiwxMCAr NTQ2LDggQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlc19zdG9sZW4oc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHN0YXRpYyB2b2lkCiBpOTE1X2dlbV9vYmpl Y3RfcmVsZWFzZV9zdG9sZW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKLQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBvYmotPmJhc2UuZGV2LT5kZXZfcHJp dmF0ZTsKLQogCWlmIChvYmotPnN0b2xlbikgewotCQlpOTE1X2dlbV9zdG9sZW5fcmVtb3ZlX25v ZGUoZGV2X3ByaXYsIG9iai0+c3RvbGVuKTsKKwkJaTkxNV9nZW1fc3RvbGVuX3JlbW92ZV9ub2Rl KHRvX2k5MTUob2JqKSwgb2JqLT5zdG9sZW4pOwogCQlrZnJlZShvYmotPnN0b2xlbik7CiAJCW9i ai0+c3RvbGVuID0gTlVMTDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV90aWxpbmcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3RpbGluZy5j CmluZGV4IDc0MTBmNmM5NjJlNy4uYmM0Y2I3ZjRmZTgwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV90aWxpbmcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV90aWxpbmcuYwpAQCAtMTIyLDEwICsxMjIsMTAgQEAgaTkxNV9nZW1fb2JqZWN0X2Zl bmNlX29rKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIGludCB0aWxpbmdfbW9kZSkK IAlpZiAodGlsaW5nX21vZGUgPT0gSTkxNV9USUxJTkdfTk9ORSkKIAkJcmV0dXJuIHRydWU7CiAK LQlpZiAoSU5URUxfSU5GTyhvYmotPmJhc2UuZGV2KS0+Z2VuID49IDQpCisJaWYgKElOVEVMX0lO Rk8ob2JqKS0+Z2VuID49IDQpCiAJCXJldHVybiB0cnVlOwogCi0JaWYgKElOVEVMX0lORk8ob2Jq LT5iYXNlLmRldiktPmdlbiA9PSAzKSB7CisJaWYgKElOVEVMX0lORk8ob2JqKS0+Z2VuID09IDMp IHsKIAkJaWYgKGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChvYmopICYgfkk5MTVfRkVOQ0VfU1RB UlRfTUFTSykKIAkJCXJldHVybiBmYWxzZTsKIAl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fdXNlcnB0ci5jCmluZGV4IDMyZDk3MjZlMzhiMS4uMzY5MmJkYjBmZWViIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jCkBAIC0zNDQsNyArMzQ0LDcgQEAg X19pOTE1X21tX3N0cnVjdF9maW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg c3RydWN0IG1tX3N0cnVjdCAqcmVhbCkKIHN0YXRpYyBpbnQKIGk5MTVfZ2VtX3VzZXJwdHJfaW5p dF9fbW1fc3RydWN0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7Ci0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KG9iaik7CiAJc3RydWN0 IGk5MTVfbW1fc3RydWN0ICptbTsKIAlpbnQgcmV0ID0gMDsKIApAQCAtMzY4LDcgKzM2OCw3IEBA IGk5MTVfZ2VtX3VzZXJwdHJfaW5pdF9fbW1fc3RydWN0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmopCiAJCX0KIAogCQlrcmVmX2luaXQoJm1tLT5rcmVmKTsKLQkJbW0tPmk5MTUgPSB0 b19pOTE1KG9iai0+YmFzZS5kZXYpOworCQltbS0+aTkxNSA9IHRvX2k5MTUob2JqKTsKIAogCQlt bS0+bW0gPSBjdXJyZW50LT5tbTsKIAkJYXRvbWljX2luYygmY3VycmVudC0+bW0tPm1tX2NvdW50 KTsKQEAgLTQxNyw3ICs0MTcsNyBAQCBpOTE1X2dlbV91c2VycHRyX3JlbGVhc2VfX21tX3N0cnVj dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCiAJa3JlZl9wdXRfbXV0ZXgoJm9i ai0+dXNlcnB0ci5tbS0+a3JlZiwKIAkJICAgICAgIF9faTkxNV9tbV9zdHJ1Y3RfZnJlZSwKLQkJ ICAgICAgICZ0b19pOTE1KG9iai0+YmFzZS5kZXYpLT5tbV9sb2NrKTsKKwkJICAgICAgICZ0b19p OTE1KG9iaiktPm1tX2xvY2spOwogCW9iai0+dXNlcnB0ci5tbSA9IE5VTEw7CiB9CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCAwZDI0NDk0OTA0ZWYuLjg5ODEx ZmJlNzIzZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwpAQCAtMjA4 Myw3ICsyMDgzLDcgQEAgc3RhdGljIGludCBpbml0X3BoeXNfc3RhdHVzX3BhZ2Uoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCiB2b2lkIGludGVsX3VucGluX3JpbmdidWZmZXJfb2Jq KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQogewotCWlmIChIQVNfTExDKHJpbmdi dWYtPm9iai0+YmFzZS5kZXYpICYmICFyaW5nYnVmLT5vYmotPnN0b2xlbikKKwlpZiAoSEFTX0xM QyhyaW5nYnVmLT5vYmopICYmICFyaW5nYnVmLT5vYmotPnN0b2xlbikKIAkJaTkxNV9nZW1fb2Jq ZWN0X3VucGluX21hcChyaW5nYnVmLT5vYmopOwogCWVsc2UKIAkJaW91bm1hcChyaW5nYnVmLT52 aXJ0dWFsX3N0YXJ0KTsKLS0gCjIuOC4wLnJjMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==