From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 17/21] drm/i915: Convert trace-irq to the breadcrumb waiter Date: Fri, 3 Jun 2016 17:08:49 +0100 Message-ID: <1464970133-29859-18-git-send-email-chris@chris-wilson.co.uk> References: <1464970133-29859-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 mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id B00746EE09 for ; Fri, 3 Jun 2016 16:09:19 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id a20so429018wma.3 for ; Fri, 03 Jun 2016 09:09:19 -0700 (PDT) In-Reply-To: <1464970133-29859-1-git-send-email-chris@chris-wilson.co.uk> 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 SWYgd2UgY29udmVydCB0aGUgdHJhY2luZyBvdmVyIGZyb20gZGlyZWN0IHVzZSBvZiByaW5nLT5p cnFfZ2V0KCkgYW5kCm92ZXIgdG8gdGhlIGJyZWFkY3J1bWIgaW5mcmFzdHJ1Y3R1cmUsIHdlIG9u bHkgaGF2ZSBhIHNpbmdsZSB1c2VyIG9mIHRoZQpyaW5nLT5pcnFfZ2V0IGFuZCBzbyB3ZSB3aWxs IGJlIGFibGUgdG8gc2ltcGxpZnkgdGhlIGRyaXZlciByb3V0aW5lcwooZWxpbWluYXRpbmcgdGhl IHJlZHVuZGFudCB2YWxpZGF0aW9uIGFuZCBpcnEgcmVmY291bnRpbmcpLgoKdjI6IE1vdmUgdG8g YSBzaWduYWxpbmcgZnJhbWV3b3JrIGJhc2VkIHVwb24gdGhlIHdhaXRlci4KdjM6IFRyYWNrIHRo ZSBmaXJzdC1zaWduYWwgdG8gYXZvaWQgaGF2aW5nIHRvIHdhbGsgdGhlIHJidHJlZSBldmVyeXRp bWUuCnY0OiBNYXJrIHRoZSBzaWduYWxlciB0aHJlYWQgYXMgUlQgcHJpb3JpdHkgdG8gcmVkdWNl IGxhdGVuY3kgaW4gdGhlCmluZGlyZWN0IHdha2V1cHMuCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBX aWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oICAgICAgICAgIHwgICA4IC0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jICAgICAgICAgIHwgICA5ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNl LmggICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1i cy5jIHwgMTc4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCAgfCAgIDggKy0KIDUgZmlsZXMgY2hhbmdlZCwgMTg4 IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmlu ZGV4IGE3MWQwODE5OWQ1Ny4uYjAyMzUzNzJjZmRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK QEAgLTM5MDYsMTQgKzM5MDYsNiBAQCB3YWl0X3JlbWFpbmluZ19tc19mcm9tX2ppZmZpZXModW5z aWduZWQgbG9uZyB0aW1lc3RhbXBfamlmZmllcywgaW50IHRvX3dhaXRfbXMpCiAJCQkgICAgc2No ZWR1bGVfdGltZW91dF91bmludGVycnVwdGlibGUocmVtYWluaW5nX2ppZmZpZXMpOwogCX0KIH0K LQotc3RhdGljIGlubGluZSB2b2lkIGk5MTVfdHJhY2VfaXJxX2dldChzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUsCi0JCQkJICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEpCi17Ci0JaWYgKGVuZ2luZS0+dHJhY2VfaXJxX3JlcSA9PSBOVUxMICYmIGVuZ2luZS0+aXJx X2dldChlbmdpbmUpKQotCQlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmZW5naW5lLT50cmFjZV9p cnFfcmVxLCByZXEpOwotfQotCiBzdGF0aWMgaW5saW5lIGJvb2wgX19pOTE1X3JlcXVlc3RfaXJx X2NvbXBsZXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogewogCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcS0+ZW5naW5lOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMKaW5kZXggZmRiYWQwN2I1ZjQyLi5mNGU1NTBkZGFhNWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYwpAQCAtMjUwMCw3ICsyNTAwLDggQEAgaTkxNV9nZW1faW5pdF9zZXFubyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBzZXFubykKIAogCS8qIElmIHRoZSBzZXFubyB3 cmFwcyBhcm91bmQsIHdlIG5lZWQgdG8gY2xlYXIgdGhlIGJyZWFkY3J1bWIgcmJ0cmVlICovCiAJ aWYgKCFpOTE1X3NlcW5vX3Bhc3NlZChzZXFubywgZGV2X3ByaXYtPm5leHRfc2Vxbm8pKSB7Ci0J CXdoaWxlIChpbnRlbF9raWNrX3dhaXRlcnMoZGV2X3ByaXYpKQorCQl3aGlsZSAoaW50ZWxfa2lj a193YWl0ZXJzKGRldl9wcml2KSB8fAorCQkgICAgICAgaW50ZWxfa2lja19zaWduYWxlcnMoZGV2 X3ByaXYpKQogCQkJeWllbGQoKTsKIAl9CiAKQEAgLTI5NjQsMTIgKzI5NjUsNiBAQCBpOTE1X2dl bV9yZXRpcmVfcmVxdWVzdHNfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJ CWk5MTVfZ2VtX29iamVjdF9yZXRpcmVfX3JlYWQob2JqLCBlbmdpbmUtPmlkKTsKIAl9CiAKLQlp ZiAodW5saWtlbHkoZW5naW5lLT50cmFjZV9pcnFfcmVxICYmCi0JCSAgICAgaTkxNV9nZW1fcmVx dWVzdF9jb21wbGV0ZWQoZW5naW5lLT50cmFjZV9pcnFfcmVxKSkpIHsKLQkJZW5naW5lLT5pcnFf cHV0KGVuZ2luZSk7Ci0JCWk5MTVfZ2VtX3JlcXVlc3RfYXNzaWduKCZlbmdpbmUtPnRyYWNlX2ly cV9yZXEsIE5VTEwpOwotCX0KLQogCVdBUk5fT04oaTkxNV92ZXJpZnlfbGlzdHMoZW5naW5lLT5k ZXYpKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oCmluZGV4IDNkMTNmZGU5NWZkZi4u ZjU5Y2YwNzE4NGFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNl LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oCkBAIC00OTAsNyArNDkw LDcgQEAgVFJBQ0VfRVZFTlQoaTkxNV9nZW1fcmluZ19kaXNwYXRjaCwKIAkJCSAgIF9fZW50cnkt PnJpbmcgPSByZXEtPmVuZ2luZS0+aWQ7CiAJCQkgICBfX2VudHJ5LT5zZXFubyA9IHJlcS0+c2Vx bm87CiAJCQkgICBfX2VudHJ5LT5mbGFncyA9IGZsYWdzOwotCQkJICAgaTkxNV90cmFjZV9pcnFf Z2V0KHJlcS0+ZW5naW5lLCByZXEpOworCQkJICAgaW50ZWxfZW5naW5lX2VuYWJsZV9zaWduYWxp bmcocmVxKTsKIAkJCSAgICksCiAKIAkgICAgVFBfcHJpbnRrKCJkZXY9JXUsIHJpbmc9JXUsIHNl cW5vPSV1LCBmbGFncz0leCIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9icmVhZGNydW1icy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMu YwppbmRleCAwZjVmZTExNGMyMDQuLjE0Mzg5MWEyYjY4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9icmVhZGNydW1icy5jCkBAIC0yMiw2ICsyMiw4IEBACiAgKgogICovCiAKKyNpbmNs dWRlIDxsaW51eC9rdGhyZWFkLmg+CisKICNpbmNsdWRlICJpOTE1X2Rydi5oIgogCiBzdGF0aWMg dm9pZCBpbnRlbF9icmVhZGNydW1ic19mYWtlX2lycSh1bnNpZ25lZCBsb25nIGRhdGEpCkBAIC0z MjEsNiArMzIzLDE1NSBAQCBvdXRfdW5sb2NrOgogCXNwaW5fdW5sb2NrKCZiLT5sb2NrKTsKIH0K IAorc3RydWN0IHNpZ25hbCB7CisJc3RydWN0IHJiX25vZGUgbm9kZTsKKwlzdHJ1Y3QgaW50ZWxf d2FpdCB3YWl0OworCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdDsKK307CisK K3N0YXRpYyBib29sIHNpZ25hbF9jb21wbGV0ZShzdHJ1Y3Qgc2lnbmFsICpzaWduYWwpCit7CisJ aWYgKHNpZ25hbCA9PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKiBJZiBhbm90aGVyIHBy b2Nlc3Mgc2VydmVkIGFzIHRoZSBib3R0b20taGFsZiBpdCBtYXkgaGF2ZSBhbHJlYWR5CisJICog c2lnbmFsbGVkIHRoYXQgdGhpcyB3YWl0IGlzIGFscmVhZHkgY29tcGxldGVkLgorCSAqLworCWlm IChpbnRlbF93YWl0X2NvbXBsZXRlKCZzaWduYWwtPndhaXQpKQorCQlyZXR1cm4gdHJ1ZTsKKwor CS8qIENhcmVmdWxseSBjaGVjayBpZiB0aGUgcmVxdWVzdCBpcyBjb21wbGV0ZSwgZ2l2aW5nIHRp bWUgZm9yIHRoZQorCSAqIHNlcW5vIHRvIGJlIHZpc2libGUgb3IgaWYgdGhlIEdQVSBodW5nLgor CSAqLworCWlmIChfX2k5MTVfcmVxdWVzdF9pcnFfY29tcGxldGUoc2lnbmFsLT5yZXF1ZXN0KSkK KwkJcmV0dXJuIHRydWU7CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc2ln bmFsICp0b19zaWduYWwoc3RydWN0IHJiX25vZGUgKnJiKQoreworCXJldHVybiBjb250YWluZXJf b2YocmIsIHN0cnVjdCBzaWduYWwsIG5vZGUpOworfQorCitzdGF0aWMgdm9pZCBzaWduYWxlcl9z ZXRfcnRwcmlvcml0eSh2b2lkKQoreworCSBzdHJ1Y3Qgc2NoZWRfcGFyYW0gcGFyYW0gPSB7IC5z Y2hlZF9wcmlvcml0eSA9IDEgfTsKKwkgc2NoZWRfc2V0c2NoZWR1bGVyX25vY2hlY2soY3VycmVu dCwgU0NIRURfRklGTywgJnBhcmFtKTsKK30KKworc3RhdGljIGludCBpbnRlbF9icmVhZGNydW1i c19zaWduYWxlcih2b2lkICphcmcpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l ID0gYXJnOworCXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9ICZlbmdpbmUtPmJyZWFkY3J1 bWJzOworCXN0cnVjdCBzaWduYWwgKnNpZ25hbDsKKworCS8qIEluc3RhbGwgb3Vyc2VsdmVzIHdp dGggaGlnaCBwcmlvcml0eSB0byByZWR1Y2Ugc2lnbmFsbGluZyBsYXRlbmN5ICovCisJc2lnbmFs ZXJfc2V0X3J0cHJpb3JpdHkoKTsKKworCWRvIHsKKwkJc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19J TlRFUlJVUFRJQkxFKTsKKworCQkvKiBXZSBhcmUgZWl0aGVyIHdva2VuIHVwIGJ5IHRoZSBpbnRl cnJ1cHQgYm90dG9tLWhhbGYsCisJCSAqIG9yIGJ5IGEgY2xpZW50IGFkZGluZyBhIG5ldyBzaWdu YWxsZXIuIEluIGJvdGggY2FzZXMsCisJCSAqIHRoZSBHUFUgc2Vxbm8gbWF5IGhhdmUgYWR2YW5j ZWQgYmV5b25kIG91ciBvbGRlc3Qgc2lnbmFsLgorCQkgKiBJZiBpdCBoYXMsIHByb3BhZ2F0ZSB0 aGUgc2lnbmFsLCByZW1vdmUgdGhlIHdhaXRlciBhbmQKKwkJICogY2hlY2sgYWdhaW4gd2l0aCB0 aGUgbmV4dCBvbGRlc3Qgc2lnbmFsLiBPdGhlcndpc2Ugd2UKKwkJICogbmVlZCB0byB3YWl0IGZv ciBhIG5ldyBpbnRlcnJ1cHQgZnJvbSB0aGUgR1BVIG9yIGZvcgorCQkgKiBhIG5ldyBjbGllbnQu CisJCSAqLworCQlzaWduYWwgPSBSRUFEX09OQ0UoYi0+Zmlyc3Rfc2lnbmFsKTsKKwkJaWYgKHNp Z25hbF9jb21wbGV0ZShzaWduYWwpKSB7CisJCQkvKiBXYWtlIHVwIGFsbCBvdGhlciBjb21wbGV0 ZWQgd2FpdGVycyBhbmQgc2VsZWN0IHRoZQorCQkJICogbmV4dCBib3R0b20taGFsZiBmb3IgdGhl IG5leHQgdXNlciBpbnRlcnJ1cHQuCisJCQkgKi8KKwkJCWludGVsX2VuZ2luZV9yZW1vdmVfd2Fp dChlbmdpbmUsICZzaWduYWwtPndhaXQpOworCisJCQlpOTE1X2dlbV9yZXF1ZXN0X3VucmVmZXJl bmNlKHNpZ25hbC0+cmVxdWVzdCk7CisKKwkJCS8qIEZpbmQgdGhlIG5leHQgb2xkZXN0IHNpZ25h bC4gTm90ZSB0aGF0IGFzIHdlIGhhdmUKKwkJCSAqIG5vdCBiZWVuIGhvbGRpbmcgdGhlIGxvY2ss IGFub3RoZXIgY2xpZW50IG1heQorCQkJICogaGF2ZSBpbnN0YWxsZWQgYW4gZXZlbiBvbGRlciBz aWduYWwgdGhhbiB0aGUgb25lCisJCQkgKiB3ZSBqdXN0IGNvbXBsZXRlZCAtIHNvIGRvdWJsZSBj aGVjayB3ZSBhcmUgc3RpbGwKKwkJCSAqIHRoZSBvbGRlc3QgYmVmb3JlIHBpY2tpbmcgdGhlIG5l eHQgb25lLgorCQkJICovCisJCQlzcGluX2xvY2soJmItPmxvY2spOworCQkJaWYgKHNpZ25hbCA9 PSBiLT5maXJzdF9zaWduYWwpCisJCQkJYi0+Zmlyc3Rfc2lnbmFsID0gcmJfbmV4dCgmc2lnbmFs LT5ub2RlKTsKKwkJCXJiX2VyYXNlKCZzaWduYWwtPm5vZGUsICZiLT5zaWduYWxzKTsKKwkJCXNw aW5fdW5sb2NrKCZiLT5sb2NrKTsKKworCQkJa2ZyZWUoc2lnbmFsKTsKKwkJfSBlbHNlIHsKKwkJ CWlmIChrdGhyZWFkX3Nob3VsZF9zdG9wKCkpCisJCQkJYnJlYWs7CisKKwkJCXNjaGVkdWxlKCk7 CisJCX0KKwl9IHdoaWxlICgxKTsKKworCXJldHVybiAwOworfQorCitpbnQgaW50ZWxfZW5naW5l X2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQor eworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcXVlc3QtPmVuZ2luZTsKKwlz dHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIgPSAmZW5naW5lLT5icmVhZGNydW1iczsKKwlzdHJ1 Y3QgcmJfbm9kZSAqcGFyZW50LCAqKnA7CisJc3RydWN0IHNpZ25hbCAqc2lnbmFsOworCWJvb2wg Zmlyc3QsIHdha2V1cDsKKworCWlmICh1bmxpa2VseShJU19FUlIoYi0+c2lnbmFsZXIpKSkKKwkJ cmV0dXJuIFBUUl9FUlIoYi0+c2lnbmFsZXIpOworCisJc2lnbmFsID0ga21hbGxvYyhzaXplb2Yo KnNpZ25hbCksIEdGUF9BVE9NSUMpOworCWlmICh1bmxpa2VseSghc2lnbmFsKSkKKwkJcmV0dXJu IC1FTk9NRU07CisKKwlzaWduYWwtPndhaXQudGFzayA9IGItPnNpZ25hbGVyOworCXNpZ25hbC0+ d2FpdC5zZXFubyA9IHJlcXVlc3QtPnNlcW5vOworCisJc2lnbmFsLT5yZXF1ZXN0ID0gaTkxNV9n ZW1fcmVxdWVzdF9yZWZlcmVuY2UocmVxdWVzdCk7CisKKwkvKiBGaXJzdCBhZGQgb3Vyc2VsdmVz IGludG8gdGhlIGxpc3Qgb2Ygd2FpdGVycywgYnV0IHJlZ2lzdGVyIG91cgorCSAqIGJvdHRvbS1o YWxmIGFzIHRoZSBzaWduYWxsZXIgdGhyZWFkLiBBcyBwZXIgdXN1YWwsIG9ubHkgdGhlIG9sZGVz dAorCSAqIHdhaXRlciAobm90IGp1c3Qgc2lnbmFsbGVyKSBpcyB0YXNrZWQgYXMgdGhlIGJvdHRv bS1oYWxmIHdha2luZworCSAqIHVwIGFsbCBjb21wbGV0ZWQgd2FpdGVycyBhZnRlciB0aGUgdXNl ciBpbnRlcnJ1cHQuCisJICoKKwkgKiBJZiB3ZSBhcmUgdGhlIG9sZGVzdCB3YWl0ZXIsIGVuYWJs ZSB0aGUgaXJxIChhZnRlciB3aGljaCB3ZQorCSAqIG11c3QgZG91YmxlIGNoZWNrIHRoYXQgdGhl IHNlcW5vIGRpZCBub3QgY29tcGxldGUpLgorCSAqLworCXdha2V1cCA9IGludGVsX2VuZ2luZV9h ZGRfd2FpdChlbmdpbmUsICZzaWduYWwtPndhaXQpOworCisJLyogTm93IGluc2VydCBvdXJzZWx2 ZXMgaW50byB0aGUgcmV0aXJlbWVudCBvcmRlcmVkIGxpc3Qgb2Ygc2lnbmFscworCSAqIG9uIHRo aXMgZW5naW5lLiBXZSB0cmFjayB0aGUgb2xkZXN0IHNlcW5vIGFzIHRoYXQgd2lsbCBiZSB0aGUK KwkgKiBmaXJzdCBzaWduYWwgdG8gY29tcGxldGUuCisJICovCisJc3Bpbl9sb2NrKCZiLT5sb2Nr KTsKKwlwYXJlbnQgPSBOVUxMOworCWZpcnN0ID0gdHJ1ZTsKKwlwID0gJmItPnNpZ25hbHMucmJf bm9kZTsKKwl3aGlsZSAoKnApIHsKKwkJcGFyZW50ID0gKnA7CisJCWlmIChpOTE1X3NlcW5vX3Bh c3NlZChzaWduYWwtPndhaXQuc2Vxbm8sCisJCQkJICAgICAgdG9fc2lnbmFsKHBhcmVudCktPndh aXQuc2Vxbm8pKSB7CisJCQlwID0gJnBhcmVudC0+cmJfcmlnaHQ7CisJCQlmaXJzdCA9IGZhbHNl OworCQl9IGVsc2UKKwkJCXAgPSAmcGFyZW50LT5yYl9sZWZ0OworCX0KKwlyYl9saW5rX25vZGUo JnNpZ25hbC0+bm9kZSwgcGFyZW50LCBwKTsKKwlyYl9pbnNlcnRfY29sb3IoJnNpZ25hbC0+bm9k ZSwgJmItPnNpZ25hbHMpOworCWlmIChmaXJzdCkKKwkJc21wX3N0b3JlX21iKGItPmZpcnN0X3Np Z25hbCwgc2lnbmFsKTsKKwlzcGluX3VubG9jaygmYi0+bG9jayk7CisKKwlpZiAod2FrZXVwKQor CQl3YWtlX3VwX3Byb2Nlc3MoYi0+c2lnbmFsZXIpOworCisJcmV0dXJuIDA7Cit9CisKIHZvaWQg aW50ZWxfZW5naW5lX2luaXRfYnJlYWRjcnVtYnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQogewogCXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9ICZlbmdpbmUtPmJyZWFkY3J1 bWJzOwpAQCAtMzI5LDEyICs0ODAsMjQgQEAgdm9pZCBpbnRlbF9lbmdpbmVfaW5pdF9icmVhZGNy dW1icyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJc2V0dXBfdGltZXIoJmItPmZh a2VfaXJxLAogCQkgICAgaW50ZWxfYnJlYWRjcnVtYnNfZmFrZV9pcnEsCiAJCSAgICAodW5zaWdu ZWQgbG9uZyllbmdpbmUpOworCisJLyogU3Bhd24gYSB0aHJlYWQgdG8gcHJvdmlkZSBhIGNvbW1v biBib3R0b20taGFsZiBmb3IgYWxsIHNpZ25hbHMuCisJICogQXMgdGhpcyBpcyBhbiBhc3luY2hy b25vdXMgaW50ZXJmYWNlIHdlIGNhbm5vdCBzdGVhbCB0aGUgY3VycmVudAorCSAqIHRhc2sgZm9y IGhhbmRsaW5nIHRoZSBib3R0b20taGFsZiB0byB0aGUgdXNlciBpbnRlcnJ1cHQsIHRoZXJlZm9y ZQorCSAqIHdlIGNyZWF0ZSBhIHRocmVhZCB0byBkbyB0aGUgY29oZXJlbnQgc2Vxbm8gZGFuY2Ug YWZ0ZXIgdGhlCisJICogaW50ZXJydXB0IGFuZCB0aGVuIHNpZ25hbCB0aGUgd2FpdHF1ZXVlICh2 aWEgdGhlIGRtYS1idWYvZmVuY2UpLgorCSAqLworCWItPnNpZ25hbGVyID0ga3RocmVhZF9ydW4o aW50ZWxfYnJlYWRjcnVtYnNfc2lnbmFsZXIsCisJCQkJICBlbmdpbmUsICJpcnEvaTkxNTolZCIs IGVuZ2luZS0+aWQpOwogfQogCiB2b2lkIGludGVsX2VuZ2luZV9maW5pX2JyZWFkY3J1bWJzKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVt YnMgKmIgPSAmZW5naW5lLT5icmVhZGNydW1iczsKIAorCWlmICghSVNfRVJSX09SX05VTEwoYi0+ c2lnbmFsZXIpKQorCQlrdGhyZWFkX3N0b3AoYi0+c2lnbmFsZXIpOworCiAJZGVsX3RpbWVyX3N5 bmMoJmItPmZha2VfaXJxKTsKIH0KIApAQCAtMzU2LDMgKzUxOSwxOCBAQCB1bnNpZ25lZCBpbnRl bF9raWNrX3dhaXRlcnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAKIAlyZXR1cm4g bWFzazsKIH0KKwordW5zaWduZWQgaW50ZWxfa2lja19zaWduYWxlcnMoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCXVu c2lnbmVkIG1hc2sgPSAwOworCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSkgeworCQlp ZiAodW5saWtlbHkoUkVBRF9PTkNFKGVuZ2luZS0+YnJlYWRjcnVtYnMuZmlyc3Rfc2lnbmFsKSkp IHsKKwkJCXdha2VfdXBfcHJvY2VzcyhlbmdpbmUtPmJyZWFkY3J1bWJzLnNpZ25hbGVyKTsKKwkJ CW1hc2sgfD0gaW50ZWxfZW5naW5lX2ZsYWcoZW5naW5lKTsKKwkJfQorCX0KKworCXJldHVybiBt YXNrOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCmluZGV4IDMyNGY4 NWU4ZDU0MC4uZjRiY2EzOGNhZWYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oCkBAIC0xNDEsNiArMTQxLDggQEAgc3RydWN0ICBpOTE1X2N0eF93b3JrYXJvdW5kcyB7 CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIH07CiAKK3N0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdDsKKwogc3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTU7CiAJY29uc3QgY2hhcgkqbmFtZTsKQEAgLTE3OSw4ICsxODEsMTEg QEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJc3RydWN0IGludGVsX2JyZWFkY3J1bWJzIHsK IAkJc3BpbmxvY2tfdCBsb2NrOyAvKiBwcm90ZWN0cyB0aGUgbGlzdHMgb2YgcmVxdWVzdHMgKi8K IAkJc3RydWN0IHJiX3Jvb3Qgd2FpdGVyczsgLyogc29ydGVkIGJ5IHJldGlyZW1lbnQsIHByaW9y aXR5ICovCisJCXN0cnVjdCByYl9yb290IHNpZ25hbHM7IC8qIHNvcnRlZCBieSByZXRpcmVtZW50 ICovCiAJCXN0cnVjdCBpbnRlbF93YWl0ICpmaXJzdF93YWl0OyAvKiBvbGRlc3Qgd2FpdGVyIGJ5 IHJldGlyZW1lbnQgKi8KIAkJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrbGV0OyAvKiBiaCBmb3Ig dXNlciBpbnRlcnJ1cHRzICovCisJCXN0cnVjdCB0YXNrX3N0cnVjdCAqc2lnbmFsZXI7IC8qIHVz ZWQgZm9yIGZlbmNlIHNpZ25hbGxpbmcgKi8KKwkJdm9pZCAqZmlyc3Rfc2lnbmFsOwogCQlzdHJ1 Y3QgdGltZXJfbGlzdCBmYWtlX2lycTsgLyogdXNlZCBhZnRlciBhIG1pc3NlZCBpbnRlcnJ1cHQg Ki8KIAkJYm9vbCBpcnFfZW5hYmxlZDsKIAkJYm9vbCBycG1fd2FrZWxvY2s7CkBAIC0xOTksNyAr MjA0LDYgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJdW5zaWduZWQgaXJxX3JlZmNvdW50 OyAvKiBwcm90ZWN0ZWQgYnkgZGV2X3ByaXYtPmlycV9sb2NrICovCiAJYm9vbAkJaXJxX3Bvc3Rl ZDsKIAl1MzIJCWlycV9lbmFibGVfbWFzazsJLyogYml0bWFzayB0byBlbmFibGUgcmluZyBpbnRl cnJ1cHQgKi8KLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnRyYWNlX2lycV9yZXE7CiAJ Ym9vbCBfX211c3RfY2hlY2sgKCppcnFfZ2V0KShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n KTsKIAl2b2lkCQkoKmlycV9wdXQpKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwogCkBA IC01NDAsNiArNTQ0LDcgQEAgYm9vbCBpbnRlbF9lbmdpbmVfYWRkX3dhaXQoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lLAogCQkJICAgc3RydWN0IGludGVsX3dhaXQgKndhaXQpOwogdm9p ZCBpbnRlbF9lbmdpbmVfcmVtb3ZlX3dhaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l LAogCQkJICAgICAgc3RydWN0IGludGVsX3dhaXQgKndhaXQpOworaW50IGludGVsX2VuZ2luZV9l bmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCk7CiBz dGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfZW5naW5lX2hhc193YWl0ZXIoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQogewogCXJldHVybiBSRUFEX09OQ0UoZW5naW5lLT5icmVhZGNydW1i cy50YXNrbGV0KTsKQEAgLTU1OSw1ICs1NjQsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxf ZW5naW5lX3dha2V1cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB2b2lkIGludGVs X2VuZ2luZV9lbmFibGVfZmFrZV9pcnEoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsK IHZvaWQgaW50ZWxfZW5naW5lX2ZpbmlfYnJlYWRjcnVtYnMoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKTsKIHVuc2lnbmVkIGludGVsX2tpY2tfd2FpdGVycyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSk7Cit1bnNpZ25lZCBpbnRlbF9raWNrX3NpZ25hbGVycyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSk7CiAKICNlbmRpZiAvKiBfSU5URUxfUklOR0JVRkZFUl9IXyAq LwotLSAKMi44LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=