From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: Re: [PATCH] drm/i915: Reserve space improvements Date: Thu, 25 Jun 2015 19:38:59 +0100 Message-ID: <558C4AC3.6030707@intel.com> References: <1435165408-15470-1-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 36D3F6EC83 for ; Thu, 25 Jun 2015 11:39:06 -0700 (PDT) In-Reply-To: <1435165408-15470-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" , "Intel-GFX@Lists.FreeDesktop.Org" List-Id: intel-gfx@lists.freedesktop.org T24gMjQvMDYvMjAxNSAxODowMywgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToKPiBG cm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Cj4gQW4gZWFy bGllciBwYXRjaCB3YXMgYWRkZWQgdG8gcmVzZXJ2ZSBzcGFjZSBpbiB0aGUgcmluZyBidWZmZXIg Zm9yIHRoZQo+IGNvbW1hbmRzIGlzc3VlZCBkdXJpbmcgJ2FkZF9yZXF1ZXN0KCknLiBUaGUgaW5p dGlhbCB2ZXJzaW9uIHdhcwo+IHBlc3NpbWlzdGljIGluIHRoZSB3YXkgaXQgaGFuZGxlZCBidWZm ZXIgd3JhcHBpbmcgYW5kIHdvdWxkIGNhdXNlCj4gcHJlbWF0dXJlIHdyYXBzIGFuZCB0aHVzIHdh c3RlIHJpbmcgc3BhY2UuCj4KPiBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIGNvZGUgdG8gYmV0dGVy IGhhbmRsZSB0aGUgd3JhcCBjYXNlLiBJdCBubwo+IGxvbmdlciBlbmZvcmNlcyB0aGF0IHRoZSBz cGFjZSBiZWluZyBhc2tlZCBmb3IgYW5kIHRoZSByZXNlcnZlZCBzcGFjZQo+IGFyZSBhIHNpbmds ZSBjb250aWd1b3VzIGJsb2NrLiBJbnN0ZWFkLCBpdCBhbGxvd3MgdGhlIHJlc2VydmUgdG8gYmUg b24KPiB0aGUgZmFyIGVuZCBvZiBhIHdyYXAgb3BlcmF0aW9uLiBJdCBzdGlsbCBndWFyYW50ZWVz IHRoYXQgdGhlIHNwYWNlIGlzCj4gYXZhaWxhYmxlIHNvIHdoZW4gdGhlIHdyYXAgb2NjdXJzLCBu byB3YWl0IHdpbGwgaGFwcGVuLiBUaHVzIHRoZSB3cmFwCj4gY2Fubm90IGZhaWwgd2hpY2ggaXMg dGhlIHdob2xlIHBvaW50IG9mIHRoZSBleGVyY2lzZS4KPgo+IEFsc28gZml4ZWQgYSBtZXJnZSBm YWlsdXJlIHdpdGggc29tZSBjb21tZW50cyBmcm9tIHRoZSBvcmlnaW5hbCBwYXRjaC4KPgo+IEZv cjogVklaLTUxMTUKPiBDQzogRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPgo+IFNpZ25l ZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4gLS0t Cj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCA1NCArKysrKysr KysrKysrLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYyB8IDczICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwgIDQgKy0KPiAgIDMgZmlsZXMgY2hhbmdl ZCwgNzkgaW5zZXJ0aW9ucygrKSwgNTIgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYwo+IGluZGV4IGIzNmUwNjQuLmU5OThhNTQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYwo+IEBAIC02NjMsMTIgKzY2MywxMiBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ193 YWl0X2Zvcl9zcGFjZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAl1bnNp Z25lZCBzcGFjZTsKPiAgIAlpbnQgcmV0Owo+Cj4gLQkvKiBUaGUgd2hvbGUgcG9pbnQgb2YgcmVz ZXJ2aW5nIHNwYWNlIGlzIHRvIG5vdCB3YWl0ISAqLwo+IC0JV0FSTl9PTihyaW5nYnVmLT5yZXNl cnZlZF9pbl91c2UpOwo+IC0KPiAgIAlpZiAoaW50ZWxfcmluZ19zcGFjZShyaW5nYnVmKSA+PSBi eXRlcykKPiAgIAkJcmV0dXJuIDA7Cj4KPiArCS8qIFRoZSB3aG9sZSBwb2ludCBvZiByZXNlcnZp bmcgc3BhY2UgaXMgdG8gbm90IHdhaXQhICovCj4gKwlXQVJOX09OKHJpbmdidWYtPnJlc2VydmVk X2luX3VzZSk7Cj4gKwo+ICAgCWxpc3RfZm9yX2VhY2hfZW50cnkodGFyZ2V0LCAmcmluZy0+cmVx dWVzdF9saXN0LCBsaXN0KSB7Cj4gICAJCS8qCj4gICAJCSAqIFRoZSByZXF1ZXN0IHF1ZXVlIGlz IHBlci1lbmdpbmUsIHNvIGNhbiBjb250YWluIHJlcXVlc3RzCj4gQEAgLTcyNCwxMiArNzI0LDEz IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3dyYXBfYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxKQo+ICAgCXVpbnQzMl90IF9faW9tZW0gKnZpcnQ7Cj4gICAJaW50IHJl bSA9IHJpbmdidWYtPnNpemUgLSByaW5nYnVmLT50YWlsOwo+Cj4gLQkvKiBDYW4ndCB3cmFwIGlm IHNwYWNlIGhhcyBhbHJlYWR5IGJlZW4gcmVzZXJ2ZWQhICovCj4gLQlXQVJOX09OKHJpbmdidWYt PnJlc2VydmVkX2luX3VzZSk7Cj4gLQo+ICAgCWlmIChyaW5nYnVmLT5zcGFjZSA8IHJlbSkgewo+ IC0JCWludCByZXQgPSBsb2dpY2FsX3Jpbmdfd2FpdF9mb3Jfc3BhY2UocmVxLCByZW0pOwo+ICsJ CWludCByZXQ7Cj4gKwo+ICsJCS8qIENhbid0IHdhaXQgaWYgc3BhY2UgaGFzIGFscmVhZHkgYmVl biByZXNlcnZlZCEgKi8KPiArCQlXQVJOX09OKHJpbmdidWYtPnJlc2VydmVkX2luX3VzZSk7CgpZ b3UgYWxyZWFkeSBkbyB0aGlzIFdBUk5fT04gaW4gbG9naWNhbF9yaW5nX3dhaXRfZm9yX3NwYWNl KCkgLgoKPgo+ICsJCXJldCA9IGxvZ2ljYWxfcmluZ193YWl0X2Zvcl9zcGFjZShyZXEsIHJlbSk7 Cj4gICAJCWlmIChyZXQpCj4gICAJCQlyZXR1cm4gcmV0Owo+ICAgCX0KPiBAQCAtNzQ4LDMxICs3 NDksMzYgQEAgc3RhdGljIGludCBsb2dpY2FsX3Jpbmdfd3JhcF9idWZmZXIoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gICBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19wcmVwYXJl KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgYnl0ZXMpCj4gICB7Cj4gICAJ c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSByZXEtPnJpbmdidWY7Cj4gLQlpbnQg cmV0Owo+IC0KPiAtCS8qCj4gLQkgKiBBZGQgb24gdGhlIHJlc2VydmVkIHNpemUgdG8gdGhlIHJl cXVlc3QgdG8gbWFrZSBzdXJlIHRoYXQgYWZ0ZXIKPiAtCSAqIHRoZSBpbnRlbmRlZCBjb21tYW5k cyBoYXZlIGJlZW4gZW1pdHRlZCwgdGhlcmUgaXMgZ3VhcmFudGVlZCB0bwo+IC0JICogc3RpbGwg YmUgZW5vdWdoIGZyZWUgc3BhY2UgdG8gc2VuZCB0aGVtIHRvIHRoZSBoYXJkd2FyZS4KPiAtCSAq Lwo+IC0JaWYgKCFyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpCj4gLQkJYnl0ZXMgKz0gcmluZ2J1 Zi0+cmVzZXJ2ZWRfc2l6ZTsKPiArCWludCByZXQsIG1heF9ieXRlczsKPgoKSXQgd291bGQgYmUg aGVscGZ1bCBpZiB3ZSBjb3VsZCBmbGVzaCBvdXQgdGhlIGZsb3cgdGhyb3VnaCB0aGUgCnJpbmdf cHJlcGFyZSBmdW5jdGlvbnMgYW5kIGJlIG1vcmUgZXhwbGljaXQgYWJvdXQgd2hhdCBpcyBhY3R1 YWxseSBnb2luZyAKb24uIExhcmdlbHkgdGhpcyBpcyBiZWNhdXNlIHRoZXJlIGlzIGEgZGlzdGlu Y3QgbGFjayBvZiBkb2N1bWVudGF0aW9uIApmb3IgdGhlIGVudGlyZSByaW5nIGJ1ZmZlciBtYW5h Z2VtZW50IGNvZGUgb24gdG9wIG9mIGEgcXVpdGUgCmNvdW50ZXItaW50dWl0aXZlIGxlZ2FjeSBk ZXNpZ24sIHNvIHRoaXMgaXMgbm90IGR1ZSB0byB5b3VyIGNoYW5nZXMuIApIb3dldmVyLCB5b3Vy IGNoYW5nZXMgbWFrZSB0aGluZ3MgZXZlbiBtb3JlIGNvbXBsZXggYW5kIGhhcmQgdG8gCnVuZGVy c3RhbmQuIFNvIEkndmUgc3VnZ2VzdGVkIGEgZmV3IGNvbW1lbnRzIGJlbG93LiBGZWVsIGZyZWUg dG8gcmV3b3JkIApvciBkbyB3aGF0ZXZlciB3aXRoIHRoZW0uIEl0IHdvdWxkIGJlIG5pY2UgaWYg d2UgY291bGQgYmUgc2xpZ2h0bHkgbW9yZSAKY2xlYXIgYWJvdXQgd2hhdCBpcyBnb2luZyBvbiBo ZXJlLCB0aG91Z2guIFRoZSBzYW1lIGNvbW1lbnRzIGFwcGx5IHRvIApib3RoIGxlZ2FjeSBhbmQg ZXhlY2xpc3QgZnVuY3Rpb24gaW1wbGVtZW50YXRpb25zIG9idmlvdXNseS4KCQoJLyoKCSAqIElm IHRoZSByZXF1ZXN0IG1pbnVzIHRoZSByZXNlcnZlZCByZXF1ZXN0IHNpemUgd2lsbCBub3QgZml0 CgkgKiBiZWZvcmUgdGhlIGJ1ZmZlciB3cmFwIHBvaW50IHdlIG5lZWQgdG8gd3JhcCB0aGUgYnVm ZmVyIGhlcmUuCgkgKiBQYXN0IHRoaXMgYmxvY2sgd2Uga25vdyBmb3Igc3VyZSB0aGF0IHRoZSBy ZXF1ZXN0IG1pbnVzCgkgKiB0aGUgcmVzZXJ2ZWQgcmVxdWVzdCBzaXplIHdpbGwgZml0IGluIHRo ZSBidWZmZXIgd2l0aG91dAoJICogZnVydGhlciB3cmFwcGluZy4KCSAqLwoKPiAgIAlpZiAodW5s aWtlbHkocmluZ2J1Zi0+dGFpbCArIGJ5dGVzID4gcmluZ2J1Zi0+ZWZmZWN0aXZlX3NpemUpKSB7 Cj4gICAJCXJldCA9IGxvZ2ljYWxfcmluZ193cmFwX2J1ZmZlcihyZXEpOwo+ICAgCQlpZiAodW5s aWtlbHkocmV0KSkKPiAgIAkJCXJldHVybiByZXQ7Cj4gKwl9Cj4KPiAtCQlpZihyaW5nYnVmLT5y ZXNlcnZlZF9zaXplKSB7Cj4gLQkJCXVpbnQzMl90IHNpemUgPSByaW5nYnVmLT5yZXNlcnZlZF9z aXplOwo+ICsJLyoKPiArCSAqIEFkZCBvbiB0aGUgcmVzZXJ2ZWQgc2l6ZSB0byB0aGUgcmVxdWVz dCB0byBtYWtlIHN1cmUgdGhhdCBhZnRlcgo+ICsJICogdGhlIGludGVuZGVkIGNvbW1hbmRzIGhh dmUgYmVlbiBlbWl0dGVkLCB0aGVyZSBpcyBndWFyYW50ZWVkIHRvCj4gKwkgKiBzdGlsbCBiZSBl bm91Z2ggZnJlZSBzcGFjZSB0byBzZW5kIHRoZW0gdG8gdGhlIGhhcmR3YXJlLgo+ICsJICovCj4g KwltYXhfYnl0ZXMgPSBieXRlcyArIHJpbmdidWYtPnJlc2VydmVkX3NpemU7Cj4KPiAtCQkJaW50 ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9jYW5jZWwocmluZ2J1Zik7Cj4gLQkJCWludGVsX3Jpbmdf cmVzZXJ2ZWRfc3BhY2VfcmVzZXJ2ZShyaW5nYnVmLCBzaXplKTsKPiAtCQl9Cj4gLQl9Cj4gKwlp ZiAodW5saWtlbHkocmluZ2J1Zi0+c3BhY2UgPCBtYXhfYnl0ZXMpKSB7Cj4gKwkJLyoKPiArCQkg KiBCeXRlcyBpcyBndWFyYW50ZWVkIHRvIGZpdCB3aXRoaW4gdGhlIHRhaWwgb2YgdGhlIGJ1ZmZl ciwKPiArCQkgKiBidXQgdGhlIHJlc2VydmVkIHNwYWNlIG1heSBwdXNoIGl0IG9mZiB0aGUgZW5k LiBJZiBzbyB0aGVuCj4gKwkJICogbmVlZCB0byB3YWl0IGZvciB0aGUgd2hvbGUgb2YgdGhlIHRh aWwgcGx1cyB0aGUgcmVzZXJ2ZWQKPiArCQkgKiBzaXplLiBUaGF0IHNob3VsZCBndWFyYW50ZWUg dGhhdCB0aGUgYWN0dWFsIHJlcXVlc3QKPiArCQkgKiAoYnl0ZXMpIHdpbGwgZml0IGJldHdlZW4g aGVyZSBhbmQgdGhlIGVuZCBhbmQgdGhlIHJlc2VydmVkCj4gKwkJICogdXNhZ2Ugd2lsbCBmaXQg ZWl0aGVyIGluIHRoZSBzYW1lIG9yIGF0IHRoZSBzdGFydC4gRWl0aGVyCj4gKwkJICogd2F5LCBp ZiBhIHdyYXAgb2NjdXJzIGl0IHdpbGwgbm90IGludm9sdmUgYSB3YWl0IGFuZCB0aHVzCj4gKwkJ ICogY2Fubm90IGZhaWwuCj4gKwkJICovCgpIb3cgYWJvdXQgcmVwbGFjaW5nIHRoZSBhYm92ZSBj b21tZW50IHdpdGg6CgoJCS8qCgkJICogQXQgdGhpcyBwb2ludCB3ZSBrbm93IHRoYXQgdGhlIHJl cXVlc3QgbWludXMgdGhlCgkJICogcmVzZXJ2ZWQgc2l6ZSAoPSBieXRlcykgaXMgZ3VhcmFudGVl ZCB0byBmaXQgd2l0aGluCgkJICogdGhlIHNwYWNlIGxlZnQgYmVmb3JlIHRoZSBidWZmZXIgd3Jh cCBwb2ludC4KCQkgKiBIb3dldmVyLCBhZGRpbmcgdGhlIHJlc2VydmVkIHJlcXVlc3Qgc3BhY2Ug b24gdG9wIG9mCgkJICogaXQgd2lsbCBub3QgZml0IHdpdGhpbiB0aGUgcmVtYWluaW5nIHNwYWNl IGluIHRoZQogIAkJICogYnVmZmVyIC0gd2UgbmVlZCB0byB3YWl0IGZvciBzcGFjZSB0byBmcmVl IHVwLgoJCSAqLwoKPiArCQlpZiAodW5saWtlbHkocmluZ2J1Zi0+dGFpbCArIG1heF9ieXRlcyAr IEk5MTVfUklOR19GUkVFX1NQQUNFID4gcmluZ2J1Zi0+ZWZmZWN0aXZlX3NpemUpKQo+ICsJCQlt YXhfYnl0ZXMgPSByaW5nYnVmLT5yZXNlcnZlZF9zaXplICsgSTkxNV9SSU5HX0ZSRUVfU1BBQ0Ug KyByaW5nYnVmLT5zaXplIC0gcmluZ2J1Zi0+dGFpbDsKCllvdSBjb3VsZCBhdWdtZW50IHRoZSB0 d28gbGluZXMgYWJvdmUgbGlrZSB0aGUgZm9sbG93aW5nOgoKICAgICAgICAgICAgICAgICBpZiAo dW5saWtlbHkocmluZ2J1Zi0+dGFpbCArIG1heF9ieXRlcyArIApJOTE1X1JJTkdfRlJFRV9TUEFD RSA+IHJpbmdidWYtPmVmZmVjdGl2ZV9zaXplKSkgewoJCS8qCgkJICogV2UgbWF5IGhhdmUgdG8g d3JhcCB0aGUgYnVmZmVyIGF0IHNvbWUgcG9pbnQgaW4KCQkgKiBvcmRlciB0byBmaXQgdGhlIHJl c2VydmVkIHJlcXVlc3Qgc3BhY2UuIFRoaXMKCQkgKiByZXF1aXJlcyB1cyBub3Qgb25seSB0byB3 YWl0IGZvciB0aGUgcmVzZXJ2ZWQKCQkgKiByZXF1ZXN0IHNwYWNlIGJ1dCBvbiB0b3Agb2YgdGhh dCBhbHNvIHdhaXQKCQkgKiBmb3IgZW5vdWdoIHNwYWNlIHRvIGNvdmVyIHRoZSBidWZmZXIgc3Bh Y2UgdGhhdCBpcwoJCSAqIGRpc2NhcmRlZCBkdXJpbmcgYSBwb3RlbnRpYWwgYnVmZmVyIHdyYXAu IFRoZSBsb3N0CgkJICogYnVmZmVyIHNwYWNlIGlzIHVua25vd24gYXQgdGhpcyBwb2ludCBzbyB3 ZSBkbyBhCgkJICogcGVzc2ltaXN0aWMgZXN0aW1hdGlvbi4gU2luY2Ugd2Uga25vdyB0aGF0IHRo ZQoJCSAqIHJlbWFpbmluZyBidWZmZXIgc3BhY2UgYmVmb3JlIHRoZSB3cmFwIHBvaW50CgkJICog aXMgbGFyZ2UgZW5vdWdoIHRvIGNvbnRhaW4gdGhlIHJlcXVlc3QgbWludXMgdGhlCgkJICogcmVz ZXJ2ZWQgYnVmZmVyIHNpemUgd2UgZG9uJ3QgaGF2ZSB0byB0aGluayBhYm91dAoJCSAqIHRoYXQg KD0gYnl0ZXMpLiBJbnN0ZWFkIHdlIGp1c3QgaGF2ZSB0byBhZGQgdGhlCgkJICogcmVtYWluaW5n IHJlc2VydmVkIHJlcXVlc3Qgc2l6ZSB0byB0aGUgZXN0aW1hdGVkCgkJICogYnVmZmVyIHNwYWNl IGxvc3QgZHVyaW5nIHdyYXBwaW5nLgoJCSAqLwoJCWludCBsb3N0X3dyYXBfc3BhY2UgPSBJOTE1 X1JJTkdfRlJFRV9TUEFDRSArIHJpbmdidWYtPnNpemUgLSAKcmluZ2J1Zi0+dGFpbDsKCiAgICAg ICAgICAgICAgICAgbWF4X2J5dGVzID0gcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSArIGxvc3Rfd3Jh cF9zcGFjZTsKCQl9Cj4KPiAtCWlmICh1bmxpa2VseShyaW5nYnVmLT5zcGFjZSA8IGJ5dGVzKSkg ewo+IC0JCXJldCA9IGxvZ2ljYWxfcmluZ193YWl0X2Zvcl9zcGFjZShyZXEsIGJ5dGVzKTsKCkhv dyBhYm91dCBhZGRpbmcgc29tZXRoaW5nIGxpa2UgdGhpcyBhdCB0aGlzIHBvaW50PyA6CgoJCS8q CgkJICogU2luY2Ugd2UgYXJlIHdhaXRpbmcgdXAgZnJvbnQgYXQgdGhpcyBwb2ludCB0aGVyZSBp cwoJCSAqIG5vIG5lZWQgdG8gd2FpdCBhZ2FpbiBpbiB0aGUgY2FzZSBvZiBhIHdyYXAuIFRodXMs CgkJICogcmVtb3ZpbmcgdGhlIG9ubHkgcG9pbnQgb2YgZmFpbHVyZS4KCQkgKi8KPiArCQlyZXQg PSBsb2dpY2FsX3Jpbmdfd2FpdF9mb3Jfc3BhY2UocmVxLCBtYXhfYnl0ZXMpOwo+ICAgCQlpZiAo dW5saWtlbHkocmV0KSkKPiAgIAkJCXJldHVybiByZXQ7Cj4gICAJfQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBpbmRleCBhZjdjMTJlLi43YzViNGMyIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+IEBAIC0yMTIxLDEyICsyMTIx LDEyIEBAIHN0YXRpYyBpbnQgcmluZ193YWl0X2Zvcl9zcGFjZShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nLCBpbnQgbikKPiAgIAl1bnNpZ25lZCBzcGFjZTsKPiAgIAlpbnQgcmV0Owo+Cj4g LQkvKiBUaGUgd2hvbGUgcG9pbnQgb2YgcmVzZXJ2aW5nIHNwYWNlIGlzIHRvIG5vdCB3YWl0ISAq Lwo+IC0JV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwo+IC0KPiAgIAlpZiAoaW50 ZWxfcmluZ19zcGFjZShyaW5nYnVmKSA+PSBuKQo+ICAgCQlyZXR1cm4gMDsKPgo+ICsJLyogVGhl IHdob2xlIHBvaW50IG9mIHJlc2VydmluZyBzcGFjZSBpcyB0byBub3Qgd2FpdCEgKi8KPiArCVdB Uk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKPiArCj4gICAJbGlzdF9mb3JfZWFjaF9l bnRyeShyZXF1ZXN0LCAmcmluZy0+cmVxdWVzdF9saXN0LCBsaXN0KSB7Cj4gICAJCXNwYWNlID0g X19pbnRlbF9yaW5nX3NwYWNlKHJlcXVlc3QtPnBvc3RmaXgsIHJpbmdidWYtPnRhaWwsCj4gICAJ CQkJCSAgIHJpbmdidWYtPnNpemUpOwo+IEBAIC0yMTUxLDExICsyMTUxLDEzIEBAIHN0YXRpYyBp bnQgaW50ZWxfd3JhcF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ ICAgCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcmluZy0+YnVmZmVyOwo+ICAg CWludCByZW0gPSByaW5nYnVmLT5zaXplIC0gcmluZ2J1Zi0+dGFpbDsKPgo+IC0JLyogQ2FuJ3Qg d3JhcCBpZiBzcGFjZSBoYXMgYWxyZWFkeSBiZWVuIHJlc2VydmVkISAqLwo+IC0JV0FSTl9PTihy aW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwo+IC0KPiAgIAlpZiAocmluZ2J1Zi0+c3BhY2UgPCBy ZW0pIHsKPiAtCQlpbnQgcmV0ID0gcmluZ193YWl0X2Zvcl9zcGFjZShyaW5nLCByZW0pOwo+ICsJ CWludCByZXQ7Cj4gKwo+ICsJCS8qIENhbid0IHdhaXQgaWYgc3BhY2UgaGFzIGFscmVhZHkgYmVl biByZXNlcnZlZCEgKi8KPiArCQlXQVJOX09OKHJpbmdidWYtPnJlc2VydmVkX2luX3VzZSk7Cj4g Kwo+ICsJCXJldCA9IHJpbmdfd2FpdF9mb3Jfc3BhY2UocmluZywgcmVtKTsKPiAgIAkJaWYgKHJl dCkKPiAgIAkJCXJldHVybiByZXQ7Cj4gICAJfQo+IEBAIC0yMjM4LDkgKzIyNDAsMjEgQEAgdm9p ZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX3VzZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZ2J1ZikKPiAgIHZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9lbmQoc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCj4gICB7Cj4gICAJV0FSTl9PTighcmluZ2J1Zi0+cmVz ZXJ2ZWRfaW5fdXNlKTsKPiAtCVdBUk4ocmluZ2J1Zi0+dGFpbCA+IHJpbmdidWYtPnJlc2VydmVk X3RhaWwgKyByaW5nYnVmLT5yZXNlcnZlZF9zaXplLAo+IC0JICAgICAicmVxdWVzdCByZXNlcnZl ZCBzaXplIHRvbyBzbWFsbDogJWQgdnMgJWQhXG4iLAo+IC0JICAgICByaW5nYnVmLT50YWlsIC0g cmluZ2J1Zi0+cmVzZXJ2ZWRfdGFpbCwgcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSk7Cj4gKwlpZiAo cmluZ2J1Zi0+dGFpbCA+IHJpbmdidWYtPnJlc2VydmVkX3RhaWwpIHsKPiArCQlXQVJOKHJpbmdi dWYtPnRhaWwgPiByaW5nYnVmLT5yZXNlcnZlZF90YWlsICsgcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6 ZSwKPiArCQkgICAgICJyZXF1ZXN0IHJlc2VydmVkIHNpemUgdG9vIHNtYWxsOiAlZCB2cyAlZCFc biIsCj4gKwkJICAgICByaW5nYnVmLT50YWlsIC0gcmluZ2J1Zi0+cmVzZXJ2ZWRfdGFpbCwgcmlu Z2J1Zi0+cmVzZXJ2ZWRfc2l6ZSk7Cj4gKwl9IGVsc2Ugewo+ICsJCS8qCj4gKwkJICogVGhlIHJp bmcgd2FzIHdyYXBwZWQgd2hpbGUgdGhlIHJlc2VydmVkIHNwYWNlIHdhcyBpbiB1c2UuCj4gKwkJ ICogVGhhdCBtZWFucyB0aGF0IHNvbWUgdW5rbm93biBhbW91bnQgb2YgdGhlIHJpbmcgdGFpbCB3 YXMKPiArCQkgKiBuby1vcCBmaWxsZWQgYW5kIHNraXBwZWQuIFRodXMgc2ltcGx5IGFkZGluZyB0 aGUgcmluZyBzaXplCj4gKwkJICogdG8gdGhlIHRhaWwgYW5kIGRvaW5nIHRoZSBhYm92ZSBzcGFj ZSBjaGVjayB3aWxsIG5vdCB3b3JrLgo+ICsJCSAqIFJhdGhlciB0aGFuIGF0dGVtcHQgdG8gdHJh Y2sgaG93IG11Y2ggdGFpbCB3YXMgc2tpcHBlZCwKPiArCQkgKiBpdCBpcyBtdWNoIHNpbXBsZXIg dG8gc2F5IHRoYXQgYWxzbyBza2lwcGluZyB0aGUgc2FuaXR5Cj4gKwkJICogY2hlY2sgZXZlcnkg b25jZSBpbiBhIHdoaWxlIGlzIG5vdCBhIGJpZyBpc3N1ZS4KPiArCQkgKi8KPiArCX0KPgo+ICAg CXJpbmdidWYtPnJlc2VydmVkX3NpemUgICA9IDA7Cj4gICAJcmluZ2J1Zi0+cmVzZXJ2ZWRfaW5f dXNlID0gZmFsc2U7Cj4gQEAgLTIyNDksMzEgKzIyNjMsMzYgQEAgdm9pZCBpbnRlbF9yaW5nX3Jl c2VydmVkX3NwYWNlX2VuZChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiAgIHN0 YXRpYyBpbnQgX19pbnRlbF9yaW5nX3ByZXBhcmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZywgaW50IGJ5dGVzKQo+ICAgewo+ICAgCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVm ID0gcmluZy0+YnVmZmVyOwo+IC0JaW50IHJldDsKPiAtCj4gLQkvKgo+IC0JICogQWRkIG9uIHRo ZSByZXNlcnZlZCBzaXplIHRvIHRoZSByZXF1ZXN0IHRvIG1ha2Ugc3VyZSB0aGF0IGFmdGVyCj4g LQkgKiB0aGUgaW50ZW5kZWQgY29tbWFuZHMgaGF2ZSBiZWVuIGVtaXR0ZWQsIHRoZXJlIGlzIGd1 YXJhbnRlZWQgdG8KPiAtCSAqIHN0aWxsIGJlIGVub3VnaCBmcmVlIHNwYWNlIHRvIHNlbmQgdGhl bSB0byB0aGUgaGFyZHdhcmUuCj4gLQkgKi8KPiAtCWlmICghcmluZ2J1Zi0+cmVzZXJ2ZWRfaW5f dXNlKQo+IC0JCWJ5dGVzICs9IHJpbmdidWYtPnJlc2VydmVkX3NpemU7Cj4gKwlpbnQgcmV0LCBt YXhfYnl0ZXM7Cj4KPiAgIAlpZiAodW5saWtlbHkocmluZ2J1Zi0+dGFpbCArIGJ5dGVzID4gcmlu Z2J1Zi0+ZWZmZWN0aXZlX3NpemUpKSB7Cj4gICAJCXJldCA9IGludGVsX3dyYXBfcmluZ19idWZm ZXIocmluZyk7Cj4gICAJCWlmICh1bmxpa2VseShyZXQpKQo+ICAgCQkJcmV0dXJuIHJldDsKPiAr CX0KPgo+IC0JCWlmKHJpbmdidWYtPnJlc2VydmVkX3NpemUpIHsKPiAtCQkJdWludDMyX3Qgc2l6 ZSA9IHJpbmdidWYtPnJlc2VydmVkX3NpemU7Cj4gKwkvKgo+ICsJICogQWRkIG9uIHRoZSByZXNl cnZlZCBzaXplIHRvIHRoZSByZXF1ZXN0IHRvIG1ha2Ugc3VyZSB0aGF0IGFmdGVyCj4gKwkgKiB0 aGUgaW50ZW5kZWQgY29tbWFuZHMgaGF2ZSBiZWVuIGVtaXR0ZWQsIHRoZXJlIGlzIGd1YXJhbnRl ZWQgdG8KPiArCSAqIHN0aWxsIGJlIGVub3VnaCBmcmVlIHNwYWNlIHRvIHNlbmQgdGhlbSB0byB0 aGUgaGFyZHdhcmUuCj4gKwkgKi8KPiArCW1heF9ieXRlcyA9IGJ5dGVzICsgcmluZ2J1Zi0+cmVz ZXJ2ZWRfc2l6ZTsKPgo+IC0JCQlpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2NhbmNlbChyaW5n YnVmKTsKPiAtCQkJaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9yZXNlcnZlKHJpbmdidWYsIHNp emUpOwo+IC0JCX0KPiAtCX0KPiArCWlmICh1bmxpa2VseShyaW5nYnVmLT5zcGFjZSA8IG1heF9i eXRlcykpIHsKPiArCQkvKgo+ICsJCSAqIEJ5dGVzIGlzIGd1YXJhbnRlZWQgdG8gZml0IHdpdGhp biB0aGUgdGFpbCBvZiB0aGUgYnVmZmVyLAo+ICsJCSAqIGJ1dCB0aGUgcmVzZXJ2ZWQgc3BhY2Ug bWF5IHB1c2ggaXQgb2ZmIHRoZSBlbmQuIElmIHNvIHRoZW4KPiArCQkgKiBuZWVkIHRvIHdhaXQg Zm9yIHRoZSB3aG9sZSBvZiB0aGUgdGFpbCBwbHVzIHRoZSByZXNlcnZlZAo+ICsJCSAqIHNpemUu IFRoYXQgc2hvdWxkIGd1YXJhbnRlZSB0aGF0IHRoZSBhY3R1YWwgcmVxdWVzdAo+ICsJCSAqIChi eXRlcykgd2lsbCBmaXQgYmV0d2VlbiBoZXJlIGFuZCB0aGUgZW5kIGFuZCB0aGUgcmVzZXJ2ZWQK PiArCQkgKiB1c2FnZSB3aWxsIGZpdCBlaXRoZXIgaW4gdGhlIHNhbWUgb3IgYXQgdGhlIHN0YXJ0 LiBFaXRoZXIKPiArCQkgKiB3YXksIGlmIGEgd3JhcCBvY2N1cnMgaXQgd2lsbCBub3QgaW52b2x2 ZSBhIHdhaXQgYW5kIHRodXMKPiArCQkgKiBjYW5ub3QgZmFpbC4KPiArCQkgKi8KPiArCQlpZiAo dW5saWtlbHkocmluZ2J1Zi0+dGFpbCArIG1heF9ieXRlcyA+IHJpbmdidWYtPmVmZmVjdGl2ZV9z aXplKSkKPiArCQkJbWF4X2J5dGVzID0gcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSArIEk5MTVfUklO R19GUkVFX1NQQUNFICsgcmluZ2J1Zi0+c2l6ZSAtIHJpbmdidWYtPnRhaWw7Cj4KPiAtCWlmICh1 bmxpa2VseShyaW5nYnVmLT5zcGFjZSA8IGJ5dGVzKSkgewo+IC0JCXJldCA9IHJpbmdfd2FpdF9m b3Jfc3BhY2UocmluZywgYnl0ZXMpOwo+ICsJCXJldCA9IHJpbmdfd2FpdF9mb3Jfc3BhY2Uocmlu ZywgbWF4X2J5dGVzKTsKPiAgIAkJaWYgKHVubGlrZWx5KHJldCkpCj4gICAJCQlyZXR1cm4gcmV0 Owo+ICAgCX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gaW5kZXgg MGUyYmJjNi4uMzA0Y2FjNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmgKPiBAQCAtNDczLDcgKzQ3Myw2IEBAIHN0YXRpYyBpbmxpbmUgdTMyIGludGVsX3Jpbmdf Z2V0X3RhaWwoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCj4gICAgKiB3aWxsIGFs d2F5cyBoYXZlIHN1ZmZpY2llbnQgcm9vbSB0byBkbyBpdHMgc3R1ZmYuIFRoZSByZXF1ZXN0IGNy ZWF0aW9uCj4gICAgKiBjb2RlIGNhbGxzIHRoaXMgYXV0b21hdGljYWxseS4KPiAgICAqLwo+IC1p bnQgaW50ZWxfcmluZ19yZXNlcnZlX3NwYWNlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxdWVzdCk7Cj4gICB2b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfcmVzZXJ2ZShzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwgaW50IHNpemUpOwo+ICAgLyogQ2FuY2VsIHRo ZSByZXNlcnZhdGlvbiwgZS5nLiBiZWNhdXNlIHRoZSByZXF1ZXN0IGlzIGJlaW5nIGRpc2NhcmRl ZC4gKi8KPiAgIHZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9jYW5jZWwoc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOwo+IEBAIC00ODIsNCArNDgxLDcgQEAgdm9pZCBpbnRl bF9yaW5nX3Jlc2VydmVkX3NwYWNlX3VzZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1 Zik7Cj4gICAvKiBGaW5pc2ggd2l0aCB0aGUgcmVzZXJ2ZWQgc3BhY2UgLSBmb3IgdXNlIGJ5IGk5 MTVfYWRkX3JlcXVlc3QoKSBvbmx5LiAqLwo+ICAgdm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3Nw YWNlX2VuZChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1Zik7Cj4KPiArLyogTGVnYWN5 IHJpbmdidWZmZXIgc3BlY2lmaWMgcG9ydGlvbiBvZiByZXNlcnZhdGlvbiBjb2RlOiAqLwo+ICtp bnQgaW50ZWxfcmluZ19yZXNlcnZlX3NwYWNlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxdWVzdCk7Cj4gKwo+ICAgI2VuZGlmIC8qIF9JTlRFTF9SSU5HQlVGRkVSX0hfICovCj4KClRo YW5rcywKVG9tYXMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==