From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak S Subject: Re: [PATCH v2 3/3] drm/i915: Consolidate ring freespace calculations Date: Tue, 25 Nov 2014 13:29:32 +0530 Message-ID: <547436E4.2090008@linux.intel.com> References: <1415021344-24875-1-git-send-email-david.s.gordon@intel.com> <1416341242-5352-1-git-send-email-david.s.gordon@intel.com> <1416341242-5352-4-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 2C7596E735 for ; Mon, 24 Nov 2014 00:03:12 -0800 (PST) In-Reply-To: <1416341242-5352-4-git-send-email-david.s.gordon@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIFdlZG5lc2RheSAxOSBOb3ZlbWJlciAyMDE0IDAxOjM3IEFNLCBEYXZlIEdvcmRvbiB3cm90 ZToKPiBUaGVyZSBhcmUgbnVtZXJvdXMgcGxhY2VzIGluIHRoZSBjb2RlIHdoZXJlIHRoZSBkcml2 ZXIncyBpZGVhIG9mCj4gaG93IG11Y2ggc3BhY2UgaXMgbGVmdCBpbiBhIHJpbmcgaXMgdXBkYXRl ZCB1c2luZyB0aGUgZHJpdmVyJ3MKPiBsYXRlc3Qgbm90aW9ucyBvZiB0aGUgcG9zaXRpb25zIG9m ICdoZWFkJyBhbmQgJ3RhaWwnIGZvciB0aGUgcmluZy4KPiBBbW9uZyB0aGVtIGFyZSBzb21lIHRo YXQgdXBkYXRlIG9uZSBvciBib3RoIG9mIHRoZXNlIHZhbHVlcyBiZWZvcmUKPiAocmUpZG9pbmcg dGhlIGNhbGN1bGF0aW9uLiBJbiBwYXJ0aWN1bGFyLCB0aGVyZSBhcmUgZm91ciBkaWZmZXJlbnQK PiBwbGFjZXMgaW4gdGhlIGNvZGUgd2hlcmUgJ2xhc3RfcmV0aXJlZF9oZWFkJyBpcyBjb3BpZWQg dG8gJ2hlYWQnCj4gYW5kIHRoZW4gc2V0IHRvIC0xOyBhbmQgdHdvIG9mIHRoZXNlIGRvIG5vdCBo YXZlIGEgZ3VhcmQgdG8gY2hlY2sKPiB0aGF0IGl0IGhhcyBhY3R1YWxseSBiZWVuIHVwZGF0ZWQg c2luY2UgbGFzdCB0aW1lIGl0IHdhcyBjb25zdW1lZCwKPiBsZWF2aW5nIHRoZSBwb3NzaWJpbGl0 eSB0aGF0IHRoZSBkdW1teSAtMSBjYW4gYmUgdHJhbnNmZXJyZWQgZnJvbQo+ICdsYXN0X3JldGly ZWRfaGVhZCcgdG8gJ2hlYWQnLCBjYXVzaW5nIHRoZSBzcGFjZSBjYWxjdWxhdGlvbiB0bwo+IHBy b2R1Y2UgJ2ltcG9zc2libGUnIHJlc3VsdHMgKHByZXZpb3VzbHkgc2VlbiBvbiBBbmRyb2lkL1ZM VikuCj4KPiBUaGlzIGNvZGUgdGhlcmVmb3JlIGNvbnNvbGlkYXRlcyBhbGwgdGhlIGNhbGN1bGF0 aW9uIGFuZCB1cGRhdGluZyBvZgo+IHRoZXNlIHZhbHVlcywgc3VjaCB0aGF0IHRoZXJlIGlzIG9u bHkgb25lIHBsYWNlIHdoZXJlIHRoZSByaW5nIHNwYWNlCj4gaXMgdXBkYXRlZCwgYW5kIGl0IEFM V0FZUyB1c2VzIChhbmQgY29uc3VtZXMpICdsYXN0X3JldGlyZWRfaGVhZCcgaWYKPiAoYW5kIE9O TFkgaWYpIGl0IGhhcyBiZWVuIHVwZGF0ZWQgc2luY2UgdGhlIGxhc3QgY2FsbC4KPgo+IFNpZ25l ZC1vZmYtYnk6IERhdmUgR29yZG9uIDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+Cj4gLS0tCj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jICAgICAgICAgfCAgICA1ICsrLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwgICAyNSArKysrKy0tLS0t LS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8ICAgNTEg KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5oIHwgICAgMSArCj4gICA0IGZpbGVzIGNoYW5nZWQsIDM3IGluc2Vy dGlvbnMoKyksIDQ1IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCj4gaW5k ZXggNWRjMzdmMC4uNGE5ODM5OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RtYS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwo+IEBAIC0x NTQsMTEgKzE1NCwxMCBAQCB2b2lkIGk5MTVfa2VybmVsX2xvc3RfY29udGV4dChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQo+ICAgCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVS X01PREVTRVQpKQo+ICAgCQlyZXR1cm47Cj4gICAKPiArCXJpbmdidWYtPmxhc3RfcmV0aXJlZF9o ZWFkID0gLTE7Cj4gICAJcmluZ2J1Zi0+aGVhZCA9IEk5MTVfUkVBRF9IRUFEKHJpbmcpICYgSEVB RF9BRERSOwo+ICAgCXJpbmdidWYtPnRhaWwgPSBJOTE1X1JFQURfVEFJTChyaW5nKSAmIFRBSUxf QUREUjsKPiAtCXJpbmdidWYtPnNwYWNlID0gcmluZ2J1Zi0+aGVhZCAtIChyaW5nYnVmLT50YWls ICsgSTkxNV9SSU5HX0ZSRUVfU1BBQ0UpOwo+IC0JaWYgKHJpbmdidWYtPnNwYWNlIDwgMCkKPiAt CQlyaW5nYnVmLT5zcGFjZSArPSByaW5nYnVmLT5zaXplOwo+ICsJaW50ZWxfcmluZ191cGRhdGVf c3BhY2UocmluZ2J1Zik7Cj4gICAKPiAgIAlpZiAoIWRldi0+cHJpbWFyeS0+bWFzdGVyKQo+ICAg CQlyZXR1cm47Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBpbmRleCBhZDMxMzczLi5jOWE1 MjI3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBAQCAtODI1LDE0ICs4MjUsOCBA QCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ193YWl0X3JlcXVlc3Qoc3RydWN0IGludGVsX3Jpbmdi dWZmZXIgKnJpbmdidWYsCj4gICAJdTMyIHNlcW5vID0gMDsKPiAgIAlpbnQgcmV0Owo+ICAgCj4g LQlpZiAocmluZ2J1Zi0+bGFzdF9yZXRpcmVkX2hlYWQgIT0gLTEpIHsKPiAtCQlyaW5nYnVmLT5o ZWFkID0gcmluZ2J1Zi0+bGFzdF9yZXRpcmVkX2hlYWQ7Cj4gLQkJcmluZ2J1Zi0+bGFzdF9yZXRp cmVkX2hlYWQgPSAtMTsKPiAtCj4gLQkJcmluZ2J1Zi0+c3BhY2UgPSBpbnRlbF9yaW5nX3NwYWNl KHJpbmdidWYpOwo+IC0JCWlmIChyaW5nYnVmLT5zcGFjZSA+PSBieXRlcykKPiAtCQkJcmV0dXJu IDA7Cj4gLQl9Cj4gKwlpZiAoaW50ZWxfcmluZ19zcGFjZShyaW5nYnVmKSA+PSBieXRlcykKPiAr CQlyZXR1cm4gMDsKPiAgIAo+ICAgCWxpc3RfZm9yX2VhY2hfZW50cnkocmVxdWVzdCwgJnJpbmct PnJlcXVlc3RfbGlzdCwgbGlzdCkgewo+ICAgCQkvKgo+IEBAIC04NjAsMTEgKzg1NCw4IEBAIHN0 YXRpYyBpbnQgbG9naWNhbF9yaW5nX3dhaXRfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZ2J1ZiwKPiAgIAkJcmV0dXJuIHJldDsKPiAgIAo+ICAgCWk5MTVfZ2VtX3JldGlyZV9y ZXF1ZXN0c19yaW5nKHJpbmcpOwo+IC0JcmluZ2J1Zi0+aGVhZCA9IHJpbmdidWYtPmxhc3RfcmV0 aXJlZF9oZWFkOwo+IC0JcmluZ2J1Zi0+bGFzdF9yZXRpcmVkX2hlYWQgPSAtMTsKPiAgIAo+IC0J cmluZ2J1Zi0+c3BhY2UgPSBpbnRlbF9yaW5nX3NwYWNlKHJpbmdidWYpOwo+IC0JcmV0dXJuIDA7 Cj4gKwlyZXR1cm4gaW50ZWxfcmluZ19zcGFjZShyaW5nYnVmKSA+PSBieXRlcyA/IDAgOiAtRU5P U1BDOwo+ICAgfQo+ICAgCj4gICBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ193YWl0X2Zvcl9zcGFj ZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwKPiBAQCAtODkwLDEyICs4ODEsMTAg QEAgc3RhdGljIGludCBsb2dpY2FsX3Jpbmdfd2FpdF9mb3Jfc3BhY2Uoc3RydWN0IGludGVsX3Jp bmdidWZmZXIgKnJpbmdidWYsCj4gICAJICogY2FzZSBieSBjaG9vc2luZyBhbiBpbnNhbmVseSBs YXJnZSB0aW1lb3V0LiAqLwo+ICAgCWVuZCA9IGppZmZpZXMgKyA2MCAqIEhaOwo+ICAgCj4gKwly ZXQgPSAwOwo+ICAgCWRvIHsKPiAtCQlyaW5nYnVmLT5zcGFjZSA9IGludGVsX3Jpbmdfc3BhY2Uo cmluZ2J1Zik7Cj4gLQkJaWYgKHJpbmdidWYtPnNwYWNlID49IGJ5dGVzKSB7Cj4gLQkJCXJldCA9 IDA7Cj4gKwkJaWYgKGludGVsX3Jpbmdfc3BhY2UocmluZ2J1ZikgPj0gYnl0ZXMpCj4gICAJCQli cmVhazsKPiAtCQl9Cj4gICAKPiAgIAkJbXNsZWVwKDEpOwo+ICAgCj4gQEAgLTkzNiw3ICs5MjUs NyBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ193cmFwX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfcmlu Z2J1ZmZlciAqcmluZ2J1ZikKPiAgIAkJaW93cml0ZTMyKE1JX05PT1AsIHZpcnQrKyk7Cj4gICAK PiAgIAlyaW5nYnVmLT50YWlsID0gMDsKPiAtCXJpbmdidWYtPnNwYWNlID0gaW50ZWxfcmluZ19z cGFjZShyaW5nYnVmKTsKPiArCWludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHJpbmdidWYpOwo+ICAg Cj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gQEAgLTE3NzcsOCArMTc2Niw4IEBAIGludCBpbnRlbF9s cl9jb250ZXh0X2RlZmVycmVkX2NyZWF0ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+ICAg CXJpbmdidWYtPmVmZmVjdGl2ZV9zaXplID0gcmluZ2J1Zi0+c2l6ZTsKPiAgIAlyaW5nYnVmLT5o ZWFkID0gMDsKPiAgIAlyaW5nYnVmLT50YWlsID0gMDsKPiAtCXJpbmdidWYtPnNwYWNlID0gcmlu Z2J1Zi0+c2l6ZTsKPiAgIAlyaW5nYnVmLT5sYXN0X3JldGlyZWRfaGVhZCA9IC0xOwo+ICsJaW50 ZWxfcmluZ191cGRhdGVfc3BhY2UocmluZ2J1Zik7Cj4gICAKPiAgIAkvKiBUT0RPOiBGb3Igbm93 IHdlIHB1dCB0aGlzIGluIHRoZSBtYXBwYWJsZSByZWdpb24gc28gdGhhdCB3ZSBjYW4gcmV1c2UK PiAgIAkgKiB0aGUgZXhpc3RpbmcgcmluZ2J1ZmZlciBjb2RlIHdoaWNoIGlvcmVtYXBzIGl0LiBX aGVuIHdlIHN0YXJ0Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+IGlu ZGV4IGFlMDkyNTguLmEwOGFlNjUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5jCj4gQEAgLTUyLDE2ICs1MiwyNyBAQCBpbnRlbF9yaW5nX2luaXRpYWxpemVkKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gICAKPiAgIGludCBfX2ludGVsX3Jpbmdfc3Bh Y2UoaW50IGhlYWQsIGludCB0YWlsLCBpbnQgc2l6ZSkKPiAgIHsKPiAtCWludCBzcGFjZSA9IGhl YWQgLSAodGFpbCArIEk5MTVfUklOR19GUkVFX1NQQUNFKTsKPiAtCWlmIChzcGFjZSA8IDApCj4g KwlpbnQgc3BhY2UgPSBoZWFkIC0gdGFpbDsKPiArCWlmIChzcGFjZSA8PSAwKQo+ICAgCQlzcGFj ZSArPSBzaXplOwo+IC0JcmV0dXJuIHNwYWNlOwo+ICsJcmV0dXJuIHNwYWNlIC0gSTkxNV9SSU5H X0ZSRUVfU1BBQ0U7Cj4gK30KPiArCj4gK3ZvaWQgaW50ZWxfcmluZ191cGRhdGVfc3BhY2Uoc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCj4gK3sKPiArCWlmIChyaW5nYnVmLT5sYXN0 X3JldGlyZWRfaGVhZCAhPSAtMSkgewo+ICsJCXJpbmdidWYtPmhlYWQgPSByaW5nYnVmLT5sYXN0 X3JldGlyZWRfaGVhZDsKPiArCQlyaW5nYnVmLT5sYXN0X3JldGlyZWRfaGVhZCA9IC0xOwo+ICsJ fQo+ICsKPiArCXJpbmdidWYtPnNwYWNlID0gX19pbnRlbF9yaW5nX3NwYWNlKHJpbmdidWYtPmhl YWQgJiBIRUFEX0FERFIsCj4gKwkJCQkJICAgIHJpbmdidWYtPnRhaWwsIHJpbmdidWYtPnNpemUp Owo+ICAgfQo+ICAgCj4gICBpbnQgaW50ZWxfcmluZ19zcGFjZShzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1ZikKPiAgIHsKPiAtCXJldHVybiBfX2ludGVsX3Jpbmdfc3BhY2UocmluZ2J1 Zi0+aGVhZCAmIEhFQURfQUREUiwKPiAtCQkJCSAgcmluZ2J1Zi0+dGFpbCwgcmluZ2J1Zi0+c2l6 ZSk7Cj4gKwlpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShyaW5nYnVmKTsKPiArCXJldHVybiByaW5n YnVmLT5zcGFjZTsKPiAgIH0KPiAgIAo+ICAgYm9vbCBpbnRlbF9yaW5nX3N0b3BwZWQoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiBAQCAtNTkyLDEwICs2MDMsMTAgQEAgc3RhdGljIGlu dCBpbml0X3JpbmdfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gICAJaWYg KCFkcm1fY29yZV9jaGVja19mZWF0dXJlKHJpbmctPmRldiwgRFJJVkVSX01PREVTRVQpKQo+ICAg CQlpOTE1X2tlcm5lbF9sb3N0X2NvbnRleHQocmluZy0+ZGV2KTsKPiAgIAllbHNlIHsKPiArCQly aW5nYnVmLT5sYXN0X3JldGlyZWRfaGVhZCA9IC0xOwo+ICAgCQlyaW5nYnVmLT5oZWFkID0gSTkx NV9SRUFEX0hFQUQocmluZyk7Cj4gICAJCXJpbmdidWYtPnRhaWwgPSBJOTE1X1JFQURfVEFJTChy aW5nKSAmIFRBSUxfQUREUjsKPiAtCQlyaW5nYnVmLT5zcGFjZSA9IGludGVsX3Jpbmdfc3BhY2Uo cmluZ2J1Zik7Cj4gLQkJcmluZ2J1Zi0+bGFzdF9yZXRpcmVkX2hlYWQgPSAtMTsKPiArCQlpbnRl bF9yaW5nX3VwZGF0ZV9zcGFjZShyaW5nYnVmKTsKPiAgIAl9Cj4gICAKPiAgIAltZW1zZXQoJnJp bmctPmhhbmdjaGVjaywgMCwgc2l6ZW9mKHJpbmctPmhhbmdjaGVjaykpOwo+IEBAIC0xODgwLDE0 ICsxODkxLDggQEAgc3RhdGljIGludCBpbnRlbF9yaW5nX3dhaXRfcmVxdWVzdChzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nLCBpbnQgbikKPiAgIAl1MzIgc2Vxbm8gPSAwOwo+ICAgCWludCBy ZXQ7Cj4gICAKPiAtCWlmIChyaW5nYnVmLT5sYXN0X3JldGlyZWRfaGVhZCAhPSAtMSkgewo+IC0J CXJpbmdidWYtPmhlYWQgPSByaW5nYnVmLT5sYXN0X3JldGlyZWRfaGVhZDsKPiAtCQlyaW5nYnVm LT5sYXN0X3JldGlyZWRfaGVhZCA9IC0xOwo+IC0KPiAtCQlyaW5nYnVmLT5zcGFjZSA9IGludGVs X3Jpbmdfc3BhY2UocmluZ2J1Zik7Cj4gLQkJaWYgKHJpbmdidWYtPnNwYWNlID49IG4pCj4gLQkJ CXJldHVybiAwOwo+IC0JfQo+ICsJaWYgKGludGVsX3Jpbmdfc3BhY2UocmluZ2J1ZikgPj0gbikK PiArCQlyZXR1cm4gMDsKPiAgIAo+ICAgCWxpc3RfZm9yX2VhY2hfZW50cnkocmVxdWVzdCwgJnJp bmctPnJlcXVlc3RfbGlzdCwgbGlzdCkgewo+ICAgCQlpZiAoX19pbnRlbF9yaW5nX3NwYWNlKHJl cXVlc3QtPnRhaWwsIHJpbmdidWYtPnRhaWwsCj4gQEAgLTE5MDUsMTAgKzE5MTAsNyBAQCBzdGF0 aWMgaW50IGludGVsX3Jpbmdfd2FpdF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcsIGludCBuKQo+ICAgCQlyZXR1cm4gcmV0Owo+ICAgCj4gICAJaTkxNV9nZW1fcmV0aXJlX3Jl cXVlc3RzX3JpbmcocmluZyk7Cj4gLQlyaW5nYnVmLT5oZWFkID0gcmluZ2J1Zi0+bGFzdF9yZXRp cmVkX2hlYWQ7Cj4gLQlyaW5nYnVmLT5sYXN0X3JldGlyZWRfaGVhZCA9IC0xOwo+ICAgCj4gLQly aW5nYnVmLT5zcGFjZSA9IGludGVsX3Jpbmdfc3BhY2UocmluZ2J1Zik7Cj4gICAJcmV0dXJuIDA7 Cj4gICB9Cj4gICAKPiBAQCAtMTkzNCwxNCArMTkzNiwxNCBAQCBzdGF0aWMgaW50IHJpbmdfd2Fp dF9mb3Jfc3BhY2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgaW50IG4pCj4gICAJICog Y2FzZSBieSBjaG9vc2luZyBhbiBpbnNhbmVseSBsYXJnZSB0aW1lb3V0LiAqLwo+ICAgCWVuZCA9 IGppZmZpZXMgKyA2MCAqIEhaOwo+ICAgCj4gKwlyZXQgPSAwOwo+ICAgCXRyYWNlX2k5MTVfcmlu Z193YWl0X2JlZ2luKHJpbmcpOwo+ICAgCWRvIHsKPiArCQlpZiAoaW50ZWxfcmluZ19zcGFjZShy aW5nYnVmKSA+PSBuKQo+ICsJCQlicmVhazsKPiAgIAkJcmluZ2J1Zi0+aGVhZCA9IEk5MTVfUkVB RF9IRUFEKHJpbmcpOwo+IC0JCXJpbmdidWYtPnNwYWNlID0gaW50ZWxfcmluZ19zcGFjZShyaW5n YnVmKTsKPiAtCQlpZiAocmluZ2J1Zi0+c3BhY2UgPj0gbikgewo+IC0JCQlyZXQgPSAwOwo+ICsJ CWlmIChpbnRlbF9yaW5nX3NwYWNlKHJpbmdidWYpID49IG4pCj4gICAJCQlicmVhazsKPiAtCQl9 Cj4gICAKPiAgIAkJaWYgKCFkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX01PREVT RVQpICYmCj4gICAJCSAgICBkZXYtPnByaW1hcnktPm1hc3Rlcikgewo+IEBAIC0xOTg5LDcgKzE5 OTEsNyBAQCBzdGF0aWMgaW50IGludGVsX3dyYXBfcmluZ19idWZmZXIoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZykKPiAgIAkJaW93cml0ZTMyKE1JX05PT1AsIHZpcnQrKyk7Cj4gICAKPiAg IAlyaW5nYnVmLT50YWlsID0gMDsKPiAtCXJpbmdidWYtPnNwYWNlID0gaW50ZWxfcmluZ19zcGFj ZShyaW5nYnVmKTsKPiArCWludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHJpbmdidWYpOwo+ICAgCj4g ICAJcmV0dXJuIDA7Cj4gICB9Cj4gQEAgLTIwNjEsNiArMjA2Myw3IEBAIGludCBpbnRlbF9yaW5n X2JlZ2luKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJCSAgICAgaW50IG51bV9k d29yZHMpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gcmlu Zy0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVm ID0gcmluZy0+YnVmZmVyOwo+ICAgCWludCByZXQ7Cj4gICAKPiAgIAlyZXQgPSBpOTE1X2dlbV9j aGVja193ZWRnZSgmZGV2X3ByaXYtPmdwdV9lcnJvciwKPiBAQCAtMjA3Nyw3ICsyMDgwLDcgQEAg aW50IGludGVsX3JpbmdfYmVnaW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgIAlp ZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+ICAgCj4gLQlyaW5nLT5idWZmZXItPnNwYWNlIC09 IG51bV9kd29yZHMgKiBzaXplb2YodWludDMyX3QpOwo+ICsJcmluZ2J1Zi0+c3BhY2UgLT0gbnVt X2R3b3JkcyAqIHNpemVvZih1aW50MzJfdCk7Cj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gICAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gaW5kZXggYWFiMmUyZi4uMjRh NTcyMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVy LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBAQCAt NDA0LDYgKzQwNCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9yaW5nX2FkdmFuY2Uoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgIAlyaW5nYnVmLT50YWlsICY9IHJpbmdidWYt PnNpemUgLSAxOwo+ICAgfQo+ICAgaW50IF9faW50ZWxfcmluZ19zcGFjZShpbnQgaGVhZCwgaW50 IHRhaWwsIGludCBzaXplKTsKPiArdm9pZCBpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1Zik7Cj4gICBpbnQgaW50ZWxfcmluZ19zcGFjZShzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1Zik7Cj4gICBib29sIGludGVsX3Jpbmdfc3RvcHBl ZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPiAgIHZvaWQgX19pbnRlbF9yaW5nX2Fk dmFuY2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7CgpMb29rcyBmaW5lIHRvIG1lClJl dmlld2VkLWJ5OiBEZWVwYWsgUzxkZWVwYWsuc0BsaW51eC5pbnRlbC5jb20+CgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=