From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 3/7] drm: Extract page_flip_{internal, atomic}() Date: Mon, 25 Nov 2019 10:02:38 +0100 Message-ID: <20191125090238.GB29965@phenom.ffwll.local> References: <20191115194204.22244-1-ville.syrjala@linux.intel.com> <20191115194204.22244-4-ville.syrjala@linux.intel.com> <20191119101443.GA30416@phenom.ffwll.local> <20191122183513.GQ1208@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20191122183513.GQ1208@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBOb3YgMjIsIDIwMTkgYXQgMDg6MzU6MTNQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFR1ZSwgTm92IDE5LCAyMDE5IGF0IDExOjE0OjQzQU0gKzAxMDAsIERhbmll bCBWZXR0ZXIgd3JvdGU6Cj4gPiBPbiBGcmksIE5vdiAxNSwgMjAxOSBhdCAwOTo0MjowMFBNICsw MjAwLCBWaWxsZSBTeXJqYWxhIHdyb3RlOgo+ID4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gPiAKPiA+ID4gWWFuayBvdXQgdGhlIGNv ZGUgZm9yIHRoZSBwbGFuZS0+ZmIvb2xkX2ZiL2NydGMgaGFuZGxpbmcgZnJvbQo+ID4gPiB0aGUg cGFnZSBmbGlwIHBhdGggaW50byBwYWdlX2ZsaXBfaW50ZXJuYWwoKSwgYW5kIHByb3ZpZGUgYQo+ ID4gPiBzaW1wbGVyIHZhcmlhbnQgZm9yIGF0b21pYyBkcml2ZXJzLgo+ID4gPiAKPiA+ID4gV2Un bGwgYWxzbyBtb3ZlIHRoZSBmYiB2cy4gc3JjIHZpZXdwb3J0IGNoZWNrcyBpbnRvIHRoZSBuZXcK PiA+ID4gZnVuY3Rpb25zIGFzIHRoZXkgYXJlIHNsaWdodGx5IGRpZmZlcmVudCBiZXR3ZWVuIHRo ZSB0d28gcGF0aHMuCj4gPiA+IElmIHRoZSBhdG9taWMgLnBhZ2VfZmxpcCgpIGltcGxlbWVudGF0 aW9ucyBhcmUgZ3VhcmFudGVlZAo+ID4gPiB0byBjYWxsIGRybV9hdG9taWNfcGxhbmVfY2hlY2so KSB3ZSBjb3VsZCBldmVuIGRyb3AgdGhlIGNoZWNrCj4gPiA+IGVudGlyZWx5IGZyb20gcGFnZV9m bGlwX2F0b21pYygpLiBGb3Igbm93IHRvc3MgaW4gYSBGSVhNRS4KPiA+ID4gCj4gPiA+IHYyOiBC aXQgbW9yZSBwb2xpc2ggaW4gcGFnZV9mbGlwX2ludGVybmFsKCkKPiA+ID4gCj4gPiA+IFNpZ25l ZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ Cj4gPiA+IC0tLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5jIHwgMTU5ICsrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQo+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDEw MiBpbnNlcnRpb25zKCspLCA1NyBkZWxldGlvbnMoLSkKPiA+ID4gCj4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5l LmMKPiA+ID4gaW5kZXggMzg4NzhkYTViNzA0Li42MDUyNDc1YTIwYTUgMTAwNjQ0Cj4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX3BsYW5lLmMKPiA+ID4gQEAgLTEwMzEsMTMgKzEwMzEsMTA5IEBAIGludCBkcm1fbW9k ZV9jdXJzb3IyX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiA+ICAJcmV0dXJuIGRy bV9tb2RlX2N1cnNvcl9jb21tb24oZGV2LCByZXEsIGZpbGVfcHJpdik7Cj4gPiA+ICB9Cj4gPiA+ ICAKPiA+ID4gK3N0YXRpYyBpbnQgcGFnZV9mbGlwX2NoZWNrX2Zicyhjb25zdCBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiwKPiA+ID4gKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpvbGRfZmIpCj4gPiA+ICt7Cj4gPiA+ICsJLyogVGhlIGZyYW1lYnVmZmVyIGlzIGN1 cnJlbnRseSB1bmJvdW5kLCBwcmVzdW1hYmx5Cj4gPiA+ICsJICogZHVlIHRvIGEgaG90cGx1ZyBl dmVudCwgdGhhdCB1c2Vyc3BhY2UgaGFzIG5vdAo+ID4gPiArCSAqIHlldCBkaXNjb3ZlcmVkLgo+ ID4gPiArCSAqLwo+ID4gPiArCWlmICghb2xkX2ZiKQo+ID4gPiArCQlyZXR1cm4gLUVCVVNZOwo+ ID4gPiArCj4gPiA+ICsJaWYgKG9sZF9mYi0+Zm9ybWF0ICE9IGZiLT5mb3JtYXQpIHsKPiA+ID4g KwkJRFJNX0RFQlVHX0tNUygiUGFnZSBmbGlwIGlzIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSBmcmFt ZSBidWZmZXIgZm9ybWF0LlxuIik7Cj4gPiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gPiArCX0K PiA+ID4gKwo+ID4gPiArCXJldHVybiAwOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMg aW50IHBhZ2VfZmxpcF9pbnRlcm5hbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiA+ICsJCQkg ICAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+ID4gKwkJCSAgICAgIHN0cnVjdCBk cm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmUsCj4gPiA+ICsJCQkgICAgICB1MzIgZmxhZ3MsCj4g PiA+ICsJCQkgICAgICB1MzIgdGFyZ2V0X3ZibGFuaywKPiA+ID4gKwkJCSAgICAgIHN0cnVjdCBk cm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lID0gY3J0Yy0+cHJpbWFyeTsKPiA+ID4gKwlpbnQgcmV0Owo+ID4gPiArCj4g PiA+ICsJV0FSTl9PTihkcm1fZHJ2X3VzZXNfYXRvbWljX21vZGVzZXQoY3J0Yy0+ZGV2KSk7Cj4g PiA+ICsKPiA+ID4gKwlyZXQgPSBkcm1fY3J0Y19jaGVja192aWV3cG9ydChjcnRjLCBjcnRjLT54 LCBjcnRjLT55LAo+ID4gPiArCQkJCSAgICAgICZjcnRjLT5tb2RlLCBmYik7Cj4gPiA+ICsJaWYg KHJldCkKPiA+ID4gKwkJcmV0dXJuIHJldDsKPiA+ID4gKwo+ID4gPiArCXJldCA9IHBhZ2VfZmxp cF9jaGVja19mYnMoZmIsIHBsYW5lLT5mYik7Cj4gPiA+ICsJaWYgKHJldCkKPiA+ID4gKwkJcmV0 dXJuIHJldDsKPiA+ID4gKwo+ID4gPiArCXBsYW5lLT5vbGRfZmIgPSBwbGFuZS0+ZmI7Cj4gPiA+ ICsJaWYgKGNydGMtPmZ1bmNzLT5wYWdlX2ZsaXBfdGFyZ2V0KQo+ID4gPiArCQlyZXQgPSBjcnRj LT5mdW5jcy0+cGFnZV9mbGlwX3RhcmdldChjcnRjLCBmYiwgZSwgZmxhZ3MsCj4gPiA+ICsJCQkJ CQkgICAgdGFyZ2V0X3ZibGFuaywgY3R4KTsKPiA+ID4gKwllbHNlCj4gPiA+ICsJCXJldCA9IGNy dGMtPmZ1bmNzLT5wYWdlX2ZsaXAoY3J0YywgZmIsIGUsIGZsYWdzLCBjdHgpOwo+ID4gPiArCWlm IChyZXQpIHsKPiA+ID4gKwkJcGxhbmUtPm9sZF9mYiA9IE5VTEw7Cj4gPiA+ICsJCXJldHVybiBy ZXQ7Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICsJcGxhbmUtPmZiID0gZmI7Cj4gPiA+ICsJZHJt X2ZyYW1lYnVmZmVyX2dldChwbGFuZS0+ZmIpOwo+ID4gPiArCj4gPiA+ICsJZHJtX2ZyYW1lYnVm ZmVyX3B1dChwbGFuZS0+b2xkX2ZiKTsKPiA+ID4gKwlwbGFuZS0+b2xkX2ZiID0gTlVMTDsKPiA+ ID4gKwo+ID4gPiArCXJldHVybiAwOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgaW50 IHBhZ2VfZmxpcF9hdG9taWMoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gPiArCQkJICAgIHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gPiArCQkJICAgIHN0cnVjdCBkcm1fcGVuZGlu Z192YmxhbmtfZXZlbnQgKmUsCj4gPiA+ICsJCQkgICAgdTMyIGZsYWdzLAo+ID4gPiArCQkJICAg IHUzMiB0YXJnZXRfdmJsYW5rLAo+ID4gPiArCQkJICAgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1 aXJlX2N0eCAqY3R4KQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0g Y3J0Yy0+cHJpbWFyeTsKPiA+ID4gKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0 ZSA9IHBsYW5lLT5zdGF0ZTsKPiA+ID4gKwlpbnQgcmV0Owo+ID4gPiArCj4gPiA+ICsJV0FSTl9P TighZHJtX2Rydl91c2VzX2F0b21pY19tb2Rlc2V0KGNydGMtPmRldikpOwo+ID4gPiArCj4gPiA+ ICsJLyoKPiA+ID4gKwkgKiBGSVhNRTogQ2FuIHdlIGFzc3VtZSBhbGwgZHJpdmVycyBlbmQgdXAg Y2FsbGluZwo+ID4gPiArCSAqIGRybV9hdG9taWNfcGxhbmVfY2hlY2soKSBpbiB0aGVpciBwYWdl IGZsaXAgcGF0aHM/Cj4gPiA+ICsJICogSWYgc28gd2UgY291bGQgcmVtb3ZlIHRoaXMuCj4gPiA+ ICsJICovCj4gPiAKPiA+IFRoaXMgaXMgZGVmaW5pdGVseSB3cm9uZywgY29yZSBoYXMgdG8gY2hl Y2sgdGhlc2UuIEN1cnJlbnRseSBubyBkcml2ZXIKPiA+IGNoZWNrcyB0aGlzIGF0IGFsbC4gSSB0 aGluayB5b3UncmUgdGhpbmtpbmcgb2YKPiA+IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5l X3N0YXRlKCkuCj4gCj4gTm8sIEknbSB0aGlua2luZyBvZiBkcm1fYXRvbWljX3BsYW5lX2NoZWNr KCkuIFRoYXQgb25lIGFscmVhZHkgZG9lcyB0aGUKPiAiZG9lcyB0aGUgc3JjIHJlY3QgZml0IGlu dG8gdGhlIGZiIiBjaGVjay4gSXQgZ2V0cyBjYWxsZWQgZnJvbQo+IGRybV9hdG9taWNfY29tbWl0 KCktPmRybV9hdG9taWNfY2hlY2tfb25seSgpIGJ1dCBJIHdhc24ndCBzdXJlIGlmIHNvbWUKPiBk cml2ZXJzIG1pZ2h0IHRha2Ugc29tZSBzaG9ydCBjaXJjdWl0IHBhdGggcGFzdCB0aGF0IGZvciBw YWdlX2ZsaXAoKS4KCnRiaCBpZiB5b3UncmUgd29ycmllZCBhYm91dCB0aGlzLCBJJ20gdGVtcHRl ZCB0byByaXAgb3V0IHRoZSBvcHRpb24gZm9yCmF0b21pYyBkcml2ZXJzIHRvIG92ZXJ3cml0ZSB0 aGVpciBwYWdlX2ZsaXAgaW1wbGVtZW50YXRpb24sIGFuZCBmb3JjZSB0aGUKZGVmYXVsdCBmdW5j dGlvbiBvbnRvIGV2ZXJ5b25lIChkcm1fYXRvbWljX2hlbHBlcl9wYWdlX2ZsaXBfdGFyZ2V0IGFu ZApmcmllbmRzIHdvdWxkIG5lZWQgdG8gYmUgbW92ZWQgdG8gZHJtX3BsYW5lLmMgZm9yIHRoYXQg b2ZjKS4KCldlIHNlZW0gdG8gaGF2ZSAwIG5lZWQgZm9yIGhhY2tzIGZvciBvbGQgdXNlcnNwYWNl IGluIHRoaXMgYXJlYSwgd2hpY2ggaXMKZ3JlYXQuIFNvIHRoZSBvcHRpb24gdG8gb3ZlcndyaXRl IGNvdWxkIG9ubHkgbGVhZCB0byB0cm91YmxlLgoKPiA+IFRoYXQgYXNpZGUgSSdtIGtpbmRhIG5v dCBnZXR0aW5nIHRoZSBwb2ludCBvZiB0aGUgc2h1ZmZsaW5nL2NsZWFudXAgaW4gdGhlCj4gPiBm aXJzdCA0IHBhdGNoZXMgaGVyZSwgc28gd2lsbCBza2lwIHRoZW0uCj4gCj4gVGhlIHBvaW50IHdh cyB0byBnZXQgdGhhdCBsZWdhY3kgcGxhbmUtPmZiL29sZF9mYiBzdHVmZiB0b3RhbGx5Cj4gb3V0 IGZyb20gdGhlIGF0b21pYyBjb2RlcGF0aC4gUmlnaHQgbm93IGl0J3MgcG9sbHV0aW5nIHRoZQo+ IHN1cHBvc2VkbHkgaGlnaGVyIGxldmVsIGNvZGUgc2hhcmVkIGJ5IGJvdGggYXRvbWljIGFuZCBs ZWdhY3kKPiBkcml2ZXJzLgoKSG0gLi4uIEkgdGhpbmsgaWYgeW91IHNlbGwgaXQgbGlrZSB0aGF0 LCBhbmQgbWF5YmUgZXZlbiBnbyBvbmUgZnVydGhlciBhbmQKaW5saW5lIHBhZ2VfZmxpcCBmb3Ig YWxsIGF0b21pYyBkcml2ZXJzLCBJIGNhbiBiZSBzb2xkIG9uIHRoaXMuIEFzLWlzIEkKanVzdCBk aWRuJ3QgcmVhbGx5IGdldCB3aHkgeW91J3JlIHJld29ya2luZyBhbGwgdGhpcy4KLURhbmllbAoK PiAKPiA+IC1EYW5pZWwKPiA+IAo+ID4gPiArCXJldCA9IGRybV9mcmFtZWJ1ZmZlcl9jaGVja19z cmNfY29vcmRzKHBsYW5lX3N0YXRlLT5zcmNfeCwKPiA+ID4gKwkJCQkJICAgICAgIHBsYW5lX3N0 YXRlLT5zcmNfeSwKPiA+ID4gKwkJCQkJICAgICAgIHBsYW5lX3N0YXRlLT5zcmNfdywKPiA+ID4g KwkJCQkJICAgICAgIHBsYW5lX3N0YXRlLT5zcmNfaCwKPiA+ID4gKwkJCQkJICAgICAgIGZiKTsK PiA+ID4gKwlpZiAocmV0KQo+ID4gPiArCQlyZXR1cm4gcmV0Owo+ID4gPiArCj4gPiA+ICsJcmV0 ID0gcGFnZV9mbGlwX2NoZWNrX2ZicyhmYiwgcGxhbmVfc3RhdGUtPmZiKTsKPiA+ID4gKwlpZiAo cmV0KQo+ID4gPiArCQlyZXR1cm4gcmV0Owo+ID4gPiArCj4gPiA+ICsJaWYgKGNydGMtPmZ1bmNz LT5wYWdlX2ZsaXBfdGFyZ2V0KQo+ID4gPiArCQlyZXR1cm4gY3J0Yy0+ZnVuY3MtPnBhZ2VfZmxp cF90YXJnZXQoY3J0YywgZmIsIGUsIGZsYWdzLAo+ID4gPiArCQkJCQkJICAgICB0YXJnZXRfdmJs YW5rLCBjdHgpOwo+ID4gPiArCWVsc2UKPiA+ID4gKwkJcmV0dXJuIGNydGMtPmZ1bmNzLT5wYWdl X2ZsaXAoY3J0YywgZmIsIGUsIGZsYWdzLCBjdHgpOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICBp bnQgZHJtX21vZGVfcGFnZV9mbGlwX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiA+ ICAJCQkgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ID4gPiAg ewo+ID4gPiAgCXN0cnVjdCBkcm1fbW9kZV9jcnRjX3BhZ2VfZmxpcF90YXJnZXQgKnBhZ2VfZmxp cCA9IGRhdGE7Cj4gPiA+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ID4gPiAgCXN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lOwo+ID4gPiAtCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCAqb2xk X2ZiOwo+ID4gPiArCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOwo+ID4gPiAgCXN0cnVjdCBk cm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmUgPSBOVUxMOwo+ID4gPiAgCXUzMiB0YXJnZXRfdmJs YW5rID0gcGFnZV9mbGlwLT5zZXF1ZW5jZTsKPiA+ID4gIAlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNx dWlyZV9jdHggY3R4Owo+ID4gPiBAQCAtMTE0NSw2NSArMTI0MSwxNCBAQCBpbnQgZHJtX21vZGVf cGFnZV9mbGlwX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiA+ICAJaWYgKHJldCkK PiA+ID4gIAkJZ290byBvdXQ7Cj4gPiA+ICAKPiA+ID4gLQlpZiAocGxhbmUtPnN0YXRlKQo+ID4g PiAtCQlvbGRfZmIgPSBwbGFuZS0+c3RhdGUtPmZiOwo+ID4gPiArCWlmIChkcm1fZHJ2X3VzZXNf YXRvbWljX21vZGVzZXQoZGV2KSkKPiA+ID4gKwkJcmV0ID0gcGFnZV9mbGlwX2F0b21pYyhjcnRj LCBmYiwgZSwgcGFnZV9mbGlwLT5mbGFncywKPiA+ID4gKwkJCQkgICAgICAgdGFyZ2V0X3ZibGFu aywgJmN0eCk7Cj4gPiA+ICAJZWxzZQo+ID4gPiAtCQlvbGRfZmIgPSBwbGFuZS0+ZmI7Cj4gPiA+ IC0KPiA+ID4gLQlpZiAob2xkX2ZiID09IE5VTEwpIHsKPiA+ID4gLQkJLyogVGhlIGZyYW1lYnVm ZmVyIGlzIGN1cnJlbnRseSB1bmJvdW5kLCBwcmVzdW1hYmx5Cj4gPiA+IC0JCSAqIGR1ZSB0byBh IGhvdHBsdWcgZXZlbnQsIHRoYXQgdXNlcnNwYWNlIGhhcyBub3QKPiA+ID4gLQkJICogeWV0IGRp c2NvdmVyZWQuCj4gPiA+IC0JCSAqLwo+ID4gPiAtCQlyZXQgPSAtRUJVU1k7Cj4gPiA+IC0JCWdv dG8gb3V0Owo+ID4gPiAtCX0KPiA+ID4gLQo+ID4gPiAtCWlmIChwbGFuZS0+c3RhdGUpIHsKPiA+ ID4gLQkJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUgPSBwbGFuZS0+c3RhdGU7 Cj4gPiA+IC0KPiA+ID4gLQkJcmV0ID0gZHJtX2ZyYW1lYnVmZmVyX2NoZWNrX3NyY19jb29yZHMo c3RhdGUtPnNyY194LAo+ID4gPiAtCQkJCQkJICAgICAgIHN0YXRlLT5zcmNfeSwKPiA+ID4gLQkJ CQkJCSAgICAgICBzdGF0ZS0+c3JjX3csCj4gPiA+IC0JCQkJCQkgICAgICAgc3RhdGUtPnNyY19o LAo+ID4gPiAtCQkJCQkJICAgICAgIGZiKTsKPiA+ID4gLQl9IGVsc2Ugewo+ID4gPiAtCQlyZXQg PSBkcm1fY3J0Y19jaGVja192aWV3cG9ydChjcnRjLCBjcnRjLT54LCBjcnRjLT55LAo+ID4gPiAt CQkJCQkgICAgICAmY3J0Yy0+bW9kZSwgZmIpOwo+ID4gPiAtCX0KPiA+ID4gLQlpZiAocmV0KQo+ ID4gPiAtCQlnb3RvIG91dDsKPiA+ID4gLQo+ID4gPiAtCWlmIChvbGRfZmItPmZvcm1hdCAhPSBm Yi0+Zm9ybWF0KSB7Cj4gPiA+IC0JCURSTV9ERUJVR19LTVMoIlBhZ2UgZmxpcCBpcyBub3QgYWxs b3dlZCB0byBjaGFuZ2UgZnJhbWUgYnVmZmVyIGZvcm1hdC5cbiIpOwo+ID4gPiAtCQlyZXQgPSAt RUlOVkFMOwo+ID4gPiAtCQlnb3RvIG91dDsKPiA+ID4gLQl9Cj4gPiA+IC0KPiA+ID4gLQlwbGFu ZS0+b2xkX2ZiID0gcGxhbmUtPmZiOwo+ID4gPiAtCWlmIChjcnRjLT5mdW5jcy0+cGFnZV9mbGlw X3RhcmdldCkKPiA+ID4gLQkJcmV0ID0gY3J0Yy0+ZnVuY3MtPnBhZ2VfZmxpcF90YXJnZXQoY3J0 YywgZmIsIGUsCj4gPiA+IC0JCQkJCQkgICAgcGFnZV9mbGlwLT5mbGFncywKPiA+ID4gLQkJCQkJ CSAgICB0YXJnZXRfdmJsYW5rLAo+ID4gPiAtCQkJCQkJICAgICZjdHgpOwo+ID4gPiAtCWVsc2UK PiA+ID4gLQkJcmV0ID0gY3J0Yy0+ZnVuY3MtPnBhZ2VfZmxpcChjcnRjLCBmYiwgZSwgcGFnZV9m bGlwLT5mbGFncywKPiA+ID4gLQkJCQkJICAgICAmY3R4KTsKPiA+ID4gLQlpZiAocmV0KSB7Cj4g PiA+IC0JCS8qIEtlZXAgdGhlIG9sZCBmYiwgZG9uJ3QgdW5yZWYgaXQuICovCj4gPiA+IC0JCXBs YW5lLT5vbGRfZmIgPSBOVUxMOwo+ID4gPiAtCX0gZWxzZSB7Cj4gPiA+IC0JCWlmICghcGxhbmUt PnN0YXRlKSB7Cj4gPiA+IC0JCQlwbGFuZS0+ZmIgPSBmYjsKPiA+ID4gLQkJCWRybV9mcmFtZWJ1 ZmZlcl9nZXQoZmIpOwo+ID4gPiAtCQl9Cj4gPiA+IC0JfQo+ID4gPiArCQlyZXQgPSBwYWdlX2Zs aXBfaW50ZXJuYWwoY3J0YywgZmIsIGUsIHBhZ2VfZmxpcC0+ZmxhZ3MsCj4gPiA+ICsJCQkJCSB0 YXJnZXRfdmJsYW5rLCAmY3R4KTsKPiA+ID4gIAo+ID4gPiAgb3V0Ogo+ID4gPiAtCWlmIChwbGFu ZS0+b2xkX2ZiKQo+ID4gPiAtCQlkcm1fZnJhbWVidWZmZXJfcHV0KHBsYW5lLT5vbGRfZmIpOwo+ ID4gPiAtCXBsYW5lLT5vbGRfZmIgPSBOVUxMOwo+ID4gPiAtCj4gPiA+ICAJaWYgKHJldCA9PSAt RURFQURMSykgewo+ID4gPiAgCQlyZXQgPSBkcm1fbW9kZXNldF9iYWNrb2ZmKCZjdHgpOwo+ID4g PiAgCQlpZiAoIXJldCkKPiA+ID4gLS0gCj4gPiA+IDIuMjMuMAo+ID4gPiAKPiA+ID4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ID4gSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdAo+ID4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiA+ IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cj4gPiAKPiA+IC0tIAo+ID4gRGFuaWVsIFZldHRlcgo+ID4gU29mdHdhcmUgRW5naW5lZXIsIElu dGVsIENvcnBvcmF0aW9uCj4gPiBodHRwOi8vYmxvZy5mZndsbC5jaAo+IAo+IC0tIAo+IFZpbGxl IFN5cmrDpGzDpAo+IEludGVsCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwg SW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BA064C432C3 for ; Mon, 25 Nov 2019 09:02:49 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9A870207FD for ; Mon, 25 Nov 2019 09:02:49 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9A870207FD Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 032BA89C7F; Mon, 25 Nov 2019 09:02:46 +0000 (UTC) Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by gabe.freedesktop.org (Postfix) with ESMTPS id A3CB889C6B for ; Mon, 25 Nov 2019 09:02:43 +0000 (UTC) Received: by mail-wr1-x444.google.com with SMTP id z3so16887172wru.3 for ; Mon, 25 Nov 2019 01:02:43 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=thxpzX0toqRWkOBImtJvkCxNDDRQR1EM6PL0GAmqXL8=; b=hmI5BEt8xE64mwRu4FJ2ErjWOuvjmp8ntACoQokDqgUtLB2+Hf5eCZGHEp6qXcVdO0 Fxu7KqjvQ4Cwqai4v5vHVGrXjqWRmutcnseF5plcegyJ5x0j0AbrxKnDU77Howu1Spos EmVbRssuJppIASyHRDZoMRnpoNFP83nb9piA/4v471Srdtdv3fBscoDnZolabtDXHast xbSA1R4eS7q7j7VXyKRLYTZpH0HRSILPi+HENi1NYOzRNp7j6+DBLb4c2fHSUjiFVUIY r3yz2hq/i4aPmSNaEqZd2AWY5jYG1etMDMnCEvJcB+dP4QwXKOJMg7H3THQydA0Dh5vw wl6g== X-Gm-Message-State: APjAAAWmFJ3AOgN5RdXXwgqO5ox2jffPuRpHeHLPgWHk/V8jV9pKSVuE 1z7DjfYrzWYSiGVRHbrZu6EKuA== X-Google-Smtp-Source: APXvYqxKBiJtNWCZIM/xIDARI/+8u7oKuNdkDpPTgc4/EKrCY5ccXYMeNOhcSAoNnWJMk/SVs1EesA== X-Received: by 2002:adf:e58c:: with SMTP id l12mr16641691wrm.156.1574672562263; Mon, 25 Nov 2019 01:02:42 -0800 (PST) Received: from phenom.ffwll.local (212-51-149-96.fiber7.init7.net. [212.51.149.96]) by smtp.gmail.com with ESMTPSA id y8sm7445656wmi.9.2019.11.25.01.02.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Nov 2019 01:02:41 -0800 (PST) Date: Mon, 25 Nov 2019 10:02:38 +0100 From: Daniel Vetter To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [Intel-gfx] [PATCH 3/7] drm: Extract page_flip_{internal, atomic}() Message-ID: <20191125090238.GB29965@phenom.ffwll.local> References: <20191115194204.22244-1-ville.syrjala@linux.intel.com> <20191115194204.22244-4-ville.syrjala@linux.intel.com> <20191119101443.GA30416@phenom.ffwll.local> <20191122183513.GQ1208@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20191122183513.GQ1208@intel.com> X-Operating-System: Linux phenom 5.3.0-2-amd64 User-Agent: Mutt/1.12.2 (2019-09-21) X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=thxpzX0toqRWkOBImtJvkCxNDDRQR1EM6PL0GAmqXL8=; b=htg9Ybuizpd9BLUeYdBhVyzCo5xUkUnT2feMtnsU5tlJczPSmDiYzqQC8up184UAa4 VxnthmVa5txzQIoAWQEzffRdcy+FQs50RGP2BwpTY4Yxo31vnKmYsJZrHL3oFOG+7BA/ LzK6BabIKVM4bmZxCBxuAgDTvjAozIs4oEisY= X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191125090238.sCootRwND1J6zlndp4UUdZtVVkhhYFjs89Y55lBsMlQ@z> T24gRnJpLCBOb3YgMjIsIDIwMTkgYXQgMDg6MzU6MTNQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFR1ZSwgTm92IDE5LCAyMDE5IGF0IDExOjE0OjQzQU0gKzAxMDAsIERhbmll bCBWZXR0ZXIgd3JvdGU6Cj4gPiBPbiBGcmksIE5vdiAxNSwgMjAxOSBhdCAwOTo0MjowMFBNICsw MjAwLCBWaWxsZSBTeXJqYWxhIHdyb3RlOgo+ID4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gPiAKPiA+ID4gWWFuayBvdXQgdGhlIGNv ZGUgZm9yIHRoZSBwbGFuZS0+ZmIvb2xkX2ZiL2NydGMgaGFuZGxpbmcgZnJvbQo+ID4gPiB0aGUg cGFnZSBmbGlwIHBhdGggaW50byBwYWdlX2ZsaXBfaW50ZXJuYWwoKSwgYW5kIHByb3ZpZGUgYQo+ ID4gPiBzaW1wbGVyIHZhcmlhbnQgZm9yIGF0b21pYyBkcml2ZXJzLgo+ID4gPiAKPiA+ID4gV2Un bGwgYWxzbyBtb3ZlIHRoZSBmYiB2cy4gc3JjIHZpZXdwb3J0IGNoZWNrcyBpbnRvIHRoZSBuZXcK PiA+ID4gZnVuY3Rpb25zIGFzIHRoZXkgYXJlIHNsaWdodGx5IGRpZmZlcmVudCBiZXR3ZWVuIHRo ZSB0d28gcGF0aHMuCj4gPiA+IElmIHRoZSBhdG9taWMgLnBhZ2VfZmxpcCgpIGltcGxlbWVudGF0 aW9ucyBhcmUgZ3VhcmFudGVlZAo+ID4gPiB0byBjYWxsIGRybV9hdG9taWNfcGxhbmVfY2hlY2so KSB3ZSBjb3VsZCBldmVuIGRyb3AgdGhlIGNoZWNrCj4gPiA+IGVudGlyZWx5IGZyb20gcGFnZV9m bGlwX2F0b21pYygpLiBGb3Igbm93IHRvc3MgaW4gYSBGSVhNRS4KPiA+ID4gCj4gPiA+IHYyOiBC aXQgbW9yZSBwb2xpc2ggaW4gcGFnZV9mbGlwX2ludGVybmFsKCkKPiA+ID4gCj4gPiA+IFNpZ25l ZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ Cj4gPiA+IC0tLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5jIHwgMTU5ICsrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQo+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDEw MiBpbnNlcnRpb25zKCspLCA1NyBkZWxldGlvbnMoLSkKPiA+ID4gCj4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5l LmMKPiA+ID4gaW5kZXggMzg4NzhkYTViNzA0Li42MDUyNDc1YTIwYTUgMTAwNjQ0Cj4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX3BsYW5lLmMKPiA+ID4gQEAgLTEwMzEsMTMgKzEwMzEsMTA5IEBAIGludCBkcm1fbW9k ZV9jdXJzb3IyX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiA+ICAJcmV0dXJuIGRy bV9tb2RlX2N1cnNvcl9jb21tb24oZGV2LCByZXEsIGZpbGVfcHJpdik7Cj4gPiA+ICB9Cj4gPiA+ ICAKPiA+ID4gK3N0YXRpYyBpbnQgcGFnZV9mbGlwX2NoZWNrX2Zicyhjb25zdCBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiwKPiA+ID4gKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpvbGRfZmIpCj4gPiA+ICt7Cj4gPiA+ICsJLyogVGhlIGZyYW1lYnVmZmVyIGlzIGN1 cnJlbnRseSB1bmJvdW5kLCBwcmVzdW1hYmx5Cj4gPiA+ICsJICogZHVlIHRvIGEgaG90cGx1ZyBl dmVudCwgdGhhdCB1c2Vyc3BhY2UgaGFzIG5vdAo+ID4gPiArCSAqIHlldCBkaXNjb3ZlcmVkLgo+ ID4gPiArCSAqLwo+ID4gPiArCWlmICghb2xkX2ZiKQo+ID4gPiArCQlyZXR1cm4gLUVCVVNZOwo+ ID4gPiArCj4gPiA+ICsJaWYgKG9sZF9mYi0+Zm9ybWF0ICE9IGZiLT5mb3JtYXQpIHsKPiA+ID4g KwkJRFJNX0RFQlVHX0tNUygiUGFnZSBmbGlwIGlzIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSBmcmFt ZSBidWZmZXIgZm9ybWF0LlxuIik7Cj4gPiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gPiArCX0K PiA+ID4gKwo+ID4gPiArCXJldHVybiAwOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMg aW50IHBhZ2VfZmxpcF9pbnRlcm5hbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiA+ICsJCQkg ICAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+ID4gKwkJCSAgICAgIHN0cnVjdCBk cm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmUsCj4gPiA+ICsJCQkgICAgICB1MzIgZmxhZ3MsCj4g PiA+ICsJCQkgICAgICB1MzIgdGFyZ2V0X3ZibGFuaywKPiA+ID4gKwkJCSAgICAgIHN0cnVjdCBk cm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lID0gY3J0Yy0+cHJpbWFyeTsKPiA+ID4gKwlpbnQgcmV0Owo+ID4gPiArCj4g PiA+ICsJV0FSTl9PTihkcm1fZHJ2X3VzZXNfYXRvbWljX21vZGVzZXQoY3J0Yy0+ZGV2KSk7Cj4g PiA+ICsKPiA+ID4gKwlyZXQgPSBkcm1fY3J0Y19jaGVja192aWV3cG9ydChjcnRjLCBjcnRjLT54 LCBjcnRjLT55LAo+ID4gPiArCQkJCSAgICAgICZjcnRjLT5tb2RlLCBmYik7Cj4gPiA+ICsJaWYg KHJldCkKPiA+ID4gKwkJcmV0dXJuIHJldDsKPiA+ID4gKwo+ID4gPiArCXJldCA9IHBhZ2VfZmxp cF9jaGVja19mYnMoZmIsIHBsYW5lLT5mYik7Cj4gPiA+ICsJaWYgKHJldCkKPiA+ID4gKwkJcmV0 dXJuIHJldDsKPiA+ID4gKwo+ID4gPiArCXBsYW5lLT5vbGRfZmIgPSBwbGFuZS0+ZmI7Cj4gPiA+ ICsJaWYgKGNydGMtPmZ1bmNzLT5wYWdlX2ZsaXBfdGFyZ2V0KQo+ID4gPiArCQlyZXQgPSBjcnRj LT5mdW5jcy0+cGFnZV9mbGlwX3RhcmdldChjcnRjLCBmYiwgZSwgZmxhZ3MsCj4gPiA+ICsJCQkJ CQkgICAgdGFyZ2V0X3ZibGFuaywgY3R4KTsKPiA+ID4gKwllbHNlCj4gPiA+ICsJCXJldCA9IGNy dGMtPmZ1bmNzLT5wYWdlX2ZsaXAoY3J0YywgZmIsIGUsIGZsYWdzLCBjdHgpOwo+ID4gPiArCWlm IChyZXQpIHsKPiA+ID4gKwkJcGxhbmUtPm9sZF9mYiA9IE5VTEw7Cj4gPiA+ICsJCXJldHVybiBy ZXQ7Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICsJcGxhbmUtPmZiID0gZmI7Cj4gPiA+ICsJZHJt X2ZyYW1lYnVmZmVyX2dldChwbGFuZS0+ZmIpOwo+ID4gPiArCj4gPiA+ICsJZHJtX2ZyYW1lYnVm ZmVyX3B1dChwbGFuZS0+b2xkX2ZiKTsKPiA+ID4gKwlwbGFuZS0+b2xkX2ZiID0gTlVMTDsKPiA+ ID4gKwo+ID4gPiArCXJldHVybiAwOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgaW50 IHBhZ2VfZmxpcF9hdG9taWMoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gPiArCQkJICAgIHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gPiArCQkJICAgIHN0cnVjdCBkcm1fcGVuZGlu Z192YmxhbmtfZXZlbnQgKmUsCj4gPiA+ICsJCQkgICAgdTMyIGZsYWdzLAo+ID4gPiArCQkJICAg IHUzMiB0YXJnZXRfdmJsYW5rLAo+ID4gPiArCQkJICAgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1 aXJlX2N0eCAqY3R4KQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0g Y3J0Yy0+cHJpbWFyeTsKPiA+ID4gKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0 ZSA9IHBsYW5lLT5zdGF0ZTsKPiA+ID4gKwlpbnQgcmV0Owo+ID4gPiArCj4gPiA+ICsJV0FSTl9P TighZHJtX2Rydl91c2VzX2F0b21pY19tb2Rlc2V0KGNydGMtPmRldikpOwo+ID4gPiArCj4gPiA+ ICsJLyoKPiA+ID4gKwkgKiBGSVhNRTogQ2FuIHdlIGFzc3VtZSBhbGwgZHJpdmVycyBlbmQgdXAg Y2FsbGluZwo+ID4gPiArCSAqIGRybV9hdG9taWNfcGxhbmVfY2hlY2soKSBpbiB0aGVpciBwYWdl IGZsaXAgcGF0aHM/Cj4gPiA+ICsJICogSWYgc28gd2UgY291bGQgcmVtb3ZlIHRoaXMuCj4gPiA+ ICsJICovCj4gPiAKPiA+IFRoaXMgaXMgZGVmaW5pdGVseSB3cm9uZywgY29yZSBoYXMgdG8gY2hl Y2sgdGhlc2UuIEN1cnJlbnRseSBubyBkcml2ZXIKPiA+IGNoZWNrcyB0aGlzIGF0IGFsbC4gSSB0 aGluayB5b3UncmUgdGhpbmtpbmcgb2YKPiA+IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5l X3N0YXRlKCkuCj4gCj4gTm8sIEknbSB0aGlua2luZyBvZiBkcm1fYXRvbWljX3BsYW5lX2NoZWNr KCkuIFRoYXQgb25lIGFscmVhZHkgZG9lcyB0aGUKPiAiZG9lcyB0aGUgc3JjIHJlY3QgZml0IGlu dG8gdGhlIGZiIiBjaGVjay4gSXQgZ2V0cyBjYWxsZWQgZnJvbQo+IGRybV9hdG9taWNfY29tbWl0 KCktPmRybV9hdG9taWNfY2hlY2tfb25seSgpIGJ1dCBJIHdhc24ndCBzdXJlIGlmIHNvbWUKPiBk cml2ZXJzIG1pZ2h0IHRha2Ugc29tZSBzaG9ydCBjaXJjdWl0IHBhdGggcGFzdCB0aGF0IGZvciBw YWdlX2ZsaXAoKS4KCnRiaCBpZiB5b3UncmUgd29ycmllZCBhYm91dCB0aGlzLCBJJ20gdGVtcHRl ZCB0byByaXAgb3V0IHRoZSBvcHRpb24gZm9yCmF0b21pYyBkcml2ZXJzIHRvIG92ZXJ3cml0ZSB0 aGVpciBwYWdlX2ZsaXAgaW1wbGVtZW50YXRpb24sIGFuZCBmb3JjZSB0aGUKZGVmYXVsdCBmdW5j dGlvbiBvbnRvIGV2ZXJ5b25lIChkcm1fYXRvbWljX2hlbHBlcl9wYWdlX2ZsaXBfdGFyZ2V0IGFu ZApmcmllbmRzIHdvdWxkIG5lZWQgdG8gYmUgbW92ZWQgdG8gZHJtX3BsYW5lLmMgZm9yIHRoYXQg b2ZjKS4KCldlIHNlZW0gdG8gaGF2ZSAwIG5lZWQgZm9yIGhhY2tzIGZvciBvbGQgdXNlcnNwYWNl IGluIHRoaXMgYXJlYSwgd2hpY2ggaXMKZ3JlYXQuIFNvIHRoZSBvcHRpb24gdG8gb3ZlcndyaXRl IGNvdWxkIG9ubHkgbGVhZCB0byB0cm91YmxlLgoKPiA+IFRoYXQgYXNpZGUgSSdtIGtpbmRhIG5v dCBnZXR0aW5nIHRoZSBwb2ludCBvZiB0aGUgc2h1ZmZsaW5nL2NsZWFudXAgaW4gdGhlCj4gPiBm aXJzdCA0IHBhdGNoZXMgaGVyZSwgc28gd2lsbCBza2lwIHRoZW0uCj4gCj4gVGhlIHBvaW50IHdh cyB0byBnZXQgdGhhdCBsZWdhY3kgcGxhbmUtPmZiL29sZF9mYiBzdHVmZiB0b3RhbGx5Cj4gb3V0 IGZyb20gdGhlIGF0b21pYyBjb2RlcGF0aC4gUmlnaHQgbm93IGl0J3MgcG9sbHV0aW5nIHRoZQo+ IHN1cHBvc2VkbHkgaGlnaGVyIGxldmVsIGNvZGUgc2hhcmVkIGJ5IGJvdGggYXRvbWljIGFuZCBs ZWdhY3kKPiBkcml2ZXJzLgoKSG0gLi4uIEkgdGhpbmsgaWYgeW91IHNlbGwgaXQgbGlrZSB0aGF0 LCBhbmQgbWF5YmUgZXZlbiBnbyBvbmUgZnVydGhlciBhbmQKaW5saW5lIHBhZ2VfZmxpcCBmb3Ig YWxsIGF0b21pYyBkcml2ZXJzLCBJIGNhbiBiZSBzb2xkIG9uIHRoaXMuIEFzLWlzIEkKanVzdCBk aWRuJ3QgcmVhbGx5IGdldCB3aHkgeW91J3JlIHJld29ya2luZyBhbGwgdGhpcy4KLURhbmllbAoK PiAKPiA+IC1EYW5pZWwKPiA+IAo+ID4gPiArCXJldCA9IGRybV9mcmFtZWJ1ZmZlcl9jaGVja19z cmNfY29vcmRzKHBsYW5lX3N0YXRlLT5zcmNfeCwKPiA+ID4gKwkJCQkJICAgICAgIHBsYW5lX3N0 YXRlLT5zcmNfeSwKPiA+ID4gKwkJCQkJICAgICAgIHBsYW5lX3N0YXRlLT5zcmNfdywKPiA+ID4g KwkJCQkJICAgICAgIHBsYW5lX3N0YXRlLT5zcmNfaCwKPiA+ID4gKwkJCQkJICAgICAgIGZiKTsK PiA+ID4gKwlpZiAocmV0KQo+ID4gPiArCQlyZXR1cm4gcmV0Owo+ID4gPiArCj4gPiA+ICsJcmV0 ID0gcGFnZV9mbGlwX2NoZWNrX2ZicyhmYiwgcGxhbmVfc3RhdGUtPmZiKTsKPiA+ID4gKwlpZiAo cmV0KQo+ID4gPiArCQlyZXR1cm4gcmV0Owo+ID4gPiArCj4gPiA+ICsJaWYgKGNydGMtPmZ1bmNz LT5wYWdlX2ZsaXBfdGFyZ2V0KQo+ID4gPiArCQlyZXR1cm4gY3J0Yy0+ZnVuY3MtPnBhZ2VfZmxp cF90YXJnZXQoY3J0YywgZmIsIGUsIGZsYWdzLAo+ID4gPiArCQkJCQkJICAgICB0YXJnZXRfdmJs YW5rLCBjdHgpOwo+ID4gPiArCWVsc2UKPiA+ID4gKwkJcmV0dXJuIGNydGMtPmZ1bmNzLT5wYWdl X2ZsaXAoY3J0YywgZmIsIGUsIGZsYWdzLCBjdHgpOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICBp bnQgZHJtX21vZGVfcGFnZV9mbGlwX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiA+ ICAJCQkgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ID4gPiAg ewo+ID4gPiAgCXN0cnVjdCBkcm1fbW9kZV9jcnRjX3BhZ2VfZmxpcF90YXJnZXQgKnBhZ2VfZmxp cCA9IGRhdGE7Cj4gPiA+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ID4gPiAgCXN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lOwo+ID4gPiAtCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCAqb2xk X2ZiOwo+ID4gPiArCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOwo+ID4gPiAgCXN0cnVjdCBk cm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmUgPSBOVUxMOwo+ID4gPiAgCXUzMiB0YXJnZXRfdmJs YW5rID0gcGFnZV9mbGlwLT5zZXF1ZW5jZTsKPiA+ID4gIAlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNx dWlyZV9jdHggY3R4Owo+ID4gPiBAQCAtMTE0NSw2NSArMTI0MSwxNCBAQCBpbnQgZHJtX21vZGVf cGFnZV9mbGlwX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiA+ICAJaWYgKHJldCkK PiA+ID4gIAkJZ290byBvdXQ7Cj4gPiA+ICAKPiA+ID4gLQlpZiAocGxhbmUtPnN0YXRlKQo+ID4g PiAtCQlvbGRfZmIgPSBwbGFuZS0+c3RhdGUtPmZiOwo+ID4gPiArCWlmIChkcm1fZHJ2X3VzZXNf YXRvbWljX21vZGVzZXQoZGV2KSkKPiA+ID4gKwkJcmV0ID0gcGFnZV9mbGlwX2F0b21pYyhjcnRj LCBmYiwgZSwgcGFnZV9mbGlwLT5mbGFncywKPiA+ID4gKwkJCQkgICAgICAgdGFyZ2V0X3ZibGFu aywgJmN0eCk7Cj4gPiA+ICAJZWxzZQo+ID4gPiAtCQlvbGRfZmIgPSBwbGFuZS0+ZmI7Cj4gPiA+ IC0KPiA+ID4gLQlpZiAob2xkX2ZiID09IE5VTEwpIHsKPiA+ID4gLQkJLyogVGhlIGZyYW1lYnVm ZmVyIGlzIGN1cnJlbnRseSB1bmJvdW5kLCBwcmVzdW1hYmx5Cj4gPiA+IC0JCSAqIGR1ZSB0byBh IGhvdHBsdWcgZXZlbnQsIHRoYXQgdXNlcnNwYWNlIGhhcyBub3QKPiA+ID4gLQkJICogeWV0IGRp c2NvdmVyZWQuCj4gPiA+IC0JCSAqLwo+ID4gPiAtCQlyZXQgPSAtRUJVU1k7Cj4gPiA+IC0JCWdv dG8gb3V0Owo+ID4gPiAtCX0KPiA+ID4gLQo+ID4gPiAtCWlmIChwbGFuZS0+c3RhdGUpIHsKPiA+ ID4gLQkJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUgPSBwbGFuZS0+c3RhdGU7 Cj4gPiA+IC0KPiA+ID4gLQkJcmV0ID0gZHJtX2ZyYW1lYnVmZmVyX2NoZWNrX3NyY19jb29yZHMo c3RhdGUtPnNyY194LAo+ID4gPiAtCQkJCQkJICAgICAgIHN0YXRlLT5zcmNfeSwKPiA+ID4gLQkJ CQkJCSAgICAgICBzdGF0ZS0+c3JjX3csCj4gPiA+IC0JCQkJCQkgICAgICAgc3RhdGUtPnNyY19o LAo+ID4gPiAtCQkJCQkJICAgICAgIGZiKTsKPiA+ID4gLQl9IGVsc2Ugewo+ID4gPiAtCQlyZXQg PSBkcm1fY3J0Y19jaGVja192aWV3cG9ydChjcnRjLCBjcnRjLT54LCBjcnRjLT55LAo+ID4gPiAt CQkJCQkgICAgICAmY3J0Yy0+bW9kZSwgZmIpOwo+ID4gPiAtCX0KPiA+ID4gLQlpZiAocmV0KQo+ ID4gPiAtCQlnb3RvIG91dDsKPiA+ID4gLQo+ID4gPiAtCWlmIChvbGRfZmItPmZvcm1hdCAhPSBm Yi0+Zm9ybWF0KSB7Cj4gPiA+IC0JCURSTV9ERUJVR19LTVMoIlBhZ2UgZmxpcCBpcyBub3QgYWxs b3dlZCB0byBjaGFuZ2UgZnJhbWUgYnVmZmVyIGZvcm1hdC5cbiIpOwo+ID4gPiAtCQlyZXQgPSAt RUlOVkFMOwo+ID4gPiAtCQlnb3RvIG91dDsKPiA+ID4gLQl9Cj4gPiA+IC0KPiA+ID4gLQlwbGFu ZS0+b2xkX2ZiID0gcGxhbmUtPmZiOwo+ID4gPiAtCWlmIChjcnRjLT5mdW5jcy0+cGFnZV9mbGlw X3RhcmdldCkKPiA+ID4gLQkJcmV0ID0gY3J0Yy0+ZnVuY3MtPnBhZ2VfZmxpcF90YXJnZXQoY3J0 YywgZmIsIGUsCj4gPiA+IC0JCQkJCQkgICAgcGFnZV9mbGlwLT5mbGFncywKPiA+ID4gLQkJCQkJ CSAgICB0YXJnZXRfdmJsYW5rLAo+ID4gPiAtCQkJCQkJICAgICZjdHgpOwo+ID4gPiAtCWVsc2UK PiA+ID4gLQkJcmV0ID0gY3J0Yy0+ZnVuY3MtPnBhZ2VfZmxpcChjcnRjLCBmYiwgZSwgcGFnZV9m bGlwLT5mbGFncywKPiA+ID4gLQkJCQkJICAgICAmY3R4KTsKPiA+ID4gLQlpZiAocmV0KSB7Cj4g PiA+IC0JCS8qIEtlZXAgdGhlIG9sZCBmYiwgZG9uJ3QgdW5yZWYgaXQuICovCj4gPiA+IC0JCXBs YW5lLT5vbGRfZmIgPSBOVUxMOwo+ID4gPiAtCX0gZWxzZSB7Cj4gPiA+IC0JCWlmICghcGxhbmUt PnN0YXRlKSB7Cj4gPiA+IC0JCQlwbGFuZS0+ZmIgPSBmYjsKPiA+ID4gLQkJCWRybV9mcmFtZWJ1 ZmZlcl9nZXQoZmIpOwo+ID4gPiAtCQl9Cj4gPiA+IC0JfQo+ID4gPiArCQlyZXQgPSBwYWdlX2Zs aXBfaW50ZXJuYWwoY3J0YywgZmIsIGUsIHBhZ2VfZmxpcC0+ZmxhZ3MsCj4gPiA+ICsJCQkJCSB0 YXJnZXRfdmJsYW5rLCAmY3R4KTsKPiA+ID4gIAo+ID4gPiAgb3V0Ogo+ID4gPiAtCWlmIChwbGFu ZS0+b2xkX2ZiKQo+ID4gPiAtCQlkcm1fZnJhbWVidWZmZXJfcHV0KHBsYW5lLT5vbGRfZmIpOwo+ ID4gPiAtCXBsYW5lLT5vbGRfZmIgPSBOVUxMOwo+ID4gPiAtCj4gPiA+ICAJaWYgKHJldCA9PSAt RURFQURMSykgewo+ID4gPiAgCQlyZXQgPSBkcm1fbW9kZXNldF9iYWNrb2ZmKCZjdHgpOwo+ID4g PiAgCQlpZiAoIXJldCkKPiA+ID4gLS0gCj4gPiA+IDIuMjMuMAo+ID4gPiAKPiA+ID4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ID4gSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdAo+ID4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiA+ IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cj4gPiAKPiA+IC0tIAo+ID4gRGFuaWVsIFZldHRlcgo+ID4gU29mdHdhcmUgRW5naW5lZXIsIElu dGVsIENvcnBvcmF0aW9uCj4gPiBodHRwOi8vYmxvZy5mZndsbC5jaAo+IAo+IC0tIAo+IFZpbGxl IFN5cmrDpGzDpAo+IEludGVsCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwg SW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs