From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 02/55] drm/i915: Reserve ring buffer space for i915_add_request() commands Date: Wed, 17 Jun 2015 16:04:41 +0200 Message-ID: <20150617140441.GY23637@phenom.ffwll.local> References: <1432917856-12261-3-git-send-email-John.C.Harrison@Intel.com> <1433419594-32559-1-git-send-email-John.C.Harrison@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f43.google.com (mail-wg0-f43.google.com [74.125.82.43]) by gabe.freedesktop.org (Postfix) with ESMTP id 1FB686E1C3 for ; Wed, 17 Jun 2015 07:01:57 -0700 (PDT) Received: by wgez8 with SMTP id z8so37885439wge.0 for ; Wed, 17 Jun 2015 07:01:56 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1433419594-32559-1-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 Cc: Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKdW4gMDQsIDIwMTUgYXQgMDE6MDY6MzRQTSArMDEwMCwgSm9obi5DLkhhcnJpc29u QEludGVsLmNvbSB3cm90ZToKPiBGcm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25A SW50ZWwuY29tPgo+IAo+IEl0IGlzIGEgYmFkIGlkZWEgZm9yIGk5MTVfYWRkX3JlcXVlc3QoKSB0 byBmYWlsLiBUaGUgd29yayB3aWxsIGFscmVhZHkgaGF2ZSBiZWVuCj4gc2VuZCB0byB0aGUgcmlu ZyBhbmQgd2lsbCBiZSBwcm9jZXNzZWQsIGJ1dCB0aGVyZSB3aWxsIG5vdCBiZSBhbnkgdHJhY2tp bmcgb3IKPiBtYW5hZ2VtZW50IG9mIHRoYXQgd29yay4KPiAKPiBUaGUgb25seSB3YXkgdGhlIGFk ZCByZXF1ZXN0IGNhbGwgY2FuIGZhaWwgaXMgaWYgaXQgY2FuJ3Qgd3JpdGUgaXRzIGVwaWxvZ3Vl Cj4gY29tbWFuZHMgdG8gdGhlIHJpbmcgKGNhY2hlIGZsdXNoaW5nLCBzZXFubyB1cGRhdGVzLCBp bnRlcnJ1cHQgc2lnbmFsbGluZykuIFRoZQo+IHJlYXNvbnMgZm9yIHRoYXQgYXJlIG1vc3RseSBk b3duIHRvIHJ1bm5pbmcgb3V0IG9mIHJpbmcgYnVmZmVyIHNwYWNlIGFuZCB0aGUKPiBwcm9ibGVt cyBhc3NvY2lhdGVkIHdpdGggdHJ5aW5nIHRvIGdldCBzb21lIG1vcmUuIFRoaXMgcGF0Y2ggcHJl dmVudHMgdGhhdAo+IHNpdHVhdGlvbiBmcm9tIGhhcHBlbmluZyBpbiB0aGUgZmlyc3QgcGxhY2Uu Cj4gCj4gV2hlbiBhIHJlcXVlc3QgaXMgY3JlYXRlZCwgaXQgbWFya3Mgc3VmZmljaWVudCBzcGFj ZSBhcyByZXNlcnZlZCBmb3IgdGhlCj4gZXBpbG9ndWUgY29tbWFuZHMuIFRodXMgZ3VhcmFudGVl aW5nIHRoYXQgYnkgdGhlIHRpbWUgdGhlIGVwaWxvZ3VlIGlzIHdyaXR0ZW4sCj4gdGhlcmUgd2ls bCBiZSBwbGVudHkgb2Ygc3BhY2UgZm9yIGl0LiBOb3RlIHRoYXQgYSByaW5nX2JlZ2luKCkgY2Fs bCBpcyByZXF1aXJlZAo+IHRvIGFjdHVhbGx5IHJlc2VydmUgdGhlIHNwYWNlIChhbmQgZG8gYW55 IHBvdGVudGlhbCB3YWl0aW5nKS4gSG93ZXZlciwgdGhhdCBpcwo+IG5vdCBjdXJyZW50bHkgZG9u ZSBhdCByZXF1ZXN0IGNyZWF0aW9uIHRpbWUuIFRoaXMgaXMgYmVjYXVzZSB0aGUgcmluZ19iZWdp bigpCj4gY29kZSBjYW4gYWxsb2NhdGUgYSByZXF1ZXN0LiBIZW5jZSBjYWxsaW5nIGJlZ2luKCkg ZnJvbSB0aGUgcmVxdWVzdCBhbGxvY2F0aW9uCj4gY29kZSB3b3VsZCBsZWFkIHRvIGluZmluaXRl IHJlY3Vyc2lvbiEgTGF0ZXIgcGF0Y2hlcyBpbiB0aGlzIHNlcmllcyByZW1vdmUgdGhlCj4gbmVl ZCBmb3IgYmVnaW4oKSB0byBkbyB0aGUgYWxsb2NhdGUuIEF0IHRoYXQgcG9pbnQsIGl0IGJlY29t ZXMgc2FmZSBmb3IgdGhlCj4gYWxsb2NhdGUgdG8gY2FsbCBiZWdpbigpIGFuZCByZWFsbHkgcmVz ZXJ2ZSB0aGUgc3BhY2UuCj4gCj4gVW50aWwgdGhlbiwgdGhlcmUgaXMgYSBwb3RlbnRpYWwgZm9y IGluc3VmZmljaWVudCBzcGFjZSB0byBiZSBhdmFpbGFibGUgYXQgdGhlCj4gcG9pbnQgb2YgY2Fs bGluZyBpOTE1X2FkZF9yZXF1ZXN0KCkuIEhvd2V2ZXIsIHRoYXQgd291bGQgb25seSBiZSBpbiB0 aGUgY2FzZQo+IHdoZXJlIHRoZSByZXF1ZXN0IHdhcyBjcmVhdGVkIGFuZCBpbW1lZGlhdGVseSBz dWJtaXR0ZWQgd2l0aG91dCBldmVyIGNhbGxpbmcKPiByaW5nX2JlZ2luKCkgYW5kIGFkZGluZyBh bnkgd29yayB0byB0aGF0IHJlcXVlc3QuIFdoaWNoIHNob3VsZCBuZXZlciBoYXBwZW4uIEFuZAo+ IGV2ZW4gaWYgaXQgZG9lcywgYW5kIGlmIHRoYXQgcmVxdWVzdCBoYXBwZW5zIHRvIGZhbGwgZG93 biB0aGUgdGlueSB3aW5kb3cgb2YKPiBvcHBvcnR1bml0eSBmb3IgZmFpbGluZyBkdWUgdG8gYmVp bmcgb3V0IG9mIHJpbmcgc3BhY2UgdGhlbiBkb2VzIGl0IHJlYWxseQo+IG1hdHRlciBiZWNhdXNl IHRoZSByZXF1ZXN0IHdhc24ndCBkb2luZyBhbnl0aGluZyBpbiB0aGUgZmlyc3QgcGxhY2U/Cj4g Cj4gdjI6IFVwZGF0ZWQgdGhlICdyZXNlcnZlZCBzcGFjZSB0b28gc21hbGwnIHdhcm5pbmcgdG8g aW5jbHVkZSB0aGUgb2ZmZW5kaW5nCj4gc2l6ZXMuIEFkZGVkIGEgJ2NhbmNlbCcgb3BlcmF0aW9u IHRvIGNsZWFuIHVwIHdoZW4gYSByZXF1ZXN0IGlzIGFiYW5kb25lZC4gQWRkZWQKPiByZS1pbml0 aWFsaXNhdGlvbiBvZiB0cmFja2luZyBzdGF0ZSBhZnRlciBhIGJ1ZmZlciB3cmFwIHRvIGtlZXAg dGhlIHNhbml0eQo+IGNoZWNrcyBhY2N1cmF0ZS4KPiAKPiB2MzogSW5jcmVtZW50ZWQgdGhlIHJl c2VydmVkIHNpemUgdG8gYWNjb21tb2RhdGUgSXJvbmxha2UgKGFmdGVyIGZpbmFsbHkKPiBtYW5h Z2luZyB0byBydW4gb24gYW4gSUxLIHN5c3RlbSkuIEFsc28gZml4ZWQgbWlzc2luZyB3cmFwIGNv ZGUgaW4gTFJDIG1vZGUuCj4gCj4gRm9yOiBWSVotNTExNQo+IFNpZ25lZC1vZmYtYnk6IEpvaG4g SGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+CgpGcm9tIHRoZSBsYXN0IHJldmll dyByb3VuZCB0aGVyZSdzIHN0aWxsIG15IHF1ZXN0aW9uIHdydCB0aGUgY29ycmVjdG5lc3MKb2Yg dGhlIHJlc2VydmF0aW9uIG92ZXJmbG93IHZzLiB3cmFwcGluZyBvdXRzdGFuZGluZzoKCmh0dHA6 Ly9hcnRpY2xlLmdtYW5lLm9yZy9nbWFuZS5jb21wLmZyZWVkZXNrdG9wLnhvcmcuZHJpdmVycy5p bnRlbC81NjU3NQoKQWxzbyB3aGVuIHJlc2VuZGluZyBwYXRjaGVzLCBlc3BlY2lhbGx5IGFmdGVy IHN1Y2ggYSBsb25nIGRlbGF5IHBsZWFzZQpsZWF2ZSBzb21lIGluZGljYXRpb24gb2Ygd2hhdCB5 b3UndmUgZGVjaWRlZCB0byBkbyB3cnQgcmV2aWV3IGNvbW1lbnRzLgpFaXRoZXIgYXMgYSByZXBs eSBpbiB0aGUgcmV2aWV3IGRpc2N1c3Npb24gKHByZWZlcnJlZCkgb3IgYXQgbGVhc3QgYXMgYW4K dXBkYXRlIGluIHRoZSBjb3ZlciBsZXR0ZXIgb3IgcGVyLXBhdGNoIGNoYW5nZWxvZy4gT3RoZXJ3 aXNlIHJldmlld2VycwpuZWVkIHRvIHJldmVyc2UtZW5naW5lZXIgd2hhdCB5b3UgaGF2ZSBvciBo YXZlbid0IGRvbmUgYnkgZGlmZmluZyBwYXRjaGVzLAp3aGljaCBpcyBqdXN0IG5vdCB0aGF0IGVm ZmljaWVudC4KLURhbmllbAoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCAgICAgICAgIHwgICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAg ICAgICB8ICAgMzcgKysrKysrKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMgICAgICAgIHwgICAxOCArKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmMgfCAgIDY4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwgICAyNSArKysrKysr KysrKysKPiAgNSBmaWxlcyBjaGFuZ2VkLCAxNDcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCBlOWQ3NmYzLi40NGRlZTMxIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTIxODcsNiArMjE4Nyw3IEBAIHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCB7Cj4gIAo+ICBpbnQgaTkxNV9nZW1fcmVxdWVzdF9hbGxv YyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAJCQkgICBzdHJ1Y3QgaW50ZWxfY29u dGV4dCAqY3R4KTsKPiArdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2NhbmNlbChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Cj4gIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9mcmVlKHN0cnVj dCBrcmVmICpyZXFfcmVmKTsKPiAgCj4gIHN0YXRpYyBpbmxpbmUgdWludDMyX3QKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKPiBpbmRleCA3OGY2YTg5Li41MTZlOWI3IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCj4gQEAgLTI0OTUsNiArMjQ5NSwxMyBAQCBpbnQgX19pOTE1X2FkZF9yZXF1 ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gIAl9IGVsc2UKPiAgCQlyaW5nYnVm ID0gcmluZy0+YnVmZmVyOwo+ICAKPiArCS8qCj4gKwkgKiBUbyBlbnN1cmUgdGhhdCB0aGlzIGNh bGwgd2lsbCBub3QgZmFpbCwgc3BhY2UgZm9yIGl0cyBlbWlzc2lvbnMKPiArCSAqIHNob3VsZCBh bHJlYWR5IGhhdmUgYmVlbiByZXNlcnZlZCBpbiB0aGUgcmluZyBidWZmZXIuIExldCB0aGUgcmlu Zwo+ICsJICoga25vdyB0aGF0IGl0IGlzIHRpbWUgdG8gdXNlIHRoYXQgc3BhY2UgdXAuCj4gKwkg Ki8KPiArCWludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfdXNlKHJpbmdidWYpOwo+ICsKPiAgCXJl cXVlc3Rfc3RhcnQgPSBpbnRlbF9yaW5nX2dldF90YWlsKHJpbmdidWYpOwo+ICAJLyoKPiAgCSAq IEVtaXQgYW55IG91dHN0YW5kaW5nIGZsdXNoZXMgLSBleGVjYnVmIGNhbiBmYWlsIHRvIGVtaXQg dGhlIGZsdXNoCj4gQEAgLTI1NzcsNiArMjU4NCw5IEBAIGludCBfX2k5MTVfYWRkX3JlcXVlc3Qo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgCQkJICAgcm91bmRfamlmZmllc191cF9y ZWxhdGl2ZShIWikpOwo+ICAJaW50ZWxfbWFya19idXN5KGRldl9wcml2LT5kZXYpOwo+ICAKPiAr CS8qIFNhbml0eSBjaGVjayB0aGF0IHRoZSByZXNlcnZlZCBzaXplIHdhcyBsYXJnZSBlbm91Z2gu ICovCj4gKwlpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2VuZChyaW5nYnVmKTsKPiArCj4gIAly ZXR1cm4gMDsKPiAgfQo+ICAKPiBAQCAtMjY3Niw2ICsyNjg2LDI2IEBAIGludCBpOTE1X2dlbV9y ZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gIAlpZiAocmV0KQo+ ICAJCWdvdG8gZXJyOwo+ICAKPiArCS8qCj4gKwkgKiBSZXNlcnZlIHNwYWNlIGluIHRoZSByaW5n IGJ1ZmZlciBmb3IgYWxsIHRoZSBjb21tYW5kcyByZXF1aXJlZCB0bwo+ICsJICogZXZlbnR1YWxs eSBlbWl0IHRoaXMgcmVxdWVzdC4gVGhpcyBpcyB0byBndWFyYW50ZWUgdGhhdCB0aGUKPiArCSAq IGk5MTVfYWRkX3JlcXVlc3QoKSBjYWxsIGNhbid0IGZhaWwuIE5vdGUgdGhhdCB0aGUgcmVzZXJ2 ZSBtYXkgbmVlZAo+ICsJICogdG8gYmUgcmVkb25lIGlmIHRoZSByZXF1ZXN0IGlzIG5vdCBhY3R1 YWxseSBzdWJtaXR0ZWQgc3RyYWlnaHQKPiArCSAqIGF3YXksIGUuZy4gYmVjYXVzZSBhIEdQVSBz Y2hlZHVsZXIgaGFzIGRlZmVycmVkIGl0Lgo+ICsJICoKPiArCSAqIE5vdGUgZnVydGhlciB0aGF0 IHRoaXMgY2FsbCBtZXJlbHkgbm90ZXMgdGhlIHJlc2VydmUgcmVxdWVzdC4gQQo+ICsJICogc3Vi c2VxdWVudCBjYWxsIHRvICpfcmluZ19iZWdpbigpIGlzIHJlcXVpcmVkIHRvIGFjdHVhbGx5IGVu c3VyZQo+ICsJICogdGhhdCB0aGUgcmVzZXJ2YXRpb24gaXMgYXZhaWxhYmxlLiBXaXRob3V0IHRo ZSBiZWdpbiwgaWYgdGhlCj4gKwkgKiByZXF1ZXN0IGNyZWF0b3IgaW1tZWRpYXRlbHkgc3VibWl0 dGVkIHRoZSByZXF1ZXN0IHdpdGhvdXQgYWRkaW5nCj4gKwkgKiBhbnkgY29tbWFuZHMgdG8gaXQg dGhlbiB0aGVyZSBtaWdodCBub3QgYWN0dWFsbHkgYmUgc3VmZmljaWVudAo+ICsJICogcm9vbSBm b3IgdGhlIHN1Ym1pc3Npb24gY29tbWFuZHMuIFVuZm9ydHVuYXRlbHksIHRoZSBjdXJyZW50Cj4g KwkgKiAqX3JpbmdfYmVnaW4oKSBpbXBsZW1lbnRhdGlvbnMgcG90ZW50aWFsbHkgY2FsbCBiYWNr IGhlcmUgdG8KPiArCSAqIGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2MoKS4gVGh1cyBjYWxsaW5nIF9i ZWdpbigpIGhlcmUgd291bGQgbGVhZCB0bwo+ICsJICogaW5maW5pdGUgcmVjdXJzaW9uISBVbnRp bCB0aGF0IGJhY2sgY2FsbCBwYXRoIGlzIHJlbW92ZWQsIGl0IGlzCj4gKwkgKiBuZWNlc3Nhcnkg dG8gZG8gYSBtYW51YWwgX2JlZ2luKCkgb3V0c2lkZS4KPiArCSAqLwo+ICsJaW50ZWxfcmluZ19y ZXNlcnZlZF9zcGFjZV9yZXNlcnZlKHJlcS0+cmluZ2J1ZiwgTUlOX1NQQUNFX0ZPUl9BRERfUkVR VUVTVCk7Cj4gKwo+ICAJcmluZy0+b3V0c3RhbmRpbmdfbGF6eV9yZXF1ZXN0ID0gcmVxOwo+ICAJ cmV0dXJuIDA7Cj4gIAo+IEBAIC0yNjg0LDYgKzI3MTQsMTMgQEAgZXJyOgo+ICAJcmV0dXJuIHJl dDsKPiAgfQo+ICAKPiArdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2NhbmNlbChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiArewo+ICsJaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9j YW5jZWwocmVxLT5yaW5nYnVmKTsKPiArCj4gKwlpOTE1X2dlbV9yZXF1ZXN0X3VucmVmZXJlbmNl KHJlcSk7Cj4gK30KPiArCj4gIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqCj4gIGk5MTVf Z2VtX2ZpbmRfYWN0aXZlX3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAg ewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggNmE1ZWQwNy4uNDJhNzU2ZCAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gQEAgLTY4Nyw2ICs2ODcsOSBAQCBzdGF0aWMg aW50IGxvZ2ljYWxfcmluZ193YWl0X2Zvcl9zcGFjZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZ2J1ZiwKPiAgCXVuc2lnbmVkIHNwYWNlOwo+ICAJaW50IHJldDsKPiAgCj4gKwkvKiBUaGUg d2hvbGUgcG9pbnQgb2YgcmVzZXJ2aW5nIHNwYWNlIGlzIHRvIG5vdCB3YWl0ISAqLwo+ICsJV0FS Tl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwo+ICsKPiAgCWlmIChpbnRlbF9yaW5nX3Nw YWNlKHJpbmdidWYpID49IGJ5dGVzKQo+ICAJCXJldHVybiAwOwo+ICAKPiBAQCAtNzQ3LDYgKzc1 MCw5IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3dyYXBfYnVmZmVyKHN0cnVjdCBpbnRlbF9y aW5nYnVmZmVyICpyaW5nYnVmLAo+ICAJdWludDMyX3QgX19pb21lbSAqdmlydDsKPiAgCWludCBy ZW0gPSByaW5nYnVmLT5zaXplIC0gcmluZ2J1Zi0+dGFpbDsKPiAgCj4gKwkvKiBDYW4ndCB3cmFw IGlmIHNwYWNlIGhhcyBhbHJlYWR5IGJlZW4gcmVzZXJ2ZWQhICovCj4gKwlXQVJOX09OKHJpbmdi dWYtPnJlc2VydmVkX2luX3VzZSk7Cj4gKwo+ICAJaWYgKHJpbmdidWYtPnNwYWNlIDwgcmVtKSB7 Cj4gIAkJaW50IHJldCA9IGxvZ2ljYWxfcmluZ193YWl0X2Zvcl9zcGFjZShyaW5nYnVmLCBjdHgs IHJlbSk7Cj4gIAo+IEBAIC03NzAsMTAgKzc3NiwyMiBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmlu Z19wcmVwYXJlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLAo+ICB7Cj4gIAlpbnQg cmV0Owo+ICAKPiArCWlmICghcmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKQo+ICsJCWJ5dGVzICs9 IHJpbmdidWYtPnJlc2VydmVkX3NpemU7Cj4gKwo+ICAJaWYgKHVubGlrZWx5KHJpbmdidWYtPnRh aWwgKyBieXRlcyA+IHJpbmdidWYtPmVmZmVjdGl2ZV9zaXplKSkgewo+ICsJCVdBUk5fT04ocmlu Z2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKPiArCj4gIAkJcmV0ID0gbG9naWNhbF9yaW5nX3dyYXBf YnVmZmVyKHJpbmdidWYsIGN0eCk7Cj4gIAkJaWYgKHVubGlrZWx5KHJldCkpCj4gIAkJCXJldHVy biByZXQ7Cj4gKwo+ICsJCWlmKHJpbmdidWYtPnJlc2VydmVkX3NpemUpIHsKPiArCQkJdWludDMy X3Qgc2l6ZSA9IHJpbmdidWYtPnJlc2VydmVkX3NpemU7Cj4gKwo+ICsJCQlpbnRlbF9yaW5nX3Jl c2VydmVkX3NwYWNlX2NhbmNlbChyaW5nYnVmKTsKPiArCQkJaW50ZWxfcmluZ19yZXNlcnZlZF9z cGFjZV9yZXNlcnZlKHJpbmdidWYsIHNpemUpOwo+ICsJCX0KPiAgCX0KPiAgCj4gIAlpZiAodW5s aWtlbHkocmluZ2J1Zi0+c3BhY2UgPCBieXRlcykpIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5jCj4gaW5kZXggZDkzNGY4NS4uNzRjMjIyMiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBAQCAtMjEwMyw2ICsyMTAzLDkgQEAgc3Rh dGljIGludCByaW5nX3dhaXRfZm9yX3NwYWNlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcs IGludCBuKQo+ICAJdW5zaWduZWQgc3BhY2U7Cj4gIAlpbnQgcmV0Owo+ICAKPiArCS8qIFRoZSB3 aG9sZSBwb2ludCBvZiByZXNlcnZpbmcgc3BhY2UgaXMgdG8gbm90IHdhaXQhICovCj4gKwlXQVJO X09OKHJpbmdidWYtPnJlc2VydmVkX2luX3VzZSk7Cj4gKwo+ICAJaWYgKGludGVsX3Jpbmdfc3Bh Y2UocmluZ2J1ZikgPj0gbikKPiAgCQlyZXR1cm4gMDsKPiAgCj4gQEAgLTIxMzAsNiArMjEzMyw5 IEBAIHN0YXRpYyBpbnQgaW50ZWxfd3JhcF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nKQo+ICAJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSByaW5nLT5i dWZmZXI7Cj4gIAlpbnQgcmVtID0gcmluZ2J1Zi0+c2l6ZSAtIHJpbmdidWYtPnRhaWw7Cj4gIAo+ ICsJLyogQ2FuJ3Qgd3JhcCBpZiBzcGFjZSBoYXMgYWxyZWFkeSBiZWVuIHJlc2VydmVkISAqLwo+ ICsJV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwo+ICsKPiAgCWlmIChyaW5nYnVm LT5zcGFjZSA8IHJlbSkgewo+ICAJCWludCByZXQgPSByaW5nX3dhaXRfZm9yX3NwYWNlKHJpbmcs IHJlbSk7Cj4gIAkJaWYgKHJldCkKPiBAQCAtMjE4MCwxNiArMjE4Niw3NCBAQCBpbnQgaW50ZWxf cmluZ19hbGxvY19yZXF1ZXN0X2V4dHJhcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cXVlc3QpCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBfX2ludGVsX3Jpbmdf cHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+IC0JCQkJaW50IGJ5dGVzKQo+ ICt2b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfcmVzZXJ2ZShzdHJ1Y3QgaW50ZWxfcmlu Z2J1ZmZlciAqcmluZ2J1ZiwgaW50IHNpemUpCj4gK3sKPiArCS8qIE5COiBVbnRpbCByZXF1ZXN0 IG1hbmFnZW1lbnQgaXMgZnVsbHkgdGlkaWVkIHVwIGFuZCB0aGUgT0xSIGlzCj4gKwkgKiByZW1v dmVkLCB0aGVyZSBhcmUgdG9vIG1hbnkgd2F5cyBmb3IgZ2V0IGZhbHNlIGhpdHMgb24gdGhpcwo+ ICsJICogYW50aS1yZWN1cnNpb24gY2hlY2shICovCj4gKwkvKldBUk5fT04ocmluZ2J1Zi0+cmVz ZXJ2ZWRfc2l6ZSk7Ki8KPiArCVdBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKPiAr Cj4gKwlyaW5nYnVmLT5yZXNlcnZlZF9zaXplID0gc2l6ZTsKPiArCj4gKwkvKgo+ICsJICogUmVh bGx5IG5lZWQgdG8gY2FsbCBfYmVnaW4oKSBoZXJlIGJ1dCB0aGF0IGN1cnJlbnRseSBsZWFkcyB0 bwo+ICsJICogcmVjdXJzaW9uIHByb2JsZW1zISBUaGlzIHdpbGwgYmUgZml4ZWQgbGF0ZXIgYnV0 IGZvciBub3cganVzdAo+ICsJICogcmV0dXJuIGFuZCBob3BlIGZvciB0aGUgYmVzdC4gTm90ZSB0 aGF0IHRoZXJlIGlzIG9ubHkgYSByZWFsCj4gKwkgKiBwcm9ibGVtIGlmIHRoZSBjcmVhdGUgb2Yg dGhlIHJlcXVlc3QgbmV2ZXIgYWN0dWFsbHkgY2FsbHMgX2JlZ2luKCkKPiArCSAqIGJ1dCBpZiB0 aGV5IGFyZSBub3Qgc3VibWl0dGluZyBhbnkgd29yayB0aGVuIHdoeSBkaWQgdGhleSBjcmVhdGUK PiArCSAqIHRoZSByZXF1ZXN0IGluIHRoZSBmaXJzdCBwbGFjZT8KPiArCSAqLwo+ICt9Cj4gKwo+ ICt2b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfY2FuY2VsKHN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nYnVmKQo+ICt7Cj4gKwlXQVJOX09OKHJpbmdidWYtPnJlc2VydmVkX2luX3Vz ZSk7Cj4gKwo+ICsJcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSAgID0gMDsKPiArCXJpbmdidWYtPnJl c2VydmVkX2luX3VzZSA9IGZhbHNlOwo+ICt9Cj4gKwo+ICt2b2lkIGludGVsX3JpbmdfcmVzZXJ2 ZWRfc3BhY2VfdXNlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQo+ICt7Cj4gKwlX QVJOX09OKHJpbmdidWYtPnJlc2VydmVkX2luX3VzZSk7Cj4gKwo+ICsJcmluZ2J1Zi0+cmVzZXJ2 ZWRfaW5fdXNlID0gdHJ1ZTsKPiArCXJpbmdidWYtPnJlc2VydmVkX3RhaWwgICA9IHJpbmdidWYt PnRhaWw7Cj4gK30KPiArCj4gK3ZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9lbmQoc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCj4gK3sKPiArCVdBUk5fT04oIXJpbmdidWYt PnJlc2VydmVkX2luX3VzZSk7Cj4gKwlXQVJOKHJpbmdidWYtPnRhaWwgPiByaW5nYnVmLT5yZXNl cnZlZF90YWlsICsgcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSwKPiArCSAgICAgInJlcXVlc3QgcmVz ZXJ2ZWQgc2l6ZSB0b28gc21hbGw6ICVkIHZzICVkIVxuIiwKPiArCSAgICAgcmluZ2J1Zi0+dGFp bCAtIHJpbmdidWYtPnJlc2VydmVkX3RhaWwsIHJpbmdidWYtPnJlc2VydmVkX3NpemUpOwo+ICsK PiArCXJpbmdidWYtPnJlc2VydmVkX3NpemUgICA9IDA7Cj4gKwlyaW5nYnVmLT5yZXNlcnZlZF9p bl91c2UgPSBmYWxzZTsKPiArfQo+ICsKPiArc3RhdGljIGludCBfX2ludGVsX3JpbmdfcHJlcGFy ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBpbnQgYnl0ZXMpCj4gIHsKPiAgCXN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcmluZy0+YnVmZmVyOwo+ICAJaW50IHJldDsK PiAgCj4gKwlpZiAoIXJpbmdidWYtPnJlc2VydmVkX2luX3VzZSkKPiArCQlieXRlcyArPSByaW5n YnVmLT5yZXNlcnZlZF9zaXplOwo+ICsKPiAgCWlmICh1bmxpa2VseShyaW5nYnVmLT50YWlsICsg Ynl0ZXMgPiByaW5nYnVmLT5lZmZlY3RpdmVfc2l6ZSkpIHsKPiArCQlXQVJOX09OKHJpbmdidWYt PnJlc2VydmVkX2luX3VzZSk7Cj4gKwo+ICAJCXJldCA9IGludGVsX3dyYXBfcmluZ19idWZmZXIo cmluZyk7Cj4gIAkJaWYgKHVubGlrZWx5KHJldCkpCj4gIAkJCXJldHVybiByZXQ7Cj4gKwo+ICsJ CWlmKHJpbmdidWYtPnJlc2VydmVkX3NpemUpIHsKPiArCQkJdWludDMyX3Qgc2l6ZSA9IHJpbmdi dWYtPnJlc2VydmVkX3NpemU7Cj4gKwo+ICsJCQlpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2Nh bmNlbChyaW5nYnVmKTsKPiArCQkJaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9yZXNlcnZlKHJp bmdidWYsIHNpemUpOwo+ICsJCX0KPiAgCX0KPiAgCj4gIAlpZiAodW5saWtlbHkocmluZ2J1Zi0+ c3BhY2UgPCBieXRlcykpIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5o Cj4gaW5kZXggMzlmNmRmYy4uYmYyYWMyOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmgKPiBAQCAtMTA1LDYgKzEwNSw5IEBAIHN0cnVjdCBpbnRlbF9yaW5nYnVm ZmVyIHsKPiAgCWludCBzcGFjZTsKPiAgCWludCBzaXplOwo+ICAJaW50IGVmZmVjdGl2ZV9zaXpl Owo+ICsJaW50IHJlc2VydmVkX3NpemU7Cj4gKwlpbnQgcmVzZXJ2ZWRfdGFpbDsKPiArCWJvb2wg cmVzZXJ2ZWRfaW5fdXNlOwo+ICAKPiAgCS8qKiBXZSB0cmFjayB0aGUgcG9zaXRpb24gb2YgdGhl IHJlcXVlc3RzIGluIHRoZSByaW5nIGJ1ZmZlciwgYW5kCj4gIAkgKiB3aGVuIGVhY2ggaXMgcmV0 aXJlZCB3ZSBpbmNyZW1lbnQgbGFzdF9yZXRpcmVkX2hlYWQgYXMgdGhlIEdQVQo+IEBAIC00NTAs NCArNDUzLDI2IEBAIGludGVsX3JpbmdfZ2V0X3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZykKPiAgCXJldHVybiByaW5nLT5vdXRzdGFuZGluZ19sYXp5X3JlcXVlc3Q7Cj4gIH0K PiAgCj4gKy8qCj4gKyAqIEFyYml0cmFyeSBzaXplIGZvciBsYXJnZXN0IHBvc3NpYmxlICdhZGQg cmVxdWVzdCcgc2VxdWVuY2UuIFRoZSBjb2RlIHBhdGhzCj4gKyAqIGFyZSBjb21wbGV4IGFuZCB2 YXJpYWJsZS4gRW1waXJpY2FsIG1lYXN1cmVtZW50IHNob3dzIHRoYXQgdGhlIHdvcnN0IGNhc2UK PiArICogaXMgSUxLIGF0IDEzNiB3b3Jkcy4gUmVzZXJ2aW5nIHRvbyBtdWNoIGlzIGJldHRlciB0 aGFuIHJlc2VydmluZyB0b28gbGl0dGxlCj4gKyAqIGFzIHRoYXQgYWxsb3dzIGZvciBjb3JuZXIg Y2FzZXMgdGhhdCBtaWdodCBoYXZlIGJlZW4gbWlzc2VkLiBTbyB0aGUgZmlndXJlCj4gKyAqIGhh cyBiZWVuIHJvdW5kZWQgdXAgdG8gMTYwIHdvcmRzLgo+ICsgKi8KPiArI2RlZmluZSBNSU5fU1BB Q0VfRk9SX0FERF9SRVFVRVNUCTE2MAo+ICsKPiArLyoKPiArICogUmVzZXJ2ZSBzcGFjZSBpbiB0 aGUgcmluZyB0byBndWFyYW50ZWUgdGhhdCB0aGUgaTkxNV9hZGRfcmVxdWVzdCgpIGNhbGwKPiAr ICogd2lsbCBhbHdheXMgaGF2ZSBzdWZmaWNpZW50IHJvb20gdG8gZG8gaXRzIHN0dWZmLiBUaGUg cmVxdWVzdCBjcmVhdGlvbgo+ICsgKiBjb2RlIGNhbGxzIHRoaXMgYXV0b21hdGljYWxseS4KPiAr ICovCj4gK3ZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9yZXNlcnZlKHN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICpyaW5nYnVmLCBpbnQgc2l6ZSk7Cj4gKy8qIENhbmNlbCB0aGUgcmVzZXJ2 YXRpb24sIGUuZy4gYmVjYXVzZSB0aGUgcmVxdWVzdCBpcyBiZWluZyBkaXNjYXJkZWQuICovCj4g K3ZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9jYW5jZWwoc3RydWN0IGludGVsX3Jpbmdi dWZmZXIgKnJpbmdidWYpOwo+ICsvKiBVc2UgdGhlIHJlc2VydmVkIHNwYWNlIC0gZm9yIHVzZSBi eSBpOTE1X2FkZF9yZXF1ZXN0KCkgb25seS4gKi8KPiArdm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVk X3NwYWNlX3VzZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1Zik7Cj4gKy8qIEZpbmlz aCB3aXRoIHRoZSByZXNlcnZlZCBzcGFjZSAtIGZvciB1c2UgYnkgaTkxNV9hZGRfcmVxdWVzdCgp IG9ubHkuICovCj4gK3ZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9lbmQoc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOwo+ICsKPiAgI2VuZGlmIC8qIF9JTlRFTF9SSU5HQlVG RkVSX0hfICovCj4gLS0gCj4gMS43LjkuNQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdp bmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK