From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 62/64] drm/i915: Release vma when the handle is closed Date: Thu, 7 Jul 2016 09:42:08 +0100 Message-ID: <1467880930-23082-62-git-send-email-chris@chris-wilson.co.uk> References: <1467880930-23082-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-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 954166E760 for ; Thu, 7 Jul 2016 08:43:38 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id a66so3785608wme.2 for ; Thu, 07 Jul 2016 01:43:38 -0700 (PDT) In-Reply-To: <1467880930-23082-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 SW4gb3JkZXIgdG8gcHJldmVudCBhIGxlYWsgb2YgdGhlIHZtYSBvbiBzaGFyZWQgb2JqZWN0cywg d2UgbmVlZCB0bwpob29rIGludG8gdGhlIG9iamVjdF9jbG9zZSBjYWxsYmFjayB0byBkZXN0cm95 IHRoZSB2bWEgb24gdGhlIG9iamVjdCBmb3IKdGhpcyBmaWxlLiBIb3dldmVyLCBpZiB3ZSBkZXN0 cm95ZWQgdGhhdCB2bWEgaW1tZWRpYXRlbHkgd2UgbWF5IGNhdXNlCnVuZXhwZWN0ZWQgYXBwbGlj YXRpb24gc3RhbGxzIGFzIHdlIHRyeSB0byB1bmJpbmQgYSBidXN5IHZtYSAtIGhlbmNlIHdlCmRl ZmVyIHRoZSB1bmJpbmQgdG8gd2hlbiB3ZSByZXRpcmUgdGhlIHZtYS4KCnYyOiBLZWVwIHZtYSBh bGxvY2F0ZWQgdW50aWwgY2xvc2VkLiBUaGlzIGlzIHVzZWZ1bCBmb3IgYSBsYXRlcgpvcHRpbWlz YXRpb24sIGJ1dCBpdCBpcyByZXF1aXJlZCBub3cgaW4gb3JkZXIgdG8gaGFuZGxlIHBvdGVudGlh bApyZWN1cnNpb24gb2YgaTkxNV92bWFfdW5iaW5kKCkgYnkgcmV0aXJpbmcgaXRzZWxmLgp2Mzog Q29tbWVudHMgYXJlIGltcG9ydGFudC4KClRlc3RjYXNlOiBpZ3QvZ2VtX3BwZ2d0dC9mbGluay1h bmQtY2xvc2Utdm1hLWxlYWsKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+CkNjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AbGludXgu aW50ZWwuY29tPgpDYzogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1 cmlvQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAg IHwgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICB8ICA0ICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgIHwgODggKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0 LmMgfCAgOCArLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgIHwgMjUg KysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggICB8ICAxICsK IDYgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggMjFlZjczZTA1NmIyLi4zMjY0OTNkZTMwYTIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtMjU3Miw2ICsyNTcyLDcgQEAgc3RhdGljIHN0cnVjdCBk cm1fZHJpdmVyIGRyaXZlciA9IHsKIAkucG9zdGNsb3NlID0gaTkxNV9kcml2ZXJfcG9zdGNsb3Nl LAogCS5zZXRfYnVzaWQgPSBkcm1fcGNpX3NldF9idXNpZCwKIAorCS5nZW1fY2xvc2Vfb2JqZWN0 ID0gaTkxNV9nZW1fY2xvc2Vfb2JqZWN0LAogCS5nZW1fZnJlZV9vYmplY3QgPSBpOTE1X2dlbV9m cmVlX29iamVjdCwKIAkuZ2VtX3ZtX29wcyA9ICZpOTE1X2dlbV92bV9vcHMsCiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCmluZGV4IDQyZjJlYzA5N2U3Yy4uZDQxNjVjYjM4OGRlIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKQEAgLTI5OTQsOCArMjk5NCw4IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICppOTE1X2dlbV9vYmplY3RfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ CQkJCQkgIHNpemVfdCBzaXplKTsKIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICppOTE1X2dl bV9vYmplY3RfY3JlYXRlX2Zyb21fZGF0YSgKIAkJc3RydWN0IGRybV9kZXZpY2UgKmRldiwgY29u c3Qgdm9pZCAqZGF0YSwgc2l6ZV90IHNpemUpOwordm9pZCBpOTE1X2dlbV9jbG9zZV9vYmplY3Qo c3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW0sIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7CiB2b2lk IGk5MTVfZ2VtX2ZyZWVfb2JqZWN0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKLXZvaWQg aTkxNV9nZW1fdm1hX2Rlc3Ryb3koc3RydWN0IGk5MTVfdm1hICp2bWEpOwogCiAvKiBGbGFncyB1 c2VkIGJ5IHBpbi9iaW5kJmZyaWVuZHMuICovCiAjZGVmaW5lIFBJTl9NQVBQQUJMRQkoMTw8MCkK QEAgLTMwMjgsNiArMzAyOCw4IEBAIGludCBfX211c3RfY2hlY2sgaTkxNV92bWFfdW5iaW5kKHN0 cnVjdCBpOTE1X3ZtYSAqdm1hKTsKICAqIF9ndWFyYW50ZWVfIFZNQSBpbiBxdWVzdGlvbiBpcyBf bm90IGluIHVzZV8gYW55d2hlcmUuCiAgKi8KIGludCBfX211c3RfY2hlY2sgX19pOTE1X3ZtYV91 bmJpbmRfbm9fd2FpdChzdHJ1Y3QgaTkxNV92bWEgKnZtYSk7Cit2b2lkIGk5MTVfdm1hX2Nsb3Nl KHN0cnVjdCBpOTE1X3ZtYSAqdm1hKTsKK3ZvaWQgaTkxNV92bWFfZGVzdHJveShzdHJ1Y3QgaTkx NV92bWEgKnZtYSk7CiAKIGludCBpOTE1X2dlbV9vYmplY3RfdW5iaW5kKHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmopOwogaW50IGk5MTVfZ2VtX29iamVjdF9wdXRfcGFnZXMoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA0 ZWJlZDFlZWM3NjkuLjA4MTNlZjQxYTFkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0y NTk1LDYgKzI1OTUsMTkgQEAgb3V0X3JlYXJtOgogCX0KIH0KIAordm9pZCBpOTE1X2dlbV9jbG9z ZV9vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW0sIHN0cnVjdCBkcm1fZmlsZSAqZmls ZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gdG9faW50ZWxfYm8oZ2Vt KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9wcml2YXRlICpmcHJpdiA9IGZpbGUtPmRyaXZlcl9w cml2OworCXN0cnVjdCBpOTE1X3ZtYSAqdm1hLCAqdm47CisKKwltdXRleF9sb2NrKCZvYmotPmJh c2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh2bWEsIHZu LCAmb2JqLT52bWFfbGlzdCwgb2JqX2xpbmspCisJCWlmICh2bWEtPnZtLT5maWxlID09IGZwcml2 KQorCQkJaTkxNV92bWFfY2xvc2Uodm1hKTsKKwltdXRleF91bmxvY2soJm9iai0+YmFzZS5kZXYt PnN0cnVjdF9tdXRleCk7Cit9CisKIC8qKgogICogaTkxNV9nZW1fd2FpdF9pb2N0bCAtIGltcGxl bWVudHMgRFJNX0lPQ1RMX0k5MTVfR0VNX1dBSVQKICAqIEBkZXY6IGRybSBkZXZpY2UgcG9pbnRl cgpAQCAtMjgwMiwyNiArMjgxNSwzMiBAQCBzdGF0aWMgaW50IF9faTkxNV92bWFfdW5iaW5kKHN0 cnVjdCBpOTE1X3ZtYSAqdm1hLCBib29sIHdhaXQpCiAJaWYgKGFjdGl2ZSAmJiB3YWl0KSB7CiAJ CWludCBpZHg7CiAKKwkJLyogV2hlbiBhIGNsb3NlZCBWTUEgaXMgcmV0aXJlZCwgaXQgaXMgdW5i b3VuZCAtIGVlay4KKwkJICogSW4gb3JkZXIgdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nIHJlY3Vy c2l2ZWx5IGNsb3NlZCwKKwkJICogdGFrZSBhIHBpbiBvbiB0aGUgdm1hIHNvIHRoYXQgdGhlIHNl Y29uZCB1bmJpbmQgaXMKKwkJICogYWJvcnRlZC4KKwkJICovCisJCXZtYS0+cGluX2NvdW50Kys7 CisKIAkJZm9yX2VhY2hfYWN0aXZlKGFjdGl2ZSwgaWR4KSB7CiAJCQlyZXQgPSBpOTE1X2dlbV9h Y3RpdmVfcmV0aXJlKCZ2bWEtPmxhc3RfcmVhZFtpZHhdLAogCQkJCQkJICAgJnZtYS0+dm0tPmRl di0+c3RydWN0X211dGV4KTsKIAkJCWlmIChyZXQpCi0JCQkJcmV0dXJuIHJldDsKKwkJCQlicmVh azsKIAkJfQogCisJCXZtYS0+cGluX2NvdW50LS07CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0 OworCiAJCUdFTV9CVUdfT04oaTkxNV92bWFfaXNfYWN0aXZlKHZtYSkpOwogCX0KIAogCWlmICh2 bWEtPnBpbl9jb3VudCkKIAkJcmV0dXJuIC1FQlVTWTsKIAotCWlmIChsaXN0X2VtcHR5KCZ2bWEt Pm9ial9saW5rKSkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoIWRybV9tbV9ub2RlX2FsbG9jYXRlZCgm dm1hLT5ub2RlKSkgewotCQlpOTE1X2dlbV92bWFfZGVzdHJveSh2bWEpOwotCQlyZXR1cm4gMDsK LQl9CisJaWYgKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkpCisJCWdvdG8gZGVz dHJveTsKIAogCUdFTV9CVUdfT04ob2JqLT5iaW5kX2NvdW50ID09IDApOwogCUdFTV9CVUdfT04o IW9iai0+cGFnZXMpOwpAQCAtMjg1NCw3ICsyODczLDYgQEAgc3RhdGljIGludCBfX2k5MTVfdm1h X3VuYmluZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgYm9vbCB3YWl0KQogCX0KIAogCWRybV9tbV9y ZW1vdmVfbm9kZSgmdm1hLT5ub2RlKTsKLQlpOTE1X2dlbV92bWFfZGVzdHJveSh2bWEpOwogCiAJ LyogU2luY2UgdGhlIHVuYm91bmQgbGlzdCBpcyBnbG9iYWwsIG9ubHkgbW92ZSB0byB0aGF0IGxp c3QgaWYKIAkgKiBubyBtb3JlIFZNQXMgZXhpc3QuICovCkBAIC0yODY4LDYgKzI4ODYsMTAgQEAg c3RhdGljIGludCBfX2k5MTVfdm1hX3VuYmluZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgYm9vbCB3 YWl0KQogCSAqLwogCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOwogCitkZXN0cm95 OgorCWlmICh1bmxpa2VseSh2bWEtPmNsb3NlZCkpCisJCWk5MTVfdm1hX2Rlc3Ryb3kodm1hKTsK KwogCXJldHVybiAwOwogfQogCkBAIC0zMDQyLDcgKzMwNjQsNyBAQCBpOTE1X2dlbV9vYmplY3Rf YmluZF90b192bShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCiAJCWlmIChvZmZz ZXQgJiAoYWxpZ25tZW50IC0gMSkgfHwgb2Zmc2V0ICsgc2l6ZSA+IGVuZCkgewogCQkJcmV0ID0g LUVJTlZBTDsKLQkJCWdvdG8gZXJyX2ZyZWVfdm1hOworCQkJZ290byBlcnJfdm1hOwogCQl9CiAJ CXZtYS0+bm9kZS5zdGFydCA9IG9mZnNldDsKIAkJdm1hLT5ub2RlLnNpemUgPSBzaXplOwpAQCAt MzA1NCw3ICszMDc2LDcgQEAgaTkxNV9nZW1fb2JqZWN0X2JpbmRfdG9fdm0oc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCQlyZXQgPSBkcm1fbW1fcmVzZXJ2ZV9ub2RlKCZ2bS0+ bW0sICZ2bWEtPm5vZGUpOwogCQl9CiAJCWlmIChyZXQpCi0JCQlnb3RvIGVycl9mcmVlX3ZtYTsK KwkJCWdvdG8gZXJyX3ZtYTsKIAl9IGVsc2UgewogCQlpZiAoZmxhZ3MgJiBQSU5fSElHSCkgewog CQkJc2VhcmNoX2ZsYWcgPSBEUk1fTU1fU0VBUkNIX0JFTE9XOwpAQCAtMzA3OSw3ICszMTAxLDcg QEAgc2VhcmNoX2ZyZWU6CiAJCQlpZiAocmV0ID09IDApCiAJCQkJZ290byBzZWFyY2hfZnJlZTsK IAotCQkJZ290byBlcnJfZnJlZV92bWE7CisJCQlnb3RvIGVycl92bWE7CiAJCX0KIAl9CiAJaWYg KFdBUk5fT04oIWk5MTVfZ2VtX3ZhbGlkX2d0dF9zcGFjZSh2bWEsIG9iai0+Y2FjaGVfbGV2ZWwp KSkgewpAQCAtMzEwMCw4ICszMTIyLDcgQEAgc2VhcmNoX2ZyZWU6CiAKIGVycl9yZW1vdmVfbm9k ZToKIAlkcm1fbW1fcmVtb3ZlX25vZGUoJnZtYS0+bm9kZSk7Ci1lcnJfZnJlZV92bWE6Ci0JaTkx NV9nZW1fdm1hX2Rlc3Ryb3kodm1hKTsKK2Vycl92bWE6CiAJdm1hID0gRVJSX1BUUihyZXQpOwog ZXJyX3VucGluOgogCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOwpAQCAtNDA1NSwy MSArNDA3NiwxOCBAQCB2b2lkIGk5MTVfZ2VtX2ZyZWVfb2JqZWN0KHN0cnVjdCBkcm1fZ2VtX29i amVjdCAqZ2VtX29iaikKIAogCXRyYWNlX2k5MTVfZ2VtX29iamVjdF9kZXN0cm95KG9iaik7CiAK KwkvKiBBbGwgZmlsZS1vd25lZCBWTUEgc2hvdWxkIGhhdmUgYmVlbiByZWxlYXNlZCBieSB0aGlz IHBvaW50IHRocm91Z2gKKwkgKiBpOTE1X2dlbV9jbG9zZV9vYmplY3QoKSwgb3IgZWFybGllciBi eSBpOTE1X2dlbV9jb250ZXh0X2Nsb3NlKCkuCisJICogSG93ZXZlciwgdGhlIG9iamVjdCBtYXkg YWxzbyBiZSBib3VuZCBpbnRvIHRoZSBnbG9iYWwgR1RUIChlLmcuCisJICogb2xkZXIgR1BVcyB3 aXRob3V0IHBlci1wcm9jZXNzIHN1cHBvcnQsIG9yIGZvciBkaXJlY3QgYWNjZXNzIHRocm91Z2gK KwkgKiB0aGUgR1RUIGVpdGhlciBmb3IgdGhlIHVzZXIgb3IgZm9yIHNjYW5vdXQpLiBUaG9zZSBW TUEgc3RpbGwgbmVlZCB0bworCSAqIHVuYm91bmQgbm93LgorCSAqLwogCWxpc3RfZm9yX2VhY2hf ZW50cnlfc2FmZSh2bWEsIG5leHQsICZvYmotPnZtYV9saXN0LCBvYmpfbGluaykgewotCQlpbnQg cmV0OwotCisJCUdFTV9CVUdfT04oIXZtYS0+aXNfZ2d0dCk7CisJCUdFTV9CVUdfT04oaTkxNV92 bWFfaXNfYWN0aXZlKHZtYSkpOwogCQl2bWEtPnBpbl9jb3VudCA9IDA7Ci0JCXJldCA9IGk5MTVf dm1hX3VuYmluZCh2bWEpOwotCQlpZiAoV0FSTl9PTihyZXQgPT0gLUVSRVNUQVJUU1lTKSkgewot CQkJYm9vbCB3YXNfaW50ZXJydXB0aWJsZTsKLQotCQkJd2FzX2ludGVycnVwdGlibGUgPSBkZXZf cHJpdi0+bW0uaW50ZXJydXB0aWJsZTsKLQkJCWRldl9wcml2LT5tbS5pbnRlcnJ1cHRpYmxlID0g ZmFsc2U7Ci0KLQkJCVdBUk5fT04oaTkxNV92bWFfdW5iaW5kKHZtYSkpOwotCi0JCQlkZXZfcHJp di0+bW0uaW50ZXJydXB0aWJsZSA9IHdhc19pbnRlcnJ1cHRpYmxlOwotCQl9CisJCWk5MTVfdm1h X2Nsb3NlKHZtYSk7CiAJfQogCUdFTV9CVUdfT04ob2JqLT5iaW5kX2NvdW50KTsKIApAQCAtNDEz NCwyMiArNDE1Miw2IEBAIHN0cnVjdCBpOTE1X3ZtYSAqaTkxNV9nZW1fb2JqX3RvX2dndHRfdmll dyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCXJldHVybiBOVUxMOwogfQogCi12 b2lkIGk5MTVfZ2VtX3ZtYV9kZXN0cm95KHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQotewotCVdBUk5f T04odm1hLT5ub2RlLmFsbG9jYXRlZCk7Ci0KLQkvKiBLZWVwIHRoZSB2bWEgYXMgYSBwbGFjZWhv bGRlciBpbiB0aGUgZXhlY2J1ZmZlciByZXNlcnZhdGlvbiBsaXN0cyAqLwotCWlmICghbGlzdF9l bXB0eSgmdm1hLT5leGVjX2xpc3QpKQotCQlyZXR1cm47Ci0KLQlpZiAoIXZtYS0+aXNfZ2d0dCkK LQkJaTkxNV9wcGd0dF9wdXQoaTkxNV92bV90b19wcGd0dCh2bWEtPnZtKSk7Ci0KLQlsaXN0X2Rl bCgmdm1hLT5vYmpfbGluayk7Ci0KLQlrbWVtX2NhY2hlX2ZyZWUodG9faTkxNSh2bWEtPm9iai0+ YmFzZS5kZXYpLT52bWFzLCB2bWEpOwotfQotCiBzdGF0aWMgdm9pZAogaTkxNV9nZW1fc3RvcF9l bmdpbmVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZXZpY3QuYwppbmRleCA1YTAyYzMyZTlhZTYuLjJhOWFkYzgwMmU4NSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCkBAIC0yMTMsOCArMjEzLDggQEAgZm91bmQ6CiAJCQkJ ICAgICAgIHN0cnVjdCBpOTE1X3ZtYSwKIAkJCQkgICAgICAgZXhlY19saXN0KTsKIAkJaWYgKGRy bV9tbV9zY2FuX3JlbW92ZV9ibG9jaygmdm1hLT5ub2RlKSkgeworCQkJdm1hLT5waW5fY291bnQr KzsKIAkJCWxpc3RfbW92ZSgmdm1hLT5leGVjX2xpc3QsICZldmljdGlvbl9saXN0KTsKLQkJCWk5 MTVfZ2VtX29iamVjdF9nZXQodm1hLT5vYmopOwogCQkJY29udGludWU7CiAJCX0KIAkJbGlzdF9k ZWxfaW5pdCgmdm1hLT5leGVjX2xpc3QpOwpAQCAtMjIyLDE4ICsyMjIsMTQgQEAgZm91bmQ6CiAK IAkvKiBVbmJpbmRpbmcgd2lsbCBlbWl0IGFueSByZXF1aXJlZCBmbHVzaGVzICovCiAJd2hpbGUg KCFsaXN0X2VtcHR5KCZldmljdGlvbl9saXN0KSkgewotCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqOwotCiAJCXZtYSA9IGxpc3RfZmlyc3RfZW50cnkoJmV2aWN0aW9uX2xpc3QsCiAJ CQkJICAgICAgIHN0cnVjdCBpOTE1X3ZtYSwKIAkJCQkgICAgICAgZXhlY19saXN0KTsKIAotCQlv YmogPSAgdm1hLT5vYmo7CiAJCWxpc3RfZGVsX2luaXQoJnZtYS0+ZXhlY19saXN0KTsKKwkJdm1h LT5waW5fY291bnQtLTsKIAkJaWYgKHJldCA9PSAwKQogCQkJcmV0ID0gaTkxNV92bWFfdW5iaW5k KHZtYSk7Ci0KLQkJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwogCX0KIAogCXJldHVybiByZXQ7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IDcyZDI4MTJiYmJmNS4uZGI0N2I3 NTg4YTgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtMzM0MCw2ICszMzQw LDMxIEBAIGk5MTVfdm1hX3JldGlyZShzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlICphY3RpdmUsCiAJ CXJldHVybjsKIAogCWxpc3RfbW92ZV90YWlsKCZ2bWEtPnZtX2xpbmssICZ2bWEtPnZtLT5pbmFj dGl2ZV9saXN0KTsKKwlpZiAodW5saWtlbHkodm1hLT5jbG9zZWQgJiYgIXZtYS0+cGluX2NvdW50 KSkKKwkJV0FSTl9PTihpOTE1X3ZtYV91bmJpbmQodm1hKSk7Cit9CisKK3ZvaWQgaTkxNV92bWFf ZGVzdHJveShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKK3sKKwlHRU1fQlVHX09OKHZtYS0+bm9kZS5h bGxvY2F0ZWQpOworCUdFTV9CVUdfT04oaTkxNV92bWFfaXNfYWN0aXZlKHZtYSkpOworCUdFTV9C VUdfT04oIXZtYS0+Y2xvc2VkKTsKKworCWxpc3RfZGVsKCZ2bWEtPnZtX2xpbmspOworCWlmICgh dm1hLT5pc19nZ3R0KQorCQlpOTE1X3BwZ3R0X3B1dChpOTE1X3ZtX3RvX3BwZ3R0KHZtYS0+dm0p KTsKKworCWttZW1fY2FjaGVfZnJlZSh0b19pOTE1KHZtYS0+b2JqLT5iYXNlLmRldiktPnZtYXMs IHZtYSk7Cit9CisKK3ZvaWQgaTkxNV92bWFfY2xvc2Uoc3RydWN0IGk5MTVfdm1hICp2bWEpCit7 CisJR0VNX0JVR19PTih2bWEtPmNsb3NlZCk7CisJdm1hLT5jbG9zZWQgPSB0cnVlOworCisJbGlz dF9kZWxfaW5pdCgmdm1hLT5vYmpfbGluayk7CisJaWYgKCFpOTE1X3ZtYV9pc19hY3RpdmUodm1h KSAmJiAhdm1hLT5waW5fY291bnQpCisJCVdBUk5fT04oaTkxNV92bWFfdW5iaW5kKHZtYSkpOwog fQogCiBzdGF0aWMgc3RydWN0IGk5MTVfdm1hICoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2d0dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0 LmgKaW5kZXggN2VmZTEzNWMwOTQ0Li5hNGY0OTFkYzFkYWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5oCkBAIC0xODksNiArMTg5LDcgQEAgc3RydWN0IGk5MTVfdm1hIHsKIAl1bnNp Z25lZCBpbnQgYm91bmQgOiA0OwogCXVuc2lnbmVkIGludCBhY3RpdmUgOiBJOTE1X05VTV9FTkdJ TkVTOwogCWJvb2wgaXNfZ2d0dCA6IDE7CisJYm9vbCBjbG9zZWQgOiAxOwogCiAJLyoqCiAJICog U3VwcG9ydCBkaWZmZXJlbnQgR0dUVCB2aWV3cyBpbnRvIHRoZSBzYW1lIG9iamVjdC4KLS0gCjIu OC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK