From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v2] drm/i915/breadcrumbs: Drop request reference for the signaler thread Date: Mon, 5 Feb 2018 13:23:54 +0000 Message-ID: <9517cdab-87fb-4838-b1f3-30983bf4af99@linux.intel.com> References: <3e00c71f-3df0-b8db-1318-7c4917d530ca@linux.intel.com> <20180203101914.24880-1-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 ESMTPS id 3022489DBC for ; Mon, 5 Feb 2018 13:23:57 +0000 (UTC) In-Reply-To: <20180203101914.24880-1-chris@chris-wilson.co.uk> Content-Language: en-GB 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 Ck9uIDAzLzAyLzIwMTggMTA6MTksIENocmlzIFdpbHNvbiB3cm90ZToKPiBJZiB3ZSByZW1lbWJl ciB0byBjYW5jZWwgdGhlIHNpZ25hbGVyIG9uIGEgcmVxdWVzdCB3aGVuIHJldGlyaW5nIGl0Cj4g KGFmdGVyIHdlIGtub3cgdGhhdCB0aGUgcmVxdWVzdCBoYXMgYmVlbiBzaWduYWxlZCksIHdlIGRv IG5vdCBuZWVkIHRvCj4gY2FycnkgYW4gYWRkaXRpb25hbCByZXF1ZXN0IGluIHRoZSBzaWduYWxl ciBpdHNlbGYuIFRoaXMgcHJldmVudHMgYW4KPiBpc3N1ZSB3aGVyZWJ5IHRoZSBzaWduYWxlciB0 aHJlYWRzIG1heSBiZSBkZWxheWVkIGFuZCBob2xkIG9uIHRvCj4gdGhvdXNhbmRzIG9mIHJlcXVl c3QgcmVmZXJlbmNlcywgY2F1c2luZyBzZXZlcmUgbWVtb3J5IGZyYWdtZW50YXRpb24gYW5kCj4g cHJlbWF0dXJlIG9vbSAobW9zdCBub3RpY2VhYmxlIG9uIDMyYiBzbmIgZHVlIHRvIHRoZSBsaW1p dGVkIEdGUF9LRVJORUwKPiBhbmQgZnJlcXVlbnQgdXNlIG9mIGludGVyLWVuZ2luZSBmZW5jZXMp Lgo+IAo+IHYyOiBSZW5hbWUgZmlyc3Rfc2lnbmFsKCksIGRvY3VtZW50IHJlYWRzIG91dHNpZGUg b2YgbG9ja3MuCj4gCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13 aWxzb24uY28udWs+Cj4gQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5j b20+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMgIHwg ICA2ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jIHwgMTUw ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KPiAgIDIgZmlsZXMgY2hhbmdlZCwgODYg aW5zZXJ0aW9ucygrKSwgNzAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX3JlcXVlc3QuYwo+IGluZGV4IDVmZjU3MjExZWUwNi4uZGM3Y2MyYzU1YmM3IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYwo+IEBAIC01NTUsNyArNTU1 LDEwIEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfcmV0aXJlKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKPiAgIAlzcGluX2xvY2tfaXJxKCZyZXF1ZXN0LT5sb2Nr KTsKPiAgIAlpZiAocmVxdWVzdC0+d2FpdGJvb3N0KQo+ICAgCQlhdG9taWNfZGVjKCZyZXF1ZXN0 LT5pOTE1LT5ndF9wbS5ycHMubnVtX3dhaXRlcnMpOwo+IC0JZG1hX2ZlbmNlX3NpZ25hbF9sb2Nr ZWQoJnJlcXVlc3QtPmZlbmNlKTsKPiArCWlmICghdGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfU0lH TkFMRURfQklULCAmcmVxdWVzdC0+ZmVuY2UuZmxhZ3MpKQo+ICsJCWRtYV9mZW5jZV9zaWduYWxf bG9ja2VkKCZyZXF1ZXN0LT5mZW5jZSk7Cj4gKwlpZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdf RU5BQkxFX1NJR05BTF9CSVQsICZyZXF1ZXN0LT5mZW5jZS5mbGFncykpCj4gKwkJaW50ZWxfZW5n aW5lX2NhbmNlbF9zaWduYWxpbmcocmVxdWVzdCk7Cj4gICAJc3Bpbl91bmxvY2tfaXJxKCZyZXF1 ZXN0LT5sb2NrKTsKPiAgIAo+ICAgCWk5MTVfcHJpb3RyZWVfZmluaShyZXF1ZXN0LT5pOTE1LCAm cmVxdWVzdC0+cHJpb3RyZWUpOwo+IEBAIC04NjQsNiArODY3LDcgQEAgaTkxNV9nZW1fcmVxdWVz dF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gICAKPiAgIAkvKiBObyB6 YWxsb2MsIG11c3QgY2xlYXIgd2hhdCB3ZSBuZWVkIGJ5IGhhbmQgKi8KPiAgIAlyZXEtPmdsb2Jh bF9zZXFubyA9IDA7Cj4gKwlyZXEtPnNpZ25hbGluZy53YWl0LnNlcW5vID0gMDsKPiAgIAlyZXEt PmZpbGVfcHJpdiA9IE5VTEw7Cj4gICAJcmVxLT5iYXRjaCA9IE5VTEw7Cj4gICAJcmVxLT5jYXB0 dXJlX2xpc3QgPSBOVUxMOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9icmVhZGNydW1icy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMu Ywo+IGluZGV4IDYyYjJhMjBiYzI0ZS4uZWZiYzYyN2EyYTI1IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jCj4gQEAgLTIyNCw3ICsyMjQsNyBAQCB2b2lkIGlu dGVsX2VuZ2luZV9kaXNhcm1fYnJlYWRjcnVtYnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQo+ICAgCXN0cnVjdCBpbnRlbF93YWl0ICp3YWl0LCAqbjsKPiAgIAo+ICAgCWlmICghYi0+ aXJxX2FybWVkKQo+IC0JCWdvdG8gd2FrZXVwX3NpZ25hbGVyOwo+ICsJCXJldHVybjsKPiAgIAo+ ICAgCS8qCj4gICAJICogV2Ugb25seSBkaXNhcm0gdGhlIGlycSB3aGVuIHdlIGFyZSBpZGxlIChh bGwgcmVxdWVzdHMgY29tcGxldGVkKSwKPiBAQCAtMjQ5LDE0ICsyNDksNiBAQCB2b2lkIGludGVs X2VuZ2luZV9kaXNhcm1fYnJlYWRjcnVtYnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQo+ICAgCWItPndhaXRlcnMgPSBSQl9ST09UOwo+ICAgCj4gICAJc3Bpbl91bmxvY2tfaXJxKCZi LT5yYl9sb2NrKTsKPiAtCj4gLQkvKgo+IC0JICogVGhlIHNpZ25hbGluZyB0aHJlYWQgbWF5IGJl IGFzbGVlcCBob2xkaW5nIGEgcmVmZXJlbmNlIHRvIGEgcmVxdWVzdCwKPiAtCSAqIHRoYXQgaGFk IGl0cyBzaWduYWxpbmcgY2FuY2VsbGVkIHByaW9yIHRvIGJlaW5nIHByZWVtcHRlZC4gV2UgbmVl ZAo+IC0JICogdG8ga2ljayB0aGUgc2lnbmFsZXIsIGp1c3QgaW4gY2FzZSwgdG8gcmVsZWFzZSBh bnkgc3VjaCByZWZlcmVuY2UuCj4gLQkgKi8KPiAtd2FrZXVwX3NpZ25hbGVyOgo+IC0Jd2FrZV91 cF9wcm9jZXNzKGItPnNpZ25hbGVyKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIGJvb2wgdXNlX2Zh a2VfaXJxKGNvbnN0IHN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYikKPiBAQCAtNjMzLDYgKzYy NSw2MyBAQCBzdGF0aWMgdm9pZCBzaWduYWxlcl9zZXRfcnRwcmlvcml0eSh2b2lkKQo+ICAgCSBz Y2hlZF9zZXRzY2hlZHVsZXJfbm9jaGVjayhjdXJyZW50LCBTQ0hFRF9GSUZPLCAmcGFyYW0pOwo+ ICAgfQo+ICAgCj4gK3N0YXRpYyB2b2lkIF9faW50ZWxfZW5naW5lX3JlbW92ZV9zaWduYWwoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICsJCQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcXVlc3QpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9 ICZlbmdpbmUtPmJyZWFkY3J1bWJzOwo+ICsKPiArCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmItPnJi X2xvY2spOwo+ICsKPiArCS8qCj4gKwkgKiBXYWtlIHVwIGFsbCBvdGhlciBjb21wbGV0ZWQgd2Fp dGVycyBhbmQgc2VsZWN0IHRoZQo+ICsJICogbmV4dCBib3R0b20taGFsZiBmb3IgdGhlIG5leHQg dXNlciBpbnRlcnJ1cHQuCj4gKwkgKi8KPiArCV9faW50ZWxfZW5naW5lX3JlbW92ZV93YWl0KGVu Z2luZSwgJnJlcXVlc3QtPnNpZ25hbGluZy53YWl0KTsKPiArCj4gKwkvKgo+ICsJICogRmluZCB0 aGUgbmV4dCBvbGRlc3Qgc2lnbmFsLiBOb3RlIHRoYXQgYXMgd2UgaGF2ZQo+ICsJICogbm90IGJl ZW4gaG9sZGluZyB0aGUgbG9jaywgYW5vdGhlciBjbGllbnQgbWF5Cj4gKwkgKiBoYXZlIGluc3Rh bGxlZCBhbiBldmVuIG9sZGVyIHNpZ25hbCB0aGFuIHRoZSBvbmUKPiArCSAqIHdlIGp1c3QgY29t cGxldGVkIC0gc28gZG91YmxlIGNoZWNrIHdlIGFyZSBzdGlsbAo+ICsJICogdGhlIG9sZGVzdCBi ZWZvcmUgcGlja2luZyB0aGUgbmV4dCBvbmUuCj4gKwkgKi8KPiArCWlmIChyZXF1ZXN0LT5zaWdu YWxpbmcud2FpdC5zZXFubykgewo+ICsJCWlmIChyZXF1ZXN0ID09IHJjdV9hY2Nlc3NfcG9pbnRl cihiLT5maXJzdF9zaWduYWwpKSB7Cj4gKwkJCXN0cnVjdCByYl9ub2RlICpyYiA9IHJiX25leHQo JnJlcXVlc3QtPnNpZ25hbGluZy5ub2RlKTsKPiArCQkJcmN1X2Fzc2lnbl9wb2ludGVyKGItPmZp cnN0X3NpZ25hbCwKPiArCQkJCQkgICByYiA/IHRvX3NpZ25hbGVyKHJiKSA6IE5VTEwpOwo+ICsJ CX0KPiArCj4gKwkJcmJfZXJhc2UoJnJlcXVlc3QtPnNpZ25hbGluZy5ub2RlLCAmYi0+c2lnbmFs cyk7Cj4gKwkJcmVxdWVzdC0+c2lnbmFsaW5nLndhaXQuc2Vxbm8gPSAwOwo+ICsJfQo+ICt9Cj4g Kwo+ICtzdGF0aWMgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoKPiArZ2V0X2ZpcnN0X3Np Z25hbF9yY3Uoc3RydWN0IGludGVsX2JyZWFkY3J1bWJzICpiKQo+ICt7Cj4gKwkvKgo+ICsJICog U2VlIHRoZSBiaWcgd2FybmluZ3MgZm9yIGk5MTVfZ2VtX2FjdGl2ZV9nZXRfcmN1KCkgYW5kIHNp bWlsYXJseQo+ICsJICogZm9yIGRtYV9mZW5jZV9nZXRfcmN1X3NhZmUoKSB0aGF0IGV4cGxhaW4g dGhlIGludHJpY2FjaWVzIGludm9sdmVkCj4gKwkgKiBoZXJlIHdpdGggZGVmZWF0aW5nIENQVS9j b21waWxlciBzcGVjdWxhdGlvbiBhbmQgZW5mb3JjaW5nCj4gKwkgKiB0aGUgcmVxdWlyZWQgbWVt b3J5IGJhcnJpZXJzLgo+ICsJICovCj4gKwlkbyB7Cj4gKwkJc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXF1ZXN0Owo+ICsKPiArCQlyZXF1ZXN0ID0gcmN1X2RlcmVmZXJlbmNlKGItPmZp cnN0X3NpZ25hbCk7Cj4gKwkJaWYgKHJlcXVlc3QpCj4gKwkJCXJlcXVlc3QgPSBpOTE1X2dlbV9y ZXF1ZXN0X2dldF9yY3UocmVxdWVzdCk7Cj4gKwo+ICsJCWJhcnJpZXIoKTsKPiArCj4gKwkJaWYg KCFyZXF1ZXN0IHx8IHJlcXVlc3QgPT0gcmN1X2FjY2Vzc19wb2ludGVyKGItPmZpcnN0X3NpZ25h bCkpCj4gKwkJCXJldHVybiByY3VfcG9pbnRlcl9oYW5kb2ZmKHJlcXVlc3QpOwo+ICsKPiArCQlp OTE1X2dlbV9yZXF1ZXN0X3B1dChyZXF1ZXN0KTsKPiArCX0gd2hpbGUgKDEpOwo+ICt9Cj4gKwo+ ICAgc3RhdGljIGludCBpbnRlbF9icmVhZGNydW1ic19zaWduYWxlcih2b2lkICphcmcpCj4gICB7 Cj4gICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gYXJnOwo+IEBAIC02NTYsNDEg KzcwNSwyMSBAQCBzdGF0aWMgaW50IGludGVsX2JyZWFkY3J1bWJzX3NpZ25hbGVyKHZvaWQgKmFy ZykKPiAgIAkJICogYSBuZXcgY2xpZW50Lgo+ICAgCQkgKi8KPiAgIAkJcmN1X3JlYWRfbG9jaygp Owo+IC0JCXJlcXVlc3QgPSByY3VfZGVyZWZlcmVuY2UoYi0+Zmlyc3Rfc2lnbmFsKTsKPiAtCQlp ZiAocmVxdWVzdCkKPiAtCQkJcmVxdWVzdCA9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3JjdShyZXF1 ZXN0KTsKPiArCQlyZXF1ZXN0ID0gZ2V0X2ZpcnN0X3NpZ25hbF9yY3UoYik7Cj4gICAJCXJjdV9y ZWFkX3VubG9jaygpOwo+ICAgCQlpZiAoc2lnbmFsX2NvbXBsZXRlKHJlcXVlc3QpKSB7Cj4gLQkJ CWxvY2FsX2JoX2Rpc2FibGUoKTsKPiAtCQkJZG1hX2ZlbmNlX3NpZ25hbCgmcmVxdWVzdC0+ZmVu Y2UpOwo+IC0JCQlsb2NhbF9iaF9lbmFibGUoKTsgLyoga2ljayBzdGFydCB0aGUgdGFza2xldHMg Ki8KPiAtCj4gLQkJCXNwaW5fbG9ja19pcnEoJmItPnJiX2xvY2spOwo+IC0KPiAtCQkJLyogV2Fr ZSB1cCBhbGwgb3RoZXIgY29tcGxldGVkIHdhaXRlcnMgYW5kIHNlbGVjdCB0aGUKPiAtCQkJICog bmV4dCBib3R0b20taGFsZiBmb3IgdGhlIG5leHQgdXNlciBpbnRlcnJ1cHQuCj4gLQkJCSAqLwo+ IC0JCQlfX2ludGVsX2VuZ2luZV9yZW1vdmVfd2FpdChlbmdpbmUsCj4gLQkJCQkJCSAgICZyZXF1 ZXN0LT5zaWduYWxpbmcud2FpdCk7Cj4gLQo+IC0JCQkvKiBGaW5kIHRoZSBuZXh0IG9sZGVzdCBz aWduYWwuIE5vdGUgdGhhdCBhcyB3ZSBoYXZlCj4gLQkJCSAqIG5vdCBiZWVuIGhvbGRpbmcgdGhl IGxvY2ssIGFub3RoZXIgY2xpZW50IG1heQo+IC0JCQkgKiBoYXZlIGluc3RhbGxlZCBhbiBldmVu IG9sZGVyIHNpZ25hbCB0aGFuIHRoZSBvbmUKPiAtCQkJICogd2UganVzdCBjb21wbGV0ZWQgLSBz byBkb3VibGUgY2hlY2sgd2UgYXJlIHN0aWxsCj4gLQkJCSAqIHRoZSBvbGRlc3QgYmVmb3JlIHBp Y2tpbmcgdGhlIG5leHQgb25lLgo+IC0JCQkgKi8KPiAtCQkJaWYgKHJlcXVlc3QgPT0gcmN1X2Fj Y2Vzc19wb2ludGVyKGItPmZpcnN0X3NpZ25hbCkpIHsKPiAtCQkJCXN0cnVjdCByYl9ub2RlICpy YiA9Cj4gLQkJCQkJcmJfbmV4dCgmcmVxdWVzdC0+c2lnbmFsaW5nLm5vZGUpOwo+IC0JCQkJcmN1 X2Fzc2lnbl9wb2ludGVyKGItPmZpcnN0X3NpZ25hbCwKPiAtCQkJCQkJICAgcmIgPyB0b19zaWdu YWxlcihyYikgOiBOVUxMKTsKPiArCQkJaWYgKCF0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdO QUxFRF9CSVQsCj4gKwkJCQkgICAgICAmcmVxdWVzdC0+ZmVuY2UuZmxhZ3MpKSB7Cj4gKwkJCQls b2NhbF9iaF9kaXNhYmxlKCk7Cj4gKwkJCQlkbWFfZmVuY2Vfc2lnbmFsKCZyZXF1ZXN0LT5mZW5j ZSk7Cj4gKwkJCQlsb2NhbF9iaF9lbmFibGUoKTsgLyoga2ljayBzdGFydCB0aGUgdGFza2xldHMg Ki8KPiAgIAkJCX0KPiAtCQkJcmJfZXJhc2UoJnJlcXVlc3QtPnNpZ25hbGluZy5ub2RlLCAmYi0+ c2lnbmFscyk7Cj4gLQkJCVJCX0NMRUFSX05PREUoJnJlcXVlc3QtPnNpZ25hbGluZy5ub2RlKTsK PiAtCj4gLQkJCXNwaW5fdW5sb2NrX2lycSgmYi0+cmJfbG9jayk7Cj4gICAKPiAtCQkJaTkxNV9n ZW1fcmVxdWVzdF9wdXQocmVxdWVzdCk7Cj4gKwkJCWlmIChSRUFEX09OQ0UocmVxdWVzdC0+c2ln bmFsaW5nLndhaXQuc2Vxbm8pKSB7Cj4gKwkJCQlzcGluX2xvY2tfaXJxKCZiLT5yYl9sb2NrKTsK PiArCQkJCV9faW50ZWxfZW5naW5lX3JlbW92ZV9zaWduYWwoZW5naW5lLCByZXF1ZXN0KTsKPiAr CQkJCXNwaW5fdW5sb2NrX2lycSgmYi0+cmJfbG9jayk7Cj4gKwkJCX0KCkhvdyB3b3VsZCB5b3Ug dmlldyB0YWtpbmcgdGhlIHJlcXVlc3QtPmxvY2sgb3ZlciB0aGlzIGJsb2NrIGluIHRoZSAKc2ln bmFsZXIgYW5kIHRoZW4gYmVpbmcgYWJsZSB0byBjYWxsIHNpbXBseSAKaW50ZWxfZW5naW5lX2Nh bmNlbF9zaWduYWxpbmcgLSBlbmRpbmcgdXAgd2l0aCB2ZXJ5IHNpbWlsYXIgY29kZSBhcyBpbiAK aTkxNV9nZW1fcmVxdWVzdF9yZXRpcmU/CgpPbmx5IGRpZmZlcmVuY2Ugd291bGQgYmUgdGhlIHRh c2tsZXQga2lja2luZywgYnV0IG1heWJlIHN0aWxsIGl0IHdvdWxkIApiZSBwb3NzaWJsZSB0byBj b25zb2xpZGF0ZSB0aGUgdHdvIGluIG9uZSBoZWxwZXIuCgpfX2k5MTVfZ2VtX3JlcXVlc3RfcmV0 aXJlX3NpZ25hbGluZyhyZXEsIGJvb2wga2lja190YXNrbGV0cykKewoJaWYgKCFETUFfRkVOQ0Vf RkxBR19TSUdOQUxFRF9CSVQpIHsKCQlkbWFfZmVuY2Vfc2lnbmFsX2xvY2tlZCguLi4pOwoJCWlm IChraWNrX3Rhc2tsZXRzKSB7CgkJCWxvY2FsX2JoX2Rpc2FibGUoKTsKCQkJbG9jYWxfYmhfZW5h YmxlKCk7CgkJfQoJfQoKCWlmIChETUFfRkVOQ0VfRkxBR19FTkFCTEVfU0lHTkFMX0JJVCkKCQlp bnRlbF9lbmdpbmVfY2FuY2VsX3NpZ25hbGluZyguLi4pOwp9CgppOTE1X2dlbV9yZXF1ZXN0X3Jl dGlyZV9zaWduYWxpbmcocmVxKQp7CglzcGluX2xvY2tfaXJxKHJlcS0+bG9jayk7CglfX2k5MTVf Z2VtX3JlcXVlc3RfcmV0aXJlX3NpZ25hbGluZyhyZXEsIHRydWUpOwoJc3Bpbl91bmxvY2tfaXJx KHJlcS0+bG9jayk7Cn0KCkFuZCBjYWxsIHRoZSBmb3JtZXIgZnJvbSByZXF1ZXN0IHJldGlyZSwg YW5kIGxhdGVyIGZyb20gc2lnbmFsZXI/CgpSZWdhcmRzLAoKVHZydGtvCgo+ICAgCj4gICAJCQkv KiBJZiB0aGUgZW5naW5lIGlzIHNhdHVyYXRlZCB3ZSBtYXkgYmUgY29udGludWFsbHkKPiAgIAkJ CSAqIHByb2Nlc3NpbmcgY29tcGxldGVkIHJlcXVlc3RzLiBUaGlzIGFuZ2VycyB0aGUKPiBAQCAt NzAxLDE5ICs3MzAsMTcgQEAgc3RhdGljIGludCBpbnRlbF9icmVhZGNydW1ic19zaWduYWxlcih2 b2lkICphcmcpCj4gICAJCQkgKi8KPiAgIAkJCWRvX3NjaGVkdWxlID0gbmVlZF9yZXNjaGVkKCk7 Cj4gICAJCX0KPiArCQlpOTE1X2dlbV9yZXF1ZXN0X3B1dChyZXF1ZXN0KTsKPiAgIAo+ICAgCQlp ZiAodW5saWtlbHkoZG9fc2NoZWR1bGUpKSB7Cj4gICAJCQlpZiAoa3RocmVhZF9zaG91bGRfcGFy aygpKQo+ICAgCQkJCWt0aHJlYWRfcGFya21lKCk7Cj4gICAKPiAtCQkJaWYgKHVubGlrZWx5KGt0 aHJlYWRfc2hvdWxkX3N0b3AoKSkpIHsKPiAtCQkJCWk5MTVfZ2VtX3JlcXVlc3RfcHV0KHJlcXVl c3QpOwo+ICsJCQlpZiAodW5saWtlbHkoa3RocmVhZF9zaG91bGRfc3RvcCgpKSkKPiAgIAkJCQli cmVhazsKPiAtCQkJfQo+ICAgCj4gICAJCQlzY2hlZHVsZSgpOwo+ICAgCQl9Cj4gLQkJaTkxNV9n ZW1fcmVxdWVzdF9wdXQocmVxdWVzdCk7Cj4gICAJfSB3aGlsZSAoMSk7Cj4gICAJX19zZXRfY3Vy cmVudF9zdGF0ZShUQVNLX1JVTk5JTkcpOwo+ICAgCj4gQEAgLTc0MiwxMiArNzY5LDEyIEBAIHZv aWQgaW50ZWxfZW5naW5lX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXF1ZXN0LAo+ICAgCWlmICghc2Vxbm8pCj4gICAJCXJldHVybjsKPiAgIAo+ICsJc3Bp bl9sb2NrKCZiLT5yYl9sb2NrKTsKPiArCj4gKwlHRU1fQlVHX09OKHJlcXVlc3QtPnNpZ25hbGlu Zy53YWl0LnNlcW5vKTsKPiAgIAlyZXF1ZXN0LT5zaWduYWxpbmcud2FpdC50c2sgPSBiLT5zaWdu YWxlcjsKPiAgIAlyZXF1ZXN0LT5zaWduYWxpbmcud2FpdC5yZXF1ZXN0ID0gcmVxdWVzdDsKPiAg IAlyZXF1ZXN0LT5zaWduYWxpbmcud2FpdC5zZXFubyA9IHNlcW5vOwo+IC0JaTkxNV9nZW1fcmVx dWVzdF9nZXQocmVxdWVzdCk7Cj4gLQo+IC0Jc3Bpbl9sb2NrKCZiLT5yYl9sb2NrKTsKPiAgIAo+ ICAgCS8qIEZpcnN0IGFkZCBvdXJzZWx2ZXMgaW50byB0aGUgbGlzdCBvZiB3YWl0ZXJzLCBidXQg cmVnaXN0ZXIgb3VyCj4gICAJICogYm90dG9tLWhhbGYgYXMgdGhlIHNpZ25hbGxlciB0aHJlYWQu IEFzIHBlciB1c3VhbCwgb25seSB0aGUgb2xkZXN0Cj4gQEAgLTc4Niw3ICs4MTMsNyBAQCB2b2lk IGludGVsX2VuZ2luZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxdWVzdCwKPiAgIAkJCXJjdV9hc3NpZ25fcG9pbnRlcihiLT5maXJzdF9zaWduYWwsIHJl cXVlc3QpOwo+ICAgCX0gZWxzZSB7Cj4gICAJCV9faW50ZWxfZW5naW5lX3JlbW92ZV93YWl0KGVu Z2luZSwgJnJlcXVlc3QtPnNpZ25hbGluZy53YWl0KTsKPiAtCQlpOTE1X2dlbV9yZXF1ZXN0X3B1 dChyZXF1ZXN0KTsKPiArCQlyZXF1ZXN0LT5zaWduYWxpbmcud2FpdC5zZXFubyA9IDA7Cj4gICAJ CXdha2V1cCA9IGZhbHNlOwo+ICAgCX0KPiAgIAo+IEBAIC03OTgsMzIgKzgyNSwxNyBAQCB2b2lk IGludGVsX2VuZ2luZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxdWVzdCwKPiAgIAo+ICAgdm9pZCBpbnRlbF9lbmdpbmVfY2FuY2VsX3NpZ25hbGluZyhz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXF1ZXN0LT5lbmdpbmU7Cj4gLQlzdHJ1Y3QgaW50ZWxf YnJlYWRjcnVtYnMgKmIgPSAmZW5naW5lLT5icmVhZGNydW1iczsKPiAtCj4gICAJR0VNX0JVR19P TighaXJxc19kaXNhYmxlZCgpKTsKPiAgIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZyZXF1ZXN0LT5s b2NrKTsKPiAtCUdFTV9CVUdfT04oIXJlcXVlc3QtPnNpZ25hbGluZy53YWl0LnNlcW5vKTsKPiAg IAo+IC0Jc3Bpbl9sb2NrKCZiLT5yYl9sb2NrKTsKPiArCWlmIChSRUFEX09OQ0UocmVxdWVzdC0+ c2lnbmFsaW5nLndhaXQuc2Vxbm8pKSB7Cj4gKwkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lID0gcmVxdWVzdC0+ZW5naW5lOwo+ICsJCXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9 ICZlbmdpbmUtPmJyZWFkY3J1bWJzOwo+ICAgCj4gLQlpZiAoIVJCX0VNUFRZX05PREUoJnJlcXVl c3QtPnNpZ25hbGluZy5ub2RlKSkgewo+IC0JCWlmIChyZXF1ZXN0ID09IHJjdV9hY2Nlc3NfcG9p bnRlcihiLT5maXJzdF9zaWduYWwpKSB7Cj4gLQkJCXN0cnVjdCByYl9ub2RlICpyYiA9Cj4gLQkJ CQlyYl9uZXh0KCZyZXF1ZXN0LT5zaWduYWxpbmcubm9kZSk7Cj4gLQkJCXJjdV9hc3NpZ25fcG9p bnRlcihiLT5maXJzdF9zaWduYWwsCj4gLQkJCQkJICAgcmIgPyB0b19zaWduYWxlcihyYikgOiBO VUxMKTsKPiAtCQl9Cj4gLQkJcmJfZXJhc2UoJnJlcXVlc3QtPnNpZ25hbGluZy5ub2RlLCAmYi0+ c2lnbmFscyk7Cj4gLQkJUkJfQ0xFQVJfTk9ERSgmcmVxdWVzdC0+c2lnbmFsaW5nLm5vZGUpOwo+ IC0JCWk5MTVfZ2VtX3JlcXVlc3RfcHV0KHJlcXVlc3QpOwo+ICsJCXNwaW5fbG9jaygmYi0+cmJf bG9jayk7Cj4gKwkJX19pbnRlbF9lbmdpbmVfcmVtb3ZlX3NpZ25hbChlbmdpbmUsIHJlcXVlc3Qp Owo+ICsJCXNwaW5fdW5sb2NrKCZiLT5yYl9sb2NrKTsKPiAgIAl9Cj4gLQo+IC0JX19pbnRlbF9l bmdpbmVfcmVtb3ZlX3dhaXQoZW5naW5lLCAmcmVxdWVzdC0+c2lnbmFsaW5nLndhaXQpOwo+IC0K PiAtCXNwaW5fdW5sb2NrKCZiLT5yYl9sb2NrKTsKPiAtCj4gLQlyZXF1ZXN0LT5zaWduYWxpbmcu d2FpdC5zZXFubyA9IDA7Cj4gICB9Cj4gICAKPiAgIGludCBpbnRlbF9lbmdpbmVfaW5pdF9icmVh ZGNydW1icyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=