From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: Re: [PATCH] drm/i915: Reserve space improvements Date: Tue, 30 Jun 2015 12:33:54 +0100 Message-ID: <55927EA2.4020803@intel.com> References: <1435165408-15470-1-git-send-email-John.C.Harrison@Intel.com> <1435595818-26467-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id B372C6E674 for ; Tue, 30 Jun 2015 04:33:56 -0700 (PDT) In-Reply-To: <1435595818-26467-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 T24gMjkvMDYvMjAxNSAxNzozNiwgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToKPiBG cm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Cj4gQW4gZWFy bGllciBwYXRjaCB3YXMgYWRkZWQgdG8gcmVzZXJ2ZSBzcGFjZSBpbiB0aGUgcmluZyBidWZmZXIg Zm9yIHRoZQo+IGNvbW1hbmRzIGlzc3VlZCBkdXJpbmcgJ2FkZF9yZXF1ZXN0KCknLiBUaGUgaW5p dGlhbCB2ZXJzaW9uIHdhcwo+IHBlc3NpbWlzdGljIGluIHRoZSB3YXkgaXQgaGFuZGxlZCBidWZm ZXIgd3JhcHBpbmcgYW5kIHdvdWxkIGNhdXNlCj4gcHJlbWF0dXJlIHdyYXBzIGFuZCB0aHVzIHdh c3RlIHJpbmcgc3BhY2UuCj4KPiBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIGNvZGUgdG8gYmV0dGVy IGhhbmRsZSB0aGUgd3JhcCBjYXNlLiBJdCBubwo+IGxvbmdlciBlbmZvcmNlcyB0aGF0IHRoZSBz cGFjZSBiZWluZyBhc2tlZCBmb3IgYW5kIHRoZSByZXNlcnZlZCBzcGFjZQo+IGFyZSBhIHNpbmds ZSBjb250aWd1b3VzIGJsb2NrLiBJbnN0ZWFkLCBpdCBhbGxvd3MgdGhlIHJlc2VydmUgdG8gYmUg b24KPiB0aGUgZmFyIGVuZCBvZiBhIHdyYXAgb3BlcmF0aW9uLiBJdCBzdGlsbCBndWFyYW50ZWVz IHRoYXQgdGhlIHNwYWNlIGlzCj4gYXZhaWxhYmxlIHNvIHdoZW4gdGhlIHdyYXAgb2NjdXJzLCBu byB3YWl0IHdpbGwgaGFwcGVuLiBUaHVzIHRoZSB3cmFwCj4gY2Fubm90IGZhaWwgd2hpY2ggaXMg dGhlIHdob2xlIHBvaW50IG9mIHRoZSBleGVyY2lzZS4KPgo+IEFsc28gZml4ZWQgYSBtZXJnZSBm YWlsdXJlIHdpdGggc29tZSBjb21tZW50cyBmcm9tIHRoZSBvcmlnaW5hbCBwYXRjaC4KPgo+IHYy OiBJbmNvcnBvcmF0ZWQgc3VnZ2VzdGlvbiBieSBEYXZpZCBHb3Jkb24gdG8gbW92ZSB0aGUgd3Jh cCBjb2RlCj4gaW5zaWRlIHRoZSBwcmVwYXJlIGZ1bmN0aW9uIGFuZCB0aHVzIGFsbG93IGEgc2lu Z2xlIGNvbWJpbmVkCj4gd2FpdF9mb3Jfc3BhY2UoKSBjYWxsIHJhdGhlciB0aGFuIGRvaW5nIG9u ZSBiZWZvcmUgdGhlIHdyYXAgYW5kCj4gYW5vdGhlciBhZnRlci4gVGhpcyBhbHNvIG1ha2VzIHRo ZSBwcmVwYXJlIGNvZGUgbXVjaCBzaW1wbGVyIGFuZAo+IGVhc2llciB0byBmb2xsb3cuCj4KPiBG b3I6IFZJWi01MTE1Cj4gQ0M6IERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KPiBTaWdu ZWQtb2ZmLWJ5OiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+IC0t LQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwgNzIgKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuYyB8IDg5ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwgIDQgKy0KPiAgIDMgZmlsZXMgY2hh bmdlZCwgODggaW5zZXJ0aW9ucygrKSwgNzcgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYwo+IGluZGV4IGIzNmUwNjQuLmE0MTkzNmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYwo+IEBAIC02NjMsMTIgKzY2MywxMiBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmlu Z193YWl0X2Zvcl9zcGFjZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAl1 bnNpZ25lZCBzcGFjZTsKPiAgIAlpbnQgcmV0Owo+Cj4gLQkvKiBUaGUgd2hvbGUgcG9pbnQgb2Yg cmVzZXJ2aW5nIHNwYWNlIGlzIHRvIG5vdCB3YWl0ISAqLwo+IC0JV0FSTl9PTihyaW5nYnVmLT5y ZXNlcnZlZF9pbl91c2UpOwo+IC0KPiAgIAlpZiAoaW50ZWxfcmluZ19zcGFjZShyaW5nYnVmKSA+ PSBieXRlcykKPiAgIAkJcmV0dXJuIDA7Cj4KPiArCS8qIFRoZSB3aG9sZSBwb2ludCBvZiByZXNl cnZpbmcgc3BhY2UgaXMgdG8gbm90IHdhaXQhICovCj4gKwlXQVJOX09OKHJpbmdidWYtPnJlc2Vy dmVkX2luX3VzZSk7Cj4gKwo+ICAgCWxpc3RfZm9yX2VhY2hfZW50cnkodGFyZ2V0LCAmcmluZy0+ cmVxdWVzdF9saXN0LCBsaXN0KSB7Cj4gICAJCS8qCj4gICAJCSAqIFRoZSByZXF1ZXN0IHF1ZXVl IGlzIHBlci1lbmdpbmUsIHNvIGNhbiBjb250YWluIHJlcXVlc3RzCj4gQEAgLTcxOCwyMiArNzE4 LDExIEBAIGludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlX2FuZF9zdWJtaXQoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICAgCWV4ZWNsaXN0c19jb250ZXh0X3F1ZXVlKHJl cXVlc3QpOwo+ICAgfQo+Cj4gLXN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3dyYXBfYnVmZmVyKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICtzdGF0aWMgdm9pZCBfX3dyYXBfcmlu Z19idWZmZXIoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCj4gICB7Cj4gLQlzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJlcS0+cmluZ2J1ZjsKPiAgIAl1aW50MzJf dCBfX2lvbWVtICp2aXJ0Owo+ICAgCWludCByZW0gPSByaW5nYnVmLT5zaXplIC0gcmluZ2J1Zi0+ dGFpbDsKPgo+IC0JLyogQ2FuJ3Qgd3JhcCBpZiBzcGFjZSBoYXMgYWxyZWFkeSBiZWVuIHJlc2Vy dmVkISAqLwo+IC0JV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwo+IC0KPiAtCWlm IChyaW5nYnVmLT5zcGFjZSA8IHJlbSkgewo+IC0JCWludCByZXQgPSBsb2dpY2FsX3Jpbmdfd2Fp dF9mb3Jfc3BhY2UocmVxLCByZW0pOwo+IC0KPiAtCQlpZiAocmV0KQo+IC0JCQlyZXR1cm4gcmV0 Owo+IC0JfQo+IC0KPiAgIAl2aXJ0ID0gcmluZ2J1Zi0+dmlydHVhbF9zdGFydCArIHJpbmdidWYt PnRhaWw7Cj4gICAJcmVtIC89IDQ7Cj4gICAJd2hpbGUgKHJlbS0tKQo+IEBAIC03NDEsNDAgKzcz MCw0OSBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ193cmFwX2J1ZmZlcihzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPgo+ICAgCXJpbmdidWYtPnRhaWwgPSAwOwo+ICAgCWludGVs X3JpbmdfdXBkYXRlX3NwYWNlKHJpbmdidWYpOwo+IC0KPiAtCXJldHVybiAwOwo+ICAgfQo+Cj4g ICBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxLCBpbnQgYnl0ZXMpCj4gICB7Cj4gICAJc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmdidWYgPSByZXEtPnJpbmdidWY7Cj4gLQlpbnQgcmV0Owo+IC0KPiAtCS8qCj4gLQkgKiBB ZGQgb24gdGhlIHJlc2VydmVkIHNpemUgdG8gdGhlIHJlcXVlc3QgdG8gbWFrZSBzdXJlIHRoYXQg YWZ0ZXIKPiAtCSAqIHRoZSBpbnRlbmRlZCBjb21tYW5kcyBoYXZlIGJlZW4gZW1pdHRlZCwgdGhl cmUgaXMgZ3VhcmFudGVlZCB0bwo+IC0JICogc3RpbGwgYmUgZW5vdWdoIGZyZWUgc3BhY2UgdG8g c2VuZCB0aGVtIHRvIHRoZSBoYXJkd2FyZS4KPiAtCSAqLwo+IC0JaWYgKCFyaW5nYnVmLT5yZXNl cnZlZF9pbl91c2UpCj4gLQkJYnl0ZXMgKz0gcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZTsKPiAtCj4g LQlpZiAodW5saWtlbHkocmluZ2J1Zi0+dGFpbCArIGJ5dGVzID4gcmluZ2J1Zi0+ZWZmZWN0aXZl X3NpemUpKSB7Cj4gLQkJcmV0ID0gbG9naWNhbF9yaW5nX3dyYXBfYnVmZmVyKHJlcSk7Cj4gLQkJ aWYgKHVubGlrZWx5KHJldCkpCj4gLQkJCXJldHVybiByZXQ7Cj4gKwlpbnQgcmVtYWluID0gcmlu Z2J1Zi0+ZWZmZWN0aXZlX3NpemUgLSByaW5nYnVmLT50YWlsOwo+ICsJaW50IHJldCwgdG90YWxf Ynl0ZXMsIHdhaXRfYnl0ZXMgPSAwOwo+ICsJYm9vbCBuZWVkX3dyYXAgPSBmYWxzZTsKPgo+IC0J CWlmKHJpbmdidWYtPnJlc2VydmVkX3NpemUpIHsKPiAtCQkJdWludDMyX3Qgc2l6ZSA9IHJpbmdi dWYtPnJlc2VydmVkX3NpemU7Cj4gKwlpZiAocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKQo+ICsJ CXRvdGFsX2J5dGVzID0gYnl0ZXM7Cj4gKwllbHNlCj4gKwkJdG90YWxfYnl0ZXMgPSBieXRlcyAr IHJpbmdidWYtPnJlc2VydmVkX3NpemU7Cj4KPiAtCQkJaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFj ZV9jYW5jZWwocmluZ2J1Zik7Cj4gLQkJCWludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfcmVzZXJ2 ZShyaW5nYnVmLCBzaXplKTsKPiArCWlmICh1bmxpa2VseShieXRlcyA+IHJlbWFpbikpIHsKPiAr CQkvKgo+ICsJCSAqIE5vdCBlbm91Z2ggc3BhY2UgZm9yIHRoZSBiYXNpYyByZXF1ZXN0LiBTbyBu ZWVkIHRvIGZsdXNoCj4gKwkJICogb3V0IHRoZSByZW1haW5kZXIgYW5kIHRoZW4gd2FpdCBmb3Ig YmFzZSArIHJlc2VydmVkLgo+ICsJCSAqLwo+ICsJCXdhaXRfYnl0ZXMgPSByZW1haW4gKyB0b3Rh bF9ieXRlczsKPiArCQluZWVkX3dyYXAgPSB0cnVlOwo+ICsJfSBlbHNlIHsKPiArCQlpZiAodW5s aWtlbHkodG90YWxfYnl0ZXMgPiByZW1haW4pKSB7Cj4gKwkJCS8qCj4gKwkJCSAqIFRoZSBiYXNl IHJlcXVlc3Qgd2lsbCBmaXQgYnV0IHRoZSByZXNlcnZlZCBzcGFjZQo+ICsJCQkgKiBmYWxscyBv ZmYgdGhlIGVuZC4gU28gb25seSBuZWVkIHRvIHRvIHdhaXQgZm9yIHRoZQo+ICsJCQkgKiByZXNl cnZlZCBzaXplIGFmdGVyIGZsdXNoaW5nIG91dCB0aGUgcmVtYWluZGVyLgo+ICsJCQkgKi8KPiAr CQkJd2FpdF9ieXRlcyA9IHJlbWFpbiArIHJpbmdidWYtPnJlc2VydmVkX3NpemU7Cj4gKwkJCW5l ZWRfd3JhcCA9IHRydWU7Cj4gKwkJfSBlbHNlIGlmICh0b3RhbF9ieXRlcyA+IHJpbmdidWYtPnNw YWNlKSB7Cj4gKwkJCS8qIE5vIHdyYXBwaW5nIHJlcXVpcmVkLCBqdXN0IHdhaXRpbmcuICovCj4g KwkJCXdhaXRfYnl0ZXMgPSB0b3RhbF9ieXRlczsKPiAgIAkJfQo+ICAgCX0KPgo+IC0JaWYgKHVu bGlrZWx5KHJpbmdidWYtPnNwYWNlIDwgYnl0ZXMpKSB7Cj4gLQkJcmV0ID0gbG9naWNhbF9yaW5n X3dhaXRfZm9yX3NwYWNlKHJlcSwgYnl0ZXMpOwo+ICsJaWYgKHdhaXRfYnl0ZXMpIHsKPiArCQly ZXQgPSBsb2dpY2FsX3Jpbmdfd2FpdF9mb3Jfc3BhY2UocmVxLCB3YWl0X2J5dGVzKTsKCkhlcmUg d2UncmUgcG90ZW50aWFsbHkgd2FpdGluZyBmb3IgYW4gYW1vdW50IG9mIHNwYWNlIHRoYXQgaXMg Cm9wdGltaXN0aWNhbGx5IGNvbXB1dGVkIChyaW5nYnVmLT5lZmZlY3RpdmVfc2l6ZSAtIHJpbmdi dWYtPnRhaWwpLiBJZiB3ZSAKd2FudCB0byBzdGF5IGNvbnNpc3RlbnQsIHRoYXQgaXMgc3RheSBw ZXNzaW1pc3RpYywgd2Ugc2hvdWxkIHVzZSAKcmluZ2J1Zi0+c2l6ZSAtIHJpbmdidWYtPnRhaWwg c28gdGhhdCB3ZSdyZSB3YWl0aW5nIGZvciB0aGUgYmlnZ2VzdCAKcG9zc2libGUgc2l6ZSBoZXJl LgoKPiAgIAkJaWYgKHVubGlrZWx5KHJldCkpCj4gICAJCQlyZXR1cm4gcmV0Owo+ICsKPiArCQlp ZiAobmVlZF93cmFwKQo+ICsJCQlfX3dyYXBfcmluZ19idWZmZXIocmluZ2J1Zik7Cj4gICAJfQo+ Cj4gICAJcmV0dXJuIDA7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+ IGluZGV4IGFmN2MxMmUuLjliMTAwMTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jCj4gQEAgLTIxMjEsMTIgKzIxMjEsMTIgQEAgc3RhdGljIGludCByaW5nX3dh aXRfZm9yX3NwYWNlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGludCBuKQo+ICAgCXVu c2lnbmVkIHNwYWNlOwo+ICAgCWludCByZXQ7Cj4KPiAtCS8qIFRoZSB3aG9sZSBwb2ludCBvZiBy ZXNlcnZpbmcgc3BhY2UgaXMgdG8gbm90IHdhaXQhICovCj4gLQlXQVJOX09OKHJpbmdidWYtPnJl c2VydmVkX2luX3VzZSk7Cj4gLQo+ICAgCWlmIChpbnRlbF9yaW5nX3NwYWNlKHJpbmdidWYpID49 IG4pCj4gICAJCXJldHVybiAwOwo+Cj4gKwkvKiBUaGUgd2hvbGUgcG9pbnQgb2YgcmVzZXJ2aW5n IHNwYWNlIGlzIHRvIG5vdCB3YWl0ISAqLwo+ICsJV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9p bl91c2UpOwo+ICsKPiAgIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJlcXVlc3QsICZyaW5nLT5yZXF1 ZXN0X2xpc3QsIGxpc3QpIHsKPiAgIAkJc3BhY2UgPSBfX2ludGVsX3Jpbmdfc3BhY2UocmVxdWVz dC0+cG9zdGZpeCwgcmluZ2J1Zi0+dGFpbCwKPiAgIAkJCQkJICAgcmluZ2J1Zi0+c2l6ZSk7Cj4g QEAgLTIxNDUsMjEgKzIxNDUsMTEgQEAgc3RhdGljIGludCByaW5nX3dhaXRfZm9yX3NwYWNlKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGludCBuKQo+ICAgCXJldHVybiAwOwo+ICAgfQo+ Cj4gLXN0YXRpYyBpbnQgaW50ZWxfd3JhcF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nKQo+ICtzdGF0aWMgdm9pZCBfX3dyYXBfcmluZ19idWZmZXIoc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmdidWYpCj4gICB7Cj4gICAJdWludDMyX3QgX19pb21lbSAqdmlydDsK PiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcmluZy0+YnVmZmVyOwo+ICAg CWludCByZW0gPSByaW5nYnVmLT5zaXplIC0gcmluZ2J1Zi0+dGFpbDsKPgo+IC0JLyogQ2FuJ3Qg d3JhcCBpZiBzcGFjZSBoYXMgYWxyZWFkeSBiZWVuIHJlc2VydmVkISAqLwo+IC0JV0FSTl9PTihy aW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwo+IC0KPiAtCWlmIChyaW5nYnVmLT5zcGFjZSA8IHJl bSkgewo+IC0JCWludCByZXQgPSByaW5nX3dhaXRfZm9yX3NwYWNlKHJpbmcsIHJlbSk7Cj4gLQkJ aWYgKHJldCkKPiAtCQkJcmV0dXJuIHJldDsKPiAtCX0KPiAtCj4gICAJdmlydCA9IHJpbmdidWYt PnZpcnR1YWxfc3RhcnQgKyByaW5nYnVmLT50YWlsOwo+ICAgCXJlbSAvPSA0Owo+ICAgCXdoaWxl IChyZW0tLSkKPiBAQCAtMjE2Nyw4ICsyMTU3LDYgQEAgc3RhdGljIGludCBpbnRlbF93cmFwX3Jp bmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4KPiAgIAlyaW5nYnVmLT50 YWlsID0gMDsKPiAgIAlpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShyaW5nYnVmKTsKPiAtCj4gLQly ZXR1cm4gMDsKPiAgIH0KPgo+ICAgaW50IGludGVsX3JpbmdfaWRsZShzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nKQo+IEBAIC0yMjM4LDkgKzIyMjYsMjEgQEAgdm9pZCBpbnRlbF9yaW5nX3Jl c2VydmVkX3NwYWNlX3VzZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiAgIHZv aWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9lbmQoc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmdidWYpCj4gICB7Cj4gICAJV0FSTl9PTighcmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsK PiAtCVdBUk4ocmluZ2J1Zi0+dGFpbCA+IHJpbmdidWYtPnJlc2VydmVkX3RhaWwgKyByaW5nYnVm LT5yZXNlcnZlZF9zaXplLAo+IC0JICAgICAicmVxdWVzdCByZXNlcnZlZCBzaXplIHRvbyBzbWFs bDogJWQgdnMgJWQhXG4iLAo+IC0JICAgICByaW5nYnVmLT50YWlsIC0gcmluZ2J1Zi0+cmVzZXJ2 ZWRfdGFpbCwgcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSk7Cj4gKwlpZiAocmluZ2J1Zi0+dGFpbCA+ IHJpbmdidWYtPnJlc2VydmVkX3RhaWwpIHsKPiArCQlXQVJOKHJpbmdidWYtPnRhaWwgPiByaW5n YnVmLT5yZXNlcnZlZF90YWlsICsgcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSwKPiArCQkgICAgICJy ZXF1ZXN0IHJlc2VydmVkIHNpemUgdG9vIHNtYWxsOiAlZCB2cyAlZCFcbiIsCj4gKwkJICAgICBy aW5nYnVmLT50YWlsIC0gcmluZ2J1Zi0+cmVzZXJ2ZWRfdGFpbCwgcmluZ2J1Zi0+cmVzZXJ2ZWRf c2l6ZSk7Cj4gKwl9IGVsc2Ugewo+ICsJCS8qCj4gKwkJICogVGhlIHJpbmcgd2FzIHdyYXBwZWQg d2hpbGUgdGhlIHJlc2VydmVkIHNwYWNlIHdhcyBpbiB1c2UuCj4gKwkJICogVGhhdCBtZWFucyB0 aGF0IHNvbWUgdW5rbm93biBhbW91bnQgb2YgdGhlIHJpbmcgdGFpbCB3YXMKPiArCQkgKiBuby1v cCBmaWxsZWQgYW5kIHNraXBwZWQuIFRodXMgc2ltcGx5IGFkZGluZyB0aGUgcmluZyBzaXplCj4g KwkJICogdG8gdGhlIHRhaWwgYW5kIGRvaW5nIHRoZSBhYm92ZSBzcGFjZSBjaGVjayB3aWxsIG5v dCB3b3JrLgo+ICsJCSAqIFJhdGhlciB0aGFuIGF0dGVtcHQgdG8gdHJhY2sgaG93IG11Y2ggdGFp bCB3YXMgc2tpcHBlZCwKPiArCQkgKiBpdCBpcyBtdWNoIHNpbXBsZXIgdG8gc2F5IHRoYXQgYWxz byBza2lwcGluZyB0aGUgc2FuaXR5Cj4gKwkJICogY2hlY2sgZXZlcnkgb25jZSBpbiBhIHdoaWxl IGlzIG5vdCBhIGJpZyBpc3N1ZS4KPiArCQkgKi8KPiArCX0KPgo+ICAgCXJpbmdidWYtPnJlc2Vy dmVkX3NpemUgICA9IDA7Cj4gICAJcmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlID0gZmFsc2U7Cj4g QEAgLTIyNDksMzMgKzIyNDksNDQgQEAgdm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2Vu ZChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiAgIHN0YXRpYyBpbnQgX19pbnRl bF9yaW5nX3ByZXBhcmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgaW50IGJ5dGVzKQo+ ICAgewo+ICAgCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcmluZy0+YnVmZmVy Owo+IC0JaW50IHJldDsKPiAtCj4gLQkvKgo+IC0JICogQWRkIG9uIHRoZSByZXNlcnZlZCBzaXpl IHRvIHRoZSByZXF1ZXN0IHRvIG1ha2Ugc3VyZSB0aGF0IGFmdGVyCj4gLQkgKiB0aGUgaW50ZW5k ZWQgY29tbWFuZHMgaGF2ZSBiZWVuIGVtaXR0ZWQsIHRoZXJlIGlzIGd1YXJhbnRlZWQgdG8KPiAt CSAqIHN0aWxsIGJlIGVub3VnaCBmcmVlIHNwYWNlIHRvIHNlbmQgdGhlbSB0byB0aGUgaGFyZHdh cmUuCj4gLQkgKi8KPiAtCWlmICghcmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKQo+IC0JCWJ5dGVz ICs9IHJpbmdidWYtPnJlc2VydmVkX3NpemU7Cj4gLQo+IC0JaWYgKHVubGlrZWx5KHJpbmdidWYt PnRhaWwgKyBieXRlcyA+IHJpbmdidWYtPmVmZmVjdGl2ZV9zaXplKSkgewo+IC0JCXJldCA9IGlu dGVsX3dyYXBfcmluZ19idWZmZXIocmluZyk7Cj4gLQkJaWYgKHVubGlrZWx5KHJldCkpCj4gLQkJ CXJldHVybiByZXQ7Cj4gKwlpbnQgcmVtYWluID0gcmluZ2J1Zi0+ZWZmZWN0aXZlX3NpemUgLSBy aW5nYnVmLT50YWlsOwo+ICsJaW50IHJldCwgdG90YWxfYnl0ZXMsIHdhaXRfYnl0ZXMgPSAwOwo+ ICsJYm9vbCBuZWVkX3dyYXAgPSBmYWxzZTsKPgo+IC0JCWlmKHJpbmdidWYtPnJlc2VydmVkX3Np emUpIHsKPiAtCQkJdWludDMyX3Qgc2l6ZSA9IHJpbmdidWYtPnJlc2VydmVkX3NpemU7Cj4gKwlp ZiAocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKQo+ICsJCXRvdGFsX2J5dGVzID0gYnl0ZXM7Cj4g KwllbHNlCj4gKwkJdG90YWxfYnl0ZXMgPSBieXRlcyArIHJpbmdidWYtPnJlc2VydmVkX3NpemU7 Cj4KPiAtCQkJaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9jYW5jZWwocmluZ2J1Zik7Cj4gLQkJ CWludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfcmVzZXJ2ZShyaW5nYnVmLCBzaXplKTsKPiArCWlm ICh1bmxpa2VseShieXRlcyA+IHJlbWFpbikpIHsKPiArCQkvKgo+ICsJCSAqIE5vdCBlbm91Z2gg c3BhY2UgZm9yIHRoZSBiYXNpYyByZXF1ZXN0LiBTbyBuZWVkIHRvIGZsdXNoCj4gKwkJICogb3V0 IHRoZSByZW1haW5kZXIgYW5kIHRoZW4gd2FpdCBmb3IgYmFzZSArIHJlc2VydmVkLgo+ICsJCSAq Lwo+ICsJCXdhaXRfYnl0ZXMgPSByZW1haW4gKyB0b3RhbF9ieXRlczsKPiArCQluZWVkX3dyYXAg PSB0cnVlOwo+ICsJfSBlbHNlIHsKPiArCQlpZiAodW5saWtlbHkodG90YWxfYnl0ZXMgPiByZW1h aW4pKSB7Cj4gKwkJCS8qCj4gKwkJCSAqIFRoZSBiYXNlIHJlcXVlc3Qgd2lsbCBmaXQgYnV0IHRo ZSByZXNlcnZlZCBzcGFjZQo+ICsJCQkgKiBmYWxscyBvZmYgdGhlIGVuZC4gU28gb25seSBuZWVk IHRvIHRvIHdhaXQgZm9yIHRoZQo+ICsJCQkgKiByZXNlcnZlZCBzaXplIGFmdGVyIGZsdXNoaW5n IG91dCB0aGUgcmVtYWluZGVyLgo+ICsJCQkgKi8KPiArCQkJd2FpdF9ieXRlcyA9IHJlbWFpbiAr IHJpbmdidWYtPnJlc2VydmVkX3NpemU7Cj4gKwkJCW5lZWRfd3JhcCA9IHRydWU7Cj4gKwkJfSBl bHNlIGlmICh0b3RhbF9ieXRlcyA+IHJpbmdidWYtPnNwYWNlKSB7Cj4gKwkJCS8qIE5vIHdyYXBw aW5nIHJlcXVpcmVkLCBqdXN0IHdhaXRpbmcuICovCj4gKwkJCXdhaXRfYnl0ZXMgPSB0b3RhbF9i eXRlczsKPiAgIAkJfQo+ICAgCX0KPgo+IC0JaWYgKHVubGlrZWx5KHJpbmdidWYtPnNwYWNlIDwg Ynl0ZXMpKSB7Cj4gLQkJcmV0ID0gcmluZ193YWl0X2Zvcl9zcGFjZShyaW5nLCBieXRlcyk7Cj4g KwlpZiAod2FpdF9ieXRlcykgewo+ICsJCXJldCA9IHJpbmdfd2FpdF9mb3Jfc3BhY2UocmluZywg d2FpdF9ieXRlcyk7CgpTYW1lIGlzc3VlIGhlcmUgYXMgZm9yIHRoZSBMUkMgaW1wbGVtZW50YXRp b24uCgpUaGFua3MsClRvbWFzCgo+ICAgCQlpZiAodW5saWtlbHkocmV0KSkKPiAgIAkJCXJldHVy biByZXQ7Cj4gKwo+ICsJCWlmIChuZWVkX3dyYXApCj4gKwkJCV9fd3JhcF9yaW5nX2J1ZmZlcihy aW5nYnVmKTsKPiAgIAl9Cj4KPiAgIAlyZXR1cm4gMDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5oCj4gaW5kZXggMGUyYmJjNi4uMzA0Y2FjNCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBAQCAtNDczLDcgKzQ3Myw2IEBAIHN0YXRp YyBpbmxpbmUgdTMyIGludGVsX3JpbmdfZ2V0X3RhaWwoc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmdidWYpCj4gICAgKiB3aWxsIGFsd2F5cyBoYXZlIHN1ZmZpY2llbnQgcm9vbSB0byBkbyBp dHMgc3R1ZmYuIFRoZSByZXF1ZXN0IGNyZWF0aW9uCj4gICAgKiBjb2RlIGNhbGxzIHRoaXMgYXV0 b21hdGljYWxseS4KPiAgICAqLwo+IC1pbnQgaW50ZWxfcmluZ19yZXNlcnZlX3NwYWNlKHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCk7Cj4gICB2b2lkIGludGVsX3JpbmdfcmVz ZXJ2ZWRfc3BhY2VfcmVzZXJ2ZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwgaW50 IHNpemUpOwo+ICAgLyogQ2FuY2VsIHRoZSByZXNlcnZhdGlvbiwgZS5nLiBiZWNhdXNlIHRoZSBy ZXF1ZXN0IGlzIGJlaW5nIGRpc2NhcmRlZC4gKi8KPiAgIHZvaWQgaW50ZWxfcmluZ19yZXNlcnZl ZF9zcGFjZV9jYW5jZWwoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOwo+IEBAIC00 ODIsNCArNDgxLDcgQEAgdm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX3VzZShzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1Zik7Cj4gICAvKiBGaW5pc2ggd2l0aCB0aGUgcmVzZXJ2 ZWQgc3BhY2UgLSBmb3IgdXNlIGJ5IGk5MTVfYWRkX3JlcXVlc3QoKSBvbmx5LiAqLwo+ICAgdm9p ZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2VuZChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZ2J1Zik7Cj4KPiArLyogTGVnYWN5IHJpbmdidWZmZXIgc3BlY2lmaWMgcG9ydGlvbiBvZiBy ZXNlcnZhdGlvbiBjb2RlOiAqLwo+ICtpbnQgaW50ZWxfcmluZ19yZXNlcnZlX3NwYWNlKHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCk7Cj4gKwo+ICAgI2VuZGlmIC8qIF9JTlRF TF9SSU5HQlVGRkVSX0hfICovCj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==