From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH v2 7/9] libxl: Allow local access for block devices with hotplug scripts Date: Mon, 21 Mar 2016 18:16:59 +0000 Message-ID: <1458584221-24426-8-git-send-email-george.dunlap@citrix.com> References: <1458584221-24426-1-git-send-email-george.dunlap@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458584221-24426-1-git-send-email-george.dunlap@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.xen.org Cc: George Dunlap , Ian Jackson , Wei Liu , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org RnJvbTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgoKcHlncnVi IGFuZCBxZW11dSBuZWVkIHRvIGJlIGFibGUgdG8gYWNjZXNzIGEgVk0ncyBkaXNrcyBsb2NhbGx5 IGluCm9yZGVyIHRvIGJlIGFibGUgdG8gcHVsbCBvdXQgdGhlIGtlcm5lbCBhbmQgcHJvdmlkZSBl bXVsYXRlZCBkaXNrCmFjY2VzcywgcmVzcGVjdGl2ZWx5LiAgVGhpcyBjYW4gYmUgZG9uZSBlaXRo ZXIgYnkgYWNjZXNzaW5nIHRoZSBsb2NhbApkaXNrIGRpcmVjdGx5LCBvciBieSBwbHVnZ2luZyB0 aGUgdGFyZ2V0IGRpc2sgaW50byBkb20wIHRvIGFsbG93CmFjY2Vzcy4KClVuZm9ydHVuYXRlbHks IHdoaWxlIHRoZSBwbHVnZ2luZyBtYWNoaW5lcnkgd29ya3MgZm9yIHB5Z3J1YiwgaXQgZG9lcwpu b3QgeWV0IHdvcmsgZm9yIHFlbXV1OyB0aGlzIG1lYW5zIHRoYXQgYXQgdGhlIG1vbWVudCwgZGlz a3Mgd2l0aApob3RwbHVnIHNjcmlwdHMgb3IgZGlza3Mgd2l0aCBub24tZG9tMCBiYWNrZW5kcyBj YW5ub3QgYmUgcHJvdmlkZWQgYXMKZW11bGF0ZWQgZGV2aWNlcyB0byBIVk0gZG9tYWlucy4KCkZv cnR1bmF0ZWx5LCBkaXNrcyB1c2luZyBob3RwbHVnIHNjcmlwdHMgY3JlYXRlZCBpbiBkb20wIGRv IGNyZWF0ZSBhCmJsb2NrIGRldmljZSBhcyBwYXJ0IG9mIHNldC11cCwgd2hpY2ggY2FuIGJlIGFj Y2Vzc2VkIGxvY2FsbHk7IGFuZCBpZgp0aGV5IHVzZSBibG9jay1jb21tb24uc2g6d3JpdGVfZGV2 LCB0aGlzIHBhdGggd2lsbCBiZSB3cml0dGVuIHRvCnBoeXNpY2FsLWRldmljZS1wYXRoLgoKTW9k aWZ5IGxpYnhsX19kZXZpY2VfZGlza19zZXRkZWZhdWx0KCkgdG8gYmUgYWJsZSB0byBmaXNoIHRo aXMgcGF0aApvdXQgb2YgeGVuc3RvcmUgYW5kIHBhc3MgaXQgdG8gdGhlIGNhbGxlci4KClVuZm9y dHVuYXRlbHksIGF0IHRoZSB0aW1lIHB5Z3J1YiBydW5zLCB0aGUgZGV2aWNlcyBoYXZlIG5vdCB5 ZXQgYmVlbgpzZXQgdXAuICBSYXRoZXIgdGhhbiB0cnkgdG8gc3Rhc2ggdGhlIGRvbWlkIHNvbWV3 aGVyZSB0byBwYXNzLCB3ZSBqdXN0CnBhc3MgSU5WQUxJRF9ET01JRC4KClRoaXMgYWxsb3dzIHFl bXV1IHRvIGVtdWxhdGUgYmxvY2sgZGV2aWNlcyBjcmVhdGVkIHdpdGggY3VzdG9tIGhvdHBsdWcK c2NyaXB0cy4KClNpZ25lZC1vZmYtYnk6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUu Y2l0cml4LmNvbT4KLS0tCkNoYW5nZXMgc2luY2UgdjE6Ci0gUG9ydGVkIG9uIHRvcCBvZiBwcmV2 aW91cyBjaGFuZ2VkIHBhdGNoZXMKLSBSZW1vdmVkIHZlc3RpZ2FsIHBhcmFncmFwaCBmcm9tIGNo YW5nZWxvZwotIENoYW5nZSBkb21pZCBhcmd1bWVudCB0byBndWVzdF9kb21pZAotIEFkZGVkIGEg bWlzc2luZyBzcGFjZSBhZnRlciBhbiBpZiAoKQotIFRyaW1tZWQgc29tZSBsb25nIGxpbmVzCgpD QzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGNpdHJpeC5jb20+CkNDOiBXZWkgTGl1IDx3ZWku bGl1MkBjaXRyaXguY29tPgpDQzogUm9nZXIgUGF1IE1vbm5lIDxyb2dlci5wYXVAY2l0cml4LmNv bT4KLS0tCiB0b29scy9saWJ4bC9saWJ4bC5jICAgICAgICAgIHwgNDMgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLQogdG9vbHMvbGlieGwvbGlieGxfZG0uYyAgICAg ICB8ICA0ICsrLS0KIHRvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmggfCAgMyArKy0KIDMgZmls ZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS90b29scy9saWJ4bC9saWJ4bC5jIGIvdG9vbHMvbGlieGwvbGlieGwuYwppbmRleCA2MDJiZWMy Li45NDRmNGQxIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bC5jCisrKyBiL3Rvb2xzL2xp YnhsL2xpYnhsLmMKQEAgLTIyOTUsNyArMjI5NSw3IEBAIGludCBsaWJ4bF9fZGV2aWNlX2Rpc2tf c2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9kZXZpY2VfZGlzayAqZGlzaykKIH0KIAog aW50IGxpYnhsX19kZXZpY2VfZnJvbV9kaXNrKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlk LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfZGlzayAq ZGlzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfZGV2 aWNlX2Rpc2sgKmRpc2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhs X19kZXZpY2UgKmRldmljZSkKIHsKICAgICBpbnQgZGV2aWQ7CkBAIC0zMDAxLDggKzMwMDEsOSBA QCBzdGF0aWMgY2hhciAqIGxpYnhsX19hbGxvY192ZGV2KGxpYnhsX19nYyAqZ2MsIHZvaWQgKmdl dF92ZGV2X3VzZXIsCiAvKiBDYWxsYmFja3MgKi8KIAogY2hhciAqbGlieGxfX2RldmljZV9kaXNr X2ZpbmRfbG9jYWxfcGF0aChsaWJ4bF9fZ2MgKmdjLCAKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfZGV2aWNlX2Rpc2sgKmRpc2ssCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcWRpc2tfZGlyZWN0KQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9taWQgZ3Vlc3Rf ZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBs aWJ4bF9kZXZpY2VfZGlzayAqZGlzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJvb2wgcWRpc2tfZGlyZWN0KQogewogICAgIGNoYXIgKnBhdGggPSBOVUxMOwog CkBAIC0zMDMxLDYgKzMwMzIsMzggQEAgY2hhciAqbGlieGxfX2RldmljZV9kaXNrX2ZpbmRfbG9j YWxfcGF0aChsaWJ4bF9fZ2MgKmdjLAogICAgICAgICBwYXRoID0gbGlieGxfX3N0cmR1cChnYywg ZGlzay0+cGRldl9wYXRoKTsKICAgICAgICAgTE9HKERFQlVHLCAiRGlyZWN0bHkgYWNjZXNzaW5n IGxvY2FsIFFESVNLIHRhcmdldCAlcyIsIHBhdGgpOwogICAgICAgICBnb3RvIG91dDsKKyAgICB9 IAorCisgICAgLyogCisgICAgICogSWYgdGhlIGZvcm1hdCBpc24ndCByYXcgYW5kIC8gb3Igd2Un cmUgdXNpbmcgYSBzY3JpcHQsIHRoZW4gc2VlCisgICAgICogaWYgdGhlIHNjcmlwdCBoYXMgd3Jp dHRlbiBhIHBhdGggdG8gdGhlICJjb29rZWQiIG5vZGUKKyAgICAgKi8KKyAgICBpZiAoZGlzay0+ c2NyaXB0ICYmIGd1ZXN0X2RvbWlkICE9IElOVkFMSURfRE9NSUQpIHsKKyAgICAgICAgbGlieGxf X2RldmljZSBkZXZpY2U7CisgICAgICAgIGNoYXIgKmJlX3BhdGgsICpwZHBhdGg7CisgICAgICAg IGludCByYzsKKworICAgICAgICBMT0coREVCVUcsCisgICAgICAgICAgICAiUnVuIGZyb20gYSBz Y3JpcHQ7IGNoZWNraW5nIGZvciBwaHlzaWNhbC1kZXZpY2UtcGF0aCAodmRldiAlcykiLAorICAg ICAgICAgICAgZGlzay0+dmRldik7CisKKyAgICAgICAgcmMgPSBsaWJ4bF9fZGV2aWNlX2Zyb21f ZGlzayhnYywgZ3Vlc3RfZG9taWQsIGRpc2ssICZkZXZpY2UpOworICAgICAgICBpZiAocmMgPCAw KQorICAgICAgICAgICAgZ290byBvdXQ7CisKKyAgICAgICAgYmVfcGF0aCA9IGxpYnhsX19kZXZp Y2VfYmFja2VuZF9wYXRoKGdjLCAmZGV2aWNlKTsKKworICAgICAgICBwZHBhdGggPSBsaWJ4bF9f c3ByaW50ZihnYywgIiVzL3BoeXNpY2FsLWRldmljZS1wYXRoIiwgYmVfcGF0aCk7CisKKyAgICAg ICAgTE9HKERFQlVHLCAiQXR0ZW1wdGluZyB0byByZWFkIG5vZGUgJXMiLCBwZHBhdGgpOworICAg ICAgICBwYXRoID0gbGlieGxfX3hzX3JlYWQoZ2MsIFhCVF9OVUxMLCBwZHBhdGgpOworCisgICAg ICAgIGlmIChwYXRoKQorICAgICAgICAgICAgTE9HKERFQlVHLCAiQWNjZXNzaW5nIGNvb2tlZCBi bG9jayBkZXZpY2UgJXMiLCBwYXRoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgTE9HKERF QlVHLCAiTm8gcGh5c2ljYWwtZGV2aWNlLXBhdGgsIGNhbid0IGFjY2VzcyBsb2NhbGx5LiIpOwor CisgICAgICAgIGdvdG8gb3V0OwogICAgIH0KIAogIG91dDoKQEAgLTMwNTcsNyArMzA5MCw4IEBA IHZvaWQgbGlieGxfX2RldmljZV9kaXNrX2xvY2FsX2luaXRpYXRlX2F0dGFjaChsaWJ4bF9fZWdj ICplZ2MsCiAKICAgICBMT0coREVCVUcsICJUcnlpbmcgdG8gZmluZCBsb2NhbCBwYXRoIik7CiAK LSAgICBkbHMtPmRpc2twYXRoID0gbGlieGxfX2RldmljZV9kaXNrX2ZpbmRfbG9jYWxfcGF0aChn YywgaW5fZGlzaywgZmFsc2UpOworICAgIGRscy0+ZGlza3BhdGggPSBsaWJ4bF9fZGV2aWNlX2Rp c2tfZmluZF9sb2NhbF9wYXRoKGdjLCBJTlZBTElEX0RPTUlELAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluX2Rpc2ssIGZhbHNlKTsKICAg ICBpZiAoZGxzLT5kaXNrcGF0aCkgewogICAgICAgICBMT0coREVCVUcsICJMb2NhbCBwYXRoIGZv dW5kLCBleGVjdXRpbmcgY2FsbGJhY2suIik7CiAgICAgICAgIGRscy0+Y2FsbGJhY2soZWdjLCBk bHMsIDApOwpAQCAtMzA3Myw3ICszMTA3LDYgQEAgdm9pZCBsaWJ4bF9fZGV2aWNlX2Rpc2tfbG9j YWxfaW5pdGlhdGVfYXR0YWNoKGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgcmMgPSBsaWJ4bF9f ZGV2aWNlX2Rpc2tfc2V0ZGVmYXVsdChnYywgZGlzayk7CiAgICAgICAgIGlmIChyYykgZ290byBv dXQ7CiAKLSAgICAgICAgLyogSWYgd2UgY2FuJ3QgZmluZCBhIGxvY2FsIHBhdGgsIGF0dGFjaCBp dCAqLwogICAgICAgICBsaWJ4bF9fcHJlcGFyZV9hb19kZXZpY2UoYW8sICZkbHMtPmFvZGV2KTsK ICAgICAgICAgZGxzLT5hb2Rldi5jYWxsYmFjayA9IGxvY2FsX2RldmljZV9hdHRhY2hfY2I7CiAg ICAgICAgIGRldmljZV9kaXNrX2FkZChlZ2MsIExJQlhMX1RPT0xTVEFDS19ET01JRCwgZGlzaywg JmRscy0+YW9kZXYsCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kbS5jIGIvdG9vbHMv bGlieGwvbGlieGxfZG0uYwppbmRleCAxNDkzYjg0Li5iNTgxNjU3IDEwMDY0NAotLS0gYS90b29s cy9saWJ4bC9saWJ4bF9kbS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMKQEAgLTEyMDgs OCArMTIwOCw4IEBAIHN0YXRpYyBpbnQgbGlieGxfX2J1aWxkX2RldmljZV9tb2RlbF9hcmdzX25l dyhsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgICAgICAgICB0YXJnZXRfcGF0aCA9IGxpYnhs X19ibGt0YXBfZGV2cGF0aChnYywgZGlza3NbaV0ucGRldl9wYXRoLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNrc1tpXS5mb3JtYXQp OwogICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3BhdGgg PSBsaWJ4bF9fZGV2aWNlX2Rpc2tfZmluZF9sb2NhbF9wYXRoKGdjLCAKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkaXNrc1tpXSwg dHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldF9wYXRoID0gbGlieGxfX2RldmljZV9k aXNrX2ZpbmRfbG9jYWxfcGF0aChnYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBndWVzdF9kb21pZCwgJmRpc2tzW2ldLCB0cnVlKTsKIAogICAgICAg ICAgICAgICAgIGlmICghdGFyZ2V0X3BhdGgpIHsKICAgICAgICAgICAgICAgICAgICAgTE9HKFdB Uk4sICJObyB3YXkgdG8gZ2V0IGxvY2FsIGFjY2VzcyBkaXNrIHRvIGltYWdlOiAlc1xuIgpkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhs X2ludGVybmFsLmgKaW5kZXggMjY4YTJmNC4uOWZkZTIxMiAxMDA2NDQKLS0tIGEvdG9vbHMvbGli eGwvbGlieGxfaW50ZXJuYWwuaAorKysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCkBA IC0xNzEyLDcgKzE3MTIsNyBAQCBfaGlkZGVuIGNoYXIgKmxpYnhsX19ibGt0YXBfZGV2cGF0aChs aWJ4bF9fZ2MgKmdjLAogX2hpZGRlbiBpbnQgbGlieGxfX2RldmljZV9kZXN0cm95X3RhcGRpc2so bGlieGxfX2djICpnYywgY29uc3QgY2hhciAqcGFyYW1zKTsKIAogX2hpZGRlbiBpbnQgbGlieGxf X2RldmljZV9mcm9tX2Rpc2sobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV9kaXNrICpkaXNrLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9kZXZpY2VfZGlzayAq ZGlzaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2RldmljZSAq ZGV2aWNlKTsKIAogLyogQ2FsbHMgcG9sbCgpIGFnYWluIC0gdXNlZnVsIHRvIGNoZWNrIHdoZXRo ZXIgYSBzaWduYWxlZCBjb25kaXRpb24KQEAgLTI2OTIsNiArMjY5Miw3IEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBsaWJ4bF9fZGV2aWNlX2Rpc2tfbG9jYWxfaW5pdChsaWJ4bF9fZGlza19sb2NhbF9z dGF0ZSAqZGxzKQogICogU2VlIGlmIHdlIGNhbiBmaW5kIGEgd2F5IHRvIGFjY2VzcyBhIGRpc2sg bG9jYWxseQogICovCiBfaGlkZGVuIGNoYXIgKiBsaWJ4bF9fZGV2aWNlX2Rpc2tfZmluZF9sb2Nh bF9wYXRoKGxpYnhsX19nYyAqZ2MsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWJ4bF9kb21pZCBndWVzdF9kb21pZCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfZGV2aWNlX2Rp c2sgKmRpc2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJvb2wgcWRpc2tfZGlyZWN0KTsKIAotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=