From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 35/38] drm/i915: Allow a context to define its set of engines Date: Fri, 18 Jan 2019 14:01:06 +0000 Message-ID: <20190118140109.25261-36-chris@chris-wilson.co.uk> References: <20190118140109.25261-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 310126F7AF for ; Fri, 18 Jan 2019 14:01:51 +0000 (UTC) In-Reply-To: <20190118140109.25261-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 T3ZlciB0aGUgbGFzdCBmZXcgeWVhcnMsIHdlIGhhdmUgZGViYXRlZCBob3cgdG8gZXh0ZW5kIHRo ZSB1c2VyIEFQSSB0bwpzdXBwb3J0IGFuIGluY3JlYXNlIGluIHRoZSBudW1iZXIgb2YgZW5naW5l cywgdGhhdCBtYXkgYmUgc3BhcnNlIGFuZApldmVuIGJlIGhldGVyb2dlbmVvdXMgd2l0aGluIGEg Y2xhc3MgKG5vdCBhbGwgdmlkZW8gZGVjb2RlcnMgY3JlYXRlZAplcXVhbCkuIFdlIHNldHRsZWQg b24gdXNpbmcgKGNsYXNzLCBpbnN0YW5jZSkgdHVwbGVzIHRvIGlkZW50aWZ5IGEKc3BlY2lmaWMg ZW5naW5lLCB3aXRoIGFuIEFQSSBmb3IgdGhlIHVzZXIgdG8gY29uc3RydWN0IGEgbWFwIG9mIGVu Z2luZXMKdG8gY2FwYWJpbGl0aWVzLiBJbnRvIHRoaXMgcGljdHVyZSwgd2UgdGhlbiBhZGQgYSBj aGFsbGVuZ2Ugb2YgdmlydHVhbAplbmdpbmVzOyBvbmUgdXNlciBlbmdpbmUgdGhhdCBtYXBzIGJl aGluZCB0aGUgc2NlbmVzIHRvIGFueSBudW1iZXIgb2YKcGh5c2ljYWwgZW5naW5lcy4gVG8ga2Vl cCBpdCBnZW5lcmFsLCB3ZSB3YW50IHRoZSB1c2VyIHRvIGhhdmUgZnVsbApjb250cm9sIG92ZXIg dGhhdCBtYXBwaW5nLiBUbyB0aGF0IGVuZCwgd2UgYWxsb3cgdGhlIHVzZXIgdG8gY29uc3RyYWlu IGEKY29udGV4dCB0byBkZWZpbmUgdGhlIHNldCBvZiBlbmdpbmVzIHRoYXQgaXQgY2FuIGFjY2Vz cywgb3JkZXIgZnVsbHkKY29udHJvbGxlZCBieSB0aGUgdXNlciB2aWEgKGNsYXNzLCBpbnN0YW5j ZSkuIFdpdGggc3VjaCBwcmVjaXNlIGNvbnRyb2wKaW4gY29udGV4dCBzZXR1cCwgd2UgY2FuIGNv bnRpbnVlIHRvIHVzZSB0aGUgZXhpc3RpbmcgZXhlY2J1ZiB1QUJJIG9mCnNwZWNpZnlpbmcgYSBz aW5nbGUgaW5kZXg7IG9ubHkgbm93IGl0IGRvZXNuJ3QgYXV0b21hZ2ljYWxseSBtYXAgb250bwp0 aGUgZW5naW5lcywgaXQgdXNlcyB0aGUgdXNlciBkZWZpbmVkIGVuZ2luZSBtYXAgZnJvbSB0aGUg Y29udGV4dC4KClRoZSBJOTE1X0VYRUNfREVGQVVMVCBzbG90IGlzIGxlZnQgZW1wdHksIGFuZCBp bnZhbGlkIGZvciB1c2UgYnkKZXhlY2J1Zi4gSXQncyB1c2Ugd2lsbCBiZSByZXZlYWxlZCBpbiB0 aGUgbmV4dCBwYXRjaC4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMt d2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQu YyAgICB8IDE1OCArKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2NvbnRleHQuaCAgICB8ICAgNCArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9leGVjYnVmZmVyLmMgfCAgMjIgKystCiBpbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggICAg ICAgICAgICAgICAgfCAgMzAgKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAyMDggaW5zZXJ0aW9ucygr KSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMK aW5kZXggZTI4YmUyNDIzOTlkLi43MDFhZjMyNjEyMGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9jb250ZXh0LmMKQEAgLTIyNSw2ICsyMjUsOCBAQCBzdGF0aWMgdm9pZCBpOTE1X2dl bV9jb250ZXh0X2ZyZWUoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKIAkJCWNlLT5vcHMt PmRlc3Ryb3koY2UpOwogCX0KIAorCWtmcmVlKGN0eC0+ZW5naW5lcyk7CisKIAlpZiAoY3R4LT50 aW1lbGluZSkKIAkJaTkxNV90aW1lbGluZV9wdXQoY3R4LT50aW1lbGluZSk7CiAKQEAgLTkwNyw2 ICs5MDksMTU1IEBAIHN0YXRpYyBpbnQgc2V0X3BwZ3R0KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0 ICpjdHgsIHUzMiBpZCkKIAlyZXR1cm4gZXJyOwogfQogCitzdHJ1Y3Qgc2V0X2VuZ2luZXMgewor CXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAq KmVuZ2luZXM7CisJdW5zaWduZWQgaW50IG5lbmdpbmU7Cit9OworCitzdGF0aWMgY29uc3QgaTkx NV91c2VyX2V4dGVuc2lvbl9mbiBzZXRfZW5naW5lc19fZXh0ZW5zaW9uc1tdID0geworfTsKKwor c3RhdGljIGludCBzZXRfZW5naW5lcyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAorCQkg ICAgICAgY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtICphcmdzKQorewor CXN0cnVjdCBpOTE1X2NvbnRleHRfcGFyYW1fZW5naW5lcyBfX3VzZXIgKnVzZXI7CisJc3RydWN0 IHNldF9lbmdpbmVzIHNldCA9IHsgLmN0eCA9IGN0eCB9OworCXU2NCBzaXplLCBleHRlbnNpb25z OworCXVuc2lnbmVkIGludCBuOworCWludCBlcnI7CisKKwl1c2VyID0gdTY0X3RvX3VzZXJfcHRy KGFyZ3MtPnZhbHVlKTsKKwlzaXplID0gYXJncy0+c2l6ZTsKKwlpZiAoIXNpemUpCisJCWdvdG8g b3V0OworCisJaWYgKHNpemUgPCBzaXplb2YoKnVzZXIpKQorCQlyZXR1cm4gLUVJTlZBTDsKKwor CXNpemUgLT0gc2l6ZW9mKCp1c2VyKTsKKwlpZiAoc2l6ZSAlIHNpemVvZigqdXNlci0+Y2xhc3Nf aW5zdGFuY2UpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXNldC5uZW5naW5lID0gc2l6ZSAvIHNp emVvZigqdXNlci0+Y2xhc3NfaW5zdGFuY2UpOworCWlmIChzZXQubmVuZ2luZSA9PSAwIHx8IHNl dC5uZW5naW5lID4gSTkxNV9FWEVDX1JJTkdfTUFTSykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlz ZXQuZW5naW5lcyA9IGttYWxsb2NfYXJyYXkoc2V0Lm5lbmdpbmUsCisJCQkJICAgIHNpemVvZigq c2V0LmVuZ2luZXMpLAorCQkJCSAgICBHRlBfS0VSTkVMKTsKKwlpZiAoIXNldC5lbmdpbmVzKQor CQlyZXR1cm4gLUVOT01FTTsKKworCWZvciAobiA9IDA7IG4gPCBzZXQubmVuZ2luZTsgbisrKSB7 CisJCXUxNiBjbGFzcywgaW5zdDsKKworCQlpZiAoZ2V0X3VzZXIoY2xhc3MsICZ1c2VyLT5jbGFz c19pbnN0YW5jZVtuXS5lbmdpbmVfY2xhc3MpIHx8CisJCSAgICBnZXRfdXNlcihpbnN0LCAmdXNl ci0+Y2xhc3NfaW5zdGFuY2Vbbl0uZW5naW5lX2luc3RhbmNlKSkgeworCQkJa2ZyZWUoc2V0LmVu Z2luZXMpOworCQkJcmV0dXJuIC1FRkFVTFQ7CisJCX0KKworCQlpZiAoY2xhc3MgPT0gSTkxNV9F TkdJTkVfQ0xBU1NfSU5WQUxJRCAmJgorCQkgICAgaW5zdCA9PSBJOTE1X0VOR0lORV9DTEFTU19J TlZBTElEX05PTkUpIHsKKwkJCXNldC5lbmdpbmVzW25dID0gTlVMTDsKKwkJCWNvbnRpbnVlOwor CQl9CisKKwkJc2V0LmVuZ2luZXNbbl0gPQorCQkJaW50ZWxfZW5naW5lX2xvb2t1cF91c2VyKGN0 eC0+aTkxNSwgY2xhc3MsIGluc3QpOworCQlpZiAoIXNldC5lbmdpbmVzW25dKSB7CisJCQlrZnJl ZShzZXQuZW5naW5lcyk7CisJCQlyZXR1cm4gLUVOT0VOVDsKKwkJfQorCX0KKworCWVyciA9IC1F RkFVTFQ7CisJaWYgKCFnZXRfdXNlcihleHRlbnNpb25zLCAmdXNlci0+ZXh0ZW5zaW9ucykpCisJ CWVyciA9IGk5MTVfdXNlcl9leHRlbnNpb25zKHU2NF90b191c2VyX3B0cihleHRlbnNpb25zKSwK KwkJCQkJICAgc2V0X2VuZ2luZXNfX2V4dGVuc2lvbnMsCisJCQkJCSAgIEFSUkFZX1NJWkUoc2V0 X2VuZ2luZXNfX2V4dGVuc2lvbnMpLAorCQkJCQkgICAmc2V0KTsKKwlpZiAoZXJyKSB7CisJCWtm cmVlKHNldC5lbmdpbmVzKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKK291dDoKKwltdXRleF9sb2Nr KCZjdHgtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCWtmcmVlKGN0eC0+ZW5naW5lcyk7CisJ Y3R4LT5lbmdpbmVzID0gc2V0LmVuZ2luZXM7CisJY3R4LT5uZW5naW5lID0gc2V0Lm5lbmdpbmU7 CisJbXV0ZXhfdW5sb2NrKCZjdHgtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCisJcmV0dXJu IDA7Cit9CisKK3N0YXRpYyBpbnQgZ2V0X2VuZ2luZXMoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQg KmN0eCwKKwkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSAqYXJncykK K3sKKwlzdHJ1Y3QgaTkxNV9jb250ZXh0X3BhcmFtX2VuZ2luZXMgKmxvY2FsOworCXVuc2lnbmVk IGludCBuLCBjb3VudCwgc2l6ZTsKKwlpbnQgZXJyOworCityZXN0YXJ0OgorCWNvdW50ID0gUkVB RF9PTkNFKGN0eC0+bmVuZ2luZSk7CisJaWYgKGNvdW50ID4gKElOVF9NQVggLSBzaXplb2YoKmxv Y2FsKSkgLyBzaXplb2YoKmxvY2FsLT5jbGFzc19pbnN0YW5jZSkpCisJCXJldHVybiAtRU5PTUVN OyAvKiB1bnJlcHJlc2VudGFibGUhICovCisKKwlzaXplID0gc2l6ZW9mKCpsb2NhbCkgKyBjb3Vu dCAqIHNpemVvZigqbG9jYWwtPmNsYXNzX2luc3RhbmNlKTsKKwlpZiAoIWFyZ3MtPnNpemUpIHsK KwkJYXJncy0+c2l6ZSA9IHNpemU7CisJCXJldHVybiAwOworCX0KKwlpZiAoYXJncy0+c2l6ZSA8 IHNpemUpCisJCXJldHVybiAtRUlOVkFMOworCisJbG9jYWwgPSBrbWFsbG9jKHNpemUsIEdGUF9L RVJORUwpOworCWlmICghbG9jYWwpCisJCXJldHVybiAtRU5PTUVNOworCisJaWYgKG11dGV4X2xv Y2tfaW50ZXJydXB0aWJsZSgmY3R4LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KSkgeworCQllcnIg PSAtRUlOVFI7CisJCWdvdG8gZXJyOworCX0KKworCWlmIChSRUFEX09OQ0UoY3R4LT5uZW5naW5l KSAhPSBjb3VudCkgeworCQltdXRleF91bmxvY2soJmN0eC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRl eCk7CisJCWtmcmVlKGxvY2FsKTsKKwkJZ290byByZXN0YXJ0OworCX0KKworCWxvY2FsLT5leHRl bnNpb25zID0gMDsKKwlmb3IgKG4gPSAwOyBuIDwgY291bnQ7IG4rKykgeworCQlpZiAoY3R4LT5l bmdpbmVzW25dKSB7CisJCQlsb2NhbC0+Y2xhc3NfaW5zdGFuY2Vbbl0uZW5naW5lX2NsYXNzID0K KwkJCQljdHgtPmVuZ2luZXNbbl0tPnVhYmlfY2xhc3M7CisJCQlsb2NhbC0+Y2xhc3NfaW5zdGFu Y2Vbbl0uZW5naW5lX2luc3RhbmNlID0KKwkJCQljdHgtPmVuZ2luZXNbbl0tPmluc3RhbmNlOwor CQl9IGVsc2UgeworCQkJbG9jYWwtPmNsYXNzX2luc3RhbmNlW25dLmVuZ2luZV9jbGFzcyA9CisJ CQkJSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJRDsKKwkJCWxvY2FsLT5jbGFzc19pbnN0YW5jZVtu XS5lbmdpbmVfaW5zdGFuY2UgPQorCQkJCUk5MTVfRU5HSU5FX0NMQVNTX0lOVkFMSURfTk9ORTsK KwkJfQorCX0KKworCW11dGV4X3VubG9jaygmY3R4LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsK KworCWlmIChjb3B5X3RvX3VzZXIodTY0X3RvX3VzZXJfcHRyKGFyZ3MtPnZhbHVlKSwgbG9jYWws IHNpemUpKSB7CisJCWVyciA9IC1FRkFVTFQ7CisJCWdvdG8gZXJyOworCX0KKworCWFyZ3MtPnNp emUgPSBzaXplOworCXJldHVybiAwOworCitlcnI6CisJa2ZyZWUobG9jYWwpOworCXJldHVybiBl cnI7Cit9CisKIHN0YXRpYyBpbnQgY3R4X3NldHBhcmFtKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0 ICpjdHgsCiAJCQljb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gKmFyZ3Mp CiB7CkBAIC05NzEsNiArMTEyMiwxMCBAQCBzdGF0aWMgaW50IGN0eF9zZXRwYXJhbShzdHJ1Y3Qg aTkxNV9nZW1fY29udGV4dCAqY3R4LAogCQkJcmV0ID0gc2V0X3BwZ3R0KGN0eCwgbG93ZXJfMzJf Yml0cyhhcmdzLT52YWx1ZSkpOwogCQlicmVhazsKIAorCWNhc2UgSTkxNV9DT05URVhUX1BBUkFN X0VOR0lORVM6CisJCXJldCA9IHNldF9lbmdpbmVzKGN0eCwgYXJncyk7CisJCWJyZWFrOworCiAJ Y2FzZSBJOTE1X0NPTlRFWFRfUEFSQU1fQkFOX1BFUklPRDoKIAlkZWZhdWx0OgogCQlyZXQgPSAt RUlOVkFMOwpAQCAtMTEyMSw2ICsxMjc2LDkgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfZ2V0cGFy YW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAljYXNlIEk5MTVf Q09OVEVYVF9QQVJBTV9WTToKIAkJcmV0ID0gZ2V0X3BwZ3R0KGN0eCwgJmFyZ3MtPnZhbHVlKTsK IAkJYnJlYWs7CisJY2FzZSBJOTE1X0NPTlRFWFRfUEFSQU1fRU5HSU5FUzoKKwkJcmV0ID0gZ2V0 X2VuZ2luZXMoY3R4LCBhcmdzKTsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0ID0gLUVJTlZB TDsKIAkJYnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9j b250ZXh0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmgKaW5kZXgg YjNhODQwNzQ3MzMwLi42MzVmNjkzOTk0YzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2NvbnRleHQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9jb250ZXh0LmgKQEAgLTY3LDYgKzY3LDggQEAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgewog CS8qKiBmaWxlX3ByaXY6IG93bmluZyBmaWxlIGRlc2NyaXB0b3IgKi8KIAlzdHJ1Y3QgZHJtX2k5 MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXY7CiAKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICoq ZW5naW5lczsKKwogCXN0cnVjdCBpOTE1X3RpbWVsaW5lICp0aW1lbGluZTsKIAogCS8qKgpAQCAt MTM1LDYgKzEzNyw4IEBAIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0IHsKICNkZWZpbmUgQ09OVEVY VF9DTE9TRUQJCQkxCiAjZGVmaW5lIENPTlRFWFRfRk9SQ0VfU0lOR0xFX1NVQk1JU1NJT04JMgog CisJdW5zaWduZWQgaW50IG5lbmdpbmU7CisKIAkvKioKIAkgKiBAaHdfaWQ6IC0gdW5pcXVlIGlk ZW50aWZpZXIgZm9yIHRoZSBjb250ZXh0CiAJICoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2V4ZWNidWZmZXIuYwppbmRleCBlNjNjMTc5ZjNiM2QuLjE3MTg3NTE5ZThmMyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwpAQCAtMjAxNiwxMyArMjAx NiwyMyBAQCBzdGF0aWMgY29uc3QgZW51bSBpbnRlbF9lbmdpbmVfaWQgdXNlcl9yaW5nX21hcFtJ OTE1X1VTRVJfUklOR1MgKyAxXSA9IHsKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICoKLWViX3NlbGVjdF9lbmdpbmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAorZWJfc2VsZWN0X2VuZ2luZShzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyICplYiwKIAkJIHN0cnVj dCBkcm1fZmlsZSAqZmlsZSwKIAkJIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgKmFy Z3MpCiB7CiAJdW5zaWduZWQgaW50IHVzZXJfcmluZ19pZCA9IGFyZ3MtPmZsYWdzICYgSTkxNV9F WEVDX1JJTkdfTUFTSzsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAKKwlpZiAo ZWItPmN0eC0+ZW5naW5lcykgeworCQlpZiAodXNlcl9yaW5nX2lkID49IGViLT5jdHgtPm5lbmdp bmUpIHsKKwkJCURSTV9ERUJVRygiZXhlY2J1ZiB3aXRoIHVua25vd24gcmluZzogJXVcbiIsCisJ CQkJICB1c2VyX3JpbmdfaWQpOworCQkJcmV0dXJuIE5VTEw7CisJCX0KKworCQlyZXR1cm4gZWIt PmN0eC0+ZW5naW5lc1t1c2VyX3JpbmdfaWRdOworCX0KKwogCWlmICh1c2VyX3JpbmdfaWQgPiBJ OTE1X1VTRVJfUklOR1MpIHsKIAkJRFJNX0RFQlVHKCJleGVjYnVmIHdpdGggdW5rbm93biByaW5n OiAldVxuIiwgdXNlcl9yaW5nX2lkKTsKIAkJcmV0dXJuIE5VTEw7CkBAIC0yMDM1LDExICsyMDQ1 LDExIEBAIGViX3NlbGVjdF9lbmdpbmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCQlyZXR1cm4gTlVMTDsKIAl9CiAKLQlpZiAodXNlcl9yaW5nX2lkID09IEk5MTVfRVhFQ19C U0QgJiYgSEFTX0JTRDIoZGV2X3ByaXYpKSB7CisJaWYgKHVzZXJfcmluZ19pZCA9PSBJOTE1X0VY RUNfQlNEICYmIEhBU19CU0QyKGViLT5pOTE1KSkgewogCQl1bnNpZ25lZCBpbnQgYnNkX2lkeCA9 IGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX0JTRF9NQVNLOwogCiAJCWlmIChic2RfaWR4ID09IEk5 MTVfRVhFQ19CU0RfREVGQVVMVCkgewotCQkJYnNkX2lkeCA9IGdlbjhfZGlzcGF0Y2hfYnNkX2Vu Z2luZShkZXZfcHJpdiwgZmlsZSk7CisJCQlic2RfaWR4ID0gZ2VuOF9kaXNwYXRjaF9ic2RfZW5n aW5lKGViLT5pOTE1LCBmaWxlKTsKIAkJfSBlbHNlIGlmIChic2RfaWR4ID49IEk5MTVfRVhFQ19C U0RfUklORzEgJiYKIAkJCSAgIGJzZF9pZHggPD0gSTkxNV9FWEVDX0JTRF9SSU5HMikgewogCQkJ YnNkX2lkeCA+Pj0gSTkxNV9FWEVDX0JTRF9TSElGVDsKQEAgLTIwNTAsOSArMjA2MCw5IEBAIGVi X3NlbGVjdF9lbmdpbmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJcmV0 dXJuIE5VTEw7CiAJCX0KIAotCQllbmdpbmUgPSBkZXZfcHJpdi0+ZW5naW5lW19WQ1MoYnNkX2lk eCldOworCQllbmdpbmUgPSBlYi0+aTkxNS0+ZW5naW5lW19WQ1MoYnNkX2lkeCldOwogCX0gZWxz ZSB7Ci0JCWVuZ2luZSA9IGRldl9wcml2LT5lbmdpbmVbdXNlcl9yaW5nX21hcFt1c2VyX3Jpbmdf aWRdXTsKKwkJZW5naW5lID0gZWItPmk5MTUtPmVuZ2luZVt1c2VyX3JpbmdfbWFwW3VzZXJfcmlu Z19pZF1dOwogCX0KIAogCWlmICghZW5naW5lKSB7CkBAIC0yMjYyLDcgKzIyNzIsNyBAQCBpOTE1 X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJaWYgKHVubGlrZWx5 KGVycikpCiAJCWdvdG8gZXJyX2Rlc3Ryb3k7CiAKLQllYi5lbmdpbmUgPSBlYl9zZWxlY3RfZW5n aW5lKGViLmk5MTUsIGZpbGUsIGFyZ3MpOworCWViLmVuZ2luZSA9IGViX3NlbGVjdF9lbmdpbmUo JmViLCBmaWxlLCBhcmdzKTsKIAlpZiAoIWViLmVuZ2luZSkgewogCQllcnIgPSAtRUlOVkFMOwog CQlnb3RvIGVycl9lbmdpbmU7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJt LmggYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKaW5kZXggOWRiNDU5YjE5ZDRlLi44NGY0 MjMxN2RlOTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAorKysgYi9p bmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKQEAgLTEyMiw2ICsxMjIsOCBAQCBlbnVtIGRybV9p OTE1X2dlbV9lbmdpbmVfY2xhc3MgewogCUk5MTVfRU5HSU5FX0NMQVNTX0lOVkFMSUQJPSAtMQog fTsKIAorI2RlZmluZSBJOTE1X0VOR0lORV9DTEFTU19JTlZBTElEX05PTkUgLTEKKwogLyoqCiAg KiBET0M6IHBlcmZfZXZlbnRzIGV4cG9zZWQgYnkgaTkxNSB0aHJvdWdoIC9zeXMvYnVzL2V2ZW50 X3NvdXJjZXMvZHJpdmVycy9pOTE1CiAgKgpAQCAtMTQ2NCw5ICsxNDY2LDM3IEBAIHN0cnVjdCBk cm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSB7CiAjZGVmaW5lICAgSTkxNV9DT05URVhUX0RFRkFV TFRfUFJJT1JJVFkJCTAKICNkZWZpbmUgICBJOTE1X0NPTlRFWFRfTUlOX1VTRVJfUFJJT1JJVFkJ LTEwMjMgLyogaW5jbHVzaXZlICovCiAjZGVmaW5lIEk5MTVfQ09OVEVYVF9QQVJBTV9WTQkJMHg3 CisKKy8qCisgKiBJOTE1X0NPTlRFWFRfUEFSQU1fRU5HSU5FUzoKKyAqCisgKiBCaW5kIHRoaXMg Y29udGV4dCB0byBvcGVyYXRlIG9uIHRoaXMgc3Vic2V0IG9mIGF2YWlsYWJsZSBlbmdpbmVzLiBI ZW5jZWZvcnRoLAorICogdGhlIEk5MTVfRVhFQ19SSU5HIHNlbGVjdG9yIGZvciBEUk1fSU9DVExf STkxNV9HRU1fRVhFQ0JVRkZFUjIgb3BlcmF0ZXMgYXMKKyAqIGFuIGluZGV4IGludG8gdGhpcyBh cnJheSBvZiBlbmdpbmVzOyBJOTE1X0VYRUNfREVGQVVMVCBzZWxlY3RpbmcgZW5naW5lWzBdCisg KiBhbmQgdXB3YXJkcy4gU2xvdHMgMC4uLk4gYXJlIGZpbGxlZCBpbiB1c2luZyB0aGUgc3BlY2lm aWVkIChjbGFzcywgaW5zdGFuY2UpLgorICogVXNlIChJOTE1X0VOR0lORV9DTEFTU19JTlZBTElE LCBJOTE1X0VOR0lORV9DTEFTU19JTlZBTElEX05PTkUpIHRvIHNwZWNpZnkKKyAqIGEgZ2FwIGlu IHRoZSBhcnJheSB0aGF0IGNhbiBiZSBmaWxsZWQgaW4gbGF0ZXIsIGUuZy4gYnkgYSB2aXJ0dWFs IGVuZ2luZQorICogdXNlZCBmb3IgbG9hZCBiYWxhbmNpbmcuCisgKgorICogU2V0dGluZyB0aGUg bnVtYmVyIG9mIGVuZ2luZXMgYm91bmQgdG8gdGhlIGNvbnRleHQgdG8gMCwgYnkgcGFzc2luZyBh IHplcm8KKyAqIHNpemVkIGFyZ3VtZW50LCB3aWxsIHJldmVydCBiYWNrIHRvIGRlZmF1bHQgc2V0 dGluZ3MuCisgKgorICogU2VlIHN0cnVjdCBpOTE1X2NvbnRleHRfcGFyYW1fZW5naW5lcy4KKyAq LworI2RlZmluZSBJOTE1X0NPTlRFWFRfUEFSQU1fRU5HSU5FUwkweDgKKwogCV9fdTY0IHZhbHVl OwogfTsKIAorc3RydWN0IGk5MTVfY29udGV4dF9wYXJhbV9lbmdpbmVzIHsKKwlfX3U2NCBleHRl bnNpb25zOyAvKiBsaW5rZWQgY2hhaW4gb2YgZXh0ZW5zaW9uIGJsb2NrcywgMCB0ZXJtaW5hdGVz ICovCisKKwlzdHJ1Y3QgeworCQlfX3UxNiBlbmdpbmVfY2xhc3M7IC8qIHNlZSBlbnVtIGRybV9p OTE1X2dlbV9lbmdpbmVfY2xhc3MgKi8KKwkJX191MTYgZW5naW5lX2luc3RhbmNlOworCX0gY2xh c3NfaW5zdGFuY2VbMF07Cit9OworCiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfY3JlYXRl X2V4dF9zZXRwYXJhbSB7CiAjZGVmaW5lIEk5MTVfQ09OVEVYVF9DUkVBVEVfRVhUX1NFVFBBUkFN IDAKIAlzdHJ1Y3QgaTkxNV91c2VyX2V4dGVuc2lvbiBiYXNlOwotLSAKMi4yMC4xCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK