From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: Re: [PATCH 02/55] drm/i915: Reserve ring buffer space for i915_add_request() commands Date: Tue, 02 Jun 2015 19:14:30 +0100 Message-ID: <556DF286.3020008@intel.com> References: <1432917856-12261-1-git-send-email-John.C.Harrison@Intel.com> <1432917856-12261-3-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 2B0386E58F for ; Tue, 2 Jun 2015 11:14:41 -0700 (PDT) In-Reply-To: <1432917856-12261-3-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 T24gMjkvMDUvMjAxNSAxNzo0MywgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToKPiBG cm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Cj4gSXQgaXMg YSBiYWQgaWRlYSBmb3IgaTkxNV9hZGRfcmVxdWVzdCgpIHRvIGZhaWwuIFRoZSB3b3JrIHdpbGwg YWxyZWFkeSBoYXZlIGJlZW4KPiBzZW5kIHRvIHRoZSByaW5nIGFuZCB3aWxsIGJlIHByb2Nlc3Nl ZCwgYnV0IHRoZXJlIHdpbGwgbm90IGJlIGFueSB0cmFja2luZyBvcgo+IG1hbmFnZW1lbnQgb2Yg dGhhdCB3b3JrLgo+Cj4gVGhlIG9ubHkgd2F5IHRoZSBhZGQgcmVxdWVzdCBjYWxsIGNhbiBmYWls IGlzIGlmIGl0IGNhbid0IHdyaXRlIGl0cyBlcGlsb2d1ZQo+IGNvbW1hbmRzIHRvIHRoZSByaW5n IChjYWNoZSBmbHVzaGluZywgc2Vxbm8gdXBkYXRlcywgaW50ZXJydXB0IHNpZ25hbGxpbmcpLiBU aGUKPiByZWFzb25zIGZvciB0aGF0IGFyZSBtb3N0bHkgZG93biB0byBydW5uaW5nIG91dCBvZiBy aW5nIGJ1ZmZlciBzcGFjZSBhbmQgdGhlCj4gcHJvYmxlbXMgYXNzb2NpYXRlZCB3aXRoIHRyeWlu ZyB0byBnZXQgc29tZSBtb3JlLiBUaGlzIHBhdGNoIHByZXZlbnRzIHRoYXQKPiBzaXR1YXRpb24g ZnJvbSBoYXBwZW5pbmcgaW4gdGhlIGZpcnN0IHBsYWNlLgo+Cj4gV2hlbiBhIHJlcXVlc3QgaXMg Y3JlYXRlZCwgaXQgbWFya3Mgc3VmZmljaWVudCBzcGFjZSBhcyByZXNlcnZlZCBmb3IgdGhlCj4g ZXBpbG9ndWUgY29tbWFuZHMuIFRodXMgZ3VhcmFudGVlaW5nIHRoYXQgYnkgdGhlIHRpbWUgdGhl IGVwaWxvZ3VlIGlzIHdyaXR0ZW4sCj4gdGhlcmUgd2lsbCBiZSBwbGVudHkgb2Ygc3BhY2UgZm9y IGl0LiBOb3RlIHRoYXQgYSByaW5nX2JlZ2luKCkgY2FsbCBpcyByZXF1aXJlZAo+IHRvIGFjdHVh bGx5IHJlc2VydmUgdGhlIHNwYWNlIChhbmQgZG8gYW55IHBvdGVudGlhbCB3YWl0aW5nKS4gSG93 ZXZlciwgdGhhdCBpcwo+IG5vdCBjdXJyZW50bHkgZG9uZSBhdCByZXF1ZXN0IGNyZWF0aW9uIHRp bWUuIFRoaXMgaXMgYmVjYXVzZSB0aGUgcmluZ19iZWdpbigpCj4gY29kZSBjYW4gYWxsb2NhdGUg YSByZXF1ZXN0LiBIZW5jZSBjYWxsaW5nIGJlZ2luKCkgZnJvbSB0aGUgcmVxdWVzdCBhbGxvY2F0 aW9uCj4gY29kZSB3b3VsZCBsZWFkIHRvIGluZmluaXRlIHJlY3Vyc2lvbiEgTGF0ZXIgcGF0Y2hl cyBpbiB0aGlzIHNlcmllcyByZW1vdmUgdGhlCj4gbmVlZCBmb3IgYmVnaW4oKSB0byBkbyB0aGUg YWxsb2NhdGUuIEF0IHRoYXQgcG9pbnQsIGl0IGJlY29tZXMgc2FmZSBmb3IgdGhlCj4gYWxsb2Nh dGUgdG8gY2FsbCBiZWdpbigpIGFuZCByZWFsbHkgcmVzZXJ2ZSB0aGUgc3BhY2UuCj4KPiBVbnRp bCB0aGVuLCB0aGVyZSBpcyBhIHBvdGVudGlhbCBmb3IgaW5zdWZmaWNpZW50IHNwYWNlIHRvIGJl IGF2YWlsYWJsZSBhdCB0aGUKPiBwb2ludCBvZiBjYWxsaW5nIGk5MTVfYWRkX3JlcXVlc3QoKS4g SG93ZXZlciwgdGhhdCB3b3VsZCBvbmx5IGJlIGluIHRoZSBjYXNlCj4gd2hlcmUgdGhlIHJlcXVl c3Qgd2FzIGNyZWF0ZWQgYW5kIGltbWVkaWF0ZWx5IHN1Ym1pdHRlZCB3aXRob3V0IGV2ZXIgY2Fs bGluZwo+IHJpbmdfYmVnaW4oKSBhbmQgYWRkaW5nIGFueSB3b3JrIHRvIHRoYXQgcmVxdWVzdC4g V2hpY2ggc2hvdWxkIG5ldmVyIGhhcHBlbi4gQW5kCj4gZXZlbiBpZiBpdCBkb2VzLCBhbmQgaWYg dGhhdCByZXF1ZXN0IGhhcHBlbnMgdG8gZmFsbCBkb3duIHRoZSB0aW55IHdpbmRvdyBvZgo+IG9w cG9ydHVuaXR5IGZvciBmYWlsaW5nIGR1ZSB0byBiZWluZyBvdXQgb2YgcmluZyBzcGFjZSB0aGVu IGRvZXMgaXQgcmVhbGx5Cj4gbWF0dGVyIGJlY2F1c2UgdGhlIHJlcXVlc3Qgd2Fzbid0IGRvaW5n IGFueXRoaW5nIGluIHRoZSBmaXJzdCBwbGFjZT8KPgo+IHYyOiBVcGRhdGVkIHRoZSAncmVzZXJ2 ZWQgc3BhY2UgdG9vIHNtYWxsJyB3YXJuaW5nIHRvIGluY2x1ZGUgdGhlIG9mZmVuZGluZwo+IHNp emVzLiBBZGRlZCBhICdjYW5jZWwnIG9wZXJhdGlvbiB0byBjbGVhbiB1cCB3aGVuIGEgcmVxdWVz dCBpcyBhYmFuZG9uZWQuIEFkZGVkCj4gcmUtaW5pdGlhbGlzYXRpb24gb2YgdHJhY2tpbmcgc3Rh dGUgYWZ0ZXIgYSBidWZmZXIgd3JhcCB0byBrZWVwIHRoZSBzYW5pdHkKPiBjaGVja3MgYWNjdXJh dGUuCj4KPiBGb3I6IFZJWi01MTE1Cj4gU2lnbmVkLW9mZi1ieTogSm9obiBIYXJyaXNvbiA8Sm9o bi5DLkhhcnJpc29uQEludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggICAgICAgICB8ICAgIDEgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyAgICAgICAgIHwgICAzNyArKysrKysrKysrKysrKysrKwo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwgICAgOSArKysrCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgfCAgIDY4ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCB8ICAgMTAg KysrKysKPiAgIDUgZmlsZXMgY2hhbmdlZCwgMTIzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCAwMzQ3ZWI5Li5lYmExODU3IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTIxODcsNiArMjE4Nyw3IEBAIHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCB7Cj4KPiAgIGludCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9j KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJCQkgICBzdHJ1Y3QgaW50ZWxfY29u dGV4dCAqY3R4KTsKPiArdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2NhbmNlbChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Cj4gICB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfZnJlZShzdHJ1 Y3Qga3JlZiAqcmVxX3JlZik7Cj4KPiAgIHN0YXRpYyBpbmxpbmUgdWludDMyX3QKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKPiBpbmRleCA2OGYxZDFlLi42ZjUxNDE2IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCj4gQEAgLTI0ODUsNiArMjQ4NSwxMyBAQCBpbnQgX19pOTE1X2FkZF9yZXF1 ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJfSBlbHNlCj4gICAJCXJpbmdi dWYgPSByaW5nLT5idWZmZXI7Cj4KPiArCS8qCj4gKwkgKiBUbyBlbnN1cmUgdGhhdCB0aGlzIGNh bGwgd2lsbCBub3QgZmFpbCwgc3BhY2UgZm9yIGl0cyBlbWlzc2lvbnMKPiArCSAqIHNob3VsZCBh bHJlYWR5IGhhdmUgYmVlbiByZXNlcnZlZCBpbiB0aGUgcmluZyBidWZmZXIuIExldCB0aGUgcmlu Zwo+ICsJICoga25vdyB0aGF0IGl0IGlzIHRpbWUgdG8gdXNlIHRoYXQgc3BhY2UgdXAuCj4gKwkg Ki8KPiArCWludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfdXNlKHJpbmdidWYpOwo+ICsKPiAgIAly ZXF1ZXN0X3N0YXJ0ID0gaW50ZWxfcmluZ19nZXRfdGFpbChyaW5nYnVmKTsKPiAgIAkvKgo+ICAg CSAqIEVtaXQgYW55IG91dHN0YW5kaW5nIGZsdXNoZXMgLSBleGVjYnVmIGNhbiBmYWlsIHRvIGVt aXQgdGhlIGZsdXNoCj4gQEAgLTI1NjcsNiArMjU3NCw5IEBAIGludCBfX2k5MTVfYWRkX3JlcXVl c3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgIAkJCSAgIHJvdW5kX2ppZmZpZXNf dXBfcmVsYXRpdmUoSFopKTsKPiAgIAlpbnRlbF9tYXJrX2J1c3koZGV2X3ByaXYtPmRldik7Cj4K PiArCS8qIFNhbml0eSBjaGVjayB0aGF0IHRoZSByZXNlcnZlZCBzaXplIHdhcyBsYXJnZSBlbm91 Z2guICovCj4gKwlpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2VuZChyaW5nYnVmKTsKPiArCj4g ICAJcmV0dXJuIDA7Cj4gICB9Cj4KPiBAQCAtMjY2Niw2ICsyNjc2LDI2IEBAIGludCBpOTE1X2dl bV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJaWYgKHJl dCkKPiAgIAkJZ290byBlcnI7Cj4KPiArCS8qCj4gKwkgKiBSZXNlcnZlIHNwYWNlIGluIHRoZSBy aW5nIGJ1ZmZlciBmb3IgYWxsIHRoZSBjb21tYW5kcyByZXF1aXJlZCB0bwo+ICsJICogZXZlbnR1 YWxseSBlbWl0IHRoaXMgcmVxdWVzdC4gVGhpcyBpcyB0byBndWFyYW50ZWUgdGhhdCB0aGUKPiAr CSAqIGk5MTVfYWRkX3JlcXVlc3QoKSBjYWxsIGNhbid0IGZhaWwuIE5vdGUgdGhhdCB0aGUgcmVz ZXJ2ZSBtYXkgbmVlZAo+ICsJICogdG8gYmUgcmVkb25lIGlmIHRoZSByZXF1ZXN0IGlzIG5vdCBh Y3R1YWxseSBzdWJtaXR0ZWQgc3RyYWlnaHQKPiArCSAqIGF3YXksIGUuZy4gYmVjYXVzZSBhIEdQ VSBzY2hlZHVsZXIgaGFzIGRlZmVycmVkIGl0Lgo+ICsJICoKPiArCSAqIE5vdGUgZnVydGhlciB0 aGF0IHRoaXMgY2FsbCBtZXJlbHkgbm90ZXMgdGhlIHJlc2VydmUgcmVxdWVzdC4gQQo+ICsJICog c3Vic2VxdWVudCBjYWxsIHRvICpfcmluZ19iZWdpbigpIGlzIHJlcXVpcmVkIHRvIGFjdHVhbGx5 IGVuc3VyZQo+ICsJICogdGhhdCB0aGUgcmVzZXJ2YXRpb24gaXMgYXZhaWxhYmxlLiBXaXRob3V0 IHRoZSBiZWdpbiwgaWYgdGhlCj4gKwkgKiByZXF1ZXN0IGNyZWF0b3IgaW1tZWRpYXRlbHkgc3Vi bWl0dGVkIHRoZSByZXF1ZXN0IHdpdGhvdXQgYWRkaW5nCj4gKwkgKiBhbnkgY29tbWFuZHMgdG8g aXQgdGhlbiB0aGVyZSBtaWdodCBub3QgYWN0dWFsbHkgYmUgc3VmZmljaWVudAo+ICsJICogcm9v bSBmb3IgdGhlIHN1Ym1pc3Npb24gY29tbWFuZHMuIFVuZm9ydHVuYXRlbHksIHRoZSBjdXJyZW50 Cj4gKwkgKiAqX3JpbmdfYmVnaW4oKSBpbXBsZW1lbnRhdGlvbnMgcG90ZW50aWFsbHkgY2FsbCBi YWNrIGhlcmUgdG8KPiArCSAqIGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2MoKS4gVGh1cyBjYWxsaW5n IF9iZWdpbigpIGhlcmUgd291bGQgbGVhZCB0bwo+ICsJICogaW5maW5pdGUgcmVjdXJzaW9uISBV bnRpbCB0aGF0IGJhY2sgY2FsbCBwYXRoIGlzIHJlbW92ZWQsIGl0IGlzCj4gKwkgKiBuZWNlc3Nh cnkgdG8gZG8gYSBtYW51YWwgX2JlZ2luKCkgb3V0c2lkZS4KPiArCSAqLwo+ICsJaW50ZWxfcmlu Z19yZXNlcnZlZF9zcGFjZV9yZXNlcnZlKHJlcS0+cmluZ2J1ZiwgTUlOX1NQQUNFX0ZPUl9BRERf UkVRVUVTVCk7Cj4gKwo+ICAgCXJpbmctPm91dHN0YW5kaW5nX2xhenlfcmVxdWVzdCA9IHJlcTsK PiAgIAlyZXR1cm4gMDsKPgo+IEBAIC0yNjc0LDYgKzI3MDQsMTMgQEAgZXJyOgo+ICAgCXJldHVy biByZXQ7Cj4gICB9Cj4KPiArdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2NhbmNlbChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiArewo+ICsJaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFj ZV9jYW5jZWwocmVxLT5yaW5nYnVmKTsKPiArCj4gKwlpOTE1X2dlbV9yZXF1ZXN0X3VucmVmZXJl bmNlKHJlcSk7Cj4gK30KPiArCj4gICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKgo+ICAg aTkxNV9nZW1fZmluZF9hY3RpdmVfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n KQo+ICAgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggNmE1ZWQwNy4uZTYyZDM5 NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gQEAgLTY4Nyw2ICs2ODcsOSBAQCBz dGF0aWMgaW50IGxvZ2ljYWxfcmluZ193YWl0X2Zvcl9zcGFjZShzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1ZiwKPiAgIAl1bnNpZ25lZCBzcGFjZTsKPiAgIAlpbnQgcmV0Owo+Cj4gKwkv KiBUaGUgd2hvbGUgcG9pbnQgb2YgcmVzZXJ2aW5nIHNwYWNlIGlzIHRvIG5vdCB3YWl0ISAqLwo+ ICsJV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwo+ICsKPiAgIAlpZiAoaW50ZWxf cmluZ19zcGFjZShyaW5nYnVmKSA+PSBieXRlcykKPiAgIAkJcmV0dXJuIDA7Cj4KPiBAQCAtNzQ3 LDYgKzc1MCw5IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3dyYXBfYnVmZmVyKHN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLAo+ICAgCXVpbnQzMl90IF9faW9tZW0gKnZpcnQ7Cj4g ICAJaW50IHJlbSA9IHJpbmdidWYtPnNpemUgLSByaW5nYnVmLT50YWlsOwo+Cj4gKwkvKiBDYW4n dCB3cmFwIGlmIHNwYWNlIGhhcyBhbHJlYWR5IGJlZW4gcmVzZXJ2ZWQhICovCj4gKwlXQVJOX09O KHJpbmdidWYtPnJlc2VydmVkX2luX3VzZSk7Cj4gKwo+ICAgCWlmIChyaW5nYnVmLT5zcGFjZSA8 IHJlbSkgewo+ICAgCQlpbnQgcmV0ID0gbG9naWNhbF9yaW5nX3dhaXRfZm9yX3NwYWNlKHJpbmdi dWYsIGN0eCwgcmVtKTsKPgo+IEBAIC03NzAsNiArNzc2LDkgQEAgc3RhdGljIGludCBsb2dpY2Fs X3JpbmdfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwKPiAgIHsKPiAg IAlpbnQgcmV0Owo+Cj4gKwlpZiAoIXJpbmdidWYtPnJlc2VydmVkX2luX3VzZSkKPiArCQlieXRl cyArPSByaW5nYnVmLT5yZXNlcnZlZF9zaXplOwo+ICsKPiAgIAlpZiAodW5saWtlbHkocmluZ2J1 Zi0+dGFpbCArIGJ5dGVzID4gcmluZ2J1Zi0+ZWZmZWN0aXZlX3NpemUpKSB7Cj4gICAJCXJldCA9 IGxvZ2ljYWxfcmluZ193cmFwX2J1ZmZlcihyaW5nYnVmLCBjdHgpOwo+ICAgCQlpZiAodW5saWtl bHkocmV0KSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gaW5kZXgg ZDkzNGY4NS4uNzRjMjIyMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmMKPiBAQCAtMjEwMyw2ICsyMTAzLDkgQEAgc3RhdGljIGludCByaW5nX3dhaXRfZm9yX3Nw YWNlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGludCBuKQo+ICAgCXVuc2lnbmVkIHNw YWNlOwo+ICAgCWludCByZXQ7Cj4KPiArCS8qIFRoZSB3aG9sZSBwb2ludCBvZiByZXNlcnZpbmcg c3BhY2UgaXMgdG8gbm90IHdhaXQhICovCj4gKwlXQVJOX09OKHJpbmdidWYtPnJlc2VydmVkX2lu X3VzZSk7Cj4gKwo+ICAgCWlmIChpbnRlbF9yaW5nX3NwYWNlKHJpbmdidWYpID49IG4pCj4gICAJ CXJldHVybiAwOwo+Cj4gQEAgLTIxMzAsNiArMjEzMyw5IEBAIHN0YXRpYyBpbnQgaW50ZWxfd3Jh cF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICAgCXN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcmluZy0+YnVmZmVyOwo+ICAgCWludCByZW0gPSBy aW5nYnVmLT5zaXplIC0gcmluZ2J1Zi0+dGFpbDsKPgo+ICsJLyogQ2FuJ3Qgd3JhcCBpZiBzcGFj ZSBoYXMgYWxyZWFkeSBiZWVuIHJlc2VydmVkISAqLwo+ICsJV0FSTl9PTihyaW5nYnVmLT5yZXNl cnZlZF9pbl91c2UpOwo+ICsKPiAgIAlpZiAocmluZ2J1Zi0+c3BhY2UgPCByZW0pIHsKPiAgIAkJ aW50IHJldCA9IHJpbmdfd2FpdF9mb3Jfc3BhY2UocmluZywgcmVtKTsKPiAgIAkJaWYgKHJldCkK PiBAQCAtMjE4MCwxNiArMjE4Niw3NCBAQCBpbnQgaW50ZWxfcmluZ19hbGxvY19yZXF1ZXN0X2V4 dHJhcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gICAJcmV0dXJuIDA7 Cj4gICB9Cj4KPiAtc3RhdGljIGludCBfX2ludGVsX3JpbmdfcHJlcGFyZShzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nLAo+IC0JCQkJaW50IGJ5dGVzKQo+ICt2b2lkIGludGVsX3JpbmdfcmVz ZXJ2ZWRfc3BhY2VfcmVzZXJ2ZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwgaW50 IHNpemUpCj4gK3sKPiArCS8qIE5COiBVbnRpbCByZXF1ZXN0IG1hbmFnZW1lbnQgaXMgZnVsbHkg dGlkaWVkIHVwIGFuZCB0aGUgT0xSIGlzCj4gKwkgKiByZW1vdmVkLCB0aGVyZSBhcmUgdG9vIG1h bnkgd2F5cyBmb3IgZ2V0IGZhbHNlIGhpdHMgb24gdGhpcwo+ICsJICogYW50aS1yZWN1cnNpb24g Y2hlY2shICovCj4gKwkvKldBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSk7Ki8KPiArCVdB Uk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKPiArCj4gKwlyaW5nYnVmLT5yZXNlcnZl ZF9zaXplID0gc2l6ZTsKPiArCj4gKwkvKgo+ICsJICogUmVhbGx5IG5lZWQgdG8gY2FsbCBfYmVn aW4oKSBoZXJlIGJ1dCB0aGF0IGN1cnJlbnRseSBsZWFkcyB0bwo+ICsJICogcmVjdXJzaW9uIHBy b2JsZW1zISBUaGlzIHdpbGwgYmUgZml4ZWQgbGF0ZXIgYnV0IGZvciBub3cganVzdAo+ICsJICog cmV0dXJuIGFuZCBob3BlIGZvciB0aGUgYmVzdC4gTm90ZSB0aGF0IHRoZXJlIGlzIG9ubHkgYSBy ZWFsCj4gKwkgKiBwcm9ibGVtIGlmIHRoZSBjcmVhdGUgb2YgdGhlIHJlcXVlc3QgbmV2ZXIgYWN0 dWFsbHkgY2FsbHMgX2JlZ2luKCkKPiArCSAqIGJ1dCBpZiB0aGV5IGFyZSBub3Qgc3VibWl0dGlu ZyBhbnkgd29yayB0aGVuIHdoeSBkaWQgdGhleSBjcmVhdGUKPiArCSAqIHRoZSByZXF1ZXN0IGlu IHRoZSBmaXJzdCBwbGFjZT8KPiArCSAqLwo+ICt9Cj4gKwo+ICt2b2lkIGludGVsX3JpbmdfcmVz ZXJ2ZWRfc3BhY2VfY2FuY2VsKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQo+ICt7 Cj4gKwlXQVJOX09OKHJpbmdidWYtPnJlc2VydmVkX2luX3VzZSk7Cj4gKwo+ICsJcmluZ2J1Zi0+ cmVzZXJ2ZWRfc2l6ZSAgID0gMDsKPiArCXJpbmdidWYtPnJlc2VydmVkX2luX3VzZSA9IGZhbHNl Owo+ICt9Cj4gKwo+ICt2b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfdXNlKHN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQo+ICt7Cj4gKwlXQVJOX09OKHJpbmdidWYtPnJlc2Vy dmVkX2luX3VzZSk7Cj4gKwo+ICsJcmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlID0gdHJ1ZTsKPiAr CXJpbmdidWYtPnJlc2VydmVkX3RhaWwgICA9IHJpbmdidWYtPnRhaWw7Cj4gK30KPiArCj4gK3Zv aWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9lbmQoc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmdidWYpCj4gK3sKPiArCVdBUk5fT04oIXJpbmdidWYtPnJlc2VydmVkX2luX3VzZSk7Cj4g KwlXQVJOKHJpbmdidWYtPnRhaWwgPiByaW5nYnVmLT5yZXNlcnZlZF90YWlsICsgcmluZ2J1Zi0+ cmVzZXJ2ZWRfc2l6ZSwKPiArCSAgICAgInJlcXVlc3QgcmVzZXJ2ZWQgc2l6ZSB0b28gc21hbGw6 ICVkIHZzICVkIVxuIiwKPiArCSAgICAgcmluZ2J1Zi0+dGFpbCAtIHJpbmdidWYtPnJlc2VydmVk X3RhaWwsIHJpbmdidWYtPnJlc2VydmVkX3NpemUpOwo+ICsKPiArCXJpbmdidWYtPnJlc2VydmVk X3NpemUgICA9IDA7Cj4gKwlyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UgPSBmYWxzZTsKPiArfQo+ ICsKPiArc3RhdGljIGludCBfX2ludGVsX3JpbmdfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nLCBpbnQgYnl0ZXMpCj4gICB7Cj4gICAJc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmdidWYgPSByaW5nLT5idWZmZXI7Cj4gICAJaW50IHJldDsKPgo+ICsJaWYgKCFyaW5nYnVm LT5yZXNlcnZlZF9pbl91c2UpCj4gKwkJYnl0ZXMgKz0gcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZTsK PiArCj4gICAJaWYgKHVubGlrZWx5KHJpbmdidWYtPnRhaWwgKyBieXRlcyA+IHJpbmdidWYtPmVm ZmVjdGl2ZV9zaXplKSkgewo+ICsJCVdBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsK PiArCj4gICAJCXJldCA9IGludGVsX3dyYXBfcmluZ19idWZmZXIocmluZyk7Cj4gICAJCWlmICh1 bmxpa2VseShyZXQpKQo+ICAgCQkJcmV0dXJuIHJldDsKPiArCj4gKwkJaWYocmluZ2J1Zi0+cmVz ZXJ2ZWRfc2l6ZSkgewo+ICsJCQl1aW50MzJfdCBzaXplID0gcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6 ZTsKPiArCj4gKwkJCWludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfY2FuY2VsKHJpbmdidWYpOwo+ ICsJCQlpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX3Jlc2VydmUocmluZ2J1Ziwgc2l6ZSk7Cj4g KwkJfQo+ICAgCX0KPgo+ICAgCWlmICh1bmxpa2VseShyaW5nYnVmLT5zcGFjZSA8IGJ5dGVzKSkg ewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBpbmRleCAzOWY2ZGZj Li4zOWY3OTVjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+ IEBAIC0xMDUsNiArMTA1LDkgQEAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgewo+ICAgCWludCBz cGFjZTsKPiAgIAlpbnQgc2l6ZTsKPiAgIAlpbnQgZWZmZWN0aXZlX3NpemU7Cj4gKwlpbnQgcmVz ZXJ2ZWRfc2l6ZTsKPiArCWludCByZXNlcnZlZF90YWlsOwo+ICsJYm9vbCByZXNlcnZlZF9pbl91 c2U7Cj4KPiAgIAkvKiogV2UgdHJhY2sgdGhlIHBvc2l0aW9uIG9mIHRoZSByZXF1ZXN0cyBpbiB0 aGUgcmluZyBidWZmZXIsIGFuZAo+ICAgCSAqIHdoZW4gZWFjaCBpcyByZXRpcmVkIHdlIGluY3Jl bWVudCBsYXN0X3JldGlyZWRfaGVhZCBhcyB0aGUgR1BVCj4gQEAgLTQ1MCw0ICs0NTMsMTEgQEAg aW50ZWxfcmluZ19nZXRfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICAg CXJldHVybiByaW5nLT5vdXRzdGFuZGluZ19sYXp5X3JlcXVlc3Q7Cj4gICB9Cj4KPiArI2RlZmlu ZSBNSU5fU1BBQ0VfRk9SX0FERF9SRVFVRVNUCTEyOAoKMS4gQXMgZmFyIGFzIEkga25vdyBJTEsg aXMgc3RpbGwgYnJva2VuIHdoZW4gdXNpbmcgdGhpcyBzaXplLgoKMi4gT25jZSB3ZSBnZXQgYSBz aXplIHRoYXQgd29ya3Mgd2UgbmVlZCBhIGNvbW1lbnQgaGVyZSBzYXlpbmcgdGhhdCB0aGlzIApp cyBhbiBlbXBpcmljYWxseSBlc3RhYmxpc2hlZCBjb25zdGFudCBidXQgdGhhdCBpdCBnZXRzIHRo ZSBqb2IgZG9uZS4KCQoKPiArCj4gK3ZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9yZXNl cnZlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLCBpbnQgc2l6ZSk7Cj4gK3ZvaWQg aW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9jYW5jZWwoc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmdidWYpOwo+ICt2b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfdXNlKHN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKTsKPiArdm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3Nw YWNlX2VuZChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1Zik7Cj4gKwo+ICAgI2VuZGlm IC8qIF9JTlRFTF9SSU5HQlVGRkVSX0hfICovCj4KCjMuIFdlIHN0aWxsIG5lZWQgYSBkZWNlbnQg Y29tbWVudCBvdXRsaW5pbmcgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIAp0aGVzZSBmdW5jdGlv bnMsIHdoZW4gdGhleSBhcmUgdXNlZCBhbmQgd2hhdCB0aGVpciByZXNwZWN0aXZlIHB1cnBvc2Vz IAphcmUgZXRjLiBTZWUgY29tbWVudCBpbiBsYXN0IHBhdGNoIHNlcmllcyBmb3IgbW9yZSBkZXRh aWxzLgoKVGhhbmtzLApUb21hcwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK