From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v5 4/4] drm/i915: Delay disabling the user interrupt for breadcrumbs Date: Mon, 27 Feb 2017 13:57:35 +0000 Message-ID: <437a85df-5441-202e-0970-0af2e5e531d2@linux.intel.com> References: <20170227132427.25224-1-chris@chris-wilson.co.uk> <20170227132427.25224-4-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3F5506E033 for ; Mon, 27 Feb 2017 13:57:41 +0000 (UTC) In-Reply-To: <20170227132427.25224-4-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 Ck9uIDI3LzAyLzIwMTcgMTM6MjQsIENocmlzIFdpbHNvbiB3cm90ZToKPiBBIHNpZ25pZmljYW50 IGNvc3QgaW4gc2V0dGluZyB1cCBhIHdhaXQgaXMgdGhlIG92ZXJoZWFkIG9mIGVuYWJsaW5nIHRo ZQo+IGludGVycnVwdC4gQXMgd2UgZGlzYWJsZSB0aGUgaW50ZXJydXB0IHdoZW5ldmVyIHRoZSBx dWV1ZSBvZiB3YWl0ZXJzIGlzCj4gZW1wdHksIGlmIHdlIGFyZSBmcmVxdWVudGx5IHdhaXRpbmcg b24gYWx0ZXJuYXRpbmcgYmF0Y2hlcywgd2UgZW5kIHVwCj4gcmUtZW5hYmxpbmcgdGhlIGludGVy cnVwdCBvbiBhIGZyZXF1ZW50IGJhc2lzLiBXZSBkbyB3YW50IHRvIGRpc2FibGUgdGhlCj4gaW50 ZXJydXB0IGR1cmluZyBub3JtYWwgb3BlcmF0aW9ucyBhcyB1bmRlciBoaWdoIGxvYWQgaXQgbWF5 IGFkZCBzZXZlcmFsCj4gdGhvdXNhbmQgaW50ZXJydXB0cy9zIC0gd2UgaGF2ZSBiZWVuIGtub3du IGluIHRoZSBwYXN0IHRvIG9jY3VweSB3aG9sZQo+IGNvcmVzIHdpdGggb3VyIGludGVycnVwdCBo YW5kbGVyIGFmdGVyIGFjY2lkZW50YWxseSBsZWF2aW5nIHVzZXIKPiBpbnRlcnJ1cHRzIGVuYWJs ZWQuIEFzIGEgY29tcHJvbWlzZSwgbGVhdmUgdGhlIGludGVycnVwdCBlbmFibGVkIHVudGlsCj4g dGhlIG5leHQgSVJRLCBvciB0aGUgc3lzdGVtIGlzIGlkbGUuIFRoaXMgZ2l2ZXMgYSBzbWFsbCB3 aW5kb3cgZm9yIGEKPiB3YWl0ZXIgdG8ga2VlcCB0aGUgaW50ZXJydXB0IGFjdGl2ZSBhbmQgbm90 IGJlIGRlbGF5ZWQgYnkgaGF2aW5nIHRvCj4gcmUtZW5hYmxlIHRoZSBpbnRlcnJ1cHQuCj4KPiB2 MjogUmVzdG9yZSBoYW5nY2hlY2svbWlzc2VkLWlycSBkZXRlY3Rpb24gZm9yIGNvbnRpbnVhdGlv bnMKPiB2MzogQmUgbW9yZSBjYXJlZnVsIHJlc3RvcmluZyB0aGUgaGFuZ2NoZWNrIHRpbWVyIGFm dGVyIHJlc2V0Cj4gdjQ6IEJlIG1vcmUgY2FyZWZ1bCByZXN0b3JpbmcgdGhlIGZha2UgaXJxIGFm dGVyIHJlc2V0IChpZiByZXF1aXJlZCEpCj4gdjU6IFJlZG8gY2hhbmdlcyB0byBpbnRlbF9lbmdp bmVfd2FrZXVwKCkKPiB2NjogRmFjdG9yIG91dCBfX2ludGVsX2VuZ2luZV93YWtldXAoKQo+Cj4g U2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4g Q2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4gQ2M6IE1pa2Eg S3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgIHwgICA0ICstCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICAgfCAgIDIgKwo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9icmVhZGNydW1icy5jIHwgMTQ4ICsrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oICB8ICAgNyAr LQo+ICA0IGZpbGVzIGNoYW5nZWQsIDEwNSBpbnNlcnRpb25zKCspLCA1NiBkZWxldGlvbnMoLSkK Pgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IDAxZGJiYTM4MTNjNy4uMGFkMDgwOTg0 ODc3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTI5ODgsOCArMjk4OCwxMCBA QCBpOTE1X2dlbV9pZGxlX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4g IAlpZiAod2FpdF9mb3IoaW50ZWxfZXhlY2xpc3RzX2lkbGUoZGV2X3ByaXYpLCAxMCkpCj4gIAkJ RFJNX0VSUk9SKCJUaW1lb3V0IHdhaXRpbmcgZm9yIGVuZ2luZXMgdG8gaWRsZVxuIik7Cj4KPiAt CWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkKPiArCWZvcl9lYWNoX2VuZ2lu ZShlbmdpbmUsIGRldl9wcml2LCBpZCkgewo+ICsJCWludGVsX2VuZ2luZV9kaXNhcm1fYnJlYWRj cnVtYnMoZW5naW5lKTsKPiAgCQlpOTE1X2dlbV9iYXRjaF9wb29sX2ZpbmkoJmVuZ2luZS0+YmF0 Y2hfcG9vbCk7Cj4gKwl9Cj4KPiAgCUdFTV9CVUdfT04oIWRldl9wcml2LT5ndC5hd2FrZSk7Cj4g IAlkZXZfcHJpdi0+Z3QuYXdha2UgPSBmYWxzZTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBp bmRleCBiYzUyMGVlOGQ2ZmUuLmNhOGM3YjIyNzQ4ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9p cnEuYwo+IEBAIC0xMDYwLDYgKzEwNjAsOCBAQCBzdGF0aWMgdm9pZCBub3RpZnlfcmluZyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIAkJCXJxID0gd2FpdC0+cmVxdWVzdDsKPgo+ ICAJCXdha2VfdXBfcHJvY2Vzcyh3YWl0LT50c2spOwo+ICsJfSBlbHNlIHsKPiArCQlfX2ludGVs X2VuZ2luZV9kaXNhcm1fYnJlYWRjcnVtYnMoZW5naW5lKTsKPiAgCX0KPiAgCXNwaW5fdW5sb2Nr KCZlbmdpbmUtPmJyZWFkY3J1bWJzLmxvY2spOwo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9icmVhZGNydW1icy5jCj4gaW5kZXggMzg1NWM4YzM5YjM1Li5lYmI3YmMwYmU5ZmIgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMKPiBAQCAtMjYsMTkgKzI2 LDI4IEBACj4KPiAgI2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4KPiAtdW5zaWduZWQgaW50IGludGVs X2VuZ2luZV93YWtldXAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICtzdGF0aWMg dW5zaWduZWQgaW50IF9faW50ZWxfZW5naW5lX3dha2V1cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF93YWl0ICp3YWl0Owo+IC0JdW5zaWduZWQg bG9uZyBmbGFnczsKPiAgCXVuc2lnbmVkIGludCByZXN1bHQgPSAwOwo+Cj4gLQlzcGluX2xvY2tf aXJxc2F2ZSgmZW5naW5lLT5icmVhZGNydW1icy5sb2NrLCBmbGFncyk7Cj4gIAl3YWl0ID0gZW5n aW5lLT5icmVhZGNydW1icy5maXJzdF93YWl0Owo+ICAJaWYgKHdhaXQpIHsKPiAgCQlyZXN1bHQg PSBFTkdJTkVfV0FLRVVQX1dBSVRFUjsKPiAtCQlpZiAoIXdha2VfdXBfcHJvY2Vzcyh3YWl0LT50 c2spKQo+IC0JCQlyZXN1bHQgfD0gRU5HSU5FX1dBS0VVUF9BQ1RJVkU7Cj4gKwkJaWYgKHdha2Vf dXBfcHJvY2Vzcyh3YWl0LT50c2spKQo+ICsJCQlyZXN1bHQgfD0gRU5HSU5FX1dBS0VVUF9BU0xF RVA7Cj4gIAl9Cj4gKwo+ICsJcmV0dXJuIHJlc3VsdDsKPiArfQo+ICsKPiArdW5zaWduZWQgaW50 IGludGVsX2VuZ2luZV93YWtldXAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICt7 Cj4gKwl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICsJdW5zaWduZWQgaW50IHJlc3VsdCA9IDA7CgpD YW4gZHJvcCB0aGUgaW5pdCBub3cuCgo+ICsKPiArCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUt PmJyZWFkY3J1bWJzLmxvY2ssIGZsYWdzKTsKPiArCXJlc3VsdCA9IF9faW50ZWxfZW5naW5lX3dh a2V1cChlbmdpbmUpOwo+ICAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT5icmVhZGNy dW1icy5sb2NrLCBmbGFncyk7Cj4KPiAgCXJldHVybiByZXN1bHQ7Cj4gQEAgLTU0LDcgKzYzLDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfYnJlYWRjcnVtYnNfaGFuZ2NoZWNrKHVuc2lnbmVkIGxvbmcg ZGF0YSkKPiAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IChzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICopZGF0YTsKPiAgCXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9ICZlbmdp bmUtPmJyZWFkY3J1bWJzOwo+Cj4gLQlpZiAoIWItPmlycV9lbmFibGVkKQo+ICsJaWYgKCFiLT5p cnFfYXJtZWQpCj4gIAkJcmV0dXJuOwo+Cj4gIAlpZiAoYi0+aGFuZ2NoZWNrX2ludGVycnVwdHMg IT0gYXRvbWljX3JlYWQoJmVuZ2luZS0+aXJxX2NvdW50KSkgewo+IEBAIC02Nyw3ICs3Niw3IEBA IHN0YXRpYyB2b2lkIGludGVsX2JyZWFkY3J1bWJzX2hhbmdjaGVjayh1bnNpZ25lZCBsb25nIGRh dGEpCj4gIAkgKiB0byBwcm9jZXNzIHRoZSBwZW5kaW5nIGludGVycnVwdCAoZS5nLCBsb3cgcHJp b3JpdHkgdGFzayBvbiBhIGxvYWRlZAo+ICAJICogc3lzdGVtKSBhbmQgd2FpdCB1bnRpbCBpdCBz bGVlcHMgYmVmb3JlIGRlY2xhcmluZyBhIG1pc3NlZCBpbnRlcnJ1cHQuCj4gIAkgKi8KPiAtCWlm IChpbnRlbF9lbmdpbmVfd2FrZXVwKGVuZ2luZSkgJiBFTkdJTkVfV0FLRVVQX0FDVElWRSkgewo+ ICsJaWYgKCEoaW50ZWxfZW5naW5lX3dha2V1cChlbmdpbmUpICYgRU5HSU5FX1dBS0VVUF9BU0xF RVApKSB7CgpJIGRpZCBub3QgZ2V0IHRoZSBleHBsYW5hdGlvbiBmcm9tIHRoZSBwcmV2aW91cyBy b3VuZCBvbiB3aHkgeW91IGhhZCB0byAKcmV2ZXJzZSB0aGUgYWN0aXZlIHRvIGFzbGVlcC4gSGVy ZSBpdCBldmVuIGxvb2tzIHdyb25nIG5vdywgYmVjYXVzZSBJIAp0aG91Z2h0IHlvdSBkb24ndCB3 YW50IHRvIHJlLXF1ZXVlIHRoZSBoYW5nY2hlY2sgd2hlbiB0aGVyZSBhcmUgbm8gd2FpdGVycz8K Cj4gIAkJbW9kX3RpbWVyKCZiLT5oYW5nY2hlY2ssIHdhaXRfdGltZW91dCgpKTsKPiAgCQlyZXR1 cm47Cj4gIAl9Cj4gQEAgLTgwLDYgKzg5LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfYnJlYWRjcnVt YnNfaGFuZ2NoZWNrKHVuc2lnbmVkIGxvbmcgZGF0YSkKPiAgc3RhdGljIHZvaWQgaW50ZWxfYnJl YWRjcnVtYnNfZmFrZV9pcnEodW5zaWduZWQgbG9uZyBkYXRhKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUgPSAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqKWRhdGE7Cj4g KwlzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIgPSAmZW5naW5lLT5icmVhZGNydW1iczsKPiAr CXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4KPiAgCS8qCj4gIAkgKiBUaGUgdGltZXIgcGVyc2lzdHMg aW4gY2FzZSB3ZSBjYW5ub3QgZW5hYmxlIGludGVycnVwdHMsCj4gQEAgLTg4LDEwICs5OSwxNSBA QCBzdGF0aWMgdm9pZCBpbnRlbF9icmVhZGNydW1ic19mYWtlX2lycSh1bnNpZ25lZCBsb25nIGRh dGEpCj4gIAkgKiBldmVyeSBqaWZmaWUgaW4gb3JkZXIgdG8ga2ljayB0aGUgb2xkZXN0IHdhaXRl ciB0byBkbyB0aGUKPiAgCSAqIGNvaGVyZW50IHNlcW5vIGNoZWNrLgo+ICAJICovCj4gLQlpZiAo IWludGVsX2VuZ2luZV93YWtldXAoZW5naW5lKSkKPiArCj4gKwlzcGluX2xvY2tfaXJxc2F2ZSgm Yi0+bG9jaywgZmxhZ3MpOwo+ICsJaWYgKCFfX2ludGVsX2VuZ2luZV93YWtldXAoZW5naW5lKSkK PiArCQlfX2ludGVsX2VuZ2luZV9kaXNhcm1fYnJlYWRjcnVtYnMoZW5naW5lKTsKPiArCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJmItPmxvY2ssIGZsYWdzKTsKPiArCWlmICghYi0+aXJxX2FybWVk KQo+ICAJCXJldHVybjsKPgo+IC0JbW9kX3RpbWVyKCZlbmdpbmUtPmJyZWFkY3J1bWJzLmZha2Vf aXJxLCBqaWZmaWVzICsgMSk7Cj4gKwltb2RfdGltZXIoJmItPmZha2VfaXJxLCBqaWZmaWVzICsg MSk7Cj4KPiAgCS8qIEVuc3VyZSB0aGF0IGV2ZW4gaWYgdGhlIEdQVSBoYW5ncywgd2UgZ2V0IHdv a2VuIHVwLgo+ICAJICoKPiBAQCAtMTI3LDYgKzE0MywzOCBAQCBzdGF0aWMgdm9pZCBpcnFfZGlz YWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIAlzcGluX3VubG9jaygmZW5n aW5lLT5pOTE1LT5pcnFfbG9jayk7Cj4gIH0KPgo+ICt2b2lkIF9faW50ZWxfZW5naW5lX2Rpc2Fy bV9icmVhZGNydW1icyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gK3sKPiArCXN0 cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9ICZlbmdpbmUtPmJyZWFkY3J1bWJzOwo+ICsKPiAr CWFzc2VydF9zcGluX2xvY2tlZCgmYi0+bG9jayk7Cj4gKwo+ICsJaWYgKGItPmlycV9lbmFibGVk KSB7Cj4gKwkJaXJxX2Rpc2FibGUoZW5naW5lKTsKPiArCQliLT5pcnFfZW5hYmxlZCA9IGZhbHNl Owo+ICsJfQo+ICsKPiArCWItPmlycV9hcm1lZCA9IGZhbHNlOwo+ICt9Cj4gKwo+ICt2b2lkIGlu dGVsX2VuZ2luZV9kaXNhcm1fYnJlYWRjcnVtYnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIgPSAmZW5naW5lLT5icmVh ZGNydW1iczsKPiArCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gKwo+ICsJaWYgKCFiLT5pcnFfYXJt ZWQpCj4gKwkJcmV0dXJuOwo+ICsKPiArCXNwaW5fbG9ja19pcnFzYXZlKCZiLT5sb2NrLCBmbGFn cyk7Cj4gKwo+ICsJaWYgKF9faW50ZWxfZW5naW5lX3dha2V1cChlbmdpbmUpICYgRU5HSU5FX1dB S0VVUF9BU0xFRVApCj4gKwkJc2V0X2JpdChlbmdpbmUtPmlkLCAmZW5naW5lLT5pOTE1LT5ncHVf ZXJyb3IubWlzc2VkX2lycV9yaW5ncyk7CgpDb3VsZCBiZSB3b3J0aHkgb2YgYSBjb21tZW50IGhl cmUsIGp1c3QgdG8gaGVscCBmdXR1cmUgcmVhZGVycyBvZiB0aGUgY29kZS4KCj4gKwo+ICsJX19p bnRlbF9lbmdpbmVfZGlzYXJtX2JyZWFkY3J1bWJzKGVuZ2luZSk7Cj4gKwo+ICsJc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmYi0+bG9jaywgZmxhZ3MpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgYm9vbCB1 c2VfZmFrZV9pcnEoY29uc3Qgc3RydWN0IGludGVsX2JyZWFkY3J1bWJzICpiKQo+ICB7Cj4gIAlj b25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPQo+IEBAIC0xNDQsNiArMTkyLDE1 IEBAIHN0YXRpYyBib29sIHVzZV9mYWtlX2lycShjb25zdCBzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVt YnMgKmIpCj4gIAlyZXR1cm4gYXRvbWljX3JlYWQoJmVuZ2luZS0+aXJxX2NvdW50KSA9PSBiLT5o YW5nY2hlY2tfaW50ZXJydXB0czsKPiAgfQo+Cj4gK3N0YXRpYyB2b2lkIGVuYWJsZV9mYWtlX2ly cShzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIpCj4gK3sKPiArCS8qIEVuc3VyZSB3ZSBuZXZl ciBzbGVlcCBpbmRlZmluaXRlbHkgKi8KPiArCWlmICghYi0+aXJxX2VuYWJsZWQgfHwgdXNlX2Zh a2VfaXJxKGIpKQo+ICsJCW1vZF90aW1lcigmYi0+ZmFrZV9pcnEsIGppZmZpZXMgKyAxKTsKPiAr CWVsc2UKPiArCQltb2RfdGltZXIoJmItPmhhbmdjaGVjaywgd2FpdF90aW1lb3V0KCkpOwo+ICt9 Cj4gKwo+ICBzdGF0aWMgdm9pZCBfX2ludGVsX2JyZWFkY3J1bWJzX2VuYWJsZV9pcnEoc3RydWN0 IGludGVsX2JyZWFkY3J1bWJzICpiKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUgPQo+IEBAIC0xNTEsOSArMjA4LDE3IEBAIHN0YXRpYyB2b2lkIF9faW50ZWxfYnJlYWRj cnVtYnNfZW5hYmxlX2lycShzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIpCj4gIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGVuZ2luZS0+aTkxNTsKPgo+ICAJYXNzZXJ0X3NwaW5f bG9ja2VkKCZiLT5sb2NrKTsKPiAtCWlmIChiLT5ycG1fd2FrZWxvY2spCj4gKwlpZiAoYi0+aXJx X2FybWVkKQo+ICAJCXJldHVybjsKPgo+ICsJLyogVGhlIGJyZWFkY3J1bWIgaXJxIHdpbGwgYmUg ZGlzYXJtZWQgb24gdGhlIGludGVycnVwdCBhZnRlciB0aGUKPiArCSAqIHdhaXRlcnMgYXJlIHNp Z25hbGVkLiBUaGlzIGdpdmVzIHVzIGEgc2luZ2xlIGludGVycnVwdCB3aW5kb3cgaW4KPiArCSAq IHdoaWNoIHdlIGNhbiBhZGQgYSBuZXcgd2FpdGVyIGFuZCBhdm9pZCB0aGUgY29zdCBvZiByZS1l bmFibGluZwo+ICsJICogdGhlIGlycS4KPiArCSAqLwo+ICsJYi0+aXJxX2FybWVkID0gdHJ1ZTsK PiArCUdFTV9CVUdfT04oYi0+aXJxX2VuYWJsZWQpOwo+ICsKPiAgCWlmIChJOTE1X1NFTEZURVNU X09OTFkoYi0+bW9jaykpIHsKPiAgCQkvKiBGb3Igb3VyIG1vY2sgb2JqZWN0cyB3ZSB3YW50IHRv IGF2b2lkIGludGVyYWN0aW9uCj4gIAkJICogd2l0aCB0aGUgcmVhbCBoYXJkd2FyZSAod2hpY2gg aXMgbm90IHNldCB1cCkuIFNvCj4gQEAgLTE2MiwxNyArMjI3LDE1IEBAIHN0YXRpYyB2b2lkIF9f aW50ZWxfYnJlYWRjcnVtYnNfZW5hYmxlX2lycShzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIp Cj4gIAkJICogaW1wbGVtZW50YXRpb24gdG8gY2FsbCBpbnRlbF9lbmdpbmVfd2FrZXVwKCkKPiAg CQkgKiBpdHNlbGYgd2hlbiBpdCB3YW50cyB0byBzaW11bGF0ZSBhIHVzZXIgaW50ZXJydXB0LAo+ ICAJCSAqLwo+IC0JCWItPnJwbV93YWtlbG9jayA9IHRydWU7Cj4gIAkJcmV0dXJuOwo+ICAJfQo+ Cj4gIAkvKiBTaW5jZSB3ZSBhcmUgd2FpdGluZyBvbiBhIHJlcXVlc3QsIHRoZSBHUFUgc2hvdWxk IGJlIGJ1c3kKPiAtCSAqIGFuZCBzaG91bGQgaGF2ZSBpdHMgb3duIHJwbSByZWZlcmVuY2UuIEZv ciBjb21wbGV0ZW5lc3MsCj4gLQkgKiByZWNvcmQgYW4gcnBtIHJlZmVyZW5jZSBmb3Igb3Vyc2Vs dmVzIHRvIGNvdmVyIHRoZQo+IC0JICogaW50ZXJydXB0IHdlIHVubWFzay4KPiArCSAqIGFuZCBz aG91bGQgaGF2ZSBpdHMgb3duIHJwbSByZWZlcmVuY2UuIFRoaXMgaXMgdHJhY2tlZAo+ICsJICog YnkgaTkxNS0+Z3QuYXdha2UsIHdlIGNhbiBmb3JnbyBob2xkaW5nIG91ciBvd24gd2FrcmVmCj4g KwkgKiBmb3IgdGhlIGludGVycnVwdCBhcyBiZWZvcmUgaTkxNS0+Z3QuYXdha2UgaXMgcmVsZWFz ZWQgKHdoZW4KPiArCSAqIHRoZSBkcml2ZXIgaXMgaWRsZSkgd2UgZGlzYXJtIHRoZSBicmVhZGNy dW1icy4KPiAgCSAqLwo+IC0JaW50ZWxfcnVudGltZV9wbV9nZXRfbm9yZXN1bWUoaTkxNSk7Cj4g LQliLT5ycG1fd2FrZWxvY2sgPSB0cnVlOwo+Cj4gIAkvKiBObyBpbnRlcnJ1cHRzPyBLaWNrIHRo ZSB3YWl0ZXIgZXZlcnkgamlmZmllISAqLwo+ICAJaWYgKGludGVsX2lycXNfZW5hYmxlZChpOTE1 KSkgewo+IEBAIC0xODEsMzQgKzI0NCw3IEBAIHN0YXRpYyB2b2lkIF9faW50ZWxfYnJlYWRjcnVt YnNfZW5hYmxlX2lycShzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIpCj4gIAkJYi0+aXJxX2Vu YWJsZWQgPSB0cnVlOwo+ICAJfQo+Cj4gLQkvKiBFbnN1cmUgd2UgbmV2ZXIgc2xlZXAgaW5kZWZp bml0ZWx5ICovCj4gLQlpZiAoIWItPmlycV9lbmFibGVkIHx8IHVzZV9mYWtlX2lycShiKSkKPiAt CQltb2RfdGltZXIoJmItPmZha2VfaXJxLCBqaWZmaWVzICsgMSk7Cj4gLQllbHNlCj4gLQkJbW9k X3RpbWVyKCZiLT5oYW5nY2hlY2ssIHdhaXRfdGltZW91dCgpKTsKPiAtfQo+IC0KPiAtc3RhdGlj IHZvaWQgX19pbnRlbF9icmVhZGNydW1ic19kaXNhYmxlX2lycShzdHJ1Y3QgaW50ZWxfYnJlYWRj cnVtYnMgKmIpCj4gLXsKPiAtCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9Cj4gLQkJ Y29udGFpbmVyX29mKGIsIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MsIGJyZWFkY3J1bWJzKTsKPiAt Cj4gLQlhc3NlcnRfc3Bpbl9sb2NrZWQoJmItPmxvY2spOwo+IC0JaWYgKCFiLT5ycG1fd2FrZWxv Y2spCj4gLQkJcmV0dXJuOwo+IC0KPiAtCWlmIChJOTE1X1NFTEZURVNUX09OTFkoYi0+bW9jaykp IHsKPiAtCQliLT5ycG1fd2FrZWxvY2sgPSBmYWxzZTsKPiAtCQlyZXR1cm47Cj4gLQl9Cj4gLQo+ IC0JaWYgKGItPmlycV9lbmFibGVkKSB7Cj4gLQkJaXJxX2Rpc2FibGUoZW5naW5lKTsKPiAtCQli LT5pcnFfZW5hYmxlZCA9IGZhbHNlOwo+IC0JfQo+IC0KPiAtCWludGVsX3J1bnRpbWVfcG1fcHV0 KGVuZ2luZS0+aTkxNSk7Cj4gLQliLT5ycG1fd2FrZWxvY2sgPSBmYWxzZTsKPiArCWVuYWJsZV9m YWtlX2lycShiKTsKPiAgfQo+Cj4gIHN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX3dhaXQgKnRv X3dhaXQoc3RydWN0IHJiX25vZGUgKm5vZGUpCj4gQEAgLTQzMCw3ICs0NjYsNiBAQCBzdGF0aWMg dm9pZCBfX2ludGVsX2VuZ2luZV9yZW1vdmVfd2FpdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUsCj4gIAkJCXdha2VfdXBfcHJvY2VzcyhiLT5maXJzdF93YWl0LT50c2spOwo+ICAJCX0g ZWxzZSB7Cj4gIAkJCWItPmZpcnN0X3dhaXQgPSBOVUxMOwo+IC0JCQlfX2ludGVsX2JyZWFkY3J1 bWJzX2Rpc2FibGVfaXJxKGIpOwo+ICAJCX0KPiAgCX0gZWxzZSB7Cj4gIAkJR0VNX0JVR19PTihy Yl9maXJzdCgmYi0+d2FpdGVycykgPT0gJndhaXQtPm5vZGUpOwo+IEBAIC03MjIsMTUgKzc1Nywy MiBAQCB2b2lkIGludGVsX2VuZ2luZV9yZXNldF9icmVhZGNydW1icyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCj4gIAljYW5jZWxfZmFrZV9pcnEoZW5naW5lKTsKPiAgCXNwaW5fbG9j a19pcnEoJmItPmxvY2spOwo+Cj4gLQlfX2ludGVsX2JyZWFkY3J1bWJzX2Rpc2FibGVfaXJxKGIp Owo+IC0JaWYgKGludGVsX2VuZ2luZV9oYXNfd2FpdGVyKGVuZ2luZSkpIHsKPiAtCQlfX2ludGVs X2JyZWFkY3J1bWJzX2VuYWJsZV9pcnEoYik7Cj4gLQkJaWYgKHRlc3RfYml0KEVOR0lORV9JUlFf QlJFQURDUlVNQiwgJmVuZ2luZS0+aXJxX3Bvc3RlZCkpCj4gLQkJCXdha2VfdXBfcHJvY2Vzcyhi LT5maXJzdF93YWl0LT50c2spOwo+IC0JfSBlbHNlIHsKPiAtCQkvKiBzYW5pdGl6ZSB0aGUgSU1S IGFuZCB1bm1hc2sgYW55IGF1eGlsaWFyeSBpbnRlcnJ1cHRzICovCj4gKwlpZiAoYi0+aXJxX2Vu YWJsZWQpCj4gKwkJaXJxX2VuYWJsZShlbmdpbmUpOwo+ICsJZWxzZQo+ICAJCWlycV9kaXNhYmxl KGVuZ2luZSk7Cj4gLQl9Cj4gKwo+ICsJLyogV2Ugc2V0IHRoZSBJUlFfQlJFQURDUlVNQiBiaXQg d2hlbiB3ZSBlbmFibGUgdGhlIGlycSBwcmVzdW1pbmcgdGhlCj4gKwkgKiBHUFUgaXMgYWN0aXZl IGFuZCBtYXkgaGF2ZSBhbHJlYWR5IGV4ZWN1dGVkIHRoZSBNSV9VU0VSX0lOVEVSUlVQVAo+ICsJ ICogYmVmb3JlIHRoZSBDUFUgaXMgcmVhZHkgdG8gcmVjZWl2ZS4gSG93ZXZlciwgdGhlIGVuZ2lu ZSBpcyBjdXJyZW50bHkKPiArCSAqIGlkbGUgKHdlIGhhdmVuJ3Qgc3RhcnRlZCBpdCB5ZXQpLCB0 aGVyZSBpcyBubyBwb3NzaWJpbGl0eSBmb3IgYQo+ICsJICogbWlzc2VkIGludGVycnVwdCBhcyB3 ZSBlbmFibGVkIHRoZSBpcnEgYW5kIHNvIHdlIGNhbiBjbGVhciB0aGUKPiArCSAqIGltbWVkaWF0 ZSB3YWtldXAgKHVudGlsIGEgcmVhbCBpbnRlcnJ1cHQgYXJyaXZlcyBmb3IgdGhlIHdhaXRlciku Cj4gKwkgKi8KPiArCWNsZWFyX2JpdChFTkdJTkVfSVJRX0JSRUFEQ1JVTUIsICZlbmdpbmUtPmly cV9wb3N0ZWQpOwo+ICsKPiArCWlmIChiLT5pcnFfYXJtZWQpCj4gKwkJZW5hYmxlX2Zha2VfaXJx KGIpOwo+Cj4gIAlzcGluX3VubG9ja19pcnEoJmItPmxvY2spOwo+ICB9Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IGluZGV4IDk3NGVjMTFkMmIxZC4uM2RkNmVlZTRh MDhiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IEBAIC0y NDYsOCArMjQ2LDggQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7Cj4KPiAgCQl1bnNpZ25lZCBp bnQgaGFuZ2NoZWNrX2ludGVycnVwdHM7Cj4KPiArCQlib29sIGlycV9hcm1lZCA6IDE7Cj4gIAkJ Ym9vbCBpcnFfZW5hYmxlZCA6IDE7Cj4gLQkJYm9vbCBycG1fd2FrZWxvY2sgOiAxOwo+ICAJCUk5 MTVfU0VMRlRFU1RfREVDTEFSRShib29sIG1vY2sgOiAxKTsKPiAgCX0gYnJlYWRjcnVtYnM7Cj4K PiBAQCAtNjQ0LDcgKzY0NCwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfZW5naW5lX2hh c193YWl0ZXIoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+Cj4gIHVuc2ln bmVkIGludCBpbnRlbF9lbmdpbmVfd2FrZXVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSk7Cj4gICNkZWZpbmUgRU5HSU5FX1dBS0VVUF9XQUlURVIgQklUKDApCj4gLSNkZWZpbmUgRU5H SU5FX1dBS0VVUF9BQ1RJVkUgQklUKDEpCj4gKyNkZWZpbmUgRU5HSU5FX1dBS0VVUF9BU0xFRVAg QklUKDEpCj4gKwo+ICt2b2lkIF9faW50ZWxfZW5naW5lX2Rpc2FybV9icmVhZGNydW1icyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwo+ICt2b2lkIGludGVsX2VuZ2luZV9kaXNhcm1f YnJlYWRjcnVtYnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPgo+ICB2b2lkIGlu dGVsX2VuZ2luZV9yZXNldF9icmVhZGNydW1icyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpOwo+ICB2b2lkIGludGVsX2VuZ2luZV9maW5pX2JyZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSk7Cj4KClJlZ2FyZHMsCgpUdnJ0a28KCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=