From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v3] drm/i915: Ensure associated VMAs are inactive when contexts are destroyed Date: Thu, 19 Nov 2015 12:28:29 +0000 Message-ID: <564DC06D.8080206@linux.intel.com> References: <20151117160440.GB14177@nuc-i3427.alporthouse.com> <1447777632-32099-1-git-send-email-tvrtko.ursulin@linux.intel.com> <20151117163957.GM16848@phenom.ffwll.local> <564B5BDA.1000904@linux.intel.com> <20151117170801.GP16848@phenom.ffwll.local> <564B62B1.7090809@linux.intel.com> <20151117175602.GT16848@phenom.ffwll.local> <564CB2E6.3070709@linux.intel.com> <20151119091719.GO20799@phenom.ffwll.local> <564D9979.1020905@linux.intel.com> <20151119094748.GA17050@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id B7FC06E0C8 for ; Thu, 19 Nov 2015 04:28:32 -0800 (PST) In-Reply-To: <20151119094748.GA17050@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: Daniel Vetter , Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CkhpLAoKT24gMTkvMTEvMTUgMTI6MTMsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gT24gVGh1LCBO b3YgMTksIDIwMTUgYXQgMDk6NDI6MTdBTSArMDAwMCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4+ Cj4+IE9uIDE5LzExLzE1IDA5OjE3LCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+Pj4gT24gV2VkLCBO b3YgMTgsIDIwMTUgYXQgMDU6MTg6MzBQTSArMDAwMCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4+ Pj4KPj4+PiBPbiAxNy8xMS8xNSAxNzo1NiwgRGFuaWVsIFZldHRlciB3cm90ZToKPj4+Pj4gT24g VHVlLCBOb3YgMTcsIDIwMTUgYXQgMDU6MjQ6MDFQTSArMDAwMCwgVHZydGtvIFVyc3VsaW4gd3Jv dGU6Cj4+Pj4+Pgo+Pj4+Pj4gT24gMTcvMTEvMTUgMTc6MDgsIERhbmllbCBWZXR0ZXIgd3JvdGU6 Cj4+Pj4+Pj4gT24gVHVlLCBOb3YgMTcsIDIwMTUgYXQgMDQ6NTQ6NTBQTSArMDAwMCwgVHZydGtv IFVyc3VsaW4gd3JvdGU6Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IE9uIDE3LzExLzE1IDE2OjM5LCBEYW5p ZWwgVmV0dGVyIHdyb3RlOgo+Pj4+Pj4+Pj4gT24gVHVlLCBOb3YgMTcsIDIwMTUgYXQgMDQ6Mjc6 MTJQTSArMDAwMCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4+Pj4+Pj4+Pj4gRnJvbTogVHZydGtv IFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+ IEluIHRoZSBmb2xsb3dpbmcgY29tbWl0Ogo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gICAgICAgY29t bWl0IGU5ZjI0ZDVmYjdjZjM2MjhiMTk1YjE4ZmYzYWM0ZTM3OTM3Y2VlYWUKPj4+Pj4+Pj4+PiAg ICAgICBBdXRob3I6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4+ Pj4+Pj4+Pj4gICAgICAgRGF0ZTogICBNb24gT2N0IDUgMTM6MjY6MzYgMjAxNSArMDEwMAo+Pj4+ Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gICAgICAgICAgIGRybS9pOTE1OiBDbGVhbiB1cCBhc3NvY2lhdGVk IFZNQXMgb24gY29udGV4dCBkZXN0cnVjdGlvbgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gSSBhZGRl ZCBhIFdBUk5fT04gYXNzZXJ0aW9uIHRoYXQgVk0ncyBhY3RpdmUgbGlzdCBtdXN0IGJlIGVtcHR5 Cj4+Pj4+Pj4+Pj4gYXQgdGhlIHRpbWUgb2Ygb3duaW5nIGNvbnRleHQgaXMgZ2V0dGluZyBmcmVl ZCwgYnV0IHRoYXQgdHVybmVkCj4+Pj4+Pj4+Pj4gb3V0IHRvIGJlIGEgd3JvbmcgYXNzdW1wdGlv bi4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IER1ZSBvcmRlcmluZyBvZiBvcGVyYXRpb25zIGluIGk5 MTVfZ2VtX29iamVjdF9yZXRpcmVfX3JlYWQsIHdoZXJlCj4+Pj4+Pj4+Pj4gY29udGV4dHMgYXJl IHVucmVmZXJlbmNlZCBiZWZvcmUgVk1BcyBhcmUgbW92ZWQgdG8gdGhlIGluYWN0aXZlCj4+Pj4+ Pj4+Pj4gbGlzdCwgdGhlIGRlc2NyaWJlZCBzaXR1YXRpb24gY2FuIGluIGZhY3QgaGFwcGVuLgo+ Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gSXQgZmVlbHMgd3JvbmcgdG8gZG8gdGhpbmdzIGluIHN1Y2gg b3JkZXIgc28gdGhpcyBmaXggbWFrZXMgc3VyZQo+Pj4+Pj4+Pj4+IGEgcmVmZXJlbmNlIHRvIGNv bnRleHQgaXMgaGVsZCB1bnRpbCB0aGUgbW92ZSB0byBpbmFjdGl2ZSBsaXN0Cj4+Pj4+Pj4+Pj4g aXMgY29tcGxldGVkLgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gdjI6IFJhdGhlciB0aGFuIGhvbGQg YSB0ZW1wb3JhcnkgY29udGV4dCByZWZlcmVuY2UgbW92ZSB0aGUKPj4+Pj4+Pj4+PiAgICAgICBy ZXF1ZXN0IHVucmVmZXJlbmNlIHRvIGJlIHRoZSBsYXN0IG9wZXJhdGlvbi4gKERhbmllbCBWZXR0 ZXIpCj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiB2MzogRml4IHVzZSBhZnRlciBmcmVlLiAoQ2hyaXMg V2lsc29uKQo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3Vs aW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPj4+Pj4+Pj4+PiBCdWd6aWxsYTogaHR0cHM6 Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI2MzgKPj4+Pj4+Pj4+PiBD YzogTWljaGVsIFRoaWVycnkgPG1pY2hlbC50aGllcnJ5QGludGVsLmNvbT4KPj4+Pj4+Pj4+PiBD YzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4+Pj4+Pj4+Pj4gQ2M6 IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4+Pj4+Pj4+Pj4gLS0tCj4+ Pj4+Pj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyB8IDMzICsrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQo+Pj4+Pj4+Pj4+ICAgIDEgZmlsZSBjaGFuZ2VkLCAx OCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYwo+Pj4+Pj4+Pj4+IGluZGV4IDk4YzgzMjg2YWI2OC4uMDk0YWMx N2E3MTJkIDEwMDY0NAo+Pj4+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKPj4+Pj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4+ Pj4+Pj4+Pj4gQEAgLTI0MDQsMjkgKzI0MDQsMzIgQEAgaTkxNV9nZW1fb2JqZWN0X3JldGlyZV9f cmVhZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCBpbnQgcmluZykKPj4+Pj4+Pj4+ PiAgICAJUlFfQlVHX09OKCEob2JqLT5hY3RpdmUgJiAoMSA8PCByaW5nKSkpOwo+Pj4+Pj4+Pj4+ Cj4+Pj4+Pj4+Pj4gICAgCWxpc3RfZGVsX2luaXQoJm9iai0+cmluZ19saXN0W3JpbmddKTsKPj4+ Pj4+Pj4+PiAtCWk5MTVfZ2VtX3JlcXVlc3RfYXNzaWduKCZvYmotPmxhc3RfcmVhZF9yZXFbcmlu Z10sIE5VTEwpOwo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gICAgCWlmIChvYmotPmxhc3Rfd3JpdGVf cmVxICYmIG9iai0+bGFzdF93cml0ZV9yZXEtPnJpbmctPmlkID09IHJpbmcpCj4+Pj4+Pj4+Pj4g ICAgCQlpOTE1X2dlbV9vYmplY3RfcmV0aXJlX193cml0ZShvYmopOwo+Pj4+Pj4+Pj4+Cj4+Pj4+ Pj4+Pj4gICAgCW9iai0+YWN0aXZlICY9IH4oMSA8PCByaW5nKTsKPj4+Pj4+Pj4+PiAtCWlmIChv YmotPmFjdGl2ZSkKPj4+Pj4+Pj4+PiAtCQlyZXR1cm47Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gCWlm IChvYmotPmFjdGl2ZSkgewo+Pj4+Pj4+Pj4gCQlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmb2Jq LT5sYXN0X3JlYWRfcmVxW3JpbmddLCBOVUxMKTsKPj4+Pj4+Pj4+IAkJcmV0dXJuOwo+Pj4+Pj4+ Pj4gCX0KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBXb3VsZCByZXN1bHQgaW4gbGVzcyBjaHVybiBpbiB0 aGUgY29kZSBhbmQgZHJvcCB0aGUgdW5lY2Vzc2FyeSBpbmRlbnQKPj4+Pj4+Pj4+IGxldmVsLiBB bHNvIGNvbW1lbnQgaXMgbWlzc2luZyBhcyB0byB3aHkgd2UgbmVlZCB0byBkbyB0aGluZ3MgaW4g YQo+Pj4+Pj4+Pj4gc3BlY2lmaWMgb3JkZXIuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEFjdHVhbGx5IEkg dGhpbmsgSSBjaGFuZ2VkIG15IG1pbmQgYW5kIHRoYXQgdjEgaXMgdGhlIHdheSB0byBnby4KPj4+ Pj4+Pj4KPj4+Pj4+Pj4gSnVzdCByZS1vcmRlcmluZyB0aGUgY29kZSBoZXJlIHN0aWxsIG1ha2Vz IGl0IHBvc3NpYmxlIGZvciB0aGUgY29udGV4dAo+Pj4+Pj4+PiBkZXN0cnVjdG9yIHRvIHJ1biB3 aXRoIFZNQXMgb24gdGhlIGFjdGl2ZSBsaXN0IEkgdGhpbmsuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IElm IHdlIGhvbGQgdGhlIGNvbnRleHQgdGhlbiBpdCBpcyAxMDAlIGNsZWFyIGl0IGlzIG5vdCBwb3Nz aWJsZS4KPj4+Pj4+Pgo+Pj4+Pj4+IHJlcXVlc3RfYXNzaWduIF9pc18gdGhlIGZ1bmN0aW9uIHdo aWNoIGFkanVzdCB0aGUgcmVmY291bnRzIGZvciB1cywgd2hpY2gKPj4+Pj4+PiBtZWFucyBpZiB3 ZSBkcm9wIHRoYXQgcmVmZXJlbmNlIHRvbyBlYXJseSB0aGVuIGdyYWJiaW5nIGEgdGVtcCByZWZl cmVuY2UKPj4+Pj4+PiBpcyBqdXN0IHBhcGVyaW5nIG92ZXIgdGhlIHJlYWwgYnVnLgo+Pj4+Pj4+ Cj4+Pj4+Pj4gV3JpdHRlbiBvdXQgeW91ciBwYXRjaCBsb29rcyBzb21ldGhpbmcgbGlrZQo+Pj4+ Pj4+Cj4+Pj4+Pj4gCWFfcmVmZXJlbmNlKGEpOwo+Pj4+Pj4+IAlhX3VucmVmZXJlbmNlKGEpOwo+ Pj4+Pj4+Cj4+Pj4+Pj4gCS8qIG1vcmUgY2xlYW51cCBjb2RlIHRoYXQgc2hvdWxkIGdldCBydW4g YmVmb3JlIGFfdW5yZWZlcmVuY2UgYnV0IGlzbid0ICovCj4+Pj4+Pj4KPj4+Pj4+PiAJYV91bnJl ZmVybmNlKGEpOyAvKiBmb3IgcmVhbCB0aGlzIHRpbWUgKi8KPj4+Pj4+Pgo+Pj4+Pj4+IFVuZm9y dHVuYXRlbHkgZm9vX2Fzc2lnbiBpcyBhIG5ldyBwYXR0ZXJuIGFuZCBub3Qgd2VsbC1lc3RhYmxp c2hlZCwgc28KPj4+Pj4+PiB0aGF0IGNvbm5lY3Rpb24gaXNuJ3QgY2xlYXIuIE1heWJlIHdlIHNo b3VsZCByZW5hbWUgaXQgdG8KPj4+Pj4+PiBmb29fcmVmZXJlbmNlX2Fzc2lnbiB0byBtYWtlIGl0 IG1vcmUgb2J2aW91cy4gT3IganVzdCBkcm9wIHRoZSBwcmV0ZW5zZQo+Pj4+Pj4+IGFuZCBvcGVu LWNvZGUgaXQgc2luY2Ugd2UgdW5jb25kaXRpb25hbGx5IGFzc2lnbiBOVUxMIGFzIHRoZSBuZXcg cG9pbnRlcgo+Pj4+Pj4+IHZhbHVlLCBhbmQgd2Uga25vdyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0 aGUgcG9pbnRlciBpcyBub24tTlVMTC4gU28KPj4+Pj4+PiB0aGVyZSdzIHJlYWxseSBubyBiZW5l Zml0IHRvIHRoZSBoZWxwZXIgaGVyZSwgaXQgb25seSBvYmZ1c2NhdGVzLiBBbmQKPj4+Pj4+PiBz aW5jZSB0aGF0IG9iZnVzY2F0aW9uIHRyaXBwZWQgeW91IHVwIGl0J3MgdGltZSB0byByZW1vdmUg aXQgOy0pCj4+Pj4+Pgo+Pj4+Pj4gVGhlbiBmb29fcmVmZXJlbmNlX3VucmVmZXJlbmNlX2Fzc2ln bi4gOikKPj4+Pj4+Cj4+Pj4+PiBCdXQgc2VyaW91c2x5LCBJIHRoaW5rIGl0IGlzIG1vcmUgY29t cGxpY2F0ZWQgdGhhdC4uCj4+Pj4+Pgo+Pj4+Pj4gVGhlIHRoaW5nIGl0IHRyaXBzIG92ZXIgaXMg dGhhdCBtb3ZpbmcgVk1BcyB0byBpbmFjdGl2ZSBkb2VzIG5vdCBjb3JyZXNwb25kCj4+Pj4+PiBp biB0aW1lIHRvIHJlcXVlc3QgcmV0aXJlbWVudC4gQnV0IGluIGZhY3QgVk1BcyBhcmUgbW92ZWQg dG8gaW5hY3RpdmUgb25seQo+Pj4+Pj4gd2hlbiBhbGwgcmVxdWVzdHMgYXNzb2NpYXRlZCB3aXRo IGFuIG9iamVjdCBhcmUgZG9uZS4KPj4+Pj4+Cj4+Pj4+PiBUaGlzIGlzIHRoZSB1bmludHVpdGl2 ZSB0aGluZyBJIHdhcyB3b3JraW5nIGFyb3VuZC4gVG8gbWFrZSBzdXJlIHdoZW4KPj4+Pj4+IGNv bnRleHQgZGVzdHJ1Y3RvciBydW5zIHRoZXJlIGFyZSBub3QgYWN0aXZlIFZNQXMgZm9yIHRoYXQg Vk0uCj4+Pj4+Pgo+Pj4+Pj4gSSBkb24ndCBrbm93IGhvdyB0byBndWFyYW50ZWUgdGhhdCB3aXRo IHdoYXQgeW91IHByb3Bvc2UuIFBlcmhhcHMgSSBhbQo+Pj4+Pj4gbWlzc2luZyBzb21ldGhpbmc/ Cj4+Pj4+Cj4+Pj4+IE9rLCBteSBleGFtcGxlIHdhcyBzbGlnaHRseSBvZmYsIHNpbmNlIHdlIGhh dmUgMiBvYmplY3RzOgo+Pj4+Pgo+Pj4+PiAJYl9yZWZlcmVuY2UoYS0+Yik7Cj4+Pj4+IAlhX3Vu cmVmZXJlbmNlKGEpOyAvKiBtaWdodCB1bnJlZiBhLT5iIGlmIGl0J3MgdGhlIGxhc3QgcmVmZXJl bmNlICovCj4+Pj4+Cj4+Pj4+IAkvKiBtb3JlIGNsZWFudXAgY29kZSB0aGF0IHNob3VsZCBnZXQg cnVuIGJlZm9yZSBhX3VucmVmZXJlbmNlIGJ1dCBpc24ndCAqLwo+Pj4+Pgo+Pj4+PiAJYl91bnJl ZmVybmNlKGEtPmIpOyAvKiBmb3IgcmVhbCB0aGlzIHRpbWUgKi8KPj4+Pj4KPj4+Pj4gSG9sZGlu ZyB0aGUgcmVmIHRvIGEgbWFrZXMgc3VyZSB0aGF0IGIgZG9lc24ndCBkaXNhcHBlYXIuIFdlIHJl bHkgb24gdGhhdAo+Pj4+PiBpbiBhIGZ1bmRhbWVudGFsIHdheSAoYSByZXF1ZXN0IHJlYWxseSBu ZWVkcyB0aGUgY3R4IHRvIHN0aWNrIGFyb3VuZCksIGFuZAo+Pj4+PiB0aGUgYnVnIHJlYWxseSBp cyB0aGF0IHdlIGRyb3AgdGhlIHJlZiB0byBhIHRvbyBlYXJseS4gVGhhdCBpdCdzIHRoZQo+Pj4+ PiByZWxlYXNpbmcgb2YgYS0+YiB3aGljaCBpcyBldmVudHVhbGx5IGJsb3dpbmcgdGhpbmdzIHVw IGRvZXNuJ3QgcmVhbGx5Cj4+Pj4+IG1hdHRlci4KPj4+Pj4KPj4+Pj4gQnR3IHdvdWxkIGl0IGJl IHBvc3NpYmxlIHRvIGhhdmUgYW4gaWd0IGZvciB0aGlzPyBJIHNob3VsZCBiZSBwb3NzaWJsZSB0 bwo+Pj4+PiBoaXQgdGhpcyB3aXRoIHNvbWUgdmFyaWFuIG9mIGdlbV91bnJlZl9hY3RpdmVfYnVm ZmVycy4KPj4+Pgo+Pj4+IEkgd2FzIHRyeWluZyB0byBkbyB0aGF0IHRvZGF5IGFuZCBpdCBpcyBw cm92aW5nIHRvIGJlIGEgYml0IHRyaWNreS4KPj4+Pgo+Pj4+IEkgbmVlZCBhIGJsaXR0ZXIgd29y a2xvYWQgd2hpY2ggd2lsbCBydW4gZm9yIGxvbmcgZW5vdWdoIGZvciB0aGUgcmV0aXJlCj4+Pj4g d29ya2VyIHRvIHJ1bi4gU28gSSdsbCB0cnkgYW5kIGJ1aWxkIGEgYml0IGJiIHRvbW9ycm93IHdo aWNoIHdpbGwgZG8gdGhhdC4KPj4+Pgo+Pj4+IEFsdGVybmF0aXZlbHkgSSBkaWQgdGhpczoKPj4+ Pgo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVm ZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPj4+PiBp bmRleCA2ZWQ3ZDYzYTA2ODguLmRiNTFlNGI0MmEyMCAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPj4+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPj4+PiBAQCAtNjk5LDYgKzY5OSw4IEBA IGk5MTVfZ2VtX2V4ZWNidWZmZXJfcmVzZXJ2ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n LAo+Pj4+ICAgICAgICAgIGludCByZXRyeTsKPj4+Pgo+Pj4+ICAgICAgICAgIGk5MTVfZ2VtX3Jl dGlyZV9yZXF1ZXN0c19yaW5nKHJpbmcpOwo+Pj4+ICsgICAgICAgaWYgKGk5MTUuZW5hYmxlX2V4 ZWNsaXN0cykKPj4+PiArICAgICAgICAgICAgICAgaW50ZWxfZXhlY2xpc3RzX3JldGlyZV9yZXF1 ZXN0cyhyaW5nKTsKPj4+Pgo+Pj4+ICAgICAgICAgIHZtID0gbGlzdF9maXJzdF9lbnRyeSh2bWFz LCBzdHJ1Y3QgaTkxNV92bWEsIGV4ZWNfbGlzdCktPnZtOwo+Pj4+Cj4+Pj4gQW5kIHRoYXQgZW5h YmxlcyBtZSB0byB0cmlnZ2VyIHRoZSBXQVJOIGZyb20gbXkgaWd0IGV2ZW4gd2l0aCB0aGUgY3Vy cmVudAo+Pj4+IHNob3J0ZXIgYmxpdHRlciB3b3JrbG9hZCAoY29weSA2NE1iKS4KPj4+Pgo+Pj4+ IEdvaW5nIGJhY2sgdG8gdGhlIG9yaWdpbmFsIHByb2JsZW0sIGhvdyBhYm91dCBzb21ldGhpbmcg bGlrZSB0aGlzIGh1bmsgZm9yIGEgZml4Pwo+Pj4+Cj4+Pj4gQEAgLTI0MTMsMTkgKzI0MTYsMzYg QEAgc3RhdGljIHZvaWQKPj4+PiAgIGk5MTVfZ2VtX29iamVjdF9yZXRpcmVfX3JlYWQoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgaW50IHJpbmcpCj4+Pj4gICB7Cj4+Pj4gICAgICAg ICAgc3RydWN0IGk5MTVfdm1hICp2bWE7Cj4+Pj4gKyAgICAgICBzdHJ1Y3QgaTkxNV9od19wcGd0 dCAqcHBndHQ7Cj4+Pj4KPj4+PiAgICAgICAgICBSUV9CVUdfT04ob2JqLT5sYXN0X3JlYWRfcmVx W3JpbmddID09IE5VTEwpOwo+Pj4+ICAgICAgICAgIFJRX0JVR19PTighKG9iai0+YWN0aXZlICYg KDEgPDwgcmluZykpKTsKPj4+Pgo+Pj4+ICAgICAgICAgIGxpc3RfZGVsX2luaXQoJm9iai0+cmlu Z19saXN0W3JpbmddKTsKPj4+PiArCj4+Pj4gKyAgICAgICBwcGd0dCA9IG9iai0+bGFzdF9yZWFk X3JlcVtyaW5nXS0+Y3R4LT5wcGd0dDsKPj4+PiArICAgICAgIGlmIChwcGd0dCkgewo+Pj4+ICsg ICAgICAgICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJm9iai0+dm1hX2xpc3QsIHZt YV9saW5rKSB7Cj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZtYS0+dm0gPT0gJnBw Z3R0LT5iYXNlICYmCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICFsaXN0X2VtcHR5 KCZ2bWEtPm1tX2xpc3QpKSB7Cj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aXN0X21vdmVfdGFpbCgmdm1hLT5tbV9saXN0LAo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJnZtYS0+dm0tPmluYWN0aXZlX2xpc3QpOwo+Pj4+ICsg ICAgICAgICAgICAgICAgICAgICAgIH0KPj4+PiArICAgICAgICAgICAgICAgfQo+Pj4+ICsgICAg ICAgfQo+Pj4+ICsKPj4+PiAgICAgICAgICBpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmb2JqLT5s YXN0X3JlYWRfcmVxW3JpbmddLCBOVUxMKTsKPj4+Pgo+Pj4+IFRoaXMgbW92ZXMgVk1BcyBpbW1l ZGlhdGVseSB0byBpbmFjdGl2ZSBhcyByZXF1ZXN0cyBhcmUgcmV0aXJlZCBhbmQgYXZvaWRzCj4+ Pj4gdGhlIHByb2JsZW0gd2l0aCB0aGVtIHN0YXlpbmcgb24gYWN0aXZlIGZvciB1bmRlZmluZWQg YW1vdW50IG9mIHRpbWUuCj4+Pgo+Pj4gWW91IGNhbid0IHB1dCBhY3RpdmUgb2JqZWN0cyBvbnRv IHRoZSBpbmFjdGl2ZSBsaXN0LCBpLmUuIHRoZSBvYmotPmFjdGl2ZQo+Pgo+PiBIbSBpdCBpcyBp bmFjdGl2ZSBpbiB0aGlzIFZNIHNvIHdobyB3b3VsZCBjYXJlPwo+Cj4gVGhlIHNocmlua2VyIHdp bGwgZmFsbCBvdmVyIGJlY2F1c2Ugb2Ygc29tZSBsb25nIHN0YW5kaW5nIGRlc2lnbiBtaXN0YWtl Lgo+IFdlbGwsIHRoYXQncyBvbmx5IHRoZSBvYmotPmFjdGl2ZSB2cy4gdm1hLT5hY3RpdmUgcHJv YmxlbS4KPgo+IFRoZSByZWFsIG9uZSBpcyB0aGF0IHlvdSBjYW4gaGF2ZSBwaWxlcyBvZiBjb25j dXJyZW50IHJlYWQgcmVxdWVzdHMgb24gYQo+IHNwZWNpZmljIHZtYSBldmVuLCBhbmQgcmV0aXJp bmcgdGhlIGZpcnN0IG9uZSBvZiB0aG9zZSBkb2Vzbid0IG1ha2UgdGhlCj4gdm1hIGluYWN0aXZl LiBTbyBldmVuIHdpdGggdGhlIGFjdGl2ZSB0cmFja2luZyBkZXNpZ24gbWlzdGFrZSBmaXhlZCB5 b3VyCj4gc3VnZ2VzdGlvbiB3b3VsZG4ndCB3b3JrLgoKQnV0IGl0IGlzICpsYXN0X3JlYWRfcmVx KiBhbmQgaXQgaXMgZ2V0dGluZyBhc3NpZ25lZCB0byBOVUxMIG1lYW5pbmcgCnRoZXJlIGFyZSBu byBvdGhlciBvbmVzIGF0IHRoYXQgcG9pbnQuCgo+PiBQZXJoYXBzIHRoZW4gdGhlIGZpeCBpcyBz aW1wbHkgdG8gcmVtb3ZlIHRoZQo+PiBXQVJOX09OKCFsaXN0X2VtcHR5KCZwcGd0dC0+YmFzZS5h Y3RpdmVfbGlzdCkpIGZyb20gdGhlIGNvbnRleHQgZGVzdHJ1Y3Rvci4KPj4KPj4gSWYgdGhlcmUg YXJlIGFjdGl2ZSBWTUFzIGF0IHRoYXQgcG9pbnQsIHRoZXknbGwgZ2V0IGNsZWFuZWQgdXAgd2hl biB0aGV5IGFyZQo+PiByZXRpcmVkIGFuZCB0aGVyZSBpcyBubyBsZWFrLgo+Pgo+Pj4gY2hlY2sg aXMgbm9uLW9wdGlvbmFsLiBBbmQgdGhlIGlmIChwcGd0dCkgY2FzZSBpcyBhYnN0cmFjdGlvbiB2 aW9sYXRpb24uCj4+PiBJIHJlYWxseSBkb24ndCBnZXQgd2h5IHdlIGNhbid0IGp1c3QgbW92ZSB0 aGUgdW5yZWYgdG8gdGhlIHJpZ2h0IHBsYWNlIC4uLgo+Pgo+PiBJIGRvbid0IHNlZSB3aGVyZS4K Pgo+IFBsZWFzZSBleHBsYWluIHdoeSB0aGUgYmVsb3cgY2hhbmdlICh3aGljaCBpcyB0aGUgb25l IEkndmUgYmVlbiBwcm9wb3NpbmcsCj4gYW5kIHdoaWNoIENocmlzIHN1Z2dlc3RlZCB0b28pIGRv ZXNuJ3Qgd29yazoKPgo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggOTU1MjY0N2E5 MjVkLi5kMTZiNWNhMDQyZmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtMjM3 NSwxNCArMjM3NSwxNSBAQCBpOTE1X2dlbV9vYmplY3RfcmV0aXJlX19yZWFkKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmosIGludCByaW5nKQo+ICAgCVJRX0JVR19PTighKG9iai0+YWN0 aXZlICYgKDEgPDwgcmluZykpKTsKPgo+ICAgCWxpc3RfZGVsX2luaXQoJm9iai0+cmluZ19saXN0 W3JpbmddKTsKPiAtCWk5MTVfZ2VtX3JlcXVlc3RfYXNzaWduKCZvYmotPmxhc3RfcmVhZF9yZXFb cmluZ10sIE5VTEwpOwo+Cj4gICAJaWYgKG9iai0+bGFzdF93cml0ZV9yZXEgJiYgb2JqLT5sYXN0 X3dyaXRlX3JlcS0+cmluZy0+aWQgPT0gcmluZykKPiAgIAkJaTkxNV9nZW1fb2JqZWN0X3JldGly ZV9fd3JpdGUob2JqKTsKPgo+ICAgCW9iai0+YWN0aXZlICY9IH4oMSA8PCByaW5nKTsKPiAtCWlm IChvYmotPmFjdGl2ZSkKPiArCWlmIChvYmotPmFjdGl2ZSkgewo+ICsJCWk5MTVfZ2VtX3JlcXVl c3RfYXNzaWduKCZvYmotPmxhc3RfcmVhZF9yZXFbcmluZ10sIE5VTEwpOwo+ICAgCQlyZXR1cm47 CgpFZmZlY3RpdmVseSBteSB0ZXN0IGNvZGUgYSBiaXQgYW5ub3RhdGVkOgoKc3RhdGljIHZvaWQK dGVzdF9yZXRpcmVfdm1hX25vdF9pbmFjdGl2ZShpbnQgZmQpCnsKCXVpbnQzMl90IGN0eF9pZDsK CXVpbnQzMl90IHNyYywgZHN0LCBkc3QyOwoJdWludDMyX3QgYmxpdF9iYiwgc3RvcmVfYmI7CgoJ aWd0X3JlcXVpcmUoSEFTX0JMVF9SSU5HKGludGVsX2dldF9kcm1fZGV2aWQoZmQpKSk7CgoJY3R4 X2lkID0gZ2VtX2NvbnRleHRfY3JlYXRlKGZkKTsKCWlndF9hc3NlcnQoY3R4X2lkKTsKCglzcmMg PSBnZW1fY3JlYXRlKGZkLCBCT19TSVpFKTsKCWlndF9hc3NlcnQoc3JjKTsKCWRzdCA9IGdlbV9j cmVhdGUoZmQsIEJPX1NJWkUpOwoJaWd0X2Fzc2VydChkc3QpOwoJZHN0MiA9IGdlbV9jcmVhdGUo ZmQsIDQwOTYpOwoJaWd0X2Fzc2VydChkc3QyKTsKCglibGl0X2JiID0gYmxpdChmZCwgZHN0LCBz cmMsIDApOwoKLy8gVGhlIGFib3ZlIGJsaXQgdGFrZXMgbG9uZyB0aW1lIHRvIGNvbXBsZXRlLCBz cmMgYm8gaXMgbGFzdF9yZWFkX3JlcS4KCglzdG9yZV9iYiA9IHN0b3JlKGZkLCBkc3QyLCBzcmMs IGN0eF9pZCk7CgovLyBUaGlzIGlzIGEgdmVyeSBxdWljayBvbmUgcHV0cyB0aGUgc2FtZSBzcmMg Ym8gYXMgbGFzdF9yZWFkX3JlcSBvbiAKcmVuZGVyIHJpbmcuCgoJZ2VtX3N5bmMoZmQsIHN0b3Jl X2JiKTsKCWdlbV9zeW5jKGZkLCBkc3QyKTsKCWdlbV9jbG9zZShmZCwgc3RvcmVfYmIpOwoJc3Rv cmVfYmIgPSBzdG9yZShmZCwgZHN0Miwgc3JjLCBjdHhfaWQpOwoJZ2VtX3N5bmMoZmQsIHN0b3Jl X2JiKTsKCWdlbV9zeW5jKGZkLCBkc3QyKTsKCWdlbV9jbG9zZShmZCwgc3RvcmVfYmIpOwoJZ2Vt X2Nsb3NlKGZkLCBkc3QyKTsKCi8vIEkgd2FzIGRvaW5nIHR3byBpbiBob3BlIHRvIHRyaWdnZXIg cmV0aXJlbWVudCBidXQgdHVybnMgb3V0IHRoZSBrZXkgCmlzIGluIGV4ZWNsaXN0IHJldGlyZW1l bnQgc28gbmV2ZXIgbWluZC4gS2V5IGlzIHJlcSBpcyByZXRpcmVkIGJ1dCBWTUEKbm90IHB1dCBv biB0aGUgaW5hY3RpdmUgbGlzdC4KCglnZW1fY29udGV4dF9kZXN0cm95KGZkLCBjdHhfaWQpOwoK Ly8gTm93IGNvbnRleHQgZGVzdHJ1Y3Rpb24gcnVucyB3aXRoIFZNQSBvbiB0aGUgYWN0aXZlIGxp c3QgLT4gV0FSTi4KCglnZW1fc3luYyhmZCwgYmxpdF9iYik7CglnZW1fY2xvc2UoZmQsIGJsaXRf YmIpOwoKCWdlbV9jbG9zZShmZCwgc3JjKTsKCWdlbV9jbG9zZShmZCwgZHN0KTsKfQoKPiArCX0K Pgo+ICAgCS8qIEJ1bXAgb3VyIHBsYWNlIG9uIHRoZSBib3VuZCBsaXN0IHRvIGtlZXAgaXQgcm91 Z2hseSBpbiBMUlUgb3JkZXIKPiAgIAkgKiBzbyB0aGF0IHdlIGRvbid0IHN0ZWFsIGZyb20gcmVj ZW50bHkgdXNlZCBidXQgaW5hY3RpdmUgb2JqZWN0cwo+IEBAIC0yMzk2LDYgKzIzOTcsNyBAQCBp OTE1X2dlbV9vYmplY3RfcmV0aXJlX19yZWFkKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmosIGludCByaW5nKQo+ICAgCQkJbGlzdF9tb3ZlX3RhaWwoJnZtYS0+bW1fbGlzdCwgJnZtYS0+ dm0tPmluYWN0aXZlX2xpc3QpOwo+ICAgCX0KPgo+ICsJLyogT25seSB1bnJlZiBvbmNlIHdlJ3Jl IG9uIHRoZSBpbmFjdGl2ZSBsaXN0LiAqLwo+ICsJaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJm9i ai0+bGFzdF9yZWFkX3JlcVtyaW5nXSwgTlVMTCk7Cj4gICAJaTkxNV9nZW1fcmVxdWVzdF9hc3Np Z24oJm9iai0+bGFzdF9mZW5jZWRfcmVxLCBOVUxMKTsKPiAgIAlkcm1fZ2VtX29iamVjdF91bnJl ZmVyZW5jZSgmb2JqLT5iYXNlKTsKPiAgIH0KCgpSZWdhcmRzLAoKVHZydGtvCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=