From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH v3 06/26] ARM: GICv3 ITS: introduce device mapping Date: Fri, 31 Mar 2017 19:05:05 +0100 Message-ID: <20170331180525.30038-7-andre.przywara@arm.com> References: <20170331180525.30038-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cu0te-0005KF-SD for xen-devel@lists.xenproject.org; Fri, 31 Mar 2017 18:03:39 +0000 In-Reply-To: <20170331180525.30038-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: Julien Grall , Stefano Stabellini Cc: xen-devel@lists.xenproject.org, Shanker Donthineni , Vijay Kilari List-Id: xen-devel@lists.xenproject.org VGhlIElUUyB1c2VzIGRldmljZSBJRHMgdG8gbWFwIExQSXMgdG8gYSBkZXZpY2UuIERvbTAgd2ls bCBsYXRlciB1c2UKdGhvc2UgSURzLCB3aGljaCB3ZSBkaXJlY3RseSBwYXNzIG9uIHRvIHRoZSBo b3N0LgpGb3IgdGhpcyB3ZSBoYXZlIHRvIG1hcCBlYWNoIGRldmljZSB0aGF0IERvbTAgbWF5IHJl cXVlc3QgdG8gYSBob3N0CklUUyBkZXZpY2Ugd2l0aCB0aGUgc2FtZSBpZGVudGlmaWVyLgpBbGxv Y2F0ZSB0aGUgcmVzcGVjdGl2ZSBtZW1vcnkgYW5kIGVudGVyIGVhY2ggZGV2aWNlIGludG8gYW4g cmJ0cmVlIHRvCmxhdGVyIGJlIGFibGUgdG8gaXRlcmF0ZSBvdmVyIGl0IG9yIHRvIGVhc2lseSB0 ZWFyZG93biBndWVzdHMuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZSBQcnp5d2FyYSA8YW5kcmUucHJ6 eXdhcmFAYXJtLmNvbT4KLS0tCiB4ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jICAgICAgICB8IDIy NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9hcmNoL2FybS92 Z2ljLXYzLmMgICAgICAgICAgIHwgICA0ICsKIHhlbi9pbmNsdWRlL2FzbS1hcm0vZG9tYWluLmgg ICAgIHwgICAzICsKIHhlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljX3YzX2l0cy5oIHwgIDIzICsrKysK IDQgZmlsZXMgY2hhbmdlZCwgMjU3IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS94ZW4vYXJj aC9hcm0vZ2ljLXYzLWl0cy5jIGIveGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYwppbmRleCAxYWM1 OThmLi4yOTVmN2RjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jCisrKyBi L3hlbi9hcmNoL2FybS9naWMtdjMtaXRzLmMKQEAgLTIxLDYgKzIxLDggQEAKICNpbmNsdWRlIDx4 ZW4vbGliLmg+CiAjaW5jbHVkZSA8eGVuL2RlbGF5Lmg+CiAjaW5jbHVkZSA8eGVuL21tLmg+Cisj aW5jbHVkZSA8eGVuL3JidHJlZS5oPgorI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgogI2luY2x1ZGUg PHhlbi9zaXplcy5oPgogI2luY2x1ZGUgPGFzbS9naWMuaD4KICNpbmNsdWRlIDxhc20vZ2ljX3Yz X2RlZnMuaD4KQEAgLTMyLDYgKzM0LDE4IEBACiAKIExJU1RfSEVBRChob3N0X2l0c19saXN0KTsK IAorc3RydWN0IGl0c19kZXZpY2VzIHsKKyAgICBzdHJ1Y3QgcmJfbm9kZSByYm5vZGU7CisgICAg c3RydWN0IGhvc3RfaXRzICpod19pdHM7CisgICAgdm9pZCAqaXR0X2FkZHI7CisgICAgcGFkZHJf dCBndWVzdF9kb29yYmVsbDsgICAgICAgICAgICAgLyogSWRlbnRpZmllcyB0aGUgdmlydHVhbCBJ VFMgKi8KKyAgICB1aW50MzJfdCBob3N0X2RldmlkOworICAgIHVpbnQzMl90IGd1ZXN0X2Rldmlk OworICAgIHVpbnQzMl90IGV2ZW50aWRzOyAgICAgICAgICAgICAgICAgIC8qIE51bWJlciBvZiBl dmVudCBJRHMgKE1TSXMpICovCisgICAgdWludDMyX3QgKmhvc3RfbHBpX2Jsb2NrczsgICAgICAg ICAgLyogV2hpY2ggTFBJcyBhcmUgdXNlZCBvbiB0aGUgaG9zdCAqLworICAgIHN0cnVjdCBwZW5k aW5nX2lycSAqcGVuZF9pcnFzOyAgICAgIC8qIE9uZSBzdHJ1Y3QgcGVyIGV2ZW50ICovCit9Owor CiBib29sIGdpY3YzX2l0c19ob3N0X2hhc19pdHModm9pZCkKIHsKICAgICByZXR1cm4gIWxpc3Rf ZW1wdHkoJmhvc3RfaXRzX2xpc3QpOwpAQCAtMTUxLDYgKzE2NSwyNiBAQCBzdGF0aWMgaW50IGl0 c19zZW5kX2NtZF9tYXBjKHN0cnVjdCBob3N0X2l0cyAqaXRzLCB1aW50MzJfdCBjb2xsZWN0aW9u X2lkLAogICAgIHJldHVybiBpdHNfc2VuZF9jb21tYW5kKGl0cywgY21kKTsKIH0KIAorc3RhdGlj IGludCBpdHNfc2VuZF9jbWRfbWFwZChzdHJ1Y3QgaG9zdF9pdHMgKml0cywgdWludDMyX3QgZGV2 aWNlaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3Qgc2l6ZV9iaXRzLCBw YWRkcl90IGl0dF9hZGRyLCBib29sIHZhbGlkKQoreworICAgIHVpbnQ2NF90IGNtZFs0XTsKKwor ICAgIGlmICggdmFsaWQgKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHNpemVfYml0cyA8IDMyKTsK KyAgICAgICAgQVNTRVJUKCEoaXR0X2FkZHIgJiB+R0VOTUFTS19VTEwoNTEsIDgpKSk7CisgICAg fQorICAgIGNtZFswXSA9IEdJVFNfQ01EX01BUEQgfCAoKHVpbnQ2NF90KWRldmljZWlkIDw8IDMy KTsKKyAgICBjbWRbMV0gPSBzaXplX2JpdHM7CisgICAgY21kWzJdID0gaXR0X2FkZHI7CisgICAg aWYgKCB2YWxpZCApCisgICAgICAgIGNtZFsyXSB8PSBHSVRTX1ZBTElEX0JJVDsKKyAgICBjbWRb M10gPSAweDAwOworCisgICAgcmV0dXJuIGl0c19zZW5kX2NvbW1hbmQoaXRzLCBjbWQpOworfQor CiAvKiBTZXQgdXAgdGhlICgxOjEpIGNvbGxlY3Rpb24gbWFwcGluZyBmb3IgdGhlIGdpdmVuIGhv c3QgQ1BVLiAqLwogaW50IGdpY3YzX2l0c19zZXR1cF9jb2xsZWN0aW9uKHVuc2lnbmVkIGludCBj cHUpCiB7CkBAIC0zNzYsNiArNDEwLDcgQEAgc3RhdGljIGludCBnaWN2M19pdHNfaW5pdF9zaW5n bGVfaXRzKHN0cnVjdCBob3N0X2l0cyAqaHdfaXRzKQogICAgIGh3X2l0cy0+ZGV2aWRfYml0cyA9 IG1pbihod19pdHMtPmRldmlkX2JpdHMsIG1heF9pdHNfZGV2aWNlX2JpdHMpOwogICAgIGlmICgg cmVnICYgR0lUU19UWVBFUl9QVEEgKQogICAgICAgICBod19pdHMtPmZsYWdzIHw9IEhPU1RfSVRT X1VTRVNfUFRBOworICAgIGh3X2l0cy0+aXR0ZV9zaXplID0gR0lUU19UWVBFUl9JVFRfU0laRShy ZWcpOwogCiAgICAgZm9yICggaSA9IDA7IGkgPCBHSVRTX0JBU0VSX05SX1JFR1M7IGkrKyApCiAg ICAgewpAQCAtNDMyLDYgKzQ2NywxOTcgQEAgaW50IGdpY3YzX2l0c19pbml0KHZvaWQpCiAgICAg cmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgcmVtb3ZlX21hcHBlZF9ndWVzdF9kZXZpY2Uoc3Ry dWN0IGl0c19kZXZpY2VzICpkZXYpCit7CisgICAgaW50IHJldDsKKworICAgIGlmICggZGV2LT5o d19pdHMgKQorICAgIHsKKyAgICAgICAgLyogTUFQRCBhbHNvIGRpc2NhcmRzIGFsbCBldmVudHMg d2l0aCB0aGlzIGRldmljZSBJRC4gKi8KKyAgICAgICAgaW50IHJldCA9IGl0c19zZW5kX2NtZF9t YXBkKGRldi0+aHdfaXRzLCBkZXYtPmhvc3RfZGV2aWQsIDAsIDAsIGZhbHNlKTsKKyAgICAgICAg aWYgKCByZXQgKQorICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICByZXQgPSBn aWN2M19pdHNfd2FpdF9jb21tYW5kcyhkZXYtPmh3X2l0cyk7CisgICAgaWYgKCByZXQgKQorICAg ICAgICByZXR1cm4gcmV0OworCisgICAgeGZyZWUoZGV2LT5pdHRfYWRkcik7CisgICAgeGZyZWUo ZGV2LT5wZW5kX2lycXMpOworICAgIHhmcmVlKGRldik7CisKKyAgICByZXR1cm4gMDsKK30KKwor c3RhdGljIHN0cnVjdCBob3N0X2l0cyAqZ2ljdjNfaXRzX2ZpbmRfYnlfZG9vcmJlbGwocGFkZHJf dCBkb29yYmVsbF9hZGRyZXNzKQoreworICAgIHN0cnVjdCBob3N0X2l0cyAqaHdfaXRzOworCisg ICAgbGlzdF9mb3JfZWFjaF9lbnRyeShod19pdHMsICZob3N0X2l0c19saXN0LCBlbnRyeSkKKyAg ICB7CisgICAgICAgIGlmICggaHdfaXRzLT5hZGRyICsgSVRTX0RPT1JCRUxMX09GRlNFVCA9PSBk b29yYmVsbF9hZGRyZXNzICkKKyAgICAgICAgICAgIHJldHVybiBod19pdHM7CisgICAgfQorCisg ICAgcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBpbnQgY29tcGFyZV9pdHNfZ3Vlc3RfZGV2aWNl cyhzdHJ1Y3QgaXRzX2RldmljZXMgKmRldiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwYWRkcl90IGRvb3JiZWxsLCB1aW50MzJfdCBkZXZpZCkKK3sKKyAgICBpZiAoIGRl di0+Z3Vlc3RfZG9vcmJlbGwgPCBkb29yYmVsbCApCisgICAgICAgIHJldHVybiAtMTsKKworICAg IGlmICggZGV2LT5ndWVzdF9kb29yYmVsbCA+IGRvb3JiZWxsICkKKyAgICAgICAgcmV0dXJuIDE7 CisKKyAgICBpZiAoIGRldi0+Z3Vlc3RfZGV2aWQgPCBkZXZpZCApCisgICAgICAgIHJldHVybiAt MTsKKworICAgIGlmICggZGV2LT5ndWVzdF9kZXZpZCA+IGRldmlkICkKKyAgICAgICAgcmV0dXJu IDE7CisKKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqIE1hcCBhIGhhcmR3YXJlIGRldmljZSwg aWRlbnRpZmllZCBieSBhIGNlcnRhaW4gaG9zdCBJVFMgYW5kIGl0cyBkZXZpY2UgSUQKKyAqIHRv IGRvbWFpbiBkLCBhIGd1ZXN0IElUUyAoaWRlbnRpZmllZCBieSBpdHMgZG9vcmJlbGwgYWRkcmVz cykgYW5kIGRldmljZSBJRC4KKyAqIEFsc28gcHJvdmlkZSB0aGUgbnVtYmVyIG9mIGV2ZW50cyAo TVNJcykgbmVlZGVkIGZvciB0aGF0IGRldmljZS4KKyAqIFRoaXMgZG9lcyBub3QgY2hlY2sgaWYg dGhpcyBwYXJ0aWN1bGFyIGhhcmR3YXJlIGRldmljZSBpcyBhbHJlYWR5IG1hcHBlZAorICogYXQg YW5vdGhlciBkb21haW4sIGl0IGlzIGV4cGVjdGVkIHRoYXQgdGhpcyB3b3VsZCBiZSBkb25lIGJ5 IHRoZSBjYWxsZXIuCisgKi8KK2ludCBnaWN2M19pdHNfbWFwX2d1ZXN0X2RldmljZShzdHJ1Y3Qg ZG9tYWluICpkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3QgaG9zdF9k b29yYmVsbCwgdWludDMyX3QgaG9zdF9kZXZpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwYWRkcl90IGd1ZXN0X2Rvb3JiZWxsLCB1aW50MzJfdCBndWVzdF9kZXZpZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBucl9ldmVudHMsIGJvb2wgdmFsaWQp Cit7CisgICAgdm9pZCAqaXR0X2FkZHIgPSBOVUxMOworICAgIHN0cnVjdCBob3N0X2l0cyAqaHdf aXRzOworICAgIHN0cnVjdCBpdHNfZGV2aWNlcyAqZGV2ID0gTlVMTDsKKyAgICBzdHJ1Y3QgcmJf bm9kZSAqKm5ldyA9ICZkLT5hcmNoLnZnaWMuaXRzX2RldmljZXMucmJfbm9kZSwgKnBhcmVudCA9 IE5VTEw7CisgICAgaW50IHJldCA9IC1FTk9FTlQ7CisKKyAgICBod19pdHMgPSBnaWN2M19pdHNf ZmluZF9ieV9kb29yYmVsbChob3N0X2Rvb3JiZWxsKTsKKyAgICBpZiAoICFod19pdHMgKQorICAg ICAgICByZXR1cm4gcmV0OworCisgICAgLyogY2hlY2sgZm9yIGFscmVhZHkgZXhpc3RpbmcgbWFw cGluZ3MgKi8KKyAgICBzcGluX2xvY2soJmQtPmFyY2gudmdpYy5pdHNfZGV2aWNlc19sb2NrKTsK KyAgICB3aGlsZSAoICpuZXcgKQorICAgIHsKKyAgICAgICAgc3RydWN0IGl0c19kZXZpY2VzICp0 ZW1wOworICAgICAgICBpbnQgY21wOworCisgICAgICAgIHRlbXAgPSByYl9lbnRyeSgqbmV3LCBz dHJ1Y3QgaXRzX2RldmljZXMsIHJibm9kZSk7CisKKyAgICAgICAgcGFyZW50ID0gKm5ldzsKKyAg ICAgICAgY21wID0gY29tcGFyZV9pdHNfZ3Vlc3RfZGV2aWNlcyh0ZW1wLCBndWVzdF9kb29yYmVs bCwgZ3Vlc3RfZGV2aWQpOworICAgICAgICBpZiAoICFjbXAgKQorICAgICAgICB7CisgICAgICAg ICAgICBpZiAoICF2YWxpZCApCisgICAgICAgICAgICAgICAgcmJfZXJhc2UoJnRlbXAtPnJibm9k ZSwgJmQtPmFyY2gudmdpYy5pdHNfZGV2aWNlcyk7CisKKyAgICAgICAgICAgIHNwaW5fdW5sb2Nr KCZkLT5hcmNoLnZnaWMuaXRzX2RldmljZXNfbG9jayk7CisKKyAgICAgICAgICAgIGlmICggdmFs aWQgKQorICAgICAgICAgICAgICAgIHJldHVybiAtRUJVU1k7CisKKyAgICAgICAgICAgIHJldHVy biByZW1vdmVfbWFwcGVkX2d1ZXN0X2RldmljZSh0ZW1wKTsKKyAgICAgICAgfQorCisgICAgICAg IGlmICggY21wID4gMCApCisgICAgICAgICAgICBuZXcgPSAmKCgqbmV3KS0+cmJfbGVmdCk7Cisg ICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5ldyA9ICYoKCpuZXcpLT5yYl9yaWdodCk7CisgICAg fQorCisgICAgaWYgKCAhdmFsaWQgKQorICAgICAgICBnb3RvIG91dF91bmxvY2s7CisKKyAgICBy ZXQgPSAtRU5PTUVNOworCisgICAgLyogQW4gSW50ZXJydXB0IFRyYW5zbGF0aW9uIFRhYmxlIG5l ZWRzIHRvIGJlIDI1Ni1ieXRlIGFsaWduZWQuICovCisgICAgaXR0X2FkZHIgPSBfeHphbGxvYyhu cl9ldmVudHMgKiBod19pdHMtPml0dGVfc2l6ZSwgMjU2KTsKKyAgICBpZiAoICFpdHRfYWRkciAp CisgICAgICAgIGdvdG8gb3V0X3VubG9jazsKKworICAgIGRldiA9IHh6YWxsb2Moc3RydWN0IGl0 c19kZXZpY2VzKTsKKyAgICBpZiAoICFkZXYgKQorICAgICAgICBnb3RvIG91dF91bmxvY2s7CisK KyAgICAvKgorICAgICAqIEFsbG9jYXRlIHRoZSBwZW5kaW5nX2lycXMgZm9yIGVhY2ggdmlydHVh bCBMUEkuIFRoZXkgd2lsbCBiZSBwdXQKKyAgICAgKiBpbnRvIHRoZSBkb21haW4ncyByYWRpeCB0 cmVlIHVwb24gdGhlIGd1ZXN0J3MgTUFQVEkgY29tbWFuZC4KKyAgICAgKi8KKyAgICBkZXYtPnBl bmRfaXJxcyA9IHh6YWxsb2NfYXJyYXkoc3RydWN0IHBlbmRpbmdfaXJxLCBucl9ldmVudHMpOwor ICAgIGlmICggIWRldi0+cGVuZF9pcnFzICkKKyAgICAgICAgZ290byBvdXRfdW5sb2NrOworCisg ICAgcmV0ID0gaXRzX3NlbmRfY21kX21hcGQoaHdfaXRzLCBob3N0X2RldmlkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZscyhST1VORFVQKG5yX2V2ZW50cywgTFBJX0JMT0NLKSAtIDEp IC0gMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXJ0X3RvX21hZGRyKGl0dF9hZGRy KSwgdHJ1ZSk7CisgICAgaWYgKCByZXQgKQorICAgICAgICBnb3RvIG91dF91bmxvY2s7CisKKyAg ICBkZXYtPml0dF9hZGRyID0gaXR0X2FkZHI7CisgICAgZGV2LT5od19pdHMgPSBod19pdHM7Cisg ICAgZGV2LT5ndWVzdF9kb29yYmVsbCA9IGd1ZXN0X2Rvb3JiZWxsOworICAgIGRldi0+Z3Vlc3Rf ZGV2aWQgPSBndWVzdF9kZXZpZDsKKyAgICBkZXYtPmhvc3RfZGV2aWQgPSBob3N0X2RldmlkOwor ICAgIGRldi0+ZXZlbnRpZHMgPSBucl9ldmVudHM7CisKKyAgICByYl9saW5rX25vZGUoJmRldi0+ cmJub2RlLCBwYXJlbnQsIG5ldyk7CisgICAgcmJfaW5zZXJ0X2NvbG9yKCZkZXYtPnJibm9kZSwg JmQtPmFyY2gudmdpYy5pdHNfZGV2aWNlcyk7CisKKyAgICBzcGluX3VubG9jaygmZC0+YXJjaC52 Z2ljLml0c19kZXZpY2VzX2xvY2spOworCisgICAgcmV0dXJuIDA7CisKK291dF91bmxvY2s6Cisg ICAgc3Bpbl91bmxvY2soJmQtPmFyY2gudmdpYy5pdHNfZGV2aWNlc19sb2NrKTsKKyAgICBpZiAo IGRldiApCisgICAgeworICAgICAgICB4ZnJlZShkZXYtPnBlbmRfaXJxcyk7CisgICAgICAgIHhm cmVlKGRldi0+aG9zdF9scGlfYmxvY2tzKTsKKyAgICB9CisgICAgeGZyZWUoaXR0X2FkZHIpOwor ICAgIHhmcmVlKGRldik7CisgICAgcmV0dXJuIHJldDsKK30KKworLyogUmVtb3ZpbmcgYW55IGNv bm5lY3Rpb25zIGEgZG9tYWluIGhhZCB0byBhbnkgSVRTIGluIHRoZSBzeXN0ZW0uICovCit2b2lk IGdpY3YzX2l0c191bm1hcF9hbGxfZGV2aWNlcyhzdHJ1Y3QgZG9tYWluICpkKQoreworICAgIHN0 cnVjdCByYl9ub2RlICp2aWN0aW07CisgICAgc3RydWN0IGl0c19kZXZpY2VzICpkZXY7CisKKyAg ICAvKgorICAgICAqIFRoaXMgaXMgYW4gZWFzaWx5IHJlYWRhYmxlLCBidXQgc3Vib3B0aW1hbCBp bXBsZW1lbnRhdGlvbi4KKyAgICAgKiBJdCB1c2VzIHRoZSBwcm92aWRlZCBpdGVyYXRpb24gd3Jh cHBlciBhbmQgZXJhc2VzIGVhY2ggbm9kZSwgd2hpY2gKKyAgICAgKiBwb3NzaWJseSB0cmlnZ2Vy cyByZWJhbGFuY2luZy4KKyAgICAgKiBUaGlzIHNlZW1zIG92ZXJraWxsIHNpbmNlIHdlIGFyZSBn b2luZyB0byBhYm9saXNoIHRoZSB3aG9sZSB0cmVlLCBidXQKKyAgICAgKiBhdm9pZHMgYW4gb3Bl bi1jb2RlZCByZS1pbXBsZW1lbnRhdGlvbiBvZiB0aGUgdHJhdmVyc2FsIGZ1bmN0aW9ucyB3aXRo CisgICAgICogc29tZSByZWN1cnNpdmUgZnVuY3Rpb24gY2FsbHMuCisgICAgICovCityZXN0YXJ0 OgorICAgIHNwaW5fbG9jaygmZC0+YXJjaC52Z2ljLml0c19kZXZpY2VzX2xvY2spOworICAgIGlm ICggKHZpY3RpbSA9IHJiX2ZpcnN0KCZkLT5hcmNoLnZnaWMuaXRzX2RldmljZXMpKSApCisgICAg eworICAgICAgICBkZXYgPSByYl9lbnRyeSh2aWN0aW0sIHN0cnVjdCBpdHNfZGV2aWNlcywgcmJu b2RlKTsKKyAgICAgICAgcmJfZXJhc2UodmljdGltLCAmZC0+YXJjaC52Z2ljLml0c19kZXZpY2Vz KTsKKworICAgICAgICBzcGluX3VubG9jaygmZC0+YXJjaC52Z2ljLml0c19kZXZpY2VzX2xvY2sp OworCisgICAgICAgIHJlbW92ZV9tYXBwZWRfZ3Vlc3RfZGV2aWNlKGRldik7CisKKyAgICAgICAg Z290byByZXN0YXJ0OworICAgIH0KKworICAgIHNwaW5fdW5sb2NrKCZkLT5hcmNoLnZnaWMuaXRz X2RldmljZXNfbG9jayk7Cit9CisKIC8qIFNjYW4gdGhlIERUIGZvciBhbnkgSVRTIG5vZGVzIGFu ZCBjcmVhdGUgYSBsaXN0IG9mIGhvc3QgSVRTZXMgb3V0IG9mIGl0LiAqLwogdm9pZCBnaWN2M19p dHNfZHRfaW5pdChjb25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGUpCiB7CkBAIC00NTks NiArNjg1LDcgQEAgdm9pZCBnaWN2M19pdHNfZHRfaW5pdChjb25zdCBzdHJ1Y3QgZHRfZGV2aWNl X25vZGUgKm5vZGUpCiAgICAgICAgIGl0c19kYXRhLT5hZGRyID0gYWRkcjsKICAgICAgICAgaXRz X2RhdGEtPnNpemUgPSBzaXplOwogICAgICAgICBpdHNfZGF0YS0+ZHRfbm9kZSA9IGl0czsKKyAg ICAgICAgc3Bpbl9sb2NrX2luaXQoJml0c19kYXRhLT5jbWRfbG9jayk7CiAKICAgICAgICAgcHJp bnRrKCJHSUN2MzogRm91bmQgSVRTIEAweCVseFxuIiwgYWRkcik7CiAKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL2FybS92Z2ljLXYzLmMgYi94ZW4vYXJjaC9hcm0vdmdpYy12My5jCmluZGV4IGQ2MTQ3 OWQuLjYyNDIyNTIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS92Z2ljLXYzLmMKKysrIGIveGVu L2FyY2gvYXJtL3ZnaWMtdjMuYwpAQCAtMTQ1MCw2ICsxNDUwLDkgQEAgc3RhdGljIGludCB2Z2lj X3YzX2RvbWFpbl9pbml0KHN0cnVjdCBkb21haW4gKmQpCiAgICAgZC0+YXJjaC52Z2ljLm5yX3Jl Z2lvbnMgPSByZGlzdF9jb3VudDsKICAgICBkLT5hcmNoLnZnaWMucmRpc3RfcmVnaW9ucyA9IHJk aXN0X3JlZ2lvbnM7CiAKKyAgICBzcGluX2xvY2tfaW5pdCgmZC0+YXJjaC52Z2ljLml0c19kZXZp Y2VzX2xvY2spOworICAgIGQtPmFyY2gudmdpYy5pdHNfZGV2aWNlcyA9IFJCX1JPT1Q7CisKICAg ICAvKgogICAgICAqIERvbWFpbiAwIGdldHMgdGhlIGhhcmR3YXJlIGFkZHJlc3MuCiAgICAgICog R3Vlc3RzIGdldCB0aGUgdmlydHVhbCBwbGF0Zm9ybSBsYXlvdXQuCkBAIC0xNTIyLDYgKzE1MjUs NyBAQCBzdGF0aWMgaW50IHZnaWNfdjNfZG9tYWluX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKIAog c3RhdGljIHZvaWQgdmdpY192M19kb21haW5fZnJlZShzdHJ1Y3QgZG9tYWluICpkKQogeworICAg IGdpY3YzX2l0c191bm1hcF9hbGxfZGV2aWNlcyhkKTsKICAgICB4ZnJlZShkLT5hcmNoLnZnaWMu cmRpc3RfcmVnaW9ucyk7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZG9t YWluLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oCmluZGV4IDJkNmZiYjEuLmU1NTkw MjcgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZG9tYWluLmgKKysrIGIveGVuL2lu Y2x1ZGUvYXNtLWFybS9kb21haW4uaApAQCAtMTEsNiArMTEsNyBAQAogI2luY2x1ZGUgPGFzbS9n aWMuaD4KICNpbmNsdWRlIDxwdWJsaWMvaHZtL3BhcmFtcy5oPgogI2luY2x1ZGUgPHhlbi9zZXJp YWwuaD4KKyNpbmNsdWRlIDx4ZW4vcmJ0cmVlLmg+CiAKIHN0cnVjdCBodm1fZG9tYWluCiB7CkBA IC0xMDksNiArMTEwLDggQEAgc3RydWN0IGFyY2hfZG9tYWluCiAgICAgICAgIH0gKnJkaXN0X3Jl Z2lvbnM7CiAgICAgICAgIGludCBucl9yZWdpb25zOyAgICAgICAgICAgICAgICAgICAgIC8qIE51 bWJlciBvZiByZGlzdCByZWdpb25zICovCiAgICAgICAgIHVpbnQzMl90IHJkaXN0X3N0cmlkZTsg ICAgICAgICAgICAgIC8qIFJlLURpc3RyaWJ1dG9yIHN0cmlkZSAqLworICAgICAgICBzdHJ1Y3Qg cmJfcm9vdCBpdHNfZGV2aWNlczsgICAgICAgICAvKiBEZXZpY2VzIG1hcHBlZCB0byBhbiBJVFMg Ki8KKyAgICAgICAgc3BpbmxvY2tfdCBpdHNfZGV2aWNlc19sb2NrOyAgICAgICAgLyogUHJvdGVj dHMgdGhlIGl0c19kZXZpY2VzIHRyZWUgKi8KICNlbmRpZgogICAgIH0gdmdpYzsKIApkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9naWNfdjNfaXRzLmggYi94ZW4vaW5jbHVkZS9hc20t YXJtL2dpY192M19pdHMuaAppbmRleCA0YzJhZTFjLi40YWRlNWY2IDEwMDY0NAotLS0gYS94ZW4v aW5jbHVkZS9hc20tYXJtL2dpY192M19pdHMuaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2dp Y192M19pdHMuaApAQCAtNDgsNiArNDgsMTAgQEAKICNkZWZpbmUgR0lUU19UWVBFUl9ERVZJQ0Vf SURfQklUUyhyKSAgICAoKChyICYgR0lUU19UWVBFUl9ERVZJRFNfTUFTSykgPj4gXAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSVRTX1RZUEVSX0RFVklE U19TSElGVCkgKyAxKQogI2RlZmluZSBHSVRTX1RZUEVSX0lEQklUU19TSElGVCAgICAgICAgIDgK KyNkZWZpbmUgR0lUU19UWVBFUl9JVFRfU0laRV9TSElGVCAgICAgICA0CisjZGVmaW5lIEdJVFNf VFlQRVJfSVRUX1NJWkVfTUFTSyAgICAgICAgKDB4ZlVMIDw8IEdJVFNfVFlQRVJfSVRUX1NJWkVf U0hJRlQpCisjZGVmaW5lIEdJVFNfVFlQRVJfSVRUX1NJWkUocikgICAgICAgICAgKCgoKHIpICYg R0lUU19UWVBFUl9JVFRfU0laRV9NQVNLKSA+PiBcCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHSVRTX1RZUEVSX0lUVF9TSVpFX1NISUZUKSArIDEpCiAK ICNkZWZpbmUgR0lUU19JSURSX1ZBTFVFICAgICAgICAgICAgICAgICAweDM0YwogCkBAIC05NCw3 ICs5OCwxMCBAQAogI2RlZmluZSBHSVRTX0NNRF9NT1ZBTEwgICAgICAgICAgICAgICAgIDB4MGUK ICNkZWZpbmUgR0lUU19DTURfRElTQ0FSRCAgICAgICAgICAgICAgICAweDBmCiAKKyNkZWZpbmUg SVRTX0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAweDEwMDQwCisKICNpbmNsdWRlIDx4ZW4v ZGV2aWNlX3RyZWUuaD4KKyNpbmNsdWRlIDx4ZW4vcmJ0cmVlLmg+CiAKICNkZWZpbmUgSE9TVF9J VFNfRkxVU0hfQ01EX1FVRVVFICAgICAgICAoMVUgPDwgMCkKICNkZWZpbmUgSE9TVF9JVFNfVVNF U19QVEEgICAgICAgICAgICAgICAoMVUgPDwgMSkKQEAgLTEwOSw2ICsxMTYsNyBAQCBzdHJ1Y3Qg aG9zdF9pdHMgewogICAgIHVuc2lnbmVkIGludCBkZXZpZF9iaXRzOwogICAgIHNwaW5sb2NrX3Qg Y21kX2xvY2s7CiAgICAgdm9pZCAqY21kX2J1ZjsKKyAgICB1bnNpZ25lZCBpbnQgaXR0ZV9zaXpl OwogICAgIHVuc2lnbmVkIGludCBmbGFnczsKIH07CiAKQEAgLTEzNSw2ICsxNDMsMTcgQEAgdWlu dDY0X3QgZ2ljdjNfZ2V0X3JlZGlzdF9hZGRyZXNzKHVuc2lnbmVkIGludCBjcHUsIGJvb2wgdXNl X3B0YSk7CiAvKiBNYXAgYSBjb2xsZWN0aW9uIGZvciB0aGlzIGhvc3QgQ1BVIHRvIGVhY2ggaG9z dCBJVFMuICovCiBpbnQgZ2ljdjNfaXRzX3NldHVwX2NvbGxlY3Rpb24odW5zaWduZWQgaW50IGNw dSk7CiAKKy8qCisgKiBNYXAgYSBkZXZpY2Ugb24gdGhlIGhvc3QgYnkgYWxsb2NhdGluZyBhbiBJ VFQgb24gdGhlIGhvc3QgKElUUykuCisgKiAibnJfZXZlbnQiIHNwZWNpZmllcyBob3cgbWFueSBl dmVudHMgKGludGVycnVwdHMpIHRoaXMgZGV2aWNlIHdpbGwgbmVlZC4KKyAqIFNldHRpbmcgInZh bGlkIiB0byBmYWxzZSBkZWFsbG9jYXRlcyB0aGUgZGV2aWNlLgorICovCitpbnQgZ2ljdjNfaXRz X21hcF9ndWVzdF9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwYWRkcl90IGhvc3RfZG9vcmJlbGwsIHVpbnQzMl90IGhvc3RfZGV2aWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdCBndWVzdF9kb29yYmVsbCwgdWlu dDMyX3QgZ3Vlc3RfZGV2aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMy X3QgbnJfZXZlbnRzLCBib29sIHZhbGlkKTsKK3ZvaWQgZ2ljdjNfaXRzX3VubWFwX2FsbF9kZXZp Y2VzKHN0cnVjdCBkb21haW4gKmQpOworCiAjZWxzZQogCiBzdGF0aWMgTElTVF9IRUFEKGhvc3Rf aXRzX2xpc3QpOwpAQCAtMTczLDYgKzE5MiwxMCBAQCBzdGF0aWMgaW5saW5lIGludCBnaWN2M19p dHNfc2V0dXBfY29sbGVjdGlvbih1bnNpZ25lZCBpbnQgY3B1KQogICAgIHJldHVybiAwOwogfQog CitzdGF0aWMgaW5saW5lIHZvaWQgZ2ljdjNfaXRzX3VubWFwX2FsbF9kZXZpY2VzKHN0cnVjdCBk b21haW4gKmQpCit7Cit9CisKICNlbmRpZiAvKiBDT05GSUdfSEFTX0lUUyAqLwogCiAjZW5kaWYK LS0gCjIuOS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczov L2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==