From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: Re: [PATCH 02/18] drm/i915: Rename request->ringbuf to request->ring Date: Wed, 20 Jul 2016 15:12:49 +0100 Message-ID: <578F86E1.7050202@intel.com> References: <1469020330-1071-1-git-send-email-chris@chris-wilson.co.uk> <1469020330-1071-3-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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id B276F6E85D for ; Wed, 20 Jul 2016 14:12:51 +0000 (UTC) In-Reply-To: <1469020330-1071-3-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 List-Id: intel-gfx@lists.freedesktop.org T24gMjAvMDcvMTYgMTQ6MTEsIENocmlzIFdpbHNvbiB3cm90ZToKPiBOb3cgdGhhdCB3ZSBoYXZl IGRpc2FtYnVpZ2F0ZWQgcmluZyBhbmQgZW5naW5lLCB3ZSBjYW4gdXNlIHRoZSBjbGVhcmVyCj4g YW5kIG1vcmUgY29uc2lzdGVudCBuYW1lIGZvciB0aGUgaW50ZWxfcmluZ2J1ZmZlciBwb2ludGVy IGluIHRoZQo+IHJlcXVlc3QuCj4KPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlz QGNocmlzLXdpbHNvbi5jby51az4KCllvdSBtaXNzZWQgYSBmZXcgaW5zdGFuY2VzIG9mICdyaW5n JyBtZWFuaW5nIGVuZ2luZToKCmk5MTVfZ2VtX2V4ZWNidWZmZXIuYzoJICAgICAgIHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKipyaW5nKQppbnRlbF9tb2NzLmg6aW50IGludGVsX21vY3NfaW5pdF9l bmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7CmludGVsX3JpbmdidWZmZXIuYzpn ZW41X3NlcW5vX2JhcnJpZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKaW50ZWxfcmlu Z2J1ZmZlci5oOgl2b2lkCQkoKmlycV9lbmFibGUpKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcpOwppbnRlbF9yaW5nYnVmZmVyLmg6CXZvaWQJCSgqaXJxX2Rpc2FibGUpKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcpOwppbnRlbF9yaW5nYnVmZmVyLmg6CWludAkJKCppbml0X2h3KShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKaW50ZWxfcmluZ2J1ZmZlci5oOgl2b2lkCQko KmlycV9zZXFub19iYXJyaWVyKShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzIAoqcmluZyk7CmludGVs X3JpbmdidWZmZXIuaDoJdm9pZAkJKCpjbGVhbnVwKShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nKTsKCkkgdGhpbmsgd2UgaGF2ZSB0byBwdXJnZSBldmVyeSBsYXN0IHRyYWNlIG9mIHRoaXMg dXNhZ2UgYmVmb3JlIHVzaW5nIAoncmluZycgYXMgc2hvcnRoYW5kIGZvciAncmluZ2J1ZltmZXJd Jy4KCi5EYXZlLgoKPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRl eHQuYyAgICB8ICA0ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVm ZmVyLmMgfCAgNCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAg ICAgIHwgIDYgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYyAg ICB8IDE2ICsrKy0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5o ICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgICAg ICB8IDIwICsrKy0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAg ICAgICB8IDEwICsrLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAg ICAgICB8IDU3ICsrKysrKysrKy0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbW9jcy5jICAgICAgICAgIHwgMzYgKysrKysrLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9vdmVybGF5LmMgICAgICAgfCAgOCArLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuYyAgICB8IDkyICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLQo+ICAgMTEgZmlsZXMgY2hhbmdlZCwgMTI2IGluc2VydGlvbnMoKyksIDEyOSBkZWxldGlv bnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250 ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiBpbmRleCBi NmQxMGJkNzYzYTAuLjE2MTM4YzRmZjdkYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9jb250ZXh0LmMKPiBAQCAtNTUyLDcgKzU1Miw3IEBAIHN0YXRpYyBpbmxpbmUgaW50Cj4g ICBtaV9zZXRfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwgdTMyIGh3 X2ZsYWdzKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJl cS0+aTkxNTsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nYnVm Owo+ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJdTMy IGZsYWdzID0gaHdfZmxhZ3MgfCBNSV9NTV9TUEFDRV9HVFQ7Cj4gICAJY29uc3QgaW50IG51bV9y aW5ncyA9Cj4gICAJCS8qIFVzZSBhbiBleHRlbmRlZCB3L2Egb24gaXZiKyBpZiBzaWduYWxsaW5n IGZyb20gb3RoZXIgcmluZ3MgKi8KPiBAQCAtNjU0LDcgKzY1NCw3IEBAIG1pX3NldF9jb250ZXh0 KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCB1MzIgaHdfZmxhZ3MpCj4gICBzdGF0 aWMgaW50IHJlbWFwX2wzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgc2xp Y2UpCj4gICB7Cj4gICAJdTMyICpyZW1hcF9pbmZvID0gcmVxLT5pOTE1LT5sM19wYXJpdHkucmVt YXBfaW5mb1tzbGljZV07Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+ cmluZ2J1ZjsKPiArCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOwo+ ICAgCWludCBpLCByZXQ7Cj4KPiAgIAlpZiAoIXJlbWFwX2luZm8pCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+IGluZGV4IGUyYzRkOTlhMWU3Zi4uNTAxYTE3 NTFkNDMyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNi dWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIu Ywo+IEBAIC0xMTczLDcgKzExNzMsNyBAQCBpOTE1X2dlbV9leGVjYnVmZmVyX3JldGlyZV9jb21t YW5kcyhzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zKQo+ICAgc3RhdGljIGlu dAo+ICAgaTkxNV9yZXNldF9nZW43X3NvbF9vZmZzZXRzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEt PnJpbmdidWY7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsK PiAgIAlpbnQgcmV0LCBpOwo+Cj4gICAJaWYgKCFJU19HRU43KHJlcS0+aTkxNSkgfHwgcmVxLT5l bmdpbmUtPmlkICE9IFJDUykgewo+IEBAIC0xMzAzLDcgKzEzMDMsNyBAQCBpOTE1X2dlbV9yaW5n YnVmZmVyX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywK Pgo+ICAgCWlmIChwYXJhbXMtPmVuZ2luZS0+aWQgPT0gUkNTICYmCj4gICAJICAgIGluc3RwX21v ZGUgIT0gZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2RlKSB7Cj4gLQkJc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmcgPSBwYXJhbXMtPnJlcXVlc3QtPnJpbmdidWY7Cj4gKwkJc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSBwYXJhbXMtPnJlcXVlc3QtPnJpbmc7Cj4KPiAg IAkJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihwYXJhbXMtPnJlcXVlc3QsIDQpOwo+ICAgCQlpZiAo cmV0KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gaW5kZXggYWJjNDM5YmUyMDQ5 Li5hNDgzMjliYWY0MzIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+IEBA IC02NjksNyArNjY5LDcgQEAgc3RhdGljIGludCBnZW44X3dyaXRlX3BkcChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkJCSAgdW5zaWduZWQgZW50cnksCj4gICAJCQkgIGRt YV9hZGRyX3QgYWRkcikKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0g cmVxLT5yaW5nYnVmOwo+ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJp bmc7Cj4gICAJaW50IHJldDsKPgo+ICAgCUJVR19PTihlbnRyeSA+PSA0KTsKPiBAQCAtMTY2MCw3 ICsxNjYwLDcgQEAgc3RhdGljIHVpbnQzMl90IGdldF9wZF9vZmZzZXQoc3RydWN0IGk5MTVfaHdf cHBndHQgKnBwZ3R0KQo+ICAgc3RhdGljIGludCBoc3dfbW1fc3dpdGNoKHN0cnVjdCBpOTE1X2h3 X3BwZ3R0ICpwcGd0dCwKPiAgIAkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkK PiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nYnVmOwo+ ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJaW50IHJl dDsKPgo+ICAgCS8qIE5COiBUTEJzIG11c3QgYmUgZmx1c2hlZCBhbmQgaW52YWxpZGF0ZWQgYmVm b3JlIGEgc3dpdGNoICovCj4gQEAgLTE2ODgsNyArMTY4OCw3IEBAIHN0YXRpYyBpbnQgaHN3X21t X3N3aXRjaChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCj4gICBzdGF0aWMgaW50IGdlbjdf bW1fc3dpdGNoKHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCwKPiAgIAkJCSAgc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZyA9IHJlcS0+cmluZ2J1ZjsKPiArCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5n ID0gcmVxLT5yaW5nOwo+ICAgCWludCByZXQ7Cj4KPiAgIAkvKiBOQjogVExCcyBtdXN0IGJlIGZs dXNoZWQgYW5kIGludmFsaWRhdGVkIGJlZm9yZSBhIHN3aXRjaCAqLwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKPiBpbmRleCA2MGEzYTM0M2IzYTguLjBmNDE1NjA2YTM4 MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKPiBAQCAtMTcw LDcgKzE3MCw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfcmV0aXJlKHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKPiAgIAkgKiBOb3RlIHRoaXMgcmVxdWlyZXMg dGhhdCB3ZSBhcmUgYWx3YXlzIGNhbGxlZCBpbiByZXF1ZXN0Cj4gICAJICogY29tcGxldGlvbiBv cmRlci4KPiAgIAkgKi8KPiAtCXJlcXVlc3QtPnJpbmdidWYtPmxhc3RfcmV0aXJlZF9oZWFkID0g cmVxdWVzdC0+cG9zdGZpeDsKPiArCXJlcXVlc3QtPnJpbmctPmxhc3RfcmV0aXJlZF9oZWFkID0g cmVxdWVzdC0+cG9zdGZpeDsKPgo+ICAgCWk5MTVfZ2VtX3JlcXVlc3RfcmVtb3ZlX2Zyb21fY2xp ZW50KHJlcXVlc3QpOwo+Cj4gQEAgLTQyNSw3ICs0MjUsNyBAQCB2b2lkIF9faTkxNV9hZGRfcmVx dWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCj4gICAJCQlib29sIGZs dXNoX2NhY2hlcykKPiAgIHsKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4g LQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZjsKPiArCXN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nOwo+ICAgCXUzMiByZXF1ZXN0X3N0YXJ0Owo+ICAgCXUzMiByZXNlcnZlZF90 YWlsOwo+ICAgCWludCByZXQ7Cj4gQEAgLTQzNCwxNCArNDM0LDE0IEBAIHZvaWQgX19pOTE1X2Fk ZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKPiAgIAkJcmV0 dXJuOwo+Cj4gICAJZW5naW5lID0gcmVxdWVzdC0+ZW5naW5lOwo+IC0JcmluZ2J1ZiA9IHJlcXVl c3QtPnJpbmdidWY7Cj4gKwlyaW5nID0gcmVxdWVzdC0+cmluZzsKPgo+ICAgCS8qCj4gICAJICog VG8gZW5zdXJlIHRoYXQgdGhpcyBjYWxsIHdpbGwgbm90IGZhaWwsIHNwYWNlIGZvciBpdHMgZW1p c3Npb25zCj4gICAJICogc2hvdWxkIGFscmVhZHkgaGF2ZSBiZWVuIHJlc2VydmVkIGluIHRoZSBy aW5nIGJ1ZmZlci4gTGV0IHRoZSByaW5nCj4gICAJICoga25vdyB0aGF0IGl0IGlzIHRpbWUgdG8g dXNlIHRoYXQgc3BhY2UgdXAuCj4gICAJICovCj4gLQlyZXF1ZXN0X3N0YXJ0ID0gaW50ZWxfcmlu Z19nZXRfdGFpbChyaW5nYnVmKTsKPiArCXJlcXVlc3Rfc3RhcnQgPSBpbnRlbF9yaW5nX2dldF90 YWlsKHJpbmcpOwo+ICAgCXJlc2VydmVkX3RhaWwgPSByZXF1ZXN0LT5yZXNlcnZlZF9zcGFjZTsK PiAgIAlyZXF1ZXN0LT5yZXNlcnZlZF9zcGFjZSA9IDA7Cj4KPiBAQCAtNDg4LDIxICs0ODgsMjEg QEAgdm9pZCBfX2k5MTVfYWRkX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXF1ZXN0LAo+ICAgCSAqIEdQVSBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0LCB3ZSBuZXZlciBvdmVy LWVzdGltYXRlIHRoZQo+ICAgCSAqIHBvc2l0aW9uIG9mIHRoZSBoZWFkLgo+ICAgCSAqLwo+IC0J cmVxdWVzdC0+cG9zdGZpeCA9IGludGVsX3JpbmdfZ2V0X3RhaWwocmluZ2J1Zik7Cj4gKwlyZXF1 ZXN0LT5wb3N0Zml4ID0gaW50ZWxfcmluZ19nZXRfdGFpbChyaW5nKTsKPgo+ICAgCWlmIChpOTE1 LmVuYWJsZV9leGVjbGlzdHMpIHsKPiAgIAkJcmV0ID0gZW5naW5lLT5lbWl0X3JlcXVlc3QocmVx dWVzdCk7Cj4gICAJfSBlbHNlIHsKPiAgIAkJcmV0ID0gZW5naW5lLT5hZGRfcmVxdWVzdChyZXF1 ZXN0KTsKPgo+IC0JCXJlcXVlc3QtPnRhaWwgPSBpbnRlbF9yaW5nX2dldF90YWlsKHJpbmdidWYp Owo+ICsJCXJlcXVlc3QtPnRhaWwgPSBpbnRlbF9yaW5nX2dldF90YWlsKHJpbmcpOwo+ICAgCX0K PiAgIAkvKiBOb3QgYWxsb3dlZCB0byBmYWlsISAqLwo+ICAgCVdBUk4ocmV0LCAiZW1pdHxhZGRf cmVxdWVzdCBmYWlsZWQ6ICVkIVxuIiwgcmV0KTsKPiAgIAkvKiBTYW5pdHkgY2hlY2sgdGhhdCB0 aGUgcmVzZXJ2ZWQgc2l6ZSB3YXMgbGFyZ2UgZW5vdWdoLiAqLwo+IC0JcmV0ID0gaW50ZWxfcmlu Z19nZXRfdGFpbChyaW5nYnVmKSAtIHJlcXVlc3Rfc3RhcnQ7Cj4gKwlyZXQgPSBpbnRlbF9yaW5n X2dldF90YWlsKHJpbmcpIC0gcmVxdWVzdF9zdGFydDsKPiAgIAlpZiAocmV0IDwgMCkKPiAtCQly ZXQgKz0gcmluZ2J1Zi0+c2l6ZTsKPiArCQlyZXQgKz0gcmluZy0+c2l6ZTsKPiAgIAlXQVJOX09O Q0UocmV0ID4gcmVzZXJ2ZWRfdGFpbCwKPiAgIAkJICAiTm90IGVub3VnaCBzcGFjZSByZXNlcnZl ZCAoJWQgYnl0ZXMpICIKPiAgIAkJICAiZm9yIGFkZGluZyB0aGUgcmVxdWVzdCAoJWQgYnl0ZXMp XG4iLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0 LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmgKPiBpbmRleCBlMDZl ODFmNDU5ZGYuLjY4ODY4ZDgyNWQ5ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9yZXF1ZXN0LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9yZXF1ZXN0LmgKPiBAQCAtNjEsNyArNjEsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3Qgewo+ICAgCSAqLwo+ICAgCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7Cj4gICAJc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmdidWY7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZzsKPiAgIAlzdHJ1Y3Qg aW50ZWxfc2lnbmFsX25vZGUgc2lnbmFsaW5nOwo+Cj4gICAJLyoqIEdFTSBzZXF1ZW5jZSBudW1i ZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcmV2aW91cyByZXF1ZXN0LAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9ncHVfZXJyb3IuYwo+IGluZGV4IDRkMzljNzI4NDYwNS4uMDk5OTdjNmFkY2QyIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCj4gQEAgLTEwOTEsNyArMTA5 MSw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3JlY29yZF9yaW5ncyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAJCXJlcXVlc3QgPSBpOTE1X2dlbV9maW5kX2FjdGl2ZV9y ZXF1ZXN0KGVuZ2luZSk7Cj4gICAJCWlmIChyZXF1ZXN0KSB7Cj4gICAJCQlzdHJ1Y3QgaTkxNV9h ZGRyZXNzX3NwYWNlICp2bTsKPiAtCQkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJiOwo+ICsJ CQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZzsKPgo+ICAgCQkJdm0gPSByZXF1ZXN0LT5j dHgtPnBwZ3R0ID8KPiAgIAkJCQkmcmVxdWVzdC0+Y3R4LT5wcGd0dC0+YmFzZSA6ICZnZ3R0LT5i YXNlOwo+IEBAIC0xMTA4LDcgKzExMDgsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZWNvcmRf cmluZ3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgCQkJaWYgKEhBU19C Uk9LRU5fQ1NfVExCKGRldl9wcml2KSkKPiAgIAkJCQllcnJvci0+cmluZ1tpXS53YV9iYXRjaGJ1 ZmZlciA9Cj4gICAJCQkJCWk5MTVfZXJyb3JfZ2d0dF9vYmplY3RfY3JlYXRlKGRldl9wcml2LAo+ IC0JCQkJCQkJICAgICBlbmdpbmUtPnNjcmF0Y2gub2JqKTsKPiArCQkJCQkJCQkgICAgICBlbmdp bmUtPnNjcmF0Y2gub2JqKTsKPgo+ICAgCQkJaWYgKHJlcXVlc3QtPnBpZCkgewo+ICAgCQkJCXN0 cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKPiBAQCAtMTEyNSwyMyArMTEyNSwyMSBAQCBzdGF0aWMg dm9pZCBpOTE1X2dlbV9yZWNvcmRfcmluZ3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+ICAgCQkJZXJyb3ItPnNpbXVsYXRlZCB8PQo+ICAgCQkJCXJlcXVlc3QtPmN0eC0+Zmxh Z3MgJiBDT05URVhUX05PX0VSUk9SX0NBUFRVUkU7Cj4KPiAtCQkJcmIgPSByZXF1ZXN0LT5yaW5n YnVmOwo+IC0JCQllcnJvci0+cmluZ1tpXS5jcHVfcmluZ19oZWFkID0gcmItPmhlYWQ7Cj4gLQkJ CWVycm9yLT5yaW5nW2ldLmNwdV9yaW5nX3RhaWwgPSByYi0+dGFpbDsKPiArCQkJcmluZyA9IHJl cXVlc3QtPnJpbmc7Cj4gKwkJCWVycm9yLT5yaW5nW2ldLmNwdV9yaW5nX2hlYWQgPSByaW5nLT5o ZWFkOwo+ICsJCQllcnJvci0+cmluZ1tpXS5jcHVfcmluZ190YWlsID0gcmluZy0+dGFpbDsKPiAg IAkJCWVycm9yLT5yaW5nW2ldLnJpbmdidWZmZXIgPQo+ICAgCQkJCWk5MTVfZXJyb3JfZ2d0dF9v YmplY3RfY3JlYXRlKGRldl9wcml2LAo+IC0JCQkJCQkJICAgICAgcmItPm9iaik7Cj4gKwkJCQkJ CQkgICAgICByaW5nLT5vYmopOwo+ICAgCQl9Cj4KPiAgIAkJZXJyb3ItPnJpbmdbaV0uaHdzX3Bh Z2UgPQo+ICAgCQkJaTkxNV9lcnJvcl9nZ3R0X29iamVjdF9jcmVhdGUoZGV2X3ByaXYsCj4gICAJ CQkJCQkgICAgICBlbmdpbmUtPnN0YXR1c19wYWdlLm9iaik7Cj4KPiAtCQlpZiAoZW5naW5lLT53 YV9jdHgub2JqKSB7Cj4gLQkJCWVycm9yLT5yaW5nW2ldLndhX2N0eCA9Cj4gLQkJCQlpOTE1X2Vy cm9yX2dndHRfb2JqZWN0X2NyZWF0ZShkZXZfcHJpdiwKPiAtCQkJCQkJCSAgICAgIGVuZ2luZS0+ d2FfY3R4Lm9iaik7Cj4gLQkJfQo+ICsJCWVycm9yLT5yaW5nW2ldLndhX2N0eCA9Cj4gKwkJCWk5 MTVfZXJyb3JfZ2d0dF9vYmplY3RfY3JlYXRlKGRldl9wcml2LAo+ICsJCQkJCQkgICAgICBlbmdp bmUtPndhX2N0eC5vYmopOwo+Cj4gICAJCWk5MTVfZ2VtX3JlY29yZF9hY3RpdmVfY29udGV4dChl bmdpbmUsIGVycm9yLCAmZXJyb3ItPnJpbmdbaV0pOwo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+IGluZGV4IGQxOGVkMzJlNmEzMS4uZDE5MzI4NDBhMjY4IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xMTEyMyw3ICsxMTEyMyw3IEBAIHN0 YXRpYyBpbnQgaW50ZWxfZ2VuMl9xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g ICAJCQkJIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCQkJCSB1aW50MzJf dCBmbGFncykKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5y aW5nYnVmOwo+ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4g ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ ICAgCXUzMiBmbGlwX21hc2s7Cj4gICAJaW50IHJldDsKPiBAQCAtMTExNTcsNyArMTExNTcsNyBA QCBzdGF0aWMgaW50IGludGVsX2dlbjNfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+ICAgCQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkJCQkgdWlu dDMyX3QgZmxhZ3MpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJl cS0+cmluZ2J1ZjsKPiArCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5n Owo+ICAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj KTsKPiAgIAl1MzIgZmxpcF9tYXNrOwo+ICAgCWludCByZXQ7Cj4gQEAgLTExMTg4LDcgKzExMTg4 LDcgQEAgc3RhdGljIGludCBpbnRlbF9nZW40X3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiAgIAkJCQkgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCQkJ IHVpbnQzMl90IGZsYWdzKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcg PSByZXEtPnJpbmdidWY7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+ cmluZzsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRl dik7Cj4gICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNy dGMpOwo+ICAgCXVpbnQzMl90IHBmLCBwaXBlc3JjOwo+IEBAIC0xMTIyNiw3ICsxMTIyNiw3IEBA IHN0YXRpYyBpbnQgaW50ZWxfZ2VuNl9xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gICAJCQkJIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCQkJCSB1aW50 MzJfdCBmbGFncykKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVx LT5yaW5nYnVmOwo+ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7 Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ ICAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsK PiAgIAl1aW50MzJfdCBwZiwgcGlwZXNyYzsKPiBAQCAtMTEyNjEsNyArMTEyNjEsNyBAQCBzdGF0 aWMgaW50IGludGVsX2dlbjdfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAg CQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkJCQkgdWludDMyX3Qg ZmxhZ3MpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmlu Z2J1ZjsKPiArCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOwo+ICAg CXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAg IAl1aW50MzJfdCBwbGFuZV9iaXQgPSAwOwo+ICAgCWludCBsZW4sIHJldDsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuYwo+IGluZGV4IDhiZjJlYTVhMmRlMy4uYzM1NDJlYjMzOGNhIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBAQCAtNzE0LDcgKzcxNCw3IEBAIGludCBpbnRlbF9s b2dpY2FsX3JpbmdfYWxsb2NfcmVxdWVzdF9leHRyYXMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXF1ZXN0Cj4gICAJCQlyZXR1cm4gcmV0Owo+ICAgCX0KPgo+IC0JcmVxdWVzdC0+cmlu Z2J1ZiA9IGNlLT5yaW5nYnVmOwo+ICsJcmVxdWVzdC0+cmluZyA9IGNlLT5yaW5nYnVmOwo+Cj4g ICAJaWYgKGk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uKSB7Cj4gICAJCS8qCj4gQEAgLTc3MCwx MSArNzcwLDExIEBAIGVycl91bnBpbjoKPiAgIHN0YXRpYyBpbnQKPiAgIGludGVsX2xvZ2ljYWxf cmluZ19hZHZhbmNlX2FuZF9zdWJtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1 ZXN0KQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSByZXF1ZXN0 LT5yaW5nYnVmOwo+ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXF1ZXN0LT5y aW5nOwo+ICAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcXVlc3QtPmVuZ2lu ZTsKPgo+IC0JaW50ZWxfcmluZ19hZHZhbmNlKHJpbmdidWYpOwo+IC0JcmVxdWVzdC0+dGFpbCA9 IHJpbmdidWYtPnRhaWw7Cj4gKwlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7Cj4gKwlyZXF1ZXN0 LT50YWlsID0gcmluZy0+dGFpbDsKPgo+ICAgCS8qCj4gICAJICogSGVyZSB3ZSBhZGQgdHdvIGV4 dHJhIE5PT1BzIGFzIHBhZGRpbmcgdG8gYXZvaWQKPiBAQCAtNzgyLDkgKzc4Miw5IEBAIGludGVs X2xvZ2ljYWxfcmluZ19hZHZhbmNlX2FuZF9zdWJtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXF1ZXN0KQo+ICAgCSAqCj4gICAJICogQ2FsbGVyIG11c3QgcmVzZXJ2ZSBXQV9UQUlM X0RXT1JEUyBmb3IgdXMhCj4gICAJICovCj4gLQlpbnRlbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlf Tk9PUCk7Cj4gLQlpbnRlbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlfTk9PUCk7Cj4gLQlpbnRlbF9y aW5nX2FkdmFuY2UocmluZ2J1Zik7Cj4gKwlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTk9PUCk7 Cj4gKwlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTk9PUCk7Cj4gKwlpbnRlbF9yaW5nX2FkdmFu Y2UocmluZyk7Cj4KPiAgIAkvKiBXZSBrZWVwIHRoZSBwcmV2aW91cyBjb250ZXh0IGFsaXZlIHVu dGlsIHdlIHJldGlyZSB0aGUgZm9sbG93aW5nCj4gICAJICogcmVxdWVzdC4gVGhpcyBlbnN1cmVz IHRoYXQgYW55IHRoZSBjb250ZXh0IG9iamVjdCBpcyBzdGlsbCBwaW5uZWQKPiBAQCAtODIxLDcg KzgyMSw3IEBAIGludCBpbnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbihzdHJ1Y3QgaTkxNV9leGVj YnVmZmVyX3BhcmFtcyAqcGFyYW1zLAo+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICAgICAgICpkZXYg PSBwYXJhbXMtPmRldjsKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBwYXJh bXMtPmVuZ2luZTsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHBhcmFtcy0+ Y3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucmluZ2J1ZjsKPiArCXN0cnVjdCBpbnRlbF9yaW5nYnVm ZmVyICpyaW5nID0gcGFyYW1zLT5yZXF1ZXN0LT5yaW5nOwo+ICAgCXU2NCBleGVjX3N0YXJ0Owo+ ICAgCWludCBpbnN0cF9tb2RlOwo+ICAgCXUzMiBpbnN0cF9tYXNrOwo+IEBAIC04MzMsNyArODMz LDcgQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZm ZXJfcGFyYW1zICpwYXJhbXMsCj4gICAJY2FzZSBJOTE1X0VYRUNfQ09OU1RBTlRTX1JFTF9HRU5F UkFMOgo+ICAgCWNhc2UgSTkxNV9FWEVDX0NPTlNUQU5UU19BQlNPTFVURToKPiAgIAljYXNlIEk5 MTVfRVhFQ19DT05TVEFOVFNfUkVMX1NVUkZBQ0U6Cj4gLQkJaWYgKGluc3RwX21vZGUgIT0gMCAm JiBlbmdpbmUgIT0gJmRldl9wcml2LT5lbmdpbmVbUkNTXSkgewo+ICsJCWlmIChpbnN0cF9tb2Rl ICE9IDAgJiYgZW5naW5lLT5pZCAhPSBSQ1MpIHsKPiAgIAkJCURSTV9ERUJVRygibm9uLTAgcmVs IGNvbnN0YW50cyBtb2RlIG9uIG5vbi1SQ1NcbiIpOwo+ICAgCQkJcmV0dXJuIC1FSU5WQUw7Cj4g ICAJCX0KPiBAQCAtODYyLDE3ICs4NjIsMTcgQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNz aW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCj4gICAJaWYgKHJldCkK PiAgIAkJcmV0dXJuIHJldDsKPgo+IC0JaWYgKGVuZ2luZSA9PSAmZGV2X3ByaXYtPmVuZ2luZVtS Q1NdICYmCj4gKwlpZiAoZW5naW5lLT5pZCA9PSBSQ1MgJiYKPiAgIAkgICAgaW5zdHBfbW9kZSAh PSBkZXZfcHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21vZGUpIHsKPiAgIAkJcmV0ID0gaW50ZWxf cmluZ19iZWdpbihwYXJhbXMtPnJlcXVlc3QsIDQpOwo+ICAgCQlpZiAocmV0KQo+ICAgCQkJcmV0 dXJuIHJldDsKPgo+IC0JCWludGVsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9OT09QKTsKPiAtCQlp bnRlbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSkpOwo+IC0JCWlu dGVsX3JpbmdfZW1pdF9yZWcocmluZ2J1ZiwgSU5TVFBNKTsKPiAtCQlpbnRlbF9yaW5nX2VtaXQo cmluZ2J1ZiwgaW5zdHBfbWFzayA8PCAxNiB8IGluc3RwX21vZGUpOwo+IC0JCWludGVsX3Jpbmdf YWR2YW5jZShyaW5nYnVmKTsKPiArCQlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTk9PUCk7Cj4g KwkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX0xPQURfUkVHSVNURVJfSU1NKDEpKTsKPiArCQlp bnRlbF9yaW5nX2VtaXRfcmVnKHJpbmcsIElOU1RQTSk7Cj4gKwkJaW50ZWxfcmluZ19lbWl0KHJp bmcsIGluc3RwX21hc2sgPDwgMTYgfCBpbnN0cF9tb2RlKTsKPiArCQlpbnRlbF9yaW5nX2FkdmFu Y2UocmluZyk7Cj4KPiAgIAkJZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2RlID0gaW5z dHBfbW9kZTsKPiAgIAl9Cj4gQEAgLTEwMzAsNyArMTAzMCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxf bG9naWNhbF9yaW5nX3dvcmthcm91bmRzX2VtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEpCj4gICB7Cj4gICAJaW50IHJldCwgaTsKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUgPSByZXEtPmVuZ2luZTsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5n YnVmID0gcmVxLT5yaW5nYnVmOwo+ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSBy ZXEtPnJpbmc7Cj4gICAJc3RydWN0IGk5MTVfd29ya2Fyb3VuZHMgKncgPSAmcmVxLT5pOTE1LT53 b3JrYXJvdW5kczsKPgo+ICAgCWlmICh3LT5jb3VudCA9PSAwKQo+IEBAIC0xMDQ1LDE0ICsxMDQ1 LDE0IEBAIHN0YXRpYyBpbnQgaW50ZWxfbG9naWNhbF9yaW5nX3dvcmthcm91bmRzX2VtaXQoc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJu IHJldDsKPgo+IC0JaW50ZWxfcmluZ19lbWl0KHJpbmdidWYsIE1JX0xPQURfUkVHSVNURVJfSU1N KHctPmNvdW50KSk7Cj4gKwlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTE9BRF9SRUdJU1RFUl9J TU0ody0+Y291bnQpKTsKPiAgIAlmb3IgKGkgPSAwOyBpIDwgdy0+Y291bnQ7IGkrKykgewo+IC0J CWludGVsX3JpbmdfZW1pdF9yZWcocmluZ2J1Ziwgdy0+cmVnW2ldLmFkZHIpOwo+IC0JCWludGVs X3JpbmdfZW1pdChyaW5nYnVmLCB3LT5yZWdbaV0udmFsdWUpOwo+ICsJCWludGVsX3JpbmdfZW1p dF9yZWcocmluZywgdy0+cmVnW2ldLmFkZHIpOwo+ICsJCWludGVsX3JpbmdfZW1pdChyaW5nLCB3 LT5yZWdbaV0udmFsdWUpOwo+ICAgCX0KPiAtCWludGVsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9O T09QKTsKPiArCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9OT09QKTsKPgo+IC0JaW50ZWxfcmlu Z19hZHZhbmNlKHJpbmdidWYpOwo+ICsJaW50ZWxfcmluZ19hZHZhbmNlKHJpbmcpOwo+Cj4gICAJ ZW5naW5lLT5ncHVfY2FjaGVzX2RpcnR5ID0gdHJ1ZTsKPiAgIAlyZXQgPSBsb2dpY2FsX3Jpbmdf Zmx1c2hfYWxsX2NhY2hlcyhyZXEpOwo+IEBAIC0xNTQ2LDcgKzE1NDYsNyBAQCBzdGF0aWMgaW50 IGdlbjlfaW5pdF9yZW5kZXJfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4g ICBzdGF0aWMgaW50IGludGVsX2xvZ2ljYWxfcmluZ19lbWl0X3BkcHMoc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXEpCj4gICB7Cj4gICAJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0 ID0gcmVxLT5jdHgtPnBwZ3R0Owo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSBy ZXEtPnJpbmdidWY7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmlu ZzsKPiAgIAljb25zdCBpbnQgbnVtX2xyaV9jbWRzID0gR0VOOF9MRUdBQ1lfUERQRVMgKiAyOwo+ ICAgCWludCBpLCByZXQ7Cj4KPiBAQCAtMTU3Myw3ICsxNTczLDcgQEAgc3RhdGljIGludCBpbnRl bF9sb2dpY2FsX3JpbmdfZW1pdF9wZHBzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx KQo+ICAgc3RhdGljIGludCBnZW44X2VtaXRfYmJfc3RhcnQoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXEsCj4gICAJCQkgICAgICB1NjQgb2Zmc2V0LCB1bnNpZ25lZCBkaXNwYXRjaF9m bGFncykKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5n YnVmOwo+ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJ Ym9vbCBwcGd0dCA9ICEoZGlzcGF0Y2hfZmxhZ3MgJiBJOTE1X0RJU1BBVENIX1NFQ1VSRSk7Cj4g ICAJaW50IHJldDsKPgo+IEBAIC0xNjMwLDggKzE2MzAsNyBAQCBzdGF0aWMgaW50IGdlbjhfZW1p dF9mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCj4gICAJCQkgICB1 MzIgaW52YWxpZGF0ZV9kb21haW5zLAo+ICAgCQkJICAgdTMyIHVudXNlZCkKPiAgIHsKPiAtCXN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxdWVzdC0+cmluZ2J1ZjsKPiAtCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJpbmctPmVuZ2luZTsKPiArCXN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICpyaW5nID0gcmVxdWVzdC0+cmluZzsKPiAgIAl1aW50MzJfdCBjbWQ7Cj4g ICAJaW50IHJldDsKPgo+IEBAIC0xNjUwLDcgKzE2NDksNyBAQCBzdGF0aWMgaW50IGdlbjhfZW1p dF9mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCj4KPiAgIAlpZiAo aW52YWxpZGF0ZV9kb21haW5zICYgSTkxNV9HRU1fR1BVX0RPTUFJTlMpIHsKPiAgIAkJY21kIHw9 IE1JX0lOVkFMSURBVEVfVExCOwo+IC0JCWlmIChlbmdpbmUtPmlkID09IFZDUykKPiArCQlpZiAo cmVxdWVzdC0+ZW5naW5lLT5pZCA9PSBWQ1MpCj4gICAJCQljbWQgfD0gTUlfSU5WQUxJREFURV9C U0Q7Cj4gICAJfQo+Cj4gQEAgLTE2NjksNyArMTY2OCw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0 X2ZsdXNoX3JlbmRlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCj4gICAJ CQkJICB1MzIgaW52YWxpZGF0ZV9kb21haW5zLAo+ICAgCQkJCSAgdTMyIGZsdXNoX2RvbWFpbnMp Cj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcXVlc3QtPnJpbmdi dWY7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcXVlc3QtPnJpbmc7Cj4g ICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxdWVzdC0+ZW5naW5lOwo+ICAg CXUzMiBzY3JhdGNoX2FkZHIgPSBlbmdpbmUtPnNjcmF0Y2guZ3R0X29mZnNldCArIDIgKiBDQUNI RUxJTkVfQllURVM7Cj4gICAJYm9vbCB2Zl9mbHVzaF93YSA9IGZhbHNlLCBkY19mbHVzaF93YSA9 IGZhbHNlOwo+IEBAIC0xNzgzLDcgKzE3ODIsNyBAQCBzdGF0aWMgdm9pZCBieHRfYV9zZXFub19i YXJyaWVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPgo+ICAgc3RhdGljIGludCBn ZW44X2VtaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4g ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcXVlc3QtPnJpbmdidWY7 Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcXVlc3QtPnJpbmc7Cj4gICAJ aW50IHJldDsKPgo+ICAgCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxdWVzdCwgNiArIFdBX1RB SUxfRFdPUkRTKTsKPiBAQCAtMTgwNiw3ICsxODA1LDcgQEAgc3RhdGljIGludCBnZW44X2VtaXRf cmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4KPiAgIHN0YXRp YyBpbnQgZ2VuOF9lbWl0X3JlcXVlc3RfcmVuZGVyKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxdWVzdCkKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVx dWVzdC0+cmluZ2J1ZjsKPiArCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxdWVz dC0+cmluZzsKPiAgIAlpbnQgcmV0Owo+Cj4gICAJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXF1 ZXN0LCA4ICsgV0FfVEFJTF9EV09SRFMpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9tb2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tb2NzLmMKPiBp bmRleCAyNzQzNDI0ZjI3NDYuLmZlNjNjN2U3OWZiMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9tb2NzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9tb2NzLmMKPiBAQCAtMjc2LDcgKzI3Niw3IEBAIGludCBpbnRlbF9tb2NzX2luaXRfZW5naW5l KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIHN0YXRpYyBpbnQgZW1pdF9tb2Nz X2NvbnRyb2xfdGFibGUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCQkJ ICAgY29uc3Qgc3RydWN0IGRybV9pOTE1X21vY3NfdGFibGUgKnRhYmxlKQo+ICAgewo+IC0Jc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSByZXEtPnJpbmdidWY7Cj4gKwlzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiAgIAllbnVtIGludGVsX2VuZ2lu ZV9pZCBlbmdpbmUgPSByZXEtPmVuZ2luZS0+aWQ7Cj4gICAJdW5zaWduZWQgaW50IGluZGV4Owo+ ICAgCWludCByZXQ7Cj4gQEAgLTI4OCwxMSArMjg4LDExIEBAIHN0YXRpYyBpbnQgZW1pdF9tb2Nz X2NvbnRyb2xfdGFibGUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJaWYg KHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+IC0JaW50ZWxfcmluZ19lbWl0KHJpbmdidWYsIE1J X0xPQURfUkVHSVNURVJfSU1NKEdFTjlfTlVNX01PQ1NfRU5UUklFUykpOwo+ICsJaW50ZWxfcmlu Z19lbWl0KHJpbmcsIE1JX0xPQURfUkVHSVNURVJfSU1NKEdFTjlfTlVNX01PQ1NfRU5UUklFUykp Owo+Cj4gICAJZm9yIChpbmRleCA9IDA7IGluZGV4IDwgdGFibGUtPnNpemU7IGluZGV4KyspIHsK PiAtCQlpbnRlbF9yaW5nX2VtaXRfcmVnKHJpbmdidWYsIG1vY3NfcmVnaXN0ZXIoZW5naW5lLCBp bmRleCkpOwo+IC0JCWludGVsX3JpbmdfZW1pdChyaW5nYnVmLCB0YWJsZS0+dGFibGVbaW5kZXhd LmNvbnRyb2xfdmFsdWUpOwo+ICsJCWludGVsX3JpbmdfZW1pdF9yZWcocmluZywgbW9jc19yZWdp c3RlcihlbmdpbmUsIGluZGV4KSk7Cj4gKwkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIHRhYmxlLT50 YWJsZVtpbmRleF0uY29udHJvbF92YWx1ZSk7Cj4gICAJfQo+Cj4gICAJLyoKPiBAQCAtMzA0LDEy ICszMDQsMTIgQEAgc3RhdGljIGludCBlbWl0X21vY3NfY29udHJvbF90YWJsZShzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkgKiB0aGF0IHZhbHVlIHRvIGFsbCB0aGUgdXNl ZCBlbnRyaWVzLgo+ICAgCSAqLwo+ICAgCWZvciAoOyBpbmRleCA8IEdFTjlfTlVNX01PQ1NfRU5U UklFUzsgaW5kZXgrKykgewo+IC0JCWludGVsX3JpbmdfZW1pdF9yZWcocmluZ2J1ZiwgbW9jc19y ZWdpc3RlcihlbmdpbmUsIGluZGV4KSk7Cj4gLQkJaW50ZWxfcmluZ19lbWl0KHJpbmdidWYsIHRh YmxlLT50YWJsZVswXS5jb250cm9sX3ZhbHVlKTsKPiArCQlpbnRlbF9yaW5nX2VtaXRfcmVnKHJp bmcsIG1vY3NfcmVnaXN0ZXIoZW5naW5lLCBpbmRleCkpOwo+ICsJCWludGVsX3JpbmdfZW1pdChy aW5nLCB0YWJsZS0+dGFibGVbMF0uY29udHJvbF92YWx1ZSk7Cj4gICAJfQo+Cj4gLQlpbnRlbF9y aW5nX2VtaXQocmluZ2J1ZiwgTUlfTk9PUCk7Cj4gLQlpbnRlbF9yaW5nX2FkdmFuY2UocmluZ2J1 Zik7Cj4gKwlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTk9PUCk7Cj4gKwlpbnRlbF9yaW5nX2Fk dmFuY2UocmluZyk7Cj4KPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiBAQCAtMzM2LDcgKzMzNiw3IEBA IHN0YXRpYyBpbmxpbmUgdTMyIGwzY2NfY29tYmluZShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfbW9j c190YWJsZSAqdGFibGUsCj4gICBzdGF0aWMgaW50IGVtaXRfbW9jc19sM2NjX3RhYmxlKHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCQkJCWNvbnN0IHN0cnVjdCBkcm1faTkx NV9tb2NzX3RhYmxlICp0YWJsZSkKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpy aW5nYnVmID0gcmVxLT5yaW5nYnVmOwo+ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcg PSByZXEtPnJpbmc7Cj4gICAJdW5zaWduZWQgaW50IGk7Cj4gICAJaW50IHJldDsKPgo+IEBAIC0z NDcsMTggKzM0NywxOCBAQCBzdGF0aWMgaW50IGVtaXRfbW9jc19sM2NjX3RhYmxlKHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7 Cj4KPiAtCWludGVsX3JpbmdfZW1pdChyaW5nYnVmLAo+ICsJaW50ZWxfcmluZ19lbWl0KHJpbmcs Cj4gICAJCQlNSV9MT0FEX1JFR0lTVEVSX0lNTShHRU45X05VTV9NT0NTX0VOVFJJRVMgLyAyKSk7 Cj4KPiAgIAlmb3IgKGkgPSAwOyBpIDwgdGFibGUtPnNpemUvMjsgaSsrKSB7Cj4gLQkJaW50ZWxf cmluZ19lbWl0X3JlZyhyaW5nYnVmLCBHRU45X0xOQ0ZDTU9DUyhpKSk7Cj4gLQkJaW50ZWxfcmlu Z19lbWl0KHJpbmdidWYsIGwzY2NfY29tYmluZSh0YWJsZSwgMippLCAyKmkrMSkpOwo+ICsJCWlu dGVsX3JpbmdfZW1pdF9yZWcocmluZywgR0VOOV9MTkNGQ01PQ1MoaSkpOwo+ICsJCWludGVsX3Jp bmdfZW1pdChyaW5nLCBsM2NjX2NvbWJpbmUodGFibGUsIDIqaSwgMippKzEpKTsKPiAgIAl9Cj4K PiAgIAlpZiAodGFibGUtPnNpemUgJiAweDAxKSB7Cj4gICAJCS8qIE9kZCB0YWJsZSBzaXplIC0g MSBsZWZ0IG92ZXIgKi8KPiAtCQlpbnRlbF9yaW5nX2VtaXRfcmVnKHJpbmdidWYsIEdFTjlfTE5D RkNNT0NTKGkpKTsKPiAtCQlpbnRlbF9yaW5nX2VtaXQocmluZ2J1ZiwgbDNjY19jb21iaW5lKHRh YmxlLCAyKmksIDApKTsKPiArCQlpbnRlbF9yaW5nX2VtaXRfcmVnKHJpbmcsIEdFTjlfTE5DRkNN T0NTKGkpKTsKPiArCQlpbnRlbF9yaW5nX2VtaXQocmluZywgbDNjY19jb21iaW5lKHRhYmxlLCAy KmksIDApKTsKPiAgIAkJaSsrOwo+ICAgCX0KPgo+IEBAIC0zNjgsMTIgKzM2OCwxMiBAQCBzdGF0 aWMgaW50IGVtaXRfbW9jc19sM2NjX3RhYmxlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxLAo+ICAgCSAqIHRoZXkgYXJlIHJlc2VydmVkIGJ5IHRoZSBoYXJkd2FyZS4KPiAgIAkgKi8K PiAgIAlmb3IgKDsgaSA8IEdFTjlfTlVNX01PQ1NfRU5UUklFUyAvIDI7IGkrKykgewo+IC0JCWlu dGVsX3JpbmdfZW1pdF9yZWcocmluZ2J1ZiwgR0VOOV9MTkNGQ01PQ1MoaSkpOwo+IC0JCWludGVs X3JpbmdfZW1pdChyaW5nYnVmLCBsM2NjX2NvbWJpbmUodGFibGUsIDAsIDApKTsKPiArCQlpbnRl bF9yaW5nX2VtaXRfcmVnKHJpbmcsIEdFTjlfTE5DRkNNT0NTKGkpKTsKPiArCQlpbnRlbF9yaW5n X2VtaXQocmluZywgbDNjY19jb21iaW5lKHRhYmxlLCAwLCAwKSk7Cj4gICAJfQo+Cj4gLQlpbnRl bF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlfTk9PUCk7Cj4gLQlpbnRlbF9yaW5nX2FkdmFuY2Uocmlu Z2J1Zik7Cj4gKwlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTk9PUCk7Cj4gKwlpbnRlbF9yaW5n X2FkdmFuY2UocmluZyk7Cj4KPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfb3ZlcmxheS5jCj4gaW5kZXggOTI3MjJlNjE0OTU1Li44NGI4Zjc0YmQxM2MgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jCj4gQEAgLTI1Myw3ICsyNTMsNyBAQCBz dGF0aWMgaW50IGludGVsX292ZXJsYXlfb24oc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXkp Cj4KPiAgIAlvdmVybGF5LT5hY3RpdmUgPSB0cnVlOwo+Cj4gLQlyaW5nID0gcmVxLT5yaW5nYnVm Owo+ICsJcmluZyA9IHJlcS0+cmluZzsKPiAgIAlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfT1ZF UkxBWV9GTElQIHwgTUlfT1ZFUkxBWV9PTik7Cj4gICAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIG92 ZXJsYXktPmZsaXBfYWRkciB8IE9GQ19VUERBVEUpOwo+ICAgCWludGVsX3JpbmdfZW1pdChyaW5n LCBNSV9XQUlUX0ZPUl9FVkVOVCB8IE1JX1dBSVRfRk9SX09WRVJMQVlfRkxJUCk7Cj4gQEAgLTI5 NSw3ICsyOTUsNyBAQCBzdGF0aWMgaW50IGludGVsX292ZXJsYXlfY29udGludWUoc3RydWN0IGlu dGVsX292ZXJsYXkgKm92ZXJsYXksCj4gICAJCXJldHVybiByZXQ7Cj4gICAJfQo+Cj4gLQlyaW5n ID0gcmVxLT5yaW5nYnVmOwo+ICsJcmluZyA9IHJlcS0+cmluZzsKPiAgIAlpbnRlbF9yaW5nX2Vt aXQocmluZywgTUlfT1ZFUkxBWV9GTElQIHwgTUlfT1ZFUkxBWV9DT05USU5VRSk7Cj4gICAJaW50 ZWxfcmluZ19lbWl0KHJpbmcsIGZsaXBfYWRkcik7Cj4gICAJaW50ZWxfcmluZ19hZHZhbmNlKHJp bmcpOwo+IEBAIC0zNjIsNyArMzYyLDcgQEAgc3RhdGljIGludCBpbnRlbF9vdmVybGF5X29mZihz dHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkKPiAgIAkJcmV0dXJuIHJldDsKPiAgIAl9Cj4K PiAtCXJpbmcgPSByZXEtPnJpbmdidWY7Cj4gKwlyaW5nID0gcmVxLT5yaW5nOwo+ICAgCS8qIHdh aXQgZm9yIG92ZXJsYXkgdG8gZ28gaWRsZSAqLwo+ICAgCWludGVsX3JpbmdfZW1pdChyaW5nLCBN SV9PVkVSTEFZX0ZMSVAgfCBNSV9PVkVSTEFZX0NPTlRJTlVFKTsKPiAgIAlpbnRlbF9yaW5nX2Vt aXQocmluZywgZmxpcF9hZGRyKTsKPiBAQCAtNDM4LDcgKzQzOCw3IEBAIHN0YXRpYyBpbnQgaW50 ZWxfb3ZlcmxheV9yZWxlYXNlX29sZF92aWQoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXkp Cj4gICAJCQlyZXR1cm4gcmV0Owo+ICAgCQl9Cj4KPiAtCQlyaW5nID0gcmVxLT5yaW5nYnVmOwo+ ICsJCXJpbmcgPSByZXEtPnJpbmc7Cj4gICAJCWludGVsX3JpbmdfZW1pdChyaW5nLAo+ICAgCQkJ CU1JX1dBSVRfRk9SX0VWRU5UIHwgTUlfV0FJVF9GT1JfT1ZFUkxBWV9GTElQKTsKPiAgIAkJaW50 ZWxfcmluZ19lbWl0KHJpbmcsIE1JX05PT1ApOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmMKPiBpbmRleCBkYTgxMzRkNDNiMjYuLmFjNTFlNDg4NTA0NiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBAQCAtNzAsNyArNzAsNyBAQCBn ZW4yX3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ ICAgCQkgICAgICAgdTMyCWludmFsaWRhdGVfZG9tYWlucywKPiAgIAkJICAgICAgIHUzMglmbHVz aF9kb21haW5zKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEt PnJpbmdidWY7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsK PiAgIAl1MzIgY21kOwo+ICAgCWludCByZXQ7Cj4KPiBAQCAtOTcsNyArOTcsNyBAQCBnZW40X3Jl bmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCQkg ICAgICAgdTMyCWludmFsaWRhdGVfZG9tYWlucywKPiAgIAkJICAgICAgIHUzMglmbHVzaF9kb21h aW5zKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmdi dWY7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiAgIAl1 MzIgY21kOwo+ICAgCWludCByZXQ7Cj4KPiBAQCAtMTg3LDcgKzE4Nyw3IEBAIGdlbjRfcmVuZGVy X3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICBzdGF0aWMg aW50Cj4gICBpbnRlbF9lbWl0X3Bvc3Rfc3luY19ub256ZXJvX2ZsdXNoKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJp bmcgPSByZXEtPnJpbmdidWY7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJl cS0+cmluZzsKPiAgIAl1MzIgc2NyYXRjaF9hZGRyID0KPiAgIAkJcmVxLT5lbmdpbmUtPnNjcmF0 Y2guZ3R0X29mZnNldCArIDIgKiBDQUNIRUxJTkVfQllURVM7Cj4gICAJaW50IHJldDsKPiBAQCAt MjI0LDcgKzIyNCw3IEBAIHN0YXRpYyBpbnQKPiAgIGdlbjZfcmVuZGVyX3JpbmdfZmx1c2goc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCSAgICAgICB1MzIgaW52YWxpZGF0 ZV9kb21haW5zLCB1MzIgZmx1c2hfZG9tYWlucykKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nID0gcmVxLT5yaW5nYnVmOwo+ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJdTMyIHNjcmF0Y2hfYWRkciA9Cj4gICAJCXJlcS0+ZW5n aW5lLT5zY3JhdGNoLmd0dF9vZmZzZXQgKyAyICogQ0FDSEVMSU5FX0JZVEVTOwo+ICAgCXUzMiBm bGFncyA9IDA7Cj4gQEAgLTI3Nyw3ICsyNzcsNyBAQCBnZW42X3JlbmRlcl9yaW5nX2ZsdXNoKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgc3RhdGljIGludAo+ICAgZ2VuN19y ZW5kZXJfcmluZ19jc19zdGFsbF93YShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkK PiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nYnVmOwo+ ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJaW50IHJl dDsKPgo+ICAgCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCA0KTsKPiBAQCAtMjk5LDcgKzI5 OSw3IEBAIHN0YXRpYyBpbnQKPiAgIGdlbjdfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCSAgICAgICB1MzIgaW52YWxpZGF0ZV9kb21haW5z LCB1MzIgZmx1c2hfZG9tYWlucykKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpy aW5nID0gcmVxLT5yaW5nYnVmOwo+ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSBy ZXEtPnJpbmc7Cj4gICAJdTMyIHNjcmF0Y2hfYWRkciA9Cj4gICAJCXJlcS0+ZW5naW5lLT5zY3Jh dGNoLmd0dF9vZmZzZXQgKyAyICogQ0FDSEVMSU5FX0JZVEVTOwo+ICAgCXUzMiBmbGFncyA9IDA7 Cj4gQEAgLTM2NCw3ICszNjQsNyBAQCBzdGF0aWMgaW50Cj4gICBnZW44X2VtaXRfcGlwZV9jb250 cm9sKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCQkgICAgICAgdTMyIGZs YWdzLCB1MzIgc2NyYXRjaF9hZGRyKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmcgPSByZXEtPnJpbmdidWY7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9 IHJlcS0+cmluZzsKPiAgIAlpbnQgcmV0Owo+Cj4gICAJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihy ZXEsIDYpOwo+IEBAIC02ODAsNyArNjgwLDcgQEAgZXJyOgo+Cj4gICBzdGF0aWMgaW50IGludGVs X3Jpbmdfd29ya2Fyb3VuZHNfZW1pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkK PiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nYnVmOwo+ ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJc3RydWN0 IGk5MTVfd29ya2Fyb3VuZHMgKncgPSAmcmVxLT5pOTE1LT53b3JrYXJvdW5kczsKPiAgIAlpbnQg cmV0LCBpOwo+Cj4gQEAgLTEzMjQsNyArMTMyNCw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9yY3Nfc2ln bmFsKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqc2lnbmFsbGVyX3JlcSwKPiAgIAkJCSAg IHVuc2lnbmVkIGludCBudW1fZHdvcmRzKQo+ICAgewo+ICAgI2RlZmluZSBNQk9YX1VQREFURV9E V09SRFMgOAo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnNpZ25hbGxlciA9IHNpZ25hbGxl cl9yZXEtPnJpbmdidWY7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqc2lnbmFsbGVyID0g c2lnbmFsbGVyX3JlcS0+cmluZzsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBzaWduYWxsZXJfcmVxLT5pOTE1Owo+ICAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKndh aXRlcjsKPiAgIAllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKPiBAQCAtMTM2Niw3ICsxMzY2LDcg QEAgc3RhdGljIGludCBnZW44X3hjc19zaWduYWwoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpzaWduYWxsZXJfcmVxLAo+ICAgCQkJICAgdW5zaWduZWQgaW50IG51bV9kd29yZHMpCj4gICB7 Cj4gICAjZGVmaW5lIE1CT1hfVVBEQVRFX0RXT1JEUyA2Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqc2lnbmFsbGVyID0gc2lnbmFsbGVyX3JlcS0+cmluZ2J1ZjsKPiArCXN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICpzaWduYWxsZXIgPSBzaWduYWxsZXJfcmVxLT5yaW5nOwo+ICAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHNpZ25hbGxlcl9yZXEtPmk5MTU7Cj4gICAJ c3RydWN0IGludGVsX2VuZ2luZV9jcyAqd2FpdGVyOwo+ICAgCWVudW0gaW50ZWxfZW5naW5lX2lk IGlkOwo+IEBAIC0xNDA1LDcgKzE0MDUsNyBAQCBzdGF0aWMgaW50IGdlbjhfeGNzX3NpZ25hbChz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnNpZ25hbGxlcl9yZXEsCj4gICBzdGF0aWMgaW50 IGdlbjZfc2lnbmFsKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqc2lnbmFsbGVyX3JlcSwK PiAgIAkJICAgICAgIHVuc2lnbmVkIGludCBudW1fZHdvcmRzKQo+ICAgewo+IC0Jc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnNpZ25hbGxlciA9IHNpZ25hbGxlcl9yZXEtPnJpbmdidWY7Cj4gKwlz dHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqc2lnbmFsbGVyID0gc2lnbmFsbGVyX3JlcS0+cmluZzsK PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzaWduYWxsZXJfcmVxLT5p OTE1Owo+ICAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnVzZWxlc3M7Cj4gICAJZW51bSBpbnRl bF9lbmdpbmVfaWQgaWQ7Cj4gQEAgLTE0NDksNyArMTQ0OSw3IEBAIHN0YXRpYyBpbnQgZ2VuNl9z aWduYWwoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpzaWduYWxsZXJfcmVxLAo+ICAgc3Rh dGljIGludAo+ICAgZ2VuNl9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcSkKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5n YnVmOwo+ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJ aW50IHJldDsKPgo+ICAgCWlmIChyZXEtPmVuZ2luZS0+c2VtYXBob3JlLnNpZ25hbCkKPiBAQCAt MTQ3Myw3ICsxNDczLDcgQEAgc3RhdGljIGludAo+ICAgZ2VuOF9yZW5kZXJfYWRkX3JlcXVlc3Qo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gICB7Cj4gICAJc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lID0gcmVxLT5lbmdpbmU7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZyA9IHJlcS0+cmluZ2J1ZjsKPiArCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpy aW5nID0gcmVxLT5yaW5nOwo+ICAgCWludCByZXQ7Cj4KPiAgIAlpZiAoZW5naW5lLT5zZW1hcGhv cmUuc2lnbmFsKQo+IEBAIC0xNTE4LDcgKzE1MTgsNyBAQCBnZW44X3Jpbmdfc3luYyhzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKndhaXRlcl9yZXEsCj4gICAJICAgICAgIHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnNpZ25hbGxlciwKPiAgIAkgICAgICAgdTMyIHNlcW5vKQo+ICAgewo+IC0J c3RydWN0IGludGVsX3JpbmdidWZmZXIgKndhaXRlciA9IHdhaXRlcl9yZXEtPnJpbmdidWY7Cj4g KwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqd2FpdGVyID0gd2FpdGVyX3JlcS0+cmluZzsKPiAg IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB3YWl0ZXJfcmVxLT5pOTE1Owo+ ICAgCXU2NCBvZmZzZXQgPSBHRU44X1dBSVRfT0ZGU0VUKHdhaXRlcl9yZXEtPmVuZ2luZSwgc2ln bmFsbGVyLT5pZCk7Cj4gICAJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0Owo+IEBAIC0xNTUy LDcgKzE1NTIsNyBAQCBnZW42X3Jpbmdfc3luYyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KndhaXRlcl9yZXEsCj4gICAJICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnNpZ25hbGxl ciwKPiAgIAkgICAgICAgdTMyIHNlcW5vKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZm ZXIgKndhaXRlciA9IHdhaXRlcl9yZXEtPnJpbmdidWY7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqd2FpdGVyID0gd2FpdGVyX3JlcS0+cmluZzsKPiAgIAl1MzIgZHcxID0gTUlfU0VNQVBI T1JFX01CT1ggfAo+ICAgCQkgIE1JX1NFTUFQSE9SRV9DT01QQVJFIHwKPiAgIAkJICBNSV9TRU1B UEhPUkVfUkVHSVNURVI7Cj4gQEAgLTE2ODYsNyArMTY4Niw3IEBAIGJzZF9yaW5nX2ZsdXNoKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCSAgICAgICB1MzIgICAgIGludmFs aWRhdGVfZG9tYWlucywKPiAgIAkgICAgICAgdTMyICAgICBmbHVzaF9kb21haW5zKQo+ICAgewo+ IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmdidWY7Cj4gKwlzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiAgIAlpbnQgcmV0Owo+Cj4g ICAJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDIpOwo+IEBAIC0xNzAyLDcgKzE3MDIsNyBA QCBic2RfcmluZ19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIHN0 YXRpYyBpbnQKPiAgIGk5eHhfYWRkX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmlu Z2J1ZjsKPiArCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOwo+ICAg CWludCByZXQ7Cj4KPiAgIAlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgNCk7Cj4gQEAgLTE3 ODAsNyArMTc4MCw3IEBAIGk5NjVfZGlzcGF0Y2hfZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkJCSB1NjQgb2Zmc2V0LCB1MzIgbGVuZ3RoLAo+ICAgCQkJ IHVuc2lnbmVkIGRpc3BhdGNoX2ZsYWdzKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZm ZXIgKnJpbmcgPSByZXEtPnJpbmdidWY7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmlu ZyA9IHJlcS0+cmluZzsKPiAgIAlpbnQgcmV0Owo+Cj4gICAJcmV0ID0gaW50ZWxfcmluZ19iZWdp bihyZXEsIDIpOwo+IEBAIC0xODA3LDcgKzE4MDcsNyBAQCBpODMwX2Rpc3BhdGNoX2V4ZWNidWZm ZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCQkgdTY0IG9mZnNldCwg dTMyIGxlbiwKPiAgIAkJCSB1bnNpZ25lZCBkaXNwYXRjaF9mbGFncykKPiAgIHsKPiAtCXN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nYnVmOwo+ICsJc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJdTMyIGNzX29mZnNldCA9IHJlcS0+ ZW5naW5lLT5zY3JhdGNoLmd0dF9vZmZzZXQ7Cj4gICAJaW50IHJldDsKPgo+IEBAIC0xODY5LDcg KzE4NjksNyBAQCBpOTE1X2Rpc3BhdGNoX2V4ZWNidWZmZXIoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXEsCj4gICAJCQkgdTY0IG9mZnNldCwgdTMyIGxlbiwKPiAgIAkJCSB1bnNpZ25l ZCBkaXNwYXRjaF9mbGFncykKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5n ID0gcmVxLT5yaW5nYnVmOwo+ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEt PnJpbmc7Cj4gICAJaW50IHJldDsKPgo+ICAgCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCAy KTsKPiBAQCAtMjI5Nyw3ICsyMjk3LDcgQEAgaW50IGludGVsX3JpbmdfYWxsb2NfcmVxdWVzdF9l eHRyYXMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICAgCSAqLwo+ICAg CXJlcXVlc3QtPnJlc2VydmVkX3NwYWNlICs9IExFR0FDWV9SRVFVRVNUX1NJWkU7Cj4KPiAtCXJl cXVlc3QtPnJpbmdidWYgPSByZXF1ZXN0LT5lbmdpbmUtPmJ1ZmZlcjsKPiArCXJlcXVlc3QtPnJp bmcgPSByZXF1ZXN0LT5lbmdpbmUtPmJ1ZmZlcjsKPgo+ICAgCXJldCA9IGludGVsX3JpbmdfYmVn aW4ocmVxdWVzdCwgMCk7Cj4gICAJaWYgKHJldCkKPiBAQCAtMjMwOSwxMiArMjMwOSwxMiBAQCBp bnQgaW50ZWxfcmluZ19hbGxvY19yZXF1ZXN0X2V4dHJhcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcXVlc3QpCj4KPiAgIHN0YXRpYyBpbnQgd2FpdF9mb3Jfc3BhY2Uoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCBieXRlcykKPiAgIHsKPiAtCXN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcmVxLT5yaW5nYnVmOwo+ICsJc3RydWN0IGludGVsX3Jp bmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lID0gcmVxLT5lbmdpbmU7Cj4gICAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICp0 YXJnZXQ7Cj4KPiAtCWludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHJpbmdidWYpOwo+IC0JaWYgKHJp bmdidWYtPnNwYWNlID49IGJ5dGVzKQo+ICsJaW50ZWxfcmluZ191cGRhdGVfc3BhY2UocmluZyk7 Cj4gKwlpZiAocmluZy0+c3BhY2UgPj0gYnl0ZXMpCj4gICAJCXJldHVybiAwOwo+Cj4gICAJLyoK PiBAQCAtMjMzNiwxMiArMjMzNiwxMiBAQCBzdGF0aWMgaW50IHdhaXRfZm9yX3NwYWNlKHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgYnl0ZXMpCj4gICAJCSAqIGZyb20gbXVs dGlwbGUgcmluZ2J1ZmZlcnMuIEhlcmUsIHdlIG11c3QgaWdub3JlIGFueSB0aGF0Cj4gICAJCSAq IGFyZW4ndCBmcm9tIHRoZSByaW5nYnVmZmVyIHdlJ3JlIGNvbnNpZGVyaW5nLgo+ICAgCQkgKi8K PiAtCQlpZiAodGFyZ2V0LT5yaW5nYnVmICE9IHJpbmdidWYpCj4gKwkJaWYgKHRhcmdldC0+cmlu ZyAhPSByaW5nKQo+ICAgCQkJY29udGludWU7Cj4KPiAgIAkJLyogV291bGQgY29tcGxldGlvbiBv ZiB0aGlzIHJlcXVlc3QgZnJlZSBlbm91Z2ggc3BhY2U/ICovCj4gLQkJc3BhY2UgPSBfX2ludGVs X3Jpbmdfc3BhY2UodGFyZ2V0LT5wb3N0Zml4LCByaW5nYnVmLT50YWlsLAo+IC0JCQkJCSAgIHJp bmdidWYtPnNpemUpOwo+ICsJCXNwYWNlID0gX19pbnRlbF9yaW5nX3NwYWNlKHRhcmdldC0+cG9z dGZpeCwgcmluZy0+dGFpbCwKPiArCQkJCQkgICByaW5nLT5zaXplKTsKPiAgIAkJaWYgKHNwYWNl ID49IGJ5dGVzKQo+ICAgCQkJYnJlYWs7Cj4gICAJfQo+IEBAIC0yMzU0LDkgKzIzNTQsOSBAQCBz dGF0aWMgaW50IHdhaXRfZm9yX3NwYWNlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx LCBpbnQgYnl0ZXMpCj4KPiAgIGludCBpbnRlbF9yaW5nX2JlZ2luKHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxLCBpbnQgbnVtX2R3b3JkcykKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9y aW5nYnVmZmVyICpyaW5nYnVmID0gcmVxLT5yaW5nYnVmOwo+IC0JaW50IHJlbWFpbl9hY3R1YWwg PSByaW5nYnVmLT5zaXplIC0gcmluZ2J1Zi0+dGFpbDsKPiAtCWludCByZW1haW5fdXNhYmxlID0g cmluZ2J1Zi0+ZWZmZWN0aXZlX3NpemUgLSByaW5nYnVmLT50YWlsOwo+ICsJc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlpbnQgcmVtYWluX2FjdHVhbCA9IHJp bmctPnNpemUgLSByaW5nLT50YWlsOwo+ICsJaW50IHJlbWFpbl91c2FibGUgPSByaW5nLT5lZmZl Y3RpdmVfc2l6ZSAtIHJpbmctPnRhaWw7Cj4gICAJaW50IGJ5dGVzID0gbnVtX2R3b3JkcyAqIHNp emVvZih1MzIpOwo+ICAgCWludCB0b3RhbF9ieXRlcywgd2FpdF9ieXRlczsKPiAgIAlib29sIG5l ZWRfd3JhcCA9IGZhbHNlOwo+IEBAIC0yMzgzLDM1ICsyMzgzLDM1IEBAIGludCBpbnRlbF9yaW5n X2JlZ2luKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgbnVtX2R3b3JkcykK PiAgIAkJd2FpdF9ieXRlcyA9IHRvdGFsX2J5dGVzOwo+ICAgCX0KPgo+IC0JaWYgKHdhaXRfYnl0 ZXMgPiByaW5nYnVmLT5zcGFjZSkgewo+ICsJaWYgKHdhaXRfYnl0ZXMgPiByaW5nLT5zcGFjZSkg ewo+ICAgCQlpbnQgcmV0ID0gd2FpdF9mb3Jfc3BhY2UocmVxLCB3YWl0X2J5dGVzKTsKPiAgIAkJ aWYgKHVubGlrZWx5KHJldCkpCj4gICAJCQlyZXR1cm4gcmV0Owo+Cj4gLQkJaW50ZWxfcmluZ191 cGRhdGVfc3BhY2UocmluZ2J1Zik7Cj4gLQkJaWYgKHVubGlrZWx5KHJpbmdidWYtPnNwYWNlIDwg d2FpdF9ieXRlcykpCj4gKwkJaW50ZWxfcmluZ191cGRhdGVfc3BhY2UocmluZyk7Cj4gKwkJaWYg KHVubGlrZWx5KHJpbmctPnNwYWNlIDwgd2FpdF9ieXRlcykpCj4gICAJCQlyZXR1cm4gLUVBR0FJ TjsKPiAgIAl9Cj4KPiAgIAlpZiAodW5saWtlbHkobmVlZF93cmFwKSkgewo+IC0JCUdFTV9CVUdf T04ocmVtYWluX2FjdHVhbCA+IHJpbmdidWYtPnNwYWNlKTsKPiAtCQlHRU1fQlVHX09OKHJpbmdi dWYtPnRhaWwgKyByZW1haW5fYWN0dWFsID4gcmluZ2J1Zi0+c2l6ZSk7Cj4gKwkJR0VNX0JVR19P TihyZW1haW5fYWN0dWFsID4gcmluZy0+c3BhY2UpOwo+ICsJCUdFTV9CVUdfT04ocmluZy0+dGFp bCArIHJlbWFpbl9hY3R1YWwgPiByaW5nLT5zaXplKTsKPgo+ICAgCQkvKiBGaWxsIHRoZSB0YWls IHdpdGggTUlfTk9PUCAqLwo+IC0JCW1lbXNldChyaW5nYnVmLT52YWRkciArIHJpbmdidWYtPnRh aWwsIDAsIHJlbWFpbl9hY3R1YWwpOwo+IC0JCXJpbmdidWYtPnRhaWwgPSAwOwo+IC0JCXJpbmdi dWYtPnNwYWNlIC09IHJlbWFpbl9hY3R1YWw7Cj4gKwkJbWVtc2V0KHJpbmctPnZhZGRyICsgcmlu Zy0+dGFpbCwgMCwgcmVtYWluX2FjdHVhbCk7Cj4gKwkJcmluZy0+dGFpbCA9IDA7Cj4gKwkJcmlu Zy0+c3BhY2UgLT0gcmVtYWluX2FjdHVhbDsKPiAgIAl9Cj4KPiAtCXJpbmdidWYtPnNwYWNlIC09 IGJ5dGVzOwo+IC0JR0VNX0JVR19PTihyaW5nYnVmLT5zcGFjZSA8IDApOwo+ICsJcmluZy0+c3Bh Y2UgLT0gYnl0ZXM7Cj4gKwlHRU1fQlVHX09OKHJpbmctPnNwYWNlIDwgMCk7Cj4gICAJcmV0dXJu IDA7Cj4gICB9Cj4KPiAgIC8qIEFsaWduIHRoZSByaW5nIHRhaWwgdG8gYSBjYWNoZWxpbmUgYm91 bmRhcnkgKi8KPiAgIGludCBpbnRlbF9yaW5nX2NhY2hlbGluZV9hbGlnbihzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpy aW5nID0gcmVxLT5yaW5nYnVmOwo+ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSBy ZXEtPnJpbmc7Cj4gICAJaW50IG51bV9kd29yZHMgPQo+ICAgCQkocmluZy0+dGFpbCAmIChDQUNI RUxJTkVfQllURVMgLSAxKSkgLyBzaXplb2YodWludDMyX3QpOwo+ICAgCWludCByZXQ7Cj4gQEAg LTI1MTgsNyArMjUxOCw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfYnNkX3Jpbmdfd3JpdGVfdGFpbChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gICBzdGF0aWMgaW50IGdlbjZfYnNkX3Jp bmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCQkgICAgICAg dTMyIGludmFsaWRhdGUsIHUzMiBmbHVzaCkKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVm ZmVyICpyaW5nID0gcmVxLT5yaW5nYnVmOwo+ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJp bmcgPSByZXEtPnJpbmc7Cj4gICAJdWludDMyX3QgY21kOwo+ICAgCWludCByZXQ7Cj4KPiBAQCAt MjU2NCw3ICsyNTY0LDcgQEAgZ2VuOF9yaW5nX2Rpc3BhdGNoX2V4ZWNidWZmZXIoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCQkgICAgICB1NjQgb2Zmc2V0LCB1MzIgbGVu LAo+ICAgCQkJICAgICAgdW5zaWduZWQgZGlzcGF0Y2hfZmxhZ3MpCj4gICB7Cj4gLQlzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZ2J1ZjsKPiArCXN0cnVjdCBpbnRlbF9y aW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOwo+ICAgCWJvb2wgcHBndHQgPSBVU0VTX1BQR1RU KHJlcS0+aTkxNSkgJiYKPiAgIAkJCSEoZGlzcGF0Y2hfZmxhZ3MgJiBJOTE1X0RJU1BBVENIX1NF Q1VSRSk7Cj4gICAJaW50IHJldDsKPiBAQCAtMjU5MCw3ICsyNTkwLDcgQEAgaHN3X3JpbmdfZGlz cGF0Y2hfZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkJ CSAgICAgdTY0IG9mZnNldCwgdTMyIGxlbiwKPiAgIAkJCSAgICAgdW5zaWduZWQgZGlzcGF0Y2hf ZmxhZ3MpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmlu Z2J1ZjsKPiArCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOwo+ICAg CWludCByZXQ7Cj4KPiAgIAlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgMik7Cj4gQEAgLTI2 MTUsNyArMjYxNSw3IEBAIGdlbjZfcmluZ19kaXNwYXRjaF9leGVjYnVmZmVyKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCQkJICAgICAgdTY0IG9mZnNldCwgdTMyIGxlbiwK PiAgIAkJCSAgICAgIHVuc2lnbmVkIGRpc3BhdGNoX2ZsYWdzKQo+ICAgewo+IC0Jc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmdidWY7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmlu Z2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiAgIAlpbnQgcmV0Owo+Cj4gICAJcmV0ID0gaW50 ZWxfcmluZ19iZWdpbihyZXEsIDIpOwo+IEBAIC0yNjM4LDcgKzI2MzgsNyBAQCBnZW42X3Jpbmdf ZGlzcGF0Y2hfZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAg IHN0YXRpYyBpbnQgZ2VuNl9yaW5nX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxLAo+ICAgCQkJICAgdTMyIGludmFsaWRhdGUsIHUzMiBmbHVzaCkKPiAgIHsKPiAtCXN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nYnVmOwo+ICsJc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJdWludDMyX3QgY21kOwo+ICAgCWlu dCByZXQ7Cj4KPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==