From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH i-g-t 3/3] tests/perf_pmu: Improve accuracy by waiting on spinner to start Date: Thu, 22 Mar 2018 11:17:12 +0000 Message-ID: <20180322111712.9056-3-tvrtko.ursulin@linux.intel.com> References: <20180322111712.9056-1-tvrtko.ursulin@linux.intel.com> 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 CF2D96EBE4 for ; Thu, 22 Mar 2018 11:17:29 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id f125so15294696wme.4 for ; Thu, 22 Mar 2018 04:17:29 -0700 (PDT) In-Reply-To: <20180322111712.9056-1-tvrtko.ursulin@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: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCk1vcmUgdGhh biBvbmUgdGVzdCBhc3N1bWVzIHRoYXQgdGhlIHNwaW5uZXIgaXMgcnVubmluZyBwcmV0dHkgbXVj aAppbW1lZGlhdGVseSBhZnRlciB3ZSBoYXZlIGNyZWF0ZSBvciBzdWJtaXR0ZWQgaXQuCgpJbiBh Y3R1YWxpdHkgdGhlcmUgaXMgYSB2YXJpYWJsZSBkZWxheSwgZXNwZWNpYWxseSBvbiBleGVjbGlz dHMgcGxhdGZvcm1zLApiZXR3ZWVuIHN1Ym1pc3Npb24gYW5kIHNwaW4gYmF0Y2ggc3RhcnRpbmcg dG8gcnVuIG9uIHRoZSBoYXJkd2FyZS4KClRvIGVuYWJsZSB0ZXN0cyB3aGljaCBjYXJlIGFib3V0 IHRoaXMgbGV2ZWwgb2YgdGltaW5nIHRvIGFjY291bnQgZm9yIHRoaXMsCndlIGFkZCBhIG5ldyBz cGluIGJhdGNoIGNvbnN0cnVjdG9yIHdoaWNoIHByb3ZpZGVzIGFuIG91dHB1dCBmaWVsZCB3aGlj aApjYW4gYmUgcG9sbGVkIHRvIGRldGVybWluZSB3aGVuIHRoZSBiYXRjaCBhY3R1YWxseSBzdGFy dGVkIHJ1bm5pbmcuCgpUaGlzIGlzIGltcGxlbWVudGVkIHZpYSBNSV9TVE9SRURXX0lNTSBmcm9t IHRoZSBzcGluIGJhdGNoLCB3cml0aW5nIGludG8KbWVtb3J5IG1hcHBlZCBwYWdlIHNoYXJlZCB3 aXRoIHVzZXJzcGFjZS4KClVzaW5nIHRoaXMgZmFjaWxpdHkgZnJvbSBwZXJmX3BtdSwgd2hlcmUg YXBwbGljYWJsZSwgc2hvdWxkIGltcHJvdmUgdmVyeQpvY2Nhc2lvbmFsIHRlc3QgZmFpbHMgYWNy b3NzIHRoZSBzZXQgYW5kIHBsYXRmb3Jtcy4KCnYyOgogQ2hyaXMgV2lsc29uOgogKiBVc2UgY2Fj aGluZyBtYXBwaW5nIGlmIGF2YWlsYWJsZS4KICogSGFuZGxlIG9sZCBnZW5zIGJldHRlci4KICog VXNlIGdlbV9jYW5fc3RvcmVfZHdvcmQuCiAqIENhY2hlIGV4ZWMgb2JqIGFycmF5IGluIHNwaW5f YmF0Y2hfdCBmb3IgZWFzaWVyIHJlc3VibWl0LgoKdjM6CiAqIEZvcmdvdCBJOTE1X0VYRUNfTk9f UkVMT0MuIChDaHJpcyBXaWxzb24pCgp2NDoKICogTWFzayBvdXQgYWxsIG5vbi1lbmdpbmUgZmxh Z3MgaW4gZ2VtX2Nhbl9zdG9yZV9kd29yZC4KICogQWRkZWQgc29tZSBkZWJ1ZyBsb2dnaW5nLgoK djU6CiAqIEZpeCByZWxvY3MgYW5kIGJhdGNoIG11bm1hcC4gKENocmlzKQogKiBBZGRlZCBhc3Nl cnQgaWRsZSBzcGlubmVyIGJhdGNoIGxvb2tzIGFzIGV4cGVjdGVkLgoKdjY6CiAqIFNraXAgYWNj dXJhY3kgdGVzdHMgd2hlbiAhZ2VtX2Nhbl9zdG9yZV9kd29yZC4KCnY3OgogKiBGaXggYmF0Y2gg cmVjdXJzaW9uIHJlbG9jIGFkZHJlc3MuCgp2ODoKIENocmlzIFdpbHNvbjoKICogUHVsbCB1cCBn ZW1fY2FuX3N0b3JlX2R3b3JkIGNoZWNrIGJlZm9yZSB3ZSBzdGFydCBzdWJtaXR0aW5nLgogKiBC dWlsZCBzcGlubmVyIGJhdGNoIGluIGEgd2F5IHdlIGNhbiBza2lwIHN0b3JlIGR3b3JkIHdoZW4g bm90CiAgIG5lZWRlZCBzbyB3ZSBjYW4gcnVuIG9uIFNhbmR5QnJpZGdlLgoKdjk6CiAqIEZpeCB3 YWl0IG9uIHNwaW5uZXIuCiAqIE1vcmUgdHdlYWtzIHRvIGFjY3VyYWN5IHRlc3QuCgp2MTA6CiAq IERyb3BwZWQgYWNjdXJhY3kgc3VidGVzdCBjaGFuZ2VzIGR1ZSBwcm9ibGVtcyB3aXRoIFJUIHRo cmVhZCBhbmQKICAgdGFza2xldCBzdWJtaXNzaW9uLgoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVy c3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KU3VnZ2VzdGVkLWJ5OiBDaHJpcyBXaWxz b24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KUmV2aWV3ZWQtYnk6IENocmlzIFdpbHNvbiA8 Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPiAjIHY5Ci0tLQogdGVzdHMvcGVyZl9wbXUuYyB8IDE1 MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3Rlc3RzL3BlcmZfcG11LmMgYi90ZXN0cy9wZXJmX3BtdS5jCmluZGV4IDE5ZmNj OTVmZmM3Zi4uMjAzZmU0ODk1NWE4IDEwMDY0NAotLS0gYS90ZXN0cy9wZXJmX3BtdS5jCisrKyBi L3Rlc3RzL3BlcmZfcG11LmMKQEAgLTE3MCw2ICsxNzAsNTYgQEAgc3RhdGljIHVuc2lnbmVkIGlu dCBlMnJpbmcoaW50IGdlbV9mZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUy ICplKQogI2RlZmluZSBGTEFHX0xPTkcgKDE2KQogI2RlZmluZSBGTEFHX0hBTkcgKDMyKQogCitz dGF0aWMgaWd0X3NwaW5fdCAqIF9fc3Bpbl9wb2xsKGludCBmZCwgdWludDMyX3QgY3R4LCB1bnNp Z25lZCBsb25nIGZsYWdzKQoreworCWlmIChnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBmbGFncykp CisJCXJldHVybiBfX2lndF9zcGluX2JhdGNoX25ld19wb2xsKGZkLCBjdHgsIGZsYWdzKTsKKwll bHNlCisJCXJldHVybiBfX2lndF9zcGluX2JhdGNoX25ldyhmZCwgY3R4LCBmbGFncywgMCk7Cit9 CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3Bpbl93YWl0KGludCBmZCwgaWd0X3NwaW5fdCAq c3BpbikKK3sKKwlzdHJ1Y3QgdGltZXNwZWMgc3RhcnQgPSB7IH07CisKKwlpZ3RfbnNlY19lbGFw c2VkKCZzdGFydCk7CisKKwlpZiAoc3Bpbi0+cnVubmluZykgeworCQl1bnNpZ25lZCBsb25nIHRp bWVvdXQgPSAwOworCisJCXdoaWxlICghKigodm9sYXRpbGUgYm9vbCAqKXNwaW4tPnJ1bm5pbmcp KSB7CisJCQl1bnNpZ25lZCBsb25nIHQgPSBpZ3RfbnNlY19lbGFwc2VkKCZzdGFydCk7CisKKwkJ CWlmICgodCAtIHRpbWVvdXQpID4gMjUwZTYpIHsKKwkJCQl0aW1lb3V0ID0gdDsKKwkJCQlpZ3Rf d2FybigiU3Bpbm5lciBub3QgcnVubmluZyBhZnRlciAlLjJmbXNcbiIsCisJCQkJCSAoZG91Ymxl KXQgLyAxZTYpOworCQkJfQorCQl9CisJfSBlbHNlIHsKKwkJaWd0X2RlYnVnKCJfX3NwaW5fd2Fp dCAtIHVzbGVlcCBtb2RlXG4iKTsKKwkJdXNsZWVwKDUwMGUzKTsgLyogQmV0dGVyIHRoYW4gbm90 aGluZyEgKi8KKwl9CisKKwlyZXR1cm4gaWd0X25zZWNfZWxhcHNlZCgmc3RhcnQpOworfQorCitz dGF0aWMgaWd0X3NwaW5fdCAqIF9fc3Bpbl9zeW5jKGludCBmZCwgdWludDMyX3QgY3R4LCB1bnNp Z25lZCBsb25nIGZsYWdzKQoreworCWlndF9zcGluX3QgKnNwaW4gPSBfX3NwaW5fcG9sbChmZCwg Y3R4LCBmbGFncyk7CisKKwlfX3NwaW5fd2FpdChmZCwgc3Bpbik7CisKKwlyZXR1cm4gc3BpbjsK K30KKworc3RhdGljIGlndF9zcGluX3QgKiBzcGluX3N5bmMoaW50IGZkLCB1aW50MzJfdCBjdHgs IHVuc2lnbmVkIGxvbmcgZmxhZ3MpCit7CisJaWd0X3JlcXVpcmVfZ2VtKGZkKTsKKworCXJldHVy biBfX3NwaW5fc3luYyhmZCwgY3R4LCBmbGFncyk7Cit9CisKIHN0YXRpYyB2b2lkIGVuZF9zcGlu KGludCBmZCwgaWd0X3NwaW5fdCAqc3BpbiwgdW5zaWduZWQgaW50IGZsYWdzKQogewogCWlmICgh c3BpbikKQEAgLTE4MCw4ICsyMzAsMjUgQEAgc3RhdGljIHZvaWQgZW5kX3NwaW4oaW50IGZkLCBp Z3Rfc3Bpbl90ICpzcGluLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAJaWYgKGZsYWdzICYgRkxBR19T WU5DKQogCQlnZW1fc3luYyhmZCwgc3Bpbi0+aGFuZGxlKTsKIAotCWlmIChmbGFncyAmIFRFU1Rf VFJBSUxJTkdfSURMRSkKLQkJdXNsZWVwKGJhdGNoX2R1cmF0aW9uX25zIC8gNTAwMCk7CisJaWYg KGZsYWdzICYgVEVTVF9UUkFJTElOR19JRExFKSB7CisJCXVuc2lnbmVkIGxvbmcgdCwgdGltZW91 dCA9IDA7CisJCXN0cnVjdCB0aW1lc3BlYyBzdGFydCA9IHsgfTsKKworCQlpZ3RfbnNlY19lbGFw c2VkKCZzdGFydCk7CisKKwkJZG8geworCQkJdCA9IGlndF9uc2VjX2VsYXBzZWQoJnN0YXJ0KTsK KworCQkJaWYgKGdlbV9ib19idXN5KGZkLCBzcGluLT5oYW5kbGUpICYmCisJCQkgICAgKHQgLSB0 aW1lb3V0KSA+IDEwZTYpIHsKKwkJCQl0aW1lb3V0ID0gdDsKKwkJCQlpZ3Rfd2FybigiU3Bpbm5l ciBub3QgaWRsZSBhZnRlciAlLjJmbXNcbiIsCisJCQkJCSAoZG91YmxlKXQgLyAxZTYpOworCQkJ fQorCisJCQl1c2xlZXAoMWUzKTsKKwkJfSB3aGlsZSAodCA8IGJhdGNoX2R1cmF0aW9uX25zIC8g NSk7CisJfQogfQogCiBzdGF0aWMgdm9pZApAQCAtMTk1LDcgKzI2Miw3IEBAIHNpbmdsZShpbnQg Z2VtX2ZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsIHVuc2lnbmVk IGludCBmbGFncykKIAlmZCA9IG9wZW5fcG11KEk5MTVfUE1VX0VOR0lORV9CVVNZKGUtPmNsYXNz LCBlLT5pbnN0YW5jZSkpOwogCiAJaWYgKGZsYWdzICYgVEVTVF9CVVNZKQotCQlzcGluID0gaWd0 X3NwaW5fYmF0Y2hfbmV3KGdlbV9mZCwgMCwgZTJyaW5nKGdlbV9mZCwgZSksIDApOworCQlzcGlu ID0gc3Bpbl9zeW5jKGdlbV9mZCwgMCwgZTJyaW5nKGdlbV9mZCwgZSkpOwogCWVsc2UKIAkJc3Bp biA9IE5VTEw7CiAKQEAgLTI1MSwxMyArMzE4LDcgQEAgYnVzeV9zdGFydChpbnQgZ2VtX2ZkLCBj b25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUpCiAJICovCiAJc2xlZXAoMik7 CiAKLQlzcGluID0gX19pZ3Rfc3Bpbl9iYXRjaF9uZXcoZ2VtX2ZkLCAwLCBlMnJpbmcoZ2VtX2Zk LCBlKSwgMCk7Ci0KLQkvKgotCSAqIFNsZWVwIGZvciBhIGJpdCBhZnRlciBtYWtpbmcgdGhlIGVu Z2luZSBidXN5IHRvIG1ha2Ugc3VyZSB0aGUgUE1VCi0JICogZ2V0cyBlbmFibGVkIHdoZW4gdGhl IGJhdGNoIGlzIGFscmVhZHkgcnVubmluZy4KLQkgKi8KLQl1c2xlZXAoNTAwZTMpOworCXNwaW4g PSBfX3NwaW5fc3luYyhnZW1fZmQsIDAsIGUycmluZyhnZW1fZmQsIGUpKTsKIAogCWZkID0gb3Bl bl9wbXUoSTkxNV9QTVVfRU5HSU5FX0JVU1koZS0+Y2xhc3MsIGUtPmluc3RhbmNlKSk7CiAKQEAg LTMwMCw3ICszNjEsNyBAQCBidXN5X2RvdWJsZV9zdGFydChpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1 Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUpCiAJICogcmUtc3VibWlzc2lvbiBpbiBleGVj bGlzdHMgbW9kZS4gTWFrZSBzdXJlIGJ1c3luZXNzIGlzIGNvcnJlY3RseQogCSAqIHJlcG9ydGVk IHdpdGggdGhlIGVuZ2luZSBidXN5LCBhbmQgYWZ0ZXIgdGhlIGVuZ2luZSB3ZW50IGlkbGUuCiAJ ICovCi0Jc3BpblswXSA9IF9faWd0X3NwaW5fYmF0Y2hfbmV3KGdlbV9mZCwgMCwgZTJyaW5nKGdl bV9mZCwgZSksIDApOworCXNwaW5bMF0gPSBfX3NwaW5fc3luYyhnZW1fZmQsIDAsIGUycmluZyhn ZW1fZmQsIGUpKTsKIAl1c2xlZXAoNTAwZTMpOwogCXNwaW5bMV0gPSBfX2lndF9zcGluX2JhdGNo X25ldyhnZW1fZmQsIGN0eCwgZTJyaW5nKGdlbV9mZCwgZSksIDApOwogCkBAIC0zODYsNyArNDQ3 LDcgQEAgYnVzeV9jaGVja19hbGwoaW50IGdlbV9mZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1 dGlvbl9lbmdpbmUyICplLAogCiAJaWd0X2Fzc2VydF9lcShpLCBudW1fZW5naW5lcyk7CiAKLQlz cGluID0gaWd0X3NwaW5fYmF0Y2hfbmV3KGdlbV9mZCwgMCwgZTJyaW5nKGdlbV9mZCwgZSksIDAp OworCXNwaW4gPSBzcGluX3N5bmMoZ2VtX2ZkLCAwLCBlMnJpbmcoZ2VtX2ZkLCBlKSk7CiAJcG11 X3JlYWRfbXVsdGkoZmRbMF0sIG51bV9lbmdpbmVzLCB0dmFsWzBdKTsKIAlzbGVwdCA9IG1lYXN1 cmVkX3VzbGVlcChiYXRjaF9kdXJhdGlvbl9ucyAvIDEwMDApOwogCWlmIChmbGFncyAmIFRFU1Rf VFJBSUxJTkdfSURMRSkKQEAgLTQxMiwxNSArNDczLDE1IEBAIGJ1c3lfY2hlY2tfYWxsKGludCBn ZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwKIH0KIAogc3Rh dGljIHZvaWQKLV9fc3VibWl0X3NwaW5fYmF0Y2goaW50IGdlbV9mZCwKLQkJICAgIHN0cnVjdCBk cm1faTkxNV9nZW1fZXhlY19vYmplY3QyICpvYmosCi0JCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxf ZXhlY3V0aW9uX2VuZ2luZTIgKmUpCitfX3N1Ym1pdF9zcGluX2JhdGNoKGludCBnZW1fZmQsIGln dF9zcGluX3QgKnNwaW4sCisJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2lu ZTIgKmUsCisJCSAgICBpbnQgb2Zmc2V0KQogewotCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1 ZmZlcjIgZWIgPSB7Ci0JCS5idWZmZXJfY291bnQgPSAxLAotCQkuYnVmZmVyc19wdHIgPSB0b191 c2VyX3BvaW50ZXIob2JqKSwKLQkJLmZsYWdzID0gZTJyaW5nKGdlbV9mZCwgZSksCi0JfTsKKwlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGViID0gc3Bpbi0+ZXhlY2J1ZjsKKworCWVi LmZsYWdzICY9IH4oMHgzZiB8IEk5MTVfRVhFQ19CU0RfTUFTSyk7CisJZWIuZmxhZ3MgfD0gZTJy aW5nKGdlbV9mZCwgZSkgfCBJOTE1X0VYRUNfTk9fUkVMT0M7CisJZWIuYmF0Y2hfc3RhcnRfb2Zm c2V0ICs9IG9mZnNldDsKIAogCWdlbV9leGVjYnVmKGdlbV9mZCwgJmViKTsKIH0KQEAgLTQyOSw3 ICs0OTAsNiBAQCBzdGF0aWMgdm9pZAogbW9zdF9idXN5X2NoZWNrX2FsbChpbnQgZ2VtX2ZkLCBj b25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsCiAJCSAgICBjb25zdCB1bnNp Z25lZCBpbnQgbnVtX2VuZ2luZXMsIHVuc2lnbmVkIGludCBmbGFncykKIHsKLQlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBvYmogPSB7fTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfZXhl Y3V0aW9uX2VuZ2luZTIgKmVfOwogCXVpbnQ2NF90IHR2YWxbMl1bbnVtX2VuZ2luZXNdOwogCXVp bnQ2NF90IHZhbFtudW1fZW5naW5lc107CkBAIC00NDMsMTUgKzUwMywxMiBAQCBtb3N0X2J1c3lf Y2hlY2tfYWxsKGludCBnZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5l MiAqZSwKIAkJaWYgKCFnZW1faGFzX2VuZ2luZShnZW1fZmQsIGVfLT5jbGFzcywgZV8tPmluc3Rh bmNlKSkKIAkJCWNvbnRpbnVlOwogCi0JCWlmIChlID09IGVfKSB7CisJCWlmIChlID09IGVfKQog CQkJaWRsZV9pZHggPSBpOwotCQl9IGVsc2UgaWYgKHNwaW4pIHsKLQkJCV9fc3VibWl0X3NwaW5f YmF0Y2goZ2VtX2ZkLCAmb2JqLCBlXyk7Ci0JCX0gZWxzZSB7Ci0JCQlzcGluID0gaWd0X3NwaW5f YmF0Y2hfbmV3KGdlbV9mZCwgMCwKLQkJCQkJCSAgZTJyaW5nKGdlbV9mZCwgZV8pLCAwKTsKLQkJ CW9iai5oYW5kbGUgPSBzcGluLT5oYW5kbGU7Ci0JCX0KKwkJZWxzZSBpZiAoc3BpbikKKwkJCV9f c3VibWl0X3NwaW5fYmF0Y2goZ2VtX2ZkLCBzcGluLCBlXywgNjQpOworCQllbHNlCisJCQlzcGlu ID0gX19zcGluX3BvbGwoZ2VtX2ZkLCAwLCBlMnJpbmcoZ2VtX2ZkLCBlXykpOwogCiAJCXZhbFtp KytdID0gSTkxNV9QTVVfRU5HSU5FX0JVU1koZV8tPmNsYXNzLCBlXy0+aW5zdGFuY2UpOwogCX0K QEAgLTQ2MSw2ICs1MTgsOSBAQCBtb3N0X2J1c3lfY2hlY2tfYWxsKGludCBnZW1fZmQsIGNvbnN0 IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwKIAlmb3IgKGkgPSAwOyBpIDwgbnVt X2VuZ2luZXM7IGkrKykKIAkJZmRbaV0gPSBvcGVuX2dyb3VwKHZhbFtpXSwgZmRbMF0pOwogCisJ LyogU21hbGwgZGVsYXkgdG8gYWxsb3cgZW5naW5lcyB0byBzdGFydC4gKi8KKwl1c2xlZXAoX19z cGluX3dhaXQoZ2VtX2ZkLCBzcGluKSAqIG51bV9lbmdpbmVzIC8gMWUzKTsKKwogCXBtdV9yZWFk X211bHRpKGZkWzBdLCBudW1fZW5naW5lcywgdHZhbFswXSk7CiAJc2xlcHQgPSBtZWFzdXJlZF91 c2xlZXAoYmF0Y2hfZHVyYXRpb25fbnMgLyAxMDAwKTsKIAlpZiAoZmxhZ3MgJiBURVNUX1RSQUlM SU5HX0lETEUpCkBAIC00ODksNyArNTQ5LDYgQEAgc3RhdGljIHZvaWQKIGFsbF9idXN5X2NoZWNr X2FsbChpbnQgZ2VtX2ZkLCBjb25zdCB1bnNpZ25lZCBpbnQgbnVtX2VuZ2luZXMsCiAJCSAgIHVu c2lnbmVkIGludCBmbGFncykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBv YmogPSB7fTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmU7CiAJdWlu dDY0X3QgdHZhbFsyXVtudW1fZW5naW5lc107CiAJdWludDY0X3QgdmFsW251bV9lbmdpbmVzXTsK QEAgLTUwMywxMyArNTYyLDEwIEBAIGFsbF9idXN5X2NoZWNrX2FsbChpbnQgZ2VtX2ZkLCBjb25z dCB1bnNpZ25lZCBpbnQgbnVtX2VuZ2luZXMsCiAJCWlmICghZ2VtX2hhc19lbmdpbmUoZ2VtX2Zk LCBlLT5jbGFzcywgZS0+aW5zdGFuY2UpKQogCQkJY29udGludWU7CiAKLQkJaWYgKHNwaW4pIHsK LQkJCV9fc3VibWl0X3NwaW5fYmF0Y2goZ2VtX2ZkLCAmb2JqLCBlKTsKLQkJfSBlbHNlIHsKLQkJ CXNwaW4gPSBpZ3Rfc3Bpbl9iYXRjaF9uZXcoZ2VtX2ZkLCAwLAotCQkJCQkJICBlMnJpbmcoZ2Vt X2ZkLCBlKSwgMCk7Ci0JCQlvYmouaGFuZGxlID0gc3Bpbi0+aGFuZGxlOwotCQl9CisJCWlmIChz cGluKQorCQkJX19zdWJtaXRfc3Bpbl9iYXRjaChnZW1fZmQsIHNwaW4sIGUsIDY0KTsKKwkJZWxz ZQorCQkJc3BpbiA9IF9fc3Bpbl9wb2xsKGdlbV9mZCwgMCwgZTJyaW5nKGdlbV9mZCwgZSkpOwog CiAJCXZhbFtpKytdID0gSTkxNV9QTVVfRU5HSU5FX0JVU1koZS0+Y2xhc3MsIGUtPmluc3RhbmNl KTsKIAl9CkBAIC01MTksNiArNTc1LDkgQEAgYWxsX2J1c3lfY2hlY2tfYWxsKGludCBnZW1fZmQs IGNvbnN0IHVuc2lnbmVkIGludCBudW1fZW5naW5lcywKIAlmb3IgKGkgPSAwOyBpIDwgbnVtX2Vu Z2luZXM7IGkrKykKIAkJZmRbaV0gPSBvcGVuX2dyb3VwKHZhbFtpXSwgZmRbMF0pOwogCisJLyog U21hbGwgZGVsYXkgdG8gYWxsb3cgZW5naW5lcyB0byBzdGFydC4gKi8KKwl1c2xlZXAoX19zcGlu X3dhaXQoZ2VtX2ZkLCBzcGluKSAqIG51bV9lbmdpbmVzIC8gMWUzKTsKKwogCXBtdV9yZWFkX211 bHRpKGZkWzBdLCBudW1fZW5naW5lcywgdHZhbFswXSk7CiAJc2xlcHQgPSBtZWFzdXJlZF91c2xl ZXAoYmF0Y2hfZHVyYXRpb25fbnMgLyAxMDAwKTsKIAlpZiAoZmxhZ3MgJiBURVNUX1RSQUlMSU5H X0lETEUpCkBAIC01NTAsNyArNjA5LDcgQEAgbm9fc2VtYShpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1 Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsIHVuc2lnbmVkIGludCBmbGFncykKIAlvcGVu X2dyb3VwKEk5MTVfUE1VX0VOR0lORV9XQUlUKGUtPmNsYXNzLCBlLT5pbnN0YW5jZSksIGZkKTsK IAogCWlmIChmbGFncyAmIFRFU1RfQlVTWSkKLQkJc3BpbiA9IGlndF9zcGluX2JhdGNoX25ldyhn ZW1fZmQsIDAsIGUycmluZyhnZW1fZmQsIGUpLCAwKTsKKwkJc3BpbiA9IHNwaW5fc3luYyhnZW1f ZmQsIDAsIGUycmluZyhnZW1fZmQsIGUpKTsKIAllbHNlCiAJCXNwaW4gPSBOVUxMOwogCkBAIC04 ODQsNyArOTQzLDcgQEAgbXVsdGlfY2xpZW50KGludCBnZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRl bF9leGVjdXRpb25fZW5naW5lMiAqZSkKIAkgKi8KIAlmZFsxXSA9IG9wZW5fcG11KGNvbmZpZyk7 CiAKLQlzcGluID0gaWd0X3NwaW5fYmF0Y2hfbmV3KGdlbV9mZCwgMCwgZTJyaW5nKGdlbV9mZCwg ZSksIDApOworCXNwaW4gPSBzcGluX3N5bmMoZ2VtX2ZkLCAwLCBlMnJpbmcoZ2VtX2ZkLCBlKSk7 CiAKIAl2YWxbMF0gPSB2YWxbMV0gPSBfX3BtdV9yZWFkX3NpbmdsZShmZFswXSwgJnRzWzBdKTsK IAlzbGVwdFsxXSA9IG1lYXN1cmVkX3VzbGVlcChiYXRjaF9kdXJhdGlvbl9ucyAvIDEwMDApOwpA QCAtMTI0OCw3ICsxMzA3LDcgQEAgdGVzdF9mcmVxdWVuY3koaW50IGdlbV9mZCkKIAlpZ3RfcmVx dWlyZShpZ3Rfc3lzZnNfZ2V0X3UzMihzeXNmcywgImd0X2Jvb3N0X2ZyZXFfbWh6IikgPT0gbWlu X2ZyZXEpOwogCiAJZ2VtX3F1aWVzY2VudF9ncHUoZ2VtX2ZkKTsgLyogSWRsZSB0byBiZSBzdXJl IHRoZSBjaGFuZ2UgdGFrZXMgZWZmZWN0ICovCi0Jc3BpbiA9IGlndF9zcGluX2JhdGNoX25ldyhn ZW1fZmQsIDAsIEk5MTVfRVhFQ19SRU5ERVIsIDApOworCXNwaW4gPSBzcGluX3N5bmMoZ2VtX2Zk LCAwLCBJOTE1X0VYRUNfUkVOREVSKTsKIAogCXNsZXB0ID0gcG11X3JlYWRfbXVsdGkoZmQsIDIs IHN0YXJ0KTsKIAltZWFzdXJlZF91c2xlZXAoYmF0Y2hfZHVyYXRpb25fbnMgLyAxMDAwKTsKQEAg LTEyNzQsNyArMTMzMyw3IEBAIHRlc3RfZnJlcXVlbmN5KGludCBnZW1fZmQpCiAJaWd0X3JlcXVp cmUoaWd0X3N5c2ZzX2dldF91MzIoc3lzZnMsICJndF9taW5fZnJlcV9taHoiKSA9PSBtYXhfZnJl cSk7CiAKIAlnZW1fcXVpZXNjZW50X2dwdShnZW1fZmQpOwotCXNwaW4gPSBpZ3Rfc3Bpbl9iYXRj aF9uZXcoZ2VtX2ZkLCAwLCBJOTE1X0VYRUNfUkVOREVSLCAwKTsKKwlzcGluID0gc3Bpbl9zeW5j KGdlbV9mZCwgMCwgSTkxNV9FWEVDX1JFTkRFUik7CiAKIAlzbGVwdCA9IHBtdV9yZWFkX211bHRp KGZkLCAyLCBzdGFydCk7CiAJbWVhc3VyZWRfdXNsZWVwKGJhdGNoX2R1cmF0aW9uX25zIC8gMTAw MCk7CkBAIC0xNTE3LDcgKzE1NzYsNiBAQCBhY2N1cmFjeShpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1 Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsCiAJCWNvbnN0IHVuc2lnbmVkIGxvbmcgdGlt ZW91dFtdID0gewogCQkJcHdtX2NhbGlicmF0aW9uX3VzICogMTAwMCwgdGVzdF91cyAqIDEwMDAK IAkJfTsKLQkJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgb2JqID0ge307CiAJCXVp bnQ2NF90IHRvdGFsX2J1c3lfbnMgPSAwLCB0b3RhbF9pZGxlX25zID0gMDsKIAkJaWd0X3NwaW5f dCAqc3BpbjsKIAkJaW50IHJldDsKQEAgLTE1MzEsMTEgKzE1ODksOCBAQCBhY2N1cmFjeShpbnQg Z2VtX2ZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsCiAKIAkJLyog QWxsb2NhdGUgb3VyIHNwaW4gYmF0Y2ggYW5kIGlkbGUgaXQuICovCiAJCXNwaW4gPSBpZ3Rfc3Bp bl9iYXRjaF9uZXcoZ2VtX2ZkLCAwLCBlMnJpbmcoZ2VtX2ZkLCBlKSwgMCk7Ci0JCW9iai5oYW5k bGUgPSBzcGluLT5oYW5kbGU7Ci0JCV9fc3VibWl0X3NwaW5fYmF0Y2goZ2VtX2ZkLCAmb2JqLCBl KTsgLyogcmVjb3JkIGl0cyBsb2NhdGlvbiAqLwogCQlpZ3Rfc3Bpbl9iYXRjaF9lbmQoc3Bpbik7 Ci0JCWdlbV9zeW5jKGdlbV9mZCwgb2JqLmhhbmRsZSk7Ci0JCW9iai5mbGFncyB8PSBFWEVDX09C SkVDVF9QSU5ORUQ7CisJCWdlbV9zeW5jKGdlbV9mZCwgc3Bpbi0+aGFuZGxlKTsKIAogCQkvKiAx c3QgcGFzcyBpcyBjYWxpYnJhdGlvbiwgc2Vjb25kIHBhc3MgaXMgdGhlIHRlc3QuICovCiAJCWZv ciAoaW50IHBhc3MgPSAwOyBwYXNzIDwgQVJSQVlfU0laRSh0aW1lb3V0KTsgcGFzcysrKSB7CkBA IC0xNTQ5LDcgKzE2MDQsNyBAQCBhY2N1cmFjeShpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1Y3QgaW50 ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsCiAKIAkJCQkvKiBSZXN0YXJ0IHRoZSBzcGluYmF0Y2gu ICovCiAJCQkJX19yZWFybV9zcGluX2JhdGNoKHNwaW4pOwotCQkJCV9fc3VibWl0X3NwaW5fYmF0 Y2goZ2VtX2ZkLCAmb2JqLCBlKTsKKwkJCQlfX3N1Ym1pdF9zcGluX2JhdGNoKGdlbV9mZCwgc3Bp biwgZSwgMCk7CiAKIAkJCQkvKgogCQkJCSAqIE5vdGUgdGhhdCB0aGUgc3VibWlzc2lvbiBtYXkg YmUgZGVsYXllZCB0byBhCkBAIC0xNTU5LDcgKzE2MTQsNyBAQCBhY2N1cmFjeShpbnQgZ2VtX2Zk LCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsCiAKIAkJCQl0X2J1c3kg PSBtZWFzdXJlZF91c2xlZXAoYnVzeV91cyk7CiAJCQkJaWd0X3NwaW5fYmF0Y2hfZW5kKHNwaW4p OwotCQkJCWdlbV9zeW5jKGdlbV9mZCwgb2JqLmhhbmRsZSk7CisJCQkJZ2VtX3N5bmMoZ2VtX2Zk LCBzcGluLT5oYW5kbGUpOwogCiAJCQkJdG90YWxfYnVzeV9ucyArPSB0X2J1c3k7CiAKLS0gCjIu MTQuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 13E646EBE8 for ; Thu, 22 Mar 2018 11:17:30 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id l9so15240778wmh.2 for ; Thu, 22 Mar 2018 04:17:30 -0700 (PDT) From: Tvrtko Ursulin Date: Thu, 22 Mar 2018 11:17:12 +0000 Message-Id: <20180322111712.9056-3-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20180322111712.9056-1-tvrtko.ursulin@linux.intel.com> References: <20180322111712.9056-1-tvrtko.ursulin@linux.intel.com> Subject: [igt-dev] [PATCH i-g-t 3/3] tests/perf_pmu: Improve accuracy by waiting on spinner to start List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org, Tvrtko Ursulin List-ID: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCk1vcmUgdGhh biBvbmUgdGVzdCBhc3N1bWVzIHRoYXQgdGhlIHNwaW5uZXIgaXMgcnVubmluZyBwcmV0dHkgbXVj aAppbW1lZGlhdGVseSBhZnRlciB3ZSBoYXZlIGNyZWF0ZSBvciBzdWJtaXR0ZWQgaXQuCgpJbiBh Y3R1YWxpdHkgdGhlcmUgaXMgYSB2YXJpYWJsZSBkZWxheSwgZXNwZWNpYWxseSBvbiBleGVjbGlz dHMgcGxhdGZvcm1zLApiZXR3ZWVuIHN1Ym1pc3Npb24gYW5kIHNwaW4gYmF0Y2ggc3RhcnRpbmcg dG8gcnVuIG9uIHRoZSBoYXJkd2FyZS4KClRvIGVuYWJsZSB0ZXN0cyB3aGljaCBjYXJlIGFib3V0 IHRoaXMgbGV2ZWwgb2YgdGltaW5nIHRvIGFjY291bnQgZm9yIHRoaXMsCndlIGFkZCBhIG5ldyBz cGluIGJhdGNoIGNvbnN0cnVjdG9yIHdoaWNoIHByb3ZpZGVzIGFuIG91dHB1dCBmaWVsZCB3aGlj aApjYW4gYmUgcG9sbGVkIHRvIGRldGVybWluZSB3aGVuIHRoZSBiYXRjaCBhY3R1YWxseSBzdGFy dGVkIHJ1bm5pbmcuCgpUaGlzIGlzIGltcGxlbWVudGVkIHZpYSBNSV9TVE9SRURXX0lNTSBmcm9t IHRoZSBzcGluIGJhdGNoLCB3cml0aW5nIGludG8KbWVtb3J5IG1hcHBlZCBwYWdlIHNoYXJlZCB3 aXRoIHVzZXJzcGFjZS4KClVzaW5nIHRoaXMgZmFjaWxpdHkgZnJvbSBwZXJmX3BtdSwgd2hlcmUg YXBwbGljYWJsZSwgc2hvdWxkIGltcHJvdmUgdmVyeQpvY2Nhc2lvbmFsIHRlc3QgZmFpbHMgYWNy b3NzIHRoZSBzZXQgYW5kIHBsYXRmb3Jtcy4KCnYyOgogQ2hyaXMgV2lsc29uOgogKiBVc2UgY2Fj aGluZyBtYXBwaW5nIGlmIGF2YWlsYWJsZS4KICogSGFuZGxlIG9sZCBnZW5zIGJldHRlci4KICog VXNlIGdlbV9jYW5fc3RvcmVfZHdvcmQuCiAqIENhY2hlIGV4ZWMgb2JqIGFycmF5IGluIHNwaW5f YmF0Y2hfdCBmb3IgZWFzaWVyIHJlc3VibWl0LgoKdjM6CiAqIEZvcmdvdCBJOTE1X0VYRUNfTk9f UkVMT0MuIChDaHJpcyBXaWxzb24pCgp2NDoKICogTWFzayBvdXQgYWxsIG5vbi1lbmdpbmUgZmxh Z3MgaW4gZ2VtX2Nhbl9zdG9yZV9kd29yZC4KICogQWRkZWQgc29tZSBkZWJ1ZyBsb2dnaW5nLgoK djU6CiAqIEZpeCByZWxvY3MgYW5kIGJhdGNoIG11bm1hcC4gKENocmlzKQogKiBBZGRlZCBhc3Nl cnQgaWRsZSBzcGlubmVyIGJhdGNoIGxvb2tzIGFzIGV4cGVjdGVkLgoKdjY6CiAqIFNraXAgYWNj dXJhY3kgdGVzdHMgd2hlbiAhZ2VtX2Nhbl9zdG9yZV9kd29yZC4KCnY3OgogKiBGaXggYmF0Y2gg cmVjdXJzaW9uIHJlbG9jIGFkZHJlc3MuCgp2ODoKIENocmlzIFdpbHNvbjoKICogUHVsbCB1cCBn ZW1fY2FuX3N0b3JlX2R3b3JkIGNoZWNrIGJlZm9yZSB3ZSBzdGFydCBzdWJtaXR0aW5nLgogKiBC dWlsZCBzcGlubmVyIGJhdGNoIGluIGEgd2F5IHdlIGNhbiBza2lwIHN0b3JlIGR3b3JkIHdoZW4g bm90CiAgIG5lZWRlZCBzbyB3ZSBjYW4gcnVuIG9uIFNhbmR5QnJpZGdlLgoKdjk6CiAqIEZpeCB3 YWl0IG9uIHNwaW5uZXIuCiAqIE1vcmUgdHdlYWtzIHRvIGFjY3VyYWN5IHRlc3QuCgp2MTA6CiAq IERyb3BwZWQgYWNjdXJhY3kgc3VidGVzdCBjaGFuZ2VzIGR1ZSBwcm9ibGVtcyB3aXRoIFJUIHRo cmVhZCBhbmQKICAgdGFza2xldCBzdWJtaXNzaW9uLgoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVy c3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KU3VnZ2VzdGVkLWJ5OiBDaHJpcyBXaWxz b24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KUmV2aWV3ZWQtYnk6IENocmlzIFdpbHNvbiA8 Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPiAjIHY5Ci0tLQogdGVzdHMvcGVyZl9wbXUuYyB8IDE1 MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3Rlc3RzL3BlcmZfcG11LmMgYi90ZXN0cy9wZXJmX3BtdS5jCmluZGV4IDE5ZmNj OTVmZmM3Zi4uMjAzZmU0ODk1NWE4IDEwMDY0NAotLS0gYS90ZXN0cy9wZXJmX3BtdS5jCisrKyBi L3Rlc3RzL3BlcmZfcG11LmMKQEAgLTE3MCw2ICsxNzAsNTYgQEAgc3RhdGljIHVuc2lnbmVkIGlu dCBlMnJpbmcoaW50IGdlbV9mZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUy ICplKQogI2RlZmluZSBGTEFHX0xPTkcgKDE2KQogI2RlZmluZSBGTEFHX0hBTkcgKDMyKQogCitz dGF0aWMgaWd0X3NwaW5fdCAqIF9fc3Bpbl9wb2xsKGludCBmZCwgdWludDMyX3QgY3R4LCB1bnNp Z25lZCBsb25nIGZsYWdzKQoreworCWlmIChnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBmbGFncykp CisJCXJldHVybiBfX2lndF9zcGluX2JhdGNoX25ld19wb2xsKGZkLCBjdHgsIGZsYWdzKTsKKwll bHNlCisJCXJldHVybiBfX2lndF9zcGluX2JhdGNoX25ldyhmZCwgY3R4LCBmbGFncywgMCk7Cit9 CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9fc3Bpbl93YWl0KGludCBmZCwgaWd0X3NwaW5fdCAq c3BpbikKK3sKKwlzdHJ1Y3QgdGltZXNwZWMgc3RhcnQgPSB7IH07CisKKwlpZ3RfbnNlY19lbGFw c2VkKCZzdGFydCk7CisKKwlpZiAoc3Bpbi0+cnVubmluZykgeworCQl1bnNpZ25lZCBsb25nIHRp bWVvdXQgPSAwOworCisJCXdoaWxlICghKigodm9sYXRpbGUgYm9vbCAqKXNwaW4tPnJ1bm5pbmcp KSB7CisJCQl1bnNpZ25lZCBsb25nIHQgPSBpZ3RfbnNlY19lbGFwc2VkKCZzdGFydCk7CisKKwkJ CWlmICgodCAtIHRpbWVvdXQpID4gMjUwZTYpIHsKKwkJCQl0aW1lb3V0ID0gdDsKKwkJCQlpZ3Rf d2FybigiU3Bpbm5lciBub3QgcnVubmluZyBhZnRlciAlLjJmbXNcbiIsCisJCQkJCSAoZG91Ymxl KXQgLyAxZTYpOworCQkJfQorCQl9CisJfSBlbHNlIHsKKwkJaWd0X2RlYnVnKCJfX3NwaW5fd2Fp dCAtIHVzbGVlcCBtb2RlXG4iKTsKKwkJdXNsZWVwKDUwMGUzKTsgLyogQmV0dGVyIHRoYW4gbm90 aGluZyEgKi8KKwl9CisKKwlyZXR1cm4gaWd0X25zZWNfZWxhcHNlZCgmc3RhcnQpOworfQorCitz dGF0aWMgaWd0X3NwaW5fdCAqIF9fc3Bpbl9zeW5jKGludCBmZCwgdWludDMyX3QgY3R4LCB1bnNp Z25lZCBsb25nIGZsYWdzKQoreworCWlndF9zcGluX3QgKnNwaW4gPSBfX3NwaW5fcG9sbChmZCwg Y3R4LCBmbGFncyk7CisKKwlfX3NwaW5fd2FpdChmZCwgc3Bpbik7CisKKwlyZXR1cm4gc3BpbjsK K30KKworc3RhdGljIGlndF9zcGluX3QgKiBzcGluX3N5bmMoaW50IGZkLCB1aW50MzJfdCBjdHgs IHVuc2lnbmVkIGxvbmcgZmxhZ3MpCit7CisJaWd0X3JlcXVpcmVfZ2VtKGZkKTsKKworCXJldHVy biBfX3NwaW5fc3luYyhmZCwgY3R4LCBmbGFncyk7Cit9CisKIHN0YXRpYyB2b2lkIGVuZF9zcGlu KGludCBmZCwgaWd0X3NwaW5fdCAqc3BpbiwgdW5zaWduZWQgaW50IGZsYWdzKQogewogCWlmICgh c3BpbikKQEAgLTE4MCw4ICsyMzAsMjUgQEAgc3RhdGljIHZvaWQgZW5kX3NwaW4oaW50IGZkLCBp Z3Rfc3Bpbl90ICpzcGluLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAJaWYgKGZsYWdzICYgRkxBR19T WU5DKQogCQlnZW1fc3luYyhmZCwgc3Bpbi0+aGFuZGxlKTsKIAotCWlmIChmbGFncyAmIFRFU1Rf VFJBSUxJTkdfSURMRSkKLQkJdXNsZWVwKGJhdGNoX2R1cmF0aW9uX25zIC8gNTAwMCk7CisJaWYg KGZsYWdzICYgVEVTVF9UUkFJTElOR19JRExFKSB7CisJCXVuc2lnbmVkIGxvbmcgdCwgdGltZW91 dCA9IDA7CisJCXN0cnVjdCB0aW1lc3BlYyBzdGFydCA9IHsgfTsKKworCQlpZ3RfbnNlY19lbGFw c2VkKCZzdGFydCk7CisKKwkJZG8geworCQkJdCA9IGlndF9uc2VjX2VsYXBzZWQoJnN0YXJ0KTsK KworCQkJaWYgKGdlbV9ib19idXN5KGZkLCBzcGluLT5oYW5kbGUpICYmCisJCQkgICAgKHQgLSB0 aW1lb3V0KSA+IDEwZTYpIHsKKwkJCQl0aW1lb3V0ID0gdDsKKwkJCQlpZ3Rfd2FybigiU3Bpbm5l ciBub3QgaWRsZSBhZnRlciAlLjJmbXNcbiIsCisJCQkJCSAoZG91YmxlKXQgLyAxZTYpOworCQkJ fQorCisJCQl1c2xlZXAoMWUzKTsKKwkJfSB3aGlsZSAodCA8IGJhdGNoX2R1cmF0aW9uX25zIC8g NSk7CisJfQogfQogCiBzdGF0aWMgdm9pZApAQCAtMTk1LDcgKzI2Miw3IEBAIHNpbmdsZShpbnQg Z2VtX2ZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsIHVuc2lnbmVk IGludCBmbGFncykKIAlmZCA9IG9wZW5fcG11KEk5MTVfUE1VX0VOR0lORV9CVVNZKGUtPmNsYXNz LCBlLT5pbnN0YW5jZSkpOwogCiAJaWYgKGZsYWdzICYgVEVTVF9CVVNZKQotCQlzcGluID0gaWd0 X3NwaW5fYmF0Y2hfbmV3KGdlbV9mZCwgMCwgZTJyaW5nKGdlbV9mZCwgZSksIDApOworCQlzcGlu ID0gc3Bpbl9zeW5jKGdlbV9mZCwgMCwgZTJyaW5nKGdlbV9mZCwgZSkpOwogCWVsc2UKIAkJc3Bp biA9IE5VTEw7CiAKQEAgLTI1MSwxMyArMzE4LDcgQEAgYnVzeV9zdGFydChpbnQgZ2VtX2ZkLCBj b25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUpCiAJICovCiAJc2xlZXAoMik7 CiAKLQlzcGluID0gX19pZ3Rfc3Bpbl9iYXRjaF9uZXcoZ2VtX2ZkLCAwLCBlMnJpbmcoZ2VtX2Zk LCBlKSwgMCk7Ci0KLQkvKgotCSAqIFNsZWVwIGZvciBhIGJpdCBhZnRlciBtYWtpbmcgdGhlIGVu Z2luZSBidXN5IHRvIG1ha2Ugc3VyZSB0aGUgUE1VCi0JICogZ2V0cyBlbmFibGVkIHdoZW4gdGhl IGJhdGNoIGlzIGFscmVhZHkgcnVubmluZy4KLQkgKi8KLQl1c2xlZXAoNTAwZTMpOworCXNwaW4g PSBfX3NwaW5fc3luYyhnZW1fZmQsIDAsIGUycmluZyhnZW1fZmQsIGUpKTsKIAogCWZkID0gb3Bl bl9wbXUoSTkxNV9QTVVfRU5HSU5FX0JVU1koZS0+Y2xhc3MsIGUtPmluc3RhbmNlKSk7CiAKQEAg LTMwMCw3ICszNjEsNyBAQCBidXN5X2RvdWJsZV9zdGFydChpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1 Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUpCiAJICogcmUtc3VibWlzc2lvbiBpbiBleGVj bGlzdHMgbW9kZS4gTWFrZSBzdXJlIGJ1c3luZXNzIGlzIGNvcnJlY3RseQogCSAqIHJlcG9ydGVk IHdpdGggdGhlIGVuZ2luZSBidXN5LCBhbmQgYWZ0ZXIgdGhlIGVuZ2luZSB3ZW50IGlkbGUuCiAJ ICovCi0Jc3BpblswXSA9IF9faWd0X3NwaW5fYmF0Y2hfbmV3KGdlbV9mZCwgMCwgZTJyaW5nKGdl bV9mZCwgZSksIDApOworCXNwaW5bMF0gPSBfX3NwaW5fc3luYyhnZW1fZmQsIDAsIGUycmluZyhn ZW1fZmQsIGUpKTsKIAl1c2xlZXAoNTAwZTMpOwogCXNwaW5bMV0gPSBfX2lndF9zcGluX2JhdGNo X25ldyhnZW1fZmQsIGN0eCwgZTJyaW5nKGdlbV9mZCwgZSksIDApOwogCkBAIC0zODYsNyArNDQ3 LDcgQEAgYnVzeV9jaGVja19hbGwoaW50IGdlbV9mZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1 dGlvbl9lbmdpbmUyICplLAogCiAJaWd0X2Fzc2VydF9lcShpLCBudW1fZW5naW5lcyk7CiAKLQlz cGluID0gaWd0X3NwaW5fYmF0Y2hfbmV3KGdlbV9mZCwgMCwgZTJyaW5nKGdlbV9mZCwgZSksIDAp OworCXNwaW4gPSBzcGluX3N5bmMoZ2VtX2ZkLCAwLCBlMnJpbmcoZ2VtX2ZkLCBlKSk7CiAJcG11 X3JlYWRfbXVsdGkoZmRbMF0sIG51bV9lbmdpbmVzLCB0dmFsWzBdKTsKIAlzbGVwdCA9IG1lYXN1 cmVkX3VzbGVlcChiYXRjaF9kdXJhdGlvbl9ucyAvIDEwMDApOwogCWlmIChmbGFncyAmIFRFU1Rf VFJBSUxJTkdfSURMRSkKQEAgLTQxMiwxNSArNDczLDE1IEBAIGJ1c3lfY2hlY2tfYWxsKGludCBn ZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwKIH0KIAogc3Rh dGljIHZvaWQKLV9fc3VibWl0X3NwaW5fYmF0Y2goaW50IGdlbV9mZCwKLQkJICAgIHN0cnVjdCBk cm1faTkxNV9nZW1fZXhlY19vYmplY3QyICpvYmosCi0JCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxf ZXhlY3V0aW9uX2VuZ2luZTIgKmUpCitfX3N1Ym1pdF9zcGluX2JhdGNoKGludCBnZW1fZmQsIGln dF9zcGluX3QgKnNwaW4sCisJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2lu ZTIgKmUsCisJCSAgICBpbnQgb2Zmc2V0KQogewotCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1 ZmZlcjIgZWIgPSB7Ci0JCS5idWZmZXJfY291bnQgPSAxLAotCQkuYnVmZmVyc19wdHIgPSB0b191 c2VyX3BvaW50ZXIob2JqKSwKLQkJLmZsYWdzID0gZTJyaW5nKGdlbV9mZCwgZSksCi0JfTsKKwlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGViID0gc3Bpbi0+ZXhlY2J1ZjsKKworCWVi LmZsYWdzICY9IH4oMHgzZiB8IEk5MTVfRVhFQ19CU0RfTUFTSyk7CisJZWIuZmxhZ3MgfD0gZTJy aW5nKGdlbV9mZCwgZSkgfCBJOTE1X0VYRUNfTk9fUkVMT0M7CisJZWIuYmF0Y2hfc3RhcnRfb2Zm c2V0ICs9IG9mZnNldDsKIAogCWdlbV9leGVjYnVmKGdlbV9mZCwgJmViKTsKIH0KQEAgLTQyOSw3 ICs0OTAsNiBAQCBzdGF0aWMgdm9pZAogbW9zdF9idXN5X2NoZWNrX2FsbChpbnQgZ2VtX2ZkLCBj b25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsCiAJCSAgICBjb25zdCB1bnNp Z25lZCBpbnQgbnVtX2VuZ2luZXMsIHVuc2lnbmVkIGludCBmbGFncykKIHsKLQlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBvYmogPSB7fTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfZXhl Y3V0aW9uX2VuZ2luZTIgKmVfOwogCXVpbnQ2NF90IHR2YWxbMl1bbnVtX2VuZ2luZXNdOwogCXVp bnQ2NF90IHZhbFtudW1fZW5naW5lc107CkBAIC00NDMsMTUgKzUwMywxMiBAQCBtb3N0X2J1c3lf Y2hlY2tfYWxsKGludCBnZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5l MiAqZSwKIAkJaWYgKCFnZW1faGFzX2VuZ2luZShnZW1fZmQsIGVfLT5jbGFzcywgZV8tPmluc3Rh bmNlKSkKIAkJCWNvbnRpbnVlOwogCi0JCWlmIChlID09IGVfKSB7CisJCWlmIChlID09IGVfKQog CQkJaWRsZV9pZHggPSBpOwotCQl9IGVsc2UgaWYgKHNwaW4pIHsKLQkJCV9fc3VibWl0X3NwaW5f YmF0Y2goZ2VtX2ZkLCAmb2JqLCBlXyk7Ci0JCX0gZWxzZSB7Ci0JCQlzcGluID0gaWd0X3NwaW5f YmF0Y2hfbmV3KGdlbV9mZCwgMCwKLQkJCQkJCSAgZTJyaW5nKGdlbV9mZCwgZV8pLCAwKTsKLQkJ CW9iai5oYW5kbGUgPSBzcGluLT5oYW5kbGU7Ci0JCX0KKwkJZWxzZSBpZiAoc3BpbikKKwkJCV9f c3VibWl0X3NwaW5fYmF0Y2goZ2VtX2ZkLCBzcGluLCBlXywgNjQpOworCQllbHNlCisJCQlzcGlu ID0gX19zcGluX3BvbGwoZ2VtX2ZkLCAwLCBlMnJpbmcoZ2VtX2ZkLCBlXykpOwogCiAJCXZhbFtp KytdID0gSTkxNV9QTVVfRU5HSU5FX0JVU1koZV8tPmNsYXNzLCBlXy0+aW5zdGFuY2UpOwogCX0K QEAgLTQ2MSw2ICs1MTgsOSBAQCBtb3N0X2J1c3lfY2hlY2tfYWxsKGludCBnZW1fZmQsIGNvbnN0 IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwKIAlmb3IgKGkgPSAwOyBpIDwgbnVt X2VuZ2luZXM7IGkrKykKIAkJZmRbaV0gPSBvcGVuX2dyb3VwKHZhbFtpXSwgZmRbMF0pOwogCisJ LyogU21hbGwgZGVsYXkgdG8gYWxsb3cgZW5naW5lcyB0byBzdGFydC4gKi8KKwl1c2xlZXAoX19z cGluX3dhaXQoZ2VtX2ZkLCBzcGluKSAqIG51bV9lbmdpbmVzIC8gMWUzKTsKKwogCXBtdV9yZWFk X211bHRpKGZkWzBdLCBudW1fZW5naW5lcywgdHZhbFswXSk7CiAJc2xlcHQgPSBtZWFzdXJlZF91 c2xlZXAoYmF0Y2hfZHVyYXRpb25fbnMgLyAxMDAwKTsKIAlpZiAoZmxhZ3MgJiBURVNUX1RSQUlM SU5HX0lETEUpCkBAIC00ODksNyArNTQ5LDYgQEAgc3RhdGljIHZvaWQKIGFsbF9idXN5X2NoZWNr X2FsbChpbnQgZ2VtX2ZkLCBjb25zdCB1bnNpZ25lZCBpbnQgbnVtX2VuZ2luZXMsCiAJCSAgIHVu c2lnbmVkIGludCBmbGFncykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBv YmogPSB7fTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmU7CiAJdWlu dDY0X3QgdHZhbFsyXVtudW1fZW5naW5lc107CiAJdWludDY0X3QgdmFsW251bV9lbmdpbmVzXTsK QEAgLTUwMywxMyArNTYyLDEwIEBAIGFsbF9idXN5X2NoZWNrX2FsbChpbnQgZ2VtX2ZkLCBjb25z dCB1bnNpZ25lZCBpbnQgbnVtX2VuZ2luZXMsCiAJCWlmICghZ2VtX2hhc19lbmdpbmUoZ2VtX2Zk LCBlLT5jbGFzcywgZS0+aW5zdGFuY2UpKQogCQkJY29udGludWU7CiAKLQkJaWYgKHNwaW4pIHsK LQkJCV9fc3VibWl0X3NwaW5fYmF0Y2goZ2VtX2ZkLCAmb2JqLCBlKTsKLQkJfSBlbHNlIHsKLQkJ CXNwaW4gPSBpZ3Rfc3Bpbl9iYXRjaF9uZXcoZ2VtX2ZkLCAwLAotCQkJCQkJICBlMnJpbmcoZ2Vt X2ZkLCBlKSwgMCk7Ci0JCQlvYmouaGFuZGxlID0gc3Bpbi0+aGFuZGxlOwotCQl9CisJCWlmIChz cGluKQorCQkJX19zdWJtaXRfc3Bpbl9iYXRjaChnZW1fZmQsIHNwaW4sIGUsIDY0KTsKKwkJZWxz ZQorCQkJc3BpbiA9IF9fc3Bpbl9wb2xsKGdlbV9mZCwgMCwgZTJyaW5nKGdlbV9mZCwgZSkpOwog CiAJCXZhbFtpKytdID0gSTkxNV9QTVVfRU5HSU5FX0JVU1koZS0+Y2xhc3MsIGUtPmluc3RhbmNl KTsKIAl9CkBAIC01MTksNiArNTc1LDkgQEAgYWxsX2J1c3lfY2hlY2tfYWxsKGludCBnZW1fZmQs IGNvbnN0IHVuc2lnbmVkIGludCBudW1fZW5naW5lcywKIAlmb3IgKGkgPSAwOyBpIDwgbnVtX2Vu Z2luZXM7IGkrKykKIAkJZmRbaV0gPSBvcGVuX2dyb3VwKHZhbFtpXSwgZmRbMF0pOwogCisJLyog U21hbGwgZGVsYXkgdG8gYWxsb3cgZW5naW5lcyB0byBzdGFydC4gKi8KKwl1c2xlZXAoX19zcGlu X3dhaXQoZ2VtX2ZkLCBzcGluKSAqIG51bV9lbmdpbmVzIC8gMWUzKTsKKwogCXBtdV9yZWFkX211 bHRpKGZkWzBdLCBudW1fZW5naW5lcywgdHZhbFswXSk7CiAJc2xlcHQgPSBtZWFzdXJlZF91c2xl ZXAoYmF0Y2hfZHVyYXRpb25fbnMgLyAxMDAwKTsKIAlpZiAoZmxhZ3MgJiBURVNUX1RSQUlMSU5H X0lETEUpCkBAIC01NTAsNyArNjA5LDcgQEAgbm9fc2VtYShpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1 Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsIHVuc2lnbmVkIGludCBmbGFncykKIAlvcGVu X2dyb3VwKEk5MTVfUE1VX0VOR0lORV9XQUlUKGUtPmNsYXNzLCBlLT5pbnN0YW5jZSksIGZkKTsK IAogCWlmIChmbGFncyAmIFRFU1RfQlVTWSkKLQkJc3BpbiA9IGlndF9zcGluX2JhdGNoX25ldyhn ZW1fZmQsIDAsIGUycmluZyhnZW1fZmQsIGUpLCAwKTsKKwkJc3BpbiA9IHNwaW5fc3luYyhnZW1f ZmQsIDAsIGUycmluZyhnZW1fZmQsIGUpKTsKIAllbHNlCiAJCXNwaW4gPSBOVUxMOwogCkBAIC04 ODQsNyArOTQzLDcgQEAgbXVsdGlfY2xpZW50KGludCBnZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRl bF9leGVjdXRpb25fZW5naW5lMiAqZSkKIAkgKi8KIAlmZFsxXSA9IG9wZW5fcG11KGNvbmZpZyk7 CiAKLQlzcGluID0gaWd0X3NwaW5fYmF0Y2hfbmV3KGdlbV9mZCwgMCwgZTJyaW5nKGdlbV9mZCwg ZSksIDApOworCXNwaW4gPSBzcGluX3N5bmMoZ2VtX2ZkLCAwLCBlMnJpbmcoZ2VtX2ZkLCBlKSk7 CiAKIAl2YWxbMF0gPSB2YWxbMV0gPSBfX3BtdV9yZWFkX3NpbmdsZShmZFswXSwgJnRzWzBdKTsK IAlzbGVwdFsxXSA9IG1lYXN1cmVkX3VzbGVlcChiYXRjaF9kdXJhdGlvbl9ucyAvIDEwMDApOwpA QCAtMTI0OCw3ICsxMzA3LDcgQEAgdGVzdF9mcmVxdWVuY3koaW50IGdlbV9mZCkKIAlpZ3RfcmVx dWlyZShpZ3Rfc3lzZnNfZ2V0X3UzMihzeXNmcywgImd0X2Jvb3N0X2ZyZXFfbWh6IikgPT0gbWlu X2ZyZXEpOwogCiAJZ2VtX3F1aWVzY2VudF9ncHUoZ2VtX2ZkKTsgLyogSWRsZSB0byBiZSBzdXJl IHRoZSBjaGFuZ2UgdGFrZXMgZWZmZWN0ICovCi0Jc3BpbiA9IGlndF9zcGluX2JhdGNoX25ldyhn ZW1fZmQsIDAsIEk5MTVfRVhFQ19SRU5ERVIsIDApOworCXNwaW4gPSBzcGluX3N5bmMoZ2VtX2Zk LCAwLCBJOTE1X0VYRUNfUkVOREVSKTsKIAogCXNsZXB0ID0gcG11X3JlYWRfbXVsdGkoZmQsIDIs IHN0YXJ0KTsKIAltZWFzdXJlZF91c2xlZXAoYmF0Y2hfZHVyYXRpb25fbnMgLyAxMDAwKTsKQEAg LTEyNzQsNyArMTMzMyw3IEBAIHRlc3RfZnJlcXVlbmN5KGludCBnZW1fZmQpCiAJaWd0X3JlcXVp cmUoaWd0X3N5c2ZzX2dldF91MzIoc3lzZnMsICJndF9taW5fZnJlcV9taHoiKSA9PSBtYXhfZnJl cSk7CiAKIAlnZW1fcXVpZXNjZW50X2dwdShnZW1fZmQpOwotCXNwaW4gPSBpZ3Rfc3Bpbl9iYXRj aF9uZXcoZ2VtX2ZkLCAwLCBJOTE1X0VYRUNfUkVOREVSLCAwKTsKKwlzcGluID0gc3Bpbl9zeW5j KGdlbV9mZCwgMCwgSTkxNV9FWEVDX1JFTkRFUik7CiAKIAlzbGVwdCA9IHBtdV9yZWFkX211bHRp KGZkLCAyLCBzdGFydCk7CiAJbWVhc3VyZWRfdXNsZWVwKGJhdGNoX2R1cmF0aW9uX25zIC8gMTAw MCk7CkBAIC0xNTE3LDcgKzE1NzYsNiBAQCBhY2N1cmFjeShpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1 Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsCiAJCWNvbnN0IHVuc2lnbmVkIGxvbmcgdGlt ZW91dFtdID0gewogCQkJcHdtX2NhbGlicmF0aW9uX3VzICogMTAwMCwgdGVzdF91cyAqIDEwMDAK IAkJfTsKLQkJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgb2JqID0ge307CiAJCXVp bnQ2NF90IHRvdGFsX2J1c3lfbnMgPSAwLCB0b3RhbF9pZGxlX25zID0gMDsKIAkJaWd0X3NwaW5f dCAqc3BpbjsKIAkJaW50IHJldDsKQEAgLTE1MzEsMTEgKzE1ODksOCBAQCBhY2N1cmFjeShpbnQg Z2VtX2ZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsCiAKIAkJLyog QWxsb2NhdGUgb3VyIHNwaW4gYmF0Y2ggYW5kIGlkbGUgaXQuICovCiAJCXNwaW4gPSBpZ3Rfc3Bp bl9iYXRjaF9uZXcoZ2VtX2ZkLCAwLCBlMnJpbmcoZ2VtX2ZkLCBlKSwgMCk7Ci0JCW9iai5oYW5k bGUgPSBzcGluLT5oYW5kbGU7Ci0JCV9fc3VibWl0X3NwaW5fYmF0Y2goZ2VtX2ZkLCAmb2JqLCBl KTsgLyogcmVjb3JkIGl0cyBsb2NhdGlvbiAqLwogCQlpZ3Rfc3Bpbl9iYXRjaF9lbmQoc3Bpbik7 Ci0JCWdlbV9zeW5jKGdlbV9mZCwgb2JqLmhhbmRsZSk7Ci0JCW9iai5mbGFncyB8PSBFWEVDX09C SkVDVF9QSU5ORUQ7CisJCWdlbV9zeW5jKGdlbV9mZCwgc3Bpbi0+aGFuZGxlKTsKIAogCQkvKiAx c3QgcGFzcyBpcyBjYWxpYnJhdGlvbiwgc2Vjb25kIHBhc3MgaXMgdGhlIHRlc3QuICovCiAJCWZv ciAoaW50IHBhc3MgPSAwOyBwYXNzIDwgQVJSQVlfU0laRSh0aW1lb3V0KTsgcGFzcysrKSB7CkBA IC0xNTQ5LDcgKzE2MDQsNyBAQCBhY2N1cmFjeShpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1Y3QgaW50 ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsCiAKIAkJCQkvKiBSZXN0YXJ0IHRoZSBzcGluYmF0Y2gu ICovCiAJCQkJX19yZWFybV9zcGluX2JhdGNoKHNwaW4pOwotCQkJCV9fc3VibWl0X3NwaW5fYmF0 Y2goZ2VtX2ZkLCAmb2JqLCBlKTsKKwkJCQlfX3N1Ym1pdF9zcGluX2JhdGNoKGdlbV9mZCwgc3Bp biwgZSwgMCk7CiAKIAkJCQkvKgogCQkJCSAqIE5vdGUgdGhhdCB0aGUgc3VibWlzc2lvbiBtYXkg YmUgZGVsYXllZCB0byBhCkBAIC0xNTU5LDcgKzE2MTQsNyBAQCBhY2N1cmFjeShpbnQgZ2VtX2Zk LCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsCiAKIAkJCQl0X2J1c3kg PSBtZWFzdXJlZF91c2xlZXAoYnVzeV91cyk7CiAJCQkJaWd0X3NwaW5fYmF0Y2hfZW5kKHNwaW4p OwotCQkJCWdlbV9zeW5jKGdlbV9mZCwgb2JqLmhhbmRsZSk7CisJCQkJZ2VtX3N5bmMoZ2VtX2Zk LCBzcGluLT5oYW5kbGUpOwogCiAJCQkJdG90YWxfYnVzeV9ucyArPSB0X2J1c3k7CiAKLS0gCjIu MTQuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0 LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==