From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Anholt Subject: [PATCH v2 9/9] drm/vc4: Add an interface for capturing the GPU state after a hang. Date: Tue, 8 Dec 2015 10:30:18 -0800 Message-ID: <1449599418-20780-10-git-send-email-eric@anholt.net> References: <1449599418-20780-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: <1449599418-20780-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 dCA8ZXJpY0BhbmhvbHQubmV0PgotLS0KCnYyOiBVc2UgX191MzItc3R5bGUgdHlwZXMuCgogZHJp dmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmMgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL3ZjNC92 YzRfZHJ2LmggfCAgIDQgKwogZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZ2VtLmMgfCAxODUgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL3VhcGkvZHJt L3ZjNF9kcm0uaCAgICB8ICA0NSArKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDIzNiBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmMgYi9k cml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcnYuYwppbmRleCAyY2ZlZTU5Li45NzIyNmI2IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vdmM0L3ZjNF9kcnYuYwpAQCAtODAsNiArODAsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRy bV9pb2N0bF9kZXNjIHZjNF9kcm1faW9jdGxzW10gPSB7CiAJRFJNX0lPQ1RMX0RFRl9EUlYoVkM0 X0NSRUFURV9CTywgdmM0X2NyZWF0ZV9ib19pb2N0bCwgMCksCiAJRFJNX0lPQ1RMX0RFRl9EUlYo VkM0X01NQVBfQk8sIHZjNF9tbWFwX2JvX2lvY3RsLCAwKSwKIAlEUk1fSU9DVExfREVGX0RSVihW QzRfQ1JFQVRFX1NIQURFUl9CTywgdmM0X2NyZWF0ZV9zaGFkZXJfYm9faW9jdGwsIDApLAorCURS TV9JT0NUTF9ERUZfRFJWKFZDNF9HRVRfSEFOR19TVEFURSwgdmM0X2dldF9oYW5nX3N0YXRlX2lv Y3RsLAorCQkJICBEUk1fUk9PVF9PTkxZKSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZl ciB2YzRfZHJtX2RyaXZlciA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0 X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmgKaW5kZXggZjk5MjdkOC4uMDgw ODY1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmgKQEAgLTE5LDYgKzE5LDggQEAgc3RydWN0IHZjNF9k ZXYgewogCiAJc3RydWN0IGRybV9mYmRldl9jbWEgKmZiZGV2OwogCisJc3RydWN0IHZjNF9oYW5n X3N0YXRlICpoYW5nX3N0YXRlOworCiAJLyogVGhlIGtlcm5lbC1zcGFjZSBCTyBjYWNoZS4gIFRy YWNrcyBidWZmZXJzIHRoYXQgaGF2ZSBiZWVuCiAJICogdW5yZWZlcmVuY2VkIGJ5IGFsbCBvdGhl ciB1c2VycyAocmVmY291bnRzIG9mIDAhKSBidXQgbm90CiAJICogeWV0IGZyZWVkLCBzbyB3ZSBj YW4gZG8gY2hlYXAgYWxsb2NhdGlvbnMuCkBAIC0zNjEsNiArMzYzLDggQEAgaW50IHZjNF9jcmVh dGVfc2hhZGVyX2JvX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJ CQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwogaW50IHZjNF9tbWFwX2JvX2lv Y3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCSAgICAgIHN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2KTsKK2ludCB2YzRfZ2V0X2hhbmdfc3RhdGVfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSAgICAgc3RydWN0IGRybV9maWxlICpm aWxlX3ByaXYpOwogaW50IHZjNF9tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJl YV9zdHJ1Y3QgKnZtYSk7CiBpbnQgdmM0X3ByaW1lX21tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmosIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKIHZvaWQgKnZjNF9wcmltZV92bWFw KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS92YzQvdmM0X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZ2VtLmMKaW5kZXggNWZi MDU1Ni4uMzlmMjllNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZ2VtLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZ2VtLmMKQEAgLTQwLDYgKzQwLDE4NiBAQCB2 YzRfcXVldWVfaGFuZ2NoZWNrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCSAgcm91bmRfamlm Zmllc191cChqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcygxMDApKSk7CiB9CiAKK3N0cnVjdCB2 YzRfaGFuZ19zdGF0ZSB7CisJc3RydWN0IGRybV92YzRfZ2V0X2hhbmdfc3RhdGUgdXNlcl9zdGF0 ZTsKKworCXUzMiBib19jb3VudDsKKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKipibzsKK307CisK K3N0YXRpYyB2b2lkCit2YzRfZnJlZV9oYW5nX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHN0cnVjdCB2YzRfaGFuZ19zdGF0ZSAqc3RhdGUpCit7CisJdW5zaWduZWQgaW50IGk7CisKKwlt dXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJZm9yIChpID0gMDsgaSA8IHN0YXRlLT51 c2VyX3N0YXRlLmJvX2NvdW50OyBpKyspCisJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKHN0 YXRlLT5ib1tpXSk7CisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisKKwlrZnJl ZShzdGF0ZSk7Cit9CisKK2ludAordmM0X2dldF9oYW5nX3N0YXRlX2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYp Cit7CisJc3RydWN0IGRybV92YzRfZ2V0X2hhbmdfc3RhdGUgKmdldF9zdGF0ZSA9IGRhdGE7CisJ c3RydWN0IGRybV92YzRfZ2V0X2hhbmdfc3RhdGVfYm8gKmJvX3N0YXRlOworCXN0cnVjdCB2YzRf aGFuZ19zdGF0ZSAqa2VybmVsX3N0YXRlOworCXN0cnVjdCBkcm1fdmM0X2dldF9oYW5nX3N0YXRl ICpzdGF0ZTsKKwlzdHJ1Y3QgdmM0X2RldiAqdmM0ID0gdG9fdmM0X2RldihkZXYpOworCXVuc2ln bmVkIGxvbmcgaXJxZmxhZ3M7CisJdTMyIGk7CisJaW50IHJldDsKKworCXNwaW5fbG9ja19pcnFz YXZlKCZ2YzQtPmpvYl9sb2NrLCBpcnFmbGFncyk7CisJa2VybmVsX3N0YXRlID0gdmM0LT5oYW5n X3N0YXRlOworCWlmICgha2VybmVsX3N0YXRlKSB7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JnZjNC0+am9iX2xvY2ssIGlycWZsYWdzKTsKKwkJcmV0dXJuIC1FTk9FTlQ7CisJfQorCXN0YXRl ID0gJmtlcm5lbF9zdGF0ZS0+dXNlcl9zdGF0ZTsKKworCS8qIElmIHRoZSB1c2VyJ3MgYXJyYXkg aXNuJ3QgYmlnIGVub3VnaCwganVzdCByZXR1cm4gdGhlCisJICogcmVxdWlyZWQgYXJyYXkgc2l6 ZS4KKwkgKi8KKwlpZiAoZ2V0X3N0YXRlLT5ib19jb3VudCA8IHN0YXRlLT5ib19jb3VudCkgewor CQlnZXRfc3RhdGUtPmJvX2NvdW50ID0gc3RhdGUtPmJvX2NvdW50OworCQlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZ2YzQtPmpvYl9sb2NrLCBpcnFmbGFncyk7CisJCXJldHVybiAwOworCX0KKwor CXZjNC0+aGFuZ19zdGF0ZSA9IE5VTEw7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdmM0LT5q b2JfbG9jaywgaXJxZmxhZ3MpOworCisJLyogU2F2ZSB0aGUgdXNlcidzIEJPIHBvaW50ZXIsIHNv IHdlIGRvbid0IHN0b21wIGl0IHdpdGggdGhlIG1lbWNweS4gKi8KKwlzdGF0ZS0+Ym8gPSBnZXRf c3RhdGUtPmJvOworCW1lbWNweShnZXRfc3RhdGUsIHN0YXRlLCBzaXplb2YoKnN0YXRlKSk7CisK Kwlib19zdGF0ZSA9IGtjYWxsb2Moc3RhdGUtPmJvX2NvdW50LCBzaXplb2YoKmJvX3N0YXRlKSwg R0ZQX0tFUk5FTCk7CisJaWYgKCFib19zdGF0ZSkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3Rv IGVycl9mcmVlOworCX0KKworCWZvciAoaSA9IDA7IGkgPCBzdGF0ZS0+Ym9fY291bnQ7IGkrKykg eworCQlzdHJ1Y3QgdmM0X2JvICp2YzRfYm8gPSB0b192YzRfYm8oa2VybmVsX3N0YXRlLT5ib1tp XSk7CisJCXUzMiBoYW5kbGU7CisKKwkJcmV0ID0gZHJtX2dlbV9oYW5kbGVfY3JlYXRlKGZpbGVf cHJpdiwga2VybmVsX3N0YXRlLT5ib1tpXSwKKwkJCQkJICAgICZoYW5kbGUpOworCisJCWlmIChy ZXQpIHsKKwkJCXN0YXRlLT5ib19jb3VudCA9IGkgLSAxOworCQkJZ290byBlcnI7CisJCX0KKwkJ Ym9fc3RhdGVbaV0uaGFuZGxlID0gaGFuZGxlOworCQlib19zdGF0ZVtpXS5wYWRkciA9IHZjNF9i by0+YmFzZS5wYWRkcjsKKwkJYm9fc3RhdGVbaV0uc2l6ZSA9IHZjNF9iby0+YmFzZS5iYXNlLnNp emU7CisJfQorCisJcmV0ID0gY29weV90b191c2VyKCh2b2lkIF9fdXNlciAqKSh1aW50cHRyX3Qp Z2V0X3N0YXRlLT5ibywKKwkJCSAgIGJvX3N0YXRlLAorCQkJICAgc3RhdGUtPmJvX2NvdW50ICog c2l6ZW9mKCpib19zdGF0ZSkpOworCWtmcmVlKGJvX3N0YXRlKTsKKworZXJyX2ZyZWU6CisKKwl2 YzRfZnJlZV9oYW5nX3N0YXRlKGRldiwga2VybmVsX3N0YXRlKTsKKworZXJyOgorCXJldHVybiBy ZXQ7Cit9CisKK3N0YXRpYyB2b2lkCit2YzRfc2F2ZV9oYW5nX3N0YXRlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCit7CisJc3RydWN0IHZjNF9kZXYgKnZjNCA9IHRvX3ZjNF9kZXYoZGV2KTsKKwlz dHJ1Y3QgZHJtX3ZjNF9nZXRfaGFuZ19zdGF0ZSAqc3RhdGU7CisJc3RydWN0IHZjNF9oYW5nX3N0 YXRlICprZXJuZWxfc3RhdGU7CisJc3RydWN0IHZjNF9leGVjX2luZm8gKmV4ZWM7CisJc3RydWN0 IHZjNF9ibyAqYm87CisJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKKwl1bnNpZ25lZCBpbnQgaSwg dW5yZWZfbGlzdF9jb3VudDsKKworCWtlcm5lbF9zdGF0ZSA9IGtjYWxsb2MoMSwgc2l6ZW9mKCpz dGF0ZSksIEdGUF9LRVJORUwpOworCWlmICgha2VybmVsX3N0YXRlKQorCQlyZXR1cm47CisKKwlz dGF0ZSA9ICZrZXJuZWxfc3RhdGUtPnVzZXJfc3RhdGU7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgm dmM0LT5qb2JfbG9jaywgaXJxZmxhZ3MpOworCWV4ZWMgPSB2YzRfZmlyc3Rfam9iKHZjNCk7CisJ aWYgKCFleGVjKSB7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZjNC0+am9iX2xvY2ssIGly cWZsYWdzKTsKKwkJcmV0dXJuOworCX0KKworCXVucmVmX2xpc3RfY291bnQgPSAwOworCWxpc3Rf Zm9yX2VhY2hfZW50cnkoYm8sICZleGVjLT51bnJlZl9saXN0LCB1bnJlZl9oZWFkKQorCQl1bnJl Zl9saXN0X2NvdW50Kys7CisKKwlzdGF0ZS0+Ym9fY291bnQgPSBleGVjLT5ib19jb3VudCArIHVu cmVmX2xpc3RfY291bnQ7CisJa2VybmVsX3N0YXRlLT5ibyA9IGtjYWxsb2Moc3RhdGUtPmJvX2Nv dW50LCBzaXplb2YoKmtlcm5lbF9zdGF0ZS0+Ym8pLAorCQkJCSAgIEdGUF9BVE9NSUMpOworCWlm ICgha2VybmVsX3N0YXRlLT5ibykgeworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2YzQtPmpv Yl9sb2NrLCBpcnFmbGFncyk7CisJCXJldHVybjsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgZXhl Yy0+Ym9fY291bnQ7IGkrKykgeworCQlkcm1fZ2VtX29iamVjdF9yZWZlcmVuY2UoJmV4ZWMtPmJv W2ldLT5iYXNlKTsKKwkJa2VybmVsX3N0YXRlLT5ib1tpXSA9ICZleGVjLT5ib1tpXS0+YmFzZTsK Kwl9CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJvLCAmZXhlYy0+dW5yZWZfbGlzdCwgdW5yZWZf aGVhZCkgeworCQlkcm1fZ2VtX29iamVjdF9yZWZlcmVuY2UoJmJvLT5iYXNlLmJhc2UpOworCQlr ZXJuZWxfc3RhdGUtPmJvW2ldID0gJmJvLT5iYXNlLmJhc2U7CisJCWkrKzsKKwl9CisKKwlzdGF0 ZS0+c3RhcnRfYmluID0gZXhlYy0+Y3QwY2E7CisJc3RhdGUtPnN0YXJ0X3JlbmRlciA9IGV4ZWMt PmN0MWNhOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdmM0LT5qb2JfbG9jaywgaXJxZmxh Z3MpOworCisJc3RhdGUtPmN0MGNhID0gVjNEX1JFQUQoVjNEX0NUTkNBKDApKTsKKwlzdGF0ZS0+ Y3QwZWEgPSBWM0RfUkVBRChWM0RfQ1RORUEoMCkpOworCisJc3RhdGUtPmN0MWNhID0gVjNEX1JF QUQoVjNEX0NUTkNBKDEpKTsKKwlzdGF0ZS0+Y3QxZWEgPSBWM0RfUkVBRChWM0RfQ1RORUEoMSkp OworCisJc3RhdGUtPmN0MGNzID0gVjNEX1JFQUQoVjNEX0NUTkNTKDApKTsKKwlzdGF0ZS0+Y3Qx Y3MgPSBWM0RfUkVBRChWM0RfQ1ROQ1MoMSkpOworCisJc3RhdGUtPmN0MHJhMCA9IFYzRF9SRUFE KFYzRF9DVDAwUkEwKTsKKwlzdGF0ZS0+Y3QxcmEwID0gVjNEX1JFQUQoVjNEX0NUMDFSQTApOwor CisJc3RhdGUtPmJwY2EgPSBWM0RfUkVBRChWM0RfQlBDQSk7CisJc3RhdGUtPmJwY3MgPSBWM0Rf UkVBRChWM0RfQlBDUyk7CisJc3RhdGUtPmJwb2EgPSBWM0RfUkVBRChWM0RfQlBPQSk7CisJc3Rh dGUtPmJwb3MgPSBWM0RfUkVBRChWM0RfQlBPUyk7CisKKwlzdGF0ZS0+dnBtYmFzZSA9IFYzRF9S RUFEKFYzRF9WUE1CQVNFKTsKKworCXN0YXRlLT5kYmdlID0gVjNEX1JFQUQoVjNEX0RCR0UpOwor CXN0YXRlLT5mZGJnbyA9IFYzRF9SRUFEKFYzRF9GREJHTyk7CisJc3RhdGUtPmZkYmdiID0gVjNE X1JFQUQoVjNEX0ZEQkdCKTsKKwlzdGF0ZS0+ZmRiZ3IgPSBWM0RfUkVBRChWM0RfRkRCR1IpOwor CXN0YXRlLT5mZGJncyA9IFYzRF9SRUFEKFYzRF9GREJHUyk7CisJc3RhdGUtPmVycnN0YXQgPSBW M0RfUkVBRChWM0RfRVJSU1RBVCk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmdmM0LT5qb2JfbG9j aywgaXJxZmxhZ3MpOworCWlmICh2YzQtPmhhbmdfc3RhdGUpIHsKKwkJc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmdmM0LT5qb2JfbG9jaywgaXJxZmxhZ3MpOworCQl2YzRfZnJlZV9oYW5nX3N0YXRl KGRldiwga2VybmVsX3N0YXRlKTsKKwl9IGVsc2UgeworCQl2YzQtPmhhbmdfc3RhdGUgPSBrZXJu ZWxfc3RhdGU7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZjNC0+am9iX2xvY2ssIGlycWZs YWdzKTsKKwl9Cit9CisKIHN0YXRpYyB2b2lkCiB2YzRfcmVzZXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIHsKQEAgLTY0LDYgKzI0NCw4IEBAIHZjNF9yZXNldF93b3JrKHN0cnVjdCB3b3JrX3N0 cnVjdCAqd29yaykKIAlzdHJ1Y3QgdmM0X2RldiAqdmM0ID0KIAkJY29udGFpbmVyX29mKHdvcmss IHN0cnVjdCB2YzRfZGV2LCBoYW5nY2hlY2sucmVzZXRfd29yayk7CiAKKwl2YzRfc2F2ZV9oYW5n X3N0YXRlKHZjNC0+ZGV2KTsKKwogCXZjNF9yZXNldCh2YzQtPmRldik7CiB9CiAKQEAgLTY3OSw0 ICs4NjEsNyBAQCB2YzRfZ2VtX2Rlc3Ryb3koc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAl9CiAK IAl2YzRfYm9fY2FjaGVfZGVzdHJveShkZXYpOworCisJaWYgKHZjNC0+aGFuZ19zdGF0ZSkKKwkJ dmM0X2ZyZWVfaGFuZ19zdGF0ZShkZXYsIHZjNC0+aGFuZ19zdGF0ZSk7CiB9CmRpZmYgLS1naXQg YS9pbmNsdWRlL3VhcGkvZHJtL3ZjNF9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vdmM0X2RybS5o CmluZGV4IGZlNDE2MWIuLmVlYjM3ZTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vdmM0 X2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vdmM0X2RybS5oCkBAIC0zMiw2ICszMiw3IEBA CiAjZGVmaW5lIERSTV9WQzRfQ1JFQVRFX0JPICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMK ICNkZWZpbmUgRFJNX1ZDNF9NTUFQX0JPICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNAog I2RlZmluZSBEUk1fVkM0X0NSRUFURV9TSEFERVJfQk8gICAgICAgICAgICAgICAgICAweDA1Cisj ZGVmaW5lIERSTV9WQzRfR0VUX0hBTkdfU1RBVEUgICAgICAgICAgICAgICAgICAgIDB4MDYKIAog I2RlZmluZSBEUk1fSU9DVExfVkM0X1NVQk1JVF9DTCAgICAgICAgICAgRFJNX0lPV1IoRFJNX0NP TU1BTkRfQkFTRSArIERSTV9WQzRfU1VCTUlUX0NMLCBzdHJ1Y3QgZHJtX3ZjNF9zdWJtaXRfY2wp CiAjZGVmaW5lIERSTV9JT0NUTF9WQzRfV0FJVF9TRVFOTyAgICAgICAgICBEUk1fSU9XUihEUk1f Q09NTUFORF9CQVNFICsgRFJNX1ZDNF9XQUlUX1NFUU5PLCBzdHJ1Y3QgZHJtX3ZjNF93YWl0X3Nl cW5vKQpAQCAtMzksNiArNDAsNyBAQAogI2RlZmluZSBEUk1fSU9DVExfVkM0X0NSRUFURV9CTyAg ICAgICAgICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9WQzRfQ1JFQVRFX0JPLCBz dHJ1Y3QgZHJtX3ZjNF9jcmVhdGVfYm8pCiAjZGVmaW5lIERSTV9JT0NUTF9WQzRfTU1BUF9CTyAg ICAgICAgICAgICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1ZDNF9NTUFQX0JPLCBz dHJ1Y3QgZHJtX3ZjNF9tbWFwX2JvKQogI2RlZmluZSBEUk1fSU9DVExfVkM0X0NSRUFURV9TSEFE RVJfQk8gICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9WQzRfQ1JFQVRFX1NIQURF Ul9CTywgc3RydWN0IGRybV92YzRfY3JlYXRlX3NoYWRlcl9ibykKKyNkZWZpbmUgRFJNX0lPQ1RM X1ZDNF9HRVRfSEFOR19TVEFURSAgICAgIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1f VkM0X0dFVF9IQU5HX1NUQVRFLCBzdHJ1Y3QgZHJtX3ZjNF9nZXRfaGFuZ19zdGF0ZSkKIAogc3Ry dWN0IGRybV92YzRfc3VibWl0X3JjbF9zdXJmYWNlIHsKIAlfX3UzMiBoaW5kZXg7IC8qIEhhbmRs ZSBpbmRleCwgb3IgfjAgaWYgbm90IHByZXNlbnQuICovCkBAIC0yMzEsNCArMjMzLDQ3IEBAIHN0 cnVjdCBkcm1fdmM0X2NyZWF0ZV9zaGFkZXJfYm8gewogCV9fdTMyIHBhZDsKIH07CiAKK3N0cnVj dCBkcm1fdmM0X2dldF9oYW5nX3N0YXRlX2JvIHsKKwlfX3UzMiBoYW5kbGU7CisJX191MzIgcGFk ZHI7CisJX191MzIgc2l6ZTsKKwlfX3UzMiBwYWQ7Cit9OworCisvKioKKyAqIHN0cnVjdCBkcm1f dmM0X2hhbmdfc3RhdGUgLSBpb2N0bCBhcmd1bWVudCBmb3IgY29sbGVjdGluZyBzdGF0ZQorICog ZnJvbSBhIEdQVSBoYW5nIGZvciBhbmFseXNpcy4KKyovCitzdHJ1Y3QgZHJtX3ZjNF9nZXRfaGFu Z19zdGF0ZSB7CisJLyoqIFBvaW50ZXIgdG8gYXJyYXkgb2Ygc3RydWN0IGRybV92YzRfZ2V0X2hh bmdfc3RhdGVfYm8uICovCisJX191NjQgYm87CisJLyoqCisJICogT24gaW5wdXQsIHRoZSBzaXpl IG9mIHRoZSBibyBhcnJheS4gIE91dHB1dCBpcyB0aGUgbnVtYmVyCisJICogb2YgYm9zIHRvIGJl IHJldHVybmVkLgorCSAqLworCV9fdTMyIGJvX2NvdW50OworCisJX191MzIgc3RhcnRfYmluLCBz dGFydF9yZW5kZXI7CisKKwlfX3UzMiBjdDBjYSwgY3QwZWE7CisJX191MzIgY3QxY2EsIGN0MWVh OworCV9fdTMyIGN0MGNzLCBjdDFjczsKKwlfX3UzMiBjdDByYTAsIGN0MXJhMDsKKworCV9fdTMy IGJwY2EsIGJwY3M7CisJX191MzIgYnBvYSwgYnBvczsKKworCV9fdTMyIHZwbWJhc2U7CisKKwlf X3UzMiBkYmdlOworCV9fdTMyIGZkYmdvOworCV9fdTMyIGZkYmdiOworCV9fdTMyIGZkYmdyOwor CV9fdTMyIGZkYmdzOworCV9fdTMyIGVycnN0YXQ7CisKKwkvKiBQYWQgdGhhdCB3ZSBtYXkgc2F2 ZSBtb3JlIHJlZ2lzdGVycyBpbnRvIGluIHRoZSBmdXR1cmUuICovCisJX191MzIgcGFkWzE2XTsK K307CisKICNlbmRpZiAvKiBfVUFQSV9WQzRfRFJNX0hfICovCi0tIAoyLjYuMgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK