From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: Re: [PATCH v5 17/35] drm/i915: Added scheduler support to __wait_request() calls Date: Tue, 01 Mar 2016 12:02:10 +0200 Message-ID: <1456826530.6867.27.camel@linux.intel.com> References: <1455805644-6450-1-git-send-email-John.C.Harrison@Intel.com> <1455805644-6450-18-git-send-email-John.C.Harrison@Intel.com> 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 7DA9F6E064 for ; Tue, 1 Mar 2016 10:02:11 +0000 (UTC) In-Reply-To: <1455805644-6450-18-git-send-email-John.C.Harrison@Intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: John.C.Harrison@Intel.com, Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gdG8sIDIwMTYtMDItMTggYXQgMTQ6MjcgKzAwMDAsIEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5j b20gd3JvdGU6Cj4gRnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNv bT4KPiAKPiBUaGUgc2NoZWR1bGVyIGNhbiBjYXVzZSBiYXRjaCBidWZmZXJzLCBhbmQgaGVuY2Ug cmVxdWVzdHMsIHRvIGJlCj4gc3VibWl0dGVkIHRvIHRoZSByaW5nIG91dCBvZiBvcmRlciBhbmQg YXN5bmNocm9ub3VzbHkgdG8gdGhlaXIKPiBzdWJtaXNzaW9uIHRvIHRoZSBkcml2ZXIuIFRodXMg YXQgdGhlIHBvaW50IG9mIHdhaXRpbmcgZm9yIHRoZQo+IGNvbXBsZXRpb24gb2YgYSBnaXZlbiBy ZXF1ZXN0LCBpdCBpcyBub3QgZXZlbiBndWFyYW50ZWVkIHRoYXQgdGhlCj4gcmVxdWVzdCBoYXMg YWN0dWFsbHkgYmVlbiBzZW50IHRvIHRoZSBoYXJkd2FyZSB5ZXQuIEV2ZW4gaXQgaXMgaGFzCj4g YmVlbiBzZW50LCBpdCBpcyBwb3NzaWJsZSB0aGF0IGl0IGNvdWxkIGJlIHByZS1lbXB0ZWQgYW5k IHRodXMKPiAndW5zZW50Jy4KPiAKPiBUaGlzIG1lYW5zIHRoYXQgaXQgaXMgbmVjZXNzYXJ5IHRv IGJlIGFibGUgdG8gc3VibWl0IHJlcXVlc3RzIHRvIHRoZQo+IGhhcmR3YXJlIGR1cmluZyB0aGUg d2FpdCBjYWxsIGl0c2VsZi4gVW5mb3J0dW5hdGVseSwgd2hpbGUgc29tZQo+IGNhbGxlcnMgb2Yg X193YWl0X3JlcXVlc3QoKSByZWxlYXNlIHRoZSBtdXRleCBsb2NrIGZpcnN0LCBvdGhlcnMgZG8K PiBub3QgKGFuZCBhcHBhcmVudGx5IGNhbiBub3QpLiBIZW5jZSB0aGVyZSBpcyB0aGUgYWJpbGl0 eSB0byBkZWFkbG9jawo+IGFzIHRoZSB3YWl0IHN0YWxscyBmb3Igc3VibWlzc2lvbiBidXQgdGhl IGFzeW5jaHJvbm91cyBzdWJtaXNzaW9uIGlzCj4gc3RhbGxlZCBmb3IgdGhlIG11dGV4IGxvY2su Cj4gCj4gVGhpcyBjaGFuZ2UgaG9va3MgdGhlIHNjaGVkdWxlciBpbiB0byB0aGUgX193YWl0X3Jl cXVlc3QoKSBjb2RlIHRvCj4gZW5zdXJlIGNvcnJlY3QgYmVoYXZpb3VyLiBUaGF0IGlzLCBmbHVz aCB0aGUgdGFyZ2V0IGJhdGNoIGJ1ZmZlcgo+IHRocm91Z2ggdG8gdGhlIGhhcmR3YXJlIGFuZCBk byBub3QgZGVhZGxvY2sgd2FpdGluZyBmb3Igc29tZXRoaW5nIHRoYXQKPiBjYW5ub3QgY3VycmVu dGx5IGJlIHN1Ym1pdHRlZC4gSW5zdGVhZCwgdGhlIHdhaXQgY2FsbCBtdXN0IHJldHVybgo+IEVB R0FJTiBhdCBsZWFzdCBhcyBmYXIgYmFjayBhcyBuZWNlc3NhcnkgdG8gcmVsZWFzZSB0aGUgbXV0 ZXggbG9jayBhbmQKPiBhbGxvdyB0aGUgc2NoZWR1bGVyJ3MgYXN5bmNocm9ub3VzIHByb2Nlc3Np bmcgdG8gZ2V0IGluIGFuZCBoYW5kbGUgdGhlCj4gcHJlLWVtcHRpb24gb3BlcmF0aW9uIGFuZCBl dmVudHVhbGx5IChyZS0pc3VibWl0IHRoZSB3b3JrLgo+IAo+IHYzOiBSZW1vdmVkIHRoZSBleHBs aWNpdCBzY2hlZHVsZXIgZmx1c2ggZnJvbSBpOTE1X3dhaXRfcmVxdWVzdCgpLgo+IFRoaXMgaXMg bm8gbG9uZ2VyIG5lY2Vzc2FyeSBhbmQgd2FzIGNhdXNpbmcgdW5pbnRlbmRlZCBjaGFuZ2VzIHRv IHRoZQo+IHNjaGVkdWxlciBwcmlvcml0eSBsZXZlbCB3aGljaCBicm9rZSBhIHZhbGlkYXRpb24g dGVhbSB0ZXN0Lgo+IAo+IHY0OiBDb3JyZWN0ZWQgdGhlIGZvcm1hdCBvZiBzb21lIGNvbW1lbnRz IHRvIGtlZXAgdGhlIHN0eWxlIGNoZWNrZXIKPiBoYXBweS4KPiAKPiB2NTogQWRkZWQgZnVuY3Rp b24gZGVzY3JpcHRpb24uIFtKb29uYXMgTGFodGluZW5dCj4gCj4gRm9yOiBWSVotMTU4Nwo+IFNp Z25lZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4g Q2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KPiAt LS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmjCoMKgwqDCoMKgwqDCoMKgwqB8 wqDCoDMgKystCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jwqDCoMKgwqDCoMKg wqDCoMKgfCAzNyArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KPiDCoGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmPCoMKgwqB8IDMxICsrKysrKysrKysrKysrKysr KysrKysrKysrKwo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuaMKgwqDC oHzCoMKgMiArKwo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jwqDCoMKg wqB8wqDCoDUgKysrLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu YyB8wqDCoDIgKy0KPiDCoDYgZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgMTEgZGVs ZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggNGQ1NDRmMS4uNWVl ZWNlZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0zMDcxLDcgKzMwNzEsOCBA QCBpbnQgX19pOTE1X3dhaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cSwKPiDCoAkJCXVuc2lnbmVkIHJlc2V0X2NvdW50ZXIsCj4gwqAJCQlib29sIGludGVycnVwdGli bGUsCj4gwqAJCQlzNjQgKnRpbWVvdXQsCj4gLQkJCXN0cnVjdCBpbnRlbF9ycHNfY2xpZW50ICpy cHMpOwo+ICsJCQlzdHJ1Y3QgaW50ZWxfcnBzX2NsaWVudCAqcnBzLAo+ICsJCQlib29sIGlzX2xv Y2tlZCk7CgpNdWx0aXBsZSBib29sIHBhcmFtZXRlcnMgYXJlIGJldHRlciBjb252ZXJ0ZWQgdG8g aW50IGZsYWdzLCBpdCBtYWtlcwp0aGUgY2FsbHNpdGUgY29kZSBtb3JlIHJlYWRhYmxlIGlmIHlv dSBoYXZlIGVudW0gSTkxNV9XQUlUX1JFUV8qIGZsYWdzLgoKPiDCoGludCBfX211c3RfY2hlY2sg aTkxNV93YWl0X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOwo+IMKg aW50IGk5MTVfZ2VtX2ZhdWx0KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCBzdHJ1Y3Qgdm1f ZmF1bHQgKnZtZik7Cj4gwqBpbnQgX19tdXN0X2NoZWNrCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j Cj4gaW5kZXggMmRkOWI1NS4uMTdiNDRiMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ IEBAIC0xMjU4LDcgKzEyNTgsOCBAQCBpbnQgX19pOTE1X3dhaXRfcmVxdWVzdChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiDCoAkJCXVuc2lnbmVkIHJlc2V0X2NvdW50ZXIsCj4g wqAJCQlib29sIGludGVycnVwdGlibGUsCj4gwqAJCQlzNjQgKnRpbWVvdXQsCj4gLQkJCXN0cnVj dCBpbnRlbF9ycHNfY2xpZW50ICpycHMpCj4gKwkJCXN0cnVjdCBpbnRlbF9ycHNfY2xpZW50ICpy cHMsCj4gKwkJCWJvb2wgaXNfbG9ja2VkKQo+IMKgewo+IMKgCXN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcgPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9yaW5nKHJlcSk7Cj4gwqAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IHJpbmctPmRldjsKPiBAQCAtMTI2OCw4ICsxMjY5LDEwIEBAIGludCBf X2k5MTVfd2FpdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+IMKg CURFRklORV9XQUlUKHdhaXQpOwo+IMKgCXVuc2lnbmVkIGxvbmcgdGltZW91dF9leHBpcmU7Cj4g wqAJczY0IGJlZm9yZSA9IDA7IC8qIE9ubHkgdG8gc2lsZW5jZSBhIGNvbXBpbGVyIHdhcm5pbmcu ICovCj4gLQlpbnQgcmV0Owo+ICsJaW50IHJldCA9IDA7Cj4gKwlib29swqDCoMKgwqBidXN5OwoK U3RyYW5nZSB3aGl0ZXNwYWNlLgoKPiDCoAo+ICsJbWlnaHRfc2xlZXAoKTsKClRoaXMgd2lsbCBz cGxhdCBpZiBpc19sb2NrZWQgaXMgdHJ1ZT8gU28gbWF5YmUgaXQgc2hvdWxkIGJlIHByb3RlY3Rl ZApieSBpZiAoIWlzX2xvY2tlZCk/Cgo+IMKgCVdBUk4oIWludGVsX2lycXNfZW5hYmxlZChkZXZf cHJpdiksICJJUlFzIGRpc2FibGVkIik7Cj4gwqAKPiDCoAlpZiAoaTkxNV9nZW1fcmVxdWVzdF9j b21wbGV0ZWQocmVxKSkKPiBAQCAtMTMyNCw2ICsxMzI3LDI2IEBAIGludCBfX2k5MTVfd2FpdF9y ZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+IMKgCQkJYnJlYWs7Cj4g wqAJCX0KPiDCoAo+ICsJCWlmIChpc19sb2NrZWQpIHsKPiArCQkJLyoKPiArCQkJwqAqIElmIHRo aXMgcmVxdWVzdCBpcyBiZWluZyBwcm9jZXNzZWQgYnkgdGhlIHNjaGVkdWxlcgo+ICsJCQnCoCog dGhlbiBpdCBpcyB1bnNhZmUgdG8gc2xlZXAgd2l0aCB0aGUgbXV0ZXggbG9jayBoZWxkCj4gKwkJ CcKgKiBhcyB0aGUgc2NoZWR1bGVyIG1heSByZXF1aXJlIHRoZSBsb2NrIGluIG9yZGVyIHRvCj4g KwkJCcKgKiBwcm9ncmVzcyB0aGUgcmVxdWVzdC4KPiArCQkJwqAqLwoKVGhpcyBpcyBiZWNvbWlu ZyBhIG1vbnN0cm91cyBmdW5jdGlvbiwgSSB0aGluayBpdCBjb3VsZCBiZSBzcGxpdCBkb3duCnRv IHR3byBmdW5jdGlvbnMswqBfX2k5MTVfd2FpdF9yZXF1ZXN0IGFuZApfX2k5MTVfd2FpdF9yZXF1 ZXN0X2xvY2tlZC9ub25ibG9ja2luZywgYmVjYXVzZSBpZiB5b3UgdGFrZSBhbGwgdGhlCnRpbWVv dXQvc2xlZXBpbmcgcmVsYXRlZCBzdHVmZiBhd2F5LCBub3QgbXVjaCBpcyBsZWZ0LgoKCgo+ICsJ CQlpZiAoaTkxNV9zY2hlZHVsZXJfaXNfcmVxdWVzdF90cmFja2VkKHJlcSwgTlVMTCwgJmJ1c3kp KSB7Cj4gKwkJCQlpZiAoYnVzeSkgewo+ICsJCQkJCXJldCA9IC1FQUdBSU47Cj4gKwkJCQkJYnJl YWs7Cj4gKwkJCQl9Cj4gKwkJCX0KCklmIHRoaXMgaXMga2VwdCBpbiBzaW5nbGUgZnVuY3Rpb24s IHdvdWxkIG5vdCBpdCBiZSBlbm91Z2ggdG8gZXhlY3V0ZQp0aGlzIGJlZm9yZSB0aGUgbG9vcD8K Cj4gKwo+ICsJCQkvKgo+ICsJCQnCoCogSWYgdGhlIHJlcXVlc3QgaXMgbm90IHRyYWNrZWQgYnkg dGhlIHNjaGVkdWxlcgo+ICsJCQnCoCogdGhlbiB0aGUgcmVndWxhciB0ZXN0IGNhbiBiZSBkb25l Lgo+ICsJCQnCoCovCj4gKwkJfQo+ICsKPiDCoAkJaWYgKGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxl dGVkKHJlcSkpIHsKPiDCoAkJCXJldCA9IDA7Cj4gwqAJCQlicmVhazsKPiBAQCAtMTU0Miw3ICsx NTY1LDcgQEAgaTkxNV93YWl0X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEpCj4gwqAKPiDCoAlyZXQgPSBfX2k5MTVfd2FpdF9yZXF1ZXN0KHJlcSwKPiDCoAkJCQnCoMKg YXRvbWljX3JlYWQoJmRldl9wcml2LT5ncHVfZXJyb3IucmVzZXRfY291bnRlciksCj4gLQkJCQnC oMKgaW50ZXJydXB0aWJsZSwgTlVMTCwgTlVMTCk7Cj4gKwkJCQnCoMKgaW50ZXJydXB0aWJsZSwg TlVMTCwgTlVMTCwgdHJ1ZSk7Cj4gwqAJaWYgKHJldCkKPiDCoAkJcmV0dXJuIHJldDsKPiDCoAo+ IEBAIC0xNjU1LDcgKzE2NzgsNyBAQCBpOTE1X2dlbV9vYmplY3Rfd2FpdF9yZW5kZXJpbmdfX25v bmJsb2NraW5nKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gwqAJbXV0ZXhfdW5s b2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gwqAJZm9yIChpID0gMDsgcmV0ID09IDAgJiYgaSA8 IG47IGkrKykKPiDCoAkJcmV0ID0gX19pOTE1X3dhaXRfcmVxdWVzdChyZXF1ZXN0c1tpXSwgcmVz ZXRfY291bnRlciwgdHJ1ZSwKPiAtCQkJCQnCoMKgTlVMTCwgcnBzKTsKPiArCQkJCQnCoMKgTlVM TCwgcnBzLCBmYWxzZSk7Cj4gwqAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+IMKg Cj4gwqAJZm9yIChpID0gMDsgaSA8IG47IGkrKykgewo+IEBAIC0zNTExLDcgKzM1MzQsNyBAQCBp OTE1X2dlbV93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0 cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiDCoAkJaWYgKHJldCA9PSAwKQo+IMKgCQkJcmV0ID0gX19p OTE1X3dhaXRfcmVxdWVzdChyZXFbaV0sIHJlc2V0X2NvdW50ZXIsIHRydWUsCj4gwqAJCQkJCQnC oMKgYXJncy0+dGltZW91dF9ucyA+IDAgPyAmYXJncy0+dGltZW91dF9ucyA6IE5VTEwsCj4gLQkJ CQkJCcKgwqB0b19ycHNfY2xpZW50KGZpbGUpKTsKPiArCQkJCQkJwqDCoHRvX3Jwc19jbGllbnQo ZmlsZSksIGZhbHNlKTsKPiDCoAkJaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShyZXFbaV0p Owo+IMKgCX0KPiDCoAlyZXR1cm4gcmV0Owo+IEBAIC0zNTQ0LDcgKzM1NjcsNyBAQCBfX2k5MTVf Z2VtX29iamVjdF9zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gwqAJCQkJ CcKgwqBhdG9taWNfcmVhZCgmaTkxNS0+Z3B1X2Vycm9yLnJlc2V0X2NvdW50ZXIpLAo+IMKgCQkJ CQnCoMKgaTkxNS0+bW0uaW50ZXJydXB0aWJsZSwKPiDCoAkJCQkJwqDCoE5VTEwsCj4gLQkJCQkJ wqDCoCZpOTE1LT5ycHMuc2VtYXBob3Jlcyk7Cj4gKwkJCQkJwqDCoCZpOTE1LT5ycHMuc2VtYXBo b3JlcywgdHJ1ZSk7Cj4gwqAJCWlmIChyZXQpCj4gwqAJCQlyZXR1cm4gcmV0Owo+IMKgCj4gQEAg LTQ1MjMsNyArNDU0Niw3IEBAIGk5MTVfZ2VtX3JpbmdfdGhyb3R0bGUoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlKQo+IMKgCWlmICh0YXJnZXQgPT0gTlVMTCkK PiDCoAkJcmV0dXJuIDA7Cj4gwqAKPiAtCXJldCA9IF9faTkxNV93YWl0X3JlcXVlc3QodGFyZ2V0 LCByZXNldF9jb3VudGVyLCB0cnVlLCBOVUxMLCBOVUxMKTsKPiArCXJldCA9IF9faTkxNV93YWl0 X3JlcXVlc3QodGFyZ2V0LCByZXNldF9jb3VudGVyLCB0cnVlLCBOVUxMLCBOVUxMLCBmYWxzZSk7 Cj4gwqAJaWYgKHJldCA9PSAwKQo+IMKgCQlxdWV1ZV9kZWxheWVkX3dvcmsoZGV2X3ByaXYtPndx LCAmZGV2X3ByaXYtPm1tLnJldGlyZV93b3JrLCAwKTsKPiDCoAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9zY2hlZHVsZXIuYwo+IGluZGV4IDYwYTU5ZDMuLmVkYWI2M2QgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMKPiBAQCAtOTE4LDYgKzkxOCwzNyBAQCB2b2lkIGk5 MTVfc2NoZWR1bGVyX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gwqB9 Cj4gwqAKPiDCoC8qKgo+ICsgKiBpOTE1X3NjaGVkdWxlcl9pc19yZXF1ZXN0X3RyYWNrZWQgLSBy ZXR1cm4gaW5mbyB0byBzYXkgd2hhdCB0aGUgc2NoZWR1bGVyJ3MKPiArICogY29ubmVjdGlvbiB0 byB0aGlzIHJlcXVlc3QgaXMgKGlmIGFueSkuCj4gKyAqIEByZXE6IHJlcXVlc3QgdG8gYmUgcXVl cmllZAo+ICsgKiBAY29tcGVsZXRlZDogaWYgbm9uLW51bGwsIHNldCB0byBjb21wbGV0aW9uIHN0 YXR1cwo+ICsgKiBAYnVzeTogaWYgbm9uLW51bGwgc2V0IHRvIGJ1c3kgc3RhdHVzCj4gKyAqCj4g KyAqIExvb2tzIHVwIHRoZSBnaXZlbiByZXF1ZXN0IGluIHRoZSBzY2hlZHVsZXIncyBpbnRlcm5h bCBxdWV1ZSBhbmQgcmVwb3J0cwo+ICsgKiBvbiB3aGV0aGVyIHRoZSByZXF1ZXN0IGhhcyBjb21w bGV0ZWQgb3IgaXMgc3RpbGwgcGVuZGluZy4KPiArICogUmV0dXJucyB0cnVlIGlmIHRoZSByZXF1 ZXN0IHdhcyBmb3VuZCBvciBmYWxzZSBpZiBpdCB3YXMgbm90Lgo+ICsgKi8KPiArYm9vbCBpOTE1 X3NjaGVkdWxlcl9pc19yZXF1ZXN0X3RyYWNrZWQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEsCj4gKwkJCQnCoMKgwqDCoMKgwqDCoGJvb2wgKmNvbXBsZXRlZCwgYm9vbCAqYnVzeSkK PiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gcmVxLT5yaW5nLT5k ZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGk5MTVfc2NoZWR1bGVyICpzY2hlZHVsZXIgPSBk ZXZfcHJpdi0+c2NoZWR1bGVyOwo+ICsKPiArCWlmICghc2NoZWR1bGVyKQo+ICsJCXJldHVybiBm YWxzZTsKPiArCj4gKwlpZiAocmVxLT5zY2hlZHVsZXJfcWUgPT0gTlVMTCkKPiArCQlyZXR1cm4g ZmFsc2U7Cj4gKwoKVGhlc2UgYmV0dGVyIGJlIHRoZWlyIG93biBmdW5jdGlvbnMsIG1ha2luZyB0 aGUgY29kZSBtb3JlIHJlYWRhYmxlLgoKX2lzX3JlcXVlc3RfY29tcGxldGVkKCkKX2lzX3JlcXVl c3RfYnVzeSgpCgo+ICsJaWYgKGNvbXBsZXRlZCkKPiArCQkqY29tcGxldGVkID0gSTkxNV9TUVNf SVNfQ09NUExFVEUocmVxLT5zY2hlZHVsZXJfcWUpOwo+ICsJaWYgKGJ1c3kpCj4gKwkJKmJ1c3nC oMKgwqDCoMKgwqA9IEk5MTVfU1FTX0lTX1FVRVVFRChyZXEtPnNjaGVkdWxlcl9xZSk7Cj4gKwo+ ICsJcmV0dXJuIHRydWU7Cj4gK30KPiArCj4gKy8qKgo+IMKgICogaTkxNV9zY2hlZHVsZXJfY2xv c2VmaWxlIC0gbm90aWZ5IHRoZSBzY2hlZHVsZXIgdGhhdCBhIERSTSBmaWxlIGhhbmRsZQo+IMKg ICogaGFzIGJlZW4gY2xvc2VkLgo+IMKgICogQGRldjogRFJNIGRldmljZQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9zY2hlZHVsZXIuaAo+IGluZGV4IDE4MGQ3NWYuLmE4OGFkY2UgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuaAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmgKPiBAQCAtOTQsNSArOTQsNyBAQCBpbnQg aTkxNV9zY2hlZHVsZXJfcXVldWVfZXhlY2J1ZmZlcihzdHJ1Y3QgaTkxNV9zY2hlZHVsZXJfcXVl dWVfZW50cnkgKnFlKTsKPiDCoGJvb2wgaTkxNV9zY2hlZHVsZXJfbm90aWZ5X3JlcXVlc3Qoc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOwo+IMKgdm9pZCBpOTE1X3NjaGVkdWxlcl93 YWtldXAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gwqB2b2lkIGk5MTVfc2NoZWR1bGVyX3dv cmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwo+ICtib29sIGk5MTVfc2NoZWR1 bGVyX2lzX3JlcXVlc3RfdHJhY2tlZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwK PiArCQkJCcKgwqDCoMKgwqDCoMKgYm9vbCAqY29tcGxldGVkLCBib29sICpidXN5KTsKPiDCoAo+ IMKgI2VuZGlmwqDCoC8qIF9JOTE1X1NDSEVEVUxFUl9IXyAqLwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiBpbmRleCA3MzFkMjBhLi41OTUzNTkwIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xMTQ1OCw3ICsxMTQ1OCw4IEBAIHN0YXRpYyB2 b2lkIGludGVsX21taW9fZmxpcF93b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ IMKgCQlXQVJOX09OKF9faTkxNV93YWl0X3JlcXVlc3QobW1pb19mbGlwLT5yZXEsCj4gwqAJCQkJ CcKgwqDCoMKgbW1pb19mbGlwLT5jcnRjLT5yZXNldF9jb3VudGVyLAo+IMKgCQkJCQnCoMKgwqDC oGZhbHNlLCBOVUxMLAo+IC0JCQkJCcKgwqDCoMKgJm1taW9fZmxpcC0+aTkxNS0+cnBzLm1taW9m bGlwcykpOwo+ICsJCQkJCcKgwqDCoMKgJm1taW9fZmxpcC0+aTkxNS0+cnBzLm1taW9mbGlwcywK PiArCQkJCQnCoMKgwqDCoGZhbHNlKSk7Cj4gwqAJCWk5MTVfZ2VtX3JlcXVlc3RfdW5yZWZlcmVu Y2UobW1pb19mbGlwLT5yZXEpOwo+IMKgCX0KPiDCoAo+IEBAIC0xMzUyMyw3ICsxMzUyNCw3IEBA IHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX3ByZXBhcmVfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gwqAKPiDCoAkJCXJldCA9IF9faTkxNV93YWl0X3JlcXVlc3QoaW50ZWxfcGxhbmVf c3RhdGUtPndhaXRfcmVxLAo+IMKgCQkJCQkJwqDCoHJlc2V0X2NvdW50ZXIsIHRydWUsCj4gLQkJ CQkJCcKgwqBOVUxMLCBOVUxMKTsKPiArCQkJCQkJwqDCoE5VTEwsIE5VTEwsIGZhbHNlKTsKPiDC oAo+IMKgCQkJLyogU3dhbGxvdyAtRUlPIGVycm9ycyB0byBhbGxvdyB1cGRhdGVzIGR1cmluZyBo dyBsb2NrdXAuICovCj4gwqAJCQlpZiAocmV0ID09IC1FSU8pCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuYwo+IGluZGV4IGNhN2I4YWYuLmEyMDkzZjUgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gQEAgLTIzMDQsNyArMjMwNCw3IEBA IGludCBpbnRlbF9yaW5nX2lkbGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiDCoAly ZXR1cm4gX19pOTE1X3dhaXRfcmVxdWVzdChyZXEsCj4gwqAJCQkJwqDCoMKgYXRvbWljX3JlYWQo JnRvX2k5MTUocmluZy0+ZGV2KS0+Z3B1X2Vycm9yLnJlc2V0X2NvdW50ZXIpLAo+IMKgCQkJCcKg wqDCoHRvX2k5MTUocmluZy0+ZGV2KS0+bW0uaW50ZXJydXB0aWJsZSwKPiAtCQkJCcKgwqDCoE5V TEwsIE5VTEwpOwo+ICsJCQkJwqDCoMKgTlVMTCwgTlVMTCwgdHJ1ZSk7Cj4gwqB9Cj4gwqAKPiDC oGludCBpbnRlbF9yaW5nX2FsbG9jX3JlcXVlc3RfZXh0cmFzKHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxdWVzdCkKLS0gCkpvb25hcyBMYWh0aW5lbgpPcGVuIFNvdXJjZSBUZWNobm9s b2d5IENlbnRlcgpJbnRlbCBDb3Jwb3JhdGlvbgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK