From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v5 07/10] drm/i915: add support for checking if we hold an RPM reference Date: Wed, 16 Dec 2015 02:52:19 +0200 Message-ID: <1450227139-13471-1-git-send-email-imre.deak@intel.com> References: <1450203038-5150-8-git-send-email-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id D9FC06E80C for ; Tue, 15 Dec 2015 16:52:21 -0800 (PST) In-Reply-To: <1450203038-5150-8-git-send-email-imre.deak@intel.com> 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 QXRtLCB3ZSBhc3NlcnQgdGhhdCB0aGUgZGV2aWNlIGlzIG5vdCBzdXNwZW5kZWQgdW50aWwgdGhl IHBvaW50IHdoZW4gdGhlCmRldmljZSBpcyB0cnVseSBwdXQgdG8gYSBzdXNwZW5kZWQgc3RhdGUu IFRoaXMgaXMgZmluZSwgYnV0IHdlIGNhbiBjYXRjaAptb3JlIHByb2JsZW1zIGlmIHdlIGNoZWNr IHRoYXQgUlBNIHJlZmNvdW50IGlzIG5vbi16ZXJvLiBBZnRlciB0aGF0IG9uZQpkcm9wcyB0byB6 ZXJvIHdlIHNob3VsZG4ndCBhY2Nlc3MgdGhlIGRldmljZSBhbnkgbW9yZSwgZXZlbiBpZiB0aGUg YWN0dWFsCmRldmljZSBzdXNwZW5kIG1heSBiZSBkZWxheWVkLiBDaGFuZ2UgYXNzZXJ0X3JwbV93 YWtlbG9ja19oZWxkKCkKYWNjb3JkaW5nbHkgdG8gY2hlY2sgZm9yIGEgbm9uLXplcm8gUlBNIHJl ZmNvdW50IGluIGFkZGl0aW9uIHRvIHRoZQpjdXJyZW50IGRldmljZS1ub3Qtc3VzcGVuZGVkIGNo ZWNrLgoKRm9yIHRoZSBuZXcgYXNzZXJ0cyB0byB3b3JrIHdlIG5lZWQgdG8gYW5ub3RhdGUgZXZl cnkgcGxhY2UgZXhwbGljaXRseSBpbgp0aGUgY29kZSB3aGVyZSB3ZSBleHBlY3QgdGhhdCB0aGUg ZGV2aWNlIGlzIHBvd2VyZWQuIFRoZSBwbGFjZXMgd2hlcmUgd2UKb25seSBhc3N1bWUgdGhpcywg YnV0IG1heSBub3QgaG9sZCBhbiBSUE0gcmVmZXJlbmNlOgotIGRyaXZlciBsb2FkCiAgV2UgYXNz dW1lIHRoZSBkZXZpY2UgdG8gYmUgcG93ZXJlZCB1bnRpbCB3ZSBlbmFibGUgUlBNLiBNYWtlIHRo aXMKICBleHBsaWNpdCBieSB0YWtpbmcgYW4gUlBNIHJlZmVyZW5jZSBhcm91bmQgdGhlIGxvYWQg ZnVuY3Rpb24uCi0gc3lzdGVtIGFuZCBydW50aW1lIHN1ZHBlbmQvcmVzdW1lIGhhbmRsZXJzCiAg VGhlc2UgaGFuZGxlcnMgYXJlIGNhbGxlZCB3aGVuIHRoZSBSUE0gcmVmZXJlbmNlIGJlY29tZXMg MCBhbmQga25vdyB0aGUKICBleGFjdCBwb2ludCBhZnRlciB3aGljaCB0aGUgZGV2aWNlIGNhbiBn ZXQgcG93ZXJlZCBvZmYuIERpc2FibGUgdGhlCiAgUlBNLXJlZmVyZW5jZS1oZWxkIGNoZWNrIGZv ciB0aGVpciBkdXJhdGlvbi4KLSB0aGUgSVJRLCBoYW5nY2hlY2sgYW5kIFJQUyB3b3JrIGhhbmRs ZXJzCiAgVGhlc2UgaGFuZGxlcnMgYXJlIGZsdXNoZWQgaW4gdGhlIHN5c3RlbS9ydW50aW1lIHN1 c3BlbmQgaGFuZGxlcgogIGJlZm9yZSB0aGUgZGV2aWNlIGlzIHBvd2VyZWQgb2ZmLCBzbyBpdCdz IGd1YXJhbnRlZWQgdGhhdCB0aGV5IHdvbid0CiAgcnVuIHdoaWxlIHRoZSBkZXZpY2UgaXMgcG93 ZXJlZCBvZmYgZXZlbiB0aG91Z2ggdGhleSBkb24ndCBob2xkIGFueQogIFJQTSByZWZlcmVuY2Uu IERpc2FibGUgdGhlIFJQTS1yZWZlcmVuY2UtaGVsZCBjaGVjayBmb3IgdGhlaXIgZHVyYXRpb24u CgpJbiBhbGwgdGhlc2UgY2FzZXMgd2Ugc3RpbGwgY2hlY2sgdGhhdCB0aGUgZGV2aWNlIGlzIG5v dCBzdXNwZW5kZWQuClRoZXNlIGV4cGxpY2l0IGFubm90YXRpb25zIGFsc28gaGF2ZSB0aGUgcG9z aXRpdmUgc2lkZSBlZmZlY3Qgb2YKZG9jdW1lbnRpbmcgb3VyIGFzc3VtcHRpb25zIGJldHRlci4K ClRoaXMgY2F1Z2h0IGFkZGl0aW9uYWwgV0FSTnMgZnJvbSB0aGUgYXRvbWljIG1vZGVzZXQgcGF0 aCwgdGhvc2Ugc2hvdWxkCmJlIGZpeGVkIHNlcGFyYXRlbHkuCgp2MjoKLSByZW1vdmUgdGhlIHJl ZHVuZGFudCBIQVNfUlVOVElNRV9QTSBjaGVjayAobW92ZWQgdG8gcGF0Y2ggMSkgKFZpbGxlKQp2 MzoKLSB1c2UgYSBuZXcgZGVkaWNhdGVkIFJQTSB3YWtlbG9jayByZWZjb3VudCB0byBhbHNvIGNh dGNoIGNhc2VzIHdoZXJlCiAgb3VyIG93biBSUE0gZ2V0L3B1dCBmdW5jdGlvbnMgd2VyZSBub3Qg Y2FsbGVkIChDaHJpcykKLSBhc3NlcnQgYWxzbyB0aGF0IHRoZSBuZXcgUlBNIHdha2Vsb2NrIHJl ZmNvdW50IGlzIDAgaW4gdGhlIFJQTQogIHN1c3BlbmQgaGFuZGxlciAoQ2hyaXMpCi0gY2hhbmdl IHRoZSBhc3NlcnQgZXJyb3IgbWVzc2FnZSB0byBiZSBtb3JlIG1lYW5pbmdmdWwgKENocmlzKQot IHByZXZlbnQgZmFsc2UgYXNzZXJ0IGVycm9ycyBhbmQgY2hlY2sgdGhhdCB0aGUgUlBNIHdha2Vs b2NrIGlzIDAgaW4KICB0aGUgUlBNIHJlc3VtZSBoYW5kbGVyIHRvbwotIHByZXZlbnQgZmFsc2Ug YXNzZXJ0IGVycm9ycyBpbiB0aGUgaGFuZ2NoZWNrIHdvcmsgdG9vCi0gYWRkIGEgZGV2aWNlIG5v dCBzdXNwZW5kZWQgYXNzZXJ0IGNoZWNrIHRvIHRoZSBoYW5nY2hlY2sgd29yawp2NDoKLSByZW5h bWUgZGlzYWJsZS9lbmFibGVfcnBtX2Fzc2VydHMgdG8gZGlzYWJsZS9lbmFibGVfcnBtX3dha2Vy ZWZfYXNzZXJ0cwogIGFuZCB3YWtlbG9ja19jb3VudCB0byB3YWtlcmVmX2NvdW50Ci0gZGlzYWJs ZSB0aGUgd2FrZXJlZiBhc3NlcnRzIGluIHRoZSBJUlEgaGFuZGxlcnMgYW5kIFJQUyB3b3JrIHRv bwotIHVwZGF0ZS9jbGFyaWZ5IGNvbW1pdCBtZXNzYWdlCnY1OgotIG1hcmsgcGxhY2VzIHdlIHBs YW4gdG8gY2hhbmdlIHRvIHVzZSBwcm9wZXIgUlBNIHJlZmNvdW50aW5nIHdpdGgKICBzZXBhcmF0 ZSBESVNBQkxFL0VOQUJMRV9SUE1fV0FLRVJFRl9BU1NFUlRTIGFsaWFzZXMgKENocmlzKQoKU2ln bmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTog Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ICh2MykKLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jICAgICAgICAgfCAgNyArKysKIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmMgICAgICAgICB8IDM5ICsrKysrKysrKysrKysrKy0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2lycS5jICAgICAgICAgfCA3NSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICB8IDQ5ICsrKysr KysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICAg IHwgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwgIDYgKysr CiA3IGZpbGVzIGNoYW5nZWQsIDE2OCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kbWEuYwppbmRleCA4NGUyYjIwLi4wNzdkNjRjIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZG1hLmMKQEAgLTg5Niw2ICs4OTYsOCBAQCBpbnQgaTkxNV9kcml2ZXJfbG9hZChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKQogCiAJaW50ZWxfcG1fc2V0 dXAoZGV2KTsKIAorCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKKwogCWludGVsX2Rp c3BsYXlfY3JjX2luaXQoZGV2KTsKIAogCWk5MTVfZHVtcF9kZXZpY2VfaW5mbyhkZXZfcHJpdik7 CkBAIC0xMDg1LDYgKzEwODcsOCBAQCBpbnQgaTkxNV9kcml2ZXJfbG9hZChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKQogCiAJaTkxNV9hdWRpb19jb21wb25lbnRf aW5pdChkZXZfcHJpdik7CiAKKwlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7CisKIAly ZXR1cm4gMDsKIAogb3V0X3Bvd2VyX3dlbGw6CkBAIC0xMTIwLDYgKzExMjQsOSBAQCBmcmVlX3By aXY6CiAJa21lbV9jYWNoZV9kZXN0cm95KGRldl9wcml2LT5yZXF1ZXN0cyk7CiAJa21lbV9jYWNo ZV9kZXN0cm95KGRldl9wcml2LT52bWFzKTsKIAlrbWVtX2NhY2hlX2Rlc3Ryb3koZGV2X3ByaXYt Pm9iamVjdHMpOworCisJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOworCiAJa2ZyZWUo ZGV2X3ByaXYpOwogCXJldHVybiByZXQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCA4 ZGRmY2NlLi42MTI2N2U3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAgLTU4MCw2ICs1ODAs OCBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK IAlkZXZfcHJpdi0+bW9kZXNldF9yZXN0b3JlID0gTU9ERVNFVF9TVVNQRU5ERUQ7CiAJbXV0ZXhf dW5sb2NrKCZkZXZfcHJpdi0+bW9kZXNldF9yZXN0b3JlX2xvY2spOwogCisJZGlzYWJsZV9ycG1f d2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsKKwogCS8qIFdlIGRvIGEgbG90IG9mIHBva2luZyBp biBhIGxvdCBvZiByZWdpc3RlcnMsIG1ha2Ugc3VyZSB0aGV5IHdvcmsKIAkgKiBwcm9wZXJseS4g Ki8KIAlpbnRlbF9kaXNwbGF5X3NldF9pbml0X3Bvd2VyKGRldl9wcml2LCB0cnVlKTsKQEAgLTU5 Miw3ICs1OTQsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3N1c3BlbmQoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIAlpZiAoZXJyb3IpIHsKIAkJZGV2X2VycigmZGV2LT5wZGV2LT5kZXYsCiAJCQki R0VNIGlkbGUgZmFpbGVkLCByZXN1bWUgbWlnaHQgZmFpbFxuIik7Ci0JCXJldHVybiBlcnJvcjsK KwkJZ290byBvdXQ7CiAJfQogCiAJaW50ZWxfZ3VjX3N1c3BlbmQoZGV2KTsKQEAgLTYzNSw3ICs2 MzcsMTAgQEAgc3RhdGljIGludCBpOTE1X2RybV9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAJaWYgKEhBU19DU1IoZGV2X3ByaXYpKQogCQlmbHVzaF93b3JrKCZkZXZfcHJpdi0+Y3Ny LndvcmspOwogCi0JcmV0dXJuIDA7CitvdXQ6CisJZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMo ZGV2X3ByaXYpOworCisJcmV0dXJuIGVycm9yOwogfQogCiBzdGF0aWMgaW50IGk5MTVfZHJtX3N1 c3BlbmRfbGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwgYm9vbCBoaWJlcm5hdGlvbikK QEAgLTY0NCw2ICs2NDksOCBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3N1c3BlbmRfbGF0ZShzdHJ1 Y3QgZHJtX2RldmljZSAqZHJtX2RldiwgYm9vbCBoaWJlcm5hdGlvbikKIAlib29sIGZ3X2NzcjsK IAlpbnQgcmV0OwogCisJZGlzYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsKKwog CWZ3X2NzciA9IHN1c3BlbmRfdG9faWRsZShkZXZfcHJpdikgJiYgZGV2X3ByaXYtPmNzci5kbWNf cGF5bG9hZDsKIAkvKgogCSAqIEluIGNhc2Ugb2YgZmlybXdhcmUgYXNzaXN0ZWQgY29udGV4dCBz YXZlL3Jlc3RvcmUgZG9uJ3QgbWFudWFsbHkKQEAgLTY2Miw3ICs2NjksNyBAQCBzdGF0aWMgaW50 IGk5MTVfZHJtX3N1c3BlbmRfbGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwgYm9vbCBo aWJlcm5hdGlvbikKIAkJaWYgKCFmd19jc3IpCiAJCQlpbnRlbF9wb3dlcl9kb21haW5zX2luaXRf aHcoZGV2X3ByaXYsIHRydWUpOwogCi0JCXJldHVybiByZXQ7CisJCWdvdG8gb3V0OwogCX0KIAog CXBjaV9kaXNhYmxlX2RldmljZShkcm1fZGV2LT5wZGV2KTsKQEAgLTY4Myw3ICs2OTAsMTAgQEAg c3RhdGljIGludCBpOTE1X2RybV9zdXNwZW5kX2xhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRybV9k ZXYsIGJvb2wgaGliZXJuYXRpb24pCiAKIAlkZXZfcHJpdi0+c3VzcGVuZGVkX3RvX2lkbGUgPSBz dXNwZW5kX3RvX2lkbGUoZGV2X3ByaXYpOwogCi0JcmV0dXJuIDA7CitvdXQ6CisJZW5hYmxlX3Jw bV93YWtlcmVmX2Fzc2VydHMoZGV2X3ByaXYpOworCisJcmV0dXJuIHJldDsKIH0KIAogaW50IGk5 MTVfc3VzcGVuZF9zd2l0Y2hlcm9vKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHBtX21lc3NhZ2Vf dCBzdGF0ZSkKQEAgLTcxNCw2ICs3MjQsOCBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3Jlc3VtZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAKKwlkaXNhYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMo ZGV2X3ByaXYpOworCiAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCWk5MTVfZ2Vt X3Jlc3RvcmVfZ3R0X21hcHBpbmdzKGRldik7CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9t dXRleCk7CkBAIC03NzgsNiArNzkwLDggQEAgc3RhdGljIGludCBpOTE1X2RybV9yZXN1bWUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAogCWRybV9rbXNfaGVscGVyX3BvbGxfZW5hYmxlKGRldik7 CiAKKwllbmFibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhkZXZfcHJpdik7CisKIAlyZXR1cm4gMDsK IH0KIApAQCAtODAyLDYgKzgxNiw4IEBAIHN0YXRpYyBpbnQgaTkxNV9kcm1fcmVzdW1lX2Vhcmx5 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlwY2lfc2V0X21hc3RlcihkZXYtPnBkZXYpOwog CisJZGlzYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsKKwogCWlmIChJU19WQUxM RVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKIAkJcmV0ID0gdmx2 X3Jlc3VtZV9wcmVwYXJlKGRldl9wcml2LCBmYWxzZSk7CiAJaWYgKHJldCkKQEAgLTgyMyw2ICs4 MzksOCBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3Jlc3VtZV9lYXJseShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogb3V0OgogCWRldl9wcml2LT5zdXNwZW5kZWRfdG9faWRsZSA9IGZhbHNlOwogCisJ ZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoZGV2X3ByaXYpOworCiAJcmV0dXJuIHJldDsKIH0K IApAQCAtMTQ1NSw2ICsxNDczLDkgQEAgc3RhdGljIGludCBpbnRlbF9ydW50aW1lX3N1c3BlbmQo c3RydWN0IGRldmljZSAqZGV2aWNlKQogCiAJCXJldHVybiAtRUFHQUlOOwogCX0KKworCWRpc2Fi bGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhkZXZfcHJpdik7CisKIAkvKgogCSAqIFdlIGFyZSBzYWZl IGhlcmUgYWdhaW5zdCByZS1mYXVsdHMsIHNpbmNlIHRoZSBmYXVsdCBoYW5kbGVyIHRha2VzCiAJ ICogYW4gUlBNIHJlZmVyZW5jZS4KQEAgLTE0NzQsMTAgKzE0OTUsMTUgQEAgc3RhdGljIGludCBp bnRlbF9ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2aWNlKQogCQlEUk1fRVJST1Io IlJ1bnRpbWUgc3VzcGVuZCBmYWlsZWQsIGRpc2FibGluZyBpdCAoJWQpXG4iLCByZXQpOwogCQlp bnRlbF9ydW50aW1lX3BtX2VuYWJsZV9pbnRlcnJ1cHRzKGRldl9wcml2KTsKIAorCQllbmFibGVf cnBtX3dha2VyZWZfYXNzZXJ0cyhkZXZfcHJpdik7CisKIAkJcmV0dXJuIHJldDsKIAl9CiAKIAlp bnRlbF91bmNvcmVfZm9yY2V3YWtlX3Jlc2V0KGRldiwgZmFsc2UpOworCisJZW5hYmxlX3JwbV93 YWtlcmVmX2Fzc2VydHMoZGV2X3ByaXYpOworCVdBUk5fT05fT05DRShhdG9taWNfcmVhZCgmZGV2 X3ByaXYtPnBtLndha2VyZWZfY291bnQpKTsKIAlkZXZfcHJpdi0+cG0uc3VzcGVuZGVkID0gdHJ1 ZTsKIAogCS8qCkBAIC0xNTIxLDYgKzE1NDcsOSBAQCBzdGF0aWMgaW50IGludGVsX3J1bnRpbWVf cmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldmljZSkKIAogCURSTV9ERUJVR19LTVMoIlJlc3VtaW5n IGRldmljZVxuIik7CiAKKwlXQVJOX09OX09OQ0UoYXRvbWljX3JlYWQoJmRldl9wcml2LT5wbS53 YWtlcmVmX2NvdW50KSk7CisJZGlzYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsK KwogCWludGVsX29wcmVnaW9uX25vdGlmeV9hZGFwdGVyKGRldiwgUENJX0QwKTsKIAlkZXZfcHJp di0+cG0uc3VzcGVuZGVkID0gZmFsc2U7CiAKQEAgLTE1NTUsNiArMTU4NCw4IEBAIHN0YXRpYyBp bnQgaW50ZWxfcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2aWNlKQogCiAJaW50ZWxf ZW5hYmxlX2d0X3Bvd2Vyc2F2ZShkZXYpOwogCisJZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMo ZGV2X3ByaXYpOworCiAJaWYgKHJldCkKIAkJRFJNX0VSUk9SKCJSdW50aW1lIHJlc3VtZSBmYWls ZWQsIGRpc2FibGluZyBpdCAoJWQpXG4iLCByZXQpOwogCWVsc2UKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCmluZGV4IDkxMjQwODUuLjI4OTQ3MTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAt MTYwMiw2ICsxNjAyLDcgQEAgc3RydWN0IHNrbF93bV9sZXZlbCB7CiAgKiBGb3IgbW9yZSwgcmVh ZCB0aGUgRG9jdW1lbnRhdGlvbi9wb3dlci9ydW50aW1lX3BtLnR4dC4KICAqLwogc3RydWN0IGk5 MTVfcnVudGltZV9wbSB7CisJYXRvbWljX3Qgd2FrZXJlZl9jb3VudDsKIAlib29sIHN1c3BlbmRl ZDsKIAlib29sIGlycXNfZW5hYmxlZDsKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCA4 NjY2NGQxLi4zZjhjNzUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2ly cS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTExMDMsNiArMTEw MywxNCBAQCBzdGF0aWMgdm9pZCBnZW42X3BtX3Jwc193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykKIAkJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwogCQlyZXR1cm47 CiAJfQorCisJLyoKKwkgKiBUaGUgUlBTIHdvcmsgaXMgc3luY2VkIGR1cmluZyBydW50aW1lIHN1 c3BlbmQsIHdlIGRvbid0IHJlcXVpcmUgYQorCSAqIHdha2VyZWYuIFRPRE86IGluc3RlYWQgb2Yg ZGlzYWJsaW5nIHRoZSBhc3NlcnRzIG1ha2Ugc3VyZSB0aGF0IHdlCisJICogYWx3YXlzIGhvbGQg YW4gUlBNIHJlZmVyZW5jZSB3aGlsZSB0aGUgd29yayBpcyBydW5uaW5nLgorCSAqLworCURJU0FC TEVfUlBNX1dBS0VSRUZfQVNTRVJUUyhkZXZfcHJpdik7CisKIAlwbV9paXIgPSBkZXZfcHJpdi0+ cnBzLnBtX2lpcjsKIAlkZXZfcHJpdi0+cnBzLnBtX2lpciA9IDA7CiAJLyogTWFrZSBzdXJlIG5v dCB0byBjb3JydXB0IFBNSU1SIHN0YXRlIHVzZWQgYnkgcmluZ2J1ZmZlciBvbiBHRU42ICovCkBA IC0xMTE1LDcgKzExMjMsNyBAQCBzdGF0aWMgdm9pZCBnZW42X3BtX3Jwc193b3JrKHN0cnVjdCB3 b3JrX3N0cnVjdCAqd29yaykKIAlXQVJOX09OKHBtX2lpciAmIH5kZXZfcHJpdi0+cG1fcnBzX2V2 ZW50cyk7CiAKIAlpZiAoKHBtX2lpciAmIGRldl9wcml2LT5wbV9ycHNfZXZlbnRzKSA9PSAwICYm ICFjbGllbnRfYm9vc3QpCi0JCXJldHVybjsKKwkJZ290byBvdXQ7CiAKIAltdXRleF9sb2NrKCZk ZXZfcHJpdi0+cnBzLmh3X2xvY2spOwogCkBAIC0xMTcwLDYgKzExNzgsOCBAQCBzdGF0aWMgdm9p ZCBnZW42X3BtX3Jwc193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlpbnRlbF9zZXRf cnBzKGRldl9wcml2LT5kZXYsIG5ld19kZWxheSk7CiAKIAltdXRleF91bmxvY2soJmRldl9wcml2 LT5ycHMuaHdfbG9jayk7CitvdXQ6CisJRU5BQkxFX1JQTV9XQUtFUkVGX0FTU0VSVFMoZGV2X3By aXYpOwogfQogCiAKQEAgLTE3NTgsNiArMTc2OCw5IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB2YWxs ZXl2aWV3X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIAlpZiAoIWludGVsX2lycXNf ZW5hYmxlZChkZXZfcHJpdikpCiAJCXJldHVybiBJUlFfTk9ORTsKIAorCS8qIElSUXMgYXJlIHN5 bmNlZCBkdXJpbmcgcnVudGltZV9zdXNwZW5kLCB3ZSBkb24ndCByZXF1aXJlIGEgd2FrZXJlZiAq LworCWRpc2FibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhkZXZfcHJpdik7CisKIAl3aGlsZSAodHJ1 ZSkgewogCQkvKiBGaW5kLCBjbGVhciwgdGhlbiBwcm9jZXNzIGVhY2ggc291cmNlIG9mIGludGVy cnVwdCAqLwogCkBAIC0xNzkyLDYgKzE4MDUsOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgdmFsbGV5 dmlld19pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAJfQogCiBvdXQ6CisJZW5hYmxl X3JwbV93YWtlcmVmX2Fzc2VydHMoZGV2X3ByaXYpOworCiAJcmV0dXJuIHJldDsKIH0KIApAQCAt MTgwNSw2ICsxODIwLDkgQEAgc3RhdGljIGlycXJldHVybl90IGNoZXJyeXZpZXdfaXJxX2hhbmRs ZXIoaW50IGlycSwgdm9pZCAqYXJnKQogCWlmICghaW50ZWxfaXJxc19lbmFibGVkKGRldl9wcml2 KSkKIAkJcmV0dXJuIElSUV9OT05FOwogCisJLyogSVJRcyBhcmUgc3luY2VkIGR1cmluZyBydW50 aW1lX3N1c3BlbmQsIHdlIGRvbid0IHJlcXVpcmUgYSB3YWtlcmVmICovCisJZGlzYWJsZV9ycG1f d2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsKKwogCWZvciAoOzspIHsKIAkJbWFzdGVyX2N0bCA9 IEk5MTVfUkVBRChHRU44X01BU1RFUl9JUlEpICYgfkdFTjhfTUFTVEVSX0lSUV9DT05UUk9MOwog CQlpaXIgPSBJOTE1X1JFQUQoVkxWX0lJUik7CkBAIC0xODM1LDYgKzE4NTMsOCBAQCBzdGF0aWMg aXJxcmV0dXJuX3QgY2hlcnJ5dmlld19pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAJ CVBPU1RJTkdfUkVBRChHRU44X01BU1RFUl9JUlEpOwogCX0KIAorCWVuYWJsZV9ycG1fd2FrZXJl Zl9hc3NlcnRzKGRldl9wcml2KTsKKwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTIxNjUsNiArMjE4 NSw5IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBpcm9ubGFrZV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2 b2lkICphcmcpCiAJaWYgKCFpbnRlbF9pcnFzX2VuYWJsZWQoZGV2X3ByaXYpKQogCQlyZXR1cm4g SVJRX05PTkU7CiAKKwkvKiBJUlFzIGFyZSBzeW5jZWQgZHVyaW5nIHJ1bnRpbWVfc3VzcGVuZCwg d2UgZG9uJ3QgcmVxdWlyZSBhIHdha2VyZWYgKi8KKwlkaXNhYmxlX3JwbV93YWtlcmVmX2Fzc2Vy dHMoZGV2X3ByaXYpOworCiAJLyogV2UgZ2V0IGludGVycnVwdHMgb24gdW5jbGFpbWVkIHJlZ2lz dGVycywgc28gY2hlY2sgZm9yIHRoaXMgYmVmb3JlIHdlCiAJICogZG8gYW55IEk5MTVfe1JFQUQs V1JJVEV9LiAqLwogCWludGVsX3VuY29yZV9jaGVja19lcnJvcnMoZGV2KTsKQEAgLTIyMjMsNiAr MjI0Niw5IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBpcm9ubGFrZV9pcnFfaGFuZGxlcihpbnQgaXJx LCB2b2lkICphcmcpCiAJCVBPU1RJTkdfUkVBRChTREVJRVIpOwogCX0KIAorCS8qIElSUXMgYXJl IHN5bmNlZCBkdXJpbmcgcnVudGltZV9zdXNwZW5kLCB3ZSBkb24ndCByZXF1aXJlIGEgd2FrZXJl ZiAqLworCWVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsKKwogCXJldHVybiBy ZXQ7CiB9CiAKQEAgLTIyNTUsNiArMjI4MSw5IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBnZW44X2ly cV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIAlpZiAoIWludGVsX2lycXNfZW5hYmxlZChk ZXZfcHJpdikpCiAJCXJldHVybiBJUlFfTk9ORTsKIAorCS8qIElSUXMgYXJlIHN5bmNlZCBkdXJp bmcgcnVudGltZV9zdXNwZW5kLCB3ZSBkb24ndCByZXF1aXJlIGEgd2FrZXJlZiAqLworCWRpc2Fi bGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhkZXZfcHJpdik7CisKIAlpZiAoSU5URUxfSU5GTyhkZXZf cHJpdiktPmdlbiA+PSA5KQogCQlhdXhfbWFzayB8PSAgR0VOOV9BVVhfQ0hBTk5FTF9CIHwgR0VO OV9BVVhfQ0hBTk5FTF9DIHwKIAkJCUdFTjlfQVVYX0NIQU5ORUxfRDsKQEAgLTIyNjIsNyArMjI5 MSw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBnZW44X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQg KmFyZykKIAltYXN0ZXJfY3RsID0gSTkxNV9SRUFEX0ZXKEdFTjhfTUFTVEVSX0lSUSk7CiAJbWFz dGVyX2N0bCAmPSB+R0VOOF9NQVNURVJfSVJRX0NPTlRST0w7CiAJaWYgKCFtYXN0ZXJfY3RsKQot CQlyZXR1cm4gSVJRX05PTkU7CisJCWdvdG8gb3V0OwogCiAJSTkxNV9XUklURV9GVyhHRU44X01B U1RFUl9JUlEsIDApOwogCkBAIC0yMzkzLDYgKzI0MjIsOSBAQCBzdGF0aWMgaXJxcmV0dXJuX3Qg Z2VuOF9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAJSTkxNV9XUklURV9GVyhHRU44 X01BU1RFUl9JUlEsIEdFTjhfTUFTVEVSX0lSUV9DT05UUk9MKTsKIAlQT1NUSU5HX1JFQURfRlco R0VOOF9NQVNURVJfSVJRKTsKIAorb3V0OgorCWVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRl dl9wcml2KTsKKwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTI5ODksNiArMzAyMSwxMyBAQCBzdGF0 aWMgdm9pZCBpOTE1X2hhbmdjaGVja19lbGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykK IAlpZiAoIWk5MTUuZW5hYmxlX2hhbmdjaGVjaykKIAkJcmV0dXJuOwogCisJLyoKKwkgKiBUaGUg aGFuZ2NoZWNrIHdvcmsgaXMgc3luY2VkIGR1cmluZyBydW50aW1lIHN1c3BlbmQsIHdlIGRvbid0 CisJICogcmVxdWlyZSBhIHdha2VyZWYuIFRPRE86IGluc3RlYWQgb2YgZGlzYWJsaW5nIHRoZSBh c3NlcnRzIG1ha2UKKwkgKiBzdXJlIHRoYXQgd2UgaG9sZCBhIHJlZmVyZW5jZSB3aGVuIHRoaXMg d29yayBpcyBydW5uaW5nLgorCSAqLworCURJU0FCTEVfUlBNX1dBS0VSRUZfQVNTRVJUUyhkZXZf cHJpdik7CisKIAlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBpKSB7CiAJCXU2NCBhY3Ro ZDsKIAkJdTMyIHNlcW5vOwpAQCAtMzA4MCwxMyArMzExOSwxOCBAQCBzdGF0aWMgdm9pZCBpOTE1 X2hhbmdjaGVja19lbGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkJfQogCX0KIAot CWlmIChyaW5nc19odW5nKQotCQlyZXR1cm4gaTkxNV9oYW5kbGVfZXJyb3IoZGV2LCB0cnVlLCAi UmluZyBodW5nIik7CisJaWYgKHJpbmdzX2h1bmcpIHsKKwkJaTkxNV9oYW5kbGVfZXJyb3IoZGV2 LCB0cnVlLCAiUmluZyBodW5nIik7CisJCWdvdG8gb3V0OworCX0KIAogCWlmIChidXN5X2NvdW50 KQogCQkvKiBSZXNldCB0aW1lciBjYXNlIGNoaXAgaGFuZ3Mgd2l0aG91dCBhbm90aGVyIHJlcXVl c3QKIAkJICogYmVpbmcgYWRkZWQgKi8KIAkJaTkxNV9xdWV1ZV9oYW5nY2hlY2soZGV2KTsKKwor b3V0OgorCUVOQUJMRV9SUE1fV0FLRVJFRl9BU1NFUlRTKGRldl9wcml2KTsKIH0KIAogdm9pZCBp OTE1X3F1ZXVlX2hhbmdjaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQpAQCAtMzg3OCwxMyAr MzkyMiwxOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaTh4eF9pcnFfaGFuZGxlcihpbnQgaXJxLCB2 b2lkICphcmcpCiAJdTE2IGZsaXBfbWFzayA9CiAJCUk5MTVfRElTUExBWV9QTEFORV9BX0ZMSVBf UEVORElOR19JTlRFUlJVUFQgfAogCQlJOTE1X0RJU1BMQVlfUExBTkVfQl9GTElQX1BFTkRJTkdf SU5URVJSVVBUOworCWlycXJldHVybl90IHJldDsKIAogCWlmICghaW50ZWxfaXJxc19lbmFibGVk KGRldl9wcml2KSkKIAkJcmV0dXJuIElSUV9OT05FOwogCisJLyogSVJRcyBhcmUgc3luY2VkIGR1 cmluZyBydW50aW1lX3N1c3BlbmQsIHdlIGRvbid0IHJlcXVpcmUgYSB3YWtlcmVmICovCisJZGlz YWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsKKworCXJldCA9IElSUV9OT05FOwog CWlpciA9IEk5MTVfUkVBRDE2KElJUik7CiAJaWYgKGlpciA9PSAwKQotCQlyZXR1cm4gSVJRX05P TkU7CisJCWdvdG8gb3V0OwogCiAJd2hpbGUgKGlpciAmIH5mbGlwX21hc2spIHsKIAkJLyogQ2Fu J3QgcmVseSBvbiBwaXBlc3RhdCBpbnRlcnJ1cHQgYml0IGluIGlpciBhcyBpdCBtaWdodApAQCAt MzkzMyw4ICszOTgyLDEyIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBpOHh4X2lycV9oYW5kbGVyKGlu dCBpcnEsIHZvaWQgKmFyZykKIAogCQlpaXIgPSBuZXdfaWlyOwogCX0KKwlyZXQgPSBJUlFfSEFO RExFRDsKIAotCXJldHVybiBJUlFfSEFORExFRDsKK291dDoKKwllbmFibGVfcnBtX3dha2VyZWZf YXNzZXJ0cyhkZXZfcHJpdik7CisKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgdm9pZCBpOHh4 X2lycV91bmluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCkBAIC00MDYzLDYgKzQxMTYs OSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaTkxNV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICph cmcpCiAJaWYgKCFpbnRlbF9pcnFzX2VuYWJsZWQoZGV2X3ByaXYpKQogCQlyZXR1cm4gSVJRX05P TkU7CiAKKwkvKiBJUlFzIGFyZSBzeW5jZWQgZHVyaW5nIHJ1bnRpbWVfc3VzcGVuZCwgd2UgZG9u J3QgcmVxdWlyZSBhIHdha2VyZWYgKi8KKwlkaXNhYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoZGV2 X3ByaXYpOworCiAJaWlyID0gSTkxNV9SRUFEKElJUik7CiAJZG8gewogCQlib29sIGlycV9yZWNl aXZlZCA9IChpaXIgJiB+ZmxpcF9tYXNrKSAhPSAwOwpAQCAtNDE0NSw2ICs0MjAxLDggQEAgc3Rh dGljIGlycXJldHVybl90IGk5MTVfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogCQlp aXIgPSBuZXdfaWlyOwogCX0gd2hpbGUgKGlpciAmIH5mbGlwX21hc2spOwogCisJZW5hYmxlX3Jw bV93YWtlcmVmX2Fzc2VydHMoZGV2X3ByaXYpOworCiAJcmV0dXJuIHJldDsKIH0KIApAQCAtNDI4 NCw2ICs0MzQyLDkgQEAgc3RhdGljIGlycXJldHVybl90IGk5NjVfaXJxX2hhbmRsZXIoaW50IGly cSwgdm9pZCAqYXJnKQogCWlmICghaW50ZWxfaXJxc19lbmFibGVkKGRldl9wcml2KSkKIAkJcmV0 dXJuIElSUV9OT05FOwogCisJLyogSVJRcyBhcmUgc3luY2VkIGR1cmluZyBydW50aW1lX3N1c3Bl bmQsIHdlIGRvbid0IHJlcXVpcmUgYSB3YWtlcmVmICovCisJZGlzYWJsZV9ycG1fd2FrZXJlZl9h c3NlcnRzKGRldl9wcml2KTsKKwogCWlpciA9IEk5MTVfUkVBRChJSVIpOwogCiAJZm9yICg7Oykg ewpAQCAtNDM2OSw2ICs0NDMwLDggQEAgc3RhdGljIGlycXJldHVybl90IGk5NjVfaXJxX2hhbmRs ZXIoaW50IGlycSwgdm9pZCAqYXJnKQogCQlpaXIgPSBuZXdfaWlyOwogCX0KIAorCWVuYWJsZV9y cG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsKKwogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggOTgzN2EyNS4uMmNlYTg4ZSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKQEAgLTE0NDIsOCArMTQ0Miw1NyBAQCBzdGF0aWMgaW5saW5lIHZvaWQKIGFz c2VydF9ycG1fd2FrZWxvY2tfaGVsZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiB7CiAJYXNzZXJ0X3JwbV9kZXZpY2Vfbm90X3N1c3BlbmRlZChkZXZfcHJpdik7CisJV0FSTl9P TkNFKCFhdG9taWNfcmVhZCgmZGV2X3ByaXYtPnBtLndha2VyZWZfY291bnQpLAorCQkgICJSUE0g d2FrZWxvY2sgcmVmIG5vdCBoZWxkIGR1cmluZyBIVyBhY2Nlc3MiKTsKIH0KIAorLyoqCisgKiBk aXNhYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMgLSBkaXNhYmxlIHRoZSBSUE0gYXNzZXJ0IGNoZWNr cworICogQGRldl9wcml2OiBpOTE1IGRldmljZSBpbnN0YW5jZQorICoKKyAqIFRoaXMgZnVuY3Rp b24gZGlzYWJsZSBhc3NlcnRzIHRoYXQgY2hlY2sgaWYgd2UgaG9sZCBhbiBSUE0gd2FrZWxvY2sK KyAqIHJlZmVyZW5jZSwgd2hpbGUga2VlcGluZyB0aGUgZGV2aWNlLW5vdC1zdXNwZW5kZWQgY2hl Y2tzIHN0aWxsIGVuYWJsZWQuCisgKiBJdCdzIG1lYW50IHRvIGJlIHVzZWQgb25seSBpbiBzcGVj aWFsIGNpcmN1bXN0YW5jZXMgd2hlcmUgb3VyIHJ1bGUgYWJvdXQKKyAqIHRoZSB3YWtlbG9jayBy ZWZjb3VudCB3cnQuIHRoZSBkZXZpY2UgcG93ZXIgc3RhdGUgZG9lc24ndCBob2xkLiBBY2NvcmRp bmcKKyAqIHRvIHRoaXMgcnVsZSBhdCBhbnkgcG9pbnQgd2hlcmUgd2UgYWNjZXNzIHRoZSBIVyBv ciB3YW50IHRvIGtlZXAgdGhlIEhXIGluCisgKiBhbiBhY3RpdmUgc3RhdGUgd2UgbXVzdCBob2xk IGFuIFJQTSB3YWtlbG9jayByZWZlcmVuY2UgYWNxdWlyZWQgdmlhIG9uZSBvZgorICogdGhlIGlu dGVsX3J1bnRpbWVfcG1fZ2V0KCkgaGVscGVycy4gQ3VycmVudGx5IHRoZXJlIGFyZSBhIGZldyBz cGVjaWFsIHNwb3RzCisgKiB3aGVyZSB0aGlzIHJ1bGUgZG9lc24ndCBob2xkOiB0aGUgSVJRIGFu ZCBzdXNwZW5kL3Jlc3VtZSBoYW5kbGVycywgdGhlCisgKiBmb3JjZXdha2UgcmVsZWFzZSB0aW1l ciwgYW5kIHRoZSBHUFUgUlBTIGFuZCBoYW5nY2hlY2sgd29ya3MuIEFsbCBvdGhlcgorICogdXNl cnMgc2hvdWxkIGF2b2lkIHVzaW5nIHRoaXMgZnVuY3Rpb24uCisgKgorICogQW55IGNhbGxzIHRv IHRoaXMgZnVuY3Rpb24gbXVzdCBoYXZlIGEgc3ltbWV0cmljIGNhbGwgdG8KKyAqIGVuYWJsZV9y cG1fd2FrZXJlZl9hc3NlcnRzKCkuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBkaXNhYmxlX3Jw bV93YWtlcmVmX2Fzc2VydHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorewor CWF0b21pY19pbmMoJmRldl9wcml2LT5wbS53YWtlcmVmX2NvdW50KTsKK30KKworLyoqCisgKiBl bmFibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyAtIHJlLWVuYWJsZSB0aGUgUlBNIGFzc2VydCBjaGVj a3MKKyAqIEBkZXZfcHJpdjogaTkxNSBkZXZpY2UgaW5zdGFuY2UKKyAqCisgKiBUaGlzIGZ1bmN0 aW9uIHJlLWVuYWJsZXMgdGhlIFJQTSBhc3NlcnQgY2hlY2tzIGFmdGVyIGRpc2FibGluZyB0aGVt IHdpdGgKKyAqIGRpc2FibGVfcnBtX3dha2VyZWZfYXNzZXJ0cy4gSXQncyBtZWFudCB0byBiZSB1 c2VkIG9ubHkgaW4gc3BlY2lhbAorICogY2lyY3Vtc3RhbmNlcyBvdGhlcndpc2UgaXRzIHVzZSBz aG91bGQgYmUgYXZvaWRlZC4KKyAqCisgKiBBbnkgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiBtdXN0 IGhhdmUgYSBzeW1tZXRyaWMgY2FsbCB0bworICogZGlzYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRz KCkuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBlbmFibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJYXRvbWljX2RlYygmZGV2X3By aXYtPnBtLndha2VyZWZfY291bnQpOworfQorCisvKiBUT0RPOiBjb252ZXJ0IHVzZXJzIG9mIHRo ZXNlIHRvIHJlbHkgaW5zdGVhZCBvbiBwcm9wZXIgUlBNIHJlZmNvdW50aW5nICovCisjZGVmaW5l IERJU0FCTEVfUlBNX1dBS0VSRUZfQVNTRVJUUyhkZXZfcHJpdikJXAorCWRpc2FibGVfcnBtX3dh a2VyZWZfYXNzZXJ0cyhkZXZfcHJpdikKKworI2RlZmluZSBFTkFCTEVfUlBNX1dBS0VSRUZfQVNT RVJUUyhkZXZfcHJpdikJXAorCWVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KQor CisKIHZvaWQgaW50ZWxfcnVudGltZV9wbV9nZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KTsKIHZvaWQgaW50ZWxfcnVudGltZV9wbV9nZXRfbm9yZXN1bWUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxfcnVudGltZV9wbV9wdXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4 IGY5M2M0YjkuLjZjMDg1MzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtNzI0Nyw0ICs3 MjQ3LDUgQEAgdm9pZCBpbnRlbF9wbV9zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCUlO SVRfTElTVF9IRUFEKCZkZXZfcHJpdi0+cnBzLm1taW9mbGlwcy5saW5rKTsKIAogCWRldl9wcml2 LT5wbS5zdXNwZW5kZWQgPSBmYWxzZTsKKwlhdG9taWNfc2V0KCZkZXZfcHJpdi0+cG0ud2FrZXJl Zl9jb3VudCwgMCk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y dW50aW1lX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKaW5k ZXggNjAzZDQxMC4uMjkxNTdmYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcnVudGltZV9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVf cG0uYwpAQCAtMjIzNiw2ICsyMjM2LDggQEAgdm9pZCBpbnRlbF9ydW50aW1lX3BtX2dldChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJc3RydWN0IGRldmljZSAqZGV2aWNlID0g JmRldi0+cGRldi0+ZGV2OwogCiAJcG1fcnVudGltZV9nZXRfc3luYyhkZXZpY2UpOworCisJYXRv bWljX2luYygmZGV2X3ByaXYtPnBtLndha2VyZWZfY291bnQpOwogCWFzc2VydF9ycG1fd2FrZWxv Y2tfaGVsZChkZXZfcHJpdik7CiB9CiAKQEAgLTIyNjMsNiArMjI2NSw4IEBAIHZvaWQgaW50ZWxf cnVudGltZV9wbV9nZXRfbm9yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogCiAJYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKGRldl9wcml2KTsKIAlwbV9ydW50aW1lX2dl dF9ub3Jlc3VtZShkZXZpY2UpOworCisJYXRvbWljX2luYygmZGV2X3ByaXYtPnBtLndha2VyZWZf Y291bnQpOwogfQogCiAvKioKQEAgLTIyNzgsNiArMjI4Miw4IEBAIHZvaWQgaW50ZWxfcnVudGlt ZV9wbV9wdXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2OwogCXN0cnVjdCBkZXZpY2UgKmRldmljZSA9ICZk ZXYtPnBkZXYtPmRldjsKIAorCWF0b21pY19kZWMoJmRldl9wcml2LT5wbS53YWtlcmVmX2NvdW50 KTsKKwogCXBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3koZGV2aWNlKTsKIAlwbV9ydW50aW1lX3B1 dF9hdXRvc3VzcGVuZChkZXZpY2UpOwogfQotLSAKMi41LjAKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==