From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: Re: [PATCH 25/55] drm/i915: Update i915_gem_object_sync() to take a request structure Date: Tue, 02 Jun 2015 19:26:50 +0100 Message-ID: <556DF56A.3040408@intel.com> References: <1432917856-12261-1-git-send-email-John.C.Harrison@Intel.com> <1432917856-12261-26-git-send-email-John.C.Harrison@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 ESMTP id 692406E762 for ; Tue, 2 Jun 2015 11:26:52 -0700 (PDT) In-Reply-To: <1432917856-12261-26-git-send-email-John.C.Harrison@Intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: John.C.Harrison@Intel.com, Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gMjkvMDUvMjAxNSAxNzo0MywgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToKPiBG cm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Cj4gVGhlIHBs YW4gaXMgdG8gcGFzcyByZXF1ZXN0cyBhcm91bmQgYXMgdGhlIGJhc2ljIHN1Ym1pc3Npb24gdHJh Y2tpbmcgc3RydWN0dXJlCj4gcmF0aGVyIHRoYW4gcmluZ3MgYW5kIGNvbnRleHRzLiBUaGlzIHBh dGNoIHVwZGF0ZXMgdGhlIGk5MTVfZ2VtX29iamVjdF9zeW5jKCkKPiBjb2RlIHBhdGguCj4KPiB2 MjogTXVjaCBtb3JlIGNvbXBsZXggcGF0Y2ggdG8gc2hhcmUgYSBzaW5nbGUgcmVxdWVzdCBiZXR3 ZWVuIHRoZSBzeW5jIGFuZCB0aGUKPiBwYWdlIGZsaXAuIFRoZSBfc3luYygpIGZ1bmN0aW9uIG5v dyBzdXBwb3J0cyBsYXp5IGFsbG9jYXRpb24gb2YgdGhlIHJlcXVlc3QKPiBzdHJ1Y3R1cmUuIFRo YXQgaXMsIGlmIG9uZSBpcyBwYXNzZWQgaW4gdGhlbiB0aGF0IHdpbGwgYmUgdXNlZC4gSWYgb25l IGlzIG5vdCwKPiB0aGVuIGEgcmVxdWVzdCB3aWxsIGJlIGFsbG9jYXRlZCBhbmQgcGFzc2VkIGJh Y2sgb3V0LiBOb3RlIHRoYXQgdGhlIF9zeW5jKCkgY29kZQo+IGRvZXMgbm90IG5lY2Vzc2FyaWx5 IHJlcXVpcmUgYSByZXF1ZXN0LiBUaHVzIG9uZSB3aWxsIG9ubHkgYmUgY3JlYXRlZCB1bnRpbAo+ IGNlcnRhaW4gc2l0dWF0aW9ucy4gVGhlIHJlYXNvbiB0aGUgbGF6eSBhbGxvY2F0aW9uIG11c3Qg YmUgZG9uZSB3aXRoaW4gdGhlCj4gX3N5bmMoKSBjb2RlIGl0c2VsZiBpcyBiZWNhdXNlIHRoZSBk ZWNpc2lvbiB0byBuZWVkIG9uZSBvciBub3QgaXMgbm90IHJlYWxseQo+IHNvbWV0aGluZyB0aGF0 IGNvZGUgYWJvdmUgY2FuIHNlY29uZCBndWVzcyAoZXhjZXB0IGluIHRoZSBjYXNlIHdoZXJlIG9u ZSBpcwo+IGRlZmluaXRlbHkgbm90IHJlcXVpcmVkIGJlY2F1c2Ugbm8gcmluZyBpcyBwYXNzZWQg aW4pLgo+Cj4gVGhlIGNhbGwgY2hhaW5zIGFib3ZlIF9zeW5jKCkgbm93IHN1cHBvcnQgcGFzc2lu ZyBhIHJlcXVlc3QgdGhyb3VnaCB3aGljaCBtb3N0Cj4gY2FsbGVycyBwYXNzaW5nIGluIE5VTEwg YW5kIGFzc3VtaW5nIHRoYXQgbm8gcmVxdWVzdCB3aWxsIGJlIHJlcXVpcmVkIChiZWNhdXNlCj4g dGhleSBhbHNvIHBhc3MgaW4gTlVMTCBmb3IgdGhlIHJpbmcgYW5kIHRoZXJlZm9yZSBjYW4ndCBi ZSBnZW5lcmF0aW5nIGFueSByaW5nCj4gY29kZSkuCj4KPiBUaGUgZXhlY2VwdGlvbiBpcyBpbnRl bF9jcnRjX3BhZ2VfZmxpcCgpIHdoaWNoIG5vdyBzdXBwb3J0cyBoYXZpbmcgYSByZXF1ZXN0Cgox LiAiVGhlIGV4ZWNlcHRpb24iIC0+ICJUaGUgZXhjZXB0aW9uIgoKPiByZXR1cm5lZCBmcm9tIF9z eW5jKCkuIElmIG9uZSBpcywgdGhlbiB0aGF0IHJlcXVlc3QgaXMgc2hhcmVkIGJ5IHRoZSBwYWdl IGZsaXAKPiAoaWYgdGhlIHBhZ2UgZmxpcCBpcyBvZiBhIHR5cGUgdG8gbmVlZCBhIHJlcXVlc3Qp LiBJZiBfc3luYygpIGRvZXMgbm90IGdlbmVyYXRlCj4gYSByZXF1ZXN0IGJ1dCB0aGUgcGFnZSBm bGlwIGRvZXMgbmVlZCBvbmUsIHRoZW4gdGhlIHBhZ2UgZmxpcCBwYXRoIHdpbGwgY3JlYXRlCj4g aXRzIG93biByZXF1ZXN0Lgo+Cj4gdjM6IFVwZGF0ZWQgY29tbWVudCBkZXNjcmlwdGlvbiB0byBi ZSBjbGVhcmVyIGFib3V0ICd0b19yZXEnIHBhcmFtZXRlciAoVG9tYXMKPiBFbGYgcmV2aWV3IHJl cXVlc3QpLiBSZWJhc2VkIG9udG8gbmV3ZXIgdHJlZSB0aGF0IHNpZ25pZmljYW50bHkgY2hhbmdl ZCB0aGUKPiBzeW5jaHJvbmlzYXRpb24gY29kZS4KPgo+IEZvcjogVklaLTUxMTUKPiBTaWduZWQt b2ZmLWJ5OiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+IC0tLQo+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgIHwgICAgNCArKy0K PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8ICAgNDggKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZXhlY2J1ZmZlci5jIHwgICAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jICAgICAgIHwgICAxNyArKysrKysrLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCAgICAgICAgICAgfCAgICAzICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9mYmRldi5jICAgICAgICAgfCAgICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuYyAgICAgICAgICAgfCAgICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9vdmVybGF5LmMgICAgICAgfCAgICAyICstCj4gICA4IGZpbGVzIGNoYW5nZWQsIDU4 IGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o Cj4gaW5kZXggNjRhMTBmYS4uZjY5ZTljYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ IEBAIC0yNzc4LDcgKzI3NzgsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1fb2JqZWN0 X3VucGluX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4KPiAgIGludCBf X211c3RfY2hlY2sgaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7Cj4gICBpbnQgaTkxNV9nZW1fb2JqZWN0X3N5bmMoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaiwKPiAtCQkJIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnRvKTsKPiArCQkJ IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnRvLAo+ICsJCQkgc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICoqdG9fcmVxKTsKPiAgIHZvaWQgaTkxNV92bWFfbW92ZV90b19hY3RpdmUoc3RydWN0 IGk5MTVfdm1hICp2bWEsCj4gICAJCQkgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcp Owo+ICAgaW50IGk5MTVfZ2VtX2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2 LAo+IEBAIC0yODg5LDYgKzI4OTAsNyBAQCBpbnQgX19tdXN0X2NoZWNrCj4gICBpOTE1X2dlbV9v YmplY3RfcGluX3RvX2Rpc3BsYXlfcGxhbmUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiwKPiAgIAkJCQkgICAgIHUzMiBhbGlnbm1lbnQsCj4gICAJCQkJICAgICBzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpwaXBlbGluZWQsCj4gKwkJCQkgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqKnBpcGVsaW5lZF9yZXF1ZXN0LAo+ICAgCQkJCSAgICAgY29uc3Qgc3RydWN0IGk5MTVf Z2d0dF92aWV3ICp2aWV3KTsKPiAgIHZvaWQgaTkxNV9nZW1fb2JqZWN0X3VucGluX2Zyb21fZGlz cGxheV9wbGFuZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAgCQkJCQkgICAg ICBjb25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcpOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYwo+IGluZGV4IGI3ZDY2YWEuLmRiOTAwNDMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMKPiBAQCAtMzA5OCwyNSArMzA5OCwyNiBAQCBvdXQ6Cj4gICBzdGF0aWMgaW50Cj4gICBfX2k5 MTVfZ2VtX29iamVjdF9zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gICAJ CSAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICp0bywKPiAtCQkgICAgICAgc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gKwkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqZnJvbV9yZXEsCj4gKwkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqKnRvX3JlcSkKPiAgIHsKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpmcm9tOwo+ICAg CWludCByZXQ7Cj4KPiAtCWZyb20gPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9yaW5nKHJlcSk7Cj4g Kwlmcm9tID0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfcmluZyhmcm9tX3JlcSk7Cj4gICAJaWYgKHRv ID09IGZyb20pCj4gICAJCXJldHVybiAwOwo+Cj4gLQlpZiAoaTkxNV9nZW1fcmVxdWVzdF9jb21w bGV0ZWQocmVxLCB0cnVlKSkKPiArCWlmIChpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChmcm9t X3JlcSwgdHJ1ZSkpCj4gICAJCXJldHVybiAwOwo+Cj4gLQlyZXQgPSBpOTE1X2dlbV9jaGVja19v bHIocmVxKTsKPiArCXJldCA9IGk5MTVfZ2VtX2NoZWNrX29scihmcm9tX3JlcSk7Cj4gICAJaWYg KHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+ICAgCWlmICghaTkxNV9zZW1hcGhvcmVfaXNfZW5h YmxlZChvYmotPmJhc2UuZGV2KSkgewo+ICAgCQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSA9IHRvX2k5MTUob2JqLT5iYXNlLmRldik7Cj4gLQkJcmV0ID0gX19pOTE1X3dhaXRfcmVxdWVz dChyZXEsCj4gKwkJcmV0ID0gX19pOTE1X3dhaXRfcmVxdWVzdChmcm9tX3JlcSwKPiAgIAkJCQkJ ICBhdG9taWNfcmVhZCgmaTkxNS0+Z3B1X2Vycm9yLnJlc2V0X2NvdW50ZXIpLAo+ICAgCQkJCQkg IGk5MTUtPm1tLmludGVycnVwdGlibGUsCj4gICAJCQkJCSAgTlVMTCwKPiBAQCAtMzEyNCwxNSAr MzEyNSwyNSBAQCBfX2k5MTVfZ2VtX29iamVjdF9zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmosCj4gICAJCWlmIChyZXQpCj4gICAJCQlyZXR1cm4gcmV0Owo+Cj4gLQkJaTkxNV9n ZW1fb2JqZWN0X3JldGlyZV9yZXF1ZXN0KG9iaiwgcmVxKTsKPiArCQlpOTE1X2dlbV9vYmplY3Rf cmV0aXJlX3JlcXVlc3Qob2JqLCBmcm9tX3JlcSk7Cj4gICAJfSBlbHNlIHsKPiAgIAkJaW50IGlk eCA9IGludGVsX3Jpbmdfc3luY19pbmRleChmcm9tLCB0byk7Cj4gLQkJdTMyIHNlcW5vID0gaTkx NV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8ocmVxKTsKPiArCQl1MzIgc2Vxbm8gPSBpOTE1X2dlbV9y ZXF1ZXN0X2dldF9zZXFubyhmcm9tX3JlcSk7Cj4KPiArCQlXQVJOX09OKCF0b19yZXEpOwo+ICsK PiArCQkvKiBPcHRpbWl6YXRpb246IEF2b2lkIHNlbWFwaG9yZSBzeW5jIHdoZW4gd2UgYXJlIHN1 cmUgd2UgYWxyZWFkeQo+ICsJCSAqIHdhaXRlZCBmb3IgYW4gb2JqZWN0IHdpdGggaGlnaGVyIHNl cW5vICovCgoyLiBIb3cgYWJvdXQgdXNpbmcgdGhlIHN0YW5kYXJkIG11bHRpLWxpbmUgY29tbWVu dCBmb3JtYXQ/CgovKiAoZW1wdHkgbGluZSkKICAqIChmaXJzdCBsaW5lKQogICogKHNlY29uZCBs aW5lKQogICovCgo+ICAgCQlpZiAoc2Vxbm8gPD0gZnJvbS0+c2VtYXBob3JlLnN5bmNfc2Vxbm9b aWR4XSkKPiAgIAkJCXJldHVybiAwOwo+Cj4gLQkJdHJhY2VfaTkxNV9nZW1fcmluZ19zeW5jX3Rv KGZyb20sIHRvLCByZXEpOwo+ICsJCWlmICgqdG9fcmVxID09IE5VTEwpIHsKPiArCQkJcmV0ID0g aTkxNV9nZW1fcmVxdWVzdF9hbGxvYyh0bywgdG8tPmRlZmF1bHRfY29udGV4dCwgdG9fcmVxKTsK PiArCQkJaWYgKHJldCkKPiArCQkJCXJldHVybiByZXQ7Cj4gKwkJfQo+ICsKPiArCQl0cmFjZV9p OTE1X2dlbV9yaW5nX3N5bmNfdG8oZnJvbSwgdG8sIGZyb21fcmVxKTsKPiAgIAkJcmV0ID0gdG8t PnNlbWFwaG9yZS5zeW5jX3RvKHRvLCBmcm9tLCBzZXFubyk7Cj4gICAJCWlmIChyZXQpCj4gICAJ CQlyZXR1cm4gcmV0Owo+IEBAIC0zMTUzLDYgKzMxNjQsOSBAQCBfX2k5MTVfZ2VtX29iamVjdF9z eW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gICAgKgo+ICAgICogQG9iajog b2JqZWN0IHdoaWNoIG1heSBiZSBpbiB1c2Ugb24gYW5vdGhlciByaW5nLgo+ICAgICogQHRvOiBy aW5nIHdlIHdpc2ggdG8gdXNlIHRoZSBvYmplY3Qgb24uIE1heSBiZSBOVUxMLgo+ICsgKiBAdG9f cmVxOiByZXF1ZXN0IHdlIHdpc2ggdG8gdXNlIHRoZSBvYmplY3QgZm9yLiBTZWUgYmVsb3cuCj4g KyAqICAgICAgICAgIFRoaXMgd2lsbCBiZSBhbGxvY2F0ZWQgYW5kIHJldHVybmVkIGlmIGEgcmVx dWVzdCBpcwo+ICsgKiAgICAgICAgICByZXF1aXJlZCBidXQgbm90IHBhc3NlZCBpbi4KPiAgICAq Cj4gICAgKiBUaGlzIGNvZGUgaXMgbWVhbnQgdG8gYWJzdHJhY3Qgb2JqZWN0IHN5bmNocm9uaXph dGlvbiB3aXRoIHRoZSBHUFUuCj4gICAgKiBDYWxsaW5nIHdpdGggTlVMTCBpbXBsaWVzIHN5bmNo cm9uaXppbmcgdGhlIG9iamVjdCB3aXRoIHRoZSBDUFUKPiBAQCAtMzE2OCwxMSArMzE4MiwyMiBA QCBfX2k5MTVfZ2VtX29iamVjdF9zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos Cj4gICAgKiAtIElmIHdlIGFyZSBhIHdyaXRlIHJlcXVlc3QgKHBlbmRpbmdfd3JpdGVfZG9tYWlu IGlzIHNldCksIHRoZSBuZXcKPiAgICAqICAgcmVxdWVzdCBtdXN0IHdhaXQgZm9yIG91dHN0YW5k aW5nIHJlYWQgcmVxdWVzdHMgdG8gY29tcGxldGUuCj4gICAgKgo+ICsgKiBGb3IgQ1BVIHN5bmNo cm9uaXNhdGlvbiAoTlVMTCB0bykgbm8gcmVxdWVzdCBpcyByZXF1aXJlZC4gRm9yIHN5bmNpbmcg d2l0aAo+ICsgKiByaW5ncyB0b19yZXEgbXVzdCBiZSBub24tTlVMTC4gSG93ZXZlciwgYSByZXF1 ZXN0IGRvZXMgbm90IGhhdmUgdG8gYmUKPiArICogcHJlLWFsbG9jYXRlZC4gSWYgKnRvX3JlcSBp cyBudWxsIGFuZCBzeW5jIGNvbW1hbmRzIHdpbGwgYmUgZW1pdHRlZCB0aGVuIGEKPiArICogcmVx dWVzdCB3aWxsIGJlIGFsbG9jYXRlZCBhdXRvbWF0aWNhbGx5IGFuZCByZXR1cm5lZCB0aHJvdWdo ICp0b19yZXEuIE5vdGUKPiArICogdGhhdCBpdCBpcyBub3QgZ3VhcmFudGVlZCB0aGF0IGNvbW1h bmRzIHdpbGwgYmUgZW1pdHRlZCAoYmVjYXVzZSB0aGUKPiArICogbWlnaHQgYWxyZWFkeSBiZSBp ZGxlKS4gSGVuY2UgdGhlcmUgaXMgbm8gbmVlZCB0byBjcmVhdGUgYSByZXF1ZXN0IHRoYXQKPiAr ICogbWlnaHQgbmV2ZXIgaGF2ZSBhbnkgd29yayBzdWJtaXR0ZWQuIE5vdGUgZnVydGhlciB0aGF0 IGlmIGEgcmVxdWVzdCBpcwo+ICsgKiByZXR1cm5lZCBpbiAqdG9fcmVxLCBpdCBpcyB0aGUgcmVz cG9uc2liaWxpdHkgb2YgdGhlIGNhbGxlciB0byBzdWJtaXQKPiArICogdGhhdCByZXF1ZXN0IChh ZnRlciBwb3RlbnRpYWxseSBhZGRpbmcgbW9yZSB3b3JrIHRvIGl0KS4KPiArICoKCjMuICIoYmVj YXVzZSB0aGUgbWlnaHQgYWxyZWFkeSBiZSBpZGxlKSIgOiBUaGUgd2hhdD8gVGhlIGVuZ2luZT8K NC4gIk5VTEwiIGFuZCAibnVsbCIgbWl4ZWQuIFBsZWFzZSBiZSBjb25zaXN0ZW50LgoKT3ZlcmFs bCwgdGhlIGV4cGxhbmF0aW9uIGlzIGJldHRlciB0aGFuIGluIHRoZSBsYXN0IHBhdGNoIHZlcnNp b24KCldpdGggdGhvc2UgbWlub3IgY2hhbmdlczoKClJldmlld2VkLWJ5OiBUb21hcyBFbGYgPHRv bWFzLmVsZkBpbnRlbC5jb20+CgpUaGFua3MsClRvbWFzCgo+ICAgICogUmV0dXJucyAwIGlmIHN1 Y2Nlc3NmdWwsIGVsc2UgcHJvcGFnYXRlcyB1cCB0aGUgbG93ZXIgbGF5ZXIgZXJyb3IuCj4gICAg Ki8KPiAgIGludAo+ICAgaTkxNV9nZW1fb2JqZWN0X3N5bmMoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiwKPiAtCQkgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnRvKQo+ICsJCSAg ICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqdG8sCj4gKwkJICAgICBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKip0b19yZXEpCj4gICB7Cj4gICAJY29uc3QgYm9vbCByZWFkb25seSA9IG9i ai0+YmFzZS5wZW5kaW5nX3dyaXRlX2RvbWFpbiA9PSAwOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxW0k5MTVfTlVNX1JJTkdTXTsKPiBAQCAtMzE5NCw3ICszMjE5LDcgQEAg aTkxNV9nZW1fb2JqZWN0X3N5bmMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAg IAkJCQlyZXFbbisrXSA9IG9iai0+bGFzdF9yZWFkX3JlcVtpXTsKPiAgIAl9Cj4gICAJZm9yIChp ID0gMDsgaSA8IG47IGkrKykgewo+IC0JCXJldCA9IF9faTkxNV9nZW1fb2JqZWN0X3N5bmMob2Jq LCB0bywgcmVxW2ldKTsKPiArCQlyZXQgPSBfX2k5MTVfZ2VtX29iamVjdF9zeW5jKG9iaiwgdG8s IHJlcVtpXSwgdG9fcmVxKTsKPiAgIAkJaWYgKHJldCkKPiAgIAkJCXJldHVybiByZXQ7Cj4gICAJ fQo+IEBAIC00MTQ0LDEyICs0MTY5LDEzIEBAIGludAo+ICAgaTkxNV9nZW1fb2JqZWN0X3Bpbl90 b19kaXNwbGF5X3BsYW5lKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gICAJCQkJ ICAgICB1MzIgYWxpZ25tZW50LAo+ICAgCQkJCSAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cGlwZWxpbmVkLAo+ICsJCQkJICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKipwaXBl bGluZWRfcmVxdWVzdCwKPiAgIAkJCQkgICAgIGNvbnN0IHN0cnVjdCBpOTE1X2dndHRfdmlldyAq dmlldykKPiAgIHsKPiAgIAl1MzIgb2xkX3JlYWRfZG9tYWlucywgb2xkX3dyaXRlX2RvbWFpbjsK PiAgIAlpbnQgcmV0Owo+Cj4gLQlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc3luYyhvYmosIHBpcGVs aW5lZCk7Cj4gKwlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc3luYyhvYmosIHBpcGVsaW5lZCwgcGlw ZWxpbmVkX3JlcXVlc3QpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gaW5kZXggNTBiMWNlZC4u YmVhOTJhZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVj YnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVy LmMKPiBAQCAtODk5LDcgKzg5OSw3IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXJfbW92ZV90b19ncHUo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmogPSB2bWEtPm9iajsKPgo+ICAgCQlpZiAob2JqLT5hY3RpdmUgJiBvdGhl cl9yaW5ncykgewo+IC0JCQlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc3luYyhvYmosIHJlcS0+cmlu Zyk7Cj4gKwkJCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zeW5jKG9iaiwgcmVxLT5yaW5nLCAmcmVx KTsKPiAgIAkJCWlmIChyZXQpCj4gICAJCQkJcmV0dXJuIHJldDsKPiAgIAkJfQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCA2NTdhMzMzLi42NTI4YWRhIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0yMzM4LDcgKzIzMzgsOCBAQCBp bnQKPiAgIGludGVsX3Bpbl9hbmRfZmVuY2VfZmJfb2JqKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAo+ICAgCQkJICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gICAJCQkgICBjb25zdCBz dHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKPiAtCQkJICAgc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcGlwZWxpbmVkKQo+ICsJCQkgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpw aXBlbGluZWQsCj4gKwkJCSAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqKnBpcGVsaW5l ZF9yZXF1ZXN0KQo+ICAgewo+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmYi0+ZGV2Owo+ ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 Cj4gQEAgLTI0MDMsNyArMjQwNCw3IEBAIGludGVsX3Bpbl9hbmRfZmVuY2VfZmJfb2JqKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAo+Cj4gICAJZGV2X3ByaXYtPm1tLmludGVycnVwdGlibGUgPSBm YWxzZTsKPiAgIAlyZXQgPSBpOTE1X2dlbV9vYmplY3RfcGluX3RvX2Rpc3BsYXlfcGxhbmUob2Jq LCBhbGlnbm1lbnQsIHBpcGVsaW5lZCwKPiAtCQkJCQkJICAgJnZpZXcpOwo+ICsJCQkJCQkgICBw aXBlbGluZWRfcmVxdWVzdCwgJnZpZXcpOwo+ICAgCWlmIChyZXQpCj4gICAJCWdvdG8gZXJyX2lu dGVycnVwdGlibGU7Cj4KPiBAQCAtMTExMTksNiArMTExMjAsNyBAQCBzdGF0aWMgaW50IGludGVs X2NydGNfcGFnZV9mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgIAlzdHJ1Y3QgaW50ZWxf dW5waW5fd29yayAqd29yazsKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nOwo+ICAg CWJvb2wgbW1pb19mbGlwOwo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0 ID0gTlVMTDsKPiAgIAlpbnQgcmV0Owo+Cj4gICAJLyoKPiBAQCAtMTEyMjUsNyArMTEyMjcsNyBA QCBzdGF0aWMgaW50IGludGVsX2NydGNfcGFnZV9mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK PiAgIAkgKi8KPiAgIAlyZXQgPSBpbnRlbF9waW5fYW5kX2ZlbmNlX2ZiX29iaihjcnRjLT5wcmlt YXJ5LCBmYiwKPiAgIAkJCQkJIGNydGMtPnByaW1hcnktPnN0YXRlLAo+IC0JCQkJCSBtbWlvX2Zs aXAgPyBpOTE1X2dlbV9yZXF1ZXN0X2dldF9yaW5nKG9iai0+bGFzdF93cml0ZV9yZXEpIDogcmlu Zyk7Cj4gKwkJCQkJIG1taW9fZmxpcCA/IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3Jpbmcob2JqLT5s YXN0X3dyaXRlX3JlcSkgOiByaW5nLCAmcmVxdWVzdCk7Cj4gICAJaWYgKHJldCkKPiAgIAkJZ290 byBjbGVhbnVwX3BlbmRpbmc7Cj4KPiBAQCAtMTEyNTYsNiArMTEyNTgsOSBAQCBzdGF0aWMgaW50 IGludGVsX2NydGNfcGFnZV9mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgIAkJCQkJaW50 ZWxfcmluZ19nZXRfcmVxdWVzdChyaW5nKSk7Cj4gICAJfQo+Cj4gKwlpZiAocmVxdWVzdCkKPiAr CQlpOTE1X2FkZF9yZXF1ZXN0X25vX2ZsdXNoKHJlcXVlc3QtPnJpbmcpOwo+ICsKPiAgIAl3b3Jr LT5mbGlwX3F1ZXVlZF92YmxhbmsgPSBkcm1fY3J0Y192YmxhbmtfY291bnQoY3J0Yyk7Cj4gICAJ d29yay0+ZW5hYmxlX3N0YWxsX2NoZWNrID0gdHJ1ZTsKPgo+IEBAIC0xMTI3Myw2ICsxMTI3OCw4 IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRj LAo+ICAgY2xlYW51cF91bnBpbjoKPiAgIAlpbnRlbF91bnBpbl9mYl9vYmooZmIsIGNydGMtPnBy aW1hcnktPnN0YXRlKTsKPiAgIGNsZWFudXBfcGVuZGluZzoKPiArCWlmIChyZXF1ZXN0KQo+ICsJ CWk5MTVfZ2VtX3JlcXVlc3RfY2FuY2VsKHJlcXVlc3QpOwo+ICAgCWF0b21pY19kZWMoJmludGVs X2NydGMtPnVucGluX3dvcmtfY291bnQpOwo+ICAgCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3Rf bXV0ZXgpOwo+ICAgY2xlYW51cDoKPiBAQCAtMTMxNzEsNyArMTMxNzgsNyBAQCBpbnRlbF9wcmVw YXJlX3BsYW5lX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAgCQlpZiAocmV0KQo+ICAg CQkJRFJNX0RFQlVHX0tNUygiZmFpbGVkIHRvIGF0dGFjaCBwaHlzIG9iamVjdFxuIik7Cj4gICAJ fSBlbHNlIHsKPiAtCQlyZXQgPSBpbnRlbF9waW5fYW5kX2ZlbmNlX2ZiX29iaihwbGFuZSwgZmIs IG5ld19zdGF0ZSwgTlVMTCk7Cj4gKwkJcmV0ID0gaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmoo cGxhbmUsIGZiLCBuZXdfc3RhdGUsIE5VTEwsIE5VTEwpOwo+ICAgCX0KPgo+ICAgCWlmIChyZXQg PT0gMCkKPiBAQCAtMTUyMTgsNyArMTUyMjUsNyBAQCB2b2lkIGludGVsX21vZGVzZXRfZ2VtX2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAkJcmV0ID0gaW50ZWxfcGluX2FuZF9mZW5j ZV9mYl9vYmooYy0+cHJpbWFyeSwKPiAgIAkJCQkJCSBjLT5wcmltYXJ5LT5mYiwKPiAgIAkJCQkJ CSBjLT5wcmltYXJ5LT5zdGF0ZSwKPiAtCQkJCQkJIE5VTEwpOwo+ICsJCQkJCQkgTlVMTCwgTlVM TCk7Cj4gICAJCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICAgCQlpZiAocmV0 KSB7Cj4gICAJCQlEUk1fRVJST1IoImZhaWxlZCB0byBwaW4gYm9vdCBmYiBvbiBwaXBlICVkXG4i LAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggMDJkODMxNy4uNzM2NTBhZSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTEwMzQsNyArMTAzNCw4IEBAIHZvaWQg aW50ZWxfcmVsZWFzZV9sb2FkX2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IsCj4gICBpbnQgaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCj4gICAJCQkgICAgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gICAJ CQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCj4gLQkJ CSAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpwaXBlbGluZWQpOwo+ICsJCQkgICAgICAg c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcGlwZWxpbmVkLAo+ICsJCQkgICAgICAgc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICoqcGlwZWxpbmVkX3JlcXVlc3QpOwo+ICAgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqCj4gICBfX2ludGVsX2ZyYW1lYnVmZmVyX2NyZWF0ZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+ICAgCQkJICAgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKm1vZGVfY21kLAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwo+IGluZGV4IDRlN2U3ZGEuLmRkOWYzYjIgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKPiBAQCAtMTUxLDcgKzE1MSw3IEBAIHN0 YXRpYyBpbnQgaW50ZWxmYl9hbGxvYyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAo+ICAg CX0KPgo+ICAgCS8qIEZsdXNoIGV2ZXJ5dGhpbmcgb3V0LCB3ZSdsbCBiZSBkb2luZyBHVFQgb25s eSBmcm9tIG5vdyBvbiAqLwo+IC0JcmV0ID0gaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooTlVM TCwgZmIsIE5VTEwsIE5VTEwpOwo+ICsJcmV0ID0gaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmoo TlVMTCwgZmIsIE5VTEwsIE5VTEwsIE5VTEwpOwo+ICAgCWlmIChyZXQpIHsKPiAgIAkJRFJNX0VS Uk9SKCJmYWlsZWQgdG8gcGluIG9iajogJWRcbiIsIHJldCk7Cj4gICAJCWdvdG8gb3V0X2ZiOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggNmQwMDViMS4uZjhlOGZkYiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gQEAgLTYzOCw3ICs2MzgsNyBAQCBzdGF0aWMgaW50 IGV4ZWNsaXN0c19tb3ZlX3RvX2dwdShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwK PiAgIAkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHZtYS0+b2JqOwo+Cj4gICAJ CWlmIChvYmotPmFjdGl2ZSAmIG90aGVyX3JpbmdzKSB7Cj4gLQkJCXJldCA9IGk5MTVfZ2VtX29i amVjdF9zeW5jKG9iaiwgcmVxLT5yaW5nKTsKPiArCQkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3N5 bmMob2JqLCByZXEtPnJpbmcsICZyZXEpOwo+ICAgCQkJaWYgKHJldCkKPiAgIAkJCQlyZXR1cm4g cmV0Owo+ICAgCQl9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292 ZXJsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwo+IGluZGV4IGU3 NTM0YjkuLjBmODE4N2EgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf b3ZlcmxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jCj4g QEAgLTcyNCw3ICs3MjQsNyBAQCBzdGF0aWMgaW50IGludGVsX292ZXJsYXlfZG9fcHV0X2ltYWdl KHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5LAo+ICAgCWlmIChyZXQgIT0gMCkKPiAgIAkJ cmV0dXJuIHJldDsKPgo+IC0JcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl90b19kaXNwbGF5X3Bs YW5lKG5ld19ibywgMCwgTlVMTCwKPiArCXJldCA9IGk5MTVfZ2VtX29iamVjdF9waW5fdG9fZGlz cGxheV9wbGFuZShuZXdfYm8sIDAsIE5VTEwsIE5VTEwsCj4gICAJCQkJCQkgICAmaTkxNV9nZ3R0 X3ZpZXdfbm9ybWFsKTsKPiAgIAlpZiAocmV0ICE9IDApCj4gICAJCXJldHVybiByZXQ7Cj4KCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==