From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH] drm/i915/pmu: Fix sleep under atomic in RC6 readout Date: Tue, 6 Feb 2018 14:31:07 +0000 Message-ID: <20180206143107.25786-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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 Cc: David Airlie , dri-devel@lists.freedesktop.org, Rodrigo Vivi , intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCldlIGFyZSBu b3QgYWxsb3dlZCB0byBjYWxsIGludGVsX3J1bnRpbWVfcG1fZ2V0IGZyb20gdGhlIFBNVSBjb3Vu dGVyIHJlYWQKY2FsbGJhY2sgc2luY2UgdGhlIGZvcm1lciBjYW4gc2xlZXAsIGFuZCB0aGUgbGF0 dGVyIGlzIHJ1bm5pbmcgdW5kZXIgSVJRCmNvbnRleHQuCgpUbyB3b3JrYXJvdW5kIHRoaXMsIHdl IHN0YXJ0IG91ciB0aW1lciB3aGVuIHdlIGRldGVjdCB0aGF0IHdlIGhhdmUgZmFpbGVkCnRvIG9i dGFpbiBhIHJ1bnRpbWUgUE0gcmVmZXJlbmNlIGR1cmluZyByZWFkLCBhbmQgYXBwcm94aW1hdGUg dGhlIGdyb3dpbmcKUkM2IGNvdW50ZXIgZnJvbSB0aGUgdGltZXIuCgpPbmNlIHRoZSB0aW1lciBt YW5hZ2VzIHRvIG9idGFpbiB0aGUgcnVudGltZSBQTSByZWZlcmVuY2UsIHdlIHN0b3AgdGhlCnRp bWVyIGFuZCBnbyBiYWNrIHRvIHRoZSBhYm92ZSBkZXNjcmliZWQgYmVoYXZpb3VyLgoKV2UgaGF2 ZSB0byBiZSBjYXJlZnVsIG5vdCB0byBvdmVyc2hvb3QgdGhlIFJDNiBlc3RpbWF0ZSwgc28gb25j ZSByZXN1bWVkCmFmdGVyIGEgcGVyaW9kIG9mIGFwcHJveGltYXRpb24sIHdlIG9ubHkgdXBkYXRl IHRoZSBjb3VudGVyIG9uY2UgaXQKY2F0Y2hlcyB1cC4gV2l0aCB0aGUgb2JzZXJ2YXRpb24gdGhh dCBSQzYgaXMgaW5jcmVhc2luZyB3aGlsZSB0aGUgZGV2aWNlCmlzIHN1c3BlbmRlZCwgdGhpcyBz aG91bGQgbm90IHBvc2UgYSBwcm9ibGVtIGFuZCBjYW4gb25seSBjYXVzZQpzbGlnaHQgaW5hY2N1 cmFjaWVzIGR1ZSBjbG9jayBiYXNlIGRpZmZlcmVuY2VzLgoKU2lnbmVkLW9mZi1ieTogVHZydGtv IFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KQnVnemlsbGE6IGh0dHBzOi8vYnVn cy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDk0MwpGaXhlczogNjA2MGI2YWVj MDNjICgiZHJtL2k5MTUvcG11OiBBZGQgUkM2IHJlc2lkZW5jeSBtZXRyaWNzIikKVGVzdGNhc2U6 IGlndC9wZXJmX3BtdS9yYzYtcnVudGltZS1wbQpDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51 cnN1bGluQGludGVsLmNvbT4KQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgpDYzogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgpDYzogSmFuaSBOaWt1bGEg PGphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFz LmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZp QGludGVsLmNvbT4KQ2M6IERhdmlkIEFpcmxpZSA8YWlybGllZEBsaW51eC5pZT4KQ2M6IGludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKQ2M6IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BtdS5jIHwgMTQ5ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcG11LmggfCAgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCAxMTQgaW5zZXJ0aW9ucygrKSwgMzYg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wbXUu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcG11LmMKaW5kZXggMWM0NDA0NjAyNTVkLi5k Y2E0MWMwNzJhN2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcG11LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wbXUuYwpAQCAtOTAsMjMgKzkwLDE2IEBA IHN0YXRpYyB1bnNpZ25lZCBpbnQgZXZlbnRfZW5hYmxlZF9iaXQoc3RydWN0IHBlcmZfZXZlbnQg KmV2ZW50KQogCXJldHVybiBjb25maWdfZW5hYmxlZF9iaXQoZXZlbnQtPmF0dHIuY29uZmlnKTsK IH0KIAotc3RhdGljIGJvb2wgcG11X25lZWRzX3RpbWVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1LCBib29sIGdwdV9hY3RpdmUpCitzdGF0aWMgYm9vbAorX19wbXVfbmVlZHNfdGltZXIo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHU2NCBlbmFibGUsIGJvb2wgZ3B1X2FjdGl2 ZSkKIHsKLQl1NjQgZW5hYmxlOwotCi0JLyoKLQkgKiBPbmx5IHNvbWUgY291bnRlcnMgbmVlZCB0 aGUgc2FtcGxpbmcgdGltZXIuCi0JICoKLQkgKiBXZSBzdGFydCB3aXRoIGEgYml0bWFzayBvZiBh bGwgY3VycmVudGx5IGVuYWJsZWQgZXZlbnRzLgotCSAqLwotCWVuYWJsZSA9IGk5MTUtPnBtdS5l bmFibGU7Ci0KIAkvKgotCSAqIE1hc2sgb3V0IGFsbCB0aGUgb25lcyB3aGljaCBkbyBub3QgbmVl ZCB0aGUgdGltZXIsIG9yIGluCisJICogTWFzayBvdXQgYWxsIGV2ZW50cyB3aGljaCBkbyBub3Qg bmVlZCB0aGUgdGltZXIsIG9yIGluCiAJICogb3RoZXIgd29yZHMga2VlcCBhbGwgdGhlIG9uZXMg dGhhdCBjb3VsZCBuZWVkIHRoZSB0aW1lci4KIAkgKi8KIAllbmFibGUgJj0gY29uZmlnX2VuYWJs ZWRfbWFzayhJOTE1X1BNVV9BQ1RVQUxfRlJFUVVFTkNZKSB8CiAJCSAgY29uZmlnX2VuYWJsZWRf bWFzayhJOTE1X1BNVV9SRVFVRVNURURfRlJFUVVFTkNZKSB8CisJCSAgY29uZmlnX2VuYWJsZWRf bWFzayhJOTE1X1BNVV9SQzZfUkVTSURFTkNZKSB8CiAJCSAgRU5HSU5FX1NBTVBMRV9NQVNLOwog CiAJLyoKQEAgLTEzMCw2ICsxMjMsMTEgQEAgc3RhdGljIGJvb2wgcG11X25lZWRzX3RpbWVyKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBib29sIGdwdV9hY3RpdmUpCiAJcmV0dXJuIGVu YWJsZTsKIH0KIAorc3RhdGljIGJvb2wgcG11X25lZWRzX3RpbWVyKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1LCBib29sIGdwdV9hY3RpdmUpCit7CisJcmV0dXJuIF9fcG11X25lZWRzX3Rp bWVyKGk5MTUsIGk5MTUtPnBtdS5lbmFibGUsIGdwdV9hY3RpdmUpOworfQorCiB2b2lkIGk5MTVf cG11X2d0X3BhcmtlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKIAlpZiAoIWk5 MTUtPnBtdS5iYXNlLmV2ZW50X2luaXQpCkBAIC0xODEsMjAgKzE3OSwyMCBAQCB1cGRhdGVfc2Ft cGxlKHN0cnVjdCBpOTE1X3BtdV9zYW1wbGUgKnNhbXBsZSwgdTMyIHVuaXQsIHUzMiB2YWwpCiAJ c2FtcGxlLT5jdXIgKz0gbXVsX3UzMl91MzIodmFsLCB1bml0KTsKIH0KIAotc3RhdGljIHZvaWQg ZW5naW5lc19zYW1wbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGlj IGJvb2wgZW5naW5lc19zYW1wbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog ewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAllbnVtIGludGVsX2VuZ2luZV9p ZCBpZDsKIAlib29sIGZ3ID0gZmFsc2U7CiAKIAlpZiAoKGRldl9wcml2LT5wbXUuZW5hYmxlICYg RU5HSU5FX1NBTVBMRV9NQVNLKSA9PSAwKQotCQlyZXR1cm47CisJCXJldHVybiBmYWxzZTsKIAog CWlmICghZGV2X3ByaXYtPmd0LmF3YWtlKQotCQlyZXR1cm47CisJCXJldHVybiBmYWxzZTsKIAog CWlmICghaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKGRldl9wcml2KSkKLQkJcmV0dXJu OworCQlyZXR1cm4gZmFsc2U7CiAKIAlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwg aWQpIHsKIAkJdTMyIGN1cnJlbnRfc2Vxbm8gPSBpbnRlbF9lbmdpbmVfZ2V0X3NlcW5vKGVuZ2lu ZSk7CkBAIC0yMjUsMTAgKzIyMyw1MSBAQCBzdGF0aWMgdm9pZCBlbmdpbmVzX3NhbXBsZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKGZ3KQogCQlpbnRlbF91bmNvcmVf Zm9yY2V3YWtlX3B1dChkZXZfcHJpdiwgRk9SQ0VXQUtFX0FMTCk7CiAKLQlpbnRlbF9ydW50aW1l X3BtX3B1dChkZXZfcHJpdik7CisJcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyB1NjQgcmVhZF9y YzZfcmVzaWRlbmN5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCXU2NCB2YWw7 CisKKwl2YWwgPSBpbnRlbF9yYzZfcmVzaWRlbmN5X25zKGk5MTUsIElTX1ZBTExFWVZJRVcoaTkx NSkgPworCQkJCQkgICBWTFZfR1RfUkVOREVSX1JDNiA6IEdFTjZfR1RfR0ZYX1JDNik7CisJaWYg KEhBU19SQzZwKGk5MTUpKQorCQl2YWwgKz0gaW50ZWxfcmM2X3Jlc2lkZW5jeV9ucyhpOTE1LCBH RU42X0dUX0dGWF9SQzZwKTsKKwlpZiAoSEFTX1JDNnBwKGk5MTUpKQorCQl2YWwgKz0gaW50ZWxf cmM2X3Jlc2lkZW5jeV9ucyhpOTE1LCBHRU42X0dUX0dGWF9SQzZwcCk7CisKKwlyZXR1cm4gdmFs OworfQorCitzdGF0aWMgdm9pZAordXBkYXRlX3JjNl9zYW1wbGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUsIHU2NCB2YWwsIGJvb2wgbG9ja2VkKQoreworCXVuc2lnbmVkIGxvbmcgZmxh Z3M7CisKKwlpZiAoIWxvY2tlZCkKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJmk5MTUtPnBtdS5sb2Nr LCBmbGFncyk7CisKKwkvKgorCSAqIFVwZGF0ZSBzdG9yZWQgUkM2IGNvdW50ZXIgb25seSBpZiBp dCBpcyBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQKKwkgKiB2YWx1ZS4gVGhpcyBkZWFscyB3aXRo IHBlcmlvZHMgb2YgcnVudGltZSBzdXNwZW5kIGR1cmluZyB3aGljaCB3ZSBhcmUKKwkgKiBlc3Rp bWF0aW5nIHRoZSBSQzYgcmVzaWRlbmN5LCBzbyBkbyBub3Qgd2FudCB0byBvdmVyc2hvb3QgdGhl IHJlYWwKKwkgKiB2YWx1ZSByZWFkIG9uY2UgdGhlIGRldmljZSBpcyB3b2tlbiB1cC4KKwkgKi8K KwlpZiAodmFsID4gaTkxNS0+cG11LnNhbXBsZVtfX0k5MTVfU0FNUExFX1JDNl0uY3VyKQorCQlp OTE1LT5wbXUuc2FtcGxlW19fSTkxNV9TQU1QTEVfUkM2XS5jdXIgPSB2YWw7CisKKwkvKiBXZSBk b24ndCBuZWVkIHRvIHNhbXBsZSBSQzYgZnJvbSB0aGUgdGltZXIgYW55IG1vcmUuICovCisJaTkx NS0+cG11LnRpbWVyX2VuYWJsZWQgPQorCQlfX3BtdV9uZWVkc190aW1lcihpOTE1LAorCQkJCSAg aTkxNS0+cG11LmVuYWJsZSAmIH5jb25maWdfZW5hYmxlZF9tYXNrKEk5MTVfUE1VX1JDNl9SRVNJ REVOQ1kpLAorCQkJCSAgUkVBRF9PTkNFKGk5MTUtPmd0LmF3YWtlKSk7CisKKwlpZiAoIWxvY2tl ZCkKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTkxNS0+cG11LmxvY2ssIGZsYWdzKTsKIH0K IAotc3RhdGljIHZvaWQgZnJlcXVlbmN5X3NhbXBsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCitzdGF0aWMgYm9vbCBvdGhlcnNfc2FtcGxlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgYm9vbCBwbSkKIHsKIAlpZiAoZGV2X3ByaXYtPnBtdS5lbmFibGUgJgog CSAgICBjb25maWdfZW5hYmxlZF9tYXNrKEk5MTVfUE1VX0FDVFVBTF9GUkVRVUVOQ1kpKSB7CkBA IC0yMzYsMTAgKzI3NSwxMCBAQCBzdGF0aWMgdm9pZCBmcmVxdWVuY3lfc2FtcGxlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogCQl2YWwgPSBkZXZfcHJpdi0+Z3RfcG0ucnBz LmN1cl9mcmVxOwogCQlpZiAoZGV2X3ByaXYtPmd0LmF3YWtlICYmCi0JCSAgICBpbnRlbF9ydW50 aW1lX3BtX2dldF9pZl9pbl91c2UoZGV2X3ByaXYpKSB7CisJCSAgICAocG0gfHwgaW50ZWxfcnVu dGltZV9wbV9nZXRfaWZfaW5fdXNlKGRldl9wcml2KSkpIHsKKwkJCXBtID0gdHJ1ZTsKIAkJCXZh bCA9IGludGVsX2dldF9jYWdmKGRldl9wcml2LAogCQkJCQkgICAgIEk5MTVfUkVBRF9OT1RSQUNF KEdFTjZfUlBTVEFUMSkpOwotCQkJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwogCQl9 CiAKIAkJdXBkYXRlX3NhbXBsZSgmZGV2X3ByaXYtPnBtdS5zYW1wbGVbX19JOTE1X1NBTVBMRV9G UkVRX0FDVF0sCkBAIC0yNTIsMTggKzI5MSw0OCBAQCBzdGF0aWMgdm9pZCBmcmVxdWVuY3lfc2Ft cGxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJCSAgICAgIGludGVsX2dw dV9mcmVxKGRldl9wcml2LAogCQkJCQkgICAgIGRldl9wcml2LT5ndF9wbS5ycHMuY3VyX2ZyZXEp KTsKIAl9CisKKwlpZiAoZGV2X3ByaXYtPnBtdS5lbmFibGUgJgorCSAgICBjb25maWdfZW5hYmxl ZF9tYXNrKEk5MTVfUE1VX1JDNl9SRVNJREVOQ1kpKSB7CisJCWlmIChwbSB8fCBpbnRlbF9ydW50 aW1lX3BtX2dldF9pZl9pbl91c2UoZGV2X3ByaXYpKSB7CisJCQl1cGRhdGVfcmM2X3NhbXBsZShk ZXZfcHJpdiwKKwkJCQkJICByZWFkX3JjNl9yZXNpZGVuY3koZGV2X3ByaXYpLAorCQkJCQkgIGZh bHNlKTsKKwkJCXBtID0gdHJ1ZTsKKwkJfSBlbHNlIHsKKwkJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7 CisKKwkJCS8qCisJCQkgKiBXaGVuIGRldmljZSBpcyAgcnVudGltZSBzdXNwZW5kZWQgd2UgYXNz dW1lIFJDNgorCQkJICogcmVzaWRlbmN5IGlzIGluY3JlYXNpbmcgYnkgdGhlIHNhbXBsaW5nIHRp bWVyIHBlcmlvZC4KKwkJCSAqLworCQkJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5wbXUu bG9jaywgZmxhZ3MpOworCQkJZGV2X3ByaXYtPnBtdS5zYW1wbGVbX19JOTE1X1NBTVBMRV9SQzZd LmN1ciArPSBQRVJJT0Q7CisJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+cG11 LmxvY2ssIGZsYWdzKTsKKwkJfQorCX0KKworCXJldHVybiBwbTsKKwogfQogCiBzdGF0aWMgZW51 bSBocnRpbWVyX3Jlc3RhcnQgaTkxNV9zYW1wbGUoc3RydWN0IGhydGltZXIgKmhydGltZXIpCiB7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPQogCQljb250YWluZXJfb2YoaHJ0aW1l ciwgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUsIHBtdS50aW1lcik7CisJYm9vbCBwbTsKIAogCWlm ICghUkVBRF9PTkNFKGk5MTUtPnBtdS50aW1lcl9lbmFibGVkKSkKIAkJcmV0dXJuIEhSVElNRVJf Tk9SRVNUQVJUOwogCi0JZW5naW5lc19zYW1wbGUoaTkxNSk7Ci0JZnJlcXVlbmN5X3NhbXBsZShp OTE1KTsKKwlwbSA9IGVuZ2luZXNfc2FtcGxlKGk5MTUpOworCXBtID0gb3RoZXJzX3NhbXBsZShp OTE1LCBwbSk7CisKKwlpZiAocG0pCisJCWludGVsX3J1bnRpbWVfcG1fcHV0KGk5MTUpOworCisJ aWYgKCFSRUFEX09OQ0UoaTkxNS0+cG11LnRpbWVyX2VuYWJsZWQpKQorCQlyZXR1cm4gSFJUSU1F Ul9OT1JFU1RBUlQ7CiAKIAlocnRpbWVyX2ZvcndhcmRfbm93KGhydGltZXIsIG5zX3RvX2t0aW1l KFBFUklPRCkpOwogCXJldHVybiBIUlRJTUVSX1JFU1RBUlQ7CkBAIC00MTUsNyArNDg0LDcgQEAg c3RhdGljIGludCBpOTE1X3BtdV9ldmVudF9pbml0KHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkK IAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHU2NCBfX2k5MTVfcG11X2V2ZW50X3JlYWQoc3RydWN0 IHBlcmZfZXZlbnQgKmV2ZW50KQorc3RhdGljIHU2NCBfX2k5MTVfcG11X2V2ZW50X3JlYWQoc3Ry dWN0IHBlcmZfZXZlbnQgKmV2ZW50LCBib29sIGxvY2tlZCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSA9CiAJCWNvbnRhaW5lcl9vZihldmVudC0+cG11LCB0eXBlb2YoKmk5MTUp LCBwbXUuYmFzZSk7CkBAIC00NTMsMTggKzUyMiwyNiBAQCBzdGF0aWMgdTY0IF9faTkxNV9wbXVf ZXZlbnRfcmVhZChzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpCiAJCQl2YWwgPSBjb3VudF9pbnRl cnJ1cHRzKGk5MTUpOwogCQkJYnJlYWs7CiAJCWNhc2UgSTkxNV9QTVVfUkM2X1JFU0lERU5DWToK LQkJCWludGVsX3J1bnRpbWVfcG1fZ2V0KGk5MTUpOwotCQkJdmFsID0gaW50ZWxfcmM2X3Jlc2lk ZW5jeV9ucyhpOTE1LAotCQkJCQkJICAgICBJU19WQUxMRVlWSUVXKGk5MTUpID8KLQkJCQkJCSAg ICAgVkxWX0dUX1JFTkRFUl9SQzYgOgotCQkJCQkJICAgICBHRU42X0dUX0dGWF9SQzYpOwotCQkJ aWYgKEhBU19SQzZwKGk5MTUpKQotCQkJCXZhbCArPSBpbnRlbF9yYzZfcmVzaWRlbmN5X25zKGk5 MTUsCi0JCQkJCQkJICAgICAgR0VONl9HVF9HRlhfUkM2cCk7Ci0JCQlpZiAoSEFTX1JDNnBwKGk5 MTUpKQotCQkJCXZhbCArPSBpbnRlbF9yYzZfcmVzaWRlbmN5X25zKGk5MTUsCi0JCQkJCQkJICAg ICAgR0VONl9HVF9HRlhfUkM2cHApOwotCQkJaW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSk7CisJ CQlpZiAoaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKGk5MTUpKSB7CisJCQkJdXBkYXRl X3JjNl9zYW1wbGUoaTkxNSwKKwkJCQkJCSAgcmVhZF9yYzZfcmVzaWRlbmN5KGk5MTUpLAorCQkJ CQkJICBsb2NrZWQpOworCQkJCWludGVsX3J1bnRpbWVfcG1fcHV0KGk5MTUpOworCQkJfSBlbHNl IHsKKwkJCQl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJCQkJLyoKKwkJCQkgKiBJZiB3ZSBmYWls ZWQgdG8gcmVhZCB0aGUgYWN0dWFsIHZhbHVlLCBzdGFydAorCQkJCSAqIHRoZSB0aW1lciB3aGlj aCB3aWxsIGJlIGVzdGltYXRpbmcgaXQgd2hpbGUKKwkJCQkgKiBkZXZpY2UgaXMgc3VzcGVuZGVk LgorCQkJCSAqLworCQkJCWlmICghbG9ja2VkKQorCQkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmaTkx NS0+cG11LmxvY2ssIGZsYWdzKTsKKwkJCQlfX2k5MTVfcG11X21heWJlX3N0YXJ0X3RpbWVyKGk5 MTUpOworCQkJCWlmICghbG9ja2VkKQorCQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpOTE1 LT5wbXUubG9jaywgZmxhZ3MpOworCQkJfQorCQkJdmFsID0gaTkxNS0+cG11LnNhbXBsZVtfX0k5 MTVfU0FNUExFX1JDNl0uY3VyOwogCQkJYnJlYWs7CiAJCX0KIAl9CkBAIC00NzksNyArNTU2LDcg QEAgc3RhdGljIHZvaWQgaTkxNV9wbXVfZXZlbnRfcmVhZChzdHJ1Y3QgcGVyZl9ldmVudCAqZXZl bnQpCiAKIGFnYWluOgogCXByZXYgPSBsb2NhbDY0X3JlYWQoJmh3Yy0+cHJldl9jb3VudCk7Ci0J bmV3ID0gX19pOTE1X3BtdV9ldmVudF9yZWFkKGV2ZW50KTsKKwluZXcgPSBfX2k5MTVfcG11X2V2 ZW50X3JlYWQoZXZlbnQsIGZhbHNlKTsKIAogCWlmIChsb2NhbDY0X2NtcHhjaGcoJmh3Yy0+cHJl dl9jb3VudCwgcHJldiwgbmV3KSAhPSBwcmV2KQogCQlnb3RvIGFnYWluOwpAQCAtNTM0LDcgKzYx MSw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfcG11X2VuYWJsZShzdHJ1Y3QgcGVyZl9ldmVudCAqZXZl bnQpCiAJICogZm9yIGFsbCBsaXN0ZW5lcnMuIEV2ZW4gd2hlbiB0aGUgZXZlbnQgd2FzIGFscmVh ZHkgZW5hYmxlZCBhbmQgaGFzCiAJICogYW4gZXhpc3Rpbmcgbm9uLXplcm8gdmFsdWUuCiAJICov Ci0JbG9jYWw2NF9zZXQoJmV2ZW50LT5ody5wcmV2X2NvdW50LCBfX2k5MTVfcG11X2V2ZW50X3Jl YWQoZXZlbnQpKTsKKwlsb2NhbDY0X3NldCgmZXZlbnQtPmh3LnByZXZfY291bnQsIF9faTkxNV9w bXVfZXZlbnRfcmVhZChldmVudCwgdHJ1ZSkpOwogCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm aTkxNS0+cG11LmxvY2ssIGZsYWdzKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcG11LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BtdS5oCmluZGV4IDVh MmUwMTNhNTZiYi4uMjQ5OTgzZWQzZjA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3BtdS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcG11LmgKQEAgLTI3 LDYgKzI3LDcgQEAKIGVudW0gewogCV9fSTkxNV9TQU1QTEVfRlJFUV9BQ1QgPSAwLAogCV9fSTkx NV9TQU1QTEVfRlJFUV9SRVEsCisJX19JOTE1X1NBTVBMRV9SQzYsCiAJX19JOTE1X05VTV9QTVVf U0FNUExFUlMKIH07CiAKLS0gCjIuMTQuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==