From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [PATCH v5 19/35] drm/i915: Added scheduler flush calls to ring throttle and idle functions Date: Thu, 18 Feb 2016 14:27:07 +0000 Message-ID: <1455805644-6450-20-git-send-email-John.C.Harrison@Intel.com> References: <1455805644-6450-1-git-send-email-John.C.Harrison@Intel.com> 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 B73F66EBF5 for ; Thu, 18 Feb 2016 14:27:51 +0000 (UTC) In-Reply-To: <1455805644-6450-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: Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KCldoZW4gcmVx dWVzdGluZyB0aGF0IGFsbCBHUFUgd29yayBpcyBjb21wbGV0ZWQsIGl0IGlzIG5vdyBuZWNlc3Nh cnkgdG8KZ2V0IHRoZSBzY2hlZHVsZXIgaW52b2x2ZWQgaW4gb3JkZXIgdG8gZmx1c2ggb3V0IHdv cmsgdGhhdCBxdWV1ZWQgYW5kCm5vdCB5ZXQgc3VibWl0dGVkLgoKdjI6IFVwZGF0ZWQgdG8gYWRk IHN1cHBvcnQgZm9yIGZsdXNoaW5nIHRoZSBzY2hlZHVsZXIgcXVldWUgYnkgdGltZQpzdGFtcCBy YXRoZXIgdGhhbiBqdXN0IGRvaW5nIGEgYmxhbmtldCBmbHVzaC4KCnYzOiBNb3ZlZCBzdWJtaXRf bWF4X3ByaW9yaXR5KCkgdG8gdGhpcyBwYXRjaCBmcm9tIGFuIGVhcmxpZXIgcGF0Y2gKaXMgaXQg aXMgbm8gbG9uZ2VyIHJlcXVpcmVkIGluIHRoZSBvdGhlci4KCnY0OiBDb3JyZWN0ZWQgdGhlIGZv cm1hdCBvZiBhIGNvbW1lbnQgdG8ga2VlcCB0aGUgc3R5bGUgY2hlY2tlciBoYXBweS4KRG93bmdy YWRlZCBhIEJVR19PTiB0byBhIFdBUk5fT04gYXMgdGhlIGxhdHRlciBpcyBwcmVmZXJyZWQuCgp2 NTogU2h1ZmZsZWQgZnVuY3Rpb25zIGFyb3VuZCB0byByZW1vdmUgZm9yd2FyZCBwcm90b3R5cGVz LCByZW1vdmVkCnNpbWlsYXJseSBvZmZlbnNpdmUgd2hpdGUgc3BhY2UgYW5kIGFkZGVkIGRvY3Vt ZW50YXRpb24uIFJlLXdvcmtlZCB0aGUKbXV0ZXggbG9ja2luZyBhcm91bmQgdGhlIHN1Ym1pdCBm dW5jdGlvbi4gW0pvb25hcyBMYWh0aW5lbl0KClVzZWQgbGlnaHRlciB3ZWlnaHQgc3BpbmxvY2tz LgoKRm9yOiBWSVotMTU4NwpTaWduZWQtb2ZmLWJ5OiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFy cmlzb25ASW50ZWwuY29tPgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGlu dXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAg fCAgMjQgKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMgfCAxNzgg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9zY2hlZHVsZXIuaCB8ICAgMyArCiAzIGZpbGVzIGNoYW5nZWQsIDIwNCBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggYTQ3YTQ5NS4u ZDk0NmY1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0zNzg2LDYgKzM3ODYsMTAgQEAg aW50IGk5MTVfZ3B1X2lkbGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCS8qIEZsdXNoIGV2 ZXJ5dGhpbmcgb250byB0aGUgaW5hY3RpdmUgbGlzdC4gKi8KIAlmb3JfZWFjaF9yaW5nKHJpbmcs IGRldl9wcml2LCBpKSB7CisJCXJldCA9IGk5MTVfc2NoZWR1bGVyX2ZsdXNoKHJpbmcsIHRydWUp OworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisKIAkJaWYgKCFpOTE1LmVuYWJsZV9l eGVjbGlzdHMpIHsKIAkJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwogCkBAIC00 NTE5LDcgKzQ1MjMsOCBAQCBpOTE1X2dlbV9yaW5nX3Rocm90dGxlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKIAl1bnNpZ25lZCBsb25nIHJlY2VudF9lbm91 Z2ggPSBqaWZmaWVzIC0gRFJNX0k5MTVfVEhST1RUTEVfSklGRklFUzsKIAlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsICp0YXJnZXQgPSBOVUxMOwogCXVuc2lnbmVkIHJlc2V0 X2NvdW50ZXI7Ci0JaW50IHJldDsKKwlpbnQgaSwgcmV0OworCXN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmc7CiAKIAlyZXQgPSBpOTE1X2dlbV93YWl0X2Zvcl9lcnJvcigmZGV2X3ByaXYtPmdw dV9lcnJvcik7CiAJaWYgKHJldCkKQEAgLTQ1MjksNiArNDUzNCwyMyBAQCBpOTE1X2dlbV9yaW5n X3Rocm90dGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkK IAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCisJZm9yX2VhY2hfcmluZyhyaW5nLCBkZXZfcHJp diwgaSkgeworCQkvKgorCQkgKiBGbHVzaCBvdXQgc2NoZWR1bGVyIGVudHJpZXMgdGhhdCBhcmUg Z2V0dGluZyAnc3RhbGUnLiBOb3RlCisJCSAqIHRoYXQgdGhlIGZvbGxvd2luZyByZWNlbnRfZW5v dWdoIHRlc3Qgd2lsbCBvbmx5IGNoZWNrCisJCSAqIGFnYWluc3QgdGhlIHRpbWUgYXQgd2hpY2gg dGhlIHJlcXVlc3Qgd2FzIHN1Ym1pdHRlZCB0byB0aGUKKwkJICogaGFyZHdhcmUgKGkuZS4gd2hl biBpdCBsZWZ0IHRoZSBzY2hlZHVsZXIpIG5vdCB0aGUgdGltZSBpdAorCQkgKiB3YXMgc3VibWl0 dGVkIHRvIHRoZSBkcml2ZXIuCisJCSAqCisJCSAqIEFsc28sIHRoZXJlIGlzIG5vdCBtdWNoIHBv aW50IHdvcnJpbmcgYWJvdXQgYnVzeSByZXR1cm4KKwkJICogY29kZXMgZnJvbSB0aGUgc2NoZWR1 bGVyIGZsdXNoIGNhbGwuIEV2ZW4gaWYgbW9yZSB3b3JrCisJCSAqIGNhbm5vdCBiZSBzdWJtaXR0 ZWQgcmlnaHQgbm93IGZvciB3aGF0ZXZlciByZWFzb24sIHdlCisJCSAqIHN0aWxsIHdhbnQgdG8g dGhyb3R0bGUgYWdhaW5zdCBzdGFsZSB3b3JrIHRoYXQgaGFzIGFscmVhZHkKKwkJICogYmVlbiBz dWJtaXR0ZWQuCisJCSAqLworCQlpOTE1X3NjaGVkdWxlcl9mbHVzaF9zdGFtcChyaW5nLCByZWNl bnRfZW5vdWdoLCBmYWxzZSk7CisJfQorCiAJc3Bpbl9sb2NrKCZmaWxlX3ByaXYtPm1tLmxvY2sp OwogCWxpc3RfZm9yX2VhY2hfZW50cnkocmVxdWVzdCwgJmZpbGVfcHJpdi0+bW0ucmVxdWVzdF9s aXN0LCBjbGllbnRfbGlzdCkgewogCQlpZiAodGltZV9hZnRlcl9lcShyZXF1ZXN0LT5lbWl0dGVk X2ppZmZpZXMsIHJlY2VudF9lbm91Z2gpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9zY2hlZHVsZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVy LmMKaW5kZXggZWRhYjYzZC4uODEzMGE5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9zY2hlZHVsZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVk dWxlci5jCkBAIC0zMDQsNiArMzA0LDEwIEBAIHN0YXRpYyBpbnQgaTkxNV9zY2hlZHVsZXJfcG9w X2Zyb21fcXVldWVfbG9ja2VkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAgKiBhdHRl bXB0aW5nIHRvIGFjcXVpcmUgYSBtdXRleCB3aGlsZSBob2xkaW5nIGEgc3BpbiBsb2NrIGlzIGEg QmFkIElkZWEuCiAgKiBBbmQgcmVsZWFzaW5nIHRoZSBvbmUgYmVmb3JlIGFjcXVpcmluZyB0aGUg b3RoZXIgbGVhZHMgdG8gb3RoZXIgY29kZQogICogYmVpbmcgcnVuIGFuZCBpbnRlcmZlcmluZy4K KyAqCisgKiBIZW5jZSBhbnkgY2FsbGVyIHRoYXQgZG9lcyBub3QgYWxyZWFkeSBoYXZlIHRoZSBt dXRleCBsb2NrIGZvciBvdGhlcgorICogcmVhc29ucyBzaG91bGQgY2FsbCBpOTE1X3NjaGVkdWxl cl9zdWJtaXRfdW5sb2NrZWQoKSBpbnN0ZWFkIGluIG9yZGVyIHRvCisgKiBvYnRhaW4gdGhlIGxv Y2sgZmlyc3QuCiAgKi8KIHN0YXRpYyBpbnQgaTkxNV9zY2hlZHVsZXJfc3VibWl0KHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmcpCiB7CkBAIC00MjgsNiArNDMyLDIyIEBAIGVycm9yOgogCXJl dHVybiByZXQ7CiB9CiAKK3N0YXRpYyBpbnQgaTkxNV9zY2hlZHVsZXJfc3VibWl0X3VubG9ja2Vk KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IHJpbmctPmRldjsKKwlpbnQgcmV0OworCisJcmV0ID0gaTkxNV9tdXRleF9sb2NrX2ludGVy cnVwdGlibGUoZGV2KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gaTkxNV9z Y2hlZHVsZXJfc3VibWl0KHJpbmcpOworCisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRl eCk7CisKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgdm9pZCBpOTE1X2dlbmVyYXRlX2RlcGVu ZGVuY2llcyhzdHJ1Y3QgaTkxNV9zY2hlZHVsZXIgKnNjaGVkdWxlciwKIAkJCQkgICAgICAgc3Ry dWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2VudHJ5ICpub2RlLAogCQkJCSAgICAgICB1aW50MzJf dCByaW5nKQpAQCAtOTE3LDYgKzkzNywxNjQgQEAgdm9pZCBpOTE1X3NjaGVkdWxlcl93b3JrX2hh bmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQlpOTE1X3NjaGVkdWxlcl9wcm9jZXNz X3dvcmsocmluZyk7CiB9CiAKK3N0YXRpYyBpbnQgaTkxNV9zY2hlZHVsZXJfc3VibWl0X21heF9w cmlvcml0eShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAorCQkJCQkgICAgICBib29sIGlz X2xvY2tlZCkKK3sKKwlzdHJ1Y3QgaTkxNV9zY2hlZHVsZXJfcXVldWVfZW50cnkgKm5vZGU7CisJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gcmluZy0+ZGV2LT5kZXZfcHJpdmF0 ZTsKKwlzdHJ1Y3QgaTkxNV9zY2hlZHVsZXIgKnNjaGVkdWxlciA9IGRldl9wcml2LT5zY2hlZHVs ZXI7CisJaW50IHJldCwgY291bnQgPSAwOworCWJvb2wgZm91bmQ7CisKKwlkbyB7CisJCWZvdW5k ID0gZmFsc2U7CisJCXNwaW5fbG9ja19pcnEoJnNjaGVkdWxlci0+bG9jayk7CisJCWxpc3RfZm9y X2VhY2hfZW50cnkobm9kZSwgJnNjaGVkdWxlci0+bm9kZV9xdWV1ZVtyaW5nLT5pZF0sIGxpbmsp IHsKKwkJCWlmICghSTkxNV9TUVNfSVNfUVVFVUVEKG5vZGUpKQorCQkJCWNvbnRpbnVlOworCisJ CQlpZiAobm9kZS0+cHJpb3JpdHkgPCBzY2hlZHVsZXItPnByaW9yaXR5X2xldmVsX21heCkKKwkJ CQljb250aW51ZTsKKworCQkJZm91bmQgPSB0cnVlOworCQkJYnJlYWs7CisJCX0KKwkJc3Bpbl91 bmxvY2tfaXJxKCZzY2hlZHVsZXItPmxvY2spOworCisJCWlmICghZm91bmQpCisJCQlicmVhazsK KworCQlpZiAoaXNfbG9ja2VkKQorCQkJcmV0ID0gaTkxNV9zY2hlZHVsZXJfc3VibWl0KHJpbmcp OworCQllbHNlCisJCQlyZXQgPSBpOTE1X3NjaGVkdWxlcl9zdWJtaXRfdW5sb2NrZWQocmluZyk7 CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKworCQljb3VudCArPSByZXQ7CisJfSB3 aGlsZSAoZm91bmQpOworCisJcmV0dXJuIGNvdW50OworfQorCisvKioKKyAqIGk5MTVfc2NoZWR1 bGVyX2ZsdXNoX3N0YW1wIC0gZm9yY2UgcmVxdWVzdHMgb2YgYSBnaXZlbiBhZ2UgdGhyb3VnaCB0 aGUKKyAqIHNjaGVkdWxlci4KKyAqIEByaW5nOiBSaW5nIHRvIGJlIGZsdXNoZWQKKyAqIEB0YXJn ZXQ6IEppZmZ5IGJhc2VkIHRpbWUgc3RhbXAgdG8gZmx1c2ggdXAgdG8KKyAqIEBpc19sb2NrZWQ6 IElzIHRoZSBkcml2ZXIgbXV0ZXggbG9jayBoZWxkPworICogRFJNIGhhcyBhIHRocm90dGxlIGJ5 IGFnZSBvZiByZXF1ZXN0IGZhY2lsaXR5LiBUaGlzIHJlcXVpcmVzIHdhaXRpbmcgZm9yCisgKiBv dXRzdGFuZGluZyB3b3JrIG92ZXIgYSBnaXZlbiBhZ2UuIFRoaXMgZnVuY3Rpb24gaGVscHMgdGhh dCBieSBmb3JjaW5nCisgKiBxdWV1ZWQgYmF0Y2ggYnVmZmVycyBvdmVyIHNhaWQgYWdlIHRocm91 Z2ggdGhlIHN5c3RlbS4KKyAqIFJldHVybnMgemVybyBvbiBzdWNjZXNzIG9yIC1FQUdBSU4gaWYg dGhlIHNjaGVkdWxlciBpcyBidXN5IChlLmcuIHdhaXRpbmcKKyAqIGZvciBhIHByZS1lbXB0aW9u IGV2ZW50IHRvIGNvbXBsZXRlKSBidXQgdGhlIG11dGV4IGxvY2sgaXMgaGVsZCB3aGljaAorICog d291bGQgcHJldmVudCB0aGUgc2NoZWR1bGVyJ3MgYXN5bmNocm9ub3VzIHByb2Nlc3NpbmcgZnJv bSBjb21wbGV0aW5nLgorICovCitpbnQgaTkxNV9zY2hlZHVsZXJfZmx1c2hfc3RhbXAoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZywKKwkJCSAgICAgICB1bnNpZ25lZCBsb25nIHRhcmdldCwK KwkJCSAgICAgICBib29sIGlzX2xvY2tlZCkKK3sKKwlzdHJ1Y3QgaTkxNV9zY2hlZHVsZXJfcXVl dWVfZW50cnkgKm5vZGU7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2OworCXN0 cnVjdCBpOTE1X3NjaGVkdWxlciAqc2NoZWR1bGVyOworCWludCBmbHVzaF9jb3VudCA9IDA7CisK KwlpZiAoIXJpbmcpCisJCXJldHVybiAtRUlOVkFMOworCisJZGV2X3ByaXYgID0gcmluZy0+ZGV2 LT5kZXZfcHJpdmF0ZTsKKwlzY2hlZHVsZXIgPSBkZXZfcHJpdi0+c2NoZWR1bGVyOworCisJaWYg KCFzY2hlZHVsZXIpCisJCXJldHVybiAwOworCisJaWYgKGlzX2xvY2tlZCAmJiAoc2NoZWR1bGVy LT5mbGFnc1tyaW5nLT5pZF0gJiBpOTE1X3NmX3N1Ym1pdHRpbmcpKSB7CisJCS8qCisJCSAqIFNj aGVkdWxlciBpcyBidXN5IGFscmVhZHkgc3VibWl0dGluZyBhbm90aGVyIGJhdGNoLAorCQkgKiBj b21lIGJhY2sgbGF0ZXIgcmF0aGVyIHRoYW4gZ29pbmcgcmVjdXJzaXZlLi4uCisJCSAqLworCQly ZXR1cm4gLUVBR0FJTjsKKwl9CisKKwlzcGluX2xvY2tfaXJxKCZzY2hlZHVsZXItPmxvY2spOwor CWk5MTVfc2NoZWR1bGVyX3ByaW9yaXR5X2J1bXBfY2xlYXIoc2NoZWR1bGVyKTsKKwlsaXN0X2Zv cl9lYWNoX2VudHJ5KG5vZGUsICZzY2hlZHVsZXItPm5vZGVfcXVldWVbcmluZy0+aWRdLCBsaW5r KSB7CisJCWlmICghSTkxNV9TUVNfSVNfUVVFVUVEKG5vZGUpKQorCQkJY29udGludWU7CisKKwkJ aWYgKG5vZGUtPnN0YW1wID4gdGFyZ2V0KQorCQkJY29udGludWU7CisKKwkJZmx1c2hfY291bnQg PSBpOTE1X3NjaGVkdWxlcl9wcmlvcml0eV9idW1wKHNjaGVkdWxlciwKKwkJCQkJbm9kZSwgc2No ZWR1bGVyLT5wcmlvcml0eV9sZXZlbF9tYXgpOworCX0KKwlzcGluX3VubG9ja19pcnEoJnNjaGVk dWxlci0+bG9jayk7CisKKwlpZiAoZmx1c2hfY291bnQpIHsKKwkJRFJNX0RFQlVHX0RSSVZFUigi PCVzPiBCdW1wZWQgJWQgZW50cmllc1xuIiwgcmluZy0+bmFtZSwgZmx1c2hfY291bnQpOworCQlm bHVzaF9jb3VudCA9IGk5MTVfc2NoZWR1bGVyX3N1Ym1pdF9tYXhfcHJpb3JpdHkocmluZywgaXNf bG9ja2VkKTsKKwl9CisKKwlyZXR1cm4gZmx1c2hfY291bnQ7Cit9CisKKy8qKgorICogaTkxNV9z Y2hlZHVsZXJfZmx1c2ggLSBmb3JjZSBhbGwgcmVxdWVzdHMgdGhyb3VnaCB0aGUgc2NoZWR1bGVy LgorICogQHJpbmc6IFJpbmcgdG8gYmUgZmx1c2hlZAorICogQGlzX2xvY2tlZDogSXMgdGhlIGRy aXZlciBtdXRleCBsb2NrIGhlbGQ/CisgKiBGb3IgdmFyaW91cyByZWFzb25zIGl0IGlzIHNvbWV0 aW1lcyBuZWNlc3NhcnkgdG8gdGhlIHNjaGVkdWxlciBvdXQsIGUuZy4KKyAqIGR1ZSB0byByaW5n IHJlc2V0LgorICogUmV0dXJucyB6ZXJvIG9uIHN1Y2Nlc3Mgb3IgLUVBR0FJTiBpZiB0aGUgc2No ZWR1bGVyIGlzIGJ1c3kgKGUuZy4gd2FpdGluZworICogZm9yIGEgcHJlLWVtcHRpb24gZXZlbnQg dG8gY29tcGxldGUpIGJ1dCB0aGUgbXV0ZXggbG9jayBpcyBoZWxkIHdoaWNoCisgKiB3b3VsZCBw cmV2ZW50IHRoZSBzY2hlZHVsZXIncyBhc3luY2hyb25vdXMgcHJvY2Vzc2luZyBmcm9tIGNvbXBs ZXRpbmcuCisgKi8KK2ludCBpOTE1X3NjaGVkdWxlcl9mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nLCBib29sIGlzX2xvY2tlZCkKK3sKKwlzdHJ1Y3QgaTkxNV9zY2hlZHVsZXJfcXVl dWVfZW50cnkgKm5vZGU7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2OworCXN0 cnVjdCBpOTE1X3NjaGVkdWxlciAqc2NoZWR1bGVyOworCWJvb2wgZm91bmQ7CisJaW50IHJldDsK Kwl1aW50MzJfdCBjb3VudCA9IDA7CisKKwlpZiAoIXJpbmcpCisJCXJldHVybiAtRUlOVkFMOwor CisJZGV2X3ByaXYgID0gcmluZy0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzY2hlZHVsZXIgPSBkZXZf cHJpdi0+c2NoZWR1bGVyOworCisJaWYgKCFzY2hlZHVsZXIpCisJCXJldHVybiAwOworCisJV0FS Tl9PTihpc19sb2NrZWQgJiYgKHNjaGVkdWxlci0+ZmxhZ3NbcmluZy0+aWRdICYgaTkxNV9zZl9z dWJtaXR0aW5nKSk7CisKKwlkbyB7CisJCWZvdW5kID0gZmFsc2U7CisJCXNwaW5fbG9ja19pcnEo JnNjaGVkdWxlci0+bG9jayk7CisJCWxpc3RfZm9yX2VhY2hfZW50cnkobm9kZSwgJnNjaGVkdWxl ci0+bm9kZV9xdWV1ZVtyaW5nLT5pZF0sIGxpbmspIHsKKwkJCWlmICghSTkxNV9TUVNfSVNfUVVF VUVEKG5vZGUpKQorCQkJCWNvbnRpbnVlOworCisJCQlmb3VuZCA9IHRydWU7CisJCQlicmVhazsK KwkJfQorCQlzcGluX3VubG9ja19pcnEoJnNjaGVkdWxlci0+bG9jayk7CisKKwkJaWYgKGZvdW5k KSB7CisJCQlpZiAoaXNfbG9ja2VkKQorCQkJCXJldCA9IGk5MTVfc2NoZWR1bGVyX3N1Ym1pdChy aW5nKTsKKwkJCWVsc2UKKwkJCQlyZXQgPSBpOTE1X3NjaGVkdWxlcl9zdWJtaXRfdW5sb2NrZWQo cmluZyk7CisJCQlpZiAocmV0IDwgMCkKKwkJCQlyZXR1cm4gcmV0OworCisJCQljb3VudCArPSBy ZXQ7CisJCX0KKwl9IHdoaWxlIChmb3VuZCk7CisKKwlyZXR1cm4gY291bnQ7Cit9CisKIC8qKgog ICogaTkxNV9zY2hlZHVsZXJfaXNfcmVxdWVzdF90cmFja2VkIC0gcmV0dXJuIGluZm8gdG8gc2F5 IHdoYXQgdGhlIHNjaGVkdWxlcidzCiAgKiBjb25uZWN0aW9uIHRvIHRoaXMgcmVxdWVzdCBpcyAo aWYgYW55KS4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVy LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5oCmluZGV4IGE4OGFkY2Uu LjgzOWIwNDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVy LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuaApAQCAtOTQsNiAr OTQsOSBAQCBpbnQgaTkxNV9zY2hlZHVsZXJfcXVldWVfZXhlY2J1ZmZlcihzdHJ1Y3QgaTkxNV9z Y2hlZHVsZXJfcXVldWVfZW50cnkgKnFlKTsKIGJvb2wgaTkxNV9zY2hlZHVsZXJfbm90aWZ5X3Jl cXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOwogdm9pZCBpOTE1X3NjaGVk dWxlcl93YWtldXAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIGk5MTVfc2NoZWR1bGVy X3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOworaW50IGk5MTVfc2NoZWR1 bGVyX2ZsdXNoKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGJvb2wgaXNfbG9ja2VkKTsK K2ludCBpOTE1X3NjaGVkdWxlcl9mbHVzaF9zdGFtcChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nLAorCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhbXAsIGJvb2wgaXNfbG9ja2VkKTsKIGJv b2wgaTkxNV9zY2hlZHVsZXJfaXNfcmVxdWVzdF90cmFja2VkKHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxLAogCQkJCSAgICAgICBib29sICpjb21wbGV0ZWQsIGJvb2wgKmJ1c3kpOwog Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==