From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 1/8] drm/i915: Keep contexts pinned until after the next kernel context switch Date: Wed, 12 Jun 2019 10:31:04 +0100 Message-ID: <20190612093111.11684-2-chris@chris-wilson.co.uk> References: <20190612093111.11684-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 53F6A89458 for ; Wed, 12 Jun 2019 09:31:21 +0000 (UTC) In-Reply-To: <20190612093111.11684-1-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 V2UgbmVlZCB0byBrZWVwIHRoZSBjb250ZXh0IGltYWdlIHBpbm5lZCBpbiBtZW1vcnkgdW50aWwg YWZ0ZXIgdGhlIEdQVQpoYXMgZmluaXNoZWQgd3JpdGluZyBpbnRvIGl0LiBTaW5jZSBpdCBjb250 aW51ZXMgdG8gd3JpdGUgYXMgd2Ugc2lnbmFsCnRoZSBmaW5hbCBicmVhZGNydW1iLCB3ZSBuZWVk IHRvIGtlZXAgaXQgcGlubmVkIHVudGlsIHRoZSByZXF1ZXN0IGFmdGVyCml0IGlzIGNvbXBsZXRl LiBDdXJyZW50bHkgd2Uga25vdyB0aGUgb3JkZXIgaW4gd2hpY2ggcmVxdWVzdHMgZXhlY3V0ZSBv bgplYWNoIGVuZ2luZSwgYW5kIHNvIHRvIHJlbW92ZSB0aGF0IHByZXN1bXB0aW9uIHdlIG5lZWQg dG8gaWRlbnRpZnkgYQpyZXF1ZXN0L2NvbnRleHQtc3dpdGNoIHdlIGtub3cgbXVzdCBvY2N1ciBh ZnRlciBvdXIgY29tcGxldGlvbi4gQW55CnJlcXVlc3QgcXVldWVkIGFmdGVyIHRoZSBzaWduYWwg bXVzdCBpbXBseSBhIGNvbnRleHQgc3dpdGNoLCBmb3IKc2ltcGxpY2l0eSB3ZSB1c2UgYSBmcmVz aCByZXF1ZXN0IGZyb20gdGhlIGtlcm5lbCBjb250ZXh0LgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMg V2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYyAgIHwgMjQgKystLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5oICAgfCAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fcG0uYyAgICAgICAgfCAyMCArKysrLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfY29udGV4dC5jICAgICAgIHwgODAgKysrKysrKysrKysrKysrKy0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5oICAgICAgIHwgIDMgKwogZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dF90eXBlcy5oIHwgIDYgKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZS5oICAgICAgICB8ICAyIC0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jICAgICB8IDIzICstLS0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3BtLmMgICAgIHwgIDIgKwogZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmggIHwgMTMgKy0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9scmMuYyAgICAgICAgICAgfCA2MiArKy0tLS0tLS0tLS0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmluZ2J1ZmZlci5jICAgIHwgNDQgKy0tLS0tLS0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvbW9ja19lbmdpbmUuYyAgICAgICAgIHwgMTEgKy0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5jICAgICAgICAgICAgfCA4MCArKysr KysrKysrKysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5oICAgICAg ICAgICAgfCAgNSArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmVfdHlwZXMuaCAg ICAgIHwgIDMgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgICAg IHwgIDQgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMgICAgICAgICAgIHwg MTUgLS0tLQogLi4uL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMgIHwg IDEgLQogMTkgZmlsZXMgY2hhbmdlZCwgMjE0IGluc2VydGlvbnMoKyksIDE4NSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4 dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYwppbmRleCBj ODZjYTlmMjE1MzIuLjYyMDAwNjBhZWYwNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v aTkxNV9nZW1fY29udGV4dC5jCkBAIC02OTIsMTcgKzY5Miw2IEBAIGludCBpOTE1X2dlbV9jb250 ZXh0c19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gMDsK IH0KIAotdm9pZCBpOTE1X2dlbV9jb250ZXh0c19sb3N0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKLXsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JZW51bSBp bnRlbF9lbmdpbmVfaWQgaWQ7Ci0KLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+ZHJt LnN0cnVjdF9tdXRleCk7Ci0KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQp Ci0JCWludGVsX2VuZ2luZV9sb3N0X2NvbnRleHQoZW5naW5lKTsKLX0KLQogdm9pZCBpOTE1X2dl bV9jb250ZXh0c19maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogCWxvY2tk ZXBfYXNzZXJ0X2hlbGQoJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwpAQCAtMTIwMywxMCArMTE5 Miw2IEBAIGdlbjhfbW9kaWZ5X3JwY3Moc3RydWN0IGludGVsX2NvbnRleHQgKmNlLCBzdHJ1Y3Qg aW50ZWxfc3NldSBzc2V1KQogCWlmIChyZXQpCiAJCWdvdG8gb3V0X2FkZDsKIAotCXJldCA9IGdl bjhfZW1pdF9ycGNzX2NvbmZpZyhycSwgY2UsIHNzZXUpOwotCWlmIChyZXQpCi0JCWdvdG8gb3V0 X2FkZDsKLQogCS8qCiAJICogR3VhcmFudGVlIGNvbnRleHQgaW1hZ2UgYW5kIHRoZSB0aW1lbGlu ZSByZW1haW5zIHBpbm5lZCB1bnRpbCB0aGUKIAkgKiBtb2RpZnlpbmcgcmVxdWVzdCBpcyByZXRp cmVkIGJ5IHNldHRpbmcgdGhlIGNlIGFjdGl2aXR5IHRyYWNrZXIuCkBAIC0xMjE0LDkgKzExOTks MTIgQEAgZ2VuOF9tb2RpZnlfcnBjcyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIHN0cnVjdCBp bnRlbF9zc2V1IHNzZXUpCiAJICogQnV0IHdlIG9ubHkgbmVlZCB0byB0YWtlIG9uZSBwaW4gb24g dGhlIGFjY291bnQgb2YgaXQuIE9yIGluIG90aGVyCiAJICogd29yZHMgdHJhbnNmZXIgdGhlIHBp bm5lZCBjZSBvYmplY3QgdG8gdHJhY2tlZCBhY3RpdmUgcmVxdWVzdC4KIAkgKi8KLQlpZiAoIWk5 MTVfYWN0aXZlX3JlcXVlc3RfaXNzZXQoJmNlLT5hY3RpdmVfdHJhY2tlcikpCi0JCV9faW50ZWxf Y29udGV4dF9waW4oY2UpOwotCV9faTkxNV9hY3RpdmVfcmVxdWVzdF9zZXQoJmNlLT5hY3RpdmVf dHJhY2tlciwgcnEpOworCUdFTV9CVUdfT04oaTkxNV9hY3RpdmVfaXNfaWRsZSgmY2UtPmFjdGl2 ZSkpOworCXJldCA9IGk5MTVfYWN0aXZlX3JlZigmY2UtPmFjdGl2ZSwgcnEtPmZlbmNlLmNvbnRl eHQsIHJxKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dF9hZGQ7CisKKwlyZXQgPSBnZW44X2VtaXRf cnBjc19jb25maWcocnEsIGNlLCBzc2V1KTsKIAogb3V0X2FkZDoKIAlpOTE1X3JlcXVlc3RfYWRk KHJxKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250 ZXh0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5oCmluZGV4 IDYzMDM5MmM3N2U0OC4uOTY5MWRkMDYyZjcyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9jb250ZXh0LmgKQEAgLTEzNCw3ICsxMzQsNiBAQCBzdGF0aWMgaW5saW5lIGJv b2wgaTkxNV9nZW1fY29udGV4dF9pc19rZXJuZWwoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0 eCkKIAogLyogaTkxNV9nZW1fY29udGV4dC5jICovCiBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2Vt X2NvbnRleHRzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLXZvaWQg aTkxNV9nZW1fY29udGV4dHNfbG9zdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Owogdm9pZCBpOTE1X2dlbV9jb250ZXh0c19maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7CiAKIGludCBpOTE1X2dlbV9jb250ZXh0X29wZW4oc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9n ZW1fcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9wbS5jCmluZGV4IGY0 MGYxM2MwYjhiNy4uNTliNmQ0NWIxOTM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9n ZW1fcG0uYwpAQCAtMTAsNiArMTAsMjIgQEAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1 ZGUgImk5MTVfZ2xvYmFscy5oIgogCitzdGF0aWMgdm9pZCBjYWxsX2lkbGVfYmFycmllcnMoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoreworCXN0cnVjdCBsbGlzdF9ub2RlICpub2Rl LCAqbmV4dDsKKworCWxsaXN0X2Zvcl9lYWNoX3NhZmUobm9kZSwgbmV4dCwgbGxpc3RfZGVsX2Fs bCgmZW5naW5lLT5iYXJyaWVyX3Rhc2tzKSkgeworCQlzdHJ1Y3QgaTkxNV9hY3RpdmVfcmVxdWVz dCAqYWN0aXZlID0KKwkJCWNvbnRhaW5lcl9vZigoc3RydWN0IGxpc3RfaGVhZCAqKW5vZGUsCisJ CQkJICAgICB0eXBlb2YoKmFjdGl2ZSksIGxpbmspOworCisJCUlOSVRfTElTVF9IRUFEKCZhY3Rp dmUtPmxpbmspOworCQlSQ1VfSU5JVF9QT0lOVEVSKGFjdGl2ZS0+cmVxdWVzdCwgTlVMTCk7CisK KwkJYWN0aXZlLT5yZXRpcmUoYWN0aXZlLCBOVUxMKTsKKwl9Cit9CisKIHN0YXRpYyB2b2lkIGk5 MTVfZ2VtX3Bhcmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CiAJc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lOwpAQCAtMTcsOCArMzMsMTAgQEAgc3RhdGljIHZvaWQgaTkx NV9nZW1fcGFyayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAogCWxvY2tkZXBfYXNz ZXJ0X2hlbGQoJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCi0JZm9yX2VhY2hfZW5naW5lKGVu Z2luZSwgaTkxNSwgaWQpCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKKwkJ Y2FsbF9pZGxlX2JhcnJpZXJzKGVuZ2luZSk7IC8qIGNsZWFudXAgYWZ0ZXIgd2VkZ2luZyAqLwog CQlpOTE1X2dlbV9iYXRjaF9wb29sX2ZpbmkoJmVuZ2luZS0+YmF0Y2hfcG9vbCk7CisJfQogCiAJ aTkxNV90aW1lbGluZXNfcGFyayhpOTE1KTsKIAlpOTE1X3ZtYV9wYXJrZWQoaTkxNSk7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmMKaW5kZXggYzc4ZWMwYjU4ZTc3Li5jMTBl YjQ5MDQyNjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRl eHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmMKQEAgLTYx LDcgKzYxLDYgQEAgaW50IF9faW50ZWxfY29udGV4dF9kb19waW4oc3RydWN0IGludGVsX2NvbnRl eHQgKmNlKQogCiAJCWk5MTVfZ2VtX2NvbnRleHRfZ2V0KGNlLT5nZW1fY29udGV4dCk7IC8qIGZv ciBjdHgtPnBwZ3R0ICovCiAKLQkJaW50ZWxfY29udGV4dF9nZXQoY2UpOwogCQlzbXBfbWJfX2Jl Zm9yZV9hdG9taWMoKTsgLyogZmx1c2ggcGluIGJlZm9yZSBpdCBpcyB2aXNpYmxlICovCiAJfQog CkBAIC04OSwyMCArODgsNDUgQEAgdm9pZCBpbnRlbF9jb250ZXh0X3VucGluKHN0cnVjdCBpbnRl bF9jb250ZXh0ICpjZSkKIAkJY2UtPm9wcy0+dW5waW4oY2UpOwogCiAJCWk5MTVfZ2VtX2NvbnRl eHRfcHV0KGNlLT5nZW1fY29udGV4dCk7Ci0JCWludGVsX2NvbnRleHRfcHV0KGNlKTsKKwkJaW50 ZWxfY29udGV4dF9pbmFjdGl2ZShjZSk7CiAJfQogCiAJbXV0ZXhfdW5sb2NrKCZjZS0+cGluX211 dGV4KTsKIAlpbnRlbF9jb250ZXh0X3B1dChjZSk7CiB9CiAKLXN0YXRpYyB2b2lkIGludGVsX2Nv bnRleHRfcmV0aXJlKHN0cnVjdCBpOTE1X2FjdGl2ZV9yZXF1ZXN0ICphY3RpdmUsCi0JCQkJIHN0 cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQorc3RhdGljIGludCBfX2NvbnRleHRfcGluX3N0YXRlKHN0 cnVjdCBpOTE1X3ZtYSAqdm1hLCB1bnNpZ25lZCBsb25nIGZsYWdzKQogewotCXN0cnVjdCBpbnRl bF9jb250ZXh0ICpjZSA9Ci0JCWNvbnRhaW5lcl9vZihhY3RpdmUsIHR5cGVvZigqY2UpLCBhY3Rp dmVfdHJhY2tlcik7CisJaW50IGVycjsKIAotCWludGVsX2NvbnRleHRfdW5waW4oY2UpOworCWVy ciA9IGk5MTVfdm1hX3Bpbih2bWEsIDAsIDAsIGZsYWdzIHwgUElOX0dMT0JBTCk7CisJaWYgKGVy cikKKwkJcmV0dXJuIGVycjsKKworCS8qCisJICogQW5kIG1hcmsgaXQgYXMgYSBnbG9iYWxseSBw aW5uZWQgb2JqZWN0IHRvIGxldCB0aGUgc2hyaW5rZXIga25vdworCSAqIGl0IGNhbm5vdCByZWNs YWltIHRoZSBvYmplY3QgdW50aWwgd2UgcmVsZWFzZSBpdC4KKwkgKi8KKwl2bWEtPm9iai0+cGlu X2dsb2JhbCsrOworCXZtYS0+b2JqLT5tbS5kaXJ0eSA9IHRydWU7CisKKwlyZXR1cm4gMDsKK30K Kworc3RhdGljIHZvaWQgX19jb250ZXh0X3VucGluX3N0YXRlKHN0cnVjdCBpOTE1X3ZtYSAqdm1h KQoreworCXZtYS0+b2JqLT5waW5fZ2xvYmFsLS07CisJX19pOTE1X3ZtYV91bnBpbih2bWEpOwor fQorCitzdGF0aWMgdm9pZCBpbnRlbF9jb250ZXh0X3JldGlyZShzdHJ1Y3QgaTkxNV9hY3RpdmUg KmFjdGl2ZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSBjb250YWluZXJfb2YoYWN0 aXZlLCB0eXBlb2YoKmNlKSwgYWN0aXZlKTsKKworCWlmIChjZS0+c3RhdGUpCisJCV9fY29udGV4 dF91bnBpbl9zdGF0ZShjZS0+c3RhdGUpOworCisJaW50ZWxfY29udGV4dF9wdXQoY2UpOwogfQog CiB2b2lkCkBAIC0xMjUsOCArMTQ5LDQ2IEBAIGludGVsX2NvbnRleHRfaW5pdChzdHJ1Y3QgaW50 ZWxfY29udGV4dCAqY2UsCiAKIAltdXRleF9pbml0KCZjZS0+cGluX211dGV4KTsKIAotCWk5MTVf YWN0aXZlX3JlcXVlc3RfaW5pdCgmY2UtPmFjdGl2ZV90cmFja2VyLAotCQkJCSBOVUxMLCBpbnRl bF9jb250ZXh0X3JldGlyZSk7CisJaTkxNV9hY3RpdmVfaW5pdChjdHgtPmk5MTUsICZjZS0+YWN0 aXZlLCBpbnRlbF9jb250ZXh0X3JldGlyZSk7Cit9CisKK2ludCBpbnRlbF9jb250ZXh0X2FjdGl2 ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCit7CisJaW50 IGVycjsKKworCWlmICghaTkxNV9hY3RpdmVfYWNxdWlyZSgmY2UtPmFjdGl2ZSkpCisJCXJldHVy biAwOworCisJaW50ZWxfY29udGV4dF9nZXQoY2UpOworCisJaWYgKCFjZS0+c3RhdGUpCisJCXJl dHVybiAwOworCisJZXJyID0gX19jb250ZXh0X3Bpbl9zdGF0ZShjZS0+c3RhdGUsIGZsYWdzKTsK KwlpZiAoZXJyKSB7CisJCWk5MTVfYWN0aXZlX2NhbmNlbCgmY2UtPmFjdGl2ZSk7CisJCWludGVs X2NvbnRleHRfcHV0KGNlKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKKwkvKiBQcmVhbGxvY2F0ZSB0 cmFja2luZyBub2RlcyAqLworCWlmICghaTkxNV9nZW1fY29udGV4dF9pc19rZXJuZWwoY2UtPmdl bV9jb250ZXh0KSkgeworCQllcnIgPSBpOTE1X2FjdGl2ZV9hY3F1aXJlX3ByZWFsbG9jYXRlX2Jh cnJpZXIoJmNlLT5hY3RpdmUsCisJCQkJCQkJICAgICAgY2UtPmVuZ2luZSk7CisJCWlmIChlcnIp IHsKKwkJCWk5MTVfYWN0aXZlX3JlbGVhc2UoJmNlLT5hY3RpdmUpOworCQkJcmV0dXJuIGVycjsK KwkJfQorCX0KKworCXJldHVybiAwOworfQorCit2b2lkIGludGVsX2NvbnRleHRfaW5hY3RpdmUo c3RydWN0IGludGVsX2NvbnRleHQgKmNlKQoreworCS8qIE5vZGVzIHByZWFsbG9jYXRlZCBpbiBp bnRlbF9jb250ZXh0X2FjdGl2ZSgpICovCisJaTkxNV9hY3RpdmVfYWNxdWlyZV9iYXJyaWVyKCZj ZS0+YWN0aXZlKTsKKwlpOTE1X2FjdGl2ZV9yZWxlYXNlKCZjZS0+YWN0aXZlKTsKIH0KIAogc3Rh dGljIHZvaWQgaTkxNV9nbG9iYWxfY29udGV4dF9zaHJpbmsodm9pZCkKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2NvbnRleHQuaAppbmRleCA2ZDU0NTNiYTJjMWUuLjRkZTRiYTJkZjdkNCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuaApAQCAtMTAyLDYgKzEwMiw5 IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9jb250ZXh0X2V4aXQoc3RydWN0IGludGVsX2Nv bnRleHQgKmNlKQogCQljZS0+b3BzLT5leGl0KGNlKTsKIH0KIAoraW50IGludGVsX2NvbnRleHRf YWN0aXZlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwgdW5zaWduZWQgbG9uZyBmbGFncyk7Cit2 b2lkIGludGVsX2NvbnRleHRfaW5hY3RpdmUoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKTsKKwog c3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqaW50ZWxfY29udGV4dF9nZXQoc3Ry dWN0IGludGVsX2NvbnRleHQgKmNlKQogewogCWtyZWZfZ2V0KCZjZS0+cmVmKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHRfdHlwZXMuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHRfdHlwZXMuaAppbmRleCA4MjVmY2YwYWM5 YzQuLmU5NWJlNGJlOTYxMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfY29udGV4dF90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2Nv bnRleHRfdHlwZXMuaApAQCAtNTYsMTAgKzU2LDEwIEBAIHN0cnVjdCBpbnRlbF9jb250ZXh0IHsK IAlpbnRlbF9lbmdpbmVfbWFza190IHNhdHVyYXRlZDsgLyogc3VibWl0dGluZyBzZW1hcGhvcmVz IHRvbyBsYXRlPyAqLwogCiAJLyoqCi0JICogYWN0aXZlX3RyYWNrZXI6IEFjdGl2ZSB0cmFja2Vy IGZvciB0aGUgZXh0ZXJuYWwgcnEgYWN0aXZpdHkKLQkgKiBvbiB0aGlzIGludGVsX2NvbnRleHQg b2JqZWN0LgorCSAqIGFjdGl2ZTogQWN0aXZlIHRyYWNrZXIgZm9yIHRoZSBycSBhY3Rpdml0eSAo aW5jLiBleHRlcm5hbCkgb24gdGhpcworCSAqIGludGVsX2NvbnRleHQgb2JqZWN0LgogCSAqLwot CXN0cnVjdCBpOTE1X2FjdGl2ZV9yZXF1ZXN0IGFjdGl2ZV90cmFja2VyOworCXN0cnVjdCBpOTE1 X2FjdGl2ZSBhY3RpdmU7CiAKIAljb25zdCBzdHJ1Y3QgaW50ZWxfY29udGV4dF9vcHMgKm9wczsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmUuaAppbmRleCAyMDFiYmQyYTRmYWYu LmI5ZmQ4OGYyMTYwOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf ZW5naW5lLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lLmgKQEAg LTQ2Niw4ICs0NjYsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZW5naW5lX3Jlc2V0KHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIGJvb2wgaW50ZWxfZW5naW5lX2lzX2lkbGUo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIGJvb2wgaW50ZWxfZW5naW5lc19hcmVf aWRsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogCi12b2lkIGludGVsX2Vu Z2luZV9sb3N0X2NvbnRleHQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKLQogdm9p ZCBpbnRlbF9lbmdpbmVzX3Jlc2V0X2RlZmF1bHRfc3VibWlzc2lvbihzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSk7CiB1bnNpZ25lZCBpbnQgaW50ZWxfZW5naW5lc19oYXNfY29udGV4dF9p c29sYXRpb24oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwogCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jCmluZGV4IGMwZDk4NmRiNWE3NS4uNWEwODAzNmFl Nzc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3Mu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYwpAQCAtNjEx LDYgKzYxMSw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfZW5naW5lX3NldHVwX2NvbW1vbihzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJaW50IGVycjsKIAorCWluaXRfbGxpc3RfaGVh ZCgmZW5naW5lLT5iYXJyaWVyX3Rhc2tzKTsKKwogCWVyciA9IGluaXRfc3RhdHVzX3BhZ2UoZW5n aW5lKTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwpAQCAtODcwLDYgKzg3Miw3IEBAIHZvaWQg aW50ZWxfZW5naW5lX2NsZWFudXBfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKIAlpZiAoZW5naW5lLT5wcmVlbXB0X2NvbnRleHQpCiAJCWludGVsX2NvbnRleHRfdW5waW4o ZW5naW5lLT5wcmVlbXB0X2NvbnRleHQpOwogCWludGVsX2NvbnRleHRfdW5waW4oZW5naW5lLT5r ZXJuZWxfY29udGV4dCk7CisJR0VNX0JVR19PTighbGxpc3RfZW1wdHkoJmVuZ2luZS0+YmFycmll cl90YXNrcykpOwogCiAJaTkxNV90aW1lbGluZV9maW5pKCZlbmdpbmUtPnRpbWVsaW5lKTsKIApA QCAtMTIwMSwyNiArMTIwNCw2IEBAIHZvaWQgaW50ZWxfZW5naW5lc19yZXNldF9kZWZhdWx0X3N1 Ym1pc3Npb24oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJCWVuZ2luZS0+c2V0X2Rl ZmF1bHRfc3VibWlzc2lvbihlbmdpbmUpOwogfQogCi0vKioKLSAqIGludGVsX2VuZ2luZV9sb3N0 X2NvbnRleHQ6IGNhbGxlZCB3aGVuIHRoZSBHUFUgaXMgcmVzZXQgaW50byB1bmtub3duIHN0YXRl Ci0gKiBAZW5naW5lOiB0aGUgZW5naW5lCi0gKgotICogV2UgaGF2ZSBlaXRoZXIgcmVzZXQgdGhl IEdQVSBvciBvdGhlcndpc2UgYWJvdXQgdG8gbG9zZSBzdGF0ZSB0cmFja2luZyBvZgotICogdGhl IGN1cnJlbnQgR1BVIGxvZ2ljYWwgc3RhdGUgKGUuZy4gc3VzcGVuZCkuIE9uIG5leHQgdXNlLCBp dCBpcyB0aGVyZWZvcmUKLSAqIGltcGVyYXRpdmUgdGhhdCB3ZSBtYWtlIG5vIHByZXN1bXB0aW9u cyBhYm91dCB0aGUgY3VycmVudCBzdGF0ZSBhbmQgbG9hZAotICogZnJvbSBzY3JhdGNoLgotICov Ci12b2lkIGludGVsX2VuZ2luZV9sb3N0X2NvbnRleHQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQotewotCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKLQotCWxvY2tkZXBfYXNzZXJ0 X2hlbGQoJmVuZ2luZS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0KLQljZSA9IGZldGNoX2Fu ZF96ZXJvKCZlbmdpbmUtPmxhc3RfcmV0aXJlZF9jb250ZXh0KTsKLQlpZiAoY2UpCi0JCWludGVs X2NvbnRleHRfdW5waW4oY2UpOwotfQotCiBib29sIGludGVsX2VuZ2luZV9jYW5fc3RvcmVfZHdv cmQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN3aXRjaCAoSU5URUxfR0VO KGVuZ2luZS0+aTkxNSkpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2lu dGVsX2VuZ2luZV9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3Bt LmMKaW5kZXggY2NmMDM0NzY0NzQxLi4zYzQ0OGEwNjFhYmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2VuZ2luZV9wbS5jCkBAIC04OCw2ICs4OCw4IEBAIHN0YXRpYyBib29sIHN3 aXRjaF90b19rZXJuZWxfY29udGV4dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAK IAkvKiBDaGVjayBhZ2FpbiBvbiB0aGUgbmV4dCByZXRpcmVtZW50LiAqLwogCWVuZ2luZS0+d2Fr ZXJlZl9zZXJpYWwgPSBlbmdpbmUtPnNlcmlhbCArIDE7CisKKwlpOTE1X3JlcXVlc3RfYWRkX2Jh cnJpZXJzKHJxKTsKIAlfX2k5MTVfcmVxdWVzdF9jb21taXQocnEpOwogCiAJcmV0dXJuIGZhbHNl OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVz LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfdHlwZXMuaAppbmRleCAw MTIyMzg2NDIzN2EuLjMzYTMxYWEyZDJhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfZW5naW5lX3R5cGVzLmgKQEAgLTExLDYgKzExLDcgQEAKICNpbmNsdWRlIDxsaW51eC9p cnFfd29yay5oPgogI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4KICNpbmNsdWRlIDxsaW51eC9saXN0 Lmg+CisjaW5jbHVkZSA8bGludXgvbGxpc3QuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgog CiAjaW5jbHVkZSAiaTkxNV9nZW0uaCIKQEAgLTI4OCw2ICsyODksNyBAQCBzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzIHsKIAlzdHJ1Y3QgaW50ZWxfcmluZyAqYnVmZmVyOwogCiAJc3RydWN0IGk5MTVf dGltZWxpbmUgdGltZWxpbmU7CisJc3RydWN0IGxsaXN0X2hlYWQgYmFycmllcl90YXNrczsKIAog CXN0cnVjdCBpbnRlbF9jb250ZXh0ICprZXJuZWxfY29udGV4dDsgLyogcGlubmVkICovCiAJc3Ry dWN0IGludGVsX2NvbnRleHQgKnByZWVtcHRfY29udGV4dDsgLyogcGlubmVkOyBvcHRpb25hbCAq LwpAQCAtNDM1LDE3ICs0MzcsNiBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzIHsKIAogCXN0cnVj dCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzIGV4ZWNsaXN0czsKIAotCS8qIENvbnRleHRzIGFyZSBw aW5uZWQgd2hpbHN0IHRoZXkgYXJlIGFjdGl2ZSBvbiB0aGUgR1BVLiBUaGUgbGFzdAotCSAqIGNv bnRleHQgZXhlY3V0ZWQgcmVtYWlucyBhY3RpdmUgd2hpbHN0IHRoZSBHUFUgaXMgaWRsZSAtIHRo ZQotCSAqIHN3aXRjaCBhd2F5IGFuZCB3cml0ZSB0byB0aGUgY29udGV4dCBvYmplY3Qgb25seSBv Y2N1cnMgb24gdGhlCi0JICogbmV4dCBleGVjdXRpb24uICBDb250ZXh0cyBhcmUgb25seSB1bnBp bm5lZCBvbiByZXRpcmVtZW50IG9mIHRoZQotCSAqIGZvbGxvd2luZyByZXF1ZXN0IGVuc3VyaW5n IHRoYXQgd2UgY2FuIGFsd2F5cyB3cml0ZSB0byB0aGUgb2JqZWN0Ci0JICogb24gdGhlIGNvbnRl eHQgc3dpdGNoIGV2ZW4gYWZ0ZXIgaWRsaW5nLiBBY3Jvc3Mgc3VzcGVuZCwgd2Ugc3dpdGNoCi0J ICogdG8gdGhlIGtlcm5lbCBjb250ZXh0IGFuZCB0cmFzaCBpdCBhcyB0aGUgc2F2ZSBtYXkgbm90 IGhhcHBlbgotCSAqIGJlZm9yZSB0aGUgaGFyZHdhcmUgaXMgcG93ZXJlZCBkb3duLgotCSAqLwot CXN0cnVjdCBpbnRlbF9jb250ZXh0ICpsYXN0X3JldGlyZWRfY29udGV4dDsKLQogCS8qIHN0YXR1 c19ub3RpZmllcjogbGlzdCBvZiBjYWxsYmFja3MgZm9yIGNvbnRleHQtc3dpdGNoIGNoYW5nZXMg Ki8KIAlzdHJ1Y3QgYXRvbWljX25vdGlmaWVyX2hlYWQgY29udGV4dF9zdGF0dXNfbm90aWZpZXI7 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMKaW5kZXggYjhmNTU5MmRhMThmLi4wNTUy NDQ4OTYxNWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCkBAIC0xNDIyLDYwICsx NDIyLDExIEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19jb250ZXh0X2Rlc3Ryb3koc3RydWN0IGty ZWYgKmtyZWYpCiAJaW50ZWxfY29udGV4dF9mcmVlKGNlKTsKIH0KIAotc3RhdGljIGludCBfX2Nv bnRleHRfcGluKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQotewotCXVuc2lnbmVkIGludCBmbGFnczsK LQlpbnQgZXJyOwotCi0JZmxhZ3MgPSBQSU5fR0xPQkFMIHwgUElOX0hJR0g7Ci0JZmxhZ3MgfD0g UElOX09GRlNFVF9CSUFTIHwgaTkxNV9nZ3R0X3Bpbl9iaWFzKHZtYSk7Ci0KLQllcnIgPSBpOTE1 X3ZtYV9waW4odm1hLCAwLCAwLCBmbGFncyk7Ci0JaWYgKGVycikKLQkJcmV0dXJuIGVycjsKLQot CXZtYS0+b2JqLT5waW5fZ2xvYmFsKys7Ci0Jdm1hLT5vYmotPm1tLmRpcnR5ID0gdHJ1ZTsKLQot CXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBfX2NvbnRleHRfdW5waW4oc3RydWN0IGk5MTVf dm1hICp2bWEpCi17Ci0Jdm1hLT5vYmotPnBpbl9nbG9iYWwtLTsKLQlfX2k5MTVfdm1hX3VucGlu KHZtYSk7Ci19Ci0KIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19jb250ZXh0X3VucGluKHN0cnVjdCBp bnRlbF9jb250ZXh0ICpjZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0K LQkvKgotCSAqIFRoZSB0YXNrbGV0IG1heSBzdGlsbCBiZSB1c2luZyBhIHBvaW50ZXIgdG8gb3Vy IHN0YXRlLCB2aWEgYW4KLQkgKiBvbGQgcmVxdWVzdC4gSG93ZXZlciwgc2luY2Ugd2Uga25vdyB3 ZSBvbmx5IHVucGluIHRoZSBjb250ZXh0Ci0JICogb24gcmV0aXJlbWVudCBvZiB0aGUgZm9sbG93 aW5nIHJlcXVlc3QsIHdlIGtub3cgdGhhdCB0aGUgbGFzdAotCSAqIHJlcXVlc3QgcmVmZXJlbmNp bmcgdXMgd2lsbCBoYXZlIGhhZCBhIGNvbXBsZXRpb24gQ1MgaW50ZXJydXB0LgotCSAqIElmIHdl IHNlZSB0aGF0IGl0IGlzIHN0aWxsIGFjdGl2ZSwgaXQgbWVhbnMgdGhhdCB0aGUgdGFza2xldCBo YXNuJ3QKLQkgKiBoYWQgdGhlIGNoYW5jZSB0byBydW4geWV0OyBsZXQgaXQgcnVuIGJlZm9yZSB3 ZSB0ZWFyZG93biB0aGUKLQkgKiByZWZlcmVuY2UgaXQgbWF5IHVzZS4KLQkgKi8KLQllbmdpbmUg PSBSRUFEX09OQ0UoY2UtPmluZmxpZ2h0KTsKLQlpZiAodW5saWtlbHkoZW5naW5lKSkgewotCQl1 bnNpZ25lZCBsb25nIGZsYWdzOwotCi0JCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnRpbWVs aW5lLmxvY2ssIGZsYWdzKTsKLQkJcHJvY2Vzc19jc2IoZW5naW5lKTsKLQkJc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7Ci0KLQkJR0VNX0JVR19P TihSRUFEX09OQ0UoY2UtPmluZmxpZ2h0KSk7Ci0JfQotCiAJaTkxNV9nZW1fY29udGV4dF91bnBp bl9od19pZChjZS0+Z2VtX2NvbnRleHQpOwotCi0JaW50ZWxfcmluZ191bnBpbihjZS0+cmluZyk7 Ci0KIAlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGNlLT5zdGF0ZS0+b2JqKTsKLQlfX2NvbnRl eHRfdW5waW4oY2UtPnN0YXRlKTsKKwlpbnRlbF9yaW5nX3VucGluKGNlLT5yaW5nKTsKIH0KIAog c3RhdGljIHZvaWQKQEAgLTE1MTIsNyArMTQ2MywxMCBAQCBfX2V4ZWNsaXN0c19jb250ZXh0X3Bp bihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAJCWdvdG8gZXJyOwogCUdFTV9CVUdfT04oIWNl LT5zdGF0ZSk7CiAKLQlyZXQgPSBfX2NvbnRleHRfcGluKGNlLT5zdGF0ZSk7CisJcmV0ID0gaW50 ZWxfY29udGV4dF9hY3RpdmUoY2UsCisJCQkJICAgZW5naW5lLT5pOTE1LT5nZ3R0LnBpbl9iaWFz IHwKKwkJCQkgICBQSU5fT0ZGU0VUX0JJQVMgfAorCQkJCSAgIFBJTl9ISUdIKTsKIAlpZiAocmV0 KQogCQlnb3RvIGVycjsKIApAQCAtMTUyMSw3ICsxNDc1LDcgQEAgX19leGVjbGlzdHNfY29udGV4 dF9waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAogCQkJCQlJOTE1X01BUF9PVkVSUklERSk7 CiAJaWYgKElTX0VSUih2YWRkcikpIHsKIAkJcmV0ID0gUFRSX0VSUih2YWRkcik7Ci0JCWdvdG8g dW5waW5fdm1hOworCQlnb3RvIHVucGluX2FjdGl2ZTsKIAl9CiAKIAlyZXQgPSBpbnRlbF9yaW5n X3BpbihjZS0+cmluZyk7CkBAIC0xNTQyLDggKzE0OTYsOCBAQCBfX2V4ZWNsaXN0c19jb250ZXh0 X3BpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAJaW50ZWxfcmluZ191bnBpbihjZS0+cmlu Zyk7CiB1bnBpbl9tYXA6CiAJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChjZS0+c3RhdGUtPm9i aik7Ci11bnBpbl92bWE6Ci0JX19jb250ZXh0X3VucGluKGNlLT5zdGF0ZSk7Cit1bnBpbl9hY3Rp dmU6CisJaW50ZWxfY29udGV4dF9pbmFjdGl2ZShjZSk7CiBlcnI6CiAJcmV0dXJuIHJldDsKIH0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZmZXIuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCBjODM0ZDAx NmM5NjUuLjdhYjI4YjZmNjJhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfcmluZ2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jp bmdidWZmZXIuYwpAQCAtMTM0OSw0NSArMTM0OSw5IEBAIHN0YXRpYyB2b2lkIF9fY29udGV4dF91 bnBpbl9wcGd0dChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQogCQlnZW42X3BwZ3R0X3Vu cGluKGk5MTVfdm1fdG9fcHBndHQodm0pKTsKIH0KIAotc3RhdGljIGludCBfX2NvbnRleHRfcGlu KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKLXsKLQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKLQlp bnQgZXJyOwotCi0Jdm1hID0gY2UtPnN0YXRlOwotCWlmICghdm1hKQotCQlyZXR1cm4gMDsKLQot CWVyciA9IGk5MTVfdm1hX3Bpbih2bWEsIDAsIDAsIFBJTl9HTE9CQUwgfCBQSU5fSElHSCk7Ci0J aWYgKGVycikKLQkJcmV0dXJuIGVycjsKLQotCS8qCi0JICogQW5kIG1hcmsgaXMgYXMgYSBnbG9i YWxseSBwaW5uZWQgb2JqZWN0IHRvIGxldCB0aGUgc2hyaW5rZXIga25vdwotCSAqIGl0IGNhbm5v dCByZWNsYWltIHRoZSBvYmplY3QgdW50aWwgd2UgcmVsZWFzZSBpdC4KLQkgKi8KLQl2bWEtPm9i ai0+cGluX2dsb2JhbCsrOwotCXZtYS0+b2JqLT5tbS5kaXJ0eSA9IHRydWU7Ci0KLQlyZXR1cm4g MDsKLX0KLQotc3RhdGljIHZvaWQgX19jb250ZXh0X3VucGluKHN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjZSkKLXsKLQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKLQotCXZtYSA9IGNlLT5zdGF0ZTsKLQlp ZiAoIXZtYSkKLQkJcmV0dXJuOwotCi0Jdm1hLT5vYmotPnBpbl9nbG9iYWwtLTsKLQlpOTE1X3Zt YV91bnBpbih2bWEpOwotfQotCiBzdGF0aWMgdm9pZCByaW5nX2NvbnRleHRfdW5waW4oc3RydWN0 IGludGVsX2NvbnRleHQgKmNlKQogewogCV9fY29udGV4dF91bnBpbl9wcGd0dChjZS0+Z2VtX2Nv bnRleHQpOwotCV9fY29udGV4dF91bnBpbihjZSk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgaTkxNV92 bWEgKgpAQCAtMTQ3NywxOCArMTQ0MSwxOCBAQCBzdGF0aWMgaW50IHJpbmdfY29udGV4dF9waW4o c3RydWN0IGludGVsX2NvbnRleHQgKmNlKQogCQljZS0+c3RhdGUgPSB2bWE7CiAJfQogCi0JZXJy ID0gX19jb250ZXh0X3BpbihjZSk7CisJZXJyID0gaW50ZWxfY29udGV4dF9hY3RpdmUoY2UsIFBJ Tl9ISUdIKTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCiAJZXJyID0gX19jb250ZXh0X3Bp bl9wcGd0dChjZS0+Z2VtX2NvbnRleHQpOwogCWlmIChlcnIpCi0JCWdvdG8gZXJyX3VucGluOwor CQlnb3RvIGVycl9hY3RpdmU7CiAKIAlyZXR1cm4gMDsKIAotZXJyX3VucGluOgotCV9fY29udGV4 dF91bnBpbihjZSk7CitlcnJfYWN0aXZlOgorCWludGVsX2NvbnRleHRfaW5hY3RpdmUoY2UpOwog CXJldHVybiBlcnI7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L21v Y2tfZW5naW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9tb2NrX2VuZ2luZS5jCmluZGV4 IDZkNzU2Mjc2OWViMi4uYjc2NzVlZjE4NTIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9tb2NrX2VuZ2luZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L21vY2tf ZW5naW5lLmMKQEAgLTE0NiwxMiArMTQ2LDE4IEBAIHN0YXRpYyB2b2lkIG1vY2tfY29udGV4dF9k ZXN0cm95KHN0cnVjdCBrcmVmICpyZWYpCiAKIHN0YXRpYyBpbnQgbW9ja19jb250ZXh0X3Bpbihz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiB7CisJaW50IHJldDsKKwogCWlmICghY2UtPnJpbmcp IHsKIAkJY2UtPnJpbmcgPSBtb2NrX3JpbmcoY2UtPmVuZ2luZSk7CiAJCWlmICghY2UtPnJpbmcp CiAJCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKKwlyZXQgPSBpbnRlbF9jb250ZXh0X2FjdGl2ZShj ZSwgUElOX0hJR0gpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKIAltb2NrX3RpbWVsaW5l X3BpbihjZS0+cmluZy0+dGltZWxpbmUpOwogCXJldHVybiAwOwogfQpAQCAtMzI4LDE0ICszMzQs OSBAQCB2b2lkIG1vY2tfZW5naW5lX2ZyZWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQogewogCXN0cnVjdCBtb2NrX2VuZ2luZSAqbW9jayA9CiAJCWNvbnRhaW5lcl9vZihlbmdpbmUs IHR5cGVvZigqbW9jayksIGJhc2UpOwotCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKIAogCUdF TV9CVUdfT04odGltZXJfcGVuZGluZygmbW9jay0+aHdfZGVsYXkpKTsKIAotCWNlID0gZmV0Y2hf YW5kX3plcm8oJmVuZ2luZS0+bGFzdF9yZXRpcmVkX2NvbnRleHQpOwotCWlmIChjZSkKLQkJaW50 ZWxfY29udGV4dF91bnBpbihjZSk7Ci0KIAlpbnRlbF9jb250ZXh0X3VucGluKGVuZ2luZS0+a2Vy bmVsX2NvbnRleHQpOwogCiAJaW50ZWxfZW5naW5lX2ZpbmlfYnJlYWRjcnVtYnMoZW5naW5lKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5jCmluZGV4IDg2M2FlMTI3MDdiYS4uMTAwZTQwYWZj OWQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmMKQEAgLTEwMCw3ICsxMDAsNyBAQCBh Y3RpdmVfaW5zdGFuY2Uoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYsIHU2NCBpZHgpCiAJCXBhcmVu dCA9ICpwOwogCiAJCW5vZGUgPSByYl9lbnRyeShwYXJlbnQsIHN0cnVjdCBhY3RpdmVfbm9kZSwg bm9kZSk7Ci0JCWlmIChub2RlLT50aW1lbGluZSA9PSBpZHgpCisJCWlmIChub2RlLT50aW1lbGlu ZSA9PSBpZHggJiYgIUlTX0VSUihub2RlLT5iYXNlLnJlcXVlc3QpKQogCQkJZ290byByZXBsYWNl OwogCiAJCWlmIChub2RlLT50aW1lbGluZSA8IGlkeCkKQEAgLTE1Nyw2ICsxNTcsNyBAQCB2b2lk IGk5MTVfYWN0aXZlX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJcmVmLT5y ZXRpcmUgPSByZXRpcmU7CiAJcmVmLT50cmVlID0gUkJfUk9PVDsKIAlpOTE1X2FjdGl2ZV9yZXF1 ZXN0X2luaXQoJnJlZi0+bGFzdCwgTlVMTCwgbGFzdF9yZXRpcmUpOworCWluaXRfbGxpc3RfaGVh ZCgmcmVmLT5iYXJyaWVycyk7CiAJcmVmLT5jb3VudCA9IDA7CiB9CiAKQEAgLTI2Myw2ICsyNjQs ODMgQEAgdm9pZCBpOTE1X2FjdGl2ZV9maW5pKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKQogfQog I2VuZGlmCiAKK2ludCBpOTE1X2FjdGl2ZV9hY3F1aXJlX3ByZWFsbG9jYXRlX2JhcnJpZXIoc3Ry dWN0IGk5MTVfYWN0aXZlICpyZWYsCisJCQkJCSAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBlbmdpbmUtPmk5MTU7 CisJdW5zaWduZWQgbG9uZyB0bXA7CisJaW50IGVyciA9IDA7CisKKwlHRU1fQlVHX09OKCFlbmdp bmUtPm1hc2spOworCWZvcl9lYWNoX2VuZ2luZV9tYXNrZWQoZW5naW5lLCBpOTE1LCBlbmdpbmUt Pm1hc2ssIHRtcCkgeworCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqa2N0eCA9IGVuZ2luZS0+a2Vy bmVsX2NvbnRleHQ7CisJCXN0cnVjdCBhY3RpdmVfbm9kZSAqbm9kZTsKKworCQlub2RlID0ga21l bV9jYWNoZV9hbGxvYyhnbG9iYWwuc2xhYl9jYWNoZSwgR0ZQX0tFUk5FTCk7CisJCWlmICh1bmxp a2VseSghbm9kZSkpIHsKKwkJCWVyciA9IC1FTk9NRU07CisJCQlicmVhazsKKwkJfQorCisJCWk5 MTVfYWN0aXZlX3JlcXVlc3RfaW5pdCgmbm9kZS0+YmFzZSwKKwkJCQkJICh2b2lkICopZW5naW5l LCBub2RlX3JldGlyZSk7CisJCW5vZGUtPnRpbWVsaW5lID0ga2N0eC0+cmluZy0+dGltZWxpbmUt PmZlbmNlX2NvbnRleHQ7CisJCW5vZGUtPnJlZiA9IHJlZjsKKwkJcmVmLT5jb3VudCsrOworCisJ CWxsaXN0X2FkZCgoc3RydWN0IGxsaXN0X25vZGUgKikmbm9kZS0+YmFzZS5saW5rLAorCQkJICAm cmVmLT5iYXJyaWVycyk7CisJfQorCisJcmV0dXJuIGVycjsKK30KKwordm9pZCBpOTE1X2FjdGl2 ZV9hY3F1aXJlX2JhcnJpZXIoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpCit7CisJc3RydWN0IGxs aXN0X25vZGUgKnBvcywgKm5leHQ7CisKKwlpOTE1X2FjdGl2ZV9hY3F1aXJlKHJlZik7CisKKwls bGlzdF9mb3JfZWFjaF9zYWZlKHBvcywgbmV4dCwgbGxpc3RfZGVsX2FsbCgmcmVmLT5iYXJyaWVy cykpIHsKKwkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCQlzdHJ1Y3QgYWN0aXZl X25vZGUgKm5vZGU7CisJCXN0cnVjdCByYl9ub2RlICoqcCwgKnBhcmVudDsKKworCQlub2RlID0g Y29udGFpbmVyX29mKChzdHJ1Y3QgbGlzdF9oZWFkICopcG9zLAorCQkJCSAgICB0eXBlb2YoKm5v ZGUpLCBiYXNlLmxpbmspOworCisJCWVuZ2luZSA9ICh2b2lkICopcmN1X2FjY2Vzc19wb2ludGVy KG5vZGUtPmJhc2UucmVxdWVzdCk7CisJCVJDVV9JTklUX1BPSU5URVIobm9kZS0+YmFzZS5yZXF1 ZXN0LCBFUlJfUFRSKC1FQUdBSU4pKTsKKworCQlwYXJlbnQgPSBOVUxMOworCQlwID0gJnJlZi0+ dHJlZS5yYl9ub2RlOworCQl3aGlsZSAoKnApIHsKKwkJCXBhcmVudCA9ICpwOworCQkJaWYgKHJi X2VudHJ5KHBhcmVudCwKKwkJCQkgICAgIHN0cnVjdCBhY3RpdmVfbm9kZSwKKwkJCQkgICAgIG5v ZGUpLT50aW1lbGluZSA8IG5vZGUtPnRpbWVsaW5lKQorCQkJCXAgPSAmcGFyZW50LT5yYl9yaWdo dDsKKwkJCWVsc2UKKwkJCQlwID0gJnBhcmVudC0+cmJfbGVmdDsKKwkJfQorCQlyYl9saW5rX25v ZGUoJm5vZGUtPm5vZGUsIHBhcmVudCwgcCk7CisJCXJiX2luc2VydF9jb2xvcigmbm9kZS0+bm9k ZSwgJnJlZi0+dHJlZSk7CisKKwkJbGxpc3RfYWRkKChzdHJ1Y3QgbGxpc3Rfbm9kZSAqKSZub2Rl LT5iYXNlLmxpbmssCisJCQkgICZlbmdpbmUtPmJhcnJpZXJfdGFza3MpOworCX0KKwlpOTE1X2Fj dGl2ZV9yZWxlYXNlKHJlZik7Cit9CisKK3ZvaWQgaTkxNV9yZXF1ZXN0X2FkZF9iYXJyaWVycyhz dHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUgPSBycS0+ZW5naW5lOworCXN0cnVjdCBsbGlzdF9ub2RlICpub2RlLCAqbmV4dDsKKworCWxs aXN0X2Zvcl9lYWNoX3NhZmUobm9kZSwgbmV4dCwgbGxpc3RfZGVsX2FsbCgmZW5naW5lLT5iYXJy aWVyX3Rhc2tzKSkKKwkJbGlzdF9hZGRfdGFpbCgoc3RydWN0IGxpc3RfaGVhZCAqKW5vZGUsICZy cS0+YWN0aXZlX2xpc3QpOworfQorCiBpbnQgaTkxNV9hY3RpdmVfcmVxdWVzdF9zZXQoc3RydWN0 IGk5MTVfYWN0aXZlX3JlcXVlc3QgKmFjdGl2ZSwKIAkJCSAgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICpycSkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5oCmluZGV4IDdkNzU4NzE5Y2UzOS4u ZDU1ZDM3NjczOTQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2 ZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmgKQEAgLTQwNiw0ICs0 MDYsOSBAQCB2b2lkIGk5MTVfYWN0aXZlX2Zpbmkoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpOwog c3RhdGljIGlubGluZSB2b2lkIGk5MTVfYWN0aXZlX2Zpbmkoc3RydWN0IGk5MTVfYWN0aXZlICpy ZWYpIHsgfQogI2VuZGlmCiAKK2ludCBpOTE1X2FjdGl2ZV9hY3F1aXJlX3ByZWFsbG9jYXRlX2Jh cnJpZXIoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYsCisJCQkJCSAgICBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpOwordm9pZCBpOTE1X2FjdGl2ZV9hY3F1aXJlX2JhcnJpZXIoc3RydWN0 IGk5MTVfYWN0aXZlICpyZWYpOwordm9pZCBpOTE1X3JlcXVlc3RfYWRkX2JhcnJpZXJzKHN0cnVj dCBpOTE1X3JlcXVlc3QgKnJxKTsKKwogI2VuZGlmIC8qIF9JOTE1X0FDVElWRV9IXyAqLwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmVfdHlwZXMuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlX3R5cGVzLmgKaW5kZXggYjY3OTI1M2I1M2E1Li5j MDI1OTkxYjkyMzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZl X3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmVfdHlwZXMuaApA QCAtNyw2ICs3LDcgQEAKICNpZm5kZWYgX0k5MTVfQUNUSVZFX1RZUEVTX0hfCiAjZGVmaW5lIF9J OTE1X0FDVElWRV9UWVBFU19IXwogCisjaW5jbHVkZSA8bGludXgvbGxpc3QuaD4KICNpbmNsdWRl IDxsaW51eC9yYnRyZWUuaD4KICNpbmNsdWRlIDxsaW51eC9yY3VwZGF0ZS5oPgogCkBAIC0zMSw2 ICszMiw4IEBAIHN0cnVjdCBpOTE1X2FjdGl2ZSB7CiAJdW5zaWduZWQgaW50IGNvdW50OwogCiAJ dm9pZCAoKnJldGlyZSkoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpOworCisJc3RydWN0IGxsaXN0 X2hlYWQgYmFycmllcnM7CiB9OwogCiAjZW5kaWYgLyogX0k5MTVfQUNUSVZFX1RZUEVTX0hfICov CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCBlOTgwYzFlZTNkY2YuLjA2NjNmMmRmNjVkNiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0xMTk3LDEwICsxMTk3LDYgQEAgdm9pZCBpOTE1 X2dlbV9zYW5pdGl6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAogCWludGVsX3Vu Y29yZV9mb3JjZXdha2VfcHV0KCZpOTE1LT51bmNvcmUsIEZPUkNFV0FLRV9BTEwpOwogCWludGVs X3J1bnRpbWVfcG1fcHV0KGk5MTUsIHdha2VyZWYpOwotCi0JbXV0ZXhfbG9jaygmaTkxNS0+ZHJt LnN0cnVjdF9tdXRleCk7Ci0JaTkxNV9nZW1fY29udGV4dHNfbG9zdChpOTE1KTsKLQltdXRleF91 bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogfQogCiB2b2lkIGk5MTVfZ2VtX2luaXRf c3dpenpsaW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZXF1ZXN0LmMKaW5kZXggZTliNTllZWE0ZjEwLi45ZWZmOWRlN2ZhMTAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCkBAIC0yMTMsMTggKzIxMyw2IEBAIHN0YXRpYyB2 b2lkIF9fcmV0aXJlX2VuZ2luZV9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwKIAlzcGluX3VubG9jaygmcnEtPmxvY2spOwogCiAJbG9jYWxfaXJxX2VuYWJsZSgpOwotCi0J LyoKLQkgKiBUaGUgYmFja2luZyBvYmplY3QgZm9yIHRoZSBjb250ZXh0IGlzIGRvbmUgYWZ0ZXIg c3dpdGNoaW5nIHRvIHRoZQotCSAqICpuZXh0KiBjb250ZXh0LiBUaGVyZWZvcmUgd2UgY2Fubm90 IHJldGlyZSB0aGUgcHJldmlvdXMgY29udGV4dCB1bnRpbAotCSAqIHRoZSBuZXh0IGNvbnRleHQg aGFzIGFscmVhZHkgc3RhcnRlZCBydW5uaW5nLiBIb3dldmVyLCBzaW5jZSB3ZQotCSAqIGNhbm5v dCB0YWtlIHRoZSByZXF1aXJlZCBsb2NrcyBhdCBpOTE1X3JlcXVlc3Rfc3VibWl0KCkgd2UKLQkg KiBkZWZlciB0aGUgdW5waW5uaW5nIG9mIHRoZSBhY3RpdmUgY29udGV4dCB0byBub3csIHJldGly ZW1lbnQgb2YKLQkgKiB0aGUgc3Vic2VxdWVudCByZXF1ZXN0LgotCSAqLwotCWlmIChlbmdpbmUt Pmxhc3RfcmV0aXJlZF9jb250ZXh0KQotCQlpbnRlbF9jb250ZXh0X3VucGluKGVuZ2luZS0+bGFz dF9yZXRpcmVkX2NvbnRleHQpOwotCWVuZ2luZS0+bGFzdF9yZXRpcmVkX2NvbnRleHQgPSBycS0+ aHdfY29udGV4dDsKIH0KIAogc3RhdGljIHZvaWQgX19yZXRpcmVfZW5naW5lX3VwdG8oc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLApAQCAtNzU5LDkgKzc0Nyw2IEBAIF9faTkxNV9yZXF1 ZXN0X2NyZWF0ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIGdmcF90IGdmcCkKIAogCXJxLT5p bmZpeCA9IHJxLT5yaW5nLT5lbWl0OyAvKiBlbmQgb2YgaGVhZGVyOyBzdGFydCBvZiB1c2VyIHBh eWxvYWQgKi8KIAotCS8qIEtlZXAgYSBzZWNvbmQgcGluIGZvciB0aGUgZHVhbCByZXRpcmVtZW50 IGFsb25nIGVuZ2luZSBhbmQgcmluZyAqLwotCV9faW50ZWxfY29udGV4dF9waW4oY2UpOwotCiAJ aW50ZWxfY29udGV4dF9tYXJrX2FjdGl2ZShjZSk7CiAJcmV0dXJuIHJxOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMKaW5kZXggYjdmM2Zi YjRhZTg5Li5hOTZkMGMwMTJkNDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvbW9ja19nZW1fZGV2aWNlLmMKQEAgLTU2LDcgKzU2LDYgQEAgc3RhdGljIHZvaWQgbW9j a19kZXZpY2VfcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJbXV0ZXhfbG9jaygm aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJbW9ja19kZXZpY2VfZmx1c2goaTkxNSk7Ci0JaTkx NV9nZW1fY29udGV4dHNfbG9zdChpOTE1KTsKIAltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1 Y3RfbXV0ZXgpOwogCiAJZmx1c2hfd29yaygmaTkxNS0+Z2VtLmlkbGVfd29yayk7Ci0tIAoyLjIw LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==