From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [RFC PATCH v2 15/26] ARM: vITS: handle CLEAR command Date: Thu, 22 Dec 2016 18:24:35 +0000 Message-ID: <20161222182446.18791-16-andre.przywara@arm.com> References: <20161222182446.18791-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cK82G-0005Xr-FX for xen-devel@lists.xenproject.org; Thu, 22 Dec 2016 18:24:12 +0000 In-Reply-To: <20161222182446.18791-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, Vijay Kilari List-Id: xen-devel@lists.xenproject.org VGhpcyBpbnRyb2R1Y2VzIHRoZSBJVFMgY29tbWFuZCBoYW5kbGVyIGZvciB0aGUgQ0xFQVIgY29t bWFuZCwgd2hpY2gKY2xlYXJzIHRoZSBwZW5kaW5nIHN0YXRlIG9mIGFuIExQSS4KVGhpcyByZW1v dmVzIGEgbm90LXlldCBpbmplY3RlZCwgYnV0IGFscmVhZHkgcXVldWVkIElSUSBmcm9tIGEgVkNQ VS4KCkluIGFkZGl0aW9uIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyB0aGUgbG9va3VwIGZ1bmN0aW9u IHdoaWNoIHRyYW5zbGF0ZXMKYSBnaXZlbiBEZXZpY2VJRC9FdmVudElEIHBhaXIgaW50byBhIHBv aW50ZXIgdG8gb3VyIHZJVFRFIHN0cnVjdHVyZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJlIFByenl3 YXJhIDxhbmRyZS5wcnp5d2FyYUBhcm0uY29tPgotLS0KIHhlbi9hcmNoL2FybS92Z2ljLWl0cy5j IHwgMTE3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog MSBmaWxlIGNoYW5nZWQsIDExNyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv YXJtL3ZnaWMtaXRzLmMgYi94ZW4vYXJjaC9hcm0vdmdpYy1pdHMuYwppbmRleCBlNWU5YWU0Li5l MmU5NGM0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vdmdpYy1pdHMuYworKysgYi94ZW4vYXJj aC9hcm0vdmdpYy1pdHMuYwpAQCAtNjAsNiArNjAsNzMgQEAgc3RydWN0IHZpdHNfaXR0ZQogICAg IHVpbnQxNl90IGNvbGxlY3Rpb247CiB9OwogCisjZGVmaW5lIFVOTUFQUEVEX0NPTExFQ1RJT04g ICAgICAoKHVpbnQxNl90KX4wKQorCisvKiBNdXN0IGJlIGNhbGxlZCB3aXRoIHRoZSBJVFMgbG9j ayBoZWxkLiAqLworc3RhdGljIHN0cnVjdCB2Y3B1ICpnZXRfdmNwdV9mcm9tX2NvbGxlY3Rpb24o c3RydWN0IHZpcnRfaXRzICppdHMsIGludCBjb2xsaWQpCit7CisgICAgdWludDE2X3QgdmNwdV9p ZDsKKworICAgIGlmICggY29sbGlkID49IGl0cy0+bWF4X2NvbGxlY3Rpb25zICkKKyAgICAgICAg cmV0dXJuIE5VTEw7CisKKyAgICB2Y3B1X2lkID0gaXRzLT5jb2xsX3RhYmxlW2NvbGxpZF07Cisg ICAgaWYgKCB2Y3B1X2lkID09IFVOTUFQUEVEX0NPTExFQ1RJT04gfHwgdmNwdV9pZCA+PSBpdHMt PmQtPm1heF92Y3B1cyApCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgcmV0dXJuIGl0cy0+ ZC0+dmNwdVt2Y3B1X2lkXTsKK30KKworI2RlZmluZSBERVZfVEFCTEVfSVRUX0FERFIoeCkgKCh4 KSAmIEdFTk1BU0soNTEsIDgpKQorI2RlZmluZSBERVZfVEFCTEVfSVRUX1NJWkUoeCkgKEJJVCgo KHgpICYgR0VOTUFTSyg3LCAwKSkgKyAxKSkKKyNkZWZpbmUgREVWX1RBQkxFX0VOVFJZKGFkZHIs IGJpdHMpICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoKChhZGRyKSAmIEdFTk1BU0so NTEsIDgpKSB8ICgoKGJpdHMpIC0gMSkgJiBHRU5NQVNLKDcsIDApKSkKKworc3RhdGljIHBhZGRy X3QgZ2V0X2l0dGVfYWRkcmVzcyhzdHJ1Y3QgdmlydF9pdHMgKml0cywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdWludDMyX3QgZGV2aWQsIHVpbnQzMl90IGV2aWQpCit7CisgICAg cGFkZHJfdCBhZGRyOworCisgICAgaWYgKCBkZXZpZCA+PSBpdHMtPm1heF9kZXZpY2VzICkKKyAg ICAgICAgcmV0dXJuIH4wOworCisgICAgaWYgKCBldmlkID49IERFVl9UQUJMRV9JVFRfU0laRShp dHMtPmRldl90YWJsZVtkZXZpZF0pICkKKyAgICAgICAgcmV0dXJuIH4wOworCisgICAgYWRkciA9 IERFVl9UQUJMRV9JVFRfQUREUihpdHMtPmRldl90YWJsZVtkZXZpZF0pOworCisgICAgcmV0dXJu IGFkZHIgKyBldmlkICogc2l6ZW9mKHN0cnVjdCB2aXRzX2l0dGUpOworfQorCisvKiBMb29rcyB1 cCBhIGdpdmVuIGRldmljZUlEL2V2ZW50SUQgcGFpciBvbiBhbiBJVFMgYW5kIHJldHVybnMgYSBw b2ludGVyIHRvCisgKiB0aGUgY29ycmVzcG9uZGluZyBJVFRFLiBUaGlzIG1hcHMgdGhlIHJlc3Bl Y3RpdmUgZ3Vlc3QgcGFnZSBpbnRvIFhlbi4KKyAqIE9uY2UgZmluaXNoZWQgd2l0aCBoYW5kbGlu ZyB0aGUgSVRURSwgY2FsbCBwdXRfZGV2aWRfZXZpZCgpIHRvIHVubWFwCisgKiB0aGUgcGFnZSBh Z2Fpbi4KKyAqIE11c3QgYmUgY2FsbGVkIHdpdGggdGhlIElUUyBsb2NrIGhlbGQuCisgKi8KK3N0 YXRpYyBzdHJ1Y3Qgdml0c19pdHRlICpnZXRfZGV2aWRfZXZpZChzdHJ1Y3QgdmlydF9pdHMgKml0 cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkZXZp ZCwgdWludDMyX3QgZXZpZCkKK3sKKyAgICBwYWRkcl90IGFkZHIgPSBnZXRfaXR0ZV9hZGRyZXNz KGl0cywgZGV2aWQsIGV2aWQpOworICAgIHN0cnVjdCB2aXRzX2l0dGUgKml0dGU7CisKKyAgICBp ZiAoIGFkZHIgPT0gfjAgKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIC8qIFRPRE86IGNo ZWNrIGxvY2tpbmcgZm9yIG1hcF9ndWVzdF9wYWdlcygpICovCisgICAgaXR0ZSA9IG1hcF9ndWVz dF9wYWdlcyhpdHMtPmQsIGFkZHIgJiBQQUdFX01BU0ssIDEpOworICAgIGlmICggIWl0dGUgKQor ICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHJldHVybiBpdHRlICsgKGFkZHIgJiB+UEFHRV9N QVNLKSAvIHNpemVvZihzdHJ1Y3Qgdml0c19pdHRlKTsKK30KKworLyogTXVzdCBiZSBjYWxsZWQg d2l0aCB0aGUgSVRTIGxvY2sgaGVsZC4gKi8KK3N0YXRpYyB2b2lkIHB1dF9kZXZpZF9ldmlkKHN0 cnVjdCB2aXJ0X2l0cyAqaXRzLCBzdHJ1Y3Qgdml0c19pdHRlICppdHRlKQoreworICAgIHVubWFw X2d1ZXN0X3BhZ2VzKGl0dGUsIDEpOworfQorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKICAqIEZ1bmN0aW9ucyB0aGF0IGhhbmRsZSBJVFMgY29tbWFuZHMgKgogICoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpAQCAtNzksNiArMTQ2LDUzIEBA IHN0YXRpYyB1aW50NjRfdCBpdHNfY21kX21hc2tfZmllbGQodWludDY0X3QgKml0c19jbWQsCiAj ZGVmaW5lIGl0c19jbWRfZ2V0X3RhcmdldF9hZGRyKGNtZCkgICAgaXRzX2NtZF9tYXNrX2ZpZWxk KGNtZCwgMiwgMTYsIDMyKQogI2RlZmluZSBpdHNfY21kX2dldF92YWxpZGJpdChjbWQpICAgICAg IGl0c19jbWRfbWFza19maWVsZChjbWQsIDIsIDYzLCAgMSkKIAorc3RhdGljIGludCBpdHNfaGFu ZGxlX2NsZWFyKHN0cnVjdCB2aXJ0X2l0cyAqaXRzLCB1aW50NjRfdCAqY21kcHRyKQoreworICAg IHVpbnQzMl90IGRldmlkID0gaXRzX2NtZF9nZXRfZGV2aWNlaWQoY21kcHRyKTsKKyAgICB1aW50 MzJfdCBldmVudGlkID0gaXRzX2NtZF9nZXRfaWQoY21kcHRyKTsKKyAgICBzdHJ1Y3QgcGVuZGlu Z19pcnEgKnBpcnE7CisgICAgc3RydWN0IHZpdHNfaXR0ZSAqaXR0ZTsKKyAgICBzdHJ1Y3QgdmNw dSAqdmNwdTsKKyAgICB1aW50MzJfdCB2bHBpOworCisgICAgc3Bpbl9sb2NrKCZpdHMtPml0c19s b2NrKTsKKworICAgIGl0dGUgPSBnZXRfZGV2aWRfZXZpZChpdHMsIGRldmlkLCBldmVudGlkKTsK KyAgICBpZiAoICFpdHRlICkKKyAgICB7CisgICAgICAgIHNwaW5fdW5sb2NrKCZpdHMtPml0c19s b2NrKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIHZjcHUgPSBnZXRfdmNwdV9m cm9tX2NvbGxlY3Rpb24oaXRzLCBpdHRlLT5jb2xsZWN0aW9uKTsKKyAgICBpZiAoICF2Y3B1ICkK KyAgICB7CisgICAgICAgIHNwaW5fdW5sb2NrKCZpdHMtPml0c19sb2NrKTsKKyAgICAgICAgcmV0 dXJuIC0xOworICAgIH0KKworICAgIHZscGkgPSBpdHRlLT52bHBpOworCisgICAgcHV0X2Rldmlk X2V2aWQoaXRzLCBpdHRlKTsKKyAgICBzcGluX3VubG9jaygmaXRzLT5pdHNfbG9jayk7CisKKyAg ICAvKiBSZW1vdmUgYSBwZW5kaW5nLCBidXQgbm90IHlldCBpbmplY3RlZCBndWVzdCBJUlEuICov CisgICAgcGlycSA9IGxwaV90b19wZW5kaW5nKHZjcHUsIHZscGksIGZhbHNlKTsKKyAgICBpZiAo IHBpcnEgKQorICAgIHsKKyAgICAgICAgY2xlYXJfYml0KEdJQ19JUlFfR1VFU1RfUVVFVUVELCAm cGlycS0+c3RhdHVzKTsKKyAgICAgICAgZ2ljX3JlbW92ZV9mcm9tX3F1ZXVlcyh2Y3B1LCB2bHBp KTsKKworICAgICAgICAvKiBNYXJrIHRoaXMgcGVuZGluZyBJUlEgc3RydWN0IGFzIGF2YWlsYWJl IGFnYWluLiAqLworICAgICAgICBpZiAoICF0ZXN0X2JpdChHSUNfSVJRX0dVRVNUX1ZJU0lCTEUs ICZwaXJxLT5zdGF0dXMpICkKKyAgICAgICAgICAgIHBpcnEtPmlycSA9IDA7CisgICAgfQorCisg ICAgY2xlYXJfYml0KHZscGkgLSA4MTkyLCB2Y3B1LT5hcmNoLnZnaWMucGVuZHRhYmxlKTsKKwor ICAgIHJldHVybiAwOworfQorCiAjZGVmaW5lIElUU19DTURfQlVGRkVSX1NJWkUoYmFzZXIpICAg ICAgKCgoKGJhc2VyKSAmIDB4ZmYpICsgMSkgPDwgMTIpCiAKIHN0YXRpYyBpbnQgdmdpY19pdHNf aGFuZGxlX2NtZHMoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHZpcnRfaXRzICppdHMsCkBAIC05 OSw2ICsyMTMsOSBAQCBzdGF0aWMgaW50IHZnaWNfaXRzX2hhbmRsZV9jbWRzKHN0cnVjdCBkb21h aW4gKmQsIHN0cnVjdCB2aXJ0X2l0cyAqaXRzLAogICAgICAgICBjbWRwdHIgPSBpdHMtPmNtZGJ1 ZiArIChpdHMtPmNyZWFkciAvIHNpemVvZigqaXRzLT5jbWRidWYpKTsKICAgICAgICAgc3dpdGNo IChpdHNfY21kX2dldF9jb21tYW5kKGNtZHB0cikpCiAgICAgICAgIHsKKyAgICAgICAgY2FzZSBH SVRTX0NNRF9DTEVBUjoKKyAgICAgICAgICAgIGl0c19oYW5kbGVfY2xlYXIoaXRzLCBjbWRwdHIp OworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR0lUU19DTURfU1lOQzoKICAgICAg ICAgICAgIC8qIFdlIGhhbmRsZSBJVFMgY29tbWFuZHMgc3luY2hyb25vdXNseSwgc28gd2UgaWdu b3JlIFNZTkMuICovCiAJICAgIGJyZWFrOwotLSAKMi45LjAKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK