From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniele Ceraolo Spurio Subject: [PATCH 02/12] drm/i915/guc: simplify guc client Date: Tue, 9 Jul 2019 17:54:27 -0700 Message-ID: <20190710005437.3496-3-daniele.ceraolospurio@intel.com> References: <20190710005437.3496-1-daniele.ceraolospurio@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 05C1F8984C for ; Wed, 10 Jul 2019 00:54:59 +0000 (UTC) In-Reply-To: <20190710005437.3496-1-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: intel-gfx@lists.freedesktop.org Cc: Matthew Brost List-Id: intel-gfx@lists.freedesktop.org V2Ugb3JpZ2luYWxseSBhZGRlZCBzdXBwb3J0LCBpbiBzb21lIGNhc2VzIHBhcnRpYWwsIGZvciBk aWZmZXJlbnQgbW9kZXMKb2Ygb3BlcmF0aW9ucyB2aWEgZ3VjIGNsaWVudHM6CgotIHByb3h5IHZz IGRpcmVjdCBzdWJtaXNzaW9uOwotIHZhcmlhYmxlIGVuZ2luZSBtYXNrIHBlci1jbGllbnQuCgpX ZSBvbmx5IGV2ZXIgdXNlZCBvbmUgZmxvdyAoYWxsIHN1Ym1pc3Npb25zIHZpYSBhIHNpbmdsZSBw cm94eSksIHNvIHRoZQpvdGhlciBjb2RlIHBhdGhzIGhhdmVuJ3QgYmVlbiBleGVyY2lzZWQgYW5k IGFyZSBtb3N0IGxpa2VseQpub24tZnVuY3Rpb25hbC4gVGhlIGd1YyBmaXJtd2FyZSBpbnRlcmZh Y2UgaXMgYWxzbyBpbiB0aGUgcHJvY2VzcyBvZgpiZWluZyB1cGRhdGVkIHRvIGJldHRlciBmaXQg dGhlIGk5MTUgZmxvdyBhbmQgb3VyIGNsaWVudCBhYnN0cmFjdGlvbgp3aWxsIG5lZWQgdG8gY2hh bmdlIGFjY29yZGluZ2x5IChvciBwb3NzaWJseSBnbyBhd2F5IGVudGlyZWx5KSwgc28gdGhlc2UK b2xkIHVudXNlZCBwYXRocyBjYW4gYmUgY29uc2lkZXJlZCBkZWFkIGFuZCByZW1vdmVkLgoKU2ln bmVkLW9mZi1ieTogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlv QGludGVsLmNvbT4KQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpD YzogTWljaGFsIFdhamRlY3prbyA8bWljaGFsLndhamRlY3prb0BpbnRlbC5jb20+CkNjOiBNYXR0 aGV3IEJyb3N0IDxtYXR0aGV3LmJyb3N0QGludGVsLmNvbT4KQ2M6IEpvaG4gSGFycmlzb24gPEpv aG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+CkFja2VkLWJ5OiBNYXR0aGV3IEJyb3N0IDxNYXR0aGV3 IEJyb3N0IDxtYXR0aGV3LmJyb3N0QGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYyAgICAgICAgIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2d1Y19zdWJtaXNzaW9uLmMgfCA3MyArKy0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmggfCAgMiAtCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfZ3VjLmMgIHwgMTIgKy0tLQogNCBmaWxlcyBjaGFuZ2Vk LCA4IGluc2VydGlvbnMoKyksIDgyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMKaW5kZXggYjRkMTk1Njc3ODc3Li5kYzY1YTYxMzFhNWIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jCkBAIC0yMDIxLDcgKzIwMjEsNiBAQCBzdGF0aWMgaW50IGk5MTVf Z3VjX3N0YWdlX3Bvb2woc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG5vZGVfdG9faTkxNShtLT5wcml2YXRlKTsKIAlj b25zdCBzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1YzsKIAlzdHJ1Y3QgZ3Vj X3N0YWdlX2Rlc2MgKmRlc2MgPSBndWMtPnN0YWdlX2Rlc2NfcG9vbF92YWRkcjsKLQlzdHJ1Y3Qg aW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50ID0gZ3VjLT5leGVjYnVmX2NsaWVudDsKIAlpbnRlbF9l bmdpbmVfbWFza190IHRtcDsKIAlpbnQgaW5kZXg7CiAKQEAgLTIwNTEsNyArMjA1MCw3IEBAIHN0 YXRpYyBpbnQgaTkxNV9ndWNfc3RhZ2VfcG9vbChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRh dGEpCiAJCQkgICBkZXNjLT53cV9hZGRyLCBkZXNjLT53cV9zaXplKTsKIAkJc2VxX3B1dGMobSwg J1xuJyk7CiAKLQkJZm9yX2VhY2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGRldl9wcml2LCBjbGll bnQtPmVuZ2luZXMsIHRtcCkgeworCQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwg dG1wKSB7CiAJCQl1MzIgZ3VjX2VuZ2luZV9pZCA9IGVuZ2luZS0+Z3VjX2lkOwogCQkJc3RydWN0 IGd1Y19leGVjbGlzdF9jb250ZXh0ICpscmMgPQogCQkJCQkJJmRlc2MtPmxyY1tndWNfZW5naW5l X2lkXTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJtaXNz aW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCmluZGV4 IDg1MjBiYjIyNDE3NS4uMzA2OTJmODI4OWJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2d1Y19zdWJtaXNzaW9uLmMKQEAgLTM2MywxMCArMzYzLDcgQEAgc3RhdGljIHZvaWQgZ3Vj X3N0YWdlX2Rlc2NfcG9vbF9kZXN0cm95KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKIHN0YXRpYyB2 b2lkIGd1Y19zdGFnZV9kZXNjX2luaXQoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCkK IHsKIAlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSBjbGllbnQtPmd1YzsKLQlzdHJ1Y3QgaTkxNV9n ZW1fY29udGV4dCAqY3R4ID0gY2xpZW50LT5vd25lcjsKLQlzdHJ1Y3QgaTkxNV9nZW1fZW5naW5l c19pdGVyIGl0OwogCXN0cnVjdCBndWNfc3RhZ2VfZGVzYyAqZGVzYzsKLQlzdHJ1Y3QgaW50ZWxf Y29udGV4dCAqY2U7CiAJdTMyIGdmeF9hZGRyOwogCiAJZGVzYyA9IF9fZ2V0X3N0YWdlX2Rlc2Mo Y2xpZW50KTsKQEAgLTM4MCw1NSArMzc3LDYgQEAgc3RhdGljIHZvaWQgZ3VjX3N0YWdlX2Rlc2Nf aW5pdChzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQogCWRlc2MtPnByaW9yaXR5ID0g Y2xpZW50LT5wcmlvcml0eTsKIAlkZXNjLT5kYl9pZCA9IGNsaWVudC0+ZG9vcmJlbGxfaWQ7CiAK LQlmb3JfZWFjaF9nZW1fZW5naW5lKGNlLCBpOTE1X2dlbV9jb250ZXh0X2xvY2tfZW5naW5lcyhj dHgpLCBpdCkgewotCQlzdHJ1Y3QgZ3VjX2V4ZWNsaXN0X2NvbnRleHQgKmxyYzsKLQotCQlpZiAo IShjZS0+ZW5naW5lLT5tYXNrICYgY2xpZW50LT5lbmdpbmVzKSkKLQkJCWNvbnRpbnVlOwotCi0J CS8qIFRPRE86IFdlIGhhdmUgYSBkZXNpZ24gaXNzdWUgdG8gYmUgc29sdmVkIGhlcmUuIE9ubHkg d2hlbiB3ZQotCQkgKiByZWNlaXZlIHRoZSBmaXJzdCBiYXRjaCwgd2Uga25vdyB3aGljaCBlbmdp bmUgaXMgdXNlZCBieSB0aGUKLQkJICogdXNlci4gQnV0IGhlcmUgR3VDIGV4cGVjdHMgdGhlIGxy YyBhbmQgcmluZyB0byBiZSBwaW5uZWQuIEl0Ci0JCSAqIGlzIG5vdCBhbiBpc3N1ZSBmb3IgZGVm YXVsdCBjb250ZXh0LCB3aGljaCBpcyB0aGUgb25seSBvbmUKLQkJICogZm9yIG5vdyB3aG8gb3du cyBhIEd1QyBjbGllbnQuIEJ1dCBmb3IgZnV0dXJlIG93bmVyIG9mIEd1QwotCQkgKiBjbGllbnQs IG5lZWQgdG8gbWFrZSBzdXJlIGxyYyBpcyBwaW5uZWQgcHJpb3IgdG8gZW50ZXIgaGVyZS4KLQkJ ICovCi0JCWlmICghY2UtPnN0YXRlKQotCQkJYnJlYWs7CS8qIFhYWDogY29udGludWU/ICovCi0K LQkJLyoKLQkJICogWFhYOiBXaGVuIHRoaXMgaXMgYSBHVUNfU1RBR0VfREVTQ19BVFRSX0tFUk5F TCBjbGllbnQgKHByb3h5Ci0JCSAqIHN1Ym1pc3Npb24gb3IsIGluIG90aGVyIHdvcmRzLCBub3Qg dXNpbmcgYSBkaXJlY3Qgc3VibWlzc2lvbgotCQkgKiBtb2RlbCkgdGhlIEtNRCdzIExSQ0EgaXMg bm90IHVzZWQgZm9yIGFueSB3b3JrIHN1Ym1pc3Npb24uCi0JCSAqIEluc3RlYWQsIHRoZSBHdUMg dXNlcyB0aGUgTFJDQSBvZiB0aGUgdXNlciBtb2RlIGNvbnRleHQgKHNlZQotCQkgKiBndWNfYWRk X3JlcXVlc3QgYmVsb3cpLgotCQkgKi8KLQkJbHJjID0gJmRlc2MtPmxyY1tjZS0+ZW5naW5lLT5n dWNfaWRdOwotCQlscmMtPmNvbnRleHRfZGVzYyA9IGxvd2VyXzMyX2JpdHMoY2UtPmxyY19kZXNj KTsKLQotCQkvKiBUaGUgc3RhdGUgcGFnZSBpcyBhZnRlciBQUEhXU1AgKi8KLQkJbHJjLT5yaW5n X2xyY2EgPSBpbnRlbF9ndWNfZ2d0dF9vZmZzZXQoZ3VjLCBjZS0+c3RhdGUpICsKLQkJCQkgTFJD X1NUQVRFX1BOICogUEFHRV9TSVpFOwotCi0JCS8qIFhYWDogSW4gZGlyZWN0IHN1Ym1pc3Npb24s IHRoZSBHdUMgd2FudHMgdGhlIEhXIGNvbnRleHQgaWQKLQkJICogaGVyZS4gSW4gcHJveHkgc3Vi bWlzc2lvbiwgaXQgd2FudHMgdGhlIHN0YWdlIGlkCi0JCSAqLwotCQlscmMtPmNvbnRleHRfaWQg PSAoY2xpZW50LT5zdGFnZV9pZCA8PCBHVUNfRUxDX0NUWElEX09GRlNFVCkgfAotCQkJCShjZS0+ ZW5naW5lLT5ndWNfaWQgPDwgR1VDX0VMQ19FTkdJTkVfT0ZGU0VUKTsKLQotCQlscmMtPnJpbmdf YmVnaW4gPSBpbnRlbF9ndWNfZ2d0dF9vZmZzZXQoZ3VjLCBjZS0+cmluZy0+dm1hKTsKLQkJbHJj LT5yaW5nX2VuZCA9IGxyYy0+cmluZ19iZWdpbiArIGNlLT5yaW5nLT5zaXplIC0gMTsKLQkJbHJj LT5yaW5nX25leHRfZnJlZV9sb2NhdGlvbiA9IGxyYy0+cmluZ19iZWdpbjsKLQkJbHJjLT5yaW5n X2N1cnJlbnRfdGFpbF9wb2ludGVyX3ZhbHVlID0gMDsKLQotCQlkZXNjLT5lbmdpbmVzX3VzZWQg fD0gQklUKGNlLT5lbmdpbmUtPmd1Y19pZCk7Ci0JfQotCWk5MTVfZ2VtX2NvbnRleHRfdW5sb2Nr X2VuZ2luZXMoY3R4KTsKLQotCURSTV9ERUJVR19EUklWRVIoIkhvc3QgZW5naW5lcyAweCV4ID0+ IEd1QyBlbmdpbmVzIHVzZWQgMHgleFxuIiwKLQkJCSBjbGllbnQtPmVuZ2luZXMsIGRlc2MtPmVu Z2luZXNfdXNlZCk7Ci0JV0FSTl9PTihkZXNjLT5lbmdpbmVzX3VzZWQgPT0gMCk7Ci0KIAkvKgog CSAqIFRoZSBkb29yYmVsbCwgcHJvY2VzcyBkZXNjcmlwdG9yLCBhbmQgd29ya3F1ZXVlIGFyZSBh bGwgcGFydHMKIAkgKiBvZiB0aGUgY2xpZW50IG9iamVjdCwgd2hpY2ggdGhlIEd1QyB3aWxsIHJl ZmVyZW5jZSB2aWEgdGhlIEdHVFQKQEAgLTgzNiw4ICs3ODQsNyBAQCBzdGF0aWMgYm9vbCBndWNf dmVyaWZ5X2Rvb3JiZWxscyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiAKIC8qKgogICogZ3VjX2Ns aWVudF9hbGxvYygpIC0gQWxsb2NhdGUgYW4gaW50ZWxfZ3VjX2NsaWVudAotICogQGRldl9wcml2 Oglkcml2ZXIgcHJpdmF0ZSBkYXRhIHN0cnVjdHVyZQotICogQGVuZ2luZXM6CVRoZSBzZXQgb2Yg ZW5naW5lcyB0byBlbmFibGUgZm9yIHRoaXMgY2xpZW50CisgKiBAZ3VjOgl0aGUgaW50ZWxfZ3Vj IHN0cnVjdHVyZQogICogQHByaW9yaXR5Oglmb3VyIGxldmVscyBwcmlvcml0eSBfQ1JJVElDQUws IF9ISUdILCBfTk9STUFMIGFuZCBfTE9XCiAgKgkJVGhlIGtlcm5lbCBjbGllbnQgdG8gcmVwbGFj ZSBFeGVjTGlzdCBzdWJtaXNzaW9uIGlzIGNyZWF0ZWQgd2l0aAogICoJCU5PUk1BTCBwcmlvcml0 eS4gUHJpb3JpdHkgb2YgYSBjbGllbnQgZm9yIHNjaGVkdWxlciBjYW4gYmUgSElHSCwKQEAgLTg0 OCwxMyArNzk1LDkgQEAgc3RhdGljIGJvb2wgZ3VjX3ZlcmlmeV9kb29yYmVsbHMoc3RydWN0IGlu dGVsX2d1YyAqZ3VjKQogICogUmV0dXJuOglBbiBpbnRlbF9ndWNfY2xpZW50IG9iamVjdCBpZiBz dWNjZXNzLCBlbHNlIE5VTEwuCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAq Ci1ndWNfY2xpZW50X2FsbG9jKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJ IHUzMiBlbmdpbmVzLAotCQkgdTMyIHByaW9yaXR5LAotCQkgc3RydWN0IGk5MTVfZ2VtX2NvbnRl eHQgKmN0eCkKK2d1Y19jbGllbnRfYWxsb2Moc3RydWN0IGludGVsX2d1YyAqZ3VjLCB1MzIgcHJp b3JpdHkpCiB7CiAJc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudDsKLQlzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1YzsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAl2 b2lkICp2YWRkcjsKIAlpbnQgcmV0OwpAQCAtODY0LDggKzgwNyw2IEBAIGd1Y19jbGllbnRfYWxs b2Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlyZXR1cm4gRVJSX1BUUigt RU5PTUVNKTsKIAogCWNsaWVudC0+Z3VjID0gZ3VjOwotCWNsaWVudC0+b3duZXIgPSBjdHg7Ci0J Y2xpZW50LT5lbmdpbmVzID0gZW5naW5lczsKIAljbGllbnQtPnByaW9yaXR5ID0gcHJpb3JpdHk7 CiAJY2xpZW50LT5kb29yYmVsbF9pZCA9IEdVQ19ET09SQkVMTF9JTlZBTElEOwogCXNwaW5fbG9j a19pbml0KCZjbGllbnQtPndxX2xvY2spOwpAQCAtOTEwLDggKzg1MSw4IEBAIGd1Y19jbGllbnRf YWxsb2Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWVsc2UKIAkJY2xpZW50 LT5wcm9jX2Rlc2Nfb2Zmc2V0ID0gKEdVQ19EQl9TSVpFIC8gMik7CiAKLQlEUk1fREVCVUdfRFJJ VkVSKCJuZXcgcHJpb3JpdHkgJXUgY2xpZW50ICVwIGZvciBlbmdpbmUocykgMHgleDogc3RhZ2Vf aWQgJXVcbiIsCi0JCQkgcHJpb3JpdHksIGNsaWVudCwgY2xpZW50LT5lbmdpbmVzLCBjbGllbnQt PnN0YWdlX2lkKTsKKwlEUk1fREVCVUdfRFJJVkVSKCJuZXcgcHJpb3JpdHkgJXUgY2xpZW50ICVw OiBzdGFnZV9pZCAldVxuIiwKKwkJCSBwcmlvcml0eSwgY2xpZW50LCBjbGllbnQtPnN0YWdlX2lk KTsKIAlEUk1fREVCVUdfRFJJVkVSKCJkb29yYmVsbCBpZCAldSwgY2FjaGVsaW5lIG9mZnNldCAw eCVseFxuIiwKIAkJCSBjbGllbnQtPmRvb3JiZWxsX2lkLCBjbGllbnQtPmRvb3JiZWxsX29mZnNl dCk7CiAKQEAgLTk1MSwxNSArODkyLDExIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjdHhfc2F2ZV9y ZXN0b3JlX2Rpc2FibGVkKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKIAogc3RhdGljIGludCBn dWNfY2xpZW50c19jcmVhdGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQogewotCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7CiAJc3RydWN0IGludGVs X2d1Y19jbGllbnQgKmNsaWVudDsKIAogCUdFTV9CVUdfT04oZ3VjLT5leGVjYnVmX2NsaWVudCk7 CiAKLQljbGllbnQgPSBndWNfY2xpZW50X2FsbG9jKGRldl9wcml2LAotCQkJCSAgSU5URUxfSU5G TyhkZXZfcHJpdiktPmVuZ2luZV9tYXNrLAotCQkJCSAgR1VDX0NMSUVOVF9QUklPUklUWV9LTURf Tk9STUFMLAotCQkJCSAgZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0KTsKKwljbGllbnQgPSBndWNf Y2xpZW50X2FsbG9jKGd1YywgR1VDX0NMSUVOVF9QUklPUklUWV9LTURfTk9STUFMKTsKIAlpZiAo SVNfRVJSKGNsaWVudCkpIHsKIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIEd1QyBjbGll bnQgZm9yIHN1Ym1pc3Npb24hXG4iKTsKIAkJcmV0dXJuIFBUUl9FUlIoY2xpZW50KTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5oCmluZGV4IDdkODIzYTUxM2I5 Yy4uODdhMzhjYjZmYWYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9n dWNfc3VibWlzc2lvbi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJt aXNzaW9uLmgKQEAgLTU4LDExICs1OCw5IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlOwogc3Ry dWN0IGludGVsX2d1Y19jbGllbnQgewogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCXZvaWQgKnZh ZGRyOwotCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpvd25lcjsKIAlzdHJ1Y3QgaW50ZWxfZ3Vj ICpndWM7CiAKIAkvKiBiaXRtYXAgb2YgKGhvc3QpIGVuZ2luZSBpZHMgKi8KLQl1MzIgZW5naW5l czsKIAl1MzIgcHJpb3JpdHk7CiAJdTMyIHN0YWdlX2lkOwogCXUzMiBwcm9jX2Rlc2Nfb2Zmc2V0 OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2d1Yy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2d1Yy5jCmluZGV4IDFhMTkx NWU0NGY2Yi4uNmNhNzZmNWE5OGQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvaW50ZWxfZ3VjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2ludGVsX2d1Yy5jCkBAIC0xMDUsMTIgKzEwNSw3IEBAIHN0YXRpYyBpbnQgcmluZ19kb29yYmVs bF9ub3Aoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCkKICAqLwogc3RhdGljIGludCB2 YWxpZGF0ZV9jbGllbnQoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCwgaW50IGNsaWVu dF9wcmlvcml0eSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBndWNf dG9faTkxNShjbGllbnQtPmd1Yyk7Ci0Jc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eF9vd25l ciA9IGRldl9wcml2LT5rZXJuZWxfY29udGV4dDsKLQotCWlmIChjbGllbnQtPm93bmVyICE9IGN0 eF9vd25lciB8fAotCSAgICBjbGllbnQtPmVuZ2luZXMgIT0gSU5URUxfSU5GTyhkZXZfcHJpdikt PmVuZ2luZV9tYXNrIHx8Ci0JICAgIGNsaWVudC0+cHJpb3JpdHkgIT0gY2xpZW50X3ByaW9yaXR5 IHx8CisJaWYgKGNsaWVudC0+cHJpb3JpdHkgIT0gY2xpZW50X3ByaW9yaXR5IHx8CiAJICAgIGNs aWVudC0+ZG9vcmJlbGxfaWQgPT0gR1VDX0RPT1JCRUxMX0lOVkFMSUQpCiAJCXJldHVybiAtRUlO VkFMOwogCWVsc2UKQEAgLTI0NywxMCArMjQyLDcgQEAgc3RhdGljIGludCBpZ3RfZ3VjX2Rvb3Ji ZWxscyh2b2lkICphcmcpCiAJCWdvdG8gdW5sb2NrOwogCiAJZm9yIChpID0gMDsgaSA8IEFUVEVN UFRTOyBpKyspIHsKLQkJY2xpZW50c1tpXSA9IGd1Y19jbGllbnRfYWxsb2MoZGV2X3ByaXYsCi0J CQkJCSAgICAgIElOVEVMX0lORk8oZGV2X3ByaXYpLT5lbmdpbmVfbWFzaywKLQkJCQkJICAgICAg aSAlIEdVQ19DTElFTlRfUFJJT1JJVFlfTlVNLAotCQkJCQkgICAgICBkZXZfcHJpdi0+a2VybmVs X2NvbnRleHQpOworCQljbGllbnRzW2ldID0gZ3VjX2NsaWVudF9hbGxvYyhndWMsIGkgJSBHVUNf Q0xJRU5UX1BSSU9SSVRZX05VTSk7CiAKIAkJaWYgKCFjbGllbnRzW2ldKSB7CiAJCQlwcl9lcnIo IlslZF0gTm8gZ3VjIGNsaWVudFxuIiwgaSk7Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==