From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v4 05/14] xen/x86: split the setup of Dom0 permissions to a function Date: Wed, 30 Nov 2016 16:49:41 +0000 Message-ID: <20161130164950.43543-6-roger.pau@citrix.com> References: <20161130164950.43543-1-roger.pau@citrix.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 1cC88R-0003Da-LJ for xen-devel@lists.xenproject.org; Wed, 30 Nov 2016 16:53:31 +0000 In-Reply-To: <20161130164950.43543-1-roger.pau@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Cc: Andrew Cooper , Jan Beulich , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org U28gdGhhdCBpdCBjYW4gYWxzbyBiZSB1c2VkIGJ5IHRoZSBQVkgtc3BlY2lmaWMgZG9tYWluIGJ1 aWxkZXIuIFRoaXMgaXMganVzdApjb2RlIG1vdGlvbiwgaXQgc2hvdWxkIG5vdCBpbnRyb2R1Y2Ug YW55IGZ1bmN0aW9uYWwgY2hhbmdlLgoKU2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8 cm9nZXIucGF1QGNpdHJpeC5jb20+CkFja2VkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz ZS5jb20+Ci0tLQpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4K Q2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0tCkNoYW5nZXMgc2luY2UgdjI6 CiAtIEZpeCBjb21tZW50IHN0eWxlLgogLSBDb252ZXJ0IGkgdG8gdW5zaWduZWQgaW50LgogLSBS ZXN0b3JlIHByZXZpb3VzIEJVR19PTiBpbiBjYXNlIG9mIGZhaWx1cmUgKGluc3RlYWQgb2YgcGFu aWMpLgogLSBSZW1vdmUgdW5uZWVkZWQgcmMgaW5pdGlhbGl6ZXIuCi0tLQogeGVuL2FyY2gveDg2 L2RvbWFpbl9idWlsZC5jIHwgMTYwICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgNzcgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWFpbl9idWlsZC5jIGIveGVuL2FyY2gv eDg2L2RvbWFpbl9idWlsZC5jCmluZGV4IDE3ZjhlOTEuLjFlNTU3YjkgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9kb21haW5fYnVpbGQuYworKysgYi94ZW4vYXJjaC94ODYvZG9tYWluX2J1aWxk LmMKQEAgLTg2OSw2ICs4NjksODggQEAgc3RhdGljIF9faW5pdCB2b2lkIHNldHVwX3B2X3BoeXNt YXAoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBwZ3RibF9wZm4sCiAgICAgdW5tYXBf ZG9tYWluX3BhZ2UobDRzdGFydCk7CiB9CiAKK3N0YXRpYyBpbnQgX19pbml0IHNldHVwX3Blcm1p c3Npb25zKHN0cnVjdCBkb21haW4gKmQpCit7CisgICAgdW5zaWduZWQgbG9uZyBtZm47CisgICAg dW5zaWduZWQgaW50IGk7CisgICAgaW50IHJjOworCisgICAgLyogVGhlIGhhcmR3YXJlIGRvbWFp biBpcyBpbml0aWFsbHkgcGVybWl0dGVkIGZ1bGwgSS9PIGNhcGFiaWxpdGllcy4gKi8KKyAgICBy YyA9IGlvcG9ydHNfcGVybWl0X2FjY2VzcyhkLCAwLCAweEZGRkYpOworICAgIHJjIHw9IGlvbWVt X3Blcm1pdF9hY2Nlc3MoZCwgMFVMLCAoMVVMIDw8IChwYWRkcl9iaXRzIC0gUEFHRV9TSElGVCkp IC0gMSk7CisgICAgcmMgfD0gaXJxc19wZXJtaXRfYWNjZXNzKGQsIDEsIG5yX2lycXNfZ3NpIC0g MSk7CisKKyAgICAvKiBNb2RpZnkgSS9PIHBvcnQgYWNjZXNzIHBlcm1pc3Npb25zLiAqLworCisg ICAgLyogTWFzdGVyIEludGVycnVwdCBDb250cm9sbGVyIChQSUMpLiAqLworICAgIHJjIHw9IGlv cG9ydHNfZGVueV9hY2Nlc3MoZCwgMHgyMCwgMHgyMSk7CisgICAgLyogU2xhdmUgSW50ZXJydXB0 IENvbnRyb2xsZXIgKFBJQykuICovCisgICAgcmMgfD0gaW9wb3J0c19kZW55X2FjY2VzcyhkLCAw eEEwLCAweEExKTsKKyAgICAvKiBJbnRlcnZhbCBUaW1lciAoUElUKS4gKi8KKyAgICByYyB8PSBp b3BvcnRzX2RlbnlfYWNjZXNzKGQsIDB4NDAsIDB4NDMpOworICAgIC8qIFBJVCBDaGFubmVsIDIg LyBQQyBTcGVha2VyIENvbnRyb2wuICovCisgICAgcmMgfD0gaW9wb3J0c19kZW55X2FjY2Vzcyhk LCAweDYxLCAweDYxKTsKKyAgICAvKiBBQ1BJIFBNIFRpbWVyLiAqLworICAgIGlmICggcG10bXJf aW9wb3J0ICkKKyAgICAgICAgcmMgfD0gaW9wb3J0c19kZW55X2FjY2VzcyhkLCBwbXRtcl9pb3Bv cnQsIHBtdG1yX2lvcG9ydCArIDMpOworICAgIC8qIFBDSSBjb25maWd1cmF0aW9uIHNwYWNlIChO Qi4gMHhjZjggaGFzIHNwZWNpYWwgdHJlYXRtZW50KS4gKi8KKyAgICByYyB8PSBpb3BvcnRzX2Rl bnlfYWNjZXNzKGQsIDB4Y2ZjLCAweGNmZik7CisgICAgLyogQ29tbWFuZC1saW5lIEkvTyByYW5n ZXMuICovCisgICAgcHJvY2Vzc19kb20wX2lvcG9ydHNfZGlzYWJsZShkKTsKKworICAgIC8qIE1v ZGlmeSBJL08gbWVtb3J5IGFjY2VzcyBwZXJtaXNzaW9ucy4gKi8KKworICAgIC8qIExvY2FsIEFQ SUMuICovCisgICAgaWYgKCBtcF9sYXBpY19hZGRyICE9IDAgKQorICAgIHsKKyAgICAgICAgbWZu ID0gcGFkZHJfdG9fcGZuKG1wX2xhcGljX2FkZHIpOworICAgICAgICByYyB8PSBpb21lbV9kZW55 X2FjY2VzcyhkLCBtZm4sIG1mbik7CisgICAgfQorICAgIC8qIEkvTyBBUElDcy4gKi8KKyAgICBm b3IgKCBpID0gMDsgaSA8IG5yX2lvYXBpY3M7IGkrKyApCisgICAgeworICAgICAgICBtZm4gPSBw YWRkcl90b19wZm4obXBfaW9hcGljc1tpXS5tcGNfYXBpY2FkZHIpOworICAgICAgICBpZiAoICFy YW5nZXNldF9jb250YWluc19zaW5nbGV0b24obW1pb19yb19yYW5nZXMsIG1mbikgKQorICAgICAg ICAgICAgcmMgfD0gaW9tZW1fZGVueV9hY2Nlc3MoZCwgbWZuLCBtZm4pOworICAgIH0KKyAgICAv KiBNU0kgcmFuZ2UuICovCisgICAgcmMgfD0gaW9tZW1fZGVueV9hY2Nlc3MoZCwgcGFkZHJfdG9f cGZuKE1TSV9BRERSX0JBU0VfTE8pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRy X3RvX3BmbihNU0lfQUREUl9CQVNFX0xPICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTVNJX0FERFJfREVTVF9JRF9NQVNLKSk7CisgICAgLyogSHlwZXJUcmFuc3Bv cnQgcmFuZ2UuICovCisgICAgaWYgKCBib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZF TkRPUl9BTUQgKQorICAgICAgICByYyB8PSBpb21lbV9kZW55X2FjY2VzcyhkLCBwYWRkcl90b19w Zm4oMHhmZFVMTCA8PCAzMiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRy X3RvX3BmbigoMVVMTCA8PCA0MCkgLSAxKSk7CisKKyAgICAvKiBSZW1vdmUgYWNjZXNzIHRvIEU4 MjBfVU5VU0FCTEUgSS9PIHJlZ2lvbnMgYWJvdmUgMU1CLiAqLworICAgIGZvciAoIGkgPSAwOyBp IDwgZTgyMC5ucl9tYXA7IGkrKyApCisgICAgeworICAgICAgICB1bnNpZ25lZCBsb25nIHNmbiwg ZWZuOworICAgICAgICBzZm4gPSBtYXhfdCh1bnNpZ25lZCBsb25nLCBwYWRkcl90b19wZm4oZTgy MC5tYXBbaV0uYWRkciksIDB4MTAwdWwpOworICAgICAgICBlZm4gPSBwYWRkcl90b19wZm4oZTgy MC5tYXBbaV0uYWRkciArIGU4MjAubWFwW2ldLnNpemUgLSAxKTsKKyAgICAgICAgaWYgKCAoZTgy MC5tYXBbaV0udHlwZSA9PSBFODIwX1VOVVNBQkxFKSAmJgorICAgICAgICAgICAgIChlODIwLm1h cFtpXS5zaXplICE9IDApICYmCisgICAgICAgICAgICAgKHNmbiA8PSBlZm4pICkKKyAgICAgICAg ICAgIHJjIHw9IGlvbWVtX2RlbnlfYWNjZXNzKGQsIHNmbiwgZWZuKTsKKyAgICB9CisKKyAgICAv KiBQcmV2ZW50IGFjY2VzcyB0byBIUEVUICovCisgICAgaWYgKCBocGV0X2FkZHJlc3MgKQorICAg IHsKKyAgICAgICAgdTggcHJvdF9mbGFncyA9IGhwZXRfZmxhZ3MgJiBBQ1BJX0hQRVRfUEFHRV9Q Uk9URUNUX01BU0s7CisKKyAgICAgICAgbWZuID0gcGFkZHJfdG9fcGZuKGhwZXRfYWRkcmVzcyk7 CisgICAgICAgIGlmICggcHJvdF9mbGFncyA9PSBBQ1BJX0hQRVRfUEFHRV9QUk9URUNUNCApCisg ICAgICAgICAgICByYyB8PSBpb21lbV9kZW55X2FjY2VzcyhkLCBtZm4sIG1mbik7CisgICAgICAg IGVsc2UgaWYgKCBwcm90X2ZsYWdzID09IEFDUElfSFBFVF9QQUdFX1BST1RFQ1Q2NCApCisgICAg ICAgICAgICByYyB8PSBpb21lbV9kZW55X2FjY2VzcyhkLCBtZm4sIG1mbiArIDE1KTsKKyAgICAg ICAgZWxzZSBpZiAoIHJvX2hwZXQgKQorICAgICAgICAgICAgcmMgfD0gcmFuZ2VzZXRfYWRkX3Np bmdsZXRvbihtbWlvX3JvX3JhbmdlcywgbWZuKTsKKyAgICB9CisKKyAgICByZXR1cm4gcmM7Cit9 CisKIGludCBfX2luaXQgY29uc3RydWN0X2RvbTAoCiAgICAgc3RydWN0IGRvbWFpbiAqZCwKICAg ICBjb25zdCBtb2R1bGVfdCAqaW1hZ2UsIHVuc2lnbmVkIGxvbmcgaW1hZ2VfaGVhZHJvb20sCkBA IC0xNTM5LDgzICsxNjIxLDcgQEAgaW50IF9faW5pdCBjb25zdHJ1Y3RfZG9tMCgKICAgICBpZiAo IHRlc3RfYml0KFhFTkZFQVRfc3VwZXJ2aXNvcl9tb2RlX2tlcm5lbCwgcGFybXMuZl9yZXF1aXJl ZCkgKQogICAgICAgICBwYW5pYygiRG9tMCByZXF1aXJlcyBzdXBlcnZpc29yLW1vZGUgZXhlY3V0 aW9uIik7CiAKLSAgICByYyA9IDA7Ci0KLSAgICAvKiBUaGUgaGFyZHdhcmUgZG9tYWluIGlzIGlu aXRpYWxseSBwZXJtaXR0ZWQgZnVsbCBJL08gY2FwYWJpbGl0aWVzLiAqLwotICAgIHJjIHw9IGlv cG9ydHNfcGVybWl0X2FjY2VzcyhkLCAwLCAweEZGRkYpOwotICAgIHJjIHw9IGlvbWVtX3Blcm1p dF9hY2Nlc3MoZCwgMFVMLCAoMVVMIDw8IChwYWRkcl9iaXRzIC0gUEFHRV9TSElGVCkpIC0gMSk7 Ci0gICAgcmMgfD0gaXJxc19wZXJtaXRfYWNjZXNzKGQsIDEsIG5yX2lycXNfZ3NpIC0gMSk7Ci0K LSAgICAvKgotICAgICAqIE1vZGlmeSBJL08gcG9ydCBhY2Nlc3MgcGVybWlzc2lvbnMuCi0gICAg ICovCi0gICAgLyogTWFzdGVyIEludGVycnVwdCBDb250cm9sbGVyIChQSUMpLiAqLwotICAgIHJj IHw9IGlvcG9ydHNfZGVueV9hY2Nlc3MoZCwgMHgyMCwgMHgyMSk7Ci0gICAgLyogU2xhdmUgSW50 ZXJydXB0IENvbnRyb2xsZXIgKFBJQykuICovCi0gICAgcmMgfD0gaW9wb3J0c19kZW55X2FjY2Vz cyhkLCAweEEwLCAweEExKTsKLSAgICAvKiBJbnRlcnZhbCBUaW1lciAoUElUKS4gKi8KLSAgICBy YyB8PSBpb3BvcnRzX2RlbnlfYWNjZXNzKGQsIDB4NDAsIDB4NDMpOwotICAgIC8qIFBJVCBDaGFu bmVsIDIgLyBQQyBTcGVha2VyIENvbnRyb2wuICovCi0gICAgcmMgfD0gaW9wb3J0c19kZW55X2Fj Y2VzcyhkLCAweDYxLCAweDYxKTsKLSAgICAvKiBBQ1BJIFBNIFRpbWVyLiAqLwotICAgIGlmICgg cG10bXJfaW9wb3J0ICkKLSAgICAgICAgcmMgfD0gaW9wb3J0c19kZW55X2FjY2VzcyhkLCBwbXRt cl9pb3BvcnQsIHBtdG1yX2lvcG9ydCArIDMpOwotICAgIC8qIFBDSSBjb25maWd1cmF0aW9uIHNw YWNlIChOQi4gMHhjZjggaGFzIHNwZWNpYWwgdHJlYXRtZW50KS4gKi8KLSAgICByYyB8PSBpb3Bv cnRzX2RlbnlfYWNjZXNzKGQsIDB4Y2ZjLCAweGNmZik7Ci0gICAgLyogQ29tbWFuZC1saW5lIEkv TyByYW5nZXMuICovCi0gICAgcHJvY2Vzc19kb20wX2lvcG9ydHNfZGlzYWJsZShkKTsKLQotICAg IC8qCi0gICAgICogTW9kaWZ5IEkvTyBtZW1vcnkgYWNjZXNzIHBlcm1pc3Npb25zLgotICAgICAq LwotICAgIC8qIExvY2FsIEFQSUMuICovCi0gICAgaWYgKCBtcF9sYXBpY19hZGRyICE9IDAgKQot ICAgIHsKLSAgICAgICAgbWZuID0gcGFkZHJfdG9fcGZuKG1wX2xhcGljX2FkZHIpOwotICAgICAg ICByYyB8PSBpb21lbV9kZW55X2FjY2VzcyhkLCBtZm4sIG1mbik7Ci0gICAgfQotICAgIC8qIEkv TyBBUElDcy4gKi8KLSAgICBmb3IgKCBpID0gMDsgaSA8IG5yX2lvYXBpY3M7IGkrKyApCi0gICAg ewotICAgICAgICBtZm4gPSBwYWRkcl90b19wZm4obXBfaW9hcGljc1tpXS5tcGNfYXBpY2FkZHIp OwotICAgICAgICBpZiAoICFyYW5nZXNldF9jb250YWluc19zaW5nbGV0b24obW1pb19yb19yYW5n ZXMsIG1mbikgKQotICAgICAgICAgICAgcmMgfD0gaW9tZW1fZGVueV9hY2Nlc3MoZCwgbWZuLCBt Zm4pOwotICAgIH0KLSAgICAvKiBNU0kgcmFuZ2UuICovCi0gICAgcmMgfD0gaW9tZW1fZGVueV9h Y2Nlc3MoZCwgcGFkZHJfdG9fcGZuKE1TSV9BRERSX0JBU0VfTE8pLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBhZGRyX3RvX3BmbihNU0lfQUREUl9CQVNFX0xPICsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVNJX0FERFJfREVTVF9JRF9NQVNLKSk7Ci0g ICAgLyogSHlwZXJUcmFuc3BvcnQgcmFuZ2UuICovCi0gICAgaWYgKCBib290X2NwdV9kYXRhLng4 Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9BTUQgKQotICAgICAgICByYyB8PSBpb21lbV9kZW55X2Fj Y2VzcyhkLCBwYWRkcl90b19wZm4oMHhmZFVMTCA8PCAzMiksCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBhZGRyX3RvX3BmbigoMVVMTCA8PCA0MCkgLSAxKSk7Ci0KLSAgICAvKiBS ZW1vdmUgYWNjZXNzIHRvIEU4MjBfVU5VU0FCTEUgSS9PIHJlZ2lvbnMgYWJvdmUgMU1CLiAqLwot ICAgIGZvciAoIGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKyApCi0gICAgewotICAgICAgICB1 bnNpZ25lZCBsb25nIHNmbiwgZWZuOwotICAgICAgICBzZm4gPSBtYXhfdCh1bnNpZ25lZCBsb25n LCBwYWRkcl90b19wZm4oZTgyMC5tYXBbaV0uYWRkciksIDB4MTAwdWwpOwotICAgICAgICBlZm4g PSBwYWRkcl90b19wZm4oZTgyMC5tYXBbaV0uYWRkciArIGU4MjAubWFwW2ldLnNpemUgLSAxKTsK LSAgICAgICAgaWYgKCAoZTgyMC5tYXBbaV0udHlwZSA9PSBFODIwX1VOVVNBQkxFKSAmJgotICAg ICAgICAgICAgIChlODIwLm1hcFtpXS5zaXplICE9IDApICYmCi0gICAgICAgICAgICAgKHNmbiA8 PSBlZm4pICkKLSAgICAgICAgICAgIHJjIHw9IGlvbWVtX2RlbnlfYWNjZXNzKGQsIHNmbiwgZWZu KTsKLSAgICB9Ci0KLSAgICAvKiBQcmV2ZW50IGFjY2VzcyB0byBIUEVUICovCi0gICAgaWYgKCBo cGV0X2FkZHJlc3MgKQotICAgIHsKLSAgICAgICAgdTggcHJvdF9mbGFncyA9IGhwZXRfZmxhZ3Mg JiBBQ1BJX0hQRVRfUEFHRV9QUk9URUNUX01BU0s7Ci0KLSAgICAgICAgbWZuID0gcGFkZHJfdG9f cGZuKGhwZXRfYWRkcmVzcyk7Ci0gICAgICAgIGlmICggcHJvdF9mbGFncyA9PSBBQ1BJX0hQRVRf UEFHRV9QUk9URUNUNCApCi0gICAgICAgICAgICByYyB8PSBpb21lbV9kZW55X2FjY2VzcyhkLCBt Zm4sIG1mbik7Ci0gICAgICAgIGVsc2UgaWYgKCBwcm90X2ZsYWdzID09IEFDUElfSFBFVF9QQUdF X1BST1RFQ1Q2NCApCi0gICAgICAgICAgICByYyB8PSBpb21lbV9kZW55X2FjY2VzcyhkLCBtZm4s IG1mbiArIDE1KTsKLSAgICAgICAgZWxzZSBpZiAoIHJvX2hwZXQgKQotICAgICAgICAgICAgcmMg fD0gcmFuZ2VzZXRfYWRkX3NpbmdsZXRvbihtbWlvX3JvX3JhbmdlcywgbWZuKTsKLSAgICB9Ci0K KyAgICByYyA9IHNldHVwX3Blcm1pc3Npb25zKGQpOwogICAgIEJVR19PTihyYyAhPSAwKTsKIAog ICAgIGlmICggZWxmX2NoZWNrX2Jyb2tlbigmZWxmKSApCi0tIAoyLjkuMyAoQXBwbGUgR2l0LTc1 KQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=