From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zanoni, Paulo R" Subject: Re: [PATCH 1/2] drm/i915: Refactor common ringbuffer allocation code Date: Thu, 3 Sep 2015 14:01:51 +0000 Message-ID: <1441288909.29227.26.camel@intel.com> References: <1441281700-17814-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 37ADD6E593 for ; Thu, 3 Sep 2015 07:01:58 -0700 (PDT) In-Reply-To: <1441281700-17814-1-git-send-email-chris@chris-wilson.co.uk> Content-Language: en-US Content-ID: 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" , "chris@chris-wilson.co.uk" Cc: "Kuoppala, Mika" List-Id: intel-gfx@lists.freedesktop.org RW0gUXVpLCAyMDE1LTA5LTAzIMOgcyAxMzowMSArMDEwMCwgQ2hyaXMgV2lsc29uIGVzY3JldmV1 Og0KPiBBIHNtYWxsLCB2ZXJ5IHNtYWxsLCBzdGVwIHRvIHNoYXJpbmcgdGhlIGR1cGxpY2F0ZSBj b2RlIGJldHdlZW4NCj4gZXhlY2xpc3RzIGFuZCBsZWdhY3kgc3VibWlzc2lvbiBlbmdpbmVzLCBz dGFydGluZyB3aXRoIHRoZSByaW5nYnVmZmVyDQo+IGFsbG9jYXRpb24gY29kZS4NCj4gDQo+IFNp Z25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPg0KPiBD YzogQXJ1biBTaWx1dmVyeSA8YXJ1bi5zaWx1dmVyeUBsaW51eC5pbnRlbC5jb20+DQo+IENjOiBN aWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGludGVsLmNvbT4NCj4gQ2M6IERhdmUgR29yZG9u IDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+DQo+IC0tLQ0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMgICAgICAgIHwgNDkgKysrKystLS0tLS0tLS0tLS0tDQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgfCA4OSArKysrKysrKysrKysrKysrKysr Ky0tLQ0KPiAtLS0tLS0tLS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmggfCAgOCArLS0NCj4gIDMgZmlsZXMgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygrKSwgNzYg ZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMgDQo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMNCj4gaW5kZXgg NDBjYmJhNGVhNGJhLi4yOGE3MTJlN2QyZDAgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jDQo+IEBAIC0yMzQwLDggKzIzNDAsNyBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRfZnJlZShz dHJ1Y3QgaW50ZWxfY29udGV4dCANCj4gKmN0eCkNCj4gIAkJCQlpOTE1X2dlbV9vYmplY3RfZ2d0 dF91bnBpbihjdHhfb2JqKTsNCj4gIAkJCX0NCj4gIAkJCVdBUk5fT04oY3R4LT5lbmdpbmVbcmlu Zy0+aWRdLnBpbl9jb3VudCk7DQo+IC0JCQlpbnRlbF9kZXN0cm95X3JpbmdidWZmZXJfb2JqKHJp bmdidWYpOw0KPiAtCQkJa2ZyZWUocmluZ2J1Zik7DQo+ICsJCQlpbnRlbF9yaW5nYnVmZmVyX2Zy ZWUocmluZ2J1Zik7DQo+ICAJCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmY3R4X29iai0+ YmFzZSk7DQo+ICAJCX0NCj4gIAl9DQo+IEBAIC0yNDQyLDQyICsyNDQxLDIwIEBAIGludCBpbnRl bF9scl9jb250ZXh0X2RlZmVycmVkX2NyZWF0ZShzdHJ1Y3QgDQo+IGludGVsX2NvbnRleHQgKmN0 eCwNCj4gIAkJCUk5MTVfV1JJVEUoR0VOOF9HVENSLCBHRU44X0dUQ1JfSU5WQUxJREFURSk7DQo+ ICAJfQ0KPiAgDQo+IC0JcmluZ2J1ZiA9IGt6YWxsb2Moc2l6ZW9mKCpyaW5nYnVmKSwgR0ZQX0tF Uk5FTCk7DQo+IC0JaWYgKCFyaW5nYnVmKSB7DQo+IC0JCURSTV9ERUJVR19EUklWRVIoIkZhaWxl ZCB0byBhbGxvY2F0ZSByaW5nYnVmZmVyIA0KPiAlc1xuIiwNCg0KV2UgZ290IHJpZCBvZiB0aGlz IG1lc3NhZ2UsIGJ1dCBJIHN1cHBvc2UgaXQncyBub3QgYSBwcm9ibGVtLCBzaW5jZSBpdA0Kd2Fz IG5vdCBhIGxvdWQgZXJyb3IgbWVzc2FnZS4NCg0KDQo+IC0JCQkJcmluZy0+bmFtZSk7DQo+IC0J CXJldCA9IC1FTk9NRU07DQo+ICsJcmluZ2J1ZiA9IGludGVsX2VuZ2luZV9jcmVhdGVfcmluZ2J1 ZmZlcihyaW5nLCA0ICogDQo+IFBBR0VfU0laRSk7DQo+ICsJaWYgKElTX0VSUihyaW5nYnVmKSkg ew0KPiArCQlyZXQgPSBQVFJfRVJSKHJpbmdidWYpOw0KPiAgCQlnb3RvIGVycm9yX3VucGluX2N0 eDsNCj4gIAl9DQo+ICANCj4gLQlyaW5nYnVmLT5yaW5nID0gcmluZzsNCj4gLQ0KPiAtCXJpbmdi dWYtPnNpemUgPSA0ICogUEFHRV9TSVpFOw0KPiAtCXJpbmdidWYtPmVmZmVjdGl2ZV9zaXplID0g cmluZ2J1Zi0+c2l6ZTsNCj4gLQlyaW5nYnVmLT5oZWFkID0gMDsNCj4gLQlyaW5nYnVmLT50YWls ID0gMDsNCj4gLQlyaW5nYnVmLT5sYXN0X3JldGlyZWRfaGVhZCA9IC0xOw0KPiAtCWludGVsX3Jp bmdfdXBkYXRlX3NwYWNlKHJpbmdidWYpOw0KPiAtDQo+IC0JaWYgKHJpbmdidWYtPm9iaiA9PSBO VUxMKSB7DQo+IC0JCXJldCA9IGludGVsX2FsbG9jX3JpbmdidWZmZXJfb2JqKGRldiwgcmluZ2J1 Zik7DQo+ICsJaWYgKGlzX2dsb2JhbF9kZWZhdWx0X2N0eCkgew0KPiArCQlyZXQgPSBpbnRlbF9w aW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihkZXYsIA0KPiByaW5nYnVmKTsNCj4gIAkJaWYgKHJl dCkgew0KPiAtCQkJRFJNX0RFQlVHX0RSSVZFUigNCj4gLQkJCQkiRmFpbGVkIHRvIGFsbG9jYXRl IHJpbmdidWZmZXIgb2JqIA0KPiAlczogJWRcbiIsDQo+IC0JCQkJcmluZy0+bmFtZSwgcmV0KTsN Cj4gLQkJCWdvdG8gZXJyb3JfZnJlZV9yYnVmOw0KPiArCQkJRFJNX0VSUk9SKA0KPiArCQkJCSAg IkZhaWxlZCB0byBwaW4gYW5kIG1hcCByaW5nYnVmZmVyIA0KPiAlczogJWRcbiIsDQo+ICsJCQkJ ICByaW5nLT5uYW1lLCByZXQpOw0KPiArCQkJZ290byBlcnJvcl9yaW5nYnVmOw0KPiAgCQl9DQo+ IC0NCj4gLQkJaWYgKGlzX2dsb2JhbF9kZWZhdWx0X2N0eCkgew0KPiAtCQkJcmV0ID0gaW50ZWxf cGluX2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmooZGV2LCANCj4gcmluZ2J1Zik7DQo+IC0JCQlpZiAo cmV0KSB7DQo+IC0JCQkJRFJNX0VSUk9SKA0KPiAtCQkJCQkiRmFpbGVkIHRvIHBpbiBhbmQgbWFw IA0KPiByaW5nYnVmZmVyICVzOiAlZFxuIiwNCj4gLQkJCQkJcmluZy0+bmFtZSwgcmV0KTsNCj4g LQkJCQlnb3RvIGVycm9yX2Rlc3Ryb3lfcmJ1ZjsNCj4gLQkJCX0NCj4gLQkJfQ0KPiAtDQo+ICAJ fQ0KPiAgDQo+ICAJcmV0ID0gcG9wdWxhdGVfbHJfY29udGV4dChjdHgsIGN0eF9vYmosIHJpbmcs IHJpbmdidWYpOw0KPiBAQCAtMjUxOSwxMCArMjQ5Niw4IEBAIGludCBpbnRlbF9scl9jb250ZXh0 X2RlZmVycmVkX2NyZWF0ZShzdHJ1Y3QgDQo+IGludGVsX2NvbnRleHQgKmN0eCwNCj4gIGVycm9y Og0KPiAgCWlmIChpc19nbG9iYWxfZGVmYXVsdF9jdHgpDQo+ICAJCWludGVsX3VucGluX3Jpbmdi dWZmZXJfb2JqKHJpbmdidWYpOw0KPiAtZXJyb3JfZGVzdHJveV9yYnVmOg0KPiAtCWludGVsX2Rl c3Ryb3lfcmluZ2J1ZmZlcl9vYmoocmluZ2J1Zik7DQo+IC1lcnJvcl9mcmVlX3JidWY6DQo+IC0J a2ZyZWUocmluZ2J1Zik7DQo+ICtlcnJvcl9yaW5nYnVmOg0KPiArCWludGVsX3JpbmdidWZmZXJf ZnJlZShyaW5nYnVmKTsNCj4gIGVycm9yX3VucGluX2N0eDoNCj4gIAlpZiAoaXNfZ2xvYmFsX2Rl ZmF1bHRfY3R4KQ0KPiAgCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsNCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyANCj4g Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMNCj4gaW5kZXggNmU2Yjhk Yjk5NmVmLi4yMGE3NWJiNTE2YWMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmMNCj4gQEAgLTE5OTYsMTQgKzE5OTYsMTQgQEAgaW50IGludGVsX3Bpbl9hbmRf bWFwX3JpbmdidWZmZXJfb2JqKHN0cnVjdCANCj4gZHJtX2RldmljZSAqZGV2LA0KPiAgCXJldHVy biAwOw0KPiAgfQ0KPiAgDQo+IC12b2lkIGludGVsX2Rlc3Ryb3lfcmluZ2J1ZmZlcl9vYmooc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpDQo+ICtzdGF0aWMgdm9pZCBpbnRlbF9kZXN0 cm95X3JpbmdidWZmZXJfb2JqKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyIA0KPiAqcmluZ2J1ZikN Cj4gIHsNCj4gIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmcmluZ2J1Zi0+b2JqLT5iYXNl KTsNCj4gIAlyaW5nYnVmLT5vYmogPSBOVUxMOw0KPiAgfQ0KPiAgDQo+IC1pbnQgaW50ZWxfYWxs b2NfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCj4gLQkJCSAgICAgICBz dHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikNCj4gK3N0YXRpYyBpbnQgaW50ZWxfYWxs b2NfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCj4gKwkJCQkgICAgICBz dHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciANCj4gKnJpbmdidWYpDQo+ICB7DQo+ICAJc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iajsNCj4gIA0KPiBAQCAtMjAyMyw2ICsyMDIzLDQ4IEBAIGlu dCBpbnRlbF9hbGxvY19yaW5nYnVmZmVyX29iaihzdHJ1Y3QgDQo+IGRybV9kZXZpY2UgKmRldiwN Cj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4gIA0KPiArc3RydWN0IGludGVsX3JpbmdidWZmZXIgKg0K PiAraW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSwgaW50IA0KPiBzaXplKQ0KPiArew0KPiArCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpyaW5nOw0KPiArCWludCByZXQ7DQo+ICsNCj4gKwlyaW5nID0ga3phbGxvYyhzaXplb2YoKnJp bmcpLCBHRlBfS0VSTkVMKTsNCj4gKwlpZiAocmluZyA9PSBOVUxMKQ0KDQpUaGUgZXJyb3IgbWVz c2FnZSByZWZlcmVuY2VkIGFib3ZlIHNob3VsZCBwcm9iYWJseSBiZSBoZXJlLg0KDQoNCj4gKwkJ cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7DQo+ICsNCj4gKwlyaW5nLT5yaW5nID0gZW5naW5lOw0K PiArDQo+ICsJcmluZy0+c2l6ZSA9IHNpemU7DQo+ICsJLyogV29ya2Fyb3VuZCBhbiBlcnJhdHVt IG9uIHRoZSBpODMwIHdoaWNoIGNhdXNlcyBhIGhhbmcgaWYNCj4gKwkgKiB0aGUgVEFJTCBwb2lu dGVyIHBvaW50cyB0byB3aXRoaW4gdGhlIGxhc3QgMiBjYWNoZWxpbmVzDQo+ICsJICogb2YgdGhl IGJ1ZmZlci4NCj4gKwkgKi8NCj4gKwlyaW5nLT5lZmZlY3RpdmVfc2l6ZSA9IHNpemU7DQo+ICsJ aWYgKElTX0k4MzAoZW5naW5lLT5kZXYpIHx8IElTXzg0NUcoZW5naW5lLT5kZXYpKQ0KPiArCQly aW5nLT5lZmZlY3RpdmVfc2l6ZSAtPSAyICogQ0FDSEVMSU5FX0JZVEVTOw0KPiArDQo+ICsJcmlu Zy0+bGFzdF9yZXRpcmVkX2hlYWQgPSAtMTsNCj4gKwlpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShy aW5nKTsNCj4gKw0KPiArCXJldCA9IGludGVsX2FsbG9jX3JpbmdidWZmZXJfb2JqKGVuZ2luZS0+ ZGV2LCByaW5nKTsNCj4gKwlpZiAocmV0KSB7DQo+ICsJCURSTV9FUlJPUigiRmFpbGVkIHRvIGFs bG9jYXRlIHJpbmdidWZmZXIgJXM6ICVkXG4iLA0KDQpTaG91bGRuJ3QgdGhpcyBiZSAiRmFpbGVk IHRvIGFsbG9jYXRlIHJpbmdidWZmZXIgb2JqICVzOiAlZCIgPw0KDQo+ICsJCQkgIGVuZ2luZS0+ bmFtZSwgcmV0KTsNCj4gKwkJa2ZyZWUocmluZyk7DQo+ICsJCXJldHVybiBFUlJfUFRSKHJldCk7 DQo+ICsJfQ0KPiArDQo+ICsJcmV0dXJuIHJpbmc7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK2lu dGVsX3JpbmdidWZmZXJfZnJlZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZykNCj4gK3sN Cj4gKwlpbnRlbF9kZXN0cm95X3JpbmdidWZmZXJfb2JqKHJpbmcpOw0KPiArCWtmcmVlKHJpbmcp Ow0KPiArfQ0KPiArDQo+ICBzdGF0aWMgaW50IGludGVsX2luaXRfcmluZ19idWZmZXIoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwNCj4gIAkJCQkgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcp DQo+ICB7DQo+IEBAIC0yMDMxLDIyICsyMDczLDIwIEBAIHN0YXRpYyBpbnQgaW50ZWxfaW5pdF9y aW5nX2J1ZmZlcihzdHJ1Y3QgDQo+IGRybV9kZXZpY2UgKmRldiwNCj4gIA0KPiAgCVdBUk5fT04o cmluZy0+YnVmZmVyKTsNCj4gIA0KPiAtCXJpbmdidWYgPSBremFsbG9jKHNpemVvZigqcmluZ2J1 ZiksIEdGUF9LRVJORUwpOw0KPiAtCWlmICghcmluZ2J1ZikNCj4gLQkJcmV0dXJuIC1FTk9NRU07 DQo+IC0JcmluZy0+YnVmZmVyID0gcmluZ2J1ZjsNCj4gLQ0KPiAgCXJpbmctPmRldiA9IGRldjsN Cj4gIAlJTklUX0xJU1RfSEVBRCgmcmluZy0+YWN0aXZlX2xpc3QpOw0KPiAgCUlOSVRfTElTVF9I RUFEKCZyaW5nLT5yZXF1ZXN0X2xpc3QpOw0KPiAgCUlOSVRfTElTVF9IRUFEKCZyaW5nLT5leGVj bGlzdF9xdWV1ZSk7DQo+ICAJaTkxNV9nZW1fYmF0Y2hfcG9vbF9pbml0KGRldiwgJnJpbmctPmJh dGNoX3Bvb2wpOw0KPiAtCXJpbmdidWYtPnNpemUgPSAzMiAqIFBBR0VfU0laRTsNCj4gLQlyaW5n YnVmLT5yaW5nID0gcmluZzsNCj4gIAltZW1zZXQocmluZy0+c2VtYXBob3JlLnN5bmNfc2Vxbm8s IDAsIHNpemVvZihyaW5nDQo+IC0+c2VtYXBob3JlLnN5bmNfc2Vxbm8pKTsNCj4gIA0KPiAgCWlu aXRfd2FpdHF1ZXVlX2hlYWQoJnJpbmctPmlycV9xdWV1ZSk7DQo+ICANCj4gKwlyaW5nYnVmID0g aW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nYnVmZmVyKHJpbmcsIDMyICogDQo+IFBBR0VfU0laRSk7 DQo+ICsJaWYgKElTX0VSUihyaW5nYnVmKSkNCj4gKwkJcmV0dXJuIFBUUl9FUlIocmluZ2J1Zik7 DQo+ICsJcmluZy0+YnVmZmVyID0gcmluZ2J1ZjsNCj4gKw0KPiAgCWlmIChJOTE1X05FRURfR0ZY X0hXUyhkZXYpKSB7DQo+ICAJCXJldCA9IGluaXRfc3RhdHVzX3BhZ2UocmluZyk7DQo+ICAJCWlm IChyZXQpDQo+IEBAIC0yMDU4LDE1ICsyMDk4LDYgQEAgc3RhdGljIGludCBpbnRlbF9pbml0X3Jp bmdfYnVmZmVyKHN0cnVjdCANCj4gZHJtX2RldmljZSAqZGV2LA0KPiAgCQkJZ290byBlcnJvcjsN Cj4gIAl9DQo+ICANCj4gLQlXQVJOX09OKHJpbmdidWYtPm9iaik7DQo+IC0NCj4gLQlyZXQgPSBp bnRlbF9hbGxvY19yaW5nYnVmZmVyX29iaihkZXYsIHJpbmdidWYpOw0KPiAtCWlmIChyZXQpIHsN Cj4gLQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgcmluZ2J1ZmZlciAlczogJWRcbiIs DQo+IC0JCQkJcmluZy0+bmFtZSwgcmV0KTsNCj4gLQkJZ290byBlcnJvcjsNCj4gLQl9DQo+IC0N Cj4gIAlyZXQgPSBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihkZXYsIHJpbmdidWYp Ow0KPiAgCWlmIChyZXQpIHsNCj4gIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gcGluIGFuZCBtYXAg cmluZ2J1ZmZlciAlczogDQo+ICVkXG4iLA0KPiBAQCAtMjA3NSwxNCArMjEwNiw2IEBAIHN0YXRp YyBpbnQgaW50ZWxfaW5pdF9yaW5nX2J1ZmZlcihzdHJ1Y3QgDQo+IGRybV9kZXZpY2UgKmRldiwN Cj4gIAkJZ290byBlcnJvcjsNCj4gIAl9DQo+ICANCj4gLQkvKiBXb3JrYXJvdW5kIGFuIGVycmF0 dW0gb24gdGhlIGk4MzAgd2hpY2ggY2F1c2VzIGEgaGFuZyBpZg0KPiAtCSAqIHRoZSBUQUlMIHBv aW50ZXIgcG9pbnRzIHRvIHdpdGhpbiB0aGUgbGFzdCAyIGNhY2hlbGluZXMNCj4gLQkgKiBvZiB0 aGUgYnVmZmVyLg0KPiAtCSAqLw0KPiAtCXJpbmdidWYtPmVmZmVjdGl2ZV9zaXplID0gcmluZ2J1 Zi0+c2l6ZTsNCj4gLQlpZiAoSVNfSTgzMChkZXYpIHx8IElTXzg0NUcoZGV2KSkNCj4gLQkJcmlu Z2J1Zi0+ZWZmZWN0aXZlX3NpemUgLT0gMiAqIENBQ0hFTElORV9CWVRFUzsNCj4gLQ0KPiAgCXJl dCA9IGk5MTVfY21kX3BhcnNlcl9pbml0X3JpbmcocmluZyk7DQo+ICAJaWYgKHJldCkNCj4gIAkJ Z290byBlcnJvcjsNCj4gQEAgLTIwOTAsNyArMjExMyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfaW5p dF9yaW5nX2J1ZmZlcihzdHJ1Y3QgDQo+IGRybV9kZXZpY2UgKmRldiwNCj4gIAlyZXR1cm4gMDsN Cg0KVGhlICJnb3RvIGVycm9yIiByaWdodCBhYm92ZSB0aGUgcmV0dXJuIDAgY2hhbmdlcyBpdHMg YmVoYXZpb3I6IGl0DQp3YXNuJ3QgY2FsbGluZyBpbnRlbF9kZXN0cm95X3JpbmdidWZmZXJfb2Jq KCksIGJ1dCBJIHN1cHBvc2UgdGhpcyBpcyBhDQpmaXguIEknbSBqdXN0IHBvaW50aW5nIGl0IHNp bmNlIEknbSBub3QgMTAwJSBzdXJlLg0KDQpFdmVyeXRoaW5nIHNlZW1zIGNvcnJlY3QsIHNvIHdp dGggb3Igd2l0aG91dCBjaGFuZ2VzOg0KUmV2aWV3ZWQtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8u ci56YW5vbmlAaW50ZWwuY29tPg0KDQoNCj4gIA0KPiAgZXJyb3I6DQo+IC0Ja2ZyZWUocmluZ2J1 Zik7DQo+ICsJaW50ZWxfcmluZ2J1ZmZlcl9mcmVlKHJpbmdidWYpOw0KPiAgCXJpbmctPmJ1ZmZl ciA9IE5VTEw7DQo+ICAJcmV0dXJuIHJldDsNCj4gIH0NCj4gQEAgLTIwOTgsMTkgKzIxMjEsMTgg QEAgZXJyb3I6DQo+ICB2b2lkIGludGVsX2NsZWFudXBfcmluZ19idWZmZXIoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZykNCj4gIHsNCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXY7DQo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWY7DQo+ICANCj4gIAlp ZiAoIWludGVsX3JpbmdfaW5pdGlhbGl6ZWQocmluZykpDQo+ICAJCXJldHVybjsNCj4gIA0KPiAg CWRldl9wcml2ID0gdG9faTkxNShyaW5nLT5kZXYpOw0KPiAtCXJpbmdidWYgPSByaW5nLT5idWZm ZXI7DQo+ICANCj4gIAlpbnRlbF9zdG9wX3JpbmdfYnVmZmVyKHJpbmcpOw0KPiAgCVdBUk5fT04o IUlTX0dFTjIocmluZy0+ZGV2KSAmJiAoSTkxNV9SRUFEX01PREUocmluZykgJiANCj4gTU9ERV9J RExFKSA9PSAwKTsNCj4gIA0KPiAtCWludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKHJpbmdidWYp Ow0KPiAtCWludGVsX2Rlc3Ryb3lfcmluZ2J1ZmZlcl9vYmoocmluZ2J1Zik7DQo+ICsJaW50ZWxf dW5waW5fcmluZ2J1ZmZlcl9vYmoocmluZy0+YnVmZmVyKTsNCj4gKwlpbnRlbF9yaW5nYnVmZmVy X2ZyZWUocmluZy0+YnVmZmVyKTsNCj4gKwlyaW5nLT5idWZmZXIgPSBOVUxMOw0KPiAgDQo+ICAJ aWYgKHJpbmctPmNsZWFudXApDQo+ICAJCXJpbmctPmNsZWFudXAocmluZyk7DQo+IEBAIC0yMTE5 LDkgKzIxNDEsNiBAQCB2b2lkIGludGVsX2NsZWFudXBfcmluZ19idWZmZXIoc3RydWN0IA0KPiBp bnRlbF9lbmdpbmVfY3MgKnJpbmcpDQo+ICANCj4gIAlpOTE1X2NtZF9wYXJzZXJfZmluaV9yaW5n KHJpbmcpOw0KPiAgCWk5MTVfZ2VtX2JhdGNoX3Bvb2xfZmluaSgmcmluZy0+YmF0Y2hfcG9vbCk7 DQo+IC0NCj4gLQlrZnJlZShyaW5nYnVmKTsNCj4gLQlyaW5nLT5idWZmZXIgPSBOVUxMOw0KPiAg fQ0KPiAgDQo+ICBzdGF0aWMgaW50IHJpbmdfd2FpdF9mb3Jfc3BhY2Uoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZywgaW50IG4pDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmggDQo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oDQo+IGluZGV4IDk1YjBiNGI1NWZhNi4uNDlmYTQxZGMwZWI2IDEwMDY0NA0KPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgNCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oDQo+IEBAIC00MjAsMTIgKzQyMCwx MiBAQCBpbnRlbF93cml0ZV9zdGF0dXNfcGFnZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzIA0KPiAq cmluZywNCj4gICNkZWZpbmUgSTkxNV9HRU1fSFdTX1NDUkFUQ0hfSU5ERVgJMHg0MA0KPiAgI2Rl ZmluZSBJOTE1X0dFTV9IV1NfU0NSQVRDSF9BRERSIChJOTE1X0dFTV9IV1NfU0NSQVRDSF9JTkRF WCA8PCANCj4gTUlfU1RPUkVfRFdPUkRfSU5ERVhfU0hJRlQpDQo+ICANCj4gLXZvaWQgaW50ZWxf dW5waW5fcmluZ2J1ZmZlcl9vYmooc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOw0K PiArc3RydWN0IGludGVsX3JpbmdidWZmZXIgKg0KPiAraW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5n YnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IA0KPiBzaXplKTsNCj4g IGludCBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LA0KPiAgCQkJCSAgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgDQo+ICpyaW5nYnVmKTsN Cj4gLXZvaWQgaW50ZWxfZGVzdHJveV9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1Zik7DQo+IC1pbnQgaW50ZWxfYWxsb2NfcmluZ2J1ZmZlcl9vYmooc3RydWN0 IGRybV9kZXZpY2UgKmRldiwNCj4gLQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZ2J1Zik7DQo+ICt2b2lkIGludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKHN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICpyaW5nYnVmKTsNCj4gK3ZvaWQgaW50ZWxfcmluZ2J1ZmZlcl9mcmVlKHN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nKTsNCj4gIA0KPiAgdm9pZCBpbnRlbF9zdG9wX3Jp bmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOw0KPiAgdm9pZCBpbnRlbF9j bGVhbnVwX3JpbmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=