From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Brost Subject: Re: [PATCH 2/3] drm/i915/guc: simplify guc client Date: Mon, 8 Jul 2019 17:53:46 -0700 Message-ID: <20190709005346.GB76627@sdutt> References: <20190702200947.26497-1-daniele.ceraolospurio@intel.com> <20190702200947.26497-2-daniele.ceraolospurio@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id CB931898AA for ; Tue, 9 Jul 2019 00:59:58 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190702200947.26497-2-daniele.ceraolospurio@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniele Ceraolo Spurio Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKdWwgMDIsIDIwMTkgYXQgMDE6MDk6NDZQTSAtMDcwMCwgRGFuaWVsZSBDZXJhb2xv IFNwdXJpbyB3cm90ZToKPldlIG9yaWdpbmFsbHkgYWRkZWQgc3VwcG9ydCwgaW4gc29tZSBjYXNl cyBwYXJ0aWFsLCBmb3IgZGlmZmVyZW50IG1vZGVzCj5vZiBvcGVyYXRpb25zIHZpYSBndWMgY2xp ZW50czoKPgo+LSBwcm94eSB2cyBkaXJlY3Qgc3VibWlzc2lvbjsKPi0gdmFyaWFibGUgZW5naW5l IG1hc2sgcGVyLWNsaWVudC4KPgo+V2Ugb25seSBldmVyIHVzZWQgb25lIGZsb3cgKGFsbCBzdWJt aXNzaW9ucyB2aWEgYSBzaW5nbGUgcHJveHkpLCBzbyB0aGUKPm90aGVyIGNvZGUgcGF0aHMgaGF2 ZW4ndCBiZWVuIGV4ZXJjaXNlZCBhbmQgYXJlIG1vc3QgbGlrZWx5Cj5ub24tZnVuY3Rpb25hbC4g VGhlIGd1YyBmaXJtd2FyZSBpbnRlcmZhY2UgaXMgYWxzbyBpbiB0aGUgcHJvY2VzcyBvZgo+YmVp bmcgdXBkYXRlZCB0byBiZXR0ZXIgZml0IHRoZSBpOTE1IGZsb3cgYW5kIG91ciBjbGllbnQgYWJz dHJhY3Rpb24KPndpbGwgbmVlZCB0byBjaGFuZ2UgYWNjb3JkaW5nbHkgKG9yIHBvc3NpYmx5IGdv IGF3YXkgZW50aXJlbHkpLCBzbyB0aGVzZQo+b2xkIHVudXNlZCBwYXRocyBjYW4gYmUgY29uc2lk ZXJlZCBkZWFkIGFuZCByZW1vdmVkLgo+Cj5TaWduZWQtb2ZmLWJ5OiBEYW5pZWxlIENlcmFvbG8g U3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgo+Q2M6IENocmlzIFdpbHNv biA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+Q2M6IE1pY2hhbCBXYWpkZWN6a28gPG1pY2hh bC53YWpkZWN6a29AaW50ZWwuY29tPgo+Q2M6IE1hdHRoZXcgQnJvc3QgPG1hdHRoZXcuYnJvc3RA aW50ZWwuY29tPgo+Q2M6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+ Cj4tLS0KPiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgIHwgIDMg Ky0KPiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5jIHwgNzMgKyst LS0tLS0tLS0tLS0tLS0tLS0tCj4gZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1p c3Npb24uaCB8ICAyIC0KPiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfZ3Vj LmMgIHwgMTIgKy0tLQo+IDQgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA4MiBkZWxl dGlvbnMoLSkKPgoKVGhlIGNsaWVudCBhYnN0cmFjdGlvbiBpcyBsaWtlbHkgZ29pbmcgYXdheSBp biB3aGVuIHRoZSBmaXJtd2FyZSBpbnRlcmZhY2UgaXMKcmV3b3JrZWQgc28gdGhpcyBwYXRjaCBz aG91bGRuJ3QgaW50ZXJmYWNlIHdpdGggYW55IG9mIHRob3NlIGNoYW5nZXMuCgpBY2tlZC1ieTog TWF0dGhldyBCcm9zdCA8TWF0dGhldyBCcm9zdCA8bWF0dGhldy5icm9zdEBpbnRlbC5jb20+Cgo+ ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPmluZGV4IDAyZWFhMTVkNDdjMC4uNjVkZGIy NGEwZjRiIDEwMDY0NAo+LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMK PisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj5AQCAtMjAyOCw3ICsy MDI4LDYgQEAgc3RhdGljIGludCBpOTE1X2d1Y19zdGFnZV9wb29sKHN0cnVjdCBzZXFfZmlsZSAq bSwgdm9pZCAqZGF0YSkKPiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gbm9k ZV90b19pOTE1KG0tPnByaXZhdGUpOwo+IAljb25zdCBzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAm ZGV2X3ByaXYtPmd1YzsKPiAJc3RydWN0IGd1Y19zdGFnZV9kZXNjICpkZXNjID0gZ3VjLT5zdGFn ZV9kZXNjX3Bvb2xfdmFkZHI7Cj4tCXN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQgPSBn dWMtPmV4ZWNidWZfY2xpZW50Owo+IAlpbnRlbF9lbmdpbmVfbWFza190IHRtcDsKPiAJaW50IGlu ZGV4Owo+Cj5AQCAtMjA1OCw3ICsyMDU3LDcgQEAgc3RhdGljIGludCBpOTE1X2d1Y19zdGFnZV9w b29sKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiAJCQkgICBkZXNjLT53cV9hZGRy LCBkZXNjLT53cV9zaXplKTsKPiAJCXNlcV9wdXRjKG0sICdcbicpOwo+Cj4tCQlmb3JfZWFjaF9l bmdpbmVfbWFza2VkKGVuZ2luZSwgZGV2X3ByaXYsIGNsaWVudC0+ZW5naW5lcywgdG1wKSB7Cj4r CQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgdG1wKSB7Cj4gCQkJdTMyIGd1Y19l bmdpbmVfaWQgPSBlbmdpbmUtPmd1Y19pZDsKPiAJCQlzdHJ1Y3QgZ3VjX2V4ZWNsaXN0X2NvbnRl eHQgKmxyYyA9Cj4gCQkJCQkJJmRlc2MtPmxyY1tndWNfZW5naW5lX2lkXTsKPmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYwo+aW5kZXggODUyMGJiMjI0MTc1Li4z MDY5MmY4Mjg5YmQgMTAwNjQ0Cj4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNf c3VibWlzc2lvbi5jCj4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlz c2lvbi5jCj5AQCAtMzYzLDEwICszNjMsNyBAQCBzdGF0aWMgdm9pZCBndWNfc3RhZ2VfZGVzY19w b29sX2Rlc3Ryb3koc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+IHN0YXRpYyB2b2lkIGd1Y19zdGFn ZV9kZXNjX2luaXQoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCkKPiB7Cj4gCXN0cnVj dCBpbnRlbF9ndWMgKmd1YyA9IGNsaWVudC0+Z3VjOwo+LQlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4 dCAqY3R4ID0gY2xpZW50LT5vd25lcjsKPi0Jc3RydWN0IGk5MTVfZ2VtX2VuZ2luZXNfaXRlciBp dDsKPiAJc3RydWN0IGd1Y19zdGFnZV9kZXNjICpkZXNjOwo+LQlzdHJ1Y3QgaW50ZWxfY29udGV4 dCAqY2U7Cj4gCXUzMiBnZnhfYWRkcjsKPgo+IAlkZXNjID0gX19nZXRfc3RhZ2VfZGVzYyhjbGll bnQpOwo+QEAgLTM4MCw1NSArMzc3LDYgQEAgc3RhdGljIHZvaWQgZ3VjX3N0YWdlX2Rlc2NfaW5p dChzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQo+IAlkZXNjLT5wcmlvcml0eSA9IGNs aWVudC0+cHJpb3JpdHk7Cj4gCWRlc2MtPmRiX2lkID0gY2xpZW50LT5kb29yYmVsbF9pZDsKPgo+ LQlmb3JfZWFjaF9nZW1fZW5naW5lKGNlLCBpOTE1X2dlbV9jb250ZXh0X2xvY2tfZW5naW5lcyhj dHgpLCBpdCkgewo+LQkJc3RydWN0IGd1Y19leGVjbGlzdF9jb250ZXh0ICpscmM7Cj4tCj4tCQlp ZiAoIShjZS0+ZW5naW5lLT5tYXNrICYgY2xpZW50LT5lbmdpbmVzKSkKPi0JCQljb250aW51ZTsK Pi0KPi0JCS8qIFRPRE86IFdlIGhhdmUgYSBkZXNpZ24gaXNzdWUgdG8gYmUgc29sdmVkIGhlcmUu IE9ubHkgd2hlbiB3ZQo+LQkJICogcmVjZWl2ZSB0aGUgZmlyc3QgYmF0Y2gsIHdlIGtub3cgd2hp Y2ggZW5naW5lIGlzIHVzZWQgYnkgdGhlCj4tCQkgKiB1c2VyLiBCdXQgaGVyZSBHdUMgZXhwZWN0 cyB0aGUgbHJjIGFuZCByaW5nIHRvIGJlIHBpbm5lZC4gSXQKPi0JCSAqIGlzIG5vdCBhbiBpc3N1 ZSBmb3IgZGVmYXVsdCBjb250ZXh0LCB3aGljaCBpcyB0aGUgb25seSBvbmUKPi0JCSAqIGZvciBu b3cgd2hvIG93bnMgYSBHdUMgY2xpZW50LiBCdXQgZm9yIGZ1dHVyZSBvd25lciBvZiBHdUMKPi0J CSAqIGNsaWVudCwgbmVlZCB0byBtYWtlIHN1cmUgbHJjIGlzIHBpbm5lZCBwcmlvciB0byBlbnRl ciBoZXJlLgo+LQkJICovCj4tCQlpZiAoIWNlLT5zdGF0ZSkKPi0JCQlicmVhazsJLyogWFhYOiBj b250aW51ZT8gKi8KPi0KPi0JCS8qCj4tCQkgKiBYWFg6IFdoZW4gdGhpcyBpcyBhIEdVQ19TVEFH RV9ERVNDX0FUVFJfS0VSTkVMIGNsaWVudCAocHJveHkKPi0JCSAqIHN1Ym1pc3Npb24gb3IsIGlu IG90aGVyIHdvcmRzLCBub3QgdXNpbmcgYSBkaXJlY3Qgc3VibWlzc2lvbgo+LQkJICogbW9kZWwp IHRoZSBLTUQncyBMUkNBIGlzIG5vdCB1c2VkIGZvciBhbnkgd29yayBzdWJtaXNzaW9uLgo+LQkJ ICogSW5zdGVhZCwgdGhlIEd1QyB1c2VzIHRoZSBMUkNBIG9mIHRoZSB1c2VyIG1vZGUgY29udGV4 dCAoc2VlCj4tCQkgKiBndWNfYWRkX3JlcXVlc3QgYmVsb3cpLgo+LQkJICovCj4tCQlscmMgPSAm ZGVzYy0+bHJjW2NlLT5lbmdpbmUtPmd1Y19pZF07Cj4tCQlscmMtPmNvbnRleHRfZGVzYyA9IGxv d2VyXzMyX2JpdHMoY2UtPmxyY19kZXNjKTsKPi0KPi0JCS8qIFRoZSBzdGF0ZSBwYWdlIGlzIGFm dGVyIFBQSFdTUCAqLwo+LQkJbHJjLT5yaW5nX2xyY2EgPSBpbnRlbF9ndWNfZ2d0dF9vZmZzZXQo Z3VjLCBjZS0+c3RhdGUpICsKPi0JCQkJIExSQ19TVEFURV9QTiAqIFBBR0VfU0laRTsKPi0KPi0J CS8qIFhYWDogSW4gZGlyZWN0IHN1Ym1pc3Npb24sIHRoZSBHdUMgd2FudHMgdGhlIEhXIGNvbnRl eHQgaWQKPi0JCSAqIGhlcmUuIEluIHByb3h5IHN1Ym1pc3Npb24sIGl0IHdhbnRzIHRoZSBzdGFn ZSBpZAo+LQkJICovCj4tCQlscmMtPmNvbnRleHRfaWQgPSAoY2xpZW50LT5zdGFnZV9pZCA8PCBH VUNfRUxDX0NUWElEX09GRlNFVCkgfAo+LQkJCQkoY2UtPmVuZ2luZS0+Z3VjX2lkIDw8IEdVQ19F TENfRU5HSU5FX09GRlNFVCk7Cj4tCj4tCQlscmMtPnJpbmdfYmVnaW4gPSBpbnRlbF9ndWNfZ2d0 dF9vZmZzZXQoZ3VjLCBjZS0+cmluZy0+dm1hKTsKPi0JCWxyYy0+cmluZ19lbmQgPSBscmMtPnJp bmdfYmVnaW4gKyBjZS0+cmluZy0+c2l6ZSAtIDE7Cj4tCQlscmMtPnJpbmdfbmV4dF9mcmVlX2xv Y2F0aW9uID0gbHJjLT5yaW5nX2JlZ2luOwo+LQkJbHJjLT5yaW5nX2N1cnJlbnRfdGFpbF9wb2lu dGVyX3ZhbHVlID0gMDsKPi0KPi0JCWRlc2MtPmVuZ2luZXNfdXNlZCB8PSBCSVQoY2UtPmVuZ2lu ZS0+Z3VjX2lkKTsKPi0JfQo+LQlpOTE1X2dlbV9jb250ZXh0X3VubG9ja19lbmdpbmVzKGN0eCk7 Cj4tCj4tCURSTV9ERUJVR19EUklWRVIoIkhvc3QgZW5naW5lcyAweCV4ID0+IEd1QyBlbmdpbmVz IHVzZWQgMHgleFxuIiwKPi0JCQkgY2xpZW50LT5lbmdpbmVzLCBkZXNjLT5lbmdpbmVzX3VzZWQp Owo+LQlXQVJOX09OKGRlc2MtPmVuZ2luZXNfdXNlZCA9PSAwKTsKPi0KPiAJLyoKPiAJICogVGhl IGRvb3JiZWxsLCBwcm9jZXNzIGRlc2NyaXB0b3IsIGFuZCB3b3JrcXVldWUgYXJlIGFsbCBwYXJ0 cwo+IAkgKiBvZiB0aGUgY2xpZW50IG9iamVjdCwgd2hpY2ggdGhlIEd1QyB3aWxsIHJlZmVyZW5j ZSB2aWEgdGhlIEdHVFQKPkBAIC04MzYsOCArNzg0LDcgQEAgc3RhdGljIGJvb2wgZ3VjX3Zlcmlm eV9kb29yYmVsbHMoc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+Cj4gLyoqCj4gICogZ3VjX2NsaWVu dF9hbGxvYygpIC0gQWxsb2NhdGUgYW4gaW50ZWxfZ3VjX2NsaWVudAo+LSAqIEBkZXZfcHJpdjoJ ZHJpdmVyIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmUKPi0gKiBAZW5naW5lczoJVGhlIHNldCBvZiBl bmdpbmVzIHRvIGVuYWJsZSBmb3IgdGhpcyBjbGllbnQKPisgKiBAZ3VjOgl0aGUgaW50ZWxfZ3Vj IHN0cnVjdHVyZQo+ICAqIEBwcmlvcml0eToJZm91ciBsZXZlbHMgcHJpb3JpdHkgX0NSSVRJQ0FM LCBfSElHSCwgX05PUk1BTCBhbmQgX0xPVwo+ICAqCQlUaGUga2VybmVsIGNsaWVudCB0byByZXBs YWNlIEV4ZWNMaXN0IHN1Ym1pc3Npb24gaXMgY3JlYXRlZCB3aXRoCj4gICoJCU5PUk1BTCBwcmlv cml0eS4gUHJpb3JpdHkgb2YgYSBjbGllbnQgZm9yIHNjaGVkdWxlciBjYW4gYmUgSElHSCwKPkBA IC04NDgsMTMgKzc5NSw5IEBAIHN0YXRpYyBib29sIGd1Y192ZXJpZnlfZG9vcmJlbGxzKHN0cnVj dCBpbnRlbF9ndWMgKmd1YykKPiAgKiBSZXR1cm46CUFuIGludGVsX2d1Y19jbGllbnQgb2JqZWN0 IGlmIHN1Y2Nlc3MsIGVsc2UgTlVMTC4KPiAgKi8KPiBzdGF0aWMgc3RydWN0IGludGVsX2d1Y19j bGllbnQgKgo+LWd1Y19jbGllbnRfYWxsb2Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+LQkJIHUzMiBlbmdpbmVzLAo+LQkJIHUzMiBwcmlvcml0eSwKPi0JCSBzdHJ1Y3QgaTkx NV9nZW1fY29udGV4dCAqY3R4KQo+K2d1Y19jbGllbnRfYWxsb2Moc3RydWN0IGludGVsX2d1YyAq Z3VjLCB1MzIgcHJpb3JpdHkpCj4gewo+IAlzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50 Owo+LQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1YzsKPiAJc3RydWN0IGk5 MTVfdm1hICp2bWE7Cj4gCXZvaWQgKnZhZGRyOwo+IAlpbnQgcmV0Owo+QEAgLTg2NCw4ICs4MDcs NiBAQCBndWNfY2xpZW50X2FsbG9jKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+Cj4gCWNsaWVudC0+Z3VjID0gZ3VjOwo+LQlj bGllbnQtPm93bmVyID0gY3R4Owo+LQljbGllbnQtPmVuZ2luZXMgPSBlbmdpbmVzOwo+IAljbGll bnQtPnByaW9yaXR5ID0gcHJpb3JpdHk7Cj4gCWNsaWVudC0+ZG9vcmJlbGxfaWQgPSBHVUNfRE9P UkJFTExfSU5WQUxJRDsKPiAJc3Bpbl9sb2NrX2luaXQoJmNsaWVudC0+d3FfbG9jayk7Cj5AQCAt OTEwLDggKzg1MSw4IEBAIGd1Y19jbGllbnRfYWxsb2Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+IAllbHNlCj4gCQljbGllbnQtPnByb2NfZGVzY19vZmZzZXQgPSAoR1VDX0RC X1NJWkUgLyAyKTsKPgo+LQlEUk1fREVCVUdfRFJJVkVSKCJuZXcgcHJpb3JpdHkgJXUgY2xpZW50 ICVwIGZvciBlbmdpbmUocykgMHgleDogc3RhZ2VfaWQgJXVcbiIsCj4tCQkJIHByaW9yaXR5LCBj bGllbnQsIGNsaWVudC0+ZW5naW5lcywgY2xpZW50LT5zdGFnZV9pZCk7Cj4rCURSTV9ERUJVR19E UklWRVIoIm5ldyBwcmlvcml0eSAldSBjbGllbnQgJXA6IHN0YWdlX2lkICV1XG4iLAo+KwkJCSBw cmlvcml0eSwgY2xpZW50LCBjbGllbnQtPnN0YWdlX2lkKTsKPiAJRFJNX0RFQlVHX0RSSVZFUigi ZG9vcmJlbGwgaWQgJXUsIGNhY2hlbGluZSBvZmZzZXQgMHglbHhcbiIsCj4gCQkJIGNsaWVudC0+ ZG9vcmJlbGxfaWQsIGNsaWVudC0+ZG9vcmJlbGxfb2Zmc2V0KTsKPgo+QEAgLTk1MSwxNSArODky LDExIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjdHhfc2F2ZV9yZXN0b3JlX2Rpc2FibGVkKHN0cnVj dCBpbnRlbF9jb250ZXh0ICpjZSkKPgo+IHN0YXRpYyBpbnQgZ3VjX2NsaWVudHNfY3JlYXRlKHN0 cnVjdCBpbnRlbF9ndWMgKmd1YykKPiB7Cj4tCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7Cj4gCXN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGll bnQ7Cj4KPiAJR0VNX0JVR19PTihndWMtPmV4ZWNidWZfY2xpZW50KTsKPgo+LQljbGllbnQgPSBn dWNfY2xpZW50X2FsbG9jKGRldl9wcml2LAo+LQkJCQkgIElOVEVMX0lORk8oZGV2X3ByaXYpLT5l bmdpbmVfbWFzaywKPi0JCQkJICBHVUNfQ0xJRU5UX1BSSU9SSVRZX0tNRF9OT1JNQUwsCj4tCQkJ CSAgZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0KTsKPisJY2xpZW50ID0gZ3VjX2NsaWVudF9hbGxv YyhndWMsIEdVQ19DTElFTlRfUFJJT1JJVFlfS01EX05PUk1BTCk7Cj4gCWlmIChJU19FUlIoY2xp ZW50KSkgewo+IAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIEd1QyBjbGllbnQgZm9yIHN1 Ym1pc3Npb24hXG4iKTsKPiAJCXJldHVybiBQVFJfRVJSKGNsaWVudCk7Cj5kaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmgKPmluZGV4IDdkODIzYTUxM2I5Yy4uODdh MzhjYjZmYWYzIDEwMDY0NAo+LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1 Ym1pc3Npb24uaAo+KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Np b24uaAo+QEAgLTU4LDExICs1OCw5IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlOwo+IHN0cnVj dCBpbnRlbF9ndWNfY2xpZW50IHsKPiAJc3RydWN0IGk5MTVfdm1hICp2bWE7Cj4gCXZvaWQgKnZh ZGRyOwo+LQlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqb3duZXI7Cj4gCXN0cnVjdCBpbnRlbF9n dWMgKmd1YzsKPgo+IAkvKiBiaXRtYXAgb2YgKGhvc3QpIGVuZ2luZSBpZHMgKi8KPi0JdTMyIGVu Z2luZXM7Cj4gCXUzMiBwcmlvcml0eTsKPiAJdTMyIHN0YWdlX2lkOwo+IAl1MzIgcHJvY19kZXNj X29mZnNldDsKPmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50 ZWxfZ3VjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfZ3VjLmMKPmlu ZGV4IDFhMTkxNWU0NGY2Yi4uNmNhNzZmNWE5OGQ0IDEwMDY0NAo+LS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2d1Yy5jCj4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvaW50ZWxfZ3VjLmMKPkBAIC0xMDUsMTIgKzEwNSw3IEBAIHN0YXRpYyBpbnQg cmluZ19kb29yYmVsbF9ub3Aoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCkKPiAgKi8K PiBzdGF0aWMgaW50IHZhbGlkYXRlX2NsaWVudChzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xp ZW50LCBpbnQgY2xpZW50X3ByaW9yaXR5KQo+IHsKPi0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZ3VjX3RvX2k5MTUoY2xpZW50LT5ndWMpOwo+LQlzdHJ1Y3QgaTkxNV9nZW1f Y29udGV4dCAqY3R4X293bmVyID0gZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0Owo+LQo+LQlpZiAo Y2xpZW50LT5vd25lciAhPSBjdHhfb3duZXIgfHwKPi0JICAgIGNsaWVudC0+ZW5naW5lcyAhPSBJ TlRFTF9JTkZPKGRldl9wcml2KS0+ZW5naW5lX21hc2sgfHwKPi0JICAgIGNsaWVudC0+cHJpb3Jp dHkgIT0gY2xpZW50X3ByaW9yaXR5IHx8Cj4rCWlmIChjbGllbnQtPnByaW9yaXR5ICE9IGNsaWVu dF9wcmlvcml0eSB8fAo+IAkgICAgY2xpZW50LT5kb29yYmVsbF9pZCA9PSBHVUNfRE9PUkJFTExf SU5WQUxJRCkKPiAJCXJldHVybiAtRUlOVkFMOwo+IAllbHNlCj5AQCAtMjQ3LDEwICsyNDIsNyBA QCBzdGF0aWMgaW50IGlndF9ndWNfZG9vcmJlbGxzKHZvaWQgKmFyZykKPiAJCWdvdG8gdW5sb2Nr Owo+Cj4gCWZvciAoaSA9IDA7IGkgPCBBVFRFTVBUUzsgaSsrKSB7Cj4tCQljbGllbnRzW2ldID0g Z3VjX2NsaWVudF9hbGxvYyhkZXZfcHJpdiwKPi0JCQkJCSAgICAgIElOVEVMX0lORk8oZGV2X3By aXYpLT5lbmdpbmVfbWFzaywKPi0JCQkJCSAgICAgIGkgJSBHVUNfQ0xJRU5UX1BSSU9SSVRZX05V TSwKPi0JCQkJCSAgICAgIGRldl9wcml2LT5rZXJuZWxfY29udGV4dCk7Cj4rCQljbGllbnRzW2ld ID0gZ3VjX2NsaWVudF9hbGxvYyhndWMsIGkgJSBHVUNfQ0xJRU5UX1BSSU9SSVRZX05VTSk7Cj4K PiAJCWlmICghY2xpZW50c1tpXSkgewo+IAkJCXByX2VycigiWyVkXSBObyBndWMgY2xpZW50XG4i LCBpKTsKPi0tIAo+Mi4yMC4xCj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4