From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: Re: [PATCH 05/59] drm/i915: Reserve ring buffer space for i915_add_request() commands Date: Tue, 31 Mar 2015 16:58:51 +0100 Message-ID: <551AC43B.3050003@intel.com> References: <1426768264-16996-1-git-send-email-John.C.Harrison@Intel.com> <1426768264-16996-6-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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 4D6386E70F for ; Tue, 31 Mar 2015 08:58:53 -0700 (PDT) In-Reply-To: <1426768264-16996-6-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 VGhyZWUgY29tbWVudHMgaW4gdGhpcyBvbmUuIFRoZSByZWFzb24gSSBtZW50aW9uIGl0IGlzIGJl Y2F1c2UgdHdvIGFyZSAKYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGF0Y2ggYW5kIG9uZSBpcyBjcmFt bWVkIGluIHRoZSBtaWRkbGUuCgpPbiAxOS8wMy8yMDE1IDEyOjMwLCBKb2huLkMuSGFycmlzb25A SW50ZWwuY29tIHdyb3RlOgo+IEZyb206IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJ bnRlbC5jb20+Cj4KPiBJdCBpcyBhIGJhZCBpZGVhIGZvciBpOTE1X2FkZF9yZXF1ZXN0KCkgdG8g ZmFpbC4gVGhlIHdvcmsgd2lsbCBhbHJlYWR5IGhhdmUgYmVlbgo+IHNlbmQgdG8gdGhlIHJpbmcg YW5kIHdpbGwgYmUgcHJvY2Vzc2VkLCBidXQgdGhlcmUgd2lsbCBub3QgYmUgYW55IHRyYWNraW5n IG9yCj4gbWFuYWdlbWVudCBvZiB0aGF0IHdvcmsuCj4KPiBUaGUgb25seSB3YXkgdGhlIGFkZCBy ZXF1ZXN0IGNhbGwgY2FuIGZhaWwgaXMgaWYgaXQgY2FuJ3Qgd3JpdGUgaXRzIGVwaWxvZ3VlCj4g Y29tbWFuZHMgdG8gdGhlIHJpbmcgKGNhY2hlIGZsdXNoaW5nLCBzZXFubyB1cGRhdGVzLCBpbnRl cnJ1cHQgc2lnbmFsbGluZykuIFRoZQo+IHJlYXNvbnMgZm9yIHRoYXQgYXJlIG1vc3RseSBkb3du IHRvIHJ1bm5pbmcgb3V0IG9mIHJpbmcgYnVmZmVyIHNwYWNlIGFuZCB0aGUKPiBwcm9ibGVtcyBh c3NvY2lhdGVkIHdpdGggdHJ5aW5nIHRvIGdldCBzb21lIG1vcmUuIFRoaXMgcGF0Y2ggcHJldmVu dHMgdGhhdAo+IHNpdHVhdGlvbiBmcm9tIGhhcHBlbmluZyBpbiB0aGUgZmlyc3QgcGxhY2UuCj4K PiBXaGVuIGEgcmVxdWVzdCBpcyBjcmVhdGVkLCBpdCBtYXJrcyBzdWZmaWNpZW50IHNwYWNlIGFz IHJlc2VydmVkIGZvciB0aGUKPiBlcGlsb2d1ZSBjb21tYW5kcy4gVGh1cyBndWFyYW50ZWVpbmcg dGhhdCBieSB0aGUgdGltZSB0aGUgZXBpbG9ndWUgaXMgd3JpdHRlbiwKPiB0aGVyZSB3aWxsIGJl IHBsZW50eSBvZiBzcGFjZSBmb3IgaXQuIE5vdGUgdGhhdCBhIHJpbmdfYmVnaW4oKSBjYWxsIGlz IHJlcXVpcmVkCj4gdG8gYWN0dWFsbHkgcmVzZXJ2ZSB0aGUgc3BhY2UgKGFuZCBkbyBhbnkgcG90 ZW50aWFsIHdhaXRpbmcpLiBIb3dldmVyLCB0aGF0IGlzCj4gbm90IGN1cnJlbnRseSBkb25lIGF0 IHJlcXVlc3QgY3JlYXRpb24gdGltZS4gVGhpcyBpcyBiZWNhdXNlIHRoZSByaW5nX2JlZ2luKCkK PiBjb2RlIGNhbiBhbGxvY2F0ZSBhIHJlcXVlc3QuIEhlbmNlIGNhbGxpbmcgYmVnaW4oKSBmcm9t IHRoZSByZXF1ZXN0IGFsbG9jYXRpb24KPiBjb2RlIHdvdWxkIGxlYWQgdG8gaW5maW5pdGUgcmVj dXJzaW9uISBMYXRlciBwYXRjaGVzIGluIHRoaXMgc2VyaWVzIHJlbW92ZSB0aGUKPiBuZWVkIGZv ciBiZWdpbigpIHRvIGRvIHRoZSBhbGxvY2F0ZS4gQXQgdGhhdCBwb2ludCwgaXQgYmVjb21lcyBz YWZlIGZvciB0aGUKPiBhbGxvY2F0ZSB0byBjYWxsIGJlZ2luKCkgYW5kIHJlYWxseSByZXNlcnZl IHRoZSBzcGFjZS4KPgo+IFVudGlsIHRoZW4sIHRoZXJlIGlzIGEgcG90ZW50aWFsIGZvciBpbnN1 ZmZpY2llbnQgc3BhY2UgdG8gYmUgYXZhaWxhYmxlIGF0IHRoZQo+IHBvaW50IG9mIGNhbGxpbmcg aTkxNV9hZGRfcmVxdWVzdCgpLiBIb3dldmVyLCB0aGF0IHdvdWxkIG9ubHkgYmUgaW4gdGhlIGNh c2UKPiB3aGVyZSB0aGUgcmVxdWVzdCB3YXMgY3JlYXRlZCBhbmQgaW1tZWRpYXRlbHkgc3VibWl0 dGVkIHdpdGhvdXQgZXZlciBjYWxsaW5nCj4gcmluZ19iZWdpbigpIGFuZCBhZGRpbmcgYW55IHdv cmsgdG8gdGhhdCByZXF1ZXN0LiBXaGljaCBzaG91bGQgbmV2ZXIgaGFwcGVuLiBBbmQKPiBldmVu IGlmIGl0IGRvZXMsIGFuZCBpZiB0aGF0IHJlcXVlc3QgaGFwcGVucyB0byBmYWxsIGRvd24gdGhl IHRpbnkgd2luZG93IG9mCj4gb3Bwb3J0dW5pdHkgZm9yIGZhaWxpbmcgZHVlIHRvIGJlaW5nIG91 dCBvZiByaW5nIHNwYWNlIHRoZW4gZG9lcyBpdCByZWFsbHkKPiBtYXR0ZXIgYmVjYXVzZSB0aGUg cmVxdWVzdCB3YXNuJ3QgZG9pbmcgYW55dGhpbmcgaW4gdGhlIGZpcnN0IHBsYWNlPwo+Cj4gRm9y OiBWSVotNTExNQo+IFNpZ25lZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNv bkBJbnRlbC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAg ICAgICAgfCAgICAxICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAg ICB8ICAgNDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jICAgICAgICB8ICAgMTIgKysrKysrKysKPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8ICAgNTAgKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwg ICAgOSArKysrKysKPiAgIDUgZmlsZXMgY2hhbmdlZCwgMTE3IGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA0ZWJkNDIxLi5mZTY0 NDZkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTIxMTUsNiArMjExNSw3IEBA IHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCB7Cj4KPiAgIGludCBpOTE1X2dlbV9yZXF1ZXN0 X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJCQkgICBzdHJ1Y3QgaW50 ZWxfY29udGV4dCAqY3R4KTsKPiArdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2NhbmNlbChzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Cj4gICB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfZnJl ZShzdHJ1Y3Qga3JlZiAqcmVxX3JlZik7Cj4KPiAgIHN0YXRpYyBpbmxpbmUgdWludDMyX3QKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCA0ODI0YWRmLi5mYzM4M2ZjIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTIzNDQsNiArMjM0NCwxMyBAQCBpbnQgX19pOTE1X2Fk ZF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJfSBlbHNlCj4gICAJ CXJpbmdidWYgPSByaW5nLT5idWZmZXI7Cj4KPiArCS8qCj4gKwkgKiBUbyBlbnN1cmUgdGhhdCB0 aGlzIGNhbGwgd2lsbCBub3QgZmFpbCwgc3BhY2UgZm9yIGl0J3MgZW1pc3Npb25zCgoxLiBOaXRw aWNrOiAic3BhY2UgZm9yIGl0J3MgZW1pc3Npb25zIiA6ICJpdCdzIiAtPiAiaXRzIgoKPiArCSAq IHNob3VsZCBhbHJlYWR5IGhhdmUgYmVlbiByZXNlcnZlZCBpbiB0aGUgcmluZyBidWZmZXIuIExl dCB0aGUgcmluZwo+ICsJICoga25vdyB0aGF0IGl0IGlzIHRpbWUgdG8gdXNlIHRoYXQgc3BhY2Ug dXAuCj4gKwkgKi8KPiArCWludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfdXNlKHJpbmdidWYsIE1J Tl9TUEFDRV9GT1JfQUREX1JFUVVFU1QpOwo+ICsKPiAgIAlyZXF1ZXN0X3N0YXJ0ID0gaW50ZWxf cmluZ19nZXRfdGFpbChyaW5nYnVmKTsKPiAgIAkvKgo+ICAgCSAqIEVtaXQgYW55IG91dHN0YW5k aW5nIGZsdXNoZXMgLSBleGVjYnVmIGNhbiBmYWlsIHRvIGVtaXQgdGhlIGZsdXNoCj4gQEAgLTI0 MjYsNiArMjQzMyw5IEBAIGludCBfX2k5MTVfYWRkX3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZywKPiAgIAkJCSAgIHJvdW5kX2ppZmZpZXNfdXBfcmVsYXRpdmUoSFopKTsKPiAg IAlpbnRlbF9tYXJrX2J1c3koZGV2X3ByaXYtPmRldik7Cj4KPiArCS8qIFNhbml0eSBjaGVjayB0 aGF0IHRoZSByZXNlcnZlZCBzaXplIHdhcyBsYXJnZSBlbm91Z2guICovCj4gKwlpbnRlbF9yaW5n X3Jlc2VydmVkX3NwYWNlX2VuZChyaW5nYnVmKTsKPiArCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4K PiBAQCAtMjU1MSwxMCArMjU2MSw0NyBAQCBpbnQgaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAgCQlyZXR1cm4gcmV0Owo+ICAgCX0KPgo+ICsJ LyoKPiArCSAqIFJlc2VydmUgc3BhY2UgaW4gdGhlIHJpbmcgYnVmZmVyIGZvciBhbGwgdGhlIGNv bW1hbmRzIHJlcXVpcmVkIHRvCj4gKwkgKiBldmVudHVhbGx5IGVtaXQgdGhpcyByZXF1ZXN0LiBU aGlzIGlzIHRvIGd1YXJhbnRlZSB0aGF0IHRoZQo+ICsJICogaTkxNV9hZGRfcmVxdWVzdCgpIGNh bGwgY2FuJ3QgZmFpbC4gTm90ZSB0aGF0IHRoZSByZXNlcnZlIG1heSBuZWVkCj4gKwkgKiB0byBi ZSByZWRvbmUgaWYgdGhlIHJlcXVlc3QgaXMgbm90IGFjdHVhbGx5IHN1Ym1pdHRlZCBzdHJhaWdo dAo+ICsJICogYXdheSwgZS5nLiBiZWNhdXNlIGEgR1BVIHNjaGVkdWxlciBoYXMgZGVmZXJyZWQg aXQuCj4gKwkgKgo+ICsJICogTm90ZSBmdXJ0aGVyIHRoYXQgdGhpcyBjYWxsIG1lcmVseSBub3Rl cyB0aGUgcmVzZXJ2ZSByZXF1ZXN0LiBBCj4gKwkgKiBzdWJzZXF1ZW50IGNhbGwgdG8gKl9yaW5n X2JlZ2luKCkgaXMgcmVxdWlyZWQgdG8gYWN0dWFsbHkgZW5zdXJlCj4gKwkgKiB0aGF0IHRoZSBy ZXNlcnZhdGlvbiBpcyBhdmFpbGFibGUuIFdpdGhvdXQgdGhlIGJlZ2luLCBpZiB0aGUKPiArCSAq IHJlcXVlc3QgY3JlYXRvciBpbW1lZGlhdGVseSBzdWJtaXR0ZWQgdGhlIHJlcXVlc3Qgd2l0aG91 dCBhZGRpbmcKPiArCSAqIGFueSBjb21tYW5kcyB0byBpdCB0aGVuIHRoZXJlIG1pZ2h0IG5vdCBh Y3R1YWxseSBiZSBzdWZmaWNpZW50Cj4gKwkgKiByb29tIGZvciB0aGUgc3VibWlzc2lvbiBjb21t YW5kcy4gVW5mb3J0dW5hdGVseSwgdGhlIGN1cnJlbnQKPiArCSAqICpfcmluZ19iZWdpbigpIGlt cGxlbWVudGF0aW9ucyBwb3RlbnRpYWxseSBjYWxsIGJhY2sgaGVyZSB0bwo+ICsJICogaTkxNV9n ZW1fcmVxdWVzdF9hbGxvYygpLiBUaHVzIGNhbGxpbmcgX2JlZ2luKCkgaGVyZSB3b3VsZCBsZWFk IHRvCj4gKwkgKiBpbmZpbml0ZSByZWN1cnNpb24hIFVudGlsIHRoYXQgYmFjayBjYWxsIHBhdGgg aXMgcmVtb3ZlZCwgaXQgaXMKPiArCSAqIG5lY2Vzc2FyeSB0byBkbyBhIG1hbnVhbCBfYmVnaW4o KSBvdXRzaWRlLgo+ICsJICovCj4gKwlyZXQgPSBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX3Jl c2VydmUocmVxdWVzdC0+cmluZ2J1ZiwgTUlOX1NQQUNFX0ZPUl9BRERfUkVRVUVTVCk7Cj4gKwlp ZiAocmV0KSB7Cj4gKwkJLyoKPiArCQkgKiBBdCB0aGlzIHBvaW50LCB0aGUgcmVxdWVzdCBpcyBm dWxseSBhbGxvY2F0ZWQgZXZlbiBpZiBub3QKPiArCQkgKiBmdWxseSBwcmVwYXJlZC4gVGh1cyBp dCBjYW4gYmUgY2xlYW5lZCB1cCB1c2luZyB0aGUgcHJvcGVyCj4gKwkJICogZnJlZSBjb2RlLgo+ ICsJCSAqLwo+ICsJCWk5MTVfZ2VtX3JlcXVlc3RfY2FuY2VsKHJlcXVlc3QpOwo+ICsJCXJldHVy biByZXQ7Cj4gKwl9Cj4gKwo+ICAgCXJpbmctPm91dHN0YW5kaW5nX2xhenlfcmVxdWVzdCA9IHJl cXVlc3Q7Cj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4KPiArdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2Nh bmNlbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiArewo+ICsJaW50ZWxfcmlu Z19yZXNlcnZlZF9zcGFjZV91c2UocmVxLT5yaW5nYnVmLCBNSU5fU1BBQ0VfRk9SX0FERF9SRVFV RVNUKTsKPiArCWludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfZW5kKHJlcS0+cmluZ2J1Zik7Cj4g Kwo+ICsJaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShyZXEpOwo+ICt9Cj4gKwo+ICAgc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoKPiAgIGk5MTVfZ2VtX2ZpbmRfYWN0aXZlX3JlcXVl c3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgIHsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYwo+IGluZGV4IDFjMzgzNGZjLi5iZGJkY2FlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMKPiBAQCAtNjM2LDYgKzYzNiw5IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3dh aXRfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwKPiAgIAlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7Cj4gICAJaW50IHJldCwgbmV3X3NwYWNlOwo+ Cj4gKwkvKiBUaGUgd2hvbGUgcG9pbnQgb2YgcmVzZXJ2aW5nIHNwYWNlIGlzIHRvIG5vdCB3YWl0 ISAqLwo+ICsJV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwo+ICsKPiAgIAlpZiAo aW50ZWxfcmluZ19zcGFjZShyaW5nYnVmKSA+PSBieXRlcykKPiAgIAkJcmV0dXJuIDA7Cj4KPiBA QCAtNzA0LDYgKzcwNyw5IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3dhaXRfZm9yX3NwYWNl KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLAo+ICAgCXVuc2lnbmVkIGxvbmcgZW5k Owo+ICAgCWludCByZXQ7Cj4KPiArCS8qIFRoZSB3aG9sZSBwb2ludCBvZiByZXNlcnZpbmcgc3Bh Y2UgaXMgdG8gbm90IHdhaXQhICovCj4gKwlXQVJOX09OKHJpbmdidWYtPnJlc2VydmVkX2luX3Vz ZSk7Cj4gKwo+ICAgCXJldCA9IGxvZ2ljYWxfcmluZ193YWl0X3JlcXVlc3QocmluZ2J1ZiwgYnl0 ZXMpOwo+ICAgCWlmIChyZXQgIT0gLUVOT1NQQykKPiAgIAkJcmV0dXJuIHJldDsKPiBAQCAtNzUw LDYgKzc1Niw5IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3dyYXBfYnVmZmVyKHN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLAo+ICAgCXVpbnQzMl90IF9faW9tZW0gKnZpcnQ7Cj4g ICAJaW50IHJlbSA9IHJpbmdidWYtPnNpemUgLSByaW5nYnVmLT50YWlsOwo+Cj4gKwkvKiBDYW4n dCB3cmFwIGlmIHNwYWNlIGhhcyBhbHJlYWR5IGJlZW4gcmVzZXJ2ZWQhICovCj4gKwlXQVJOX09O KHJpbmdidWYtPnJlc2VydmVkX2luX3VzZSk7Cj4gKwo+ICAgCWlmIChyaW5nYnVmLT5zcGFjZSA8 IHJlbSkgewo+ICAgCQlpbnQgcmV0ID0gbG9naWNhbF9yaW5nX3dhaXRfZm9yX3NwYWNlKHJpbmdi dWYsIGN0eCwgcmVtKTsKPgo+IEBAIC03NzMsNiArNzgyLDkgQEAgc3RhdGljIGludCBsb2dpY2Fs X3JpbmdfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwKPiAgIHsKPiAg IAlpbnQgcmV0Owo+Cj4gKwlpZiAoIXJpbmdidWYtPnJlc2VydmVkX2luX3VzZSkKPiArCQlieXRl cyArPSByaW5nYnVmLT5yZXNlcnZlZF9zaXplOwo+ICsKPiAgIAlpZiAodW5saWtlbHkocmluZ2J1 Zi0+dGFpbCArIGJ5dGVzID4gcmluZ2J1Zi0+ZWZmZWN0aXZlX3NpemUpKSB7Cj4gICAJCXJldCA9 IGxvZ2ljYWxfcmluZ193cmFwX2J1ZmZlcihyaW5nYnVmLCBjdHgpOwo+ICAgCQlpZiAodW5saWtl bHkocmV0KSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gaW5kZXgg YTI2YmRmOC4uOTA3NTAwOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmMKPiBAQCAtMjA2MSw2ICsyMDYxLDkgQEAgc3RhdGljIGludCBpbnRlbF9yaW5nX3dhaXRf cmVxdWVzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBpbnQgbikKPiAgIAlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7Cj4gICAJaW50IHJldCwgbmV3X3NwYWNlOwo+ Cj4gKwkvKiBUaGUgd2hvbGUgcG9pbnQgb2YgcmVzZXJ2aW5nIHNwYWNlIGlzIHRvIG5vdCB3YWl0 ISAqLwo+ICsJV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwo+ICsKPiAgIAlpZiAo aW50ZWxfcmluZ19zcGFjZShyaW5nYnVmKSA+PSBuKQo+ICAgCQlyZXR1cm4gMDsKPgo+IEBAIC0y MDkzLDYgKzIwOTYsOSBAQCBzdGF0aWMgaW50IHJpbmdfd2FpdF9mb3Jfc3BhY2Uoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZywgaW50IG4pCj4gICAJdW5zaWduZWQgbG9uZyBlbmQ7Cj4gICAJ aW50IHJldDsKPgo+ICsJLyogVGhlIHdob2xlIHBvaW50IG9mIHJlc2VydmluZyBzcGFjZSBpcyB0 byBub3Qgd2FpdCEgKi8KPiArCVdBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKPiAr Cj4gICAJcmV0ID0gaW50ZWxfcmluZ193YWl0X3JlcXVlc3QocmluZywgbik7Cj4gICAJaWYgKHJl dCAhPSAtRU5PU1BDKQo+ICAgCQlyZXR1cm4gcmV0Owo+IEBAIC0yMTQzLDYgKzIxNDksOSBAQCBz dGF0aWMgaW50IGludGVsX3dyYXBfcmluZ19idWZmZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZykKPiAgIAlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJpbmctPmJ1ZmZl cjsKPiAgIAlpbnQgcmVtID0gcmluZ2J1Zi0+c2l6ZSAtIHJpbmdidWYtPnRhaWw7Cj4KPiArCS8q IENhbid0IHdyYXAgaWYgc3BhY2UgaGFzIGFscmVhZHkgYmVlbiByZXNlcnZlZCEgKi8KPiArCVdB Uk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKPiArCj4gICAJaWYgKHJpbmdidWYtPnNw YWNlIDwgcmVtKSB7Cj4gICAJCWludCByZXQgPSByaW5nX3dhaXRfZm9yX3NwYWNlKHJpbmcsIHJl bSk7Cj4gICAJCWlmIChyZXQpCj4gQEAgLTIxOTAsMTIgKzIxOTksNDkgQEAgaW50IGludGVsX3Jp bmdfYWxsb2NfcmVxdWVzdF9leHRyYXMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1 ZXN0KQo+ICAgCXJldHVybiAwOwo+ICAgfQo+Cj4gLXN0YXRpYyBpbnQgX19pbnRlbF9yaW5nX3By ZXBhcmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAtCQkJCWludCBieXRlcykKPiAr aW50IGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfcmVzZXJ2ZShzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1ZiwgaW50IHNpemUpCj4gK3sKPiArCS8qIE5COiBVbnRpbCByZXF1ZXN0IG1h bmFnZW1lbnQgaXMgZnVsbHkgdGlkaWVkIHVwIGFuZCB0aGUgT0xSIGlzCj4gKwkgKiByZW1vdmVk LCB0aGVyZSBhcmUgdG9vIG1hbnkgd2F5cyBmb3IgZ2V0IGZhbHNlIGhpdHMgb24gdGhpcwo+ICsJ ICogYW50aS1yZWN1cnNpb24gY2hlY2shICovCj4gKwkvKldBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2 ZWRfc2l6ZSk7Ki8KPiArCVdBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKPiArCj4g KwlyaW5nYnVmLT5yZXNlcnZlZF9zaXplID0gc2l6ZTsKPiArCj4gKwkvKgo+ICsJICogUmVhbGx5 IG5lZWQgdG8gY2FsbCBfYmVnaW4oKSBoZXJlIGJ1dCB0aGF0IGN1cnJlbnRseSBsZWFkcyB0bwo+ ICsJICogcmVjdXJzaW9uIHByb2JsZW1zISBTbyBqdXN0IHJldHVybiB6ZXJvIGFuZCBob3BlIGZv ciB0aGUgYmVzdC4uLgo+ICsJICovCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArdm9pZCBpbnRl bF9yaW5nX3Jlc2VydmVkX3NwYWNlX3VzZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1 ZiwgaW50IHNpemUpCj4gK3sKPiArCVdBUk5fT04oc2l6ZSA+IHJpbmdidWYtPnJlc2VydmVkX3Np emUpOwo+ICsJV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwo+ICsKPiArCXJpbmdi dWYtPnJlc2VydmVkX2luX3VzZSA9IHRydWU7Cj4gKwlyaW5nYnVmLT5yZXNlcnZlZF90YWlsICAg PSByaW5nYnVmLT50YWlsOwo+ICt9Cj4gKwo+ICt2b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3Bh Y2VfZW5kKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQo+ICt7Cj4gKwlXQVJOX09O KCFyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwo+ICsJV0FSTl9PTihyaW5nYnVmLT50YWlsID4g cmluZ2J1Zi0+cmVzZXJ2ZWRfdGFpbCArIHJpbmdidWYtPnJlc2VydmVkX3NpemUpOwo+ICsKPiAr CXJpbmdidWYtPnJlc2VydmVkX3NpemUgICA9IDA7Cj4gKwlyaW5nYnVmLT5yZXNlcnZlZF9pbl91 c2UgPSBmYWxzZTsKPiArfQo+ICsKPiArc3RhdGljIGludCBfX2ludGVsX3JpbmdfcHJlcGFyZShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBpbnQgYnl0ZXMpCj4gICB7Cj4gICAJc3RydWN0 IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSByaW5nLT5idWZmZXI7Cj4gICAJaW50IHJldDsK Pgo+ICsJaWYgKCFyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpCj4gKwkJYnl0ZXMgKz0gcmluZ2J1 Zi0+cmVzZXJ2ZWRfc2l6ZTsKPiArCj4gICAJaWYgKHVubGlrZWx5KHJpbmdidWYtPnRhaWwgKyBi eXRlcyA+IHJpbmdidWYtPmVmZmVjdGl2ZV9zaXplKSkgewo+ICAgCQlyZXQgPSBpbnRlbF93cmFw X3JpbmdfYnVmZmVyKHJpbmcpOwo+ICAgCQlpZiAodW5saWtlbHkocmV0KSkKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gaW5kZXggNjU2NmRkNC4uYjMzNDQ1OSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBAQCAtMTA0LDYgKzEw NCw5IEBAIHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyIHsKPiAgIAlpbnQgc3BhY2U7Cj4gICAJaW50 IHNpemU7Cj4gICAJaW50IGVmZmVjdGl2ZV9zaXplOwo+ICsJaW50IHJlc2VydmVkX3NpemU7Cj4g KwlpbnQgcmVzZXJ2ZWRfdGFpbDsKPiArCWJvb2wgcmVzZXJ2ZWRfaW5fdXNlOwo+Cj4gICAJLyoq IFdlIHRyYWNrIHRoZSBwb3NpdGlvbiBvZiB0aGUgcmVxdWVzdHMgaW4gdGhlIHJpbmcgYnVmZmVy LCBhbmQKPiAgIAkgKiB3aGVuIGVhY2ggaXMgcmV0aXJlZCB3ZSBpbmNyZW1lbnQgbGFzdF9yZXRp cmVkX2hlYWQgYXMgdGhlIEdQVQo+IEBAIC00NDIsNCArNDQ1LDEwIEBAIGludGVsX3JpbmdfZ2V0 X3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgIAlyZXR1cm4gcmluZy0+ b3V0c3RhbmRpbmdfbGF6eV9yZXF1ZXN0Owo+ICAgfQo+Cj4gKyNkZWZpbmUgTUlOX1NQQUNFX0ZP Ul9BRERfUkVRVUVTVAkxMjgKCjIuIEhvdyB3YXMgdGhpcyB2YWx1ZSBkZXJpdmVkPyBIb3cgZG8g d2Uga25vdyB0aGF0IGl0IHdvcmtzIHByb3Blcmx5IGZvciAKYWxsIHBsYXRmb3Jtcz8gQ2FuIGJl IGJlIHN1cmUgdGhhdCBpdCdzIGVub3VnaCB0byBtYWtlIHN1cmUgdGhhdCAKYWRkX3JlcXVlc3Qg ZG9lcyBub3QgZmFpbCBsYXRlcj8KCj4gKwo+ICtpbnQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFj ZV9yZXNlcnZlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLCBpbnQgc2l6ZSk7Cj4g K3ZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV91c2Uoc3RydWN0IGludGVsX3JpbmdidWZm ZXIgKnJpbmdidWYsIGludCBzaXplKTsKPiArdm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNl X2VuZChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1Zik7Cj4gKwoKMy4gVGhlIHJlbGF0 aW9uc2hpcCBiZXR3ZWVuIHRoZXNlIGZ1bmN0aW9ucyBhbmQgd2hlcmUgdGhleSBiZWxvbmcgb24g dGhlIApyZXF1ZXN0IHN1Ym1pc3Npb24gdGltZWxpbmUgYXJlIG5vdCBvYnZpb3VzIGhlcmUuIFRo ZXNlIGZ1bmN0aW9ucyBhcmUgCmNvbmNlcHR1YWxseSBub3QgdGhhdCBkaWZmaWN1bHQgdG8gZ3Jh c3Agb25jZSB5b3UgcmVhZCB0aGUgY29kZSAoYW5kIApyZWFkIHRocm91Z2ggYWxsIG9mIHRoZSBw YXRjaGVzIGluIHRoaXMgcGF0Y2ggc2VyaWVzKSBidXQgaXQgY291bGQgYmUgCm1hZGUgbXVjaCBl YXNpZXIgYnkgYWRkaW5nIGEgZGVjZW50IGRlc2NyaXB0aW9uIG9mIGEpIFRoZSBwdXJwb3NlIG9m IAplYWNoIGZ1bmN0aW9uIGFuZCBiKSBXaGVuIGVhY2ggZnVuY3Rpb24gc2hvdWxkIGJlIHVzZWQg aW4gcmVsYXRpb24gdG8gCnRoZSBvdGhlciBmdW5jdGlvbnMuCgpUaGFua3MsClRvbWFzCgo+ICAg I2VuZGlmIC8qIF9JTlRFTF9SSU5HQlVGRkVSX0hfICovCj4KCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==