From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH 2/6] drm: Introduce drm_mode_object_{get,put}() Date: Wed, 8 Feb 2017 14:28:14 -0500 Message-ID: <20170208192814.GF14321@art_vandelay> References: <20170208182408.5442-1-thierry.reding@gmail.com> <20170208182408.5442-3-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-yw0-x235.google.com (mail-yw0-x235.google.com [IPv6:2607:f8b0:4002:c05::235]) by gabe.freedesktop.org (Postfix) with ESMTPS id D8F836E133 for ; Wed, 8 Feb 2017 19:28:17 +0000 (UTC) Received: by mail-yw0-x235.google.com with SMTP id u68so92331027ywg.0 for ; Wed, 08 Feb 2017 11:28:17 -0800 (PST) Content-Disposition: inline In-Reply-To: <20170208182408.5442-3-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding Cc: Daniel Vetter , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBGZWIgMDgsIDIwMTcgYXQgMDc6MjQ6MDRQTSArMDEwMCwgVGhpZXJyeSBSZWRpbmcg d3JvdGU6Cj4gRnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KPiAKPiBG b3IgY29uc2lzdGVuY3kgd2l0aCBvdGhlciByZWZlcmVuY2UgY291bnRpbmcgQVBJcyBpbiB0aGUg a2VybmVsLCBhZGQKPiBkcm1fbW9kZV9vYmplY3RfZ2V0KCkgYW5kIGRybV9tb2RlX29iamVjdF9w dXQoKSB0byByZWZlcmVuY2UgY291bnQgRFJNCj4gbW9kZSBvYmplY3RzLgo+IAo+IENvbXBhdGli aWxpdHkgYWxpYXNlcyBhcmUgYWRkZWQgdG8ga2VlcCBleGlzdGluZyBjb2RlIHdvcmtpbmcuIFRv IGhlbHAKPiBzcGVlZCB1cCB0aGUgdHJhbnNpdGlvbiwgYWxsIHRoZSBpbnN0YW5jZXMgb2YgdGhl IG9sZCBmdW5jdGlvbnMgaW4gdGhlCj4gRFJNIGNvcmUgYXJlIGFscmVhZHkgcmVwbGFjZWQgaW4g dGhpcyBjb21taXQuCj4gCgpkcm0gY29kZSBsb29rcyBnb29kIGFuZCBpcyAKClJldmlld2VkLWJ5 OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KCj4gQSBzZW1hbnRpYyBwYXRjaCBp cyBwcm92aWRlZCB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbnZlcnQgYWxsIGRyaXZlcnMgdG8KPiB0 aGUgbmV3IGhlbHBlcnMuCgpJJ20gbm90IGNvbnZpbmNlZCB3ZSBuZWVkIHRvIGNvbW1pdCB0aGUg Y29jY2kgcGF0Y2guIEkgdGhpbmsgaW5jbHVkaW5nIGl0IGluCnlvdXIgY292ZXIgbGV0dGVyIGFu ZCB0aGVuIGZvbGxvd2luZyB1cCB3aXRoIGEgZm9sbG93IG9uIHNlcmllcyB0byBhY3R1YWxseSBt YWtlCnRoZSBjaGFuZ2UgaXMgc3VmZmljaWVudCAoU2VlOiBpY2tsZSdzIHMvZmVuY2UvZG1hX2Zl bmNlLyBzZXJpZXMpLgoKU2VhbgoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBUaGllcnJ5IFJlZGluZyA8 dHJlZGluZ0BudmlkaWEuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5j ICAgICAgICAgICAgIHwgMTQgKysrKystLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rl X29iamVjdC5jICAgICAgICB8IDI2ICsrKysrKysrKystLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9kcm1fcHJvcGVydHkuYyAgICAgICAgICAgfCAgNiArKy0tLQo+ICBpbmNsdWRlL2RybS9k cm1fbW9kZV9vYmplY3QuaCAgICAgICAgICAgIHwgMzYgKysrKysrKysrKysrKysrKysrKysrKy0t LS0tCj4gIHNjcmlwdHMvY29jY2luZWxsZS9hcGkvZHJtLWdldC1wdXQuY29jY2kgfCA0MiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICA1IGZpbGVzIGNoYW5nZWQsIDk1IGluc2Vy dGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgc2NyaXB0cy9j b2NjaW5lbGxlL2FwaS9kcm0tZ2V0LXB1dC5jb2NjaQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+IGlu ZGV4IGE1NjczMTA3ZGIyNi4uMmJiMGE3NTllOGVjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4g QEAgLTIxMjIsMTMgKzIxMjIsMTMgQEAgaW50IGRybV9tb2RlX2F0b21pY19pb2N0bChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+ICAJCX0KPiAgCj4gIAkJaWYgKCFvYmotPnByb3BlcnRpZXMpIHsK PiAtCQkJZHJtX21vZGVfb2JqZWN0X3VucmVmZXJlbmNlKG9iaik7Cj4gKwkJCWRybV9tb2RlX29i amVjdF9wdXQob2JqKTsKPiAgCQkJcmV0ID0gLUVOT0VOVDsKPiAgCQkJZ290byBvdXQ7Cj4gIAkJ fQo+ICAKPiAgCQlpZiAoZ2V0X3VzZXIoY291bnRfcHJvcHMsIGNvdW50X3Byb3BzX3B0ciArIGNv cGllZF9vYmpzKSkgewo+IC0JCQlkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVuY2Uob2JqKTsKPiAr CQkJZHJtX21vZGVfb2JqZWN0X3B1dChvYmopOwo+ICAJCQlyZXQgPSAtRUZBVUxUOwo+ICAJCQln b3RvIG91dDsKPiAgCQl9Cj4gQEAgLTIxNDEsMTQgKzIxNDEsMTQgQEAgaW50IGRybV9tb2RlX2F0 b21pY19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQlzdHJ1Y3QgZHJtX3Byb3Bl cnR5ICpwcm9wOwo+ICAKPiAgCQkJaWYgKGdldF91c2VyKHByb3BfaWQsIHByb3BzX3B0ciArIGNv cGllZF9wcm9wcykpIHsKPiAtCQkJCWRybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZShvYmopOwo+ ICsJCQkJZHJtX21vZGVfb2JqZWN0X3B1dChvYmopOwo+ICAJCQkJcmV0ID0gLUVGQVVMVDsKPiAg CQkJCWdvdG8gb3V0Owo+ICAJCQl9Cj4gIAo+ICAJCQlwcm9wID0gZHJtX21vZGVfb2JqX2ZpbmRf cHJvcF9pZChvYmosIHByb3BfaWQpOwo+ICAJCQlpZiAoIXByb3ApIHsKPiAtCQkJCWRybV9tb2Rl X29iamVjdF91bnJlZmVyZW5jZShvYmopOwo+ICsJCQkJZHJtX21vZGVfb2JqZWN0X3B1dChvYmop Owo+ICAJCQkJcmV0ID0gLUVOT0VOVDsKPiAgCQkJCWdvdG8gb3V0Owo+ICAJCQl9Cj4gQEAgLTIx NTYsMTQgKzIxNTYsMTQgQEAgaW50IGRybV9tb2RlX2F0b21pY19pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+ICAJCQlpZiAoY29weV9mcm9tX3VzZXIoJnByb3BfdmFsdWUsCj4gIAkJCQkJ ICAgcHJvcF92YWx1ZXNfcHRyICsgY29waWVkX3Byb3BzLAo+ICAJCQkJCSAgIHNpemVvZihwcm9w X3ZhbHVlKSkpIHsKPiAtCQkJCWRybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZShvYmopOwo+ICsJ CQkJZHJtX21vZGVfb2JqZWN0X3B1dChvYmopOwo+ICAJCQkJcmV0ID0gLUVGQVVMVDsKPiAgCQkJ CWdvdG8gb3V0Owo+ICAJCQl9Cj4gIAo+ICAJCQlyZXQgPSBhdG9taWNfc2V0X3Byb3Aoc3RhdGUs IG9iaiwgcHJvcCwgcHJvcF92YWx1ZSk7Cj4gIAkJCWlmIChyZXQpIHsKPiAtCQkJCWRybV9tb2Rl X29iamVjdF91bnJlZmVyZW5jZShvYmopOwo+ICsJCQkJZHJtX21vZGVfb2JqZWN0X3B1dChvYmop Owo+ICAJCQkJZ290byBvdXQ7Cj4gIAkJCX0KPiAgCj4gQEAgLTIxNzYsNyArMjE3Niw3IEBAIGlu dCBkcm1fbW9kZV9hdG9taWNfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJcGxh bmVfbWFzayB8PSAoMSA8PCBkcm1fcGxhbmVfaW5kZXgocGxhbmUpKTsKPiAgCQkJcGxhbmUtPm9s ZF9mYiA9IHBsYW5lLT5mYjsKPiAgCQl9Cj4gLQkJZHJtX21vZGVfb2JqZWN0X3VucmVmZXJlbmNl KG9iaik7Cj4gKwkJZHJtX21vZGVfb2JqZWN0X3B1dChvYmopOwo+ICAJfQo+ICAKPiAgCXJldCA9 IHByZXBhcmVfY3J0Y19zaWduYWxpbmcoZGV2LCBzdGF0ZSwgYXJnLCBmaWxlX3ByaXYsICZmZW5j ZV9zdGF0ZSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX29iamVjdC5j IGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX29iamVjdC5jCj4gaW5kZXggM2I0MDVkYmYxYjhk Li5kYTlhOWFkYmNjOTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX29i amVjdC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX29iamVjdC5jCj4gQEAgLTEz Myw3ICsxMzMsNyBAQCBzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpfX2RybV9tb2RlX29iamVjdF9m aW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAqCj4gICAqIFRoaXMgZnVuY3Rpb24gaXMg dXNlZCB0byBsb29rIHVwIGEgbW9kZXNldCBvYmplY3QuIEl0IHdpbGwgYWNxdWlyZSBhCj4gICAq IHJlZmVyZW5jZSBmb3IgcmVmZXJlbmNlIGNvdW50ZWQgb2JqZWN0cy4gVGhpcyByZWZlcmVuY2Ug bXVzdCBiZSBkcm9wcGVkIGFnYWluCj4gLSAqIGJ5IGNhbGxpbmQgZHJtX21vZGVfb2JqZWN0X3Vu cmVmZXJlbmNlKCkuCj4gKyAqIGJ5IGNhbGxpbmQgZHJtX21vZGVfb2JqZWN0X3B1dCgpLgo+ICAg Ki8KPiAgc3RydWN0IGRybV9tb2RlX29iamVjdCAqZHJtX21vZGVfb2JqZWN0X2ZpbmQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKPiAgCQl1aW50MzJfdCBpZCwgdWludDMyX3QgdHlwZSkKPiBAQCAt MTQ2LDM4ICsxNDYsMzggQEAgc3RydWN0IGRybV9tb2RlX29iamVjdCAqZHJtX21vZGVfb2JqZWN0 X2ZpbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgRVhQT1JUX1NZTUJPTChkcm1fbW9kZV9v YmplY3RfZmluZCk7Cj4gIAo+ICAvKioKPiAtICogZHJtX21vZGVfb2JqZWN0X3VucmVmZXJlbmNl IC0gZGVjciB0aGUgb2JqZWN0IHJlZmNudAo+IC0gKiBAb2JqOiBtb2RlX29iamVjdAo+ICsgKiBk cm1fbW9kZV9vYmplY3RfcHV0IC0gcmVsZWFzZSBhIG1vZGUgb2JqZWN0IHJlZmVyZW5jZQo+ICsg KiBAb2JqOiBEUk0gbW9kZSBvYmplY3QKPiAgICoKPiAgICogVGhpcyBmdW5jdGlvbiBkZWNyZW1l bnRzIHRoZSBvYmplY3QncyByZWZjb3VudCBpZiBpdCBpcyBhIHJlZmNvdW50ZWQgbW9kZXNldAo+ ICAgKiBvYmplY3QuIEl0IGlzIGEgbm8tb3Agb24gYW55IG90aGVyIG9iamVjdC4gVGhpcyBpcyB1 c2VkIHRvIGRyb3AgcmVmZXJlbmNlcwo+IC0gKiBhY3F1aXJlZCB3aXRoIGRybV9tb2RlX29iamVj dF9yZWZlcmVuY2UoKS4KPiArICogYWNxdWlyZWQgd2l0aCBkcm1fbW9kZV9vYmplY3RfZ2V0KCku Cj4gICAqLwo+IC12b2lkIGRybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZShzdHJ1Y3QgZHJtX21v ZGVfb2JqZWN0ICpvYmopCj4gK3ZvaWQgZHJtX21vZGVfb2JqZWN0X3B1dChzdHJ1Y3QgZHJtX21v ZGVfb2JqZWN0ICpvYmopCj4gIHsKPiAgCWlmIChvYmotPmZyZWVfY2IpIHsKPiAgCQlEUk1fREVC VUcoIk9CSiBJRDogJWQgKCVkKVxuIiwgb2JqLT5pZCwga3JlZl9yZWFkKCZvYmotPnJlZmNvdW50 KSk7Cj4gIAkJa3JlZl9wdXQoJm9iai0+cmVmY291bnQsIG9iai0+ZnJlZV9jYik7Cj4gIAl9Cj4g IH0KPiAtRVhQT1JUX1NZTUJPTChkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVuY2UpOwo+ICtFWFBP UlRfU1lNQk9MKGRybV9tb2RlX29iamVjdF9wdXQpOwo+ICAKPiAgLyoqCj4gLSAqIGRybV9tb2Rl X29iamVjdF9yZWZlcmVuY2UgLSBpbmNyIHRoZSBvYmplY3QgcmVmY250Cj4gLSAqIEBvYmo6IG1v ZGVfb2JqZWN0Cj4gKyAqIGRybV9tb2RlX29iamVjdF9nZXQgLSBhY3F1aXJlIGEgbW9kZSBvYmpl Y3QgcmVmZXJlbmNlCj4gKyAqIEBvYmo6IERSTSBtb2RlIG9iamVjdAo+ICAgKgo+ICAgKiBUaGlz IGZ1bmN0aW9uIGluY3JlbWVudHMgdGhlIG9iamVjdCdzIHJlZmNvdW50IGlmIGl0IGlzIGEgcmVm Y291bnRlZCBtb2Rlc2V0Cj4gICAqIG9iamVjdC4gSXQgaXMgYSBuby1vcCBvbiBhbnkgb3RoZXIg b2JqZWN0LiBSZWZlcmVuY2VzIHNob3VsZCBiZSBkcm9wcGVkIGFnYWluCj4gLSAqIGJ5IGNhbGxp bmcgZHJtX21vZGVfb2JqZWN0X3VucmVmZXJlbmNlKCkuCj4gKyAqIGJ5IGNhbGxpbmcgZHJtX21v ZGVfb2JqZWN0X3B1dCgpLgo+ICAgKi8KPiAtdm9pZCBkcm1fbW9kZV9vYmplY3RfcmVmZXJlbmNl KHN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9iaikKPiArdm9pZCBkcm1fbW9kZV9vYmplY3RfZ2V0 KHN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9iaikKPiAgewo+ICAJaWYgKG9iai0+ZnJlZV9jYikg ewo+ICAJCURSTV9ERUJVRygiT0JKIElEOiAlZCAoJWQpXG4iLCBvYmotPmlkLCBrcmVmX3JlYWQo Jm9iai0+cmVmY291bnQpKTsKPiAgCQlrcmVmX2dldCgmb2JqLT5yZWZjb3VudCk7Cj4gIAl9Cj4g IH0KPiAtRVhQT1JUX1NZTUJPTChkcm1fbW9kZV9vYmplY3RfcmVmZXJlbmNlKTsKPiArRVhQT1JU X1NZTUJPTChkcm1fbW9kZV9vYmplY3RfZ2V0KTsKPiAgCj4gIC8qKgo+ICAgKiBkcm1fb2JqZWN0 X2F0dGFjaF9wcm9wZXJ0eSAtIGF0dGFjaCBhIHByb3BlcnR5IHRvIGEgbW9kZXNldCBvYmplY3QK PiBAQCAtMzYzLDcgKzM2Myw3IEBAIGludCBkcm1fbW9kZV9vYmpfZ2V0X3Byb3BlcnRpZXNfaW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgCQkJJmFyZy0+Y291bnRf cHJvcHMpOwo+ICAKPiAgb3V0X3VucmVmOgo+IC0JZHJtX21vZGVfb2JqZWN0X3VucmVmZXJlbmNl KG9iaik7Cj4gKwlkcm1fbW9kZV9vYmplY3RfcHV0KG9iaik7Cj4gIG91dDoKPiAgCWRybV9tb2Rl c2V0X3VubG9ja19hbGwoZGV2KTsKPiAgCXJldHVybiByZXQ7Cj4gQEAgLTQyOCw3ICs0MjgsNyBA QCBpbnQgZHJtX21vZGVfb2JqX3NldF9wcm9wZXJ0eV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB2b2lkICpkYXRhLAo+ICAJZHJtX3Byb3BlcnR5X2NoYW5nZV92YWxpZF9wdXQocHJvcGVy dHksIHJlZik7Cj4gIAo+ICBvdXRfdW5yZWY6Cj4gLQlkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVu Y2UoYXJnX29iaik7Cj4gKwlkcm1fbW9kZV9vYmplY3RfcHV0KGFyZ19vYmopOwo+ICBvdXQ6Cj4g IAlkcm1fbW9kZXNldF91bmxvY2tfYWxsKGRldik7Cj4gIAlyZXR1cm4gcmV0Owo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3Byb3BlcnR5LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X3Byb3BlcnR5LmMKPiBpbmRleCA0MTFlNDcwMzY5YzAuLjE1YWYwZDQyZThiZSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3Byb3BlcnR5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX3Byb3BlcnR5LmMKPiBAQCAtNTk3LDcgKzU5Nyw3IEBAIHZvaWQgZHJtX3Byb3BlcnR5 X3VucmVmZXJlbmNlX2Jsb2Ioc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iKQo+ICAJaWYg KCFibG9iKQo+ICAJCXJldHVybjsKPiAgCj4gLQlkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVuY2Uo JmJsb2ItPmJhc2UpOwo+ICsJZHJtX21vZGVfb2JqZWN0X3B1dCgmYmxvYi0+YmFzZSk7Cj4gIH0K PiAgRVhQT1JUX1NZTUJPTChkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYik7Cj4gIAo+IEBA IC02MjUsNyArNjI1LDcgQEAgdm9pZCBkcm1fcHJvcGVydHlfZGVzdHJveV91c2VyX2Jsb2JzKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAqLwo+ICBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2Ig KmRybV9wcm9wZXJ0eV9yZWZlcmVuY2VfYmxvYihzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJs b2IpCj4gIHsKPiAtCWRybV9tb2RlX29iamVjdF9yZWZlcmVuY2UoJmJsb2ItPmJhc2UpOwo+ICsJ ZHJtX21vZGVfb2JqZWN0X2dldCgmYmxvYi0+YmFzZSk7Cj4gIAlyZXR1cm4gYmxvYjsKPiAgfQo+ ICBFWFBPUlRfU1lNQk9MKGRybV9wcm9wZXJ0eV9yZWZlcmVuY2VfYmxvYik7Cj4gQEAgLTkwNiw3 ICs5MDYsNyBAQCB2b2lkIGRybV9wcm9wZXJ0eV9jaGFuZ2VfdmFsaWRfcHV0KHN0cnVjdCBkcm1f cHJvcGVydHkgKnByb3BlcnR5LAo+ICAJCXJldHVybjsKPiAgCj4gIAlpZiAoZHJtX3Byb3BlcnR5 X3R5cGVfaXMocHJvcGVydHksIERSTV9NT0RFX1BST1BfT0JKRUNUKSkgewo+IC0JCWRybV9tb2Rl X29iamVjdF91bnJlZmVyZW5jZShyZWYpOwo+ICsJCWRybV9tb2RlX29iamVjdF9wdXQocmVmKTsK PiAgCX0gZWxzZSBpZiAoZHJtX3Byb3BlcnR5X3R5cGVfaXMocHJvcGVydHksIERSTV9NT0RFX1BS T1BfQkxPQikpCj4gIAkJZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2Iob2JqX3RvX2Jsb2Io cmVmKSk7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX21vZGVfb2JqZWN0Lmgg Yi9pbmNsdWRlL2RybS9kcm1fbW9kZV9vYmplY3QuaAo+IGluZGV4IDJjMDE3YWRmNmQ3NC4uYTc2 N2I0YTMwYTZkIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9tb2RlX29iamVjdC5oCj4g KysrIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVfb2JqZWN0LmgKPiBAQCAtNDUsMTAgKzQ1LDEwIEBA IHN0cnVjdCBkcm1fZGV2aWNlOwo+ICAgKiAgIGRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCkg YmVmb3JlIHRoZSBvYmplY3QgaXMgdmlzaWJsZSB0byB1c2Vyc3BhY2UuCj4gICAqCj4gICAqIC0g Rm9yIG9iamVjdHMgd2l0aCBkeW5hbWljIGxpZmV0aW1lcyAoYXMgaW5kaWNhdGVkIGJ5IGEgbm9u LU5VTEwgQGZyZWVfY2IpIGl0Cj4gLSAqICAgcHJvdmlkZXMgcmVmZXJlbmNlIGNvdW50aW5nIHRo cm91Z2ggZHJtX21vZGVfb2JqZWN0X3JlZmVyZW5jZSgpIGFuZAo+IC0gKiAgIGRybV9tb2RlX29i amVjdF91bnJlZmVyZW5jZSgpLiBUaGlzIGlzIHVzZWQgYnkgJmRybV9mcmFtZWJ1ZmZlciwKPiAt ICogICAmZHJtX2Nvbm5lY3RvciBhbmQgJmRybV9wcm9wZXJ0eV9ibG9iLiBUaGVzZSBvYmplY3Rz IHByb3ZpZGUgc3BlY2lhbGl6ZWQKPiAtICogICByZWZlcmVuY2UgY291bnRpbmcgd3JhcHBlcnMu Cj4gKyAqICAgcHJvdmlkZXMgcmVmZXJlbmNlIGNvdW50aW5nIHRocm91Z2ggZHJtX21vZGVfb2Jq ZWN0X2dldCgpIGFuZAo+ICsgKiAgIGRybV9tb2RlX29iamVjdF9wdXQoKS4gVGhpcyBpcyB1c2Vk IGJ5ICZkcm1fZnJhbWVidWZmZXIsICZkcm1fY29ubmVjdG9yCj4gKyAqICAgYW5kICZkcm1fcHJv cGVydHlfYmxvYi4gVGhlc2Ugb2JqZWN0cyBwcm92aWRlIHNwZWNpYWxpemVkIHJlZmVyZW5jZQo+ ICsgKiAgIGNvdW50aW5nIHdyYXBwZXJzLgo+ICAgKi8KPiAgc3RydWN0IGRybV9tb2RlX29iamVj dCB7Cj4gIAl1aW50MzJfdCBpZDsKPiBAQCAtMTE0LDggKzExNCwzMiBAQCBzdHJ1Y3QgZHJtX29i amVjdF9wcm9wZXJ0aWVzIHsKPiAgCj4gIHN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKmRybV9tb2Rl X29iamVjdF9maW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQkJICAgICB1aW50MzJf dCBpZCwgdWludDMyX3QgdHlwZSk7Cj4gLXZvaWQgZHJtX21vZGVfb2JqZWN0X3JlZmVyZW5jZShz dHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmopOwo+IC12b2lkIGRybV9tb2RlX29iamVjdF91bnJl ZmVyZW5jZShzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmopOwo+ICt2b2lkIGRybV9tb2RlX29i amVjdF9nZXQoc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqKTsKPiArdm9pZCBkcm1fbW9kZV9v YmplY3RfcHV0KHN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9iaik7Cj4gKwo+ICsvKioKPiArICog ZHJtX21vZGVfb2JqZWN0X3JlZmVyZW5jZSAtIGFjcXVpcmUgYSBtb2RlIG9iamVjdCByZWZlcmVu Y2UKPiArICogQG9iajogRFJNIG1vZGUgb2JqZWN0Cj4gKyAqCj4gKyAqIFRoaXMgaXMgYSBjb21w YXRpYmlsaXR5IGFsaWFzIGZvciBkcm1fbW9kZV9vYmplY3RfZ2V0KCkgYW5kIHNob3VsZCBub3Qg YmUKPiArICogdXNlZCBieSBuZXcgY29kZS4KPiArICovCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBk cm1fbW9kZV9vYmplY3RfcmVmZXJlbmNlKHN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9iaikKPiAr ewo+ICsJZHJtX21vZGVfb2JqZWN0X2dldChvYmopOwo+ICt9Cj4gKwo+ICsvKioKPiArICogZHJt X21vZGVfb2JqZWN0X3VucmVmZXJlbmNlIC0gcmVsZWFzZSBhIG1vZGUgb2JqZWN0IHJlZmVyZW5j ZQo+ICsgKiBAb2JqOiBEUk0gbW9kZSBvYmplY3QKPiArICoKPiArICogVGhpcyBpcyBhIGNvbXBh dGliaWxpdHkgYWxpYXMgZm9yIGRybV9tb2RlX29iamVjdF9wdXQoKSBhbmQgc2hvdWxkIG5vdCBi ZQo+ICsgKiB1c2VkIGJ5IG5ldyBjb2RlLgo+ICsgKi8KPiArc3RhdGljIGlubGluZSB2b2lkIGRy bV9tb2RlX29iamVjdF91bnJlZmVyZW5jZShzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmopCj4g K3sKPiArCWRybV9tb2RlX29iamVjdF9wdXQob2JqKTsKPiArfQo+ICAKPiAgaW50IGRybV9vYmpl Y3RfcHJvcGVydHlfc2V0X3ZhbHVlKHN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9iaiwKPiAgCQkJ CSAgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCj4gZGlmZiAtLWdpdCBhL3NjcmlwdHMv Y29jY2luZWxsZS9hcGkvZHJtLWdldC1wdXQuY29jY2kgYi9zY3JpcHRzL2NvY2NpbmVsbGUvYXBp L2RybS1nZXQtcHV0LmNvY2NpCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAw MDAwMDAuLmEzNzQyNDQ3Yzk4MQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9zY3JpcHRzL2NvY2Np bmVsbGUvYXBpL2RybS1nZXQtcHV0LmNvY2NpCj4gQEAgLTAsMCArMSw0MiBAQAo+ICsvLy8KPiAr Ly8vIFVzZSBkcm1fKl9nZXQoKSBhbmQgZHJtXypfcHV0KCkgaGVscGVycyBpbnN0ZWFkIG9mIGRy bV8qX3JlZmVyZW5jZSgpIGFuZAo+ICsvLy8gZHJtXypfdW5yZWZlcmVuY2UoKSBoZWxwZXJzLgo+ ICsvLy8KPiArLy8gQ29uZmlkZW5jZTogSGlnaAo+ICsvLyBDb3B5cmlnaHQ6IChDKSAyMDE3IE5W SURJQSBDb3Jwb3JhdGlvbgo+ICsvLyBPcHRpb25zOiAtLW5vLWluY2x1ZGVzIC0taW5jbHVkZS1o ZWFkZXJzCj4gKy8vCj4gKwo+ICt2aXJ0dWFsIHBhdGNoCj4gK3ZpcnR1YWwgcmVwb3J0Cj4gKwo+ ICtAZGVwZW5kcyBvbiBwYXRjaEAKPiArZXhwcmVzc2lvbiBvYmplY3Q7Cj4gK0BACj4gKwo+ICso Cj4gKy0gZHJtX21vZGVfb2JqZWN0X3JlZmVyZW5jZShvYmplY3QpCj4gKysgZHJtX21vZGVfb2Jq ZWN0X2dldChvYmplY3QpCj4gK3wKPiArLSBkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVuY2Uob2Jq ZWN0KQo+ICsrIGRybV9tb2RlX29iamVjdF9wdXQob2JqZWN0KQo+ICspCj4gKwo+ICtAciBkZXBl bmRzIG9uIHJlcG9ydEAKPiArZXhwcmVzc2lvbiBvYmplY3Q7Cj4gK3Bvc2l0aW9uIHA7Cj4gK0BA Cj4gKwo+ICsoCj4gK2RybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZUBwKG9iamVjdCkKPiArfAo+ ICtkcm1fbW9kZV9vYmplY3RfcmVmZXJlbmNlQHAob2JqZWN0KQo+ICspCj4gKwo+ICtAc2NyaXB0 OnB5dGhvbiBkZXBlbmRzIG9uIHJlcG9ydEAKPiArb2JqZWN0IDw8IHIub2JqZWN0Owo+ICtwIDw8 IHIucDsKPiArQEAKPiArCj4gK21zZz0iV0FSTklORzogdXNlIGdldC9wdXQgaGVscGVycyB0byBy ZWZlcmVuY2UgYW5kIGRlcmVmZXJlbmNlICVzIiAlIChvYmplY3QpCj4gK2NvY2NpbGliLnJlcG9y dC5wcmludF9yZXBvcnQocFswXSwgbXNnKQo+IC0tIAo+IDIuMTEuMQo+IAo+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcg bGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKLS0gClNlYW4gUGF1bCwg U29mdHdhcmUgRW5naW5lZXIsIEdvb2dsZSAvIENocm9taXVtIE9TCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=