From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH v8 18/27] ARM: vITS: handle MAPD command Date: Wed, 12 Apr 2017 01:44:25 +0100 Message-ID: <1491957874-31600-19-git-send-email-andre.przywara@arm.com> References: <1491957874-31600-1-git-send-email-andre.przywara@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cy6Qg-0000qj-BK for xen-devel@lists.xenproject.org; Wed, 12 Apr 2017 00:46:38 +0000 In-Reply-To: <1491957874-31600-1-git-send-email-andre.przywara@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Stefano Stabellini , Julien Grall Cc: xen-devel@lists.xenproject.org, Vijaya Kumar K , Vijay Kilari , Shanker Donthineni List-Id: xen-devel@lists.xenproject.org VGhlIE1BUEQgY29tbWFuZCBtYXBzIGEgZGV2aWNlIGJ5IGFzc29jaWF0aW5nIGEgbWVtb3J5IHJl Z2lvbiBmb3IKc3RvcmluZyBJVEVzIHdpdGggYSBjZXJ0YWluIGRldmljZSBJRC4gU2luY2UgaXQg ZmVhdHVyZXMgYSB2YWxpZCBiaXQsCk1BUEQgYWxzbyBjb3ZlcnMgdGhlICJ1bm1hcCIgZnVuY3Rp b25hbGl0eSwgd2hpY2ggd2UgYWxzbyBjb3ZlciBoZXJlLgpXZSBzdG9yZSB0aGUgZ2l2ZW4gZ3Vl c3QgcGh5c2ljYWwgYWRkcmVzcyBpbiB0aGUgZGV2aWNlIHRhYmxlLCBhbmQsIGlmCnRoaXMgY29t bWFuZCBjb21lcyBmcm9tIERvbTAsIHRlbGwgdGhlIGhvc3QgSVRTIGRyaXZlciBhYm91dCB0aGlz IG5ldwptYXBwaW5nLCBzbyBpdCBjYW4gaXNzdWUgdGhlIGNvcnJlc3BvbmRpbmcgaG9zdCBNQVBE IGNvbW1hbmQgYW5kIGNyZWF0ZQp0aGUgcmVxdWlyZWQgdGFibGVzLiBXZSB0YWtlIGNhcmUgb2Yg cm9sbGluZyBiYWNrIGFjdGlvbnMgc2hvdWxkIG9uZQpzdGVwIGZhaWwuClVwb24gdW5tYXBwaW5n IGEgZGV2aWNlIHdlIG1ha2Ugc3VyZSB3ZSBjbGVhbiB1cCBhbGwgYXNzb2NpYXRlZApyZXNvdXJj ZXMgYW5kIHJlbGVhc2UgdGhlIG1lbW9yeSBhZ2Fpbi4KV2UgdXNlIG91ciBleGlzdGluZyBndWVz dCBtZW1vcnkgYWNjZXNzIGZ1bmN0aW9uIHRvIGZpbmQgdGhlIHJpZ2h0IElUVAplbnRyeSBhbmQg c3RvcmUgdGhlIG1hcHBpbmcgdGhlcmUgKGluIGd1ZXN0IG1lbW9yeSkuCgpTaWduZWQtb2ZmLWJ5 OiBBbmRyZSBQcnp5d2FyYSA8YW5kcmUucHJ6eXdhcmFAYXJtLmNvbT4KLS0tCiB4ZW4vYXJjaC9h cm0vZ2ljLXYzLWl0cy5jICAgICAgICB8ICA2MCArKysrKysrKysrKysrKysrKwogeGVuL2FyY2gv YXJtL2dpYy12My1scGkuYyAgICAgICAgfCAgMTggKysrKysKIHhlbi9hcmNoL2FybS92Z2ljLXYz LWl0cy5jICAgICAgIHwgMTM3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogeGVuL2luY2x1ZGUvYXNtLWFybS9naWNfdjNfaXRzLmggfCAgIDYgKysKIDQgZmlsZXMgY2hh bmdlZCwgMjIxIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZ2ljLXYz LWl0cy5jIGIveGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYwppbmRleCBhZWJjMjU3Li45MDBjOWQx IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jCisrKyBiL3hlbi9hcmNoL2Fy bS9naWMtdjMtaXRzLmMKQEAgLTgwMCw2ICs4MDAsNjYgQEAgb3V0OgogICAgIHJldHVybiByZXQ7 CiB9CiAKKy8qIE11c3QgYmUgY2FsbGVkIHdpdGggdGhlIGl0c19kZXZpY2VfbG9jayBoZWxkLiAq Lworc3RhdGljIHN0cnVjdCBpdHNfZGV2aWNlICpnZXRfaXRzX2RldmljZShzdHJ1Y3QgZG9tYWlu ICpkLCBwYWRkcl90IHZkb29yYmVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQzMl90IHZkZXZpZCkKK3sKKyAgICBzdHJ1Y3QgcmJfbm9kZSAqbm9kZSA9 IGQtPmFyY2gudmdpYy5pdHNfZGV2aWNlcy5yYl9ub2RlOworICAgIHN0cnVjdCBpdHNfZGV2aWNl ICpkZXY7CisKKyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmQtPmFyY2gudmdpYy5pdHNfZGV2 aWNlc19sb2NrKSk7CisKKyAgICB3aGlsZSAobm9kZSkKKyAgICB7CisgICAgICAgIGludCBjbXA7 CisKKyAgICAgICAgZGV2ID0gcmJfZW50cnkobm9kZSwgc3RydWN0IGl0c19kZXZpY2UsIHJibm9k ZSk7CisgICAgICAgIGNtcCA9IGNvbXBhcmVfaXRzX2d1ZXN0X2RldmljZXMoZGV2LCB2ZG9vcmJl bGwsIHZkZXZpZCk7CisKKyAgICAgICAgaWYgKCAhY21wICkKKyAgICAgICAgICAgIHJldHVybiBk ZXY7CisKKyAgICAgICAgaWYgKCBjbXAgPiAwICkKKyAgICAgICAgICAgIG5vZGUgPSBub2RlLT5y Yl9sZWZ0OworICAgICAgICBlbHNlCisgICAgICAgICAgICBub2RlID0gbm9kZS0+cmJfcmlnaHQ7 CisgICAgfQorCisgICAgcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB1aW50MzJfdCBnZXRfaG9z dF9scGkoc3RydWN0IGl0c19kZXZpY2UgKmRldiwgdWludDMyX3QgZXZlbnRpZCkKK3sKKyAgICB1 aW50MzJfdCBob3N0X2xwaSA9IElOVkFMSURfTFBJOworCisgICAgaWYgKCBkZXYgJiYgKGV2ZW50 aWQgPCBkZXYtPmV2ZW50aWRzKSApCisgICAgICAgIGhvc3RfbHBpID0gZGV2LT5ob3N0X2xwaV9i bG9ja3NbZXZlbnRpZCAvIExQSV9CTE9DS10gKworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGV2ZW50aWQgJSBMUElfQkxPQ0spOworCisgICAgcmV0dXJuIGhvc3RfbHBp OworfQorCitpbnQgZ2ljdjNfcmVtb3ZlX2d1ZXN0X2V2ZW50KHN0cnVjdCBkb21haW4gKmQsIHBh ZGRyX3QgdmRvb3JiZWxsX2FkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQzMl90IHZkZXZpZCwgdWludDMyX3QgdmV2ZW50aWQpCit7CisgICAgc3RydWN0IGl0c19kZXZp Y2UgKmRldjsKKyAgICB1aW50MzJfdCBob3N0X2xwaSA9IElOVkFMSURfTFBJOworCisgICAgc3Bp bl9sb2NrKCZkLT5hcmNoLnZnaWMuaXRzX2RldmljZXNfbG9jayk7CisgICAgZGV2ID0gZ2V0X2l0 c19kZXZpY2UoZCwgdmRvb3JiZWxsX2FkZHJlc3MsIHZkZXZpZCk7CisgICAgaWYgKCBkZXYgJiYg dmV2ZW50aWQgPD0gZGV2LT5ldmVudGlkcyApCisgICAgICAgIGhvc3RfbHBpID0gZ2V0X2hvc3Rf bHBpKGRldiwgdmV2ZW50aWQpOworICAgIHNwaW5fdW5sb2NrKCZkLT5hcmNoLnZnaWMuaXRzX2Rl dmljZXNfbG9jayk7CisKKyAgICBpZiAoIGhvc3RfbHBpID09IElOVkFMSURfTFBJICkKKyAgICAg ICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICBnaWN2M19scGlfdXBkYXRlX2hvc3RfZW50cnkoaG9z dF9scGksIGQtPmRvbWFpbl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5W QUxJRF9WQ1BVX0lELCBJTlZBTElEX0xQSSk7CisKKyAgICByZXR1cm4gMDsKK30KKwogLyogU2Nh biB0aGUgRFQgZm9yIGFueSBJVFMgbm9kZXMgYW5kIGNyZWF0ZSBhIGxpc3Qgb2YgaG9zdCBJVFNl cyBvdXQgb2YgaXQuICovCiB2b2lkIGdpY3YzX2l0c19kdF9pbml0KGNvbnN0IHN0cnVjdCBkdF9k ZXZpY2Vfbm9kZSAqbm9kZSkKIHsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9naWMtdjMtbHBp LmMgYi94ZW4vYXJjaC9hcm0vZ2ljLXYzLWxwaS5jCmluZGV4IDQ0ZjYzMTUuLmQ0Mjc1MzkgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9naWMtdjMtbHBpLmMKKysrIGIveGVuL2FyY2gvYXJtL2dp Yy12My1scGkuYwpAQCAtMjA3LDYgKzIwNywyNCBAQCBvdXQ6CiAgICAgaXJxX2V4aXQoKTsKIH0K IAordm9pZCBnaWN2M19scGlfdXBkYXRlX2hvc3RfZW50cnkodWludDMyX3QgaG9zdF9scGksIGlu dCBkb21haW5faWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgdmNwdV9pZCwgdWludDMyX3QgdmlydF9scGkpCit7CisgICAgdW5pb24gaG9zdF9scGkgKmhs cGlwLCBobHBpOworCisgICAgQVNTRVJUKGhvc3RfbHBpID49IExQSV9PRkZTRVQpOworCisgICAg aG9zdF9scGkgLT0gTFBJX09GRlNFVDsKKworICAgIGhscGlwID0gJmxwaV9kYXRhLmhvc3RfbHBp c1tob3N0X2xwaSAvIEhPU1RfTFBJU19QRVJfUEFHRV1baG9zdF9scGkgJSBIT1NUX0xQSVNfUEVS X1BBR0VdOworCisgICAgaGxwaS52aXJ0X2xwaSA9IHZpcnRfbHBpOworICAgIGhscGkuZG9tX2lk ID0gZG9tYWluX2lkOworICAgIGhscGkudmNwdV9pZCA9IHZjcHVfaWQ7CisKKyAgICB3cml0ZV91 NjRfYXRvbWljKCZobHBpcC0+ZGF0YSwgaGxwaS5kYXRhKTsKK30KKwogc3RhdGljIGludCBnaWN2 M19scGlfYWxsb2NhdGVfcGVuZHRhYmxlKHVpbnQ2NF90ICpyZWcpCiB7CiAgICAgdWludDY0X3Qg dmFsOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRzLmMgYi94ZW4vYXJjaC9h cm0vdmdpYy12My1pdHMuYwppbmRleCA2ZTUwNWNiLi4xMDQwMTdlIDEwMDY0NAotLS0gYS94ZW4v YXJjaC9hcm0vdmdpYy12My1pdHMuYworKysgYi94ZW4vYXJjaC9hcm0vdmdpYy12My1pdHMuYwpA QCAtNTIsNiArNTIsNyBAQAogICovCiBzdHJ1Y3QgdmlydF9pdHMgewogICAgIHN0cnVjdCBkb21h aW4gKmQ7CisgICAgcGFkZHJfdCBkb29yYmVsbF9hZGRyZXNzOwogICAgIHVuc2lnbmVkIGludCBk ZXZpZF9iaXRzOwogICAgIHVuc2lnbmVkIGludCBldmlkX2JpdHM7CiAgICAgc3BpbmxvY2tfdCB2 Y21kX2xvY2s7ICAgICAgIC8qIFByb3RlY3RzIHRoZSB2aXJ0dWFsIGNvbW1hbmQgYnVmZmVyLCB3 aGljaCAqLwpAQCAtMTY2LDYgKzE2NywyMCBAQCBzdGF0aWMgc3RydWN0IHZjcHUgKmdldF92Y3B1 X2Zyb21fY29sbGVjdGlvbihzdHJ1Y3QgdmlydF9pdHMgKml0cywKICNkZWZpbmUgREVWX1RBQkxF X0VOVFJZKGFkZHIsIGJpdHMpICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAoKChhZGRy KSAmIEdFTk1BU0soNTEsIDgpKSB8ICgoKGJpdHMpIC0gMSkgJiBHRU5NQVNLKDQsIDApKSkKIAor LyogU2V0IHRoZSBhZGRyZXNzIG9mIGFuIElUVCBmb3IgYSBnaXZlbiBkZXZpY2UgSUQuICovCitz dGF0aWMgaW50IGl0c19zZXRfaXR0X2FkZHJlc3Moc3RydWN0IHZpcnRfaXRzICppdHMsIHVpbnQz Ml90IGRldmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3QgaXR0X2Fk ZHJlc3MsIHVpbnQzMl90IG5yX2JpdHMpCit7CisgICAgcGFkZHJfdCBhZGRyID0gZ2V0X2Jhc2Vy X3BoeXNfYWRkcihpdHMtPmJhc2VyX2Rldik7CisgICAgdWludDY0X3QgaXR0X2VudHJ5ID0gREVW X1RBQkxFX0VOVFJZKGl0dF9hZGRyZXNzLCBucl9iaXRzKTsKKworICAgIGlmICggZGV2aWQgPj0g aXRzLT5tYXhfZGV2aWNlcyApCisgICAgICAgIHJldHVybiAtRU5PRU5UOworCisgICAgcmV0dXJu IHZnaWNfYWNjZXNzX2d1ZXN0X21lbW9yeShpdHMtPmQsIGFkZHIgKyBkZXZpZCAqIHNpemVvZih1 aW50NjRfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaXR0X2VudHJ5 LCBzaXplb2YoaXR0X2VudHJ5KSwgdHJ1ZSk7Cit9CisKIC8qCiAgKiBMb29rdXAgdGhlIGFkZHJl c3Mgb2YgdGhlIEludGVycnVwdCBUcmFuc2xhdGlvbiBUYWJsZSBhc3NvY2lhdGVkIHdpdGgKICAq IHRoYXQgZGV2aWNlIElELgpAQCAtMzk4LDYgKzQxMywxMjUgQEAgc3RhdGljIGludCBpdHNfaGFu ZGxlX21hcGMoc3RydWN0IHZpcnRfaXRzICppdHMsIHVpbnQ2NF90ICpjbWRwdHIpCiAgICAgcmV0 dXJuIDA7CiB9CiAKKy8qIE11c3QgYmUgY2FsbGVkIHdpdGggdGhlIElUUyBsb2NrIGhlbGQuICov CitzdGF0aWMgaW50IGl0c19kaXNjYXJkX2V2ZW50KHN0cnVjdCB2aXJ0X2l0cyAqaXRzLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB2ZGV2aWQsIHVpbnQzMl90IHZldmlk KQoreworICAgIHN0cnVjdCBwZW5kaW5nX2lycSAqcDsKKyAgICB1bnNpZ25lZCBsb25nIGZsYWdz OworICAgIHN0cnVjdCB2Y3B1ICp2Y3B1OworICAgIHVpbnQzMl90IHZscGk7CisKKyAgICBBU1NF UlQoc3Bpbl9pc19sb2NrZWQoJml0cy0+aXRzX2xvY2spKTsKKworICAgIGlmICggIXJlYWRfaXR0 ZV9sb2NrZWQoaXRzLCB2ZGV2aWQsIHZldmlkLCAmdmNwdSwgJnZscGkpICkKKyAgICAgICAgcmV0 dXJuIC1FTk9FTlQ7CisKKyAgICBpZiAoIHZscGkgPT0gSU5WQUxJRF9MUEkgKQorICAgICAgICBy ZXR1cm4gLUVOT0VOVDsKKworICAgIC8qIExvY2sgdGhpcyBWQ1BVJ3MgVkdJQyB0byBtYWtlIHN1 cmUgbm9ib2R5IGlzIHVzaW5nIHRoZSBwZW5kaW5nX2lycS4gKi8KKyAgICBzcGluX2xvY2tfaXJx c2F2ZSgmdmNwdS0+YXJjaC52Z2ljLmxvY2ssIGZsYWdzKTsKKworICAgIC8qIFJlbW92ZSB0aGUg cGVuZGluZ19pcnEgZnJvbSB0aGUgdHJlZS4gKi8KKyAgICB3cml0ZV9sb2NrKCZpdHMtPmQtPmFy Y2gudmdpYy5wZW5kX2xwaV90cmVlX2xvY2spOworICAgIHAgPSByYWRpeF90cmVlX2RlbGV0ZSgm aXRzLT5kLT5hcmNoLnZnaWMucGVuZF9scGlfdHJlZSwgdmxwaSk7CisgICAgd3JpdGVfdW5sb2Nr KCZpdHMtPmQtPmFyY2gudmdpYy5wZW5kX2xwaV90cmVlX2xvY2spOworCisgICAgaWYgKCAhcCAp CisgICAgeworICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2Y3B1LT5hcmNoLnZnaWMu bG9jaywgZmxhZ3MpOworCisgICAgICAgIHJldHVybiAtRU5PRU5UOworICAgIH0KKworICAgIC8q IENsZWFudXAgdGhlIHBlbmRpbmdfaXJxLCB0byBiZSByZXVzYWJsZSBsYXRlci4gKi8KKyAgICBs aXN0X2RlbF9pbml0KCZwLT5pbmZsaWdodCk7CisgICAgbGlzdF9kZWxfaW5pdCgmcC0+bHJfcXVl dWUpOworICAgIHAtPnN0YXR1cyA9IDA7CisgICAgcC0+bHIgPSBHSUNfSU5WQUxJRF9MUjsKKyAg ICBwLT5pcnEgPSBJTlZBTElEX0xQSTsKKworICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZj cHUtPmFyY2gudmdpYy5sb2NrLCBmbGFncyk7CisKKyAgICAvKiBSZW1vdmUgdGhlIGNvcnJlc3Bv bmRpbmcgaG9zdCBMUEkgZW50cnkgKi8KKyAgICByZXR1cm4gZ2ljdjNfcmVtb3ZlX2d1ZXN0X2V2 ZW50KGl0cy0+ZCwgaXRzLT5kb29yYmVsbF9hZGRyZXNzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdmRldmlkLCB2ZXZpZCk7Cit9CisKK3N0YXRpYyBpbnQgaXRzX3VubWFw X2RldmljZShzdHJ1Y3QgdmlydF9pdHMgKml0cywgdWludDMyX3QgZGV2aWQpCit7CisgICAgdWlu dDY0X3QgaXR0LCBldmlkOworICAgIGludCByZXQ7CisKKyAgICBzcGluX2xvY2soJml0cy0+aXRz X2xvY2spOworCisgICAgcmV0ID0gaXRzX2dldF9pdHQoaXRzLCBkZXZpZCwgJml0dCk7CisgICAg aWYgKCByZXQgKQorICAgIHsKKyAgICAgICAgc3Bpbl91bmxvY2soJml0cy0+aXRzX2xvY2spOwor ICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIGZvciAoIGV2aWQgPSAwOyBldmlkIDwg REVWX1RBQkxFX0lUVF9TSVpFKGl0dCk7IGV2aWQrKyApCisgICAgICAgIC8qIERvbid0IGNhcmUg YWJvdXQgZXJyb3JzIGhlcmUsIGNsZWFuIHVwIGFzIG11Y2ggYXMgcG9zc2libGUuICovCisgICAg ICAgIGl0c19kaXNjYXJkX2V2ZW50KGl0cywgZGV2aWQsIGV2aWQpOworCisgICAgc3Bpbl91bmxv Y2soJml0cy0+aXRzX2xvY2spOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaXRz X2hhbmRsZV9tYXBkKHN0cnVjdCB2aXJ0X2l0cyAqaXRzLCB1aW50NjRfdCAqY21kcHRyKQorewor ICAgIC8qIHNpemUgYW5kIGRldmlkIGdldCB2YWxpZGF0ZWQgYnkgdGhlIGZ1bmN0aW9ucyBjYWxs ZWQgYmVsb3cuICovCisgICAgdWludDMyX3QgZGV2aWQgPSBpdHNfY21kX2dldF9kZXZpY2VpZChj bWRwdHIpOworICAgIHVuc2lnbmVkIGludCBzaXplID0gaXRzX2NtZF9nZXRfc2l6ZShjbWRwdHIp ICsgMTsKKyAgICBib29sIHZhbGlkID0gaXRzX2NtZF9nZXRfdmFsaWRiaXQoY21kcHRyKTsKKyAg ICBwYWRkcl90IGl0dF9hZGRyID0gaXRzX2NtZF9nZXRfaXR0YWRkcihjbWRwdHIpOworICAgIGlu dCByZXQ7CisKKyAgICAvKiBTYW5pdGl6ZSB0aGUgbnVtYmVyIG9mIGV2ZW50cy4gKi8KKyAgICBp ZiAoIHZhbGlkICYmIChzaXplID4gaXRzLT5ldmlkX2JpdHMpICkKKyAgICAgICAgcmV0dXJuIC0x OworCisgICAgLyoKKyAgICAgKiBUaGVyZSBpcyBubyBlYXN5IGFuZCBjbGVhbiB3YXkgZm9yIFhl biB0byBrbm93IHRoZSBJVFMgZGV2aWNlIElEIG9mIGEKKyAgICAgKiBwYXJ0aWN1bGFyIChQQ0kp IGRldmljZSwgc28gd2UgaGF2ZSB0byByZWx5IG9uIHRoZSBndWVzdCB0ZWxsaW5nCisgICAgICog dXMgYWJvdXQgaXQuIEZvciAqbm93KiB3ZSBhcmUganVzdCB1c2luZyB0aGUgZGV2aWNlIElEICpE b20wKiB1c2VzLAorICAgICAqIGJlY2F1c2UgdGhlIGRyaXZlciB0aGVyZSBoYXMgdGhlIGFjdHVh bCBrbm93bGVkZ2UuCisgICAgICogRXZlbnR1YWxseSB0aGlzIHdpbGwgYmUgcmVwbGFjZWQgd2l0 aCBhIGRlZGljYXRlZCBoeXBlcmNhbGwgdG8KKyAgICAgKiBhbm5vdW5jZSBwYXNzLXRocm91Z2gg b2YgZGV2aWNlcy4KKyAgICAgKi8KKyAgICBpZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihpdHMtPmQp ICkKKyAgICB7CisgICAgICAgIGlmICggIXZhbGlkICkKKyAgICAgICAgICAgIC8qIERpc2NhcmQg YWxsIGV2ZW50cyBhbmQgcmVtb3ZlIHBlbmRpbmcgTFBJcy4gKi8KKyAgICAgICAgICAgIGl0c191 bm1hcF9kZXZpY2UoaXRzLCBkZXZpZCk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogRG9tMCdz IElUU2VzIGFyZSBtYXBwZWQgMToxLCBzbyBib3RoIGFkZHJlc3NlcyBhcmUgdGhlIHNhbWUuCisg ICAgICAgICAqIEFsc28gdGhlIGRldmljZSBJRHMgYXJlIGVxdWFsLgorICAgICAgICAgKi8KKyAg ICAgICAgcmV0ID0gZ2ljdjNfaXRzX21hcF9ndWVzdF9kZXZpY2UoaXRzLT5kLCBpdHMtPmRvb3Ji ZWxsX2FkZHJlc3MsIGRldmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpdHMtPmRvb3JiZWxsX2FkZHJlc3MsIGRldmlkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBCSVQoc2l6ZSksIHZhbGlkKTsKKyAgICAgICAgaWYgKCByZXQg JiYgdmFsaWQgKQorICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBzcGluX2xv Y2soJml0cy0+aXRzX2xvY2spOworCisgICAgaWYgKCB2YWxpZCApCisgICAgICAgIHJldCA9IGl0 c19zZXRfaXR0X2FkZHJlc3MoaXRzLCBkZXZpZCwgaXR0X2FkZHIsIHNpemUpOworICAgIGVsc2UK KyAgICAgICAgcmV0ID0gaXRzX3NldF9pdHRfYWRkcmVzcyhpdHMsIGRldmlkLCBJTlZBTElEX1BB RERSLCAxKTsKKworICAgIHNwaW5fdW5sb2NrKCZpdHMtPml0c19sb2NrKTsKKworICAgIHJldHVy biByZXQ7Cit9CisKICNkZWZpbmUgSVRTX0NNRF9CVUZGRVJfU0laRShiYXNlcikgICAgICAoKCgo YmFzZXIpICYgMHhmZikgKyAxKSA8PCAxMikKICNkZWZpbmUgSVRTX0NNRF9PRkZTRVQocmVnKSAg ICAgICAgICAgICAoKHJlZykgJiBHRU5NQVNLKDE5LCA1KSkKIApAQCAtNDM2LDYgKzU3MCw5IEBA IHN0YXRpYyBpbnQgdmdpY19pdHNfaGFuZGxlX2NtZHMoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0 IHZpcnRfaXRzICppdHMpCiAgICAgICAgIGNhc2UgR0lUU19DTURfTUFQQzoKICAgICAgICAgICAg IHJldCA9IGl0c19oYW5kbGVfbWFwYyhpdHMsIGNvbW1hbmQpOwogICAgICAgICAgICAgYnJlYWs7 CisgICAgICAgIGNhc2UgR0lUU19DTURfTUFQRDoKKyAgICAgICAgICAgIHJldCA9IGl0c19oYW5k bGVfbWFwZChpdHMsIGNvbW1hbmQpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug R0lUU19DTURfU1lOQzoKICAgICAgICAgICAgIC8qIFdlIGhhbmRsZSBJVFMgY29tbWFuZHMgc3lu Y2hyb25vdXNseSwgc28gd2UgaWdub3JlIFNZTkMuICovCiAgICAgICAgICAgICBicmVhazsKZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljX3YzX2l0cy5oIGIveGVuL2luY2x1ZGUv YXNtLWFybS9naWNfdjNfaXRzLmgKaW5kZXggNDBmNGVmNS4uNjBmZmRiNiAxMDA2NDQKLS0tIGEv eGVuL2luY2x1ZGUvYXNtLWFybS9naWNfdjNfaXRzLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFy bS9naWNfdjNfaXRzLmgKQEAgLTE2OSw2ICsxNjksMTIgQEAgaW50IGdpY3YzX2l0c19tYXBfZ3Vl c3RfZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsCiBpbnQgZ2ljdjNfYWxsb2NhdGVfaG9zdF9scGlf YmxvY2soc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3QgKmZpcnN0X2xwaSk7CiB2b2lkIGdpY3Yz X2ZyZWVfaG9zdF9scGlfYmxvY2sodWludDMyX3QgZmlyc3RfbHBpKTsKIAoraW50IGdpY3YzX3Jl bW92ZV9ndWVzdF9ldmVudChzdHJ1Y3QgZG9tYWluICpkLCBwYWRkcl90IHZkb29yYmVsbF9hZGRy ZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHZkZXZp ZCwgdWludDMyX3QgdmV2ZW50aWQpOworCit2b2lkIGdpY3YzX2xwaV91cGRhdGVfaG9zdF9lbnRy eSh1aW50MzJfdCBob3N0X2xwaSwgaW50IGRvbWFpbl9pZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGludCB2Y3B1X2lkLCB1aW50MzJfdCB2aXJ0X2xwaSk7CisK ICNlbHNlCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBnaWN2M19pdHNfZHRfaW5pdChjb25zdCBzdHJ1 Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGUpCi0tIAoyLjguMgoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=