From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 2/5] drm/i915: Separate out the seqno-barrier from engine->get_seqno Date: Tue, 16 Feb 2016 14:51:13 +0200 Message-ID: <87a8n0rf7i.fsf@gaia.fi.intel.com> References: <1455623268-10023-1-git-send-email-chris@chris-wilson.co.uk> <1455623268-10023-3-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id B5A626E7C8 for ; Tue, 16 Feb 2016 12:53:01 +0000 (UTC) In-Reply-To: <1455623268-10023-3-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gSW4gb3Jk ZXIgdG8gc2ltcGxpZnkgZnV0dXJlIHBhdGNoZXMsIGV4dHJhY3QgdGhlCj4gbGF6eV9jb2hlcmVu Y3kgb3B0aW1pc2F0aW9uIG91ciBvZiB0aGUgZW5naW5lLT5nZXRfc2Vxbm8oKSB2ZnVuYyBpbnRv Cj4gaXRzIG93biBjYWxsYmFjay4KPgo+IHYyOiBSZW5hbWUgdGhlIGJhcnJpZXIgdG8gZW5naW5l LT5pcnFfc2Vxbm9fYmFycmllciB0byB0cnkgYW5kIGJldHRlcgo+IHJlZmxlY3QgdGhhdCB0aGUg YmFycmllciBpcyBvbmx5IHJlcXVpcmVkIGFmdGVyIHRoZSB1c2VyIGludGVycnVwdCBiZWZvcmUK PiByZWFkaW5nIHRoZSBzZXFubyAodG8gZW5zdXJlIHRoYXQgdGhlIHNlcW5vIHVwZGF0ZSBsYW5k cyBpbiB0aW1lIGFzIHdlCj4gZG8gbm90IGhhdmUgc3RyaWN0IHNlcW5vLWlycSBvcmRlcmluZyBv biBhbGwgcGxhdGZvcm1zKS4KPgo+IFJldmlld2VkLWJ5OiBEYXZlIEdvcmRvbiA8ZGF2aWQucy5n b3Jkb25AaW50ZWwuY29tPiBbI3YyXQo+Cj4gdjM6IENvbW1lbnRzIGZvciBoYW5nY2hlY2sgcGFy YW5vaWEuIE1pa2Egd2FudGVkIHRvIGtlZXAgdGhlIGV4dHJhCj4gYmFycmllciBpbnNpZGUgdGhl IGhhbmdjaGVjaywganVzdCBpbiBjYXNlLiBJIGNhbiBhcmd1ZSB0aGF0IGl0IGRvZXNuJ3QKPiBw cm92aWRlIGEgYmFycmllciBhZ2FpbnN0IGFueXRoaW5nLCBidXQgdGhlIHNpZGUtZWZmZWN0cyBv ZiBhcHBseWluZyB0aGUKPiBiYXJyaWVyIG1heSBwcmV2ZW50IGEgZmFsc2UgZGVjbGFyYXRpb24g b2YgYSBodW5nIEdQVS4KPgo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hy aXMtd2lsc29uLmNvLnVrPgo+IENjOiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGludGVs LmNvbT4KPiBDYzogRGF2ZSBHb3Jkb24gPGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KPiAtLS0K ClJldmlld2VkLWJ5OiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGludGVsLmNvbT4KCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICB8ICA2ICsrKy0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAxMiArKysrKysrKy0tLS0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyAgIHwgIDIgKy0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgICAgIHwgMTQgKysrKysrKysrKysrLS0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oICAgICAgIHwgIDIgKy0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwgMTggKysrKysrLS0tLS0tLS0t LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIHwgMzQgKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuaCB8ICA0ICsrLS0KPiAgOCBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25z KCspLCA0MSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4g aW5kZXggZWMwYzJhMDVlZWQ2Li5jNGRmNTgwZWQwZGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYwo+IEBAIC02MDAsNyArNjAwLDcgQEAgc3RhdGljIGludCBpOTE1X2dlbV9w YWdlZmxpcF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiAgCQkJCQkgICBy aW5nLT5uYW1lLAo+ICAJCQkJCSAgIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKHdvcmstPmZs aXBfcXVldWVkX3JlcSksCj4gIAkJCQkJICAgZGV2X3ByaXYtPm5leHRfc2Vxbm8sCj4gLQkJCQkJ ICAgcmluZy0+Z2V0X3NlcW5vKHJpbmcsIHRydWUpLAo+ICsJCQkJCSAgIHJpbmctPmdldF9zZXFu byhyaW5nKSwKPiAgCQkJCQkgICBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZCh3b3JrLT5mbGlw X3F1ZXVlZF9yZXEsIHRydWUpKTsKPiAgCQkJfSBlbHNlCj4gIAkJCQlzZXFfcHJpbnRmKG0sICJG bGlwIG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IHJpbmdcbiIpOwo+IEBAIC03MzIsNyArNzMyLDcg QEAgc3RhdGljIHZvaWQgaTkxNV9yaW5nX3NlcW5vX2luZm8oc3RydWN0IHNlcV9maWxlICptLAo+ ICB7Cj4gIAlpZiAocmluZy0+Z2V0X3NlcW5vKSB7Cj4gIAkJc2VxX3ByaW50ZihtLCAiQ3VycmVu dCBzZXF1ZW5jZSAoJXMpOiAleFxuIiwKPiAtCQkJICAgcmluZy0+bmFtZSwgcmluZy0+Z2V0X3Nl cW5vKHJpbmcsIGZhbHNlKSk7Cj4gKwkJCSAgIHJpbmctPm5hbWUsIHJpbmctPmdldF9zZXFubyhy aW5nKSk7Cj4gIAl9Cj4gIH0KPiAgCj4gQEAgLTEzNDIsOCArMTM0Miw4IEBAIHN0YXRpYyBpbnQg aTkxNV9oYW5nY2hlY2tfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiAg CWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKPiAgCj4gIAlmb3JfZWFjaF9yaW5nKHJp bmcsIGRldl9wcml2LCBpKSB7Cj4gLQkJc2Vxbm9baV0gPSByaW5nLT5nZXRfc2Vxbm8ocmluZywg ZmFsc2UpOwo+ICAJCWFjdGhkW2ldID0gaW50ZWxfcmluZ19nZXRfYWN0aXZlX2hlYWQocmluZyk7 Cj4gKwkJc2Vxbm9baV0gPSByaW5nLT5nZXRfc2Vxbm8ocmluZyk7Cj4gIAl9Cj4gIAo+ICAJaTkx NV9nZXRfZXh0cmFfaW5zdGRvbmUoZGV2LCBpbnN0ZG9uZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4gaW5kZXggMjBkOWRiZDlmOWNmLi41MjVmMzljMDU1MWIgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiBAQCAtMzAwMSwxNSArMzAwMSwxOSBAQCBpOTE1X3NlcW5vX3Bhc3NlZCh1 aW50MzJfdCBzZXExLCB1aW50MzJfdCBzZXEyKQo+ICBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9n ZW1fcmVxdWVzdF9zdGFydGVkKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAJ CQkJCSAgIGJvb2wgbGF6eV9jb2hlcmVuY3kpCj4gIHsKPiAtCXUzMiBzZXFubyA9IHJlcS0+cmlu Zy0+Z2V0X3NlcW5vKHJlcS0+cmluZywgbGF6eV9jb2hlcmVuY3kpOwo+IC0JcmV0dXJuIGk5MTVf c2Vxbm9fcGFzc2VkKHNlcW5vLCByZXEtPnByZXZpb3VzX3NlcW5vKTsKPiArCWlmICghbGF6eV9j b2hlcmVuY3kgJiYgcmVxLT5yaW5nLT5pcnFfc2Vxbm9fYmFycmllcikKPiArCQlyZXEtPnJpbmct PmlycV9zZXFub19iYXJyaWVyKHJlcS0+cmluZyk7Cj4gKwlyZXR1cm4gaTkxNV9zZXFub19wYXNz ZWQocmVxLT5yaW5nLT5nZXRfc2Vxbm8ocmVxLT5yaW5nKSwKPiArCQkJCSByZXEtPnByZXZpb3Vz X3NlcW5vKTsKPiAgfQo+ICAKPiAgc3RhdGljIGlubGluZSBib29sIGk5MTVfZ2VtX3JlcXVlc3Rf Y29tcGxldGVkKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAJCQkJCSAgICAg IGJvb2wgbGF6eV9jb2hlcmVuY3kpCj4gIHsKPiAtCXUzMiBzZXFubyA9IHJlcS0+cmluZy0+Z2V0 X3NlcW5vKHJlcS0+cmluZywgbGF6eV9jb2hlcmVuY3kpOwo+IC0JcmV0dXJuIGk5MTVfc2Vxbm9f cGFzc2VkKHNlcW5vLCByZXEtPnNlcW5vKTsKPiArCWlmICghbGF6eV9jb2hlcmVuY3kgJiYgcmVx LT5yaW5nLT5pcnFfc2Vxbm9fYmFycmllcikKPiArCQlyZXEtPnJpbmctPmlycV9zZXFub19iYXJy aWVyKHJlcS0+cmluZyk7Cj4gKwlyZXR1cm4gaTkxNV9zZXFub19wYXNzZWQocmVxLT5yaW5nLT5n ZXRfc2Vxbm8ocmVxLT5yaW5nKSwKPiArCQkJCSByZXEtPnNlcW5vKTsKPiAgfQo+ICAKPiAgaW50 IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9nZXRfc2Vxbm8oc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dTMyICpzZXFubyk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1 X2Vycm9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCj4gaW5kZXgg OTc4YzAyNjk2M2I4Li4zM2YxZTA2MzZhMDMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9ncHVfZXJyb3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z3B1X2Vycm9yLmMKPiBAQCAtOTA2LDggKzkwNiw4IEBAIHN0YXRpYyB2b2lkIGk5MTVfcmVjb3Jk X3Jpbmdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCj4gIAllcmluZy0+d2FpdGlu ZyA9IHdhaXRxdWV1ZV9hY3RpdmUoJnJpbmctPmlycV9xdWV1ZSk7Cj4gIAllcmluZy0+aW5zdHBt ID0gSTkxNV9SRUFEKFJJTkdfSU5TVFBNKHJpbmctPm1taW9fYmFzZSkpOwo+IC0JZXJpbmctPnNl cW5vID0gcmluZy0+Z2V0X3NlcW5vKHJpbmcsIGZhbHNlKTsKPiAgCWVyaW5nLT5hY3RoZCA9IGlu dGVsX3JpbmdfZ2V0X2FjdGl2ZV9oZWFkKHJpbmcpOwo+ICsJZXJpbmctPnNlcW5vID0gcmluZy0+ Z2V0X3NlcW5vKHJpbmcpOwo+ICAJZXJpbmctPnN0YXJ0ID0gSTkxNV9SRUFEX1NUQVJUKHJpbmcp Owo+ICAJZXJpbmctPmhlYWQgPSBJOTE1X1JFQURfSEVBRChyaW5nKTsKPiAgCWVyaW5nLT50YWls ID0gSTkxNV9SRUFEX1RBSUwocmluZyk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gaW5kZXgg MjVhODkzNzNkZjYzLi4wN2JjMmNkZDYyNTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMK PiBAQCAtMjkzNyw3ICsyOTM3LDcgQEAgc3RhdGljIGludCBzZW1hcGhvcmVfcGFzc2VkKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gIAlpZiAoc2lnbmFsbGVyLT5oYW5nY2hlY2suZGVh ZGxvY2sgPj0gSTkxNV9OVU1fUklOR1MpCj4gIAkJcmV0dXJuIC0xOwo+ICAKPiAtCWlmIChpOTE1 X3NlcW5vX3Bhc3NlZChzaWduYWxsZXItPmdldF9zZXFubyhzaWduYWxsZXIsIGZhbHNlKSwgc2Vx bm8pKQo+ICsJaWYgKGk5MTVfc2Vxbm9fcGFzc2VkKHNpZ25hbGxlci0+Z2V0X3NlcW5vKHNpZ25h bGxlciksIHNlcW5vKSkKPiAgCQlyZXR1cm4gMTsKPiAgCj4gIAkvKiBjdXJzb3J5IGNoZWNrIGZv ciBhbiB1bmtpY2thYmxlIGRlYWRsb2NrICovCj4gQEAgLTMxMDEsOCArMzEwMSwxOCBAQCBzdGF0 aWMgdm9pZCBpOTE1X2hhbmdjaGVja19lbGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykK PiAgCj4gIAkJc2VtYXBob3JlX2NsZWFyX2RlYWRsb2NrcyhkZXZfcHJpdik7Cj4gIAo+IC0JCXNl cW5vID0gcmluZy0+Z2V0X3NlcW5vKHJpbmcsIGZhbHNlKTsKPiArCQkvKiBXZSBkb24ndCBzdHJp Y3RseSBuZWVkIGFuIGlycS1iYXJyaWVyIGhlcmUsIGFzIHdlIGFyZSBub3QKPiArCQkgKiBzZXJ2 aW5nIGFuIGludGVycnVwdCByZXF1ZXN0LCBiZSBwYXJhbm9pZCBpbiBjYXNlIHRoZQo+ICsJCSAq IGJhcnJpZXIgaGFzIHNpZGUtZWZmZWN0cyAoc3VjaCBhcyBwcmV2ZW50aW5nIGEgYnJva2VuCj4g KwkJICogY2FjaGVsaW5lIHNub29wKSBhbmQgc28gYmUgc3VyZSB0aGF0IHdlIGNhbiBzZWUgdGhl IHNlcW5vCj4gKwkJICogYWR2YW5jZS4gSWYgdGhlIHNlcW5vIHNob3VsZCBzdGljaywgZHVlIHRv IGEgc3RhbGUKPiArCQkgKiBjYWNoZWxpbmUsIHdlIHdvdWxkIGVycm9uZW91c2x5IGRlY2xhcmUg dGhlIEdQVSBodW5nLgo+ICsJCSAqLwo+ICsJCWlmIChyaW5nLT5pcnFfc2Vxbm9fYmFycmllcikK PiArCQkJcmluZy0+aXJxX3NlcW5vX2JhcnJpZXIocmluZyk7Cj4gKwo+ICAJCWFjdGhkID0gaW50 ZWxfcmluZ19nZXRfYWN0aXZlX2hlYWQocmluZyk7Cj4gKwkJc2Vxbm8gPSByaW5nLT5nZXRfc2Vx bm8ocmluZyk7Cj4gIAo+ICAJCWlmIChyaW5nLT5oYW5nY2hlY2suc2Vxbm8gPT0gc2Vxbm8pIHsK PiAgCQkJaWYgKHJpbmdfaWRsZShyaW5nLCBzZXFubykpIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90 cmFjZS5oCj4gaW5kZXggNTJiMmQ0MDk5NDVkLi5jZmI1Zjc4YTZlODQgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV90cmFjZS5oCj4gQEAgLTU3Myw3ICs1NzMsNyBAQCBUUkFDRV9FVkVOVChpOTE1 X2dlbV9yZXF1ZXN0X25vdGlmeSwKPiAgCSAgICBUUF9mYXN0X2Fzc2lnbigKPiAgCQkJICAgX19l bnRyeS0+ZGV2ID0gcmluZy0+ZGV2LT5wcmltYXJ5LT5pbmRleDsKPiAgCQkJICAgX19lbnRyeS0+ cmluZyA9IHJpbmctPmlkOwo+IC0JCQkgICBfX2VudHJ5LT5zZXFubyA9IHJpbmctPmdldF9zZXFu byhyaW5nLCBmYWxzZSk7Cj4gKwkJCSAgIF9fZW50cnktPnNlcW5vID0gcmluZy0+Z2V0X3NlcW5v KHJpbmcpOwo+ICAJCQkgICApLAo+ICAKPiAgCSAgICBUUF9wcmludGsoImRldj0ldSwgcmluZz0l dSwgc2Vxbm89JXUiLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggM2EwMzY0NmUz NDNkLi4wZTgzM2Q0NzBjNWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC0x ODM3LDcgKzE4MzcsNyBAQCBzdGF0aWMgaW50IGdlbjhfZW1pdF9mbHVzaF9yZW5kZXIoc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4g LXN0YXRpYyB1MzIgZ2VuOF9nZXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywg Ym9vbCBsYXp5X2NvaGVyZW5jeSkKPiArc3RhdGljIHUzMiBnZW44X2dldF9zZXFubyhzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICB7Cj4gIAlyZXR1cm4gaW50ZWxfcmVhZF9zdGF0dXNf cGFnZShyaW5nLCBJOTE1X0dFTV9IV1NfSU5ERVgpOwo+ICB9Cj4gQEAgLTE4NDcsOSArMTg0Nyw4 IEBAIHN0YXRpYyB2b2lkIGdlbjhfc2V0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcsIHUzMiBzZXFubykKPiAgCWludGVsX3dyaXRlX3N0YXR1c19wYWdlKHJpbmcsIEk5MTVfR0VN X0hXU19JTkRFWCwgc2Vxbm8pOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdTMyIGJ4dF9hX2dldF9zZXFu byhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBib29sIGxhenlfY29oZXJlbmN5KQo+ICtz dGF0aWMgdm9pZCBieHRfc2Vxbm9fYmFycmllcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n KQo+ICB7Cj4gLQo+ICAJLyoKPiAgCSAqIE9uIEJYVCBBIHN0ZXBwaW5ncyB0aGVyZSBpcyBhIEhX IGNvaGVyZW5jeSBpc3N1ZSB3aGVyZWJ5IHRoZQo+ICAJICogTUlfU1RPUkVfREFUQV9JTU0gc3Rv cmluZyB0aGUgY29tcGxldGVkIHJlcXVlc3QncyBzZXFubwo+IEBAIC0xODYwLDExICsxODU5LDcg QEAgc3RhdGljIHUzMiBieHRfYV9nZXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZywgYm9vbCBsYXp5X2NvaGVyZW5jeSkKPiAgCSAqIGJ4dF9hX3NldF9zZXFubygpLCB3aGVyZSB3 ZSBhbHNvIGRvIGEgY2xmbHVzaCBhZnRlciB0aGUgd3JpdGUuIFNvCj4gIAkgKiB0aGlzIGNsZmx1 c2ggaW4gcHJhY3RpY2UgYmVjb21lcyBhbiBpbnZhbGlkYXRlIG9wZXJhdGlvbi4KPiAgCSAqLwo+ IC0KPiAtCWlmICghbGF6eV9jb2hlcmVuY3kpCj4gLQkJaW50ZWxfZmx1c2hfc3RhdHVzX3BhZ2Uo cmluZywgSTkxNV9HRU1fSFdTX0lOREVYKTsKPiAtCj4gLQlyZXR1cm4gaW50ZWxfcmVhZF9zdGF0 dXNfcGFnZShyaW5nLCBJOTE1X0dFTV9IV1NfSU5ERVgpOwo+ICsJaW50ZWxfZmx1c2hfc3RhdHVz X3BhZ2UocmluZywgSTkxNV9HRU1fSFdTX0lOREVYKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQg Ynh0X2Ffc2V0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIHUzMiBzZXFubykK PiBAQCAtMjAzNCwxMiArMjAyOSwxMSBAQCBsb2dpY2FsX3JpbmdfZGVmYXVsdF92ZnVuY3Moc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCXJpbmctPmlycV9nZXQgPSBnZW44X2xvZ2ljYWxfcmlu Z19nZXRfaXJxOwo+ICAJcmluZy0+aXJxX3B1dCA9IGdlbjhfbG9naWNhbF9yaW5nX3B1dF9pcnE7 Cj4gIAlyaW5nLT5lbWl0X2JiX3N0YXJ0ID0gZ2VuOF9lbWl0X2JiX3N0YXJ0Owo+ICsJcmluZy0+ Z2V0X3NlcW5vID0gZ2VuOF9nZXRfc2Vxbm87Cj4gKwlyaW5nLT5zZXRfc2Vxbm8gPSBnZW44X3Nl dF9zZXFubzsKPiAgCWlmIChJU19CWFRfUkVWSUQoZGV2LCAwLCBCWFRfUkVWSURfQTEpKSB7Cj4g LQkJcmluZy0+Z2V0X3NlcW5vID0gYnh0X2FfZ2V0X3NlcW5vOwo+ICsJCXJpbmctPmlycV9zZXFu b19iYXJyaWVyID0gYnh0X3NlcW5vX2JhcnJpZXI7Cj4gIAkJcmluZy0+c2V0X3NlcW5vID0gYnh0 X2Ffc2V0X3NlcW5vOwo+IC0JfSBlbHNlIHsKPiAtCQlyaW5nLT5nZXRfc2Vxbm8gPSBnZW44X2dl dF9zZXFubzsKPiAtCQlyaW5nLT5zZXRfc2Vxbm8gPSBnZW44X3NldF9zZXFubzsKPiAgCX0KPiAg fQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gaW5kZXggYWJh YzA1NjBkMDc1Li41NzMyMDM2MThkZmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jCj4gQEAgLTE1NDgsOCArMTU0OCw4IEBAIHBjX3JlbmRlcl9hZGRfcmVxdWVz dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgCXJldHVybiAwOwo+ICB9Cj4g IAo+IC1zdGF0aWMgdTMyCj4gLWdlbjZfcmluZ19nZXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZywgYm9vbCBsYXp5X2NvaGVyZW5jeSkKPiArc3RhdGljIHZvaWQKPiArZ2VuNl9z ZXFub19iYXJyaWVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gIHsKPiAgCS8qIFdv cmthcm91bmQgdG8gZm9yY2UgY29ycmVjdCBvcmRlcmluZyBiZXR3ZWVuIGlycSBhbmQgc2Vxbm8g d3JpdGVzIG9uCj4gIAkgKiBpdmIgKGFuZCBtYXliZSBhbHNvIG9uIHNuYikgYnkgcmVhZGluZyBm cm9tIGEgQ1MgcmVnaXN0ZXIgKGxpa2UKPiBAQCAtMTU2MywxNiArMTU2MywxMiBAQCBnZW42X3Jp bmdfZ2V0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGJvb2wgbGF6eV9jb2hl cmVuY3kpCj4gIAkgKiBiYXRjaCBpLmUuIG11Y2ggbW9yZSBmcmVxdWVudCB0aGFuIGEgZGVsYXkg d2hlbiB3YWl0aW5nIGZvciB0aGUKPiAgCSAqIGludGVycnVwdCAod2l0aCB0aGUgc2FtZSBuZXQg bGF0ZW5jeSkuCj4gIAkgKi8KPiAtCWlmICghbGF6eV9jb2hlcmVuY3kpIHsKPiAtCQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByaW5nLT5kZXYtPmRldl9wcml2YXRlOwo+IC0J CVBPU1RJTkdfUkVBRF9GVyhSSU5HX0FDVEhEKHJpbmctPm1taW9fYmFzZSkpOwo+IC0JfQo+IC0K PiAtCXJldHVybiBpbnRlbF9yZWFkX3N0YXR1c19wYWdlKHJpbmcsIEk5MTVfR0VNX0hXU19JTkRF WCk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHJpbmct PmRldik7Cj4gKwlQT1NUSU5HX1JFQURfRlcoUklOR19BQ1RIRChyaW5nLT5tbWlvX2Jhc2UpKTsK PiAgfQo+ICAKPiAgc3RhdGljIHUzMgo+IC1yaW5nX2dldF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nLCBib29sIGxhenlfY29oZXJlbmN5KQo+ICtyaW5nX2dldF9zZXFubyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICB7Cj4gIAlyZXR1cm4gaW50ZWxfcmVhZF9zdGF0 dXNfcGFnZShyaW5nLCBJOTE1X0dFTV9IV1NfSU5ERVgpOwo+ICB9Cj4gQEAgLTE1ODQsNyArMTU4 MCw3IEBAIHJpbmdfc2V0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIHUzMiBz ZXFubykKPiAgfQo+ICAKPiAgc3RhdGljIHUzMgo+IC1wY19yZW5kZXJfZ2V0X3NlcW5vKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGJvb2wgbGF6eV9jb2hlcmVuY3kpCj4gK3BjX3JlbmRl cl9nZXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgewo+ICAJcmV0dXJu IHJpbmctPnNjcmF0Y2guY3B1X3BhZ2VbMF07Cj4gIH0KPiBAQCAtMjc4Myw3ICsyNzc5LDggQEAg aW50IGludGVsX2luaXRfcmVuZGVyX3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4gIAkJcmluZy0+aXJxX2dldCA9IGdlbjhfcmluZ19nZXRfaXJxOwo+ICAJCXJpbmctPmlycV9w dXQgPSBnZW44X3JpbmdfcHV0X2lycTsKPiAgCQlyaW5nLT5pcnFfZW5hYmxlX21hc2sgPSBHVF9S RU5ERVJfVVNFUl9JTlRFUlJVUFQ7Cj4gLQkJcmluZy0+Z2V0X3NlcW5vID0gZ2VuNl9yaW5nX2dl dF9zZXFubzsKPiArCQlyaW5nLT5pcnFfc2Vxbm9fYmFycmllciA9IGdlbjZfc2Vxbm9fYmFycmll cjsKPiArCQlyaW5nLT5nZXRfc2Vxbm8gPSByaW5nX2dldF9zZXFubzsKPiAgCQlyaW5nLT5zZXRf c2Vxbm8gPSByaW5nX3NldF9zZXFubzsKPiAgCQlpZiAoaTkxNV9zZW1hcGhvcmVfaXNfZW5hYmxl ZChkZXYpKSB7Cj4gIAkJCVdBUk5fT04oIWRldl9wcml2LT5zZW1hcGhvcmVfb2JqKTsKPiBAQCAt MjgwMCw3ICsyNzk3LDggQEAgaW50IGludGVsX2luaXRfcmVuZGVyX3JpbmdfYnVmZmVyKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJcmluZy0+aXJxX2dldCA9IGdlbjZfcmluZ19nZXRfaXJx Owo+ICAJCXJpbmctPmlycV9wdXQgPSBnZW42X3JpbmdfcHV0X2lycTsKPiAgCQlyaW5nLT5pcnFf ZW5hYmxlX21hc2sgPSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQ7Cj4gLQkJcmluZy0+Z2V0X3Nl cW5vID0gZ2VuNl9yaW5nX2dldF9zZXFubzsKPiArCQlyaW5nLT5pcnFfc2Vxbm9fYmFycmllciA9 IGdlbjZfc2Vxbm9fYmFycmllcjsKPiArCQlyaW5nLT5nZXRfc2Vxbm8gPSByaW5nX2dldF9zZXFu bzsKPiAgCQlyaW5nLT5zZXRfc2Vxbm8gPSByaW5nX3NldF9zZXFubzsKPiAgCQlpZiAoaTkxNV9z ZW1hcGhvcmVfaXNfZW5hYmxlZChkZXYpKSB7Cj4gIAkJCXJpbmctPnNlbWFwaG9yZS5zeW5jX3Rv ID0gZ2VuNl9yaW5nX3N5bmM7Cj4gQEAgLTI5MTUsNyArMjkxMyw4IEBAIGludCBpbnRlbF9pbml0 X2JzZF9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCQlyaW5nLT53cml0 ZV90YWlsID0gZ2VuNl9ic2RfcmluZ193cml0ZV90YWlsOwo+ICAJCXJpbmctPmZsdXNoID0gZ2Vu Nl9ic2RfcmluZ19mbHVzaDsKPiAgCQlyaW5nLT5hZGRfcmVxdWVzdCA9IGdlbjZfYWRkX3JlcXVl c3Q7Cj4gLQkJcmluZy0+Z2V0X3NlcW5vID0gZ2VuNl9yaW5nX2dldF9zZXFubzsKPiArCQlyaW5n LT5pcnFfc2Vxbm9fYmFycmllciA9IGdlbjZfc2Vxbm9fYmFycmllcjsKPiArCQlyaW5nLT5nZXRf c2Vxbm8gPSByaW5nX2dldF9zZXFubzsKPiAgCQlyaW5nLT5zZXRfc2Vxbm8gPSByaW5nX3NldF9z ZXFubzsKPiAgCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOCkgewo+ICAJCQlyaW5nLT5p cnFfZW5hYmxlX21hc2sgPQo+IEBAIC0yOTg4LDcgKzI5ODcsOCBAQCBpbnQgaW50ZWxfaW5pdF9i c2QyX3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAlyaW5nLT5tbWlvX2Jh c2UgPSBHRU44X0JTRDJfUklOR19CQVNFOwo+ICAJcmluZy0+Zmx1c2ggPSBnZW42X2JzZF9yaW5n X2ZsdXNoOwo+ICAJcmluZy0+YWRkX3JlcXVlc3QgPSBnZW42X2FkZF9yZXF1ZXN0Owo+IC0Jcmlu Zy0+Z2V0X3NlcW5vID0gZ2VuNl9yaW5nX2dldF9zZXFubzsKPiArCXJpbmctPmlycV9zZXFub19i YXJyaWVyID0gZ2VuNl9zZXFub19iYXJyaWVyOwo+ICsJcmluZy0+Z2V0X3NlcW5vID0gcmluZ19n ZXRfc2Vxbm87Cj4gIAlyaW5nLT5zZXRfc2Vxbm8gPSByaW5nX3NldF9zZXFubzsKPiAgCXJpbmct PmlycV9lbmFibGVfbWFzayA9Cj4gIAkJCUdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBHRU44 X1ZDUzJfSVJRX1NISUZUOwo+IEBAIC0zMDE5LDcgKzMwMTksOCBAQCBpbnQgaW50ZWxfaW5pdF9i bHRfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCXJpbmctPndyaXRlX3Rh aWwgPSByaW5nX3dyaXRlX3RhaWw7Cj4gIAlyaW5nLT5mbHVzaCA9IGdlbjZfcmluZ19mbHVzaDsK PiAgCXJpbmctPmFkZF9yZXF1ZXN0ID0gZ2VuNl9hZGRfcmVxdWVzdDsKPiAtCXJpbmctPmdldF9z ZXFubyA9IGdlbjZfcmluZ19nZXRfc2Vxbm87Cj4gKwlyaW5nLT5pcnFfc2Vxbm9fYmFycmllciA9 IGdlbjZfc2Vxbm9fYmFycmllcjsKPiArCXJpbmctPmdldF9zZXFubyA9IHJpbmdfZ2V0X3NlcW5v Owo+ICAJcmluZy0+c2V0X3NlcW5vID0gcmluZ19zZXRfc2Vxbm87Cj4gIAlpZiAoSU5URUxfSU5G TyhkZXYpLT5nZW4gPj0gOCkgewo+ICAJCXJpbmctPmlycV9lbmFibGVfbWFzayA9Cj4gQEAgLTMw NzcsNyArMzA3OCw4IEBAIGludCBpbnRlbF9pbml0X3ZlYm94X3JpbmdfYnVmZmVyKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCj4gIAlyaW5nLT53cml0ZV90YWlsID0gcmluZ193cml0ZV90YWlsOwo+ ICAJcmluZy0+Zmx1c2ggPSBnZW42X3JpbmdfZmx1c2g7Cj4gIAlyaW5nLT5hZGRfcmVxdWVzdCA9 IGdlbjZfYWRkX3JlcXVlc3Q7Cj4gLQlyaW5nLT5nZXRfc2Vxbm8gPSBnZW42X3JpbmdfZ2V0X3Nl cW5vOwo+ICsJcmluZy0+aXJxX3NlcW5vX2JhcnJpZXIgPSBnZW42X3NlcW5vX2JhcnJpZXI7Cj4g KwlyaW5nLT5nZXRfc2Vxbm8gPSByaW5nX2dldF9zZXFubzsKPiAgCXJpbmctPnNldF9zZXFubyA9 IHJpbmdfc2V0X3NlcW5vOwo+ICAKPiAgCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA4KSB7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IGluZGV4IDU2NmIwYWUx MGNlMC4uNGNlYTA0NDkxMzkyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaAo+IEBAIC0xOTYsOCArMTk2LDggQEAgc3RydWN0ICBpbnRlbF9lbmdpbmVfY3Mgewo+ ICAJICogc2VlbiB2YWx1ZSBpcyBnb29kIGVub3VnaC4gTm90ZSB0aGF0IHRoZSBzZXFubyB3aWxs IGFsd2F5cyBiZQo+ICAJICogbW9ub3RvbmljLCBldmVuIGlmIG5vdCBjb2hlcmVudC4KPiAgCSAq Lwo+IC0JdTMyCQkoKmdldF9zZXFubykoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAt CQkJCSAgICAgYm9vbCBsYXp5X2NvaGVyZW5jeSk7Cj4gKwl2b2lkCQkoKmlycV9zZXFub19iYXJy aWVyKShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPiArCXUzMgkJKCpnZXRfc2Vxbm8p KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+ICAJdm9pZAkJKCpzZXRfc2Vxbm8pKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gIAkJCQkgICAgIHUzMiBzZXFubyk7Cj4gIAlp bnQJCSgqZGlzcGF0Y2hfZXhlY2J1ZmZlcikoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEsCj4gLS0gCj4gMi43LjAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==