From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 21/38] drm/i915: Avoid requiring struct_mutex during suspend Date: Fri, 3 Jun 2016 17:55:36 +0100 Message-ID: <1464972953-2726-22-git-send-email-chris@chris-wilson.co.uk> References: <1464972953-2726-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-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 724E66EE81 for ; Fri, 3 Jun 2016 16:56:21 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id a136so736293wme.0 for ; Fri, 03 Jun 2016 09:56:21 -0700 (PDT) In-Reply-To: <1464972953-2726-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 VGhlIHN0cnVjdF9tdXRleCBjYW4gaGF2ZSBzb21lIHRyaWNreSBpbnRlcmFjdGlvbnMgd2l0aCBv dGhlciBtdXRleGVzCihtYWlubHkgZHVlIHRvIHVzaW5nIG5hc3R5IGNvbnN0cnVjdHMgbGlrZSBz dG9wX21hY2hpbmUoKSBmcm9tIHdpdGhpbgppdHMgY29uZmluZXMpLiBUaGlzIG1ha2VzIGl0ICJp bGxlZ2FsIiAobG9ja2RlcCBzaG91bGQgZ2VuZXJhdGUgV0FSTnMpCmZyb20gY2VydGFpbiBwYXRo cyBsaWtlIHN1c3BlbmQsIHdoZXJlIHRoZSBsb2NraW5nIG9yZGVyIG1heSBiZQppbnZlcnRlZC4g V2UgY2FuIGV4dGVuZCB0aGUgUkNVIHJlcXVlc3QgbWFuYWdlbWVudCB0byB0cmFjayBhY3Rpdml0 eSBvbgphbiBlbmdpbmUgYW5kIHRoZXJlYnkgd2FpdCB1cG9uIGFsbCBHUFUgYWN0aXZpdHkgd2l0 aG91dCB0YWtpbmcgdGhlCnN0cnVjdF9tdXRleC4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNv biA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMgICAgICAgICB8IDU2ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYyAgIHwgIDIgKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYyB8ICA4ICsrKy0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmggfCAxMSArKysrKysrCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dwdV9lcnJvci5jICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9pcnEuYyAgICAgICAgIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5j ICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgICAg fCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIHwgMzAgKysr KysrKysrLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgg fCAyNiArKysrKysrKy0tLS0tLS0KIDEwIGZpbGVzIGNoYW5nZWQsIDczIGluc2VydGlvbnMoKyks IDY5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDc2ZTVhMjQxYzdi ZS4uYzFlOTE1ODllN2JjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTIxNzksMTMgKzIx NzksMTggQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVzZXRfZW5naW5lX3N0YXR1cyhzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3Jlc2V0X2Vu Z2luZV9jbGVhbnVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7CiAJc3RydWN0IGludGVsX3JpbmcgKnJpbmc7 CiAKKwlyZXF1ZXN0ID0gaTkxNV9nZW1fYWN0aXZlX3BlZWsoJmVuZ2luZS0+bGFzdF9yZXF1ZXN0 LAorCQkJCSAgICAgICAmZW5naW5lLT5pOTE1LT5kZXYtPnN0cnVjdF9tdXRleCk7CisKIAkvKiBN YXJrIGFsbCBwZW5kaW5nIHJlcXVlc3RzIGFzIGNvbXBsZXRlIHNvIHRoYXQgYW55IGNvbmN1cnJl bnQKIAkgKiAobG9ja2xlc3MpIGxvb2t1cCBkb2Vzbid0IHRyeSBhbmQgd2FpdCB1cG9uIHRoZSBy ZXF1ZXN0IGFzIHdlCiAJICogcmVzZXQgaXQuCiAJICovCi0JaW50ZWxfZW5naW5lX2luaXRfc2Vx bm8oZW5naW5lLCBlbmdpbmUtPmxhc3Rfc3VibWl0dGVkX3NlcW5vKTsKKwlpZiAocmVxdWVzdCkK KwkJaW50ZWxfZW5naW5lX2luaXRfc2Vxbm8oZW5naW5lLCByZXF1ZXN0LT5mZW5jZS5zZXFubyk7 CiAKIAkvKgogCSAqIENsZWFyIHRoZSBleGVjbGlzdHMgcXVldWUgdXAgYmVmb3JlIGZyZWVpbmcg dGhlIHJlcXVlc3RzLCBhcyB0aG9zZQpAQCAtMjIwNywxNSArMjIxMiw5IEBAIHN0YXRpYyB2b2lk IGk5MTVfZ2VtX3Jlc2V0X2VuZ2luZV9jbGVhbnVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKIAkgKiBpbXBsaWNpdCByZWZlcmVuY2VzIG9uIHRoaW5ncyBsaWtlIGUuZy4gcHBndHQg YWRkcmVzcyBzcGFjZXMgdGhyb3VnaAogCSAqIHRoZSByZXF1ZXN0LgogCSAqLwotCWlmICghbGlz dF9lbXB0eSgmZW5naW5lLT5yZXF1ZXN0X2xpc3QpKSB7Ci0JCXN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxdWVzdDsKLQotCQlyZXF1ZXN0ID0gbGlzdF9sYXN0X2VudHJ5KCZlbmdpbmUt PnJlcXVlc3RfbGlzdCwKLQkJCQkJICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QsCi0JCQkJ CSAgbGluayk7Ci0KKwlpZiAocmVxdWVzdCkKIAkJaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmVfdXB0 byhyZXF1ZXN0KTsKLQl9CisJR0VNX0JVR19PTihpbnRlbF9lbmdpbmVfaXNfYWN0aXZlKGVuZ2lu ZSkpOwogCiAJLyogSGF2aW5nIGZsdXNoZWQgYWxsIHJlcXVlc3RzIGZyb20gYWxsIHF1ZXVlcywg d2Uga25vdyB0aGF0IGFsbAogCSAqIHJpbmdidWZmZXJzIG11c3Qgbm93IGJlIGVtcHR5LiBIb3dl dmVyLCBzaW5jZSB3ZSBkbyBub3QgcmVjbGFpbQpAQCAtMjYxNCw4ICsyNjEzLDYgQEAgaW50IGk5 MTVfZ2VtX3dhaXRfZm9yX2lkbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlpbnQgcmV0OwogCi0JbG9ja2RlcF9h c3NlcnRfaGVsZCgmZGV2X3ByaXYtPmRldi0+c3RydWN0X211dGV4KTsKLQogCWZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGRldl9wcml2KSB7CiAJCWlmIChlbmdpbmUtPmxhc3RfY29udGV4dCA9PSBO VUxMKQogCQkJY29udGludWU7CkBAIC0zNzg3LDQ3ICszNzg0LDM2IEBAIHN0cnVjdCBpOTE1X3Zt YSAqaTkxNV9nZW1fb2JqX3RvX2dndHRfdmlldyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLAogCXJldHVybiBOVUxMOwogfQogCi1zdGF0aWMgdm9pZAotaTkxNV9nZW1fc3RvcF9lbmdp bmVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmU7Ci0KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikKLQkJZGV2X3ByaXYt Pmd0LnN0b3BfZW5naW5lKGVuZ2luZSk7Ci19Ci0KIGludAogaTkxNV9nZW1fc3VzcGVuZChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JaW50IHJldCA9IDA7CisJaW50IHJldDsKIAotCW11dGV4 X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAlyZXQgPSBpOTE1X2dlbV93YWl0X2Zvcl9pZGxl KGRldl9wcml2KTsKIAlpZiAocmV0KQotCQlnb3RvIGVycjsKLQotCWk5MTVfZ2VtX3JldGlyZV9y ZXF1ZXN0cyhkZXZfcHJpdik7Ci0KLQlpOTE1X2dlbV9zdG9wX2VuZ2luZXMoZGV2KTsKLQlpOTE1 X2dlbV9jb250ZXh0X2xvc3QoZGV2X3ByaXYpOwotCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3Rf bXV0ZXgpOworCQlyZXR1cm4gcmV0OwogCiAJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZkZXZf cHJpdi0+Z3B1X2Vycm9yLmhhbmdjaGVja193b3JrKTsKIAljYW5jZWxfZGVsYXllZF93b3JrX3N5 bmMoJmRldl9wcml2LT5ndC5yZXRpcmVfd29yayk7CiAJZmx1c2hfZGVsYXllZF93b3JrKCZkZXZf cHJpdi0+Z3QuaWRsZV93b3JrKTsKIAorCW11dGV4X2xvY2soJmRldl9wcml2LT5kZXYtPnN0cnVj dF9tdXRleCk7CisKIAkvKiBBc3NlcnQgdGhhdCB3ZSBzdWNlc3NmdWxseSBmbHVzaGVkIGFsbCB0 aGUgd29yayBhbmQKIAkgKiByZXNldCB0aGUgR1BVIGJhY2sgdG8gaXRzIGlkbGUsIGxvdyBwb3dl ciBzdGF0ZS4KIAkgKi8KLQlXQVJOX09OKGRldl9wcml2LT5ndC5hd2FrZSk7CisJaWYgKGRldl9w cml2LT5ndC5hd2FrZSkgeworCQlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA+PSA2KQor CQkJZ2VuNl9ycHNfaWRsZShkZXZfcHJpdik7CisJCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9w cml2KTsKKwkJZGV2X3ByaXYtPmd0LmF3YWtlID0gZmFsc2U7CisJfQogCi0JcmV0dXJuIDA7CisJ aTkxNV9nZW1fY29udGV4dF9sb3N0KGRldl9wcml2KTsKKwltdXRleF91bmxvY2soJmRldl9wcml2 LT5kZXYtPnN0cnVjdF9tdXRleCk7CiAKLWVycjoKLQltdXRleF91bmxvY2soJmRldi0+c3RydWN0 X211dGV4KTsKLQlyZXR1cm4gcmV0OworCXJldHVybiAwOwogfQogCiB2b2lkIGk5MTVfZ2VtX2lu aXRfc3dpenpsaW5nKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZXZpY3QuYwppbmRleCA2ODAzNjVmNGM0Y2QuLjNlYWQ5MzU5ZGZhMiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCkBAIC02OSw3ICs2OSw3IEBAIGdwdV9pc19pZGxl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmU7CiAKIAlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikgewotCQlp ZiAoIWxpc3RfZW1wdHkoJmVuZ2luZS0+cmVxdWVzdF9saXN0KSkKKwkJaWYgKGludGVsX2VuZ2lu ZV9pc19hY3RpdmUoZW5naW5lKSkKIAkJCXJldHVybiBmYWxzZTsKIAl9CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYwppbmRleCBhMGNkZDNmMTA1NjYuLjAxNmVkYzZmMmQw YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYwpAQCAtNDQ1LDYgKzQ0 NSw3IEBAIHZvaWQgX19pOTE1X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxdWVzdCwKIAogCXRyYWNlX2k5MTVfZ2VtX3JlcXVlc3RfYWRkKHJlcXVlc3QpOwogCisJ dHJhY2VfaTkxNV9nZW1fcmVxdWVzdF9hZGQocmVxdWVzdCk7CiAJcmVxdWVzdC0+aGVhZCA9IHJl cXVlc3Rfc3RhcnQ7CiAKIAkvKiBXaGlsc3QgdGhpcyByZXF1ZXN0IGV4aXN0cywgYmF0Y2hfb2Jq IHdpbGwgYmUgb24gdGhlCkBAIC00NjIsNyArNDYzLDggQEAgdm9pZCBfX2k5MTVfYWRkX3JlcXVl c3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LAogCSAqLwogCXJlcXVlc3Qt PmVtaXR0ZWRfamlmZmllcyA9IGppZmZpZXM7CiAJcmVxdWVzdC0+cHJldmlvdXNfc2Vxbm8gPSBl bmdpbmUtPmxhc3Rfc3VibWl0dGVkX3NlcW5vOwotCXNtcF9zdG9yZV9tYihlbmdpbmUtPmxhc3Rf c3VibWl0dGVkX3NlcW5vLCByZXF1ZXN0LT5mZW5jZS5zZXFubyk7CisJZW5naW5lLT5sYXN0X3N1 Ym1pdHRlZF9zZXFubyA9IHJlcXVlc3QtPmZlbmNlLnNlcW5vOworCWk5MTVfZ2VtX2FjdGl2ZV9z ZXQoJmVuZ2luZS0+bGFzdF9yZXF1ZXN0LCByZXF1ZXN0KTsKIAlsaXN0X2FkZF90YWlsKCZyZXF1 ZXN0LT5saW5rLCAmZW5naW5lLT5yZXF1ZXN0X2xpc3QpOwogCiAJLyogUmVjb3JkIHRoZSBwb3Np dGlvbiBvZiB0aGUgc3RhcnQgb2YgdGhlIHJlcXVlc3Qgc28gdGhhdApAQCAtNjkwLDcgKzY5Miw3 IEBAIGNvbXBsZXRlOgogCX0KIAogCWlmICghSVNfRVJSX09SX05VTEwocnBzKSAmJgotCSAgICBy ZXEtPmZlbmNlLnNlcW5vID09IHJlcS0+ZW5naW5lLT5sYXN0X3N1Ym1pdHRlZF9zZXFubykgewor CSAgICByZXEgPT0gX19pOTE1X2dlbV9hY3RpdmVfcGVlaygmcmVxLT5lbmdpbmUtPmxhc3RfcmVx dWVzdCkpIHsKIAkJLyogVGhlIEdQVSBpcyBub3cgaWRsZSBhbmQgdGhpcyBjbGllbnQgaGFzIHN0 YWxsZWQuCiAJCSAqIFNpbmNlIG5vIG90aGVyIGNsaWVudCBoYXMgc3VibWl0dGVkIGEgcmVxdWVz dCBpbiB0aGUKIAkJICogbWVhbnRpbWUsIGFzc3VtZSB0aGF0IHRoaXMgY2xpZW50IGlzIHRoZSBv bmx5IG9uZQpAQCAtNzU3LDcgKzc1OSw3IEBAIHZvaWQgaTkxNV9nZW1fcmV0aXJlX3JlcXVlc3Rz KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogCWZvcl9lYWNoX2VuZ2luZShl bmdpbmUsIGRldl9wcml2KSB7CiAJCWk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0c19yaW5nKGVuZ2lu ZSk7Ci0JCWlmIChsaXN0X2VtcHR5KCZlbmdpbmUtPnJlcXVlc3RfbGlzdCkpCisJCWlmICghaW50 ZWxfZW5naW5lX2lzX2FjdGl2ZShlbmdpbmUpKQogCQkJZGV2X3ByaXYtPmd0LmFjdGl2ZV9lbmdp bmVzICY9IH5pbnRlbF9lbmdpbmVfZmxhZyhlbmdpbmUpOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fcmVxdWVzdC5oCmluZGV4IDAwNmYyMTJiN2ZkNi4uOGQxMjI1OTk5ZmFlIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oCkBAIC0yNyw2ICsyNywxNyBA QAogCiAjaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KIAorc3RydWN0IGludGVsX3dhaXQgeworCXN0 cnVjdCByYl9ub2RlIG5vZGU7CisJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOworCXUzMiBzZXFu bzsKK307CisKK3N0cnVjdCBpbnRlbF9zaWduYWxfbm9kZSB7CisJc3RydWN0IHJiX25vZGUgbm9k ZTsKKwlzdHJ1Y3QgaW50ZWxfd2FpdCB3YWl0OworfTsKKwogLyoqCiAgKiBSZXF1ZXN0IHF1ZXVl IHN0cnVjdHVyZS4KICAqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dw dV9lcnJvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwppbmRleCBj ZmFlMmZlMWUxNGYuLmMyY2Y1YmQ1N2RiNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9ncHVfZXJyb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9l cnJvci5jCkBAIC0xMDAzLDcgKzEwMDMsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X3JlY29yZF9yaW5n X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAllcmluZy0+aW5zdHBt ID0gSTkxNV9SRUFEKFJJTkdfSU5TVFBNKGVuZ2luZS0+bW1pb19iYXNlKSk7CiAJZXJpbmctPmFj dGhkID0gaW50ZWxfZW5naW5lX2dldF9hY3RpdmVfaGVhZChlbmdpbmUpOwogCWVyaW5nLT5zZXFu byA9IGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKTsKLQllcmluZy0+bGFzdF9zZXFubyA9 IGVuZ2luZS0+bGFzdF9zdWJtaXR0ZWRfc2Vxbm87CisJZXJpbmctPmxhc3Rfc2Vxbm8gPSBfX2Fj dGl2ZV9nZXRfc2Vxbm8oJmVuZ2luZS0+bGFzdF9yZXF1ZXN0KTsKIAllcmluZy0+c3RhcnQgPSBJ OTE1X1JFQURfU1RBUlQoZW5naW5lKTsKIAllcmluZy0+aGVhZCA9IEk5MTVfUkVBRF9IRUFEKGVu Z2luZSk7CiAJZXJpbmctPnRhaWwgPSBJOTE1X1JFQURfVEFJTChlbmdpbmUpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfaXJxLmMKaW5kZXggMWZmYzk5N2IxOWFmLi4zOTg3Yjc5ODRmZDggMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9pcnEuYwpAQCAtMjgwNSw4ICsyODA1LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9kaXNh YmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKIHN0 YXRpYyBib29sCiByaW5nX2lkbGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIg c2Vxbm8pCiB7Ci0JcmV0dXJuIGk5MTVfc2Vxbm9fcGFzc2VkKHNlcW5vLAotCQkJCSBSRUFEX09O Q0UoZW5naW5lLT5sYXN0X3N1Ym1pdHRlZF9zZXFubykpOworCXJldHVybiAhaW50ZWxfZW5naW5l X2lzX2FjdGl2ZShlbmdpbmUpOwogfQogCiBzdGF0aWMgYm9vbApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYwppbmRleCA2Y2RjNDIxZmRjMzcuLjRiZjYzYWYyYTI4MiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMKQEAgLTE3ODcsNyArMTc4Nyw2IEBAIGxvZ2ljYWxfcmluZ19zZXR1cChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBlbnVtIGludGVsX2VuZ2luZV9pZCBpZCkKIAogCWVuZ2luZS0+Zndf ZG9tYWlucyA9IGZ3X2RvbWFpbnM7CiAKLQlJTklUX0xJU1RfSEVBRCgmZW5naW5lLT5yZXF1ZXN0 X2xpc3QpOwogCUlOSVRfTElTVF9IRUFEKCZlbmdpbmUtPmJ1ZmZlcnMpOwogCUlOSVRfTElTVF9I RUFEKCZlbmdpbmUtPmV4ZWNsaXN0X3F1ZXVlKTsKIAlzcGluX2xvY2tfaW5pdCgmZW5naW5lLT5l eGVjbGlzdF9sb2NrKTsKQEAgLTE3OTksNiArMTc5OCw3IEBAIGxvZ2ljYWxfcmluZ19zZXR1cChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIGludGVsX2VuZ2luZV9pZCBpZCkKIAlsb2dpY2Fs X3JpbmdfZGVmYXVsdF92ZnVuY3MoZW5naW5lKTsKIAlsb2dpY2FsX3JpbmdfZGVmYXVsdF9pcnFz KGVuZ2luZSwgaW5mby0+aXJxX3NoaWZ0KTsKIAorCWludGVsX2VuZ2luZV9pbml0X3JlcXVlc3Rz KGVuZ2luZSk7CiAJaW50ZWxfZW5naW5lX2luaXRfaGFuZ2NoZWNrKGVuZ2luZSk7CiAJaTkxNV9n ZW1fYmF0Y2hfcG9vbF9pbml0KGVuZ2luZSwgJmVuZ2luZS0+YmF0Y2hfcG9vbCk7CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jCmluZGV4IGMxNDFkM2UxNWVlZC4uNDViZjgzMGE5YjEwIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMKQEAgLTYzMzUsNyArNjMzNSw3IEBAIGJvb2wgaTkxNV9ncHVfYnVz eSh2b2lkKQogCWRldl9wcml2ID0gaTkxNV9tY2hfZGV2OwogCiAJZm9yX2VhY2hfZW5naW5lKGVu Z2luZSwgZGV2X3ByaXYpCi0JCXJldCB8PSAhbGlzdF9lbXB0eSgmZW5naW5lLT5yZXF1ZXN0X2xp c3QpOworCQlyZXQgfD0gaW50ZWxfZW5naW5lX2lzX2FjdGl2ZShlbmdpbmUpOwogCiBvdXRfdW5s b2NrOgogCXNwaW5fdW5sb2NrX2lycSgmbWNoZGV2X2xvY2spOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IGY4NjAzOTQ1NWM1YS4uZjE3MmFjNmEwNmRjIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCkBAIC0yMDU4LDEzICsyMDU4LDEz IEBAIHN0YXRpYyBpbnQgaW50ZWxfaW5pdF9lbmdpbmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IAogCWVuZ2luZS0+aTkxNSA9IGRldl9wcml2OwogCWVuZ2luZS0+ZmVuY2VfY29udGV4dCA9IGZl bmNlX2NvbnRleHRfYWxsb2MoMSk7Ci0JSU5JVF9MSVNUX0hFQUQoJmVuZ2luZS0+cmVxdWVzdF9s aXN0KTsKIAlJTklUX0xJU1RfSEVBRCgmZW5naW5lLT5leGVjbGlzdF9xdWV1ZSk7CiAJSU5JVF9M SVNUX0hFQUQoJmVuZ2luZS0+YnVmZmVycyk7CiAJaTkxNV9nZW1fYmF0Y2hfcG9vbF9pbml0KGVu Z2luZSwgJmVuZ2luZS0+YmF0Y2hfcG9vbCk7CiAJbWVtc2V0KGVuZ2luZS0+c2VtYXBob3JlLnN5 bmNfc2Vxbm8sIDAsCiAJICAgICAgIHNpemVvZihlbmdpbmUtPnNlbWFwaG9yZS5zeW5jX3NlcW5v KSk7CiAKKwlpbnRlbF9lbmdpbmVfaW5pdF9yZXF1ZXN0cyhlbmdpbmUpOwogCWludGVsX2VuZ2lu ZV9pbml0X2JyZWFkY3J1bWJzKGVuZ2luZSk7CiAKIAkvKiBXZSBtYXkgbmVlZCB0byBkbyB0aGlu Z3Mgd2l0aCB0aGUgc2hyaW5rZXIgd2hpY2gKQEAgLTIxNTIsMjIgKzIxNTIsMjQgQEAgdm9pZCBp bnRlbF9lbmdpbmVfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJZW5n aW5lLT5pOTE1ID0gTlVMTDsKIH0KIAotaW50IGludGVsX2VuZ2luZV9pZGxlKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKK3N0YXRpYyB2b2lkCitpbnRlbF9lbmdpbmVfcmV0aXJlKHN0 cnVjdCBpOTE1X2dlbV9hY3RpdmUgKmFjdGl2ZSwKKwkJICAgIHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcnEpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7Ci0KLQkv KiBXYWl0IHVwb24gdGhlIGxhc3QgcmVxdWVzdCB0byBiZSBjb21wbGV0ZWQgKi8KLQlpZiAobGlz dF9lbXB0eSgmZW5naW5lLT5yZXF1ZXN0X2xpc3QpKQotCQlyZXR1cm4gMDsKK30KIAotCXJlcSA9 IGxpc3RfZW50cnkoZW5naW5lLT5yZXF1ZXN0X2xpc3QucHJldiwKLQkJCSBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QsCi0JCQkgbGluayk7Cit2b2lkIGludGVsX2VuZ2luZV9pbml0X3JlcXVl c3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sKKwlpbml0X3JlcXVlc3RfYWN0 aXZlKCZlbmdpbmUtPmxhc3RfcmVxdWVzdCwgaW50ZWxfZW5naW5lX3JldGlyZSk7CisJSU5JVF9M SVNUX0hFQUQoJmVuZ2luZS0+cmVxdWVzdF9saXN0KTsKK30KIAotCS8qIE1ha2Ugc3VyZSB3ZSBk byBub3QgdHJpZ2dlciBhbnkgcmV0aXJlcyAqLwotCXJldHVybiBfX2k5MTVfd2FpdF9yZXF1ZXN0 KHJlcSwKLQkJCQkgICByZXEtPmk5MTUtPm1tLmludGVycnVwdGlibGUsCi0JCQkJICAgTlVMTCwg TlVMTCk7CitpbnQgaW50ZWxfZW5naW5lX2lkbGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQoreworCS8qIFdhaXQgdXBvbiB0aGUgbGFzdCByZXF1ZXN0IHRvIGJlIGNvbXBsZXRlZCAq LworCXJldHVybiBpOTE1X2dlbV9hY3RpdmVfd2FpdF91bmxvY2tlZCgmZW5naW5lLT5sYXN0X3Jl cXVlc3QsCisJCQkJCSAgICAgZW5naW5lLT5pOTE1LT5tbS5pbnRlcnJ1cHRpYmxlLAorCQkJCQkg ICAgIE5VTEwsIE5VTEwpOwogfQogCiBpbnQgaW50ZWxfcmluZ19hbGxvY19yZXF1ZXN0X2V4dHJh cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmgKaW5kZXggMDk3NmUxNTVlZGMwLi5kMTlmYjhjMjQ5MTkgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKQEAgLTMsNiArMyw3IEBACiAK ICNpbmNsdWRlIDxsaW51eC9oYXNodGFibGUuaD4KICNpbmNsdWRlICJpOTE1X2dlbV9iYXRjaF9w b29sLmgiCisjaW5jbHVkZSAiaTkxNV9nZW1fcmVxdWVzdC5oIgogCiAjZGVmaW5lIEk5MTVfQ01E X0hBU0hfT1JERVIgOQogCkBAIC0zMTAsNiArMzExLDE0IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgewogCSAqIGluc3BlY3RpbmcgcmVxdWVzdCBsaXN0LgogCSAqLwogCXUzMiBsYXN0X3N1Ym1p dHRlZF9zZXFubzsKKworCS8qIEFuIFJDVSBndWFyZGVkIHBvaW50ZXIgdG8gdGhlIGxhc3QgcmVx dWVzdC4gTm8gcmVmZXJlbmNlIGlzCisJICogaGVsZCB0byB0aGUgcmVxdWVzdCwgdXNlcnMgbXVz dCBjYXJlZnVsbHkgYWNxdWlyZSBhIHJlZmVyZW5jZSB0bworCSAqIHRoZSByZXF1ZXN0IHVzaW5n IGk5MTVfZ2VtX2FjdGl2ZV9nZXRfcmVxdWVzdF9yY3UoKSwgb3IgaG9sZCB0aGUKKwkgKiBzdHJ1 Y3RfbXV0ZXguCisJICovCisJc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSBsYXN0X3JlcXVlc3Q7CisK IAl1bnNpZ25lZCB1c2VyX2ludGVycnVwdHM7CiAKIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAq bGFzdF9jb250ZXh0OwpAQCAtNDU1LDYgKzQ2NCw3IEBAIHZvaWQgaW50ZWxfcmluZ191cGRhdGVf c3BhY2Uoc3RydWN0IGludGVsX3JpbmcgKnJpbmcpOwogCiBpbnQgX19tdXN0X2NoZWNrIGludGVs X2VuZ2luZV9pZGxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiB2b2lkIGludGVs X2VuZ2luZV9pbml0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMyIHNl cW5vKTsKK3ZvaWQgaW50ZWxfZW5naW5lX2luaXRfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKTsKIAogaW50IGludGVsX2luaXRfcGlwZV9jb250cm9sKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IHNpemUpOwogdm9pZCBpbnRlbF9maW5pX3BpcGVfY29u dHJvbChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwpAQCAtNDkzLDE3ICs1MDMsNiBA QCBzdGF0aWMgaW5saW5lIHUzMiBpbnRlbF9od3Nfc2Vxbm9fYWRkcmVzcyhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCiB9CiAKIC8qIGludGVsX2JyZWFkY3J1bWJzLmMgLS0gdXNlciBp bnRlcnJ1cHQgYm90dG9tLWhhbGYgZm9yIHdhaXRlcnMgKi8KLXN0cnVjdCBpbnRlbF93YWl0IHsK LQlzdHJ1Y3QgcmJfbm9kZSBub2RlOwotCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKLQl1MzIg c2Vxbm87Ci19OwotCi1zdHJ1Y3QgaW50ZWxfc2lnbmFsX25vZGUgewotCXN0cnVjdCByYl9ub2Rl IG5vZGU7Ci0Jc3RydWN0IGludGVsX3dhaXQgd2FpdDsKLX07Ci0KIHZvaWQgaW50ZWxfZW5naW5l X2luaXRfYnJlYWRjcnVtYnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIHN0YXRp YyBpbmxpbmUgdm9pZCBpbnRlbF93YWl0X2luaXQoc3RydWN0IGludGVsX3dhaXQgKndhaXQsIHUz MiBzZXFubykKIHsKQEAgLTU0MCw0ICs1MzksOSBAQCB2b2lkIGludGVsX2VuZ2luZV9maW5pX2Jy ZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiB1bnNpZ25lZCBpbnRl bF9raWNrX3dhaXRlcnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwogdW5zaWduZWQg aW50ZWxfa2lja19zaWduYWxlcnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwogCitz dGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfZW5naW5lX2lzX2FjdGl2ZShzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCit7CisJcmV0dXJuIF9faTkxNV9nZW1fYWN0aXZlX2lzX2J1c3koJmVu Z2luZS0+bGFzdF9yZXF1ZXN0KTsKK30KKwogI2VuZGlmIC8qIF9JTlRFTF9SSU5HQlVGRkVSX0hf ICovCi0tIAoyLjguMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==