From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH v6 19/25] drm/i915: Implement LRI based FBC tracking Date: Wed, 18 Jun 2014 20:58:52 +0300 Message-ID: <1403114338-30513-20-git-send-email-ville.syrjala@linux.intel.com> References: <1403114338-30513-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 3A3FA6E753 for ; Wed, 18 Jun 2014 11:00:02 -0700 (PDT) In-Reply-To: <1403114338-30513-1-git-send-email-ville.syrjala@linux.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 RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkFz IHBlciB0aGUgU05CIGFuZCBIU1cgUE0gZ3VpZGVzLCB3ZSBzaG91bGQgZW5hYmxlIEZCQyByZW5k ZXIvYmxpdHRlcgp0cmFja2luZyBvbmx5IGR1cmluZyBiYXRjaGVzIHRhcmdldHRpbmcgdGhlIGZy b250IGJ1ZmZlci4KCk9uIFNOQiB3ZSBtdXN0IGFsc28gdXBkYXRlIHRoZSBGQkMgcmVuZGVyIHRy YWNraW5nIGFkZHJlc3Mgd2hlbmV2ZXIgaXQKY2hhbmdlcy4gQW5kIHNpbmNlIHRoZSByZWdpc3Rl ciBpbiBxdWVzdGlvbiBpcyBzdG9yZWQgaW4gdGhlIGNvbnRleHQsCndlIG5lZWQgdG8gbWFrZSBz dXJlIHdlIHJlbG9hZCBpdCB3aXRoIGNvcnJlY3QgZGF0YSBhZnRlciBjb250ZXh0CnN3aXRjaGVz LgoKT24gSVZCL0hTVyB3ZSB1c2UgdGhlIHJlbmRlciBudWtlIG1lY2hhbmlzbSwgc28gbm8gcmVu ZGVyIHRyYWNraW5nCmFkZHJlc3MgdXBkYXRlcyBhcmUgbmVlZGVkLiBIb2V2ZXIgb24gdGhlIGJs aXR0ZXIgc2lkZSB3ZSBuZWVkIHRvCmVuYWJsZSB0aGUgYmxpdHRlciB0cmFja2luZyBsaWtlIG9u IFNOQiwgYW5kIGluIGFkZGl0aW9uIHdlIG5lZWQKdG8gaXNzdWUgdGhlIGNhY2hlIGNsZWFuIG1l c3NhZ2VzLCB3aGljaCB3ZSBhbHJlYWR5IGRpZC4KCnYyOiBJbnRyb2R1Y2UgaW50ZWxfZmJfb2Jq X2hhc19mYmMoKQogICAgRml4IGNydGMgbG9ja2luZyBhcm91bmQgY3J0Yy0+ZmIgYWNjZXNzCiAg ICBEcm9wIGEgaHVuayB0aGF0IHdhcyBpbmNsdWRlZCBieSBhY2NpZGVudCBpbiB2MQogICAgU2V0 IGZiY19hZGRyZXNzX2RpcnR5PWZhbHNlIG5vdCB0cnVlIGFmdGVyIGVtaXR0aW5nIHRoZSBMUkkK djM6IE5vdyB0aGF0IGZiYyBoYW5ncyBvbiB0byB0aGUgZmIgaW50ZWxfZmJfb2JqX2hhc19mYmMo KSBkb2Vzbid0CiAgICBuZWVkIHRvIHVwc2V0IGxvY2tkZXAgYW55bW9yZQp2NDogVXNlIHw9IGlu c3RlYWQgb2YgPSB0byB1cGRhdGUgZmJjX2FkZHJlc3NfZGlydHkKdjU6IHw9IGZvciBmYmNfZGly dHkgdG9vLCBraWxsIGZiY19vYmogdmFyaWFibGUsIHBhY2sgdGhlCiAgICBpbnRlbF9yaW5nYnVm ZmVyIGRpcnR5IGJpdHMgdXNpbmcgYml0ZmllbGRzLCBza2lwIElMS19GQkNfUlRfQkFTRQogICAg d3JpdGUgb24gU05CKywga2lsbCBzYW5keWJyaWRnZV9ibGl0X2ZiY191cGRhdGUoKSwgcmVvcmdh bml6ZQogICAgY29kZSB0byBtYWtlIGZ1dHVyZSBJTEsgRkJDIFJUIExSSSBzdXBwb3J0IGVhc2ll cgp2NjogUmV3b3JrIGJhc2VkIG9uIG5ldyBmYmMub2JqIGhhbmRsaW5nCgpSZXZpZXdlZC1ieTog Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ClNpZ25lZC1vZmYtYnk6IFZp bGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jICAgIHwgIDcgKysrKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIHwgMjkgKysrKysrKysrKysrKysrCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICAgfCAgMiAtCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICAgfCAgMSArCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wbS5jICAgICAgICAgICAgfCAzMyArKy0tLS0tLS0tLS0tLS0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICAgIHwgNTkgKysrKysrKysrKysr KysrKysrKysrKysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVy LmggICAgfCAgNiArKy0KIDcgZmlsZXMgY2hhbmdlZCwgMTAyIGluc2VydGlvbnMoKyksIDM1IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Nv bnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwppbmRleCAz ZmZlMzA4Li4xYWFiMDUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5j CkBAIC01ODgsNiArNTg4LDEzIEBAIG1pX3NldF9jb250ZXh0KHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcsCiAKIAlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7CiAKKwkvKgorCSAqIEZCQyBS VCBhZGRyZXNzIGlzIHN0b3JlZCBpbiB0aGUgY29udGV4dCwgc28gd2UgbWF5IGhhdmUganVzdAor CSAqIHJlc3RvcmVkIGl0IHRvIGFuIG9sZCB2YWx1ZS4gTWFrZSBzdXJlIHdlIGVtaXQgYSBuZXcg TFJJCisJICogdG8gdXBkYXRlIHRoZSBhZGRyZXNzLgorCSAqLworCXJpbmctPmZiY19hZGRyZXNz X2RpcnR5ID0gdHJ1ZTsKKwogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwppbmRleCA5M2Q3ZjcyLi41YTkxZGFlIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCkBAIC05NTUsNiArOTU1LDMzIEBA IGk5MTVfZ2VtX3ZhbGlkYXRlX2NvbnRleHQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0 IGRybV9maWxlICpmaWxlLAogfQogCiBzdGF0aWMgdm9pZAoraTkxNV9nZW1fZXhlY2J1ZmZlcl9t YXJrX2ZiY19kaXJ0eShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAorCQkJCSAgIHN0cnVj dCBsaXN0X2hlYWQgKnZtYXMpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gcmluZy0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKKwl1MzIg ZmJjX2FkZHJlc3MgPSAtMTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkodm1hLCB2bWFzLCBleGVj X2xpc3QpIHsKKwkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHZtYS0+b2JqOwor CisJCWlmIChvYmotPmJhc2UucGVuZGluZ193cml0ZV9kb21haW4gJiYKKwkJICAgIG9iaiA9PSBk ZXZfcHJpdi0+ZmJjLm9iaikgeworCQkJV0FSTl9PTihmYmNfYWRkcmVzcyAhPSAtMSAmJgorCQkJ CWZiY19hZGRyZXNzICE9IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChvYmopKTsKKwkJCWZiY19h ZGRyZXNzID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KG9iaik7CisJCX0KKwl9CisKKwkvKiBu ZWVkIHRvIG51a2UvY2FjaGVfY2xlYW4gb24gSVZCKz8gKi8KKwlyaW5nLT5mYmNfZGlydHkgfD0g ZmJjX2FkZHJlc3MgIT0gLTE7CisKKwkvKiBuZWVkIHRvIHVwZGF0ZSBGQkMgdHJhY2tpbmc/ICov CisJcmluZy0+ZmJjX2FkZHJlc3NfZGlydHkgfD0gZmJjX2FkZHJlc3MgIT0gcmluZy0+ZmJjX2Fk ZHJlc3M7CisJcmluZy0+ZmJjX2FkZHJlc3MgPSBmYmNfYWRkcmVzczsKK30KKworc3RhdGljIHZv aWQKIGk5MTVfZ2VtX2V4ZWNidWZmZXJfbW92ZV90b19hY3RpdmUoc3RydWN0IGxpc3RfaGVhZCAq dm1hcywKIAkJCQkgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogewpAQCAtMTMyMiw2 ICsxMzQ5LDggQEAgaTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAogCWVsc2UKIAkJZXhlY19zdGFydCArPSBpOTE1X2dlbV9vYmpfb2Zmc2V0 KGJhdGNoX29iaiwgdm0pOwogCisJaTkxNV9nZW1fZXhlY2J1ZmZlcl9tYXJrX2ZiY19kaXJ0eShy aW5nLCAmZWItPnZtYXMpOworCiAJcmV0ID0gaTkxNV9nZW1fZXhlY2J1ZmZlcl9tb3ZlX3RvX2dw dShyaW5nLCAmZWItPnZtYXMpOwogCWlmIChyZXQpCiAJCWdvdG8gZXJyOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IGU0Y2FjZDkuLjMwMTFjMzUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTg5MjMsOCArODkyMyw2IEBAIHZvaWQgaW50ZWxfbWFy a19mYl9idXN5KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQljb250aW51ZTsK IAogCQlpbnRlbF9pbmNyZWFzZV9wbGxjbG9jayhjcnRjKTsKLQkJaWYgKHJpbmcgJiYgaW50ZWxf ZmJjX2VuYWJsZWQoZGV2KSkKLQkJCXJpbmctPmZiY19kaXJ0eSA9IHRydWU7CiAJfQogfQogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDUyZTk1ZjEuLmU5ZGU4YjEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCkBAIC03MzIsNiArNzMyLDcgQEAgYm9vbCBpbnRlbF9oYXNfcGVuZGlu Z19mYl91bnBpbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGludCBpbnRlbF9wY2hfcmF3Y2xr KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogaW50IHZhbGxleXZpZXdfY3VyX2NkY2xrKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2b2lkIGludGVsX21hcmtfYnVzeShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KTsKK2Jvb2wgaW50ZWxfZmJfb2JqX2hhc19mYmMoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaik7CiB2b2lkIGludGVsX21hcmtfZmJfYnVzeShzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu Zyk7CiB2b2lkIGludGVsX21hcmtfaWRsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jCmluZGV4IDZkZTI4M2IuLmE1ZDNkOWYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYwpAQCAtMTg1LDMxICsxODUsNiBAQCBzdGF0aWMgYm9vbCBnNHhfZmJjX2VuYWJsZWQo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlyZXR1cm4gSTkxNV9SRUFEKERQRkNfQ09OVFJPTCkg JiBEUEZDX0NUTF9FTjsKIH0KIAotc3RhdGljIHZvaWQgc2FuZHlicmlkZ2VfYmxpdF9mYmNfdXBk YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQl1MzIgYmx0X2Vjb3NrcGQ7Ci0KLQkvKiBN YWtlIHN1cmUgYmxpdHRlciBub3RpZmllcyBGQkMgb2Ygd3JpdGVzICovCi0KLQkvKiBCbGl0dGVy IGlzIHBhcnQgb2YgTWVkaWEgcG93ZXJ3ZWxsIG9uIFZMVi4gTm8gaW1wYWN0IG9mCi0JICogaGlz IHBhcmFtIGluIG90aGVyIHBsYXRmb3JtcyBmb3Igbm93ICovCi0JZ2VuNl9ndF9mb3JjZV93YWtl X2dldChkZXZfcHJpdiwgRk9SQ0VXQUtFX01FRElBKTsKLQotCWJsdF9lY29za3BkID0gSTkxNV9S RUFEKEdFTjZfQkxJVFRFUl9FQ09TS1BEKTsKLQlibHRfZWNvc2twZCB8PSBHRU42X0JMSVRURVJf RkJDX05PVElGWSA8PAotCQlHRU42X0JMSVRURVJfTE9DS19TSElGVDsKLQlJOTE1X1dSSVRFKEdF TjZfQkxJVFRFUl9FQ09TS1BELCBibHRfZWNvc2twZCk7Ci0JYmx0X2Vjb3NrcGQgfD0gR0VONl9C TElUVEVSX0ZCQ19OT1RJRlk7Ci0JSTkxNV9XUklURShHRU42X0JMSVRURVJfRUNPU0tQRCwgYmx0 X2Vjb3NrcGQpOwotCWJsdF9lY29za3BkICY9IH4oR0VONl9CTElUVEVSX0ZCQ19OT1RJRlkgPDwK LQkJCSBHRU42X0JMSVRURVJfTE9DS19TSElGVCk7Ci0JSTkxNV9XUklURShHRU42X0JMSVRURVJf RUNPU0tQRCwgYmx0X2Vjb3NrcGQpOwotCVBPU1RJTkdfUkVBRChHRU42X0JMSVRURVJfRUNPU0tQ RCk7Ci0KLQlnZW42X2d0X2ZvcmNlX3dha2VfcHV0KGRldl9wcml2LCBGT1JDRVdBS0VfTUVESUEp OwotfQotCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9lbmFibGVfZmJjKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKQEAgLTIyOSw4ICsyMDQsOSBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9lbmFibGVf ZmJjKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWRwZmNfY3RsIHw9IGRldl9wcml2LT5mYmMu ZmVuY2VfcmVnOwogCiAJSTkxNV9XUklURShJTEtfRFBGQ19GRU5DRV9ZT0ZGLCBkZXZfcHJpdi0+ ZmJjLnkpOwotCUk5MTVfV1JJVEUoSUxLX0ZCQ19SVF9CQVNFLCBpOTE1X2dlbV9vYmpfZ2d0dF9v ZmZzZXQoZGV2X3ByaXYtPmZiYy5vYmopIHwKLQkJICAgSUxLX0ZCQ19SVF9WQUxJRCk7CisJaWYg KElTX0dFTjUoZGV2KSkKKwkJSTkxNV9XUklURShJTEtfRkJDX1JUX0JBU0UsIGk5MTVfZ2VtX29i al9nZ3R0X29mZnNldChkZXZfcHJpdi0+ZmJjLm9iaikgfAorCQkJICAgSUxLX0ZCQ19SVF9WQUxJ RCk7CiAJLyogZW5hYmxlIGl0Li4uICovCiAJSTkxNV9XUklURShJTEtfRFBGQ19DT05UUk9MLCBk cGZjX2N0bCB8IERQRkNfQ1RMX0VOKTsKIApAQCAtMjM4LDcgKzIxNCw2IEBAIHN0YXRpYyB2b2lk IGlyb25sYWtlX2VuYWJsZV9mYmMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJSTkxNV9XUklU RShTTkJfRFBGQ19DVExfU0EsCiAJCQkgICBTTkJfQ1BVX0ZFTkNFX0VOQUJMRSB8IGRldl9wcml2 LT5mYmMuZmVuY2VfcmVnKTsKIAkJSTkxNV9XUklURShEUEZDX0NQVV9GRU5DRV9PRkZTRVQsIGRl dl9wcml2LT5mYmMueSk7Ci0JCXNhbmR5YnJpZGdlX2JsaXRfZmJjX3VwZGF0ZShkZXYpOwogCX0K IH0KIApAQCAtMjk3LDggKzI3Miw2IEBAIHN0YXRpYyB2b2lkIGdlbjdfZW5hYmxlX2ZiYyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCUk5MTVfV1JJVEUoU05CX0RQRkNfQ1RMX1NBLAogCQkgICBT TkJfQ1BVX0ZFTkNFX0VOQUJMRSB8IGRldl9wcml2LT5mYmMuZmVuY2VfcmVnKTsKIAlJOTE1X1dS SVRFKERQRkNfQ1BVX0ZFTkNFX09GRlNFVCwgZGV2X3ByaXYtPmZiYy55KTsKLQotCXNhbmR5YnJp ZGdlX2JsaXRfZmJjX3VwZGF0ZShkZXYpOwogfQogCiBib29sIGludGVsX2ZiY19lbmFibGVkKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVy LmMKaW5kZXggMzEzMjFhZS4uZDE5NzM4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuYwpAQCAtNjksNiArNjksNTcgQEAgdm9pZCBfX2ludGVsX3JpbmdfYWR2YW5jZShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogCXJpbmctPndyaXRlX3RhaWwocmluZywgcmlu Z2J1Zi0+dGFpbCk7CiB9CiAKK3N0YXRpYyBpbnQgZ2VuNV9yZW5kZXJfZmJjX3RyYWNraW5nKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCit7CisJaW50IHJldDsKKworCWlmICghcmluZy0+ ZmJjX2FkZHJlc3NfZGlydHkpCisJCXJldHVybiAwOworCisJcmV0ID0gaW50ZWxfcmluZ19iZWdp bihyaW5nLCA0KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJaW50ZWxfcmluZ19lbWl0 KHJpbmcsIE1JX05PT1ApOworCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9MT0FEX1JFR0lTVEVS X0lNTSgxKSk7CisJaW50ZWxfcmluZ19lbWl0KHJpbmcsIElMS19GQkNfUlRfQkFTRSk7CisJaWYg KHJpbmctPmZiY19hZGRyZXNzICE9IC0xKQorCQlpbnRlbF9yaW5nX2VtaXQocmluZywgcmluZy0+ ZmJjX2FkZHJlc3MgfAorCQkJCVNOQl9GQkNfRlJPTlRfQlVGRkVSIHwgSUxLX0ZCQ19SVF9WQUxJ RCk7CisJZWxzZQorCQlpbnRlbF9yaW5nX2VtaXQocmluZywgMCk7CisJaW50ZWxfcmluZ19hZHZh bmNlKHJpbmcpOworCisJcmluZy0+ZmJjX2FkZHJlc3NfZGlydHkgPSBmYWxzZTsKKworCXJldHVy biAwOworfQorCitzdGF0aWMgaW50IGdlbjZfYmx0X2ZiY190cmFja2luZyhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nKQoreworCWludCByZXQ7CisKKwlpZiAoIXJpbmctPmZiY19hZGRyZXNz X2RpcnR5KQorCQlyZXR1cm4gMDsKKworCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywgNCk7 CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9O T09QKTsKKwlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSkpOwor CWludGVsX3JpbmdfZW1pdChyaW5nLCBHRU42X0JMSVRURVJfRUNPU0tQRCk7CisJaWYgKHJpbmct PmZiY19hZGRyZXNzICE9IC0xKQorCQlpbnRlbF9yaW5nX2VtaXQocmluZywgX01BU0tFRF9CSVRf RU5BQkxFKEdFTjZfQkxJVFRFUl9GQkNfTk9USUZZKSk7CisJZWxzZQorCQlpbnRlbF9yaW5nX2Vt aXQocmluZywgX01BU0tFRF9CSVRfRElTQUJMRShHRU42X0JMSVRURVJfRkJDX05PVElGWSkpOwor CWludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsKKworCXJpbmctPmZiY19hZGRyZXNzX2RpcnR5ID0g ZmFsc2U7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludAogZ2VuMl9yZW5kZXJfcmluZ19m bHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkgICAgICAgdTMyCWludmFsaWRh dGVfZG9tYWlucywKQEAgLTI3NCw2ICszMjUsOSBAQCBnZW42X3JlbmRlcl9yaW5nX2ZsdXNoKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIDApOwog CWludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsKIAorCWlmIChpbnZhbGlkYXRlX2RvbWFpbnMpCisJ CXJldHVybiBnZW41X3JlbmRlcl9mYmNfdHJhY2tpbmcocmluZyk7CisKIAlyZXR1cm4gMDsKIH0K IApAQCAtMzE2LDYgKzM3MCw3IEBAIHN0YXRpYyBpbnQgZ2VuN19yaW5nX2ZiY19mbHVzaChzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCB1MzIgdmFsdWUpCiAJaW50ZWxfcmluZ19hZHZhbmNl KHJpbmcpOwogCiAJcmluZy0+ZmJjX2RpcnR5ID0gZmFsc2U7CisKIAlyZXR1cm4gMDsKIH0KIApA QCAtMTkzOCw3ICsxOTkzLDkgQEAgc3RhdGljIGludCBnZW42X3JpbmdfZmx1c2goc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZywKIAl9CiAJaW50ZWxfcmluZ19hZHZhbmNlKHJpbmcpOwogCi0J aWYgKElTX0dFTjcoZGV2KSAmJiAhaW52YWxpZGF0ZSAmJiBmbHVzaCkKKwlpZiAoaW52YWxpZGF0 ZSkKKwkJcmV0dXJuIGdlbjZfYmx0X2ZiY190cmFja2luZyhyaW5nKTsKKwllbHNlIGlmIChmbHVz aCAmJiBJU19HRU43KGRldikpCiAJCXJldHVybiBnZW43X3JpbmdfZmJjX2ZsdXNoKHJpbmcsIEZC Q19SRU5EX0NBQ0hFX0NMRUFOKTsKIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5oCmluZGV4IDI3M2FiZjMuLjgwNDA2YWIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKQEAgLTE3Niw4ICsxNzYsMTAgQEAgc3RydWN0ICBpbnRl bF9lbmdpbmVfY3MgewogCSAqLwogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcHJlYWxs b2NhdGVkX2xhenlfcmVxdWVzdDsKIAl1MzIgb3V0c3RhbmRpbmdfbGF6eV9zZXFubzsKLQlib29s IGdwdV9jYWNoZXNfZGlydHk7Ci0JYm9vbCBmYmNfZGlydHk7CisJdTMyIGZiY19hZGRyZXNzOwor CWJvb2wgZ3B1X2NhY2hlc19kaXJ0eToxOworCWJvb2wgZmJjX2RpcnR5OjE7CisJYm9vbCBmYmNf YWRkcmVzc19kaXJ0eToxOwogCiAJd2FpdF9xdWV1ZV9oZWFkX3QgaXJxX3F1ZXVlOwogCi0tIAox LjguNS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=