From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH 08/17] drm/plane-helper: transitional atomic plane helpers Date: Wed, 5 Nov 2014 11:45:35 -0500 Message-ID: References: <1414934370-11924-1-git-send-email-daniel.vetter@ffwll.ch> <1414934370-11924-9-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qc0-f178.google.com (mail-qc0-f178.google.com [209.85.216.178]) by gabe.freedesktop.org (Postfix) with ESMTP id E97796E823 for ; Wed, 5 Nov 2014 08:45:57 -0800 (PST) Received: by mail-qc0-f178.google.com with SMTP id b13so936861qcw.23 for ; Wed, 05 Nov 2014 08:45:57 -0800 (PST) Received: from mail-qc0-f174.google.com (mail-qc0-f174.google.com. [209.85.216.174]) by mx.google.com with ESMTPSA id w66sm3520997qgw.44.2014.11.05.08.45.56 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 05 Nov 2014 08:45:56 -0800 (PST) Received: by mail-qc0-f174.google.com with SMTP id r5so844844qcx.19 for ; Wed, 05 Nov 2014 08:45:56 -0800 (PST) In-Reply-To: <1414934370-11924-9-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Intel Graphics Development , DRI Development List-Id: dri-devel@lists.freedesktop.org T24gU3VuLCBOb3YgMDIsIDIwMTQgYXQgMDI6MTk6MjFQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBDb252ZXJ0aW5nIGEgZHJpdmVyIHRvIHRoZSBhdG9taWMgaW50ZXJmYWNlIGNhbiBi ZSBhIGRhdW50aW5nCj4gdW5kZXJ0YWtpbmcuIE9uZSBvZiB0aGUgcHJlcmVxdWlzaXRlcyBpcyB0 byBoYXZlIGZ1bGwgdW5pdmVyc2FsIHBsYW5lcwo+IHN1cHBvcnQuCj4KPiBUbyBtYWtlIHRoYXQg dHJhbnNpdGlvbiBhIGJpdCBlYXNpZXIgdGhpcyBwYXRoYyBwcm92aWRlcyBwbGFuZSBoZWxwZXJz CgpzL3BhdGhjL3BhdGNoLwoKPiB3aGljaCB1c2UgdGhlIG5ldyBhdG9taWMgaGVscGVyIGNhbGxi YWNrcyBqdXN0IG9ubHkgZm9yIHRoZSBwbGFuZQo+IGNoYW5nZXMuIFRoaXMgd2F5IHRoZSBwbGFu ZSB1cGRhdGUgZnVuY3Rpb25hbGl0eSBjYW4gYmUgdGVzdGVkIHdpdGhvdXQKPiBiZWluZyBmb3Jj ZWQgdG8gY29udmVydCBldmVyeXRoaW5nIGF0IG9uY2UuCj4KPiBPZiBjb3Vyc2UgYSByZWFsIGF0 b21pYyB1cGRhdGUgY2FwYWJsZSBkcml2ZXIgd2lsbCBpbXBsZW1lbnQgdGhlCj4gYWxsIHBsYW5l IHByb3BlcnRpZXMgdGhyb3VnaCB0aGUgYXRvbWljIGludGVyZmFjZSwgc28gdGhlc2UgaGVscGVy cwo+IGFyZSBtb3N0bHkgdHJhbnNpdGlvbmFsLiBCdXQgdGhleSBjYW4gYmUgdXNlZCB0byBlbmFi bGUgcHJvcGVyCj4gdW5pdmVyc2FsIHBsYW5lIHN1cHBvcnQsIGVzcGVjaWFsbHkgb25jZSB0aGUg Y3J0YyBoZWxwZXJzIGhhdmUgYWxzbwo+IGJlZW4gYWRhcHRlZC4KPgo+IHYyOiBVc2UgLT5hdG9t aWNfZHVwbGljYXRlX3N0YXRlIGlmIGF2YWlsYWJsZS4KPgo+IHYzOiBEb24ndCBmb3JnZXQgdG8g Y2FsbCAtPmF0b21pY19kZXN0cm95X3N0YXRlIGlmIGF2YWlsYWJsZS4KPgo+IHY0OiBGaXh1cCBr ZXJuZWxkb2MsIHJlcG9ydGVkIGJ5IFBhdWxvLgo+Cj4gdjU6IEV4dHJhY3QgYSBjb21tb24gcGxh bmVfY29tbWl0IGhlbHBlciBhbmQgZml4IHNvbWUgYnVncyBpbiB0aGUKPiBwbGFuZV9zdGF0ZSBz ZXR1cCBvZiB0aGUgcGxhbmVfZGlzYWJsZSBpbXBsZW1lbnRhdGlvbi4KPgo+IHY2OiBGaXggaXNz dWVzIHdpdGggdGhlIGNsZWFudXAgb2YgdGhlIG9sZCBmYi4gU2luY2UgdHJhbnNpdGlvbmFsCj4g aGVscGVycyBjYW4gYmUgbWl4ZWQgd2UgbmVlZCB0byBhc3N1bWUgdGhhdCB0aGUgb2xkIGZiIGhh cyBiZWVuIHNldCB1cAo+IGJ5IGEgbGVnYWN5IHBhdGggKGUuZy4gc2V0X2NvbmZpZyBvciBwYWdl X2ZsaXAgd2hlbiB0aGUgcHJpbWFyeSBwbGFuZQo+IGlzIGNvbnZlcnRlZCB0byB1c2UgdGhlc2Ug ZnVuY3Rpb25zIGFscmVhZHkpLiBIZW5jZSBwYXNzIGFuIGFkZGl0aW9uYWwKPiBvbGRfZmIgcGFy YW1ldGVyIHRvIHBsYW5lX2NvbW1pdCB0byBkbyB0aGF0IGNsZWFudXAgd29yayBjb3JyZWN0bHku Cj4KPiB2NzoKPiAtIEZpeCBzcHVyaW91cyBXQVJOSU5HIChjcnRjIGhlbHBlcnMgcmVhbGx5IGxv dmUgdG8gZGlzYWJsZSBzdHVmZgo+ICAgaGFyZGVyKSBhbmQgZml4IGFycmF5IGluZGV4IGJvbmdo aXRzLgo+IC0gQ29ycmVjdGx5IGhhbmRsZSB0aGUgbGFjayBvZiBwbGFuZS0+c3RhdGUgb2JqZWN0 LCBuZWNlc3NhcnkgZm9yCj4gICB0cmFuc2l0aW9uYWwgdXNlLgo+IC0gRG9uJ3QgaW5kaWNhdGUg ZmFpbHVyZSBpZiBkcm1fdmJsYW5rX2dldCBkb2Vzbid0IHdvcmsgLSB0aGF0J3MKPiAgIGV4cGVj dGVkIHdoZW4gdGhlIHBpcGUgaXMgaW4gZHBtcyBvZmYgbW9kZS4KPgo+IENjOiBQYXVsbyBaYW5v bmkgPHByemFub25pQGdtYWlsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxk YW5pZWwudmV0dGVyQGZmd2xsLmNoPgoKSnVzdCBhIGZldyBuaXRzIHRvIHByb3ZlIHRoYXQgSSBy ZWFkIHRoZSB3aG9sZSB0aGluZyA7LSkuCgpSZXZpZXdlZC1ieTogU2VhbiBQYXVsIDxzZWFucGF1 bEBjaHJvbWl1bS5vcmc+CgoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZV9oZWxw ZXIuYyB8IDE3MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gIGluY2x1 ZGUvZHJtL2RybV9wbGFuZV9oZWxwZXIuaCAgICAgfCAgIDggKysKPiAgMiBmaWxlcyBjaGFuZ2Vk LCAxNzkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fcGxhbmVfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5l X2hlbHBlci5jCj4gaW5kZXggODI3ZWMxYTMwNDBiLi40NWFhOGM5OGUzZmIgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZV9oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fcGxhbmVfaGVscGVyLmMKPiBAQCAtMjcsNyArMjcsNyBAQAo+ICAjaW5jbHVkZSA8 ZHJtL2RybVAuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+Cj4gICNpbmNs dWRlIDxkcm0vZHJtX3JlY3QuaD4KPiAtI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+ Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cj4KPiAgI2RlZmluZSBTVUJQSVhF TF9NQVNLIDB4ZmZmZgo+Cj4gQEAgLTM2OSwzICszNjksMTczIEBAIGludCBkcm1fY3J0Y19pbml0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgIHJldHVy biBkcm1fY3J0Y19pbml0X3dpdGhfcGxhbmVzKGRldiwgY3J0YywgcHJpbWFyeSwgTlVMTCwgZnVu Y3MpOwo+ICB9Cj4gIEVYUE9SVF9TWU1CT0woZHJtX2NydGNfaW5pdCk7Cj4gKwo+ICtzdGF0aWMg aW50Cj4gK3BsYW5lX2NvbW1pdChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9w bGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCj4gKyAgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq b2xkX2ZiKQo+ICt7Cj4gKyBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyAqcGxhbmVfZnVu Y3M7Cj4gKyBzdHJ1Y3QgZHJtX2NydGMgKmNydGNbMl07Cj4gKyBzdHJ1Y3QgZHJtX2NydGNfaGVs cGVyX2Z1bmNzICpjcnRjX2Z1bmNzWzJdOwo+ICsgaW50IGksIHJldCA9IDA7Cj4gKwo+ICsgcGxh bmVfZnVuY3MgPSBwbGFuZS0+aGVscGVyX3ByaXZhdGU7Cj4gKwo+ICsgLyogU2luY2UgdGhpcyBp cyBhIHRyYW5zaXRpb25hbCBoZWxwZXIgd2UgY2FuJ3QgYXNzdW1lIHRoYXQgcGxhbmUtPnN0YXRl Cj4gKyAqIGlzIGFsd2F5cyB2YWxpZC4gSGVuY2Ugd2UgbmVlZCB0byB1c2UgcGxhbmUtPmNydGMg aW5zdGVhZCBvZgo+ICsgKiBwbGFuZS0+c3RhdGUtPmNydGMgYXMgdGhlIG9sZCBjcnRjLiAqLwo+ ICsgY3J0Y1swXSA9IHBsYW5lLT5jcnRjOwo+ICsgY3J0Y1sxXSA9IGNydGNbMF0gIT0gcGxhbmVf c3RhdGUtPmNydGMgPyBwbGFuZV9zdGF0ZS0+Y3J0YyA6IE5VTEw7Cj4gKwo+ICsgZm9yIChpID0g MDsgaSA8IDI7IGkrKykKPiArIGNydGNfZnVuY3NbaV0gPSBjcnRjW2ldID8gY3J0Y1tpXS0+aGVs cGVyX3ByaXZhdGUgOiBOVUxMOwo+ICsKPiArIGlmIChwbGFuZV9mdW5jcy0+YXRvbWljX2NoZWNr KSB7Cj4gKyByZXQgPSBwbGFuZV9mdW5jcy0+YXRvbWljX2NoZWNrKHBsYW5lLCBwbGFuZV9zdGF0 ZSk7Cj4gKyBpZiAocmV0KQo+ICsgZ290byBmYWlsOwo+ICsgfQo+ICsKPiArIGlmIChwbGFuZV9m dW5jcy0+cHJlcGFyZV9mYiAmJiBwbGFuZV9zdGF0ZS0+ZmIpIHsKPiArIHJldCA9IHBsYW5lX2Z1 bmNzLT5wcmVwYXJlX2ZiKHBsYW5lLCBwbGFuZV9zdGF0ZS0+ZmIpOwo+ICsgaWYgKHJldCkKPiAr IGdvdG8gZmFpbDsKPiArIH0KPiArCj4gKyAvKiBQb2ludCBvZiBubyByZXR1cm4sIGNvbW1pdCBz dyBzdGF0ZS4gKi8KPiArIHN3YXAocGxhbmUtPnN0YXRlLCBwbGFuZV9zdGF0ZSk7Cj4gKwo+ICsg Zm9yIChpID0gMDsgaSA8IDI7IGkrKykgewo+ICsgaWYgKGNydGNfZnVuY3NbaV0gJiYgY3J0Y19m dW5jc1tpXS0+YXRvbWljX2JlZ2luKQo+ICsgY3J0Y19mdW5jc1tpXS0+YXRvbWljX2JlZ2luKGNy dGNbaV0pOwo+ICsgfQo+ICsKPiArIHBsYW5lX2Z1bmNzLT5hdG9taWNfdXBkYXRlKHBsYW5lKTsK PiArCj4gKyBmb3IgKGkgPSAwOyBpIDwgMjsgaSsrKSB7Cj4gKyBpZiAoY3J0Y19mdW5jc1tpXSAm JiBjcnRjX2Z1bmNzW2ldLT5hdG9taWNfZmx1c2gpCj4gKyBjcnRjX2Z1bmNzW2ldLT5hdG9taWNf Zmx1c2goY3J0Y1tpXSk7Cj4gKyB9Cj4gKwo+ICsgZm9yIChpID0gMDsgaSA8IDI7IGkrKykgewo+ ICsgaWYgKCFjcnRjW2ldKQo+ICsgY29udGludWU7Cj4gKwo+ICsgLyogVGhlcmUncyBubyBvdGhl ciB3YXkgdG8gZmlndXJlIG91dCB3aGV0aGVyIHRoZSBjcnRjIGlzIHJ1bm5pbmcuICovCj4gKyBy ZXQgPSBkcm1fY3J0Y192YmxhbmtfZ2V0KGNydGNbaV0pOwo+ICsgaWYgKHJldCA9PSAwKSB7Cj4g KyBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsoY3J0Y1tpXSk7Cj4gKyBkcm1fY3J0Y192Ymxhbmtf cHV0KGNydGNbaV0pOwo+ICsgfQoKVGhpcyB3aWxsIGJlIGdvb2QgbW90aXZhdGlvbiBmb3IgZHJp dmVyIHdyaXRlcnMgdG8gY29udmVydCB0byB1bml2ZXJzYWwKcGxhbmVzIQoKPiArCj4gKyByZXQg PSAwOwo+ICsgfQo+ICsKPiArIGlmIChwbGFuZV9mdW5jcy0+Y2xlYW51cF9mYiAmJiBvbGRfZmIp Cj4gKyBwbGFuZV9mdW5jcy0+Y2xlYW51cF9mYihwbGFuZSwgb2xkX2ZiKTsKPiArZmFpbDoKCm1p bm9yIG5pdDogTWlnaHQgYmUgYmV0dGVyIHRvIHJlbmFtZSB0aGlzICJvdXQiLCBzbyBpdCdzIGNs ZWFyIHRoYXQgaXQncwppbnRlbmRlZCB0byBydW4gZXZlbiBpbiB0aGUgc3VjY2Vzc2Z1bCBjYXNl LgoKPiArIGlmIChwbGFuZV9zdGF0ZSkgewo+ICsgaWYgKHBsYW5lLT5mdW5jcy0+YXRvbWljX2Rl c3Ryb3lfc3RhdGUpCj4gKyBwbGFuZS0+ZnVuY3MtPmF0b21pY19kZXN0cm95X3N0YXRlKHBsYW5l LCBwbGFuZV9zdGF0ZSk7Cj4gKyBlbHNlCj4gKyBrZnJlZShwbGFuZV9zdGF0ZSk7Cj4gKyB9Cj4g Kwo+ICsgcmV0dXJuIHJldDsKPiArfQo+ICsKPiArLyoqCj4gKyAqIGRybV9wbGFuZV9oZWxwZXJf dXBkYXRlKCkgLSBIZWxwZXIgZm9yIHByaW1hcnkgcGxhbmUgdXBkYXRlCj4gKyAqIEBwbGFuZTog cGxhbmUgb2JqZWN0IHRvIHVwZGF0ZQo+ICsgKiBAY3J0Yzogb3duaW5nIENSVEMgb2Ygb3duaW5n IHBsYW5lCj4gKyAqIEBmYjogZnJhbWVidWZmZXIgdG8gZmxpcCBvbnRvIHBsYW5lCj4gKyAqIEBj cnRjX3g6IHggb2Zmc2V0IG9mIHByaW1hcnkgcGxhbmUgb24gY3J0Ywo+ICsgKiBAY3J0Y195OiB5 IG9mZnNldCBvZiBwcmltYXJ5IHBsYW5lIG9uIGNydGMKPiArICogQGNydGNfdzogd2lkdGggb2Yg cHJpbWFyeSBwbGFuZSByZWN0YW5nbGUgb24gY3J0Ywo+ICsgKiBAY3J0Y19oOiBoZWlnaHQgb2Yg cHJpbWFyeSBwbGFuZSByZWN0YW5nbGUgb24gY3J0Ywo+ICsgKiBAc3JjX3g6IHggb2Zmc2V0IG9m IEBmYiBmb3IgcGFubmluZwo+ICsgKiBAc3JjX3k6IHkgb2Zmc2V0IG9mIEBmYiBmb3IgcGFubmlu Zwo+ICsgKiBAc3JjX3c6IHdpZHRoIG9mIHNvdXJjZSByZWN0YW5nbGUgaW4gQGZiCj4gKyAqIEBz cmNfaDogaGVpZ2h0IG9mIHNvdXJjZSByZWN0YW5nbGUgaW4gQGZiCj4gKyAqCj4gKyAqIFByb3Zp ZGVzIGEgZGVmYXVsdCBwbGFuZSB1cGRhdGUgaGFuZGxlciB1c2luZyB0aGUgYXRvbWljIHBsYW5l IHVwZGF0ZQo+ICsgKiBmdW5jdGlvbnMuIEl0IGlzIGZ1bGx5IGxlZnQgdG8gdGhlIGRyaXZlciB0 byBjaGVjayBwbGFuZSBjb25zdHJhaW50cyBhbmQKPiArICogaGFuZGxlIGNvcm5lci1jYXNlcyBs aWtlIGEgZnVsbHkgb2NjbHVkZWQgb3Igb3RoZXJ3aXNlIGludmlzaWJsZSBwbGFuZS4KPiArICoK PiArICogVGhpcyBpcyB1c2VmdWwgZm9yIHBpZWNld2lzZSB0cmFuc2l0aW9uaW5nIG9mIGEgZHJp dmVyIHRvIHRoZSBhdG9taWMgaGVscGVycy4KPiArICoKPiArICogUkVUVVJOUzoKPiArICogWmVy byBvbiBzdWNjZXNzLCBlcnJvciBjb2RlIG9uIGZhaWx1cmUKPiArICovCj4gK2ludCBkcm1fcGxh bmVfaGVscGVyX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRj ICpjcnRjLAo+ICsgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gKyAgICBpbnQgY3J0 Y194LCBpbnQgY3J0Y195LAo+ICsgICAgdW5zaWduZWQgaW50IGNydGNfdywgdW5zaWduZWQgaW50 IGNydGNfaCwKPiArICAgIHVpbnQzMl90IHNyY194LCB1aW50MzJfdCBzcmNfeSwKPiArICAgIHVp bnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCkKPiArewo+ICsgc3RydWN0IGRybV9wbGFuZV9z dGF0ZSAqcGxhbmVfc3RhdGU7Cj4gKwo+ICsgaWYgKHBsYW5lLT5mdW5jcy0+YXRvbWljX2R1cGxp Y2F0ZV9zdGF0ZSkKPiArIHBsYW5lX3N0YXRlID0gcGxhbmUtPmZ1bmNzLT5hdG9taWNfZHVwbGlj YXRlX3N0YXRlKHBsYW5lKTsKPiArIGVsc2UgaWYgKHBsYW5lLT5zdGF0ZSkKPiArIHBsYW5lX3N0 YXRlID0ga21lbWR1cChwbGFuZS0+c3RhdGUsIHNpemVvZigqcGxhbmVfc3RhdGUpLAo+ICsgICAg ICBHRlBfS0VSTkVMKTsKPiArIGVsc2UKPiArIHBsYW5lX3N0YXRlID0ga3phbGxvYyhzaXplb2Yo KnBsYW5lX3N0YXRlKSwgR0ZQX0tFUk5FTCk7Cj4gKyBpZiAoIXBsYW5lX3N0YXRlKQo+ICsgcmV0 dXJuIC1FTk9NRU07Cj4gKwo+ICsgcGxhbmVfc3RhdGUtPmNydGMgPSBjcnRjOwo+ICsgcGxhbmVf c3RhdGUtPmZiID0gZmI7Cj4gKyBwbGFuZV9zdGF0ZS0+Y3J0Y194ID0gY3J0Y194Owo+ICsgcGxh bmVfc3RhdGUtPmNydGNfeSA9IGNydGNfeTsKPiArIHBsYW5lX3N0YXRlLT5jcnRjX2ggPSBjcnRj X2g7Cj4gKyBwbGFuZV9zdGF0ZS0+Y3J0Y193ID0gY3J0Y193Owo+ICsgcGxhbmVfc3RhdGUtPnNy Y194ID0gc3JjX3g7Cj4gKyBwbGFuZV9zdGF0ZS0+c3JjX3kgPSBzcmNfeTsKPiArIHBsYW5lX3N0 YXRlLT5zcmNfaCA9IHNyY19oOwo+ICsgcGxhbmVfc3RhdGUtPnNyY193ID0gc3JjX3c7Cj4gKwo+ ICsgcmV0dXJuIHBsYW5lX2NvbW1pdChwbGFuZSwgcGxhbmVfc3RhdGUsIHBsYW5lLT5mYik7Cj4g K30KPiArRVhQT1JUX1NZTUJPTChkcm1fcGxhbmVfaGVscGVyX3VwZGF0ZSk7Cj4gKwo+ICsvKioK PiArICogZHJtX3BsYW5lX2hlbHBlcl9kaXNhYmxlKCkgLSBIZWxwZXIgZm9yIHByaW1hcnkgcGxh bmUgZGlzYWJsZQo+ICsgKiBAcGxhbmU6IHBsYW5lIHRvIGRpc2FibGUKPiArICoKPiArICogUHJv dmlkZXMgYSBkZWZhdWx0IHBsYW5lIGRpc2FibGUgaGFuZGxlciB1c2luZyB0aGUgYXRvbWljIHBs YW5lIHVwZGF0ZQo+ICsgKiBmdW5jdGlvbnMuIEl0IGlzIGZ1bGx5IGxlZnQgdG8gdGhlIGRyaXZl ciB0byBjaGVjayBwbGFuZSBjb25zdHJhaW50cyBhbmQKPiArICogaGFuZGxlIGNvcm5lci1jYXNl cyBsaWtlIGEgZnVsbHkgb2NjbHVkZWQgb3Igb3RoZXJ3aXNlIGludmlzaWJsZSBwbGFuZS4KPiAr ICoKPiArICogVGhpcyBpcyB1c2VmdWwgZm9yIHBpZWNld2lzZSB0cmFuc2l0aW9uaW5nIG9mIGEg ZHJpdmVyIHRvIHRoZSBhdG9taWMgaGVscGVycy4KPiArICoKPiArICogUkVUVVJOUzoKPiArICog WmVybyBvbiBzdWNjZXNzLCBlcnJvciBjb2RlIG9uIGZhaWx1cmUKPiArICovCj4gK2ludCBkcm1f cGxhbmVfaGVscGVyX2Rpc2FibGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCj4gK3sKPiArIHN0 cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwo+ICsKPiArIC8qIGNydGMgaGVscGVy cyBsb3ZlIHRvIGNhbGwgZGlzYWJsZSBmdW5jdGlvbnMgZm9yIGFscmVhZHkgZGlzYWJsZWQgaHcK PiArICogZnVuY3Rpb25zLiBTbyBjb3BlIHdpdGggdGhhdC4gKi8KPiArIGlmICghcGxhbmUtPmNy dGMpCj4gKyByZXR1cm4gMDsKPiArCj4gKyBpZiAocGxhbmUtPmZ1bmNzLT5hdG9taWNfZHVwbGlj YXRlX3N0YXRlKQo+ICsgcGxhbmVfc3RhdGUgPSBwbGFuZS0+ZnVuY3MtPmF0b21pY19kdXBsaWNh dGVfc3RhdGUocGxhbmUpOwo+ICsgZWxzZSBpZiAocGxhbmUtPnN0YXRlKQo+ICsgcGxhbmVfc3Rh dGUgPSBrbWVtZHVwKHBsYW5lLT5zdGF0ZSwgc2l6ZW9mKCpwbGFuZV9zdGF0ZSksCj4gKyAgICAg IEdGUF9LRVJORUwpOwo+ICsgZWxzZQo+ICsgcGxhbmVfc3RhdGUgPSBremFsbG9jKHNpemVvZigq cGxhbmVfc3RhdGUpLCBHRlBfS0VSTkVMKTsKPiArIGlmICghcGxhbmVfc3RhdGUpCj4gKyByZXR1 cm4gLUVOT01FTTsKPiArCj4gKyBwbGFuZV9zdGF0ZS0+Y3J0YyA9IE5VTEw7Cj4gKyBwbGFuZV9z dGF0ZS0+ZmIgPSBOVUxMOwo+ICsKPiArIHJldHVybiBwbGFuZV9jb21taXQocGxhbmUsIHBsYW5l X3N0YXRlLCBwbGFuZS0+ZmIpOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZHJtX3BsYW5lX2hlbHBl cl9kaXNhYmxlKTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5lX2hlbHBlci5o IGIvaW5jbHVkZS9kcm0vZHJtX3BsYW5lX2hlbHBlci5oCj4gaW5kZXggYzIxNDZhN2Q5MWZiLi44 YTA3MDk3MDRhZjAgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5lX2hlbHBlci5o Cj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX3BsYW5lX2hlbHBlci5oCj4gQEAgLTk0LDQgKzk0LDEy IEBAIGV4dGVybiBzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcHJpbWFyeV9oZWxwZXJfY3JlYXRlX3Bs YW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICBpbnQgbnVtX2Zvcm1hdHMpOwo+Cj4KPiAr aW50IGRybV9wbGFuZV9oZWxwZXJfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCj4gKyAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiAr ICAgIGludCBjcnRjX3gsIGludCBjcnRjX3ksCj4gKyAgICB1bnNpZ25lZCBpbnQgY3J0Y193LCB1 bnNpZ25lZCBpbnQgY3J0Y19oLAo+ICsgICAgdWludDMyX3Qgc3JjX3gsIHVpbnQzMl90IHNyY195 LAo+ICsgICAgdWludDMyX3Qgc3JjX3csIHVpbnQzMl90IHNyY19oKTsKPiAraW50IGRybV9wbGFu ZV9oZWxwZXJfZGlzYWJsZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSk7Cj4gKwo+ICAjZW5kaWYK PiAtLQo+IDIuMS4xCj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=