From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: Re: [PATCH 48/53] drm/i915: Update intel_ring_begin() to take a request structure Date: Mon, 09 Mar 2015 22:39:59 +0000 Message-ID: <54FE213F.9030803@intel.com> References: <1423828140-10653-1-git-send-email-John.C.Harrison@Intel.com> <1424366285-29232-1-git-send-email-John.C.Harrison@Intel.com> <1424366285-29232-49-git-send-email-John.C.Harrison@Intel.com> 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 ESMTP id 4BD816E304 for ; Mon, 9 Mar 2015 15:40:29 -0700 (PDT) In-Reply-To: <1424366285-29232-49-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 T24gMTkvMDIvMjAxNSAxNzoxOCwgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToKPiBG cm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Cj4gTm93IHRo YXQgZXZlcnl0aGluZyBhYm92ZSBoYXMgYmVlbiBjb252ZXJ0ZWQgdG8gdXNlIHJlcXVlc3RzLCBp bnRlbF9yaW5nX2JlZ2luKCkKPiBjYW4gYmUgdXBkYXRlZCB0byB0YWtlIGEgcmVxdWVzdCBpbnN0 ZWFkIG9mIGEgcmluZy4gVGhpcyBhbHNvIG1lYW5zIHRoYXQgaXQgbm8KPiBsb25nZXIgbmVlZHMg dG8gbGF6aWx5IGFsbG9jYXRlIGEgcmVxdWVzdCBpZiBuby1vbmUgaGFwcGVucyB0byBoYXZlIGRv bmUgaXQKPiBlYXJsaWVyLgo+Cj4gRm9yOiBWSVotNTExNQo+IFNpZ25lZC1vZmYtYnk6IEpvaG4g SGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgfCAgICAyICstCj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgICAgfCAgICAyICstCj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgfCAgICA4ICsrLS0KPiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICAgICB8ICAgIDYgKy0tCj4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICAgfCAgIDEwICsrLS0KPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYyAgICAgICB8ICAgIDggKystLQo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICAgICAgIHwgICAgMiArLQo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICAgIHwgICA3MiArKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmggICAgfCAgICAyICstCj4gICA5IGZpbGVzIGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyks IDU4IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggYjU2MTNm Zi4uNjBmNjY3MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBAIC00NjU2LDcgKzQ2 NTYsNyBAQCBpbnQgaTkxNV9nZW1fbDNfcmVtYXAoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEsIGludCBzbGljZSkKPiAgIAlpZiAoIUhBU19MM19EUEYoZGV2KSB8fCAhcmVtYXBfaW5m bykKPiAgIAkJcmV0dXJuIDA7Cj4KPiAtCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywgR0VO N19MM0xPR19TSVpFIC8gNCAqIDMpOwo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIEdF TjdfTDNMT0dfU0laRSAvIDQgKiAzKTsKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+ Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+IGluZGV4IDM4NGY0ODEu LmUzNDg0MjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29u dGV4dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4g QEAgLTUwMyw3ICs1MDMsNyBAQCBtaV9zZXRfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcSwgdTMyIGh3X2ZsYWdzKQo+ICAgCWlmIChJTlRFTF9JTkZPKHJpbmctPmRldikt PmdlbiA+PSA3KQo+ICAgCQlsZW4gKz0gMiArIChudW1fcmluZ3MgPyA0Km51bV9yaW5ncyArIDIg OiAwKTsKPgo+IC0JcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyaW5nLCBsZW4pOwo+ICsJcmV0ID0g aW50ZWxfcmluZ19iZWdpbihyZXEsIGxlbik7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJl dDsKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVm ZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiBpbmRl eCA4YjRmOGE5Li42YTcwM2U2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2V4ZWNidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2V4ZWNidWZmZXIuYwo+IEBAIC0xMDEzLDcgKzEwMTMsNyBAQCBpOTE1X3Jlc2V0X2dlbjdfc29s X29mZnNldHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAkJcmV0dXJuIC1FSU5WQUw7Cj4g ICAJfQo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDQgKiAzKTsKPiArCXJldCA9 IGludGVsX3JpbmdfYmVnaW4ocmVxLCA0ICogMyk7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJu IHJldDsKPgo+IEBAIC0xMDQ0LDcgKzEwNDQsNyBAQCBpOTE1X2VtaXRfYm94KHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCX0KPgo+ICAgCWlmIChJTlRFTF9JTkZPKHJpbmct PmRldiktPmdlbiA+PSA0KSB7Cj4gLQkJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyaW5nLCA0KTsK PiArCQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgNCk7Cj4gICAJCWlmIChyZXQpCj4gICAJ CQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTEwNTMsNyArMTA1Myw3IEBAIGk5MTVfZW1pdF9ib3goc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCWludGVsX3JpbmdfZW1pdChyaW5n LCAoKGJveC0+eDIgLSAxKSAmIDB4ZmZmZikgfCAoYm94LT55MiAtIDEpIDw8IDE2KTsKPiAgIAkJ aW50ZWxfcmluZ19lbWl0KHJpbmcsIERSNCk7Cj4gICAJfSBlbHNlIHsKPiAtCQlyZXQgPSBpbnRl bF9yaW5nX2JlZ2luKHJpbmcsIDYpOwo+ICsJCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCA2 KTsKPiAgIAkJaWYgKHJldCkKPiAgIAkJCXJldHVybiByZXQ7Cj4KPiBAQCAtMTIzNSw3ICsxMjM1 LDcgQEAgaTkxNV9nZW1fcmluZ2J1ZmZlcl9zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZm ZXJfcGFyYW1zICpwYXJhbXMsCj4KPiAgIAlpZiAocmluZyA9PSAmZGV2X3ByaXYtPnJpbmdbUkNT XSAmJgo+ICAgCQkJaW5zdHBfbW9kZSAhPSBkZXZfcHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21v ZGUpIHsKPiAtCQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDQpOwo+ICsJCXJldCA9IGlu dGVsX3JpbmdfYmVnaW4ocGFyYW1zLT5yZXF1ZXN0LCA0KTsKPiAgIAkJaWYgKHJldCkKPiAgIAkJ CWdvdG8gZXJyb3I7Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+IGluZGV4IGEx YWY2NDQuLjA0NDUyNzggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+IEBA IC0yODgsNyArMjg4LDcgQEAgc3RhdGljIGludCBnZW44X3dyaXRlX3BkcChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSwgdW5zaWduZWQgZW50cnksCj4KPiAgIAlCVUdfT04oZW50cnkg Pj0gNCk7Cj4KPiAtCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywgNik7Cj4gKwlyZXQgPSBp bnRlbF9yaW5nX2JlZ2luKHJlcSwgNik7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsK Pgo+IEBAIC03ODgsNyArNzg4LDcgQEAgc3RhdGljIGludCBoc3dfbW1fc3dpdGNoKHN0cnVjdCBp OTE1X2h3X3BwZ3R0ICpwcGd0dCwKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4g LQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDYpOwo+ICsJcmV0ID0gaW50ZWxfcmluZ19i ZWdpbihyZXEsIDYpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiBAQCAtODI1 LDcgKzgyNSw3IEBAIHN0YXRpYyBpbnQgZ2VuN19tbV9zd2l0Y2goc3RydWN0IGk5MTVfaHdfcHBn dHQgKnBwZ3R0LAo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiAtCXJldCA9IGlu dGVsX3JpbmdfYmVnaW4ocmluZywgNik7Cj4gKwlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwg Nik7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiBpbmRleCA3OTYyOTQ2Li42OTAxZTlhIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC05MjU5LDcgKzkyNTksNyBAQCBzdGF0aWMgaW50 IGludGVsX2dlbjJfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCXUzMiBm bGlwX21hc2s7Cj4gICAJaW50IHJldDsKPgo+IC0JcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyaW5n LCA2KTsKPiArCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCA2KTsKPiAgIAlpZiAocmV0KQo+ ICAgCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTkyOTQsNyArOTI5NCw3IEBAIHN0YXRpYyBpbnQgaW50 ZWxfZ2VuM19xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJdTMyIGZsaXBf bWFzazsKPiAgIAlpbnQgcmV0Owo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDYp Owo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDYpOwo+ICAgCWlmIChyZXQpCj4gICAJ CXJldHVybiByZXQ7Cj4KPiBAQCAtOTMyNyw3ICs5MzI3LDcgQEAgc3RhdGljIGludCBpbnRlbF9n ZW40X3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAl1aW50MzJfdCBwZiwg cGlwZXNyYzsKPiAgIAlpbnQgcmV0Owo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcs IDQpOwo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDQpOwo+ICAgCWlmIChyZXQpCj4g ICAJCXJldHVybiByZXQ7Cj4KPiBAQCAtOTM2Niw3ICs5MzY2LDcgQEAgc3RhdGljIGludCBpbnRl bF9nZW42X3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAl1aW50MzJfdCBw ZiwgcGlwZXNyYzsKPiAgIAlpbnQgcmV0Owo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJp bmcsIDQpOwo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDQpOwo+ICAgCWlmIChyZXQp Cj4gICAJCXJldHVybiByZXQ7Cj4KPiBAQCAtOTQ0Miw3ICs5NDQyLDcgQEAgc3RhdGljIGludCBp bnRlbF9nZW43X3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAlpZiAocmV0 KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIGxl bik7Cj4gKwlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgbGVuKTsKPiAgIAlpZiAocmV0KQo+ ICAgCQlyZXR1cm4gcmV0Owo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX292ZXJsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwo+IGlu ZGV4IDIyOGM5ZDEuLjFmYjc2NTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfb3ZlcmxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3Zlcmxh eS5jCj4gQEAgLTI1MSw3ICsyNTEsNyBAQCBzdGF0aWMgaW50IGludGVsX292ZXJsYXlfb24oc3Ry dWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXkpCj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJl dDsKPgo+IC0JcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyaW5nLCA0KTsKPiArCXJldCA9IGludGVs X3JpbmdfYmVnaW4ocmVxLCA0KTsKPiAgIAlpZiAocmV0KSB7Cj4gICAJCWk5MTVfZ2VtX3JlcXVl c3RfdW5yZWZlcmVuY2UocmVxKTsKPiAgIAkJcmV0dXJuIHJldDsKPiBAQCAtMjkyLDcgKzI5Miw3 IEBAIHN0YXRpYyBpbnQgaW50ZWxfb3ZlcmxheV9jb250aW51ZShzdHJ1Y3QgaW50ZWxfb3Zlcmxh eSAqb3ZlcmxheSwKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gLQlyZXQgPSBp bnRlbF9yaW5nX2JlZ2luKHJpbmcsIDIpOwo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEs IDIpOwo+ICAgCWlmIChyZXQpIHsKPiAgIAkJaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShy ZXEpOwo+ICAgCQlyZXR1cm4gcmV0Owo+IEBAIC0zNTksNyArMzU5LDcgQEAgc3RhdGljIGludCBp bnRlbF9vdmVybGF5X29mZihzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkKPiAgIAlpZiAo cmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcs IDYpOwo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDYpOwo+ICAgCWlmIChyZXQpIHsK PiAgIAkJaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShyZXEpOwo+ICAgCQlyZXR1cm4gcmV0 Owo+IEBAIC00MzQsNyArNDM0LDcgQEAgc3RhdGljIGludCBpbnRlbF9vdmVybGF5X3JlbGVhc2Vf b2xkX3ZpZChzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkKPiAgIAkJaWYgKHJldCkKPiAg IAkJCXJldHVybiByZXQ7Cj4KPiAtCQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDIpOwo+ ICsJCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCAyKTsKPiAgIAkJaWYgKHJldCkgewo+ICAg CQkJaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShyZXEpOwo+ICAgCQkJcmV0dXJuIHJldDsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBpbmRleCA2NTk0YTUyLi5jYzIyNTM2IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gQEAgLTUwMTIsNyArNTAxMiw3IEBAIHN0YXRpYyB2b2lk IGlyb25sYWtlX2VuYWJsZV9yYzYoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAkgKiBHUFUg Y2FuIGF1dG9tYXRpY2FsbHkgcG93ZXIgZG93biB0aGUgcmVuZGVyIHVuaXQgaWYgZ2l2ZW4gYSBw YWdlCj4gICAJICogdG8gc2F2ZSBzdGF0ZS4KPiAgIAkgKi8KPiAtCXJldCA9IGludGVsX3Jpbmdf YmVnaW4ocmluZywgNik7Cj4gKwlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgNik7Cj4gICAJ aWYgKHJldCkKPiAgIAkJZ290byBlcnI7Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5jCj4gaW5kZXggMTA5ZjI4My4uNWVlZjAyZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBAQCAtMTA2LDcgKzEwNiw3IEBAIGdlbjJfcmVuZGVy X3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJaWYgKGlu dmFsaWRhdGVfZG9tYWlucyAmIEk5MTVfR0VNX0RPTUFJTl9TQU1QTEVSKQo+ICAgCQljbWQgfD0g TUlfUkVBRF9GTFVTSDsKPgo+IC0JcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyaW5nLCAyKTsKPiAr CXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCAyKTsKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1 cm4gcmV0Owo+Cj4gQEAgLTE2NSw3ICsxNjUsNyBAQCBnZW40X3JlbmRlcl9yaW5nX2ZsdXNoKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCSAgICAoSVNfRzRYKGRldikgfHwg SVNfR0VONShkZXYpKSkKPiAgIAkJY21kIHw9IE1JX0lOVkFMSURBVEVfSVNQOwo+Cj4gLQlyZXQg PSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDIpOwo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihy ZXEsIDIpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiBAQCAtMjIwLDggKzIy MCw3IEBAIGludGVsX2VtaXRfcG9zdF9zeW5jX25vbnplcm9fZmx1c2goc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXEpCj4gICAJdTMyIHNjcmF0Y2hfYWRkciA9IHJpbmctPnNjcmF0Y2gu Z3R0X29mZnNldCArIDIgKiBDQUNIRUxJTkVfQllURVM7Cj4gICAJaW50IHJldDsKPgo+IC0KPiAt CXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywgNik7Cj4gKwlyZXQgPSBpbnRlbF9yaW5nX2Jl Z2luKHJlcSwgNik7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+IEBAIC0yMzQs NyArMjMzLDcgQEAgaW50ZWxfZW1pdF9wb3N0X3N5bmNfbm9uemVyb19mbHVzaChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgIAlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTk9P UCk7Cj4gICAJaW50ZWxfcmluZ19hZHZhbmNlKHJpbmcpOwo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5n X2JlZ2luKHJpbmcsIDYpOwo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDYpOwo+ICAg CWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiBAQCAtMjg5LDcgKzI4OCw3IEBAIGdlbjZf cmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJ CWZsYWdzIHw9IFBJUEVfQ09OVFJPTF9RV19XUklURSB8IFBJUEVfQ09OVFJPTF9DU19TVEFMTDsK PiAgIAl9Cj4KPiAtCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywgNCk7Cj4gKwlyZXQgPSBp bnRlbF9yaW5nX2JlZ2luKHJlcSwgNCk7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsK Pgo+IEBAIC0zMDgsNyArMzA3LDcgQEAgZ2VuN19yZW5kZXJfcmluZ19jc19zdGFsbF93YShzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nID0gcmVxLT5yaW5nOwo+ICAgCWludCByZXQ7Cj4KPiAtCXJldCA9IGludGVsX3Jpbmdf YmVnaW4ocmluZywgNCk7Cj4gKwlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgNCk7Cj4gICAJ aWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+IEBAIC0zMzAsNyArMzI5LDcgQEAgc3RhdGlj IGludCBnZW43X3JpbmdfZmJjX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx LCB1MzIgdmFsdWUpCj4gICAJaWYgKCFyaW5nLT5mYmNfZGlydHkpCj4gICAJCXJldHVybiAwOwo+ Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDYpOwo+ICsJcmV0ID0gaW50ZWxfcmlu Z19iZWdpbihyZXEsIDYpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4gICAJLyog V2FGYmNOdWtlT24zREJsdDppdmIvaHN3ICovCj4gQEAgLTM5NSw3ICszOTQsNyBAQCBnZW43X3Jl bmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCQln ZW43X3JlbmRlcl9yaW5nX2NzX3N0YWxsX3dhKHJlcSk7Cj4gICAJfQo+Cj4gLQlyZXQgPSBpbnRl bF9yaW5nX2JlZ2luKHJpbmcsIDQpOwo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDQp Owo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiBAQCAtNDE4LDcgKzQxNyw3IEBA IGdlbjhfZW1pdF9waXBlX2NvbnRyb2woc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEs Cj4gICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKPiAgIAlpbnQg cmV0Owo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDYpOwo+ICsJcmV0ID0gaW50 ZWxfcmluZ19iZWdpbihyZXEsIDYpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4K PiBAQCAtNzYwLDcgKzc1OSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfcmluZ193b3JrYXJvdW5kc19l bWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAgCWlmIChyZXQpCj4gICAJ CXJldHVybiByZXQ7Cj4KPiAtCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywgKHctPmNvdW50 ICogMiArIDIpKTsKPiArCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCAody0+Y291bnQgKiAy ICsgMikpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiBAQCAtMTExOSw3ICsx MTE4LDcgQEAgc3RhdGljIGludCBnZW44X3Jjc19zaWduYWwoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpzaWduYWxsZXJfcmVxLAo+ICAgCW51bV9kd29yZHMgKz0gKG51bV9yaW5ncy0xKSAq IE1CT1hfVVBEQVRFX0RXT1JEUzsKPiAgICN1bmRlZiBNQk9YX1VQREFURV9EV09SRFMKPgo+IC0J cmV0ID0gaW50ZWxfcmluZ19iZWdpbihzaWduYWxsZXIsIG51bV9kd29yZHMpOwo+ICsJcmV0ID0g aW50ZWxfcmluZ19iZWdpbihzaWduYWxsZXJfcmVxLCBudW1fZHdvcmRzKTsKPiAgIAlpZiAocmV0 KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTExNjAsNyArMTE1OSw3IEBAIHN0YXRpYyBpbnQg Z2VuOF94Y3Nfc2lnbmFsKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqc2lnbmFsbGVyX3Jl cSwKPiAgIAludW1fZHdvcmRzICs9IChudW1fcmluZ3MtMSkgKiBNQk9YX1VQREFURV9EV09SRFM7 Cj4gICAjdW5kZWYgTUJPWF9VUERBVEVfRFdPUkRTCj4KPiAtCXJldCA9IGludGVsX3JpbmdfYmVn aW4oc2lnbmFsbGVyLCBudW1fZHdvcmRzKTsKPiArCXJldCA9IGludGVsX3JpbmdfYmVnaW4oc2ln bmFsbGVyX3JlcSwgbnVtX2R3b3Jkcyk7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsK Pgo+IEBAIC0xMTk5LDcgKzExOTgsNyBAQCBzdGF0aWMgaW50IGdlbjZfc2lnbmFsKHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqc2lnbmFsbGVyX3JlcSwKPiAgIAludW1fZHdvcmRzICs9IHJv dW5kX3VwKChudW1fcmluZ3MtMSkgKiBNQk9YX1VQREFURV9EV09SRFMsIDIpOwo+ICAgI3VuZGVm IE1CT1hfVVBEQVRFX0RXT1JEUwo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHNpZ25hbGxl ciwgbnVtX2R3b3Jkcyk7Cj4gKwlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHNpZ25hbGxlcl9yZXEs IG51bV9kd29yZHMpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiBAQCAtMTIz Nyw3ICsxMjM2LDcgQEAgZ2VuNl9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcSkKPiAgIAlpZiAocmluZy0+c2VtYXBob3JlLnNpZ25hbCkKPiAgIAkJcmV0ID0gcmlu Zy0+c2VtYXBob3JlLnNpZ25hbChyZXEsIDQpOwo+ICAgCWVsc2UKPiAtCQlyZXQgPSBpbnRlbF9y aW5nX2JlZ2luKHJpbmcsIDQpOwo+ICsJCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCA0KTsK Pgo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4gQEAgLTEyNzUsNyArMTI3NCw3IEBA IGdlbjhfcmluZ19zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqd2FpdGVyX3JlcSwK PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB3YWl0ZXItPmRldi0+ZGV2 X3ByaXZhdGU7Cj4gICAJaW50IHJldDsKPgo+IC0JcmV0ID0gaW50ZWxfcmluZ19iZWdpbih3YWl0 ZXIsIDQpOwo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdpbih3YWl0ZXJfcmVxLCA0KTsKPiAgIAlp ZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTEzMTIsNyArMTMxMSw3IEBAIGdlbjZf cmluZ19zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqd2FpdGVyX3JlcSwKPgo+ICAg CVdBUk5fT04od2FpdF9tYm94ID09IE1JX1NFTUFQSE9SRV9TWU5DX0lOVkFMSUQpOwo+Cj4gLQly ZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHdhaXRlciwgNCk7Cj4gKwlyZXQgPSBpbnRlbF9yaW5nX2Jl Z2luKHdhaXRlcl9yZXEsIDQpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiBA QCAtMTM1Nyw3ICsxMzU2LDcgQEAgcGNfcmVuZGVyX2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAgCSAqIGluY29oZXJlbmNlIGJ5IGZsdXNoaW5nIHRoZSA2 IFBJUEVfTk9USUZZIGJ1ZmZlcnMgb3V0IHRvCj4gICAJICogbWVtb3J5IGJlZm9yZSByZXF1ZXN0 aW5nIGFuIGludGVycnVwdC4KPiAgIAkgKi8KPiAtCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmlu ZywgMzIpOwo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDMyKTsKPiAgIAlpZiAocmV0 KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTE1NDIsNyArMTU0MSw3IEBAIGJzZF9yaW5nX2Zs dXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCXN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJaW50IHJldDsKPgo+IC0JcmV0ID0gaW50 ZWxfcmluZ19iZWdpbihyaW5nLCAyKTsKPiArCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCAy KTsKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTE1NTgsNyArMTU1Nyw3 IEBAIGk5eHhfYWRkX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4g ICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKPiAgIAlpbnQgcmV0 Owo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDQpOwo+ICsJcmV0ID0gaW50ZWxf cmluZ19iZWdpbihyZXEsIDQpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiBA QCAtMTcwMyw3ICsxNzAyLDcgQEAgaTk2NV9kaXNwYXRjaF9leGVjYnVmZmVyKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcg PSByZXEtPnJpbmc7Cj4gICAJaW50IHJldDsKPgo+IC0JcmV0ID0gaW50ZWxfcmluZ19iZWdpbihy aW5nLCAyKTsKPiArCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCAyKTsKPiAgIAlpZiAocmV0 KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTE3MzEsNyArMTczMCw3IEBAIGk4MzBfZGlzcGF0 Y2hfZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAl1MzIg Y3Nfb2Zmc2V0ID0gcmluZy0+c2NyYXRjaC5ndHRfb2Zmc2V0Owo+ICAgCWludCByZXQ7Cj4KPiAt CXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywgNik7Cj4gKwlyZXQgPSBpbnRlbF9yaW5nX2Jl Z2luKHJlcSwgNik7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+IEBAIC0xNzQ4 LDcgKzE3NDcsNyBAQCBpODMwX2Rpc3BhdGNoX2V4ZWNidWZmZXIoc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXEsCj4gICAJCWlmIChsZW4gPiBJODMwX0JBVENIX0xJTUlUKQo+ICAgCQkJ cmV0dXJuIC1FTk9TUEM7Cj4KPiAtCQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDYgKyAy KTsKPiArCQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgNiArIDIpOwo+ICAgCQlpZiAocmV0 KQo+ICAgCQkJcmV0dXJuIHJldDsKPgo+IEBAIC0xNzcxLDcgKzE3NzAsNyBAQCBpODMwX2Rpc3Bh dGNoX2V4ZWNidWZmZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCW9m ZnNldCA9IGNzX29mZnNldDsKPiAgIAl9Cj4KPiAtCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmlu ZywgNCk7Cj4gKwlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgNCk7Cj4gICAJaWYgKHJldCkK PiAgIAkJcmV0dXJuIHJldDsKPgo+IEBAIC0xNzkzLDcgKzE3OTIsNyBAQCBpOTE1X2Rpc3BhdGNo X2V4ZWNidWZmZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKPiAgIAlpbnQgcmV0Owo+Cj4gLQly ZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDIpOwo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdp bihyZXEsIDIpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiBAQCAtMjIzMiwx MyArMjIzMSwxNSBAQCBzdGF0aWMgaW50IF9faW50ZWxfcmluZ19wcmVwYXJlKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4KPiAtaW50IGludGVsX3Jp bmdfYmVnaW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAraW50IGludGVsX3Jpbmdf YmVnaW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCSAgICAgaW50IG51 bV9kd29yZHMpCj4gICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKPiAr CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByZXEtPnJpbmc7CgpUaGUgV0FSTl9PTiBi ZWxvdyB3aWxsIG9ubHkgZmlyZSBfYWZ0ZXJfIHdlJ3ZlIGFscmVhZHkgZ290dGVuIGEgbnVsbCAK cG9pbnRlciBleGNlcHRpb24gaGVyZSBhdCB0aGUgcmVxLT5yaW5nIGRlcmVmZXJlbmNlLiBZb3Ug bWlnaHQgd2FudCB0byAKcmVhcnJhbmdlIHRoaXMgYSBiaXQgc28gdGhhdCB0aGUgV0FSTl9PTiBh cHBlYXJzIGJlZm9yZSB0aGUgZGVyZWZlcmVuY2UuCgpUaGFua3MsClRvbWFzCgo+ICAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJpbmctPmRldi0+ZGV2X3ByaXZhdGU7Cj4g ICAJaW50IHJldDsKPgo+ICsJV0FSTl9PTihyZXEgPT0gTlVMTCk7Cj4gKwo+ICAgCXJldCA9IGk5 MTVfZ2VtX2NoZWNrX3dlZGdlKCZkZXZfcHJpdi0+Z3B1X2Vycm9yLAo+ICAgCQkJCSAgIGRldl9w cml2LT5tbS5pbnRlcnJ1cHRpYmxlKTsKPiAgIAlpZiAocmV0KQo+IEBAIC0yMjQ4LDExICsyMjQ5 LDYgQEAgaW50IGludGVsX3JpbmdfYmVnaW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywK PiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gLQkvKiBQcmVhbGxvY2F0ZSB0aGUg b2xyIGJlZm9yZSB0b3VjaGluZyB0aGUgcmluZyAqLwo+IC0JcmV0ID0gaW50ZWxfcmluZ19hbGxv Y19yZXF1ZXN0KHJpbmcsIE5VTEwsICZyZXEpOwo+IC0JaWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0 Owo+IC0KPiAgIAlyaW5nLT5idWZmZXItPnNwYWNlIC09IG51bV9kd29yZHMgKiBzaXplb2YodWlu dDMyX3QpOwo+ICAgCXJldHVybiAwOwo+ICAgfQo+IEBAIC0yMjY4LDcgKzIyNjQsNyBAQCBpbnQg aW50ZWxfcmluZ19jYWNoZWxpbmVfYWxpZ24oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEpCj4gICAJCXJldHVybiAwOwo+Cj4gICAJbnVtX2R3b3JkcyA9IENBQ0hFTElORV9CWVRFUyAv IHNpemVvZih1aW50MzJfdCkgLSBudW1fZHdvcmRzOwo+IC0JcmV0ID0gaW50ZWxfcmluZ19iZWdp bihyaW5nLCBudW1fZHdvcmRzKTsKPiArCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCBudW1f ZHdvcmRzKTsKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTIzMzgsNyAr MjMzNCw3IEBAIHN0YXRpYyBpbnQgZ2VuNl9ic2RfcmluZ19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSwKPiAgIAl1aW50MzJfdCBjbWQ7Cj4gICAJaW50IHJldDsKPgo+IC0J cmV0ID0gaW50ZWxfcmluZ19iZWdpbihyaW5nLCA0KTsKPiArCXJldCA9IGludGVsX3JpbmdfYmVn aW4ocmVxLCA0KTsKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTIzODUs NyArMjM4MSw3IEBAIGdlbjhfcmluZ19kaXNwYXRjaF9leGVjYnVmZmVyKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCQkJIShkaXNwYXRjaF9mbGFncyAmIEk5MTVfRElTUEFU Q0hfU0VDVVJFKTsKPiAgIAlpbnQgcmV0Owo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJp bmcsIDQpOwo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDQpOwo+ICAgCWlmIChyZXQp Cj4gICAJCXJldHVybiByZXQ7Cj4KPiBAQCAtMjQwNyw3ICsyNDAzLDcgQEAgaHN3X3JpbmdfZGlz cGF0Y2hfZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOwo+ICAgCWludCByZXQ7Cj4K PiAtCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywgMik7Cj4gKwlyZXQgPSBpbnRlbF9yaW5n X2JlZ2luKHJlcSwgMik7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+IEBAIC0y NDMwLDcgKzI0MjYsNyBAQCBnZW42X3JpbmdfZGlzcGF0Y2hfZXhlY2J1ZmZlcihzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n ID0gcmVxLT5yaW5nOwo+ICAgCWludCByZXQ7Cj4KPiAtCXJldCA9IGludGVsX3JpbmdfYmVnaW4o cmluZywgMik7Cj4gKwlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgMik7Cj4gICAJaWYgKHJl dCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+IEBAIC0yNDU2LDcgKzI0NTIsNyBAQCBzdGF0aWMgaW50 IGdlbjZfcmluZ19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAl1 aW50MzJfdCBjbWQ7Cj4gICAJaW50IHJldDsKPgo+IC0JcmV0ID0gaW50ZWxfcmluZ19iZWdpbihy aW5nLCA0KTsKPiArCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCA0KTsKPiAgIAlpZiAocmV0 KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuaAo+IGluZGV4IDgwZWIzOTkuLmU4M2ZiYmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5oCj4gQEAgLTM4Niw3ICszODYsNyBAQCBpbnQgaW50ZWxfYWxsb2Nf cmluZ2J1ZmZlcl9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIHZvaWQgaW50ZWxfc3Rv cF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPiAgIHZvaWQgaW50 ZWxfY2xlYW51cF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPgo+ IC1pbnQgX19tdXN0X2NoZWNrIGludGVsX3JpbmdfYmVnaW4oc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZywgaW50IG4pOwo+ICtpbnQgX19tdXN0X2NoZWNrIGludGVsX3JpbmdfYmVnaW4oc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCBuKTsKPiAgIGludCBfX211c3RfY2hl Y2sgaW50ZWxfcmluZ19jYWNoZWxpbmVfYWxpZ24oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEpOwo+ICAgaW50IF9fbXVzdF9jaGVjayBpbnRlbF9yaW5nX2FsbG9jX3JlcXVlc3Qoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgIAkJCQkJICBzdHJ1Y3QgaW50ZWxfY29udGV4 dCAqY3R4LAo+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=