From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brian Starkey Subject: Re: [PATCH v5 4/4] drm/fence: add out-fences support Date: Thu, 20 Oct 2016 18:48:10 +0100 Message-ID: <20161020174810.GB7165@e106950-lin.cambridge.arm.com> References: <1476975005-30441-1-git-send-email-gustavo@padovan.org> <1476975005-30441-5-git-send-email-gustavo@padovan.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by gabe.freedesktop.org (Postfix) with ESMTP id 91AD16EBF5 for ; Thu, 20 Oct 2016 17:48:15 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1476975005-30441-5-git-send-email-gustavo@padovan.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Gustavo Padovan Cc: marcheu@google.com, Daniel Stone , seanpaul@google.com, Daniel Vetter , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, laurent.pinchart@ideasonboard.com, Gustavo Padovan , John Harrison , m.chehab@samsung.com List-Id: dri-devel@lists.freedesktop.org SGkgR3VzdGF2bywKCkkgbm90aWNlIHlvdXIgYnJhbmNoIGhhcyB0aGUgc3luY19maWxlIHJlZmNv dW50IGNoYW5nZSBpbiwgYnV0IHRoaXMKZG9lc24ndCBzZWVtIHRvIHRha2UgYWNjb3VudCBmb3Ig dGhhdC4gV2lsbCB5b3UgYmUgZHJvcHBpbmcgdGhhdApjaGFuZ2UgdG8gbWF0Y2ggdGhlIHNlbWFu dGljcyBvZiBmZW5jZV9hcnJheT8KCkNvdXBsZSBtb3JlIGNvbW1lbnRzIGJlbG93LgoKT24gVGh1 LCBPY3QgMjAsIDIwMTYgYXQgMTI6NTA6MDVQTSAtMDIwMCwgR3VzdGF2byBQYWRvdmFuIHdyb3Rl Ogo+RnJvbTogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNvLnVr Pgo+Cj5TdXBwb3J0IERSTSBvdXQtZmVuY2VzIGJ5IGNyZWF0aW5nIGEgc3luY19maWxlIHdpdGgg YSBmZW5jZSBmb3IgZWFjaCBDUlRDCj50aGF0IHNldHMgdGhlIE9VVF9GRU5DRV9QVFIgcHJvcGVy dHkuCj4KPldlIHVzZSB0aGUgb3V0X2ZlbmNlIHBvaW50ZXIgcmVjZWl2ZWQgaW4gdGhlIE9VVF9G RU5DRV9QVFIgcHJvcCB0byBzZW5kCj50aGUgc3luY19maWxlIGZkIGJhY2sgdG8gdXNlcnNwYWNl Lgo+Cj5UaGUgc3luY19maWxlIGFuZCBmZCBhcmUgYWxsb2NhdGVkL2NyZWF0ZWQgYmVmb3JlIGNv bW1pdCwgYnV0IHRoZQo+ZmRfaW5zdGFsbCBvcGVyYXRpb24gb25seSBoYXBwZW5zIGFmdGVyIHdl IGtub3cgdGhhdCBjb21taXQgc3VjY2VlZC4KPgo+SW4gY2FzZSBvZiBlcnJvciB1c2Vyc3BhY2Ug c2hvdWxkIHJlY2VpdmUgYSBmZCBudW1iZXIgb2YgLTEuCj4KPnYyOiBDb21tZW50IGJ5IFJvYiBD bGFyazoKPgktIFNxdWFzaCBjb21taXQgdGhhdCBhZGRzIERSTV9NT0RFX0FUT01JQ19PVVRfRkVO Q0UgZmxhZyBoZXJlLgo+Cj4gICAgQ29tbWVudCBieSBEYW5pZWwgVmV0dGVyOgo+CS0gQWRkIGNs ZWFuIHVwIGNvZGUgZm9yIG91dF9mZW5jZXMKPgo+djM6IENvbW1lbnRzIGJ5IERhbmllbCBWZXR0 ZXI6Cj4JLSBjcmVhdGUgRFJNX01PREVfQVRPTUlDX0VWRU5UX01BU0sKPgktIHVzZXJzcGFjZSBz aG91bGQgZmlsbCBvdXRfZmVuY2VzX3B0ciB3aXRoIHRoZSBjcnRjX2lkcyBmb3Igd2hpY2gKPglp dCB3YW50cyBmZW5jZXMgYmFjay4KPgo+djQ6IENyZWF0ZSBPVVRfRkVOQ0VfUFRSIHByb3BlcnRp ZXMgYW5kIHJlbW92ZSBvbGQgYXBwcm9hY2guCj4KPlNpZ25lZC1vZmYtYnk6IEd1c3Rhdm8gUGFk b3ZhbiA8Z3VzdGF2by5wYWRvdmFuQGNvbGxhYm9yYS5jby51az4KPi0tLQo+IGRyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljLmMgfCAxMTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLQo+IGRyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jICAgfCAgIDggKysrCj4gaW5j bHVkZS9kcm0vZHJtX2NydGMuaCAgICAgICB8ICAxOSArKysrKysrCj4gMyBmaWxlcyBjaGFuZ2Vk LCAxMTkgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCj4KPmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ aW5kZXggYjMyODRiMi4uMDc3NzVmYyAxMDA2NDQKPi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljLmMKPisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPkBAIC00OTAsNiAr NDkwLDggQEAgaW50IGRybV9hdG9taWNfY3J0Y19zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jcnRj ICpjcnRjLAo+IAkJCQkJJnJlcGxhY2VkKTsKPiAJCXN0YXRlLT5jb2xvcl9tZ210X2NoYW5nZWQg fD0gcmVwbGFjZWQ7Cj4gCQlyZXR1cm4gcmV0Owo+Kwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNv bmZpZy0+cHJvcF9vdXRfZmVuY2VfcHRyKSB7Cj4rCQlzdGF0ZS0+b3V0X2ZlbmNlX3B0ciA9IHU2 NF90b191c2VyX3B0cih2YWwpOwo+IAl9IGVsc2UgaWYgKGNydGMtPmZ1bmNzLT5hdG9taWNfc2V0 X3Byb3BlcnR5KQo+IAkJcmV0dXJuIGNydGMtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KGNy dGMsIHN0YXRlLCBwcm9wZXJ0eSwgdmFsKTsKPiAJZWxzZQo+QEAgLTUzMiw2ICs1MzQsOCBAQCBk cm1fYXRvbWljX2NydGNfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAJCSp2 YWwgPSAoc3RhdGUtPmN0bSkgPyBzdGF0ZS0+Y3RtLT5iYXNlLmlkIDogMDsKPiAJZWxzZSBpZiAo cHJvcGVydHkgPT0gY29uZmlnLT5nYW1tYV9sdXRfcHJvcGVydHkpCj4gCQkqdmFsID0gKHN0YXRl LT5nYW1tYV9sdXQpID8gc3RhdGUtPmdhbW1hX2x1dC0+YmFzZS5pZCA6IDA7Cj4rCWVsc2UgaWYg KHByb3BlcnR5ID09IGNvbmZpZy0+cHJvcF9vdXRfZmVuY2VfcHRyKQo+KwkJKnZhbCA9IDA7Cj4g CWVsc2UgaWYgKGNydGMtPmZ1bmNzLT5hdG9taWNfZ2V0X3Byb3BlcnR5KQo+IAkJcmV0dXJuIGNy dGMtPmZ1bmNzLT5hdG9taWNfZ2V0X3Byb3BlcnR5KGNydGMsIHN0YXRlLCBwcm9wZXJ0eSwgdmFs KTsKPiAJZWxzZQo+QEAgLTE0NzQsMTEgKzE0NzgsOSBAQCBFWFBPUlRfU1lNQk9MKGRybV9hdG9t aWNfbm9uYmxvY2tpbmdfY29tbWl0KTsKPiAgKi8KPgo+IHN0YXRpYyBzdHJ1Y3QgZHJtX3BlbmRp bmdfdmJsYW5rX2V2ZW50ICpjcmVhdGVfdmJsYW5rX2V2ZW50KAo+LQkJc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCj4tCQlzdHJ1Y3QgZmVuY2UgKmZl bmNlLCB1aW50NjRfdCB1c2VyX2RhdGEpCj4rCQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1aW50 NjRfdCB1c2VyX2RhdGEpCj4gewo+IAlzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpl ID0gTlVMTDsKPi0JaW50IHJldDsKPgo+IAllID0ga3phbGxvYyhzaXplb2YgKmUsIEdGUF9LRVJO RUwpOwo+IAlpZiAoIWUpCj5AQCAtMTQ4OCwxNyArMTQ5MCw2IEBAIHN0YXRpYyBzdHJ1Y3QgZHJt X3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpjcmVhdGVfdmJsYW5rX2V2ZW50KAo+IAllLT5ldmVudC5i YXNlLmxlbmd0aCA9IHNpemVvZihlLT5ldmVudCk7Cj4gCWUtPmV2ZW50LnVzZXJfZGF0YSA9IHVz ZXJfZGF0YTsKPgo+LQlpZiAoZmlsZV9wcml2KSB7Cj4tCQlyZXQgPSBkcm1fZXZlbnRfcmVzZXJ2 ZV9pbml0KGRldiwgZmlsZV9wcml2LCAmZS0+YmFzZSwKPi0JCQkJCSAgICAgJmUtPmV2ZW50LmJh c2UpOwo+LQkJaWYgKHJldCkgewo+LQkJCWtmcmVlKGUpOwo+LQkJCXJldHVybiBOVUxMOwo+LQkJ fQo+LQl9Cj4tCj4tCWUtPmJhc2UuZmVuY2UgPSBmZW5jZTsKPi0KPiAJcmV0dXJuIGU7Cj4gfQo+ Cj5AQCAtMTYwMyw2ICsxNTk0LDQwIEBAIHZvaWQgZHJtX2F0b21pY19jbGVhbl9vbGRfZmIoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiB9Cj4gRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2NsZWFu X29sZF9mYik7Cj4KPitzdGF0aWMgaW50IGNydGNfc2V0dXBfb3V0X2ZlbmNlKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKPisJCQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+KwkJ CQlzdHJ1Y3QgZHJtX291dF9mZW5jZV9zdGF0ZSAqZmVuY2Vfc3RhdGUpCj4rewo+KwlzdHJ1Y3Qg ZmVuY2UgKmZlbmNlOwo+Kwo+KwlmZW5jZV9zdGF0ZS0+ZmQgPSBnZXRfdW51c2VkX2ZkX2ZsYWdz KE9fQ0xPRVhFQyk7Cj4rCWlmIChmZW5jZV9zdGF0ZS0+ZmQgPCAwKSB7Cj4rCQlyZXR1cm4gZmVu Y2Vfc3RhdGUtPmZkOwo+Kwl9Cj4rCj4rCWZlbmNlX3N0YXRlLT5vdXRfZmVuY2VfcHRyID0gY3J0 Y19zdGF0ZS0+b3V0X2ZlbmNlX3B0cjsKPisJY3J0Y19zdGF0ZS0+b3V0X2ZlbmNlX3B0ciA9IE5V TEw7Cj4rCj4rCWlmIChwdXRfdXNlcihmZW5jZV9zdGF0ZS0+ZmQsIGZlbmNlX3N0YXRlLT5vdXRf ZmVuY2VfcHRyKSkKPisJCXJldHVybiAtRUZBVUxUOwo+Kwo+KwlmZW5jZSA9IGt6YWxsb2Moc2l6 ZW9mKCpmZW5jZSksIEdGUF9LRVJORUwpOwo+KwlpZiAoIWZlbmNlKQo+KwkJcmV0dXJuIC1FTk9N RU07Cj4rCj4rCWZlbmNlX2luaXQoZmVuY2UsICZkcm1fY3J0Y19mZW5jZV9vcHMsICZjcnRjLT5m ZW5jZV9sb2NrLAo+KwkJICAgY3J0Yy0+ZmVuY2VfY29udGV4dCwgKytjcnRjLT5mZW5jZV9zZXFu byk7Cj4rCj4rCWZlbmNlX3N0YXRlLT5zeW5jX2ZpbGUgPSBzeW5jX2ZpbGVfY3JlYXRlKGZlbmNl KTsKPisJaWYoIWZlbmNlX3N0YXRlLT5zeW5jX2ZpbGUpIHsKPisJCWZlbmNlX3B1dChmZW5jZSk7 Cj4rCQlyZXR1cm4gLUVOT01FTTsKPisJfQo+Kwo+KwljcnRjX3N0YXRlLT5ldmVudC0+YmFzZS5m ZW5jZSA9IGZlbmNlX2dldChmZW5jZSk7Cj4rCXJldHVybiAwOwo+K30KPisKPiBpbnQgZHJtX21v ZGVfYXRvbWljX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gCQkJICB2b2lkICpkYXRh LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKPiB7Cj5AQCAtMTYxNyw5ICsxNjQyLDEwIEBA IGludCBkcm1fbW9kZV9hdG9taWNfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAJc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiAJc3RydWN0 IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+KwlzdHJ1Y3QgZHJtX291dF9mZW5jZV9zdGF0 ZSAqZmVuY2Vfc3RhdGU7Cj4gCXVuc2lnbmVkIHBsYW5lX21hc2s7Cj4gCWludCByZXQgPSAwOwo+ LQl1bnNpZ25lZCBpbnQgaSwgajsKPisJdW5zaWduZWQgaW50IGksIGosIGZlbmNlX2lkeCA9IDA7 Cj4KPiAJLyogZGlzYWxsb3cgZm9yIGRyaXZlcnMgbm90IHN1cHBvcnRpbmcgYXRvbWljOiAqLwo+ IAlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfQVRPTUlDKSkKPkBAIC0x NzM0LDEyICsxNzYwLDE5IEBAIHJldHJ5Ogo+IAkJZHJtX21vZGVfb2JqZWN0X3VucmVmZXJlbmNl KG9iaik7Cj4gCX0KPgo+LQlpZiAoYXJnLT5mbGFncyAmIERSTV9NT0RFX1BBR0VfRkxJUF9FVkVO VCkgewo+LQkJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwg aSkgewo+KwlmZW5jZV9zdGF0ZSA9IGtjYWxsb2MoZGV2LT5tb2RlX2NvbmZpZy5udW1fY3J0Yywg c2l6ZW9mKCpmZW5jZV9zdGF0ZSksCj4rCQkJICAgICAgR0ZQX0tFUk5FTCk7Cj4rCWlmICghZmVu Y2Vfc3RhdGUpIHsKPisJCXJldCA9IC1FTk9NRU07Cj4rCQlnb3RvIG91dDsKPisJfQo+Kwo+Kwlm b3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4rCQlp ZiAoYXJnLT5mbGFncyAmIERSTV9NT0RFX1BBR0VfRkxJUF9FVkVOVCB8fAo+KwkJICAgIGNydGNf c3RhdGUtPm91dF9mZW5jZV9wdHIpIHsKPiAJCQlzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2 ZW50ICplOwo+Cj4tCQkJZSA9IGNyZWF0ZV92YmxhbmtfZXZlbnQoZGV2LCBmaWxlX3ByaXYsIE5V TEwsCj4tCQkJCQkJYXJnLT51c2VyX2RhdGEpOwo+KwkJCWUgPSBjcmVhdGVfdmJsYW5rX2V2ZW50 KGRldiwgYXJnLT51c2VyX2RhdGEpOwo+IAkJCWlmICghZSkgewo+IAkJCQlyZXQgPSAtRU5PTUVN Owo+IAkJCQlnb3RvIG91dDsKPkBAIC0xNzQ3LDYgKzE3ODAsMjggQEAgcmV0cnk6Cj4KPiAJCQlj cnRjX3N0YXRlLT5ldmVudCA9IGU7Cj4gCQl9Cj4rCj4rCQlpZiAoYXJnLT5mbGFncyAmIERSTV9N T0RFX1BBR0VfRkxJUF9FVkVOVCkgewo+KwkJCXN0cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZl bnQgKmUgPSBjcnRjX3N0YXRlLT5ldmVudDsKPisKPisJCQlpZiAoIWZpbGVfcHJpdikKPisJCQkJ Y29udGludWU7Cj4rCj4rCQkJcmV0ID0gZHJtX2V2ZW50X3Jlc2VydmVfaW5pdChkZXYsIGZpbGVf cHJpdiwgJmUtPmJhc2UsCj4rCQkJCQkJICAgICAmZS0+ZXZlbnQuYmFzZSk7Cj4rCQkJaWYgKHJl dCkgewo+KwkJCQlrZnJlZShlKTsKPisJCQkJY3J0Y19zdGF0ZS0+ZXZlbnQgPSBOVUxMOwo+KwkJ CQlnb3RvIG91dDsKPisJCQl9Cj4rCQl9Cj4rCj4rCQlpZiAoY3J0Y19zdGF0ZS0+b3V0X2ZlbmNl X3B0cikgewo+KwkJCXJldCA9IGNydGNfc2V0dXBfb3V0X2ZlbmNlKGNydGMsIGNydGNfc3RhdGUs Cj4rCQkJCQkJICAgJmZlbmNlX3N0YXRlW2ZlbmNlX2lkeCsrXSk7Cj4rCQkJaWYgKHJldCkKPisJ CQkJZ290byBvdXQ7Cj4rCQl9Cj4gCX0KPgo+IAlpZiAoYXJnLT5mbGFncyAmIERSTV9NT0RFX0FU T01JQ19URVNUX09OTFkpIHsKPkBAIC0xNzYxLDI0ICsxODE2LDM3IEBAIHJldHJ5Ogo+IAkJcmV0 ID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOwo+IAl9Cj4KPisJZm9yIChpID0gMDsgaSA8IGZl bmNlX2lkeDsgaSsrKQo+KwkJZmRfaW5zdGFsbChmZW5jZV9zdGF0ZVtpXS5mZCwgZmVuY2Vfc3Rh dGVbaV0uc3luY19maWxlLT5maWxlKTsKPisKPiBvdXQ6Cj4gCWRybV9hdG9taWNfY2xlYW5fb2xk X2ZiKGRldiwgcGxhbmVfbWFzaywgcmV0KTsKPgo+LQlpZiAocmV0ICYmIGFyZy0+ZmxhZ3MgJiBE Uk1fTU9ERV9QQUdFX0ZMSVBfRVZFTlQpIHsKPisJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0 ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewoKSSB0aGluayBhIGNoZWNrIG9uIHJldCBpcyBzdGls bCBuZWVkZWQgYmVmb3JlIHlvdSBpdGVyYXRlIHRoZSBDUlRDcy4KSWYgdGhlIGNvbW1pdCBpcyBz dWNjZXNzZnVsIHRoZW4gc3RhdGUgaGFzIGFscmVhZHkgYmVlbiBmcmVlZCBieSB0aGlzCnBvaW50 LCBhbmQgSSBnZXQgYSBzcGxhdC4KCj4gCQkvKgo+IAkJICogVEVTVF9PTkxZIGFuZCBQQUdFX0ZM SVBfRVZFTlQgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSwKPiAJCSAqIGlmIHRoZXkgd2VyZW4ndCwg dGhpcyBjb2RlIHNob3VsZCBiZSBjYWxsZWQgb24gc3VjY2Vzcwo+IAkJICogZm9yIFRFU1RfT05M WSB0b28uCj4gCQkgKi8KPisJCWlmIChyZXQgJiYgY3J0Y19zdGF0ZS0+ZXZlbnQpCj4rCQkJZHJt X2V2ZW50X2NhbmNlbF9mcmVlKGRldiwgJmNydGNfc3RhdGUtPmV2ZW50LT5iYXNlKTsKPisJfQo+ Cj4tCQlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7 Cj4tCQkJaWYgKCFjcnRjX3N0YXRlLT5ldmVudCkKPi0JCQkJY29udGludWU7Cj4rCWlmIChyZXQg JiYgZmVuY2Vfc3RhdGUpIHsKPisJCWZvciAoaSA9IDA7IGkgPCBmZW5jZV9pZHg7IGkrKykgewo+ KwkJCWlmIChmZW5jZV9zdGF0ZVtpXS5mZCA+PSAwKQo+KwkJCQlwdXRfdW51c2VkX2ZkKGZlbmNl X3N0YXRlW2ldLmZkKTsKPisJCQlpZiAoZmVuY2Vfc3RhdGVbaV0uc3luY19maWxlKQo+KwkJCQlm cHV0KGZlbmNlX3N0YXRlW2ldLnN5bmNfZmlsZS0+ZmlsZSk7Cj4KPi0JCQlkcm1fZXZlbnRfY2Fu Y2VsX2ZyZWUoZGV2LCAmY3J0Y19zdGF0ZS0+ZXZlbnQtPmJhc2UpOwo+KwkJCS8qIElmIHRoaXMg ZmFpbHMsIHRoZXJlJ3Mgbm90IG11Y2ggd2UgY2FuIGRvIGFib3V0IGl0ICovCj4rCQkJaWYgKHB1 dF91c2VyKC0xLCBmZW5jZV9zdGF0ZS0+b3V0X2ZlbmNlX3B0cikpCj4rCQkJCURSTV9FUlJPUigi Q291bGRuJ3QgY2xlYXIgb3V0X2ZlbmNlX3B0clxuIik7Cj4gCQl9Cj4gCX0KPgo+KwlrZnJlZShm ZW5jZV9zdGF0ZSk7Cj4rCj4gCWlmIChyZXQgPT0gLUVERUFETEspIHsKPiAJCWRybV9hdG9taWNf c3RhdGVfY2xlYXIoc3RhdGUpOwo+IAkJZHJtX21vZGVzZXRfYmFja29mZigmY3R4KTsKPmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f Y3J0Yy5jCj5pbmRleCBiOTkwOTBmLi40MGJjZTk3IDEwMDY0NAo+LS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9jcnRjLmMKPisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCj5AQCAtMjc0 LDYgKzI3NCw4IEBAIGludCBkcm1fY3J0Y19pbml0X3dpdGhfcGxhbmVzKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAJaWYgKGRybV9jb3JlX2NoZWNrX2Zl YXR1cmUoZGV2LCBEUklWRVJfQVRPTUlDKSkgewo+IAkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVy dHkoJmNydGMtPmJhc2UsIGNvbmZpZy0+cHJvcF9hY3RpdmUsIDApOwo+IAkJZHJtX29iamVjdF9h dHRhY2hfcHJvcGVydHkoJmNydGMtPmJhc2UsIGNvbmZpZy0+cHJvcF9tb2RlX2lkLCAwKTsKPisJ CWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjcnRjLT5iYXNlLAo+KwkJCQkJICAgY29uZmln LT5wcm9wX291dF9mZW5jZV9wdHIsIDApOwo+IAl9Cj4KPiAJcmV0dXJuIDA7Cj5AQCAtNDM0LDYg KzQzNiwxMiBAQCBzdGF0aWMgaW50IGRybV9tb2RlX2NyZWF0ZV9zdGFuZGFyZF9wcm9wZXJ0aWVz KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gCQlyZXR1cm4gLUVOT01FTTsKPiAJZGV2LT5tb2Rl X2NvbmZpZy5wcm9wX2luX2ZlbmNlX2ZkID0gcHJvcDsKPgo+Kwlwcm9wID0gZHJtX3Byb3BlcnR5 X2NyZWF0ZV9yYW5nZShkZXYsIERSTV9NT0RFX1BST1BfQVRPTUlDLAo+KwkJCSJPVVRfRkVOQ0Vf UFRSIiwgMCwgVTY0X01BWCk7Cj4rCWlmICghcHJvcCkKPisJCXJldHVybiAtRU5PTUVNOwo+Kwlk ZXYtPm1vZGVfY29uZmlnLnByb3Bfb3V0X2ZlbmNlX3B0ciA9IHByb3A7Cj4rCj4gCXByb3AgPSBk cm1fcHJvcGVydHlfY3JlYXRlX29iamVjdChkZXYsIERSTV9NT0RFX1BST1BfQVRPTUlDLAo+IAkJ CSJDUlRDX0lEIiwgRFJNX01PREVfT0JKRUNUX0NSVEMpOwo+IAlpZiAoIXByb3ApCj5kaWZmIC0t Z2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaCBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPmlu ZGV4IDY1N2EzM2EuLmI4OTg2MDQgMTAwNjQ0Cj4tLS0gYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5o Cj4rKysgYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCj5AQCAtMTY1LDYgKzE2NSw4IEBAIHN0cnVj dCBkcm1fY3J0Y19zdGF0ZSB7Cj4gCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqY3RtOwo+IAlz dHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dDsKPgo+Kwl1NjQgX191c2VyICpvdXRf ZmVuY2VfcHRyOwo+KwoKSSdtIHNvbWV3aGF0IG5vdCBjb252aW5jZWQgYWJvdXQgc3Rhc2hpbmcg YSBfX3VzZXIgcG9pbnRlciBpbiB0aGUKQ1JUQyBhdG9taWMgc3RhdGUuIEkga25vdyBpdCBnZXRz IGNsZWFyZWQgYmVmb3JlIHRoZSBkcml2ZXIgc2VlcyBpdCwKYnV0IGlmIGFueXRoaW5nIEkgdGhp bmsgdGhhdCBoaW50cyB0aGF0IHRoaXMgaXNuJ3QgdGhlIHJpZ2h0IHBsYWNlIHRvCnN0b3JlIGl0 LgoKSSd2ZSBiZWVuIHRyeWluZyB0byB0aGluayBvZiBvdGhlciB3YXlzIHRvIGdldCBmcm9tIGEg cHJvcGVydHkgdG8Kc29tZXRoaW5nIGRybV9tb2RlX2F0b21pY19pb2N0bCBjYW4gdXNlIC0gbWF5 YmUgd2UgY2FuIHN0b3JlIHNvbWUKc3R1ZmYgaW4gZHJtX2F0b21pY19zdGF0ZSB3aGljaCBvbmx5 IGxpdmVzIGZvciB0aGUgbGVuZ3RoIG9mIHRoZSBpb2N0bApjYWxsIGFuZCBwdXQgdGhpcyBwb2lu dGVyIGluIHRoZXJlLgoKVGhhbmtzLApCcmlhbgoKPiAJLyoqCj4gCSAqIEBldmVudDoKPiAJICoK PkBAIC03NDgsNiArNzUwLDE4IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9jcnRjICpmZW5j ZV90b19jcnRjKHN0cnVjdCBmZW5jZSAqZmVuY2UpCj4gfQo+Cj4gLyoqCj4rICogc3RydWN0IGRy bV9vdXRfZmVuY2Vfc3RhdGUgLSBzdG9yZSBvdXRfZmVuY2UgZGF0YSBmb3IgaW5zdGFsbCBhbmQg Y2xlYW4gdXAKPisgKiBAb3V0X2ZlbmNlX3B0cjogdXNlciBwb2ludGVyIHRvIHN0b3JlIHRoZSBm ZW5jZSBmZCBpbi4KPisgKiBAc3luY19maWxlOiBzeW5jX2ZpbGUgcmVsYXRlZCB0byB0aGUgb3V0 X2ZlbmNlCj4rICogQGZkOiBmaWxlIGRlc2NyaXB0b3IgdG8gaW5zdGFsbGVkIG9uIHRoZSBzeW5j X2ZpbGUuCj4rICovCj4rc3RydWN0IGRybV9vdXRfZmVuY2Vfc3RhdGUgewo+Kwl1NjQgX191c2Vy ICpvdXRfZmVuY2VfcHRyOwo+KwlzdHJ1Y3Qgc3luY19maWxlICpzeW5jX2ZpbGU7Cj4rCWludCBm ZDsKPit9Owo+Kwo+Ky8qCj4gICogc3RydWN0IGRybV9tb2RlX3NldCAtIG5ldyB2YWx1ZXMgZm9y IGEgQ1JUQyBjb25maWcgY2hhbmdlCj4gICogQGZiOiBmcmFtZWJ1ZmZlciB0byB1c2UgZm9yIG5l dyBjb25maWcKPiAgKiBAY3J0YzogQ1JUQyB3aG9zZSBjb25maWd1cmF0aW9uIHdlJ3JlIGFib3V0 IHRvIGNoYW5nZQo+QEAgLTEyMzAsNiArMTI0NCwxMSBAQCBzdHJ1Y3QgZHJtX21vZGVfY29uZmln IHsKPiAJICovCj4gCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BfaW5fZmVuY2VfZmQ7Cj4gCS8q Kgo+KwkgKiBAcHJvcF9vdXRfZmVuY2VfcHRyOiBTeW5jIEZpbGUgZmQgcG9pbnRlciByZXByZXNl bnRpbmcgdGhlCj4rCSAqIG91dGdvaW5nIGZlbmNlcyBmb3IgYSBDUlRDLgo+KwkgKi8KPisJc3Ry dWN0IGRybV9wcm9wZXJ0eSAqcHJvcF9vdXRfZmVuY2VfcHRyOwo+KwkvKioKPiAJICogQHByb3Bf Y3J0Y19pZDogRGVmYXVsdCBhdG9taWMgcGxhbmUgcHJvcGVydHkgdG8gc3BlY2lmeSB0aGUKPiAJ ICogJmRybV9jcnRjLgo+IAkgKi8KPi0tIAo+Mi41LjUKPgo+X19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=