From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: Re: [PATCH 004/190] drm/i915: Fix some invalid requests cancellations Date: Tue, 12 Jan 2016 18:16:21 +0000 Message-ID: <569542F5.7040704@intel.com> References: <1452503961-14837-1-git-send-email-chris@chris-wilson.co.uk> <1452503961-14837-4-git-send-email-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 5C8766E8B6 for ; Tue, 12 Jan 2016 10:16:24 -0800 (PST) In-Reply-To: <1452503961-14837-4-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 Cc: Daniel Vetter , stable@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org T24gMTEvMDEvMTYgMDk6MTYsIENocmlzIFdpbHNvbiB3cm90ZToKPiBBcyB3ZSBhZGQgdGhlIFZN QSB0byB0aGUgcmVxdWVzdCBlYXJseSwgaXQgbWF5IGJlIGNhbmNlbGxlZCBkdXJpbmcKPiBleGVj YnVmIHJlc2VydmF0aW9uLiBUaGlzIHdpbGwgbGVhdmUgdGhlIGNvbnRleHQgb2JqZWN0IHBvaW50 aW5nIHRvIGEKPiBkYW5nbGluZyByZXF1ZXN0OyBpOTE1X3dhaXRfcmVxdWVzdCgpIHNpbXBseSBz a2lwcyB0aGUgd2FpdCBhbmQgc28gd2UKPiBtYXkgdW5iaW5kIHRoZSBvYmplY3Qgd2hpbHN0IGl0 IGlzIHN0aWxsIGFjdGl2ZS4KCkkgZG9uJ3QgdW5kZXJzdGFuZCB0aGlzOyBjb250ZXh0IG9iamVj dHMgZG9uJ3QgcG9pbnQgdG8gcmVxdWVzdHMsIGl0J3MgCnZpY2UgdmVyc2EuIFRoZSByZXF1ZXN0 IGhhcyBhIHBvaW50ZXIgdG8gdGhlIGVuZ2luZSwgYW5kIHRvIHRoZSBjb250ZXh0LCAKYW5kIGFk ZHMgKzEgdG8gdGhlIHJlZmNvdW50IG9uIHRoZSBsYXR0ZXIuCgo+IEhvd2V2ZXIsIGlmIGF0IGFu eSBwb2ludCB3ZSBtYWtlIGEgY2hhbmdlIHRvIHRoZSBoYXJkd2FyZSAoYW5kIGVxdWFsbHkKPiBp bXBvcnRhbnRseSBvdXIgYm9va2tlZXBpbmcgaW4gdGhlIGRyaXZlciksIHdlIGNhbm5vdCBjYW5j ZWwgdGhlIHJlcXVlc3QKPiBhcyB3aGF0IGhhcyBhbHJlYWR5IGJlZW4gd3JpdHRlbiBtdXN0IGJl IHN1Ym1pdHRlZC4gU3VibWl0dGluZyBhIHBhcnRpYWwKPiByZXF1ZXN0IGlzIGZhciBlYXNpZXIg dGhhbiB0cnlpbmcgdG8gdW53aW5kIHRoZSBpbmNvbXBsZXRlIGNoYW5nZS4KCldoYXQgY2hhbmdl IGNvdWxkIGJlIG1hZGUgdG8gdGhlIGhhcmR3YXJlPyBFbmdpbmUgcmVzZXQsIHBlcmhhcHMsIGJ1 dCAKZXZlbiB0aGF0IGRvZXNuJ3QgbmVjZXNzYXJpbHkgaW52YWxpZGF0ZSBhIHJlcXVlc3QgaW4g cHJlcGFyYXRpb24gZm9yIApzZW5kaW5nIHRvIHRoZSBoYXJkd2FyZS4KClN1Ym1pdHRpbmcgYSBw YXJ0aWFsIGNoYW5nZSBzZWVtcyBsaWtlbHkgdG8gbGVhdmUgdGhlIGgvdyBpbiBhbiAKdW5kZWZp bmVkIHN0YXRlLiBDYW5jZWxsaW5nIGEgcmVxdWVzdCBpcyAob3Igb3VnaHQgdG8gYmUpIHRyaXZp YWw7IGp1c3QgCnJlc2V0IHRoZSByaW5nYnVmZmVyJ3MgdGFpbCBwb2ludGVyIHRvIHdoZXJlIGl0 IHdhcyB3aGVuIHRoZSByZXF1ZXN0IHdhcyAKYWxsb2NhdGVkLiBUaGUgZW5naW5lIGRvZXNuJ3Qg cmVhZCBhbnl0aGluZyBwYXN0IHRoZSB0YWlsIG9mIHRoZSAKcHJldmlvdXMgcmVxdWVzdCB1bnRp bCB0aGUgbmV3IHJlcXVlc3QgaXMgc3VibWl0dGVkLgoKPiBVbmZvcnR1bmF0ZWx5IHRoaXMgcGF0 Y2ggdW5kb2VzIHRoZSBleGNlc3MgYnJlYWRjcnVtYiB1c2FnZSB0aGF0IG9scgo+IHByZXZlbnRl ZCwgZS5nLiBpZiB3ZSBpbnRlcnJ1cHQgYmF0Y2hidWZmZXIgc3VibWlzc2lvbiB0aGVuIHdlIHN1 Ym1pdAo+IHRoZSByZXF1ZXN0cyBhbG9uZyB3aXRoIHRoZSBtZW1vcnkgd3JpdGVzIGFuZCBpbnRl cnJ1cHQgKGV2ZW4gdGhvdWdoIHdlCj4gZG8gbm8gcmVhbCB3b3JrKS4gRGlzYXNzb2NpYXRpbmcg cmVxdWVzdHMgZnJvbSBicmVhZGNydW1icyAoYW5kCj4gc2VtYXBob3JlcykgaXMgYSB0b3BpYyBm b3IgYSBwYXN0L2Z1dHVyZSBzZXJpZXMsIGJ1dCBub3cgbXVjaCBtb3JlCj4gaW1wb3J0YW50LgoK QW5vdGhlciBpbmNvbXByZWhlbnNpYmxlIGNvbW1lbnQ/IE9MUiB3ZW50IGF3YXkgYSBsb25nIHRp bWUgYWdvIG5vdy4gQW5kIApBRkFJSyBiYXRjaGJ1ZmZlciBzdWJtaXNzaW9uIGNhbm5vdCBiZSBp bnRlcnJ1cHRlZCBieSBhbnl0aGluZyAob3IgbW9yZSAKYWNjdXJhdGVseSwgYW55dGhpbmcgdGhh dCBpbnRlcnJ1cHRzIHN1Ym1pc3Npb24gd29uJ3QgYmUgYWJsZSB0byB3cml0ZSAKdG8gdGhlIHJp bmdidWZmZXIgb3Igc3VibWl0IG5ldyB3b3JrKS4KCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2ls c29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmll bC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKPiAtLS0KPiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8ICAxIC0KPiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8ICA3ICsrLS0tLS0KPiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyAgICB8IDIxICsrKysrKysr Ky0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZl ci5jIHwgMTYgKysrKystLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jICAgICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jICAgICAgICAgICB8ICAxIC0KPiAgIDYgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygr KSwgMzEgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA3NDdk MmQ4NGExOGMuLmVjMjA4MTRhZGIwYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBA IC0yODEzLDcgKzI4MTMsNiBAQCBpbnQgaTkxNV9nZW1fc3dfZmluaXNoX2lvY3RsKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAq ZmlsZV9wcml2KTsKPiAgIHZvaWQgaTkxNV9nZW1fZXhlY2J1ZmZlcl9tb3ZlX3RvX2FjdGl2ZShz dHJ1Y3QgbGlzdF9oZWFkICp2bWFzLAo+ICAgCQkJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcSk7Cj4gLXZvaWQgaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZXRpcmVfY29tbWFuZHMoc3Ry dWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcyk7Cj4gICBpbnQgaTkxNV9nZW1fcmlu Z2J1ZmZlcl9zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMs Cj4gICAJCQkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiAqYXJncywKPiAgIAkJ CQkgICBzdHJ1Y3QgbGlzdF9oZWFkICp2bWFzKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBp bmRleCAzYWI1Mjk2Njk0NDguLmZkMjQ4NzdlYjBhMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYwo+IEBAIC0zMzg0LDEyICszMzg0LDkgQEAgaW50IGk5MTVfZ3B1X2lkbGUoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiAgIAkJCQlyZXR1cm4gcmV0Owo+Cj4gICAJCQlyZXQgPSBpOTE1X3N3 aXRjaF9jb250ZXh0KHJlcSk7Cj4gLQkJCWlmIChyZXQpIHsKPiAtCQkJCWk5MTVfZ2VtX3JlcXVl c3RfY2FuY2VsKHJlcSk7Cj4gLQkJCQlyZXR1cm4gcmV0Owo+IC0JCQl9Cj4gLQo+ICAgCQkJaTkx NV9hZGRfcmVxdWVzdF9ub19mbHVzaChyZXEpOwo+ICsJCQlpZiAocmV0KQo+ICsJCQkJcmV0dXJu IHJldDsKClRoaXMgc2VlbXMgbGlrZSBhIGJhZCBpZGVhLiBMb29raW5nIGF0IGhvdyB3ZSBjb3Vs ZCBnZXQgaGVyZSAoaS5lLiBob3cgCmNvdWxkIHN3aXRjaF9jb250ZXh0KCkgcmV0dXJuIGFuIGVy cm9yKSwgd2Ugc2VlIHRoaW5ncyBzdWNoIGFzICJmYWlsZWQgCnRvIHBpbiIgb3IgaTkxNV9nZW1f b2JqZWN0X2dldF9wYWdlcygpIGZhaWxlZC4KCldpdGggbm8gcmVhbCBpZGVhIG9mIHdoYXQgdGhl IEdQVSBhbmQvb3IgQ1BVIGFkZHJlc3Mgc3BhY2VzIGNvbnRhaW4gYXQgCnRoaXMgcG9pbnQsIGl0 IHNlZW1zIHVud2lzZSB0byBjaGFyZ2UgYWhlYWQgcmVnYXJkbGVzcy4KCi5EYXZlLgoKPiAgIAkJ fQo+Cj4gICAJCXJldCA9IGludGVsX3JpbmdfaWRsZShyaW5nKTsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fY29udGV4dC5jCj4gaW5kZXggYzI1MDgzYzc4YmE3Li5lNWU5YTg5MThmMTkg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4gQEAgLTY2MSw3 ICs2NjEsNiBAQCBzdGF0aWMgaW50IGRvX3N3aXRjaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcSkKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByaW5nLT5k ZXYtPmRldl9wcml2YXRlOwo+ICAgCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpmcm9tID0gcmluZy0+ bGFzdF9jb250ZXh0Owo+ICAgCXUzMiBod19mbGFncyA9IDA7Cj4gLQlib29sIHVuaW5pdGlhbGl6 ZWQgPSBmYWxzZTsKPiAgIAlpbnQgcmV0LCBpOwo+Cj4gICAJaWYgKGZyb20gIT0gTlVMTCAmJiBy aW5nID09ICZkZXZfcHJpdi0+cmluZ1tSQ1NdKSB7Cj4gQEAgLTc2OCw2ICs3NjcsMTUgQEAgc3Rh dGljIGludCBkb19zd2l0Y2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gICAJ CQl0by0+cmVtYXBfc2xpY2UgJj0gfigxPDxpKTsKPiAgIAl9Cj4KPiArCWlmICghdG8tPmxlZ2Fj eV9od19jdHguaW5pdGlhbGl6ZWQpIHsKPiArCQlpZiAocmluZy0+aW5pdF9jb250ZXh0KSB7Cj4g KwkJCXJldCA9IHJpbmctPmluaXRfY29udGV4dChyZXEpOwo+ICsJCQlpZiAocmV0KQo+ICsJCQkJ Z290byB1bnBpbl9vdXQ7Cj4gKwkJfQo+ICsJCXRvLT5sZWdhY3lfaHdfY3R4LmluaXRpYWxpemVk ID0gdHJ1ZTsKPiArCX0KPiArCj4gICAJLyogVGhlIGJhY2tpbmcgb2JqZWN0IGZvciB0aGUgY29u dGV4dCBpcyBkb25lIGFmdGVyIHN3aXRjaGluZyB0byB0aGUKPiAgIAkgKiAqbmV4dCogY29udGV4 dC4gVGhlcmVmb3JlIHdlIGNhbm5vdCByZXRpcmUgdGhlIHByZXZpb3VzIGNvbnRleHQgdW50aWwK PiAgIAkgKiB0aGUgbmV4dCBjb250ZXh0IGhhcyBhbHJlYWR5IHN0YXJ0ZWQgcnVubmluZy4gSW4g ZmFjdCwgdGhlIGJlbG93IGNvZGUKPiBAQCAtNzkxLDIxICs3OTksMTAgQEAgc3RhdGljIGludCBk b19zd2l0Y2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gICAJCWk5MTVfZ2Vt X2NvbnRleHRfdW5yZWZlcmVuY2UoZnJvbSk7Cj4gICAJfQo+Cj4gLQl1bmluaXRpYWxpemVkID0g IXRvLT5sZWdhY3lfaHdfY3R4LmluaXRpYWxpemVkOwo+IC0JdG8tPmxlZ2FjeV9od19jdHguaW5p dGlhbGl6ZWQgPSB0cnVlOwo+IC0KPiAgIGRvbmU6Cj4gICAJaTkxNV9nZW1fY29udGV4dF9yZWZl cmVuY2UodG8pOwo+ICAgCXJpbmctPmxhc3RfY29udGV4dCA9IHRvOwo+Cj4gLQlpZiAodW5pbml0 aWFsaXplZCkgewo+IC0JCWlmIChyaW5nLT5pbml0X2NvbnRleHQpIHsKPiAtCQkJcmV0ID0gcmlu Zy0+aW5pdF9jb250ZXh0KHJlcSk7Cj4gLQkJCWlmIChyZXQpCj4gLQkJCQlEUk1fRVJST1IoInJp bmcgaW5pdCBjb250ZXh0OiAlZFxuIiwgcmV0KTsKPiAtCQl9Cj4gLQl9Cj4gLQo+ICAgCXJldHVy biAwOwo+Cj4gICB1bnBpbl9vdXQ6Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4 ZWNidWZmZXIuYwo+IGluZGV4IGRjY2I1MTczNjFiMy4uYjgxODZiZDA2MWMxIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+IEBAIC0xMTM2LDcgKzEx MzYsNyBAQCBpOTE1X2dlbV9leGVjYnVmZmVyX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBsaXN0X2hl YWQgKnZtYXMsCj4gICAJfQo+ICAgfQo+Cj4gLXZvaWQKPiArc3RhdGljIHZvaWQKPiAgIGk5MTVf Z2VtX2V4ZWNidWZmZXJfcmV0aXJlX2NvbW1hbmRzKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFy YW1zICpwYXJhbXMpCj4gICB7Cj4gICAJLyogVW5jb25kaXRpb25hbGx5IGZvcmNlIGFkZF9yZXF1 ZXN0IHRvIGVtaXQgYSBmdWxsIGZsdXNoLiAqLwo+IEBAIC0xMzE4LDcgKzEzMTgsNiBAQCBpOTE1 X2dlbV9yaW5nYnVmZmVyX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMg KnBhcmFtcywKPiAgIAl0cmFjZV9pOTE1X2dlbV9yaW5nX2Rpc3BhdGNoKHBhcmFtcy0+cmVxdWVz dCwgcGFyYW1zLT5kaXNwYXRjaF9mbGFncyk7Cj4KPiAgIAlpOTE1X2dlbV9leGVjYnVmZmVyX21v dmVfdG9fYWN0aXZlKHZtYXMsIHBhcmFtcy0+cmVxdWVzdCk7Cj4gLQlpOTE1X2dlbV9leGVjYnVm ZmVyX3JldGlyZV9jb21tYW5kcyhwYXJhbXMpOwo+Cj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gQEAg LTE2MDcsOCArMTYwNiwxMCBAQCBpOTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJCWdvdG8gZXJyX2JhdGNoX3VucGluOwo+Cj4gICAJ cmV0ID0gaTkxNV9nZW1fcmVxdWVzdF9hZGRfdG9fY2xpZW50KHBhcmFtcy0+cmVxdWVzdCwgZmls ZSk7Cj4gLQlpZiAocmV0KQo+ICsJaWYgKHJldCkgewo+ICsJCWk5MTVfZ2VtX3JlcXVlc3RfY2Fu Y2VsKHBhcmFtcy0+cmVxdWVzdCk7Cj4gICAJCWdvdG8gZXJyX2JhdGNoX3VucGluOwo+ICsJfQo+ Cj4gICAJLyoKPiAgIAkgKiBTYXZlIGFzc29ydGVkIHN0dWZmIGF3YXkgdG8gcGFzcyB0aHJvdWdo IHRvICpfc3VibWlzc2lvbigpLgo+IEBAIC0xNjI0LDYgKzE2MjUsNyBAQCBpOTE1X2dlbV9kb19l eGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJcGFyYW1z LT5jdHggICAgICAgICAgICAgICAgICAgICA9IGN0eDsKPgo+ICAgCXJldCA9IGRldl9wcml2LT5n dC5leGVjYnVmX3N1Ym1pdChwYXJhbXMsIGFyZ3MsICZlYi0+dm1hcyk7Cj4gKwlpOTE1X2dlbV9l eGVjYnVmZmVyX3JldGlyZV9jb21tYW5kcyhwYXJhbXMpOwo+Cj4gICBlcnJfYmF0Y2hfdW5waW46 Cj4gICAJLyoKPiBAQCAtMTY0MCwxNCArMTY0Miw2IEBAIGVycjoKPiAgIAlpOTE1X2dlbV9jb250 ZXh0X3VucmVmZXJlbmNlKGN0eCk7Cj4gICAJZWJfZGVzdHJveShlYik7Cj4KPiAtCS8qCj4gLQkg KiBJZiB0aGUgcmVxdWVzdCB3YXMgY3JlYXRlZCBidXQgbm90IHN1Y2Nlc3NmdWxseSBzdWJtaXR0 ZWQgdGhlbiBpdAo+IC0JICogbXVzdCBiZSBmcmVlZCBhZ2Fpbi4gSWYgaXQgd2FzIHN1Ym1pdHRl ZCB0aGVuIGl0IGlzIGJlaW5nIHRyYWNrZWQKPiAtCSAqIG9uIHRoZSBhY3RpdmUgcmVxdWVzdCBs aXN0IGFuZCBubyBjbGVhbiB1cCBpcyByZXF1aXJlZCBoZXJlLgo+IC0JICovCj4gLQlpZiAocmV0 ICYmIHBhcmFtcy0+cmVxdWVzdCkKPiAtCQlpOTE1X2dlbV9yZXF1ZXN0X2NhbmNlbChwYXJhbXMt PnJlcXVlc3QpOwo+IC0KPiAgIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPgo+ ICAgcHJlX211dGV4X2VycjoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5k ZXggYjRjZjljZTE2MTU1Li45NTk4NjhjNDAwMTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCj4gQEAgLTExNzUxLDcgKzExNzUxLDcgQEAgY2xlYW51cF91bnBpbjoKPiAg IAlpbnRlbF91bnBpbl9mYl9vYmooZmIsIGNydGMtPnByaW1hcnktPnN0YXRlKTsKPiAgIGNsZWFu dXBfcGVuZGluZzoKPiAgIAlpZiAocmVxdWVzdCkKPiAtCQlpOTE1X2dlbV9yZXF1ZXN0X2NhbmNl bChyZXF1ZXN0KTsKPiArCQlpOTE1X2FkZF9yZXF1ZXN0X25vX2ZsdXNoKHJlcXVlc3QpOwo+ICAg CWF0b21pY19kZWMoJmludGVsX2NydGMtPnVucGluX3dvcmtfY291bnQpOwo+ICAgCW11dGV4X3Vu bG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICAgY2xlYW51cDoKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYwo+IGluZGV4IGY3ZmFjNWYzYjVjZS4uN2YxN2JhODUyYjhhIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmMKPiBAQCAtOTcyLDcgKzk3Miw2IEBAIGludCBpbnRlbF9leGVjbGlz dHNfc3VibWlzc2lvbihzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAo+ICAg CXRyYWNlX2k5MTVfZ2VtX3JpbmdfZGlzcGF0Y2gocGFyYW1zLT5yZXF1ZXN0LCBwYXJhbXMtPmRp c3BhdGNoX2ZsYWdzKTsKPgo+ICAgCWk5MTVfZ2VtX2V4ZWNidWZmZXJfbW92ZV90b19hY3RpdmUo dm1hcywgcGFyYW1zLT5yZXF1ZXN0KTsKPiAtCWk5MTVfZ2VtX2V4ZWNidWZmZXJfcmV0aXJlX2Nv bW1hbmRzKHBhcmFtcyk7Cj4KPiAgIAlyZXR1cm4gMDsKPiAgIH0KPgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK