From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Anholt Subject: [PATCH 9/9] drm/vc4: Add an interface for capturing the GPU state after a hang. Date: Tue, 1 Dec 2015 12:35:58 -0800 Message-ID: <1449002158-19156-9-git-send-email-eric@anholt.net> References: <1449002158-19156-1-git-send-email-eric@anholt.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1449002158-19156-1-git-send-email-eric@anholt.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org VGhpcyBjYW4gYmUgcGFyc2VkIHdpdGggdmM0LWdwdS10b29scyB0b29scyBmb3IgdHJ5aW5nIHRv IGZpZ3VyZSBvdXQKd2hhdCB3YXMgZ29pbmcgb24uCgpTaWduZWQtb2ZmLWJ5OiBFcmljIEFuaG9s dCA8ZXJpY0BhbmhvbHQubmV0PgotLS0KIGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rydi5jIHwg ICAyICsKIGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rydi5oIHwgICA0ICsKIGRyaXZlcnMvZ3B1 L2RybS92YzQvdmM0X2dlbS5jIHwgMTg1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogaW5jbHVkZS91YXBpL2RybS92YzRfZHJtLmggICAgfCAgNDUgKysrKysrKysr KwogNCBmaWxlcyBjaGFuZ2VkLCAyMzYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS92YzQvdmM0X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmMK aW5kZXggMmNmZWU1OS4uOTcyMjZiNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92 YzRfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmMKQEAgLTgwLDYgKzgw LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVzYyB2YzRfZHJtX2lvY3Rsc1td ID0gewogCURSTV9JT0NUTF9ERUZfRFJWKFZDNF9DUkVBVEVfQk8sIHZjNF9jcmVhdGVfYm9faW9j dGwsIDApLAogCURSTV9JT0NUTF9ERUZfRFJWKFZDNF9NTUFQX0JPLCB2YzRfbW1hcF9ib19pb2N0 bCwgMCksCiAJRFJNX0lPQ1RMX0RFRl9EUlYoVkM0X0NSRUFURV9TSEFERVJfQk8sIHZjNF9jcmVh dGVfc2hhZGVyX2JvX2lvY3RsLCAwKSwKKwlEUk1fSU9DVExfREVGX0RSVihWQzRfR0VUX0hBTkdf U1RBVEUsIHZjNF9nZXRfaGFuZ19zdGF0ZV9pb2N0bCwKKwkJCSAgRFJNX1JPT1RfT05MWSksCiB9 OwogCiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgdmM0X2RybV9kcml2ZXIgPSB7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92YzQv dmM0X2Rydi5oCmluZGV4IDlhOGVlMjMuLmNkM2UyNDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS92YzQvdmM0X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rydi5oCkBA IC0xOSw2ICsxOSw4IEBAIHN0cnVjdCB2YzRfZGV2IHsKIAogCXN0cnVjdCBkcm1fZmJkZXZfY21h ICpmYmRldjsKIAorCXN0cnVjdCB2YzRfaGFuZ19zdGF0ZSAqaGFuZ19zdGF0ZTsKKwogCS8qIFRo ZSBrZXJuZWwtc3BhY2UgQk8gY2FjaGUuICBUcmFja3MgYnVmZmVycyB0aGF0IGhhdmUgYmVlbgog CSAqIHVucmVmZXJlbmNlZCBieSBhbGwgb3RoZXIgdXNlcnMgKHJlZmNvdW50cyBvZiAwISkgYnV0 IG5vdAogCSAqIHlldCBmcmVlZCwgc28gd2UgY2FuIGRvIGNoZWFwIGFsbG9jYXRpb25zLgpAQCAt MzY5LDYgKzM3MSw4IEBAIGludCB2YzRfY3JlYXRlX3NoYWRlcl9ib19pb2N0bChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmls ZV9wcml2KTsKIGludCB2YzRfbW1hcF9ib19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLAogCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitpbnQgdmM0 X2dldF9oYW5nX3N0YXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEs CisJCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKIGludCB2YzRfbW1hcChzdHJ1 Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwogaW50IHZjNF9wcmlt ZV9tbWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg KnZtYSk7CiB2b2lkICp2YzRfcHJpbWVfdm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9nZW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS92YzQvdmM0X2dlbS5jCmluZGV4IGE2MmNhNjguLmZiMGI5MmQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS92YzQvdmM0X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0 X2dlbS5jCkBAIC00MCw2ICs0MCwxODYgQEAgdmM0X3F1ZXVlX2hhbmdjaGVjayhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogCQkgIHJvdW5kX2ppZmZpZXNfdXAoamlmZmllcyArIG1zZWNzX3RvX2pp ZmZpZXMoMTAwKSkpOwogfQogCitzdHJ1Y3QgdmM0X2hhbmdfc3RhdGUgeworCXN0cnVjdCBkcm1f dmM0X2dldF9oYW5nX3N0YXRlIHVzZXJfc3RhdGU7CisKKwl1MzIgYm9fY291bnQ7CisJc3RydWN0 IGRybV9nZW1fb2JqZWN0ICoqYm87Cit9OworCitzdGF0aWMgdm9pZAordmM0X2ZyZWVfaGFuZ19z dGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgdmM0X2hhbmdfc3RhdGUgKnN0YXRl KQoreworCXVuc2lnbmVkIGludCBpOworCisJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgp OworCWZvciAoaSA9IDA7IGkgPCBzdGF0ZS0+dXNlcl9zdGF0ZS5ib19jb3VudDsgaSsrKQorCQlk cm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZShzdGF0ZS0+Ym9baV0pOworCW11dGV4X3VubG9jaygm ZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCisJa2ZyZWUoc3RhdGUpOworfQorCitpbnQKK3ZjNF9nZXRf aGFuZ19zdGF0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJ IHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCXN0cnVjdCBkcm1fdmM0X2dldF9oYW5n X3N0YXRlICpnZXRfc3RhdGUgPSBkYXRhOworCXN0cnVjdCBkcm1fdmM0X2dldF9oYW5nX3N0YXRl X2JvICpib19zdGF0ZTsKKwlzdHJ1Y3QgdmM0X2hhbmdfc3RhdGUgKmtlcm5lbF9zdGF0ZTsKKwlz dHJ1Y3QgZHJtX3ZjNF9nZXRfaGFuZ19zdGF0ZSAqc3RhdGU7CisJc3RydWN0IHZjNF9kZXYgKnZj NCA9IHRvX3ZjNF9kZXYoZGV2KTsKKwl1bnNpZ25lZCBsb25nIGlycWZsYWdzOworCXUzMiBpOwor CWludCByZXQ7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmdmM0LT5qb2JfbG9jaywgaXJxZmxhZ3Mp OworCWtlcm5lbF9zdGF0ZSA9IHZjNC0+aGFuZ19zdGF0ZTsKKwlpZiAoIWtlcm5lbF9zdGF0ZSkg eworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2YzQtPmpvYl9sb2NrLCBpcnFmbGFncyk7CisJ CXJldHVybiAtRU5PRU5UOworCX0KKwlzdGF0ZSA9ICZrZXJuZWxfc3RhdGUtPnVzZXJfc3RhdGU7 CisKKwkvKiBJZiB0aGUgdXNlcidzIGFycmF5IGlzbid0IGJpZyBlbm91Z2gsIGp1c3QgcmV0dXJu IHRoZQorCSAqIHJlcXVpcmVkIGFycmF5IHNpemUuCisJICovCisJaWYgKGdldF9zdGF0ZS0+Ym9f Y291bnQgPCBzdGF0ZS0+Ym9fY291bnQpIHsKKwkJZ2V0X3N0YXRlLT5ib19jb3VudCA9IHN0YXRl LT5ib19jb3VudDsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdmM0LT5qb2JfbG9jaywgaXJx ZmxhZ3MpOworCQlyZXR1cm4gMDsKKwl9CisKKwl2YzQtPmhhbmdfc3RhdGUgPSBOVUxMOworCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJnZjNC0+am9iX2xvY2ssIGlycWZsYWdzKTsKKworCS8qIFNh dmUgdGhlIHVzZXIncyBCTyBwb2ludGVyLCBzbyB3ZSBkb24ndCBzdG9tcCBpdCB3aXRoIHRoZSBt ZW1jcHkuICovCisJc3RhdGUtPmJvID0gZ2V0X3N0YXRlLT5ibzsKKwltZW1jcHkoZ2V0X3N0YXRl LCBzdGF0ZSwgc2l6ZW9mKCpzdGF0ZSkpOworCisJYm9fc3RhdGUgPSBrY2FsbG9jKHN0YXRlLT5i b19jb3VudCwgc2l6ZW9mKCpib19zdGF0ZSksIEdGUF9LRVJORUwpOworCWlmICghYm9fc3RhdGUp IHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBlcnJfZnJlZTsKKwl9CisKKwlmb3IgKGkgPSAw OyBpIDwgc3RhdGUtPmJvX2NvdW50OyBpKyspIHsKKwkJc3RydWN0IHZjNF9ibyAqdmM0X2JvID0g dG9fdmM0X2JvKGtlcm5lbF9zdGF0ZS0+Ym9baV0pOworCQl1MzIgaGFuZGxlOworCisJCXJldCA9 IGRybV9nZW1faGFuZGxlX2NyZWF0ZShmaWxlX3ByaXYsIGtlcm5lbF9zdGF0ZS0+Ym9baV0sCisJ CQkJCSAgICAmaGFuZGxlKTsKKworCQlpZiAocmV0KSB7CisJCQlzdGF0ZS0+Ym9fY291bnQgPSBp IC0gMTsKKwkJCWdvdG8gZXJyOworCQl9CisJCWJvX3N0YXRlW2ldLmhhbmRsZSA9IGhhbmRsZTsK KwkJYm9fc3RhdGVbaV0ucGFkZHIgPSB2YzRfYm8tPmJhc2UucGFkZHI7CisJCWJvX3N0YXRlW2ld LnNpemUgPSB2YzRfYm8tPmJhc2UuYmFzZS5zaXplOworCX0KKworCXJldCA9IGNvcHlfdG9fdXNl cigodm9pZCBfX3VzZXIgKikodWludHB0cl90KWdldF9zdGF0ZS0+Ym8sCisJCQkgICBib19zdGF0 ZSwKKwkJCSAgIHN0YXRlLT5ib19jb3VudCAqIHNpemVvZigqYm9fc3RhdGUpKTsKKwlrZnJlZShi b19zdGF0ZSk7CisKK2Vycl9mcmVlOgorCisJdmM0X2ZyZWVfaGFuZ19zdGF0ZShkZXYsIGtlcm5l bF9zdGF0ZSk7CisKK2VycjoKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZAordmM0X3Nh dmVfaGFuZ19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCXN0cnVjdCB2YzRfZGV2 ICp2YzQgPSB0b192YzRfZGV2KGRldik7CisJc3RydWN0IGRybV92YzRfZ2V0X2hhbmdfc3RhdGUg KnN0YXRlOworCXN0cnVjdCB2YzRfaGFuZ19zdGF0ZSAqa2VybmVsX3N0YXRlOworCXN0cnVjdCB2 YzRfZXhlY19pbmZvICpleGVjOworCXN0cnVjdCB2YzRfYm8gKmJvOworCXVuc2lnbmVkIGxvbmcg aXJxZmxhZ3M7CisJdW5zaWduZWQgaW50IGksIHVucmVmX2xpc3RfY291bnQ7CisKKwlrZXJuZWxf c3RhdGUgPSBrY2FsbG9jKDEsIHNpemVvZigqc3RhdGUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWtl cm5lbF9zdGF0ZSkKKwkJcmV0dXJuOworCisJc3RhdGUgPSAma2VybmVsX3N0YXRlLT51c2VyX3N0 YXRlOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnZjNC0+am9iX2xvY2ssIGlycWZsYWdzKTsKKwll eGVjID0gdmM0X2ZpcnN0X2pvYih2YzQpOworCWlmICghZXhlYykgeworCQlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZ2YzQtPmpvYl9sb2NrLCBpcnFmbGFncyk7CisJCXJldHVybjsKKwl9CisKKwl1 bnJlZl9saXN0X2NvdW50ID0gMDsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJvLCAmZXhlYy0+dW5y ZWZfbGlzdCwgdW5yZWZfaGVhZCkKKwkJdW5yZWZfbGlzdF9jb3VudCsrOworCisJc3RhdGUtPmJv X2NvdW50ID0gZXhlYy0+Ym9fY291bnQgKyB1bnJlZl9saXN0X2NvdW50OworCWtlcm5lbF9zdGF0 ZS0+Ym8gPSBrY2FsbG9jKHN0YXRlLT5ib19jb3VudCwgc2l6ZW9mKCprZXJuZWxfc3RhdGUtPmJv KSwKKwkJCQkgICBHRlBfQVRPTUlDKTsKKwlpZiAoIWtlcm5lbF9zdGF0ZS0+Ym8pIHsKKwkJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmdmM0LT5qb2JfbG9jaywgaXJxZmxhZ3MpOworCQlyZXR1cm47 CisJfQorCisJZm9yIChpID0gMDsgaSA8IGV4ZWMtPmJvX2NvdW50OyBpKyspIHsKKwkJZHJtX2dl bV9vYmplY3RfcmVmZXJlbmNlKCZleGVjLT5ib1tpXS5iby0+YmFzZSk7CisJCWtlcm5lbF9zdGF0 ZS0+Ym9baV0gPSAmZXhlYy0+Ym9baV0uYm8tPmJhc2U7CisJfQorCisJbGlzdF9mb3JfZWFjaF9l bnRyeShibywgJmV4ZWMtPnVucmVmX2xpc3QsIHVucmVmX2hlYWQpIHsKKwkJZHJtX2dlbV9vYmpl Y3RfcmVmZXJlbmNlKCZiby0+YmFzZS5iYXNlKTsKKwkJa2VybmVsX3N0YXRlLT5ib1tpXSA9ICZi by0+YmFzZS5iYXNlOworCQlpKys7CisJfQorCisJc3RhdGUtPnN0YXJ0X2JpbiA9IGV4ZWMtPmN0 MGNhOworCXN0YXRlLT5zdGFydF9yZW5kZXIgPSBleGVjLT5jdDFjYTsKKworCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJnZjNC0+am9iX2xvY2ssIGlycWZsYWdzKTsKKworCXN0YXRlLT5jdDBjYSA9 IFYzRF9SRUFEKFYzRF9DVE5DQSgwKSk7CisJc3RhdGUtPmN0MGVhID0gVjNEX1JFQUQoVjNEX0NU TkVBKDApKTsKKworCXN0YXRlLT5jdDFjYSA9IFYzRF9SRUFEKFYzRF9DVE5DQSgxKSk7CisJc3Rh dGUtPmN0MWVhID0gVjNEX1JFQUQoVjNEX0NUTkVBKDEpKTsKKworCXN0YXRlLT5jdDBjcyA9IFYz RF9SRUFEKFYzRF9DVE5DUygwKSk7CisJc3RhdGUtPmN0MWNzID0gVjNEX1JFQUQoVjNEX0NUTkNT KDEpKTsKKworCXN0YXRlLT5jdDByYTAgPSBWM0RfUkVBRChWM0RfQ1QwMFJBMCk7CisJc3RhdGUt PmN0MXJhMCA9IFYzRF9SRUFEKFYzRF9DVDAxUkEwKTsKKworCXN0YXRlLT5icGNhID0gVjNEX1JF QUQoVjNEX0JQQ0EpOworCXN0YXRlLT5icGNzID0gVjNEX1JFQUQoVjNEX0JQQ1MpOworCXN0YXRl LT5icG9hID0gVjNEX1JFQUQoVjNEX0JQT0EpOworCXN0YXRlLT5icG9zID0gVjNEX1JFQUQoVjNE X0JQT1MpOworCisJc3RhdGUtPnZwbWJhc2UgPSBWM0RfUkVBRChWM0RfVlBNQkFTRSk7CisKKwlz dGF0ZS0+ZGJnZSA9IFYzRF9SRUFEKFYzRF9EQkdFKTsKKwlzdGF0ZS0+ZmRiZ28gPSBWM0RfUkVB RChWM0RfRkRCR08pOworCXN0YXRlLT5mZGJnYiA9IFYzRF9SRUFEKFYzRF9GREJHQik7CisJc3Rh dGUtPmZkYmdyID0gVjNEX1JFQUQoVjNEX0ZEQkdSKTsKKwlzdGF0ZS0+ZmRiZ3MgPSBWM0RfUkVB RChWM0RfRkRCR1MpOworCXN0YXRlLT5lcnJzdGF0ID0gVjNEX1JFQUQoVjNEX0VSUlNUQVQpOwor CisJc3Bpbl9sb2NrX2lycXNhdmUoJnZjNC0+am9iX2xvY2ssIGlycWZsYWdzKTsKKwlpZiAodmM0 LT5oYW5nX3N0YXRlKSB7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZjNC0+am9iX2xvY2ss IGlycWZsYWdzKTsKKwkJdmM0X2ZyZWVfaGFuZ19zdGF0ZShkZXYsIGtlcm5lbF9zdGF0ZSk7CisJ fSBlbHNlIHsKKwkJdmM0LT5oYW5nX3N0YXRlID0ga2VybmVsX3N0YXRlOworCQlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZ2YzQtPmpvYl9sb2NrLCBpcnFmbGFncyk7CisJfQorfQorCiBzdGF0aWMg dm9pZAogdmM0X3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CkBAIC02NCw2ICsyNDQs OCBAQCB2YzRfcmVzZXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJc3RydWN0IHZj NF9kZXYgKnZjNCA9CiAJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgdmM0X2RldiwgaGFuZ2No ZWNrLnJlc2V0X3dvcmspOwogCisJdmM0X3NhdmVfaGFuZ19zdGF0ZSh2YzQtPmRldik7CisKIAl2 YzRfcmVzZXQodmM0LT5kZXYpOwogfQogCkBAIC02NzcsNCArODU5LDcgQEAgdmM0X2dlbV9kZXN0 cm95KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJfQogCiAJdmM0X2JvX2NhY2hlX2Rlc3Ryb3ko ZGV2KTsKKworCWlmICh2YzQtPmhhbmdfc3RhdGUpCisJCXZjNF9mcmVlX2hhbmdfc3RhdGUoZGV2 LCB2YzQtPmhhbmdfc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS92YzRf ZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL3ZjNF9kcm0uaAppbmRleCBlNzExZWMwLi5jNTQ4ZjQz IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL3ZjNF9kcm0uaAorKysgYi9pbmNsdWRlL3Vh cGkvZHJtL3ZjNF9kcm0uaApAQCAtMzIsNiArMzIsNyBAQAogI2RlZmluZSBEUk1fVkM0X0NSRUFU RV9CTyAgICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAjZGVmaW5lIERSTV9WQzRfTU1BUF9C TyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQKICNkZWZpbmUgRFJNX1ZDNF9DUkVBVEVf U0hBREVSX0JPICAgICAgICAgICAgICAgICAgMHgwNQorI2RlZmluZSBEUk1fVkM0X0dFVF9IQU5H X1NUQVRFICAgICAgICAgICAgICAgICAgICAweDA2CiAKICNkZWZpbmUgRFJNX0lPQ1RMX1ZDNF9T VUJNSVRfQ0wgICAgICAgICAgIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fVkM0X1NV Qk1JVF9DTCwgc3RydWN0IGRybV92YzRfc3VibWl0X2NsKQogI2RlZmluZSBEUk1fSU9DVExfVkM0 X1dBSVRfU0VRTk8gICAgICAgICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9WQzRf V0FJVF9TRVFOTywgc3RydWN0IGRybV92YzRfd2FpdF9zZXFubykKQEAgLTM5LDYgKzQwLDcgQEAK ICNkZWZpbmUgRFJNX0lPQ1RMX1ZDNF9DUkVBVEVfQk8gICAgICAgICAgIERSTV9JT1dSKERSTV9D T01NQU5EX0JBU0UgKyBEUk1fVkM0X0NSRUFURV9CTywgc3RydWN0IGRybV92YzRfY3JlYXRlX2Jv KQogI2RlZmluZSBEUk1fSU9DVExfVkM0X01NQVBfQk8gICAgICAgICAgICAgRFJNX0lPV1IoRFJN X0NPTU1BTkRfQkFTRSArIERSTV9WQzRfTU1BUF9CTywgc3RydWN0IGRybV92YzRfbW1hcF9ibykK ICNkZWZpbmUgRFJNX0lPQ1RMX1ZDNF9DUkVBVEVfU0hBREVSX0JPICAgIERSTV9JT1dSKERSTV9D T01NQU5EX0JBU0UgKyBEUk1fVkM0X0NSRUFURV9TSEFERVJfQk8sIHN0cnVjdCBkcm1fdmM0X2Ny ZWF0ZV9zaGFkZXJfYm8pCisjZGVmaW5lIERSTV9JT0NUTF9WQzRfR0VUX0hBTkdfU1RBVEUgICAg ICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1ZDNF9HRVRfSEFOR19TVEFURSwgc3Ry dWN0IGRybV92YzRfZ2V0X2hhbmdfc3RhdGUpCiAKIHN0cnVjdCBkcm1fdmM0X3N1Ym1pdF9yY2xf c3VyZmFjZSB7CiAJdWludDMyX3QgaGluZGV4OyAvKiBIYW5kbGUgaW5kZXgsIG9yIH4wIGlmIG5v dCBwcmVzZW50LiAqLwpAQCAtMjMxLDQgKzIzMyw0NyBAQCBzdHJ1Y3QgZHJtX3ZjNF9jcmVhdGVf c2hhZGVyX2JvIHsKIAl1aW50MzJfdCBwYWQ7CiB9OwogCitzdHJ1Y3QgZHJtX3ZjNF9nZXRfaGFu Z19zdGF0ZV9ibyB7CisJdWludDMyX3QgaGFuZGxlOworCXVpbnQzMl90IHBhZGRyOworCXVpbnQz Ml90IHNpemU7CisJdWludDMyX3QgcGFkOworfTsKKworLyoqCisgKiBzdHJ1Y3QgZHJtX3ZjNF9o YW5nX3N0YXRlIC0gaW9jdGwgYXJndW1lbnQgZm9yIGNvbGxlY3Rpbmcgc3RhdGUKKyAqIGZyb20g YSBHUFUgaGFuZyBmb3IgYW5hbHlzaXMuCisqLworc3RydWN0IGRybV92YzRfZ2V0X2hhbmdfc3Rh dGUgeworCS8qKiBQb2ludGVyIHRvIGFycmF5IG9mIHN0cnVjdCBkcm1fdmM0X2dldF9oYW5nX3N0 YXRlX2JvLiAqLworCXVpbnQ2NF90IGJvOworCS8qKgorCSAqIE9uIGlucHV0LCB0aGUgc2l6ZSBv ZiB0aGUgYm8gYXJyYXkuICBPdXRwdXQgaXMgdGhlIG51bWJlcgorCSAqIG9mIGJvcyB0byBiZSBy ZXR1cm5lZC4KKwkgKi8KKwl1aW50MzJfdCBib19jb3VudDsKKworCXVpbnQzMl90IHN0YXJ0X2Jp biwgc3RhcnRfcmVuZGVyOworCisJdWludDMyX3QgY3QwY2EsIGN0MGVhOworCXVpbnQzMl90IGN0 MWNhLCBjdDFlYTsKKwl1aW50MzJfdCBjdDBjcywgY3QxY3M7CisJdWludDMyX3QgY3QwcmEwLCBj dDFyYTA7CisKKwl1aW50MzJfdCBicGNhLCBicGNzOworCXVpbnQzMl90IGJwb2EsIGJwb3M7CisK Kwl1aW50MzJfdCB2cG1iYXNlOworCisJdWludDMyX3QgZGJnZTsKKwl1aW50MzJfdCBmZGJnbzsK Kwl1aW50MzJfdCBmZGJnYjsKKwl1aW50MzJfdCBmZGJncjsKKwl1aW50MzJfdCBmZGJnczsKKwl1 aW50MzJfdCBlcnJzdGF0OworCisJLyogUGFkIHRoYXQgd2UgbWF5IHNhdmUgbW9yZSByZWdpc3Rl cnMgaW50byBpbiB0aGUgZnV0dXJlLiAqLworCXVpbnQzMl90IHBhZFsxNl07Cit9OworCiAjZW5k aWYgLyogX1VBUElfVkM0X0RSTV9IXyAqLwotLSAKMi42LjIKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==