From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH v2 06/27] ARM: GICv3 ITS: introduce device mapping Date: Thu, 16 Mar 2017 11:20:09 +0000 Message-ID: <20170316112030.20419-7-andre.przywara@arm.com> References: <20170316112030.20419-1-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 1coTQo-0007Z2-UH for xen-devel@lists.xenproject.org; Thu, 16 Mar 2017 11:18:59 +0000 In-Reply-To: <20170316112030.20419-1-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, Shanker Donthineni , Vijay Kilari List-Id: xen-devel@lists.xenproject.org VGhlIElUUyB1c2VzIGRldmljZSBJRHMgdG8gbWFwIExQSXMgdG8gYSBkZXZpY2UuIERvbTAgd2ls bCBsYXRlciB1c2UKdGhvc2UgSURzLCB3aGljaCB3ZSBkaXJlY3RseSBwYXNzIG9uIHRvIHRoZSBo b3N0LgpGb3IgdGhpcyB3ZSBoYXZlIHRvIG1hcCBlYWNoIGRldmljZSB0aGF0IERvbTAgbWF5IHJl cXVlc3QgdG8gYSBob3N0CklUUyBkZXZpY2Ugd2l0aCB0aGUgc2FtZSBpZGVudGlmaWVyLgpBbGxv Y2F0ZSB0aGUgcmVzcGVjdGl2ZSBtZW1vcnkgYW5kIGVudGVyIGVhY2ggZGV2aWNlIGludG8gYW4g cmJ0cmVlIHRvCmxhdGVyIGJlIGFibGUgdG8gaXRlcmF0ZSBvdmVyIGl0IG9yIHRvIGVhc2lseSB0 ZWFyZG93biBndWVzdHMuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZSBQcnp5d2FyYSA8YW5kcmUucHJ6 eXdhcmFAYXJtLmNvbT4KLS0tCiB4ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jICAgICAgICB8IDIw NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9hcmNoL2FybS92 Z2ljLXYzLmMgICAgICAgICAgIHwgICAzICsKIHhlbi9pbmNsdWRlL2FzbS1hcm0vZG9tYWluLmgg ICAgIHwgICAzICsKIHhlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljX3YzX2l0cy5oIHwgIDE4ICsrKysK IDQgZmlsZXMgY2hhbmdlZCwgMjMxIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS94ZW4vYXJj aC9hcm0vZ2ljLXYzLWl0cy5jIGIveGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYwppbmRleCA1YzEx YjBkLi42MGIxNWI1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jCisrKyBi L3hlbi9hcmNoL2FybS9naWMtdjMtaXRzLmMKQEAgLTIxLDYgKzIxLDggQEAKICNpbmNsdWRlIDx4 ZW4vbGliLmg+CiAjaW5jbHVkZSA8eGVuL2RlbGF5Lmg+CiAjaW5jbHVkZSA8eGVuL21tLmg+Cisj aW5jbHVkZSA8eGVuL3JidHJlZS5oPgorI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgogI2luY2x1ZGUg PHhlbi9zaXplcy5oPgogI2luY2x1ZGUgPGFzbS9naWMuaD4KICNpbmNsdWRlIDxhc20vZ2ljX3Yz X2RlZnMuaD4KQEAgLTMyLDYgKzM0LDE3IEBACiAKIExJU1RfSEVBRChob3N0X2l0c19saXN0KTsK IAorc3RydWN0IGl0c19kZXZpY2VzIHsKKyAgICBzdHJ1Y3QgcmJfbm9kZSByYm5vZGU7CisgICAg c3RydWN0IGhvc3RfaXRzICpod19pdHM7CisgICAgdm9pZCAqaXR0X2FkZHI7CisgICAgcGFkZHJf dCBndWVzdF9kb29yYmVsbDsKKyAgICB1aW50MzJfdCBob3N0X2RldmlkOworICAgIHVpbnQzMl90 IGd1ZXN0X2RldmlkOworICAgIHVpbnQzMl90IGV2ZW50aWRzOworICAgIHVpbnQzMl90ICpob3N0 X2xwaXM7Cit9OworCiBib29sIGdpY3YzX2l0c19ob3N0X2hhc19pdHModm9pZCkKIHsKICAgICBy ZXR1cm4gIWxpc3RfZW1wdHkoJmhvc3RfaXRzX2xpc3QpOwpAQCAtMTQ5LDYgKzE2MiwyNCBAQCBz dGF0aWMgaW50IGl0c19zZW5kX2NtZF9tYXBjKHN0cnVjdCBob3N0X2l0cyAqaXRzLCB1aW50MzJf dCBjb2xsZWN0aW9uX2lkLAogICAgIHJldHVybiBpdHNfc2VuZF9jb21tYW5kKGl0cywgY21kKTsK IH0KIAorc3RhdGljIGludCBpdHNfc2VuZF9jbWRfbWFwZChzdHJ1Y3QgaG9zdF9pdHMgKml0cywg dWludDMyX3QgZGV2aWNlaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3Qg c2l6ZV9iaXRzLCBwYWRkcl90IGl0dF9hZGRyLCBib29sIHZhbGlkKQoreworICAgIHVpbnQ2NF90 IGNtZFs0XTsKKworICAgIGlmICggdmFsaWQgKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHNpemVf Yml0cyA8IDMyKTsKKyAgICAgICAgQVNTRVJUKCEoaXR0X2FkZHIgJiB+R0VOTUFTSyg1MSwgOCkp KTsKKyAgICB9CisgICAgY21kWzBdID0gR0lUU19DTURfTUFQRCB8ICgodWludDY0X3QpZGV2aWNl aWQgPDwgMzIpOworICAgIGNtZFsxXSA9IHZhbGlkID8gc2l6ZV9iaXRzIDogMHgwMDsKKyAgICBj bWRbMl0gPSB2YWxpZCA/IChpdHRfYWRkciB8IEdJVFNfVkFMSURfQklUKSA6IDB4MDA7CisgICAg Y21kWzNdID0gMHgwMDsKKworICAgIHJldHVybiBpdHNfc2VuZF9jb21tYW5kKGl0cywgY21kKTsK K30KKwogLyogU2V0IHVwIHRoZSAoMToxKSBjb2xsZWN0aW9uIG1hcHBpbmcgZm9yIHRoZSBnaXZl biBob3N0IENQVS4gKi8KIGludCBnaWN2M19pdHNfc2V0dXBfY29sbGVjdGlvbih1bnNpZ25lZCBp bnQgY3B1KQogewpAQCAtMzc5LDYgKzQxMCw3IEBAIHN0YXRpYyBpbnQgZ2ljdjNfaXRzX2luaXRf c2luZ2xlX2l0cyhzdHJ1Y3QgaG9zdF9pdHMgKmh3X2l0cykKICAgICBkZXZpZF9iaXRzID0gbWlu KGRldmlkX2JpdHMsIG1heF9pdHNfZGV2aWNlX2JpdHMpOwogICAgIGlmICggcmVnICYgR0lUU19U WVBFUl9QVEEgKQogICAgICAgICBod19pdHMtPmZsYWdzIHw9IEhPU1RfSVRTX1VTRVNfUFRBOwor ICAgIGh3X2l0cy0+aXR0ZV9zaXplID0gR0lUU19UWVBFUl9JVFRfU0laRShyZWcpOwogCiAgICAg Zm9yICggaSA9IDA7IGkgPCBHSVRTX0JBU0VSX05SX1JFR1M7IGkrKyApCiAgICAgewpAQCAtNDI4 LDYgKzQ2MCwxODAgQEAgaW50IGdpY3YzX2l0c19pbml0KHZvaWQpCiAgICAgcmV0dXJuIDA7CiB9 CiAKK3N0YXRpYyBpbnQgcmVtb3ZlX21hcHBlZF9ndWVzdF9kZXZpY2Uoc3RydWN0IGl0c19kZXZp Y2VzICpkZXYpCit7CisgICAgaW50IHJldDsKKworICAgIGlmICggZGV2LT5od19pdHMgKQorICAg IHsKKyAgICAgICAgaW50IHJldCA9IGl0c19zZW5kX2NtZF9tYXBkKGRldi0+aHdfaXRzLCBkZXYt Pmhvc3RfZGV2aWQsIDAsIDAsIGZhbHNlKTsKKyAgICAgICAgaWYgKCByZXQgKQorICAgICAgICAg ICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICByZXQgPSBnaWN2M19pdHNfd2FpdF9jb21tYW5k cyhkZXYtPmh3X2l0cyk7CisgICAgaWYgKCByZXQgKQorICAgICAgICByZXR1cm4gcmV0OworCisg ICAgeGZyZWUoZGV2LT5pdHRfYWRkcik7CisgICAgeGZyZWUoZGV2KTsKKworICAgIHJldHVybiAw OworfQorCitzdGF0aWMgc3RydWN0IGhvc3RfaXRzICpnaWN2M19pdHNfZmluZF9ieV9kb29yYmVs bChwYWRkcl90IGRvb3JiZWxsX2FkZHJlc3MpCit7CisgICAgc3RydWN0IGhvc3RfaXRzICpod19p dHM7CisKKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGh3X2l0cywgJmhvc3RfaXRzX2xpc3QsIGVu dHJ5KQorICAgIHsKKyAgICAgICAgaWYgKCBod19pdHMtPmFkZHIgKyBJVFNfRE9PUkJFTExfT0ZG U0VUID09IGRvb3JiZWxsX2FkZHJlc3MgKQorICAgICAgICAgICAgcmV0dXJuIGh3X2l0czsKKyAg ICB9CisKKyAgICByZXR1cm4gTlVMTDsKK30KKworc3RhdGljIGludCBjb21wYXJlX2l0c19ndWVz dF9kZXZpY2VzKHN0cnVjdCBpdHNfZGV2aWNlcyAqZGV2LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBhZGRyX3QgZG9vcmJlbGwsIHVpbnQzMl90IGRldmlkKQoreworICAg IGlmICggZGV2LT5ndWVzdF9kb29yYmVsbCA8IGRvb3JiZWxsICkKKyAgICAgICAgcmV0dXJuIC0x OworCisgICAgaWYgKCBkZXYtPmd1ZXN0X2Rvb3JiZWxsID4gZG9vcmJlbGwgKQorICAgICAgICBy ZXR1cm4gMTsKKworICAgIGlmICggZGV2LT5ndWVzdF9kZXZpZCA8IGRldmlkICkKKyAgICAgICAg cmV0dXJuIC0xOworCisgICAgaWYgKCBkZXYtPmd1ZXN0X2RldmlkID4gZGV2aWQgKQorICAgICAg ICByZXR1cm4gMTsKKworICAgIHJldHVybiAwOworfQorCisvKgorICogTWFwIGEgaGFyZHdhcmUg ZGV2aWNlLCBpZGVudGlmaWVkIGJ5IGEgY2VydGFpbiBob3N0IElUUyBhbmQgaXRzIGRldmljZSBJ RAorICogdG8gZG9tYWluIGQsIGEgZ3Vlc3QgSVRTIChpZGVudGlmaWVkIGJ5IGl0cyBkb29yYmVs bCBhZGRyZXNzKSBhbmQgZGV2aWNlIElELgorICogQWxzbyBwcm92aWRlIHRoZSBudW1iZXIgb2Yg ZXZlbnRzIChNU0lzKSBuZWVkZWQgZm9yIHRoYXQgZGV2aWNlLgorICogVGhpcyBkb2VzIG5vdCBj aGVjayBpZiB0aGlzIHBhcnRpY3VsYXIgaGFyZHdhcmUgZGV2aWNlIGlzIGFscmVhZHkgbWFwcGVk CisgKiBhdCBhbm90aGVyIGRvbWFpbiwgaXQgaXMgZXhwZWN0ZWQgdGhhdCB0aGlzIHdvdWxkIGJl IGRvbmUgYnkgdGhlIGNhbGxlci4KKyAqLworaW50IGdpY3YzX2l0c19tYXBfZ3Vlc3RfZGV2aWNl KHN0cnVjdCBkb21haW4gKmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZHJf dCBob3N0X2Rvb3JiZWxsLCB1aW50MzJfdCBob3N0X2RldmlkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBhZGRyX3QgZ3Vlc3RfZG9vcmJlbGwsIHVpbnQzMl90IGd1ZXN0X2Rldmlk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG5yX2V2ZW50cywgYm9v bCB2YWxpZCkKK3sKKyAgICB2b2lkICppdHRfYWRkciA9IE5VTEw7CisgICAgc3RydWN0IGhvc3Rf aXRzICpod19pdHM7CisgICAgc3RydWN0IGl0c19kZXZpY2VzICpkZXYgPSBOVUxMLCAqdGVtcDsK KyAgICBzdHJ1Y3QgcmJfbm9kZSAqKm5ldyA9ICZkLT5hcmNoLnZnaWMuaXRzX2RldmljZXMucmJf bm9kZSwgKnBhcmVudCA9IE5VTEw7CisgICAgaW50IHJldCA9IC1FTk9FTlQ7CisKKyAgICBod19p dHMgPSBnaWN2M19pdHNfZmluZF9ieV9kb29yYmVsbChob3N0X2Rvb3JiZWxsKTsKKyAgICBpZiAo ICFod19pdHMgKQorICAgICAgICByZXR1cm4gcmV0OworCisgICAgLyogY2hlY2sgZm9yIGFscmVh ZHkgZXhpc3RpbmcgbWFwcGluZ3MgKi8KKyAgICBzcGluX2xvY2soJmQtPmFyY2gudmdpYy5pdHNf ZGV2aWNlc19sb2NrKTsKKyAgICB3aGlsZSAoICpuZXcgKQorICAgIHsKKyAgICAgICAgdGVtcCA9 IHJiX2VudHJ5KCpuZXcsIHN0cnVjdCBpdHNfZGV2aWNlcywgcmJub2RlKTsKKworICAgICAgICBw YXJlbnQgPSAqbmV3OworICAgICAgICBpZiAoICFjb21wYXJlX2l0c19ndWVzdF9kZXZpY2VzKHRl bXAsIGd1ZXN0X2Rvb3JiZWxsLCBndWVzdF9kZXZpZCkgKQorICAgICAgICB7CisgICAgICAgICAg ICBpZiAoICF2YWxpZCApCisgICAgICAgICAgICAgICAgcmJfZXJhc2UoJnRlbXAtPnJibm9kZSwg JmQtPmFyY2gudmdpYy5pdHNfZGV2aWNlcyk7CisKKyAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZk LT5hcmNoLnZnaWMuaXRzX2RldmljZXNfbG9jayk7CisKKyAgICAgICAgICAgIGlmICggdmFsaWQg KQorICAgICAgICAgICAgICAgIHJldHVybiAtRUJVU1k7CisKKyAgICAgICAgICAgIHJldHVybiBy ZW1vdmVfbWFwcGVkX2d1ZXN0X2RldmljZSh0ZW1wKTsKKyAgICAgICAgfQorCisgICAgICAgIGlm ICggY29tcGFyZV9pdHNfZ3Vlc3RfZGV2aWNlcyh0ZW1wLCBndWVzdF9kb29yYmVsbCwgZ3Vlc3Rf ZGV2aWQpID4gMCApCisgICAgICAgICAgICBuZXcgPSAmKCgqbmV3KS0+cmJfbGVmdCk7CisgICAg ICAgIGVsc2UKKyAgICAgICAgICAgIG5ldyA9ICYoKCpuZXcpLT5yYl9yaWdodCk7CisgICAgfQor CisgICAgaWYgKCAhdmFsaWQgKQorICAgICAgICBnb3RvIG91dF91bmxvY2s7CisKKyAgICByZXQg PSAtRU5PTUVNOworCisgICAgLyogQW4gSW50ZXJydXB0IFRyYW5zbGF0aW9uIFRhYmxlIG5lZWRz IHRvIGJlIDI1Ni1ieXRlIGFsaWduZWQuICovCisgICAgaXR0X2FkZHIgPSBfeHphbGxvYyhucl9l dmVudHMgKiBod19pdHMtPml0dGVfc2l6ZSwgMjU2KTsKKyAgICBpZiAoICFpdHRfYWRkciApCisg ICAgICAgIGdvdG8gb3V0X3VubG9jazsKKworICAgIGRldiA9IHh6YWxsb2Moc3RydWN0IGl0c19k ZXZpY2VzKTsKKyAgICBpZiAoICFkZXYgKQorICAgICAgICBnb3RvIG91dF91bmxvY2s7CisKKyAg ICByZXQgPSBpdHNfc2VuZF9jbWRfbWFwZChod19pdHMsIGhvc3RfZGV2aWQsIGZscyhucl9ldmVu dHMgLSAxKSAtIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlydF90b19tYWRkcihp dHRfYWRkciksIHRydWUpOworICAgIGlmICggcmV0ICkKKyAgICAgICAgZ290byBvdXRfdW5sb2Nr OworCisgICAgZGV2LT5pdHRfYWRkciA9IGl0dF9hZGRyOworICAgIGRldi0+aHdfaXRzID0gaHdf aXRzOworICAgIGRldi0+Z3Vlc3RfZG9vcmJlbGwgPSBndWVzdF9kb29yYmVsbDsKKyAgICBkZXYt Pmd1ZXN0X2RldmlkID0gZ3Vlc3RfZGV2aWQ7CisgICAgZGV2LT5ob3N0X2RldmlkID0gaG9zdF9k ZXZpZDsKKyAgICBkZXYtPmV2ZW50aWRzID0gbnJfZXZlbnRzOworCisgICAgcmJfbGlua19ub2Rl KCZkZXYtPnJibm9kZSwgcGFyZW50LCBuZXcpOworICAgIHJiX2luc2VydF9jb2xvcigmZGV2LT5y Ym5vZGUsICZkLT5hcmNoLnZnaWMuaXRzX2RldmljZXMpOworCisgICAgc3Bpbl91bmxvY2soJmQt PmFyY2gudmdpYy5pdHNfZGV2aWNlc19sb2NrKTsKKworICAgIHJldHVybiAwOworCitvdXRfdW5s b2NrOgorICAgIHNwaW5fdW5sb2NrKCZkLT5hcmNoLnZnaWMuaXRzX2RldmljZXNfbG9jayk7Cisg ICAgaWYgKCBkZXYgKQorICAgICAgICB4ZnJlZShkZXYtPmhvc3RfbHBpcyk7CisgICAgeGZyZWUo aXR0X2FkZHIpOworICAgIHhmcmVlKGRldik7CisgICAgcmV0dXJuIHJldDsKK30KKworLyogUmVt b3ZpbmcgYW55IGNvbm5lY3Rpb25zIGEgZG9tYWluIGhhZCB0byBhbnkgSVRTIGluIHRoZSBzeXN0 ZW0uICovCit2b2lkIGdpY3YzX2l0c191bm1hcF9hbGxfZGV2aWNlcyhzdHJ1Y3QgZG9tYWluICpk KQoreworICAgIHN0cnVjdCByYl9ub2RlICp2aWN0aW07CisgICAgc3RydWN0IGl0c19kZXZpY2Vz ICpkZXY7CisKKyAgICAvKgorICAgICAqIFRoaXMgaXMgYW4gZWFzaWx5IHJlYWRhYmxlLCB5ZXQg aW5lZmZpY2llbnQgaW1wbGVtZW50YXRpb24uCisgICAgICogSXQgdXNlcyB0aGUgcHJvdmlkZWQg aXRlcmF0aW9uIHdyYXBwZXIgYW5kIGVyYXNlcyBlYWNoIG5vZGUsIHdoaWNoCisgICAgICogcG9z c2libHkgdHJpZ2dlcnMgcmViYWxhbmNpbmcuCisgICAgICogVGhpcyBzZWVtcyBvdmVya2lsbCBz aW5jZSB3ZSBhcmUgZ29pbmcgdG8gYWJvbGlzaCB0aGUgd2hvbGUgdHJlZSwgYnV0CisgICAgICog YXZvaWRzIGFuIG9wZW4tY29kZWQgcmUtaW1wbGVtZW50YXRpb24gb2YgdGhlIHRyYXZlcnNhbCBm dW5jdGlvbnMgd2l0aAorICAgICAqIHNvbWUgcmVjdXJzaXZlIGZ1bmN0aW9uIGNhbGxzLgorICAg ICAqIFBlcmZvcm1hbmNlIGRvZXMgbm90IG1hdHRlciBoZXJlLCBzaW5jZSB3ZSBhcmUgZGVzdHJv eWluZyBhIGRvbWFpbi4KKyAgICAgKi8KK3Jlc3RhcnQ6CisgICAgc3Bpbl9sb2NrKCZkLT5hcmNo LnZnaWMuaXRzX2RldmljZXNfbG9jayk7CisgICAgaWYgKCAodmljdGltID0gcmJfZmlyc3QoJmQt PmFyY2gudmdpYy5pdHNfZGV2aWNlcykpICkKKyAgICB7CisgICAgICAgIGRldiA9IHJiX2VudHJ5 KHZpY3RpbSwgc3RydWN0IGl0c19kZXZpY2VzLCByYm5vZGUpOworICAgICAgICByYl9lcmFzZSh2 aWN0aW0sICZkLT5hcmNoLnZnaWMuaXRzX2RldmljZXMpOworCisgICAgICAgIHNwaW5fdW5sb2Nr KCZkLT5hcmNoLnZnaWMuaXRzX2RldmljZXNfbG9jayk7CisKKyAgICAgICAgcmVtb3ZlX21hcHBl ZF9ndWVzdF9kZXZpY2UoZGV2KTsKKworICAgICAgICBnb3RvIHJlc3RhcnQ7CisgICAgfQorCisg ICAgc3Bpbl91bmxvY2soJmQtPmFyY2gudmdpYy5pdHNfZGV2aWNlc19sb2NrKTsKK30KKwogLyog U2NhbiB0aGUgRFQgZm9yIGFueSBJVFMgbm9kZXMgYW5kIGNyZWF0ZSBhIGxpc3Qgb2YgaG9zdCBJ VFNlcyBvdXQgb2YgaXQuICovCiB2b2lkIGdpY3YzX2l0c19kdF9pbml0KGNvbnN0IHN0cnVjdCBk dF9kZXZpY2Vfbm9kZSAqbm9kZSkKIHsKQEAgLTQ1NSw2ICs2NjEsNyBAQCB2b2lkIGdpY3YzX2l0 c19kdF9pbml0KGNvbnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9kZSkKICAgICAgICAgaXRz X2RhdGEtPmFkZHIgPSBhZGRyOwogICAgICAgICBpdHNfZGF0YS0+c2l6ZSA9IHNpemU7CiAgICAg ICAgIGl0c19kYXRhLT5kdF9ub2RlID0gaXRzOworICAgICAgICBzcGluX2xvY2tfaW5pdCgmaXRz X2RhdGEtPmNtZF9sb2NrKTsKIAogICAgICAgICBwcmludGsoIkdJQ3YzOiBGb3VuZCBJVFMgQDB4 JWx4XG4iLCBhZGRyKTsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZnaWMtdjMuYyBiL3hl bi9hcmNoL2FybS92Z2ljLXYzLmMKaW5kZXggZDYxNDc5ZC4uMWZhZGIwMCAxMDA2NDQKLS0tIGEv eGVuL2FyY2gvYXJtL3ZnaWMtdjMuYworKysgYi94ZW4vYXJjaC9hcm0vdmdpYy12My5jCkBAIC0x NDUwLDYgKzE0NTAsOSBAQCBzdGF0aWMgaW50IHZnaWNfdjNfZG9tYWluX2luaXQoc3RydWN0IGRv bWFpbiAqZCkKICAgICBkLT5hcmNoLnZnaWMubnJfcmVnaW9ucyA9IHJkaXN0X2NvdW50OwogICAg IGQtPmFyY2gudmdpYy5yZGlzdF9yZWdpb25zID0gcmRpc3RfcmVnaW9uczsKIAorICAgIHNwaW5f bG9ja19pbml0KCZkLT5hcmNoLnZnaWMuaXRzX2RldmljZXNfbG9jayk7CisgICAgZC0+YXJjaC52 Z2ljLml0c19kZXZpY2VzID0gUkJfUk9PVDsKKwogICAgIC8qCiAgICAgICogRG9tYWluIDAgZ2V0 cyB0aGUgaGFyZHdhcmUgYWRkcmVzcy4KICAgICAgKiBHdWVzdHMgZ2V0IHRoZSB2aXJ0dWFsIHBs YXRmb3JtIGxheW91dC4KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZG9tYWluLmgg Yi94ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oCmluZGV4IDJkNmZiYjEuLjAwYjljMWEgMTAw NjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZG9tYWluLmgKKysrIGIveGVuL2luY2x1ZGUv YXNtLWFybS9kb21haW4uaApAQCAtMTEsNiArMTEsNyBAQAogI2luY2x1ZGUgPGFzbS9naWMuaD4K ICNpbmNsdWRlIDxwdWJsaWMvaHZtL3BhcmFtcy5oPgogI2luY2x1ZGUgPHhlbi9zZXJpYWwuaD4K KyNpbmNsdWRlIDx4ZW4vcmJ0cmVlLmg+CiAKIHN0cnVjdCBodm1fZG9tYWluCiB7CkBAIC0xMDks NiArMTEwLDggQEAgc3RydWN0IGFyY2hfZG9tYWluCiAgICAgICAgIH0gKnJkaXN0X3JlZ2lvbnM7 CiAgICAgICAgIGludCBucl9yZWdpb25zOyAgICAgICAgICAgICAgICAgICAgIC8qIE51bWJlciBv ZiByZGlzdCByZWdpb25zICovCiAgICAgICAgIHVpbnQzMl90IHJkaXN0X3N0cmlkZTsgICAgICAg ICAgICAgIC8qIFJlLURpc3RyaWJ1dG9yIHN0cmlkZSAqLworICAgICAgICBzdHJ1Y3QgcmJfcm9v dCBpdHNfZGV2aWNlczsgICAgICAgICAvKiBkZXZpY2VzIG1hcHBlZCB0byBhbiBJVFMgKi8KKyAg ICAgICAgc3BpbmxvY2tfdCBpdHNfZGV2aWNlc19sb2NrOyAgICAgICAgLyogcHJvdGVjdHMgdGhl IGl0c19kZXZpY2VzIHRyZWUgKi8KICNlbmRpZgogICAgIH0gdmdpYzsKIApkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvYXNtLWFybS9naWNfdjNfaXRzLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL2dp Y192M19pdHMuaAppbmRleCA4YjQ5M2ZiLi4zNDIxZWEwIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS9hc20tYXJtL2dpY192M19pdHMuaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2dpY192M19p dHMuaApAQCAtNDgsNiArNDgsMTAgQEAKICNkZWZpbmUgR0lUU19UWVBFUl9ERVZJQ0VfSURfQklU UyhyKSAgICAoKChyICYgR0lUU19UWVBFUl9ERVZJRFNfTUFTSykgPj4gXAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSVRTX1RZUEVSX0RFVklEU19TSElG VCkgKyAxKQogI2RlZmluZSBHSVRTX1RZUEVSX0lEQklUU19TSElGVCAgICAgICAgIDgKKyNkZWZp bmUgR0lUU19UWVBFUl9JVFRfU0laRV9TSElGVCAgICAgICA0CisjZGVmaW5lIEdJVFNfVFlQRVJf SVRUX1NJWkVfTUFTSyAgICAgICAgKDB4ZlVMIDw8IEdJVFNfVFlQRVJfSVRUX1NJWkVfU0hJRlQp CisjZGVmaW5lIEdJVFNfVFlQRVJfSVRUX1NJWkUocikgICAgICAgICAgKCgoKHIpICYgR0lUU19U WVBFUl9JVFRfU0laRV9NQVNLKSA+PiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBHSVRTX1RZUEVSX0lUVF9TSVpFX1NISUZUKSArIDEpCiAKICNkZWZp bmUgR0lUU19JSURSX1ZBTFVFICAgICAgICAgICAgICAgICAweDM0YwogCkBAIC05NCw3ICs5OCwx MCBAQAogI2RlZmluZSBHSVRTX0NNRF9NT1ZBTEwgICAgICAgICAgICAgICAgIDB4MGUKICNkZWZp bmUgR0lUU19DTURfRElTQ0FSRCAgICAgICAgICAgICAgICAweDBmCiAKKyNkZWZpbmUgSVRTX0RP T1JCRUxMX09GRlNFVCAgICAgICAgICAgICAweDEwMDQwCisKICNpbmNsdWRlIDx4ZW4vZGV2aWNl X3RyZWUuaD4KKyNpbmNsdWRlIDx4ZW4vcmJ0cmVlLmg+CiAKICNkZWZpbmUgSE9TVF9JVFNfRkxV U0hfQ01EX1FVRVVFICAgICAgICAoMVUgPDwgMCkKICNkZWZpbmUgSE9TVF9JVFNfVVNFU19QVEEg ICAgICAgICAgICAgICAoMVUgPDwgMSkKQEAgLTEwOCw2ICsxMTUsNyBAQCBzdHJ1Y3QgaG9zdF9p dHMgewogICAgIHZvaWQgX19pb21lbSAqaXRzX2Jhc2U7CiAgICAgc3BpbmxvY2tfdCBjbWRfbG9j azsKICAgICB2b2lkICpjbWRfYnVmOworICAgIHVuc2lnbmVkIGludCBpdHRlX3NpemU7CiAgICAg dW5zaWduZWQgaW50IGZsYWdzOwogfTsKIApAQCAtMTM0LDYgKzE0MiwxNiBAQCB1aW50NjRfdCBn aWN2M19nZXRfcmVkaXN0X2FkZHJlc3ModW5zaWduZWQgaW50IGNwdSwgYm9vbCB1c2VfcHRhKTsK IC8qIE1hcCBhIGNvbGxlY3Rpb24gZm9yIHRoaXMgaG9zdCBDUFUgdG8gZWFjaCBob3N0IElUUy4g Ki8KIGludCBnaWN2M19pdHNfc2V0dXBfY29sbGVjdGlvbih1bnNpZ25lZCBpbnQgY3B1KTsKIAor LyoKKyAqIE1hcCBhIGRldmljZSBvbiB0aGUgaG9zdCBieSBhbGxvY2F0aW5nIGFuIElUVCBvbiB0 aGUgaG9zdCAoSVRTKS4KKyAqICJucl9ldmVudCIgc3BlY2lmaWVzIGhvdyBtYW55IGV2ZW50cyAo aW50ZXJydXB0cykgdGhpcyBkZXZpY2Ugd2lsbCBuZWVkLgorICogU2V0dGluZyAidmFsaWQiIHRv IGZhbHNlIGRlYWxsb2NhdGVzIHRoZSBkZXZpY2UuCisgKi8KK2ludCBnaWN2M19pdHNfbWFwX2d1 ZXN0X2RldmljZShzdHJ1Y3QgZG9tYWluICpkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBhZGRyX3QgaG9zdF9kb29yYmVsbCwgdWludDMyX3QgaG9zdF9kZXZpZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90IGd1ZXN0X2Rvb3JiZWxsLCB1aW50MzJfdCBn dWVzdF9kZXZpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBucl9l dmVudHMsIGJvb2wgdmFsaWQpOworCiAjZWxzZQogCiBzdGF0aWMgTElTVF9IRUFEKGhvc3RfaXRz X2xpc3QpOwotLSAKMi45LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3Jn Cmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK