From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH 06/18] xen: add grant table interface for XenDevice-s Date: Wed, 21 Nov 2018 15:11:59 +0000 Message-ID: <20181121151211.15997-7-paul.durrant@citrix.com> References: <20181121151211.15997-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gPUAy-0007Ie-A9 for xen-devel@lists.xenproject.org; Wed, 21 Nov 2018 15:12:24 +0000 In-Reply-To: <20181121151211.15997-1-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: qemu-block@nongnu.org, qemu-devel@nongnu.org, xen-devel@lists.xenproject.org Cc: Anthony Perard , Paul Durrant , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org VGhlIGxlZ2FjeSBQViBiYWNrZW5kIGluZnJhc3RydWN0dXJlIHByb3ZpZGVzIGZ1bmN0aW9ucyB0 byBtYXAsIHVubWFwIGFuZApjb3B5IHBhZ2VzIGdyYW50ZWQgYnkgZnJvbnRlbmRzLiBTaW1pbGFy IGZ1bmN0aW9uYWxpdHkgd2lsbCBiZSByZXF1aXJlZApieSBYZW5EZXZpY2UgaW1wbGVtZW50YXRp b25zIHNvIHRoaXMgcGF0Y2ggYWRkcyB0aGUgbmVjZXNzYXJ5IHN1cHBvcnQuCgpTaWduZWQtb2Zm LWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KQ2M6IFN0ZWZh bm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ2M6IEFudGhvbnkgUGVyYXJk IDxhbnRob255LnBlcmFyZEBjaXRyaXguY29tPgotLS0KIGh3L3hlbi94ZW4tYnVzLmMgICAgICAg ICB8IDE0NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog aW5jbHVkZS9ody94ZW4veGVuLWJ1cy5oIHwgIDI1ICsrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQs IDE3MCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvaHcveGVuL3hlbi1idXMuYyBiL2h3L3hl bi94ZW4tYnVzLmMKaW5kZXggOTk5ODhmODU2OC4uN2ExNTJkMmEyZiAxMDA2NDQKLS0tIGEvaHcv eGVuL3hlbi1idXMuYworKysgYi9ody94ZW4veGVuLWJ1cy5jCkBAIC00NDcsNiArNDQ3LDEzOCBA QCBzdGF0aWMgdm9pZCB4ZW5fZGV2aWNlX2Zyb250ZW5kX2Rlc3Ryb3koWGVuRGV2aWNlICp4ZW5k ZXYpCiAgICAgZ19mcmVlKHhlbmRldi0+ZnJvbnRlbmRfcGF0aCk7CiB9CiAKK3ZvaWQgeGVuX2Rl dmljZV9zZXRfbWF4X2dyYW50X3JlZnMoWGVuRGV2aWNlICp4ZW5kZXYsIHVuc2lnbmVkIGludCBu cl9yZWZzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvciAqKmVycnAp Cit7CisgICAgaWYgKHhlbmdudHRhYl9zZXRfbWF4X2dyYW50cyh4ZW5kZXYtPnhndGgsIG5yX3Jl ZnMpKSB7CisgICAgICAgIGVycm9yX3NldGdfZXJybm8oZXJycCwgZXJybm8sICJ4ZW5nbnR0YWJf c2V0X21heF9ncmFudHMgZmFpbGVkIik7CisgICAgfQorfQorCit2b2lkICp4ZW5fZGV2aWNlX21h cF9ncmFudF9yZWZzKFhlbkRldmljZSAqeGVuZGV2LCB1aW50MzJfdCAqcmVmcywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG5yX3JlZnMsIGludCBwcm90LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvciAqKmVycnApCit7CisgICAgdm9p ZCAqbWFwID0geGVuZ250dGFiX21hcF9kb21haW5fZ3JhbnRfcmVmcyh4ZW5kZXYtPnhndGgsIG5y X3JlZnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4 ZW5kZXYtPmZyb250ZW5kX2lkLCByZWZzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcHJvdCk7CisKKyAgICBpZiAoIW1hcCkgeworICAgICAgICBlcnJv cl9zZXRnX2Vycm5vKGVycnAsIGVycm5vLAorICAgICAgICAgICAgICAgICAgICAgICAgICJ4ZW5n bnR0YWJfbWFwX2RvbWFpbl9ncmFudF9yZWZzIGZhaWxlZCIpOworICAgIH0KKworICAgIHJldHVy biBtYXA7Cit9CisKK3ZvaWQgeGVuX2RldmljZV91bm1hcF9ncmFudF9yZWZzKFhlbkRldmljZSAq eGVuZGV2LCB2b2lkICptYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgbnJfcmVmcywgRXJyb3IgKiplcnJwKQoreworICAgIGlmICh4ZW5nbnR0YWJfdW5t YXAoeGVuZGV2LT54Z3RoLCBtYXAsIG5yX3JlZnMpKSB7CisgICAgICAgIGVycm9yX3NldGdfZXJy bm8oZXJycCwgZXJybm8sICJ4ZW5nbnR0YWJfdW5tYXAgZmFpbGVkIik7CisgICAgfQorfQorCitz dGF0aWMgdm9pZCBjb21wYXRfY29weV9ncmFudF9yZWZzKFhlbkRldmljZSAqeGVuZGV2LCBib29s IHRvX2RvbWFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuRGV2aWNl R3JhbnRDb3B5U2VnbWVudCBzZWdzW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCBucl9zZWdzLCBFcnJvciAqKmVycnApCit7CisgICAgdWludDMyX3Qg KnJlZnMgPSBnX25ldyh1aW50MzJfdCwgbnJfc2Vncyk7CisgICAgaW50IHByb3QgPSB0b19kb21h aW4gPyBQUk9UX1dSSVRFIDogUFJPVF9SRUFEOworICAgIHZvaWQgKm1hcDsKKyAgICB1bnNpZ25l ZCBpbnQgaTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBucl9zZWdzOyBpKyspIHsKKyAgICAgICAg WGVuRGV2aWNlR3JhbnRDb3B5U2VnbWVudCAqc2VnID0gJnNlZ3NbaV07CisKKyAgICAgICAgcmVm c1tpXSA9IHRvX2RvbWFpbiA/IHNlZy0+ZGVzdC5mb3JlaWduLnJlZiA6CisgICAgICAgICAgICBz ZWctPnNvdXJjZS5mb3JlaWduLnJlZjsKKyAgICB9CisKKyAgICBtYXAgPSB4ZW5nbnR0YWJfbWFw X2RvbWFpbl9ncmFudF9yZWZzKHhlbmRldi0+eGd0aCwgbnJfc2VncywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbmRldi0+ZnJvbnRlbmRfaWQsIHJlZnMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90KTsKKyAgICBpZiAo IW1hcCkgeworICAgICAgICBlcnJvcl9zZXRnX2Vycm5vKGVycnAsIGVycm5vLAorICAgICAgICAg ICAgICAgICAgICAgICAgICJ4ZW5nbnR0YWJfbWFwX2RvbWFpbl9ncmFudF9yZWZzIGZhaWxlZCIp OworICAgICAgICBnb3RvIGRvbmU7CisgICAgfQorCisgICAgZm9yIChpID0gMDsgaSA8IG5yX3Nl Z3M7IGkrKykgeworICAgICAgICBYZW5EZXZpY2VHcmFudENvcHlTZWdtZW50ICpzZWcgPSAmc2Vn c1tpXTsKKyAgICAgICAgdm9pZCAqcGFnZSA9IG1hcCArIChpICogWENfUEFHRV9TSVpFKTsKKwor ICAgICAgICBpZiAodG9fZG9tYWluKSB7CisgICAgICAgICAgICBtZW1jcHkocGFnZSArIHNlZy0+ ZGVzdC5mb3JlaWduLm9mZnNldCwgc2VnLT5zb3VyY2UudmlydCwKKyAgICAgICAgICAgICAgICAg ICBzZWctPmxlbik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtZW1jcHkoc2VnLT5k ZXN0LnZpcnQsIHBhZ2UgKyBzZWctPnNvdXJjZS5mb3JlaWduLm9mZnNldCwKKyAgICAgICAgICAg ICAgICAgICBzZWctPmxlbik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoeGVuZ250dGFi X3VubWFwKHhlbmRldi0+eGd0aCwgbWFwLCBucl9zZWdzKSkgeworICAgICAgICBlcnJvcl9zZXRn X2Vycm5vKGVycnAsIGVycm5vLCAieGVuZ250dGFiX3VubWFwIGZhaWxlZCIpOworICAgIH0KKwor ZG9uZToKKyAgICBnX2ZyZWUocmVmcyk7Cit9CisKK3ZvaWQgeGVuX2RldmljZV9jb3B5X2dyYW50 X3JlZnMoWGVuRGV2aWNlICp4ZW5kZXYsIGJvb2wgdG9fZG9tYWluLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBYZW5EZXZpY2VHcmFudENvcHlTZWdtZW50IHNlZ3NbXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG5yX3NlZ3MsIEVycm9yICoq ZXJycCkKK3sKKyAgICB4ZW5nbnR0YWJfZ3JhbnRfY29weV9zZWdtZW50X3QgKnhlbmdudHRhYl9z ZWdzOworICAgIHVuc2lnbmVkIGludCBpOworCisgICAgaWYgKCF4ZW5kZXYtPmZlYXR1cmVfZ3Jh bnRfY29weSkgeworICAgICAgICBjb21wYXRfY29weV9ncmFudF9yZWZzKHhlbmRldiwgdG9fZG9t YWluLCBzZWdzLCBucl9zZWdzLCBlcnJwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg IHhlbmdudHRhYl9zZWdzID0gZ19uZXcwKHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnRfdCwg bnJfc2Vncyk7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgbnJfc2VnczsgaSsrKSB7CisgICAgICAg IFhlbkRldmljZUdyYW50Q29weVNlZ21lbnQgKnNlZyA9ICZzZWdzW2ldOworICAgICAgICB4ZW5n bnR0YWJfZ3JhbnRfY29weV9zZWdtZW50X3QgKnhlbmdudHRhYl9zZWcgPSAmeGVuZ250dGFiX3Nl Z3NbaV07CisKKyAgICAgICAgaWYgKHRvX2RvbWFpbikgeworICAgICAgICAgICAgeGVuZ250dGFi X3NlZy0+ZmxhZ3MgPSBHTlRDT1BZX2Rlc3RfZ3JlZjsKKyAgICAgICAgICAgIHhlbmdudHRhYl9z ZWctPmRlc3QuZm9yZWlnbi5kb21pZCA9IHhlbmRldi0+ZnJvbnRlbmRfaWQ7CisgICAgICAgICAg ICB4ZW5nbnR0YWJfc2VnLT5kZXN0LmZvcmVpZ24ucmVmID0gc2VnLT5kZXN0LmZvcmVpZ24ucmVm OworICAgICAgICAgICAgeGVuZ250dGFiX3NlZy0+ZGVzdC5mb3JlaWduLm9mZnNldCA9IHNlZy0+ ZGVzdC5mb3JlaWduLm9mZnNldDsKKyAgICAgICAgICAgIHhlbmdudHRhYl9zZWctPnNvdXJjZS52 aXJ0ID0gc2VnLT5zb3VyY2UudmlydDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHhl bmdudHRhYl9zZWctPmZsYWdzID0gR05UQ09QWV9zb3VyY2VfZ3JlZjsKKyAgICAgICAgICAgIHhl bmdudHRhYl9zZWctPnNvdXJjZS5mb3JlaWduLmRvbWlkID0geGVuZGV2LT5mcm9udGVuZF9pZDsK KyAgICAgICAgICAgIHhlbmdudHRhYl9zZWctPnNvdXJjZS5mb3JlaWduLnJlZiA9IHNlZy0+c291 cmNlLmZvcmVpZ24ucmVmOworICAgICAgICAgICAgeGVuZ250dGFiX3NlZy0+c291cmNlLmZvcmVp Z24ub2Zmc2V0ID0KKyAgICAgICAgICAgICAgICBzZWctPnNvdXJjZS5mb3JlaWduLm9mZnNldDsK KyAgICAgICAgICAgIHhlbmdudHRhYl9zZWctPmRlc3QudmlydCA9IHNlZy0+ZGVzdC52aXJ0Owor ICAgICAgICB9CisKKyAgICAgICAgeGVuZ250dGFiX3NlZy0+bGVuID0gc2VnLT5sZW47CisgICAg fQorCisgICAgaWYgKHhlbmdudHRhYl9ncmFudF9jb3B5KHhlbmRldi0+eGd0aCwgbnJfc2Vncywg eGVuZ250dGFiX3NlZ3MpKSB7CisgICAgICAgIGVycm9yX3NldGdfZXJybm8oZXJycCwgZXJybm8s ICJ4ZW5nbnR0YWJfZ3JhbnRfY29weSBmYWlsZWQiKTsKKyAgICAgICAgZ290byBkb25lOworICAg IH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBucl9zZWdzOyBpKyspIHsKKyAgICAgICAgeGVuZ250 dGFiX2dyYW50X2NvcHlfc2VnbWVudF90ICp4ZW5nbnR0YWJfc2VnID0gJnhlbmdudHRhYl9zZWdz W2ldOworCisgICAgICAgIGlmICh4ZW5nbnR0YWJfc2VnLT5zdGF0dXMgIT0gR05UU1Rfb2theSkg eworICAgICAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAieGVuZ250dGFiX2dyYW50X2NvcHkgc2Vn WyV1XSBmYWlsZWQiLCBpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQor Citkb25lOgorICAgIGdfZnJlZSh4ZW5nbnR0YWJfc2Vncyk7Cit9CisKIHN0YXRpYyB2b2lkIHhl bl9kZXZpY2VfdW5yZWFsaXplKERldmljZVN0YXRlICpkZXYsIEVycm9yICoqZXJycCkKIHsKICAg ICBYZW5EZXZpY2UgKnhlbmRldiA9IFhFTl9ERVZJQ0UoZGV2KTsKQEAgLTQ3MCw2ICs2MDIsMTAg QEAgc3RhdGljIHZvaWQgeGVuX2RldmljZV91bnJlYWxpemUoRGV2aWNlU3RhdGUgKmRldiwgRXJy b3IgKiplcnJwKQogICAgIHhlbl9kZXZpY2VfZnJvbnRlbmRfZGVzdHJveSh4ZW5kZXYpOwogICAg IHhlbl9kZXZpY2VfYmFja2VuZF9kZXN0cm95KHhlbmRldik7CiAKKyAgICBpZiAoeGVuZGV2LT54 Z3RoKSB7CisgICAgICAgIHhlbmdudHRhYl9jbG9zZSh4ZW5kZXYtPnhndGgpOworICAgIH0KKwog ICAgIGdfZnJlZSh4ZW5kZXYtPm5hbWUpOwogfQogCkBAIC01MTEsNiArNjQ3LDE1IEBAIHN0YXRp YyB2b2lkIHhlbl9kZXZpY2VfcmVhbGl6ZShEZXZpY2VTdGF0ZSAqZGV2LCBFcnJvciAqKmVycnAp CiAKICAgICB0cmFjZV94ZW5fZGV2aWNlX3JlYWxpemUodHlwZSwgeGVuZGV2LT5uYW1lKTsKIAor ICAgIHhlbmRldi0+eGd0aCA9IHhlbmdudHRhYl9vcGVuKE5VTEwsIDApOworICAgIGlmICgheGVu ZGV2LT54Z3RoKSB7CisgICAgICAgIGVycm9yX3NldGdfZXJybm8oZXJycCwgZXJybm8sICJmYWls ZWQgeGVuZ250dGFiX29wZW4iKTsKKyAgICAgICAgZ290byB1bnJlYWxpemU7CisgICAgfQorCisg ICAgeGVuZGV2LT5mZWF0dXJlX2dyYW50X2NvcHkgPQorICAgICAgICAoeGVuZ250dGFiX2dyYW50 X2NvcHkoeGVuZGV2LT54Z3RoLCAwLCBOVUxMKSA9PSAwKTsKKwogICAgIHhlbl9kZXZpY2VfYmFj a2VuZF9jcmVhdGUoeGVuZGV2LCAmbG9jYWxfZXJyKTsKICAgICBpZiAobG9jYWxfZXJyKSB7CiAg ICAgICAgIGVycm9yX3Byb3BhZ2F0ZShlcnJwLCBsb2NhbF9lcnIpOwpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9ody94ZW4veGVuLWJ1cy5oIGIvaW5jbHVkZS9ody94ZW4veGVuLWJ1cy5oCmluZGV4IDk1 NDE0OWU1MWIuLmRiMTRkNDkwMjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvaHcveGVuL3hlbi1idXMu aAorKysgYi9pbmNsdWRlL2h3L3hlbi94ZW4tYnVzLmgKQEAgLTIyLDYgKzIyLDggQEAgdHlwZWRl ZiBzdHJ1Y3QgWGVuRGV2aWNlIHsKICAgICBlbnVtIHhlbmJ1c19zdGF0ZSBiYWNrZW5kX3N0YXRl LCBmcm9udGVuZF9zdGF0ZTsKICAgICBOb3RpZmllciBleGl0OwogICAgIFhlbldhdGNoICpmcm9u dGVuZF9zdGF0ZV93YXRjaDsKKyAgICB4ZW5nbnR0YWJfaGFuZGxlICp4Z3RoOworICAgIGJvb2wg ZmVhdHVyZV9ncmFudF9jb3B5OwogfSBYZW5EZXZpY2U7CiAKIHR5cGVkZWYgY2hhciAqKCpYZW5E ZXZpY2VHZXROYW1lKShYZW5EZXZpY2UgKnhlbmRldiwgRXJyb3IgKiplcnJwKTsKQEAgLTc3LDQg Kzc5LDI3IEBAIHZvaWQgeGVuX2RldmljZV9iYWNrZW5kX3NldF9zdGF0ZShYZW5EZXZpY2UgKnhl bmRldiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIHhlbmJ1c19zdGF0 ZSBzdGF0ZSk7CiBlbnVtIHhlbmJ1c19zdGF0ZSB4ZW5fZGV2aWNlX2JhY2tlbmRfZ2V0X3N0YXRl KFhlbkRldmljZSAqeGVuZGV2KTsKIAordm9pZCB4ZW5fZGV2aWNlX3NldF9tYXhfZ3JhbnRfcmVm cyhYZW5EZXZpY2UgKnhlbmRldiwgdW5zaWduZWQgaW50IG5yX3JlZnMsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEVycm9yICoqZXJycCk7Cit2b2lkICp4ZW5fZGV2aWNlX21h cF9ncmFudF9yZWZzKFhlbkRldmljZSAqeGVuZGV2LCB1aW50MzJfdCAqcmVmcywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG5yX3JlZnMsIGludCBwcm90LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvciAqKmVycnApOwordm9pZCB4ZW5f ZGV2aWNlX3VubWFwX2dyYW50X3JlZnMoWGVuRGV2aWNlICp4ZW5kZXYsIHZvaWQgKm1hcCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBucl9yZWZzLCBFcnJv ciAqKmVycnApOworCit0eXBlZGVmIHN0cnVjdCBYZW5EZXZpY2VHcmFudENvcHlTZWdtZW50IHsK KyAgICB1bmlvbiB7CisgICAgICAgIHZvaWQgKnZpcnQ7CisgICAgICAgIHN0cnVjdCB7CisgICAg ICAgICAgICB1aW50MzJfdCByZWY7CisgICAgICAgICAgICBvZmZfdCBvZmZzZXQ7CisgICAgICAg IH0gZm9yZWlnbjsKKyAgICB9IHNvdXJjZSwgZGVzdDsKKyAgICBzaXplX3QgbGVuOworfSBYZW5E ZXZpY2VHcmFudENvcHlTZWdtZW50OworCit2b2lkIHhlbl9kZXZpY2VfY29weV9ncmFudF9yZWZz KFhlbkRldmljZSAqeGVuZGV2LCBib29sIHRvX2RvbWFpbiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgWGVuRGV2aWNlR3JhbnRDb3B5U2VnbWVudCBzZWdzW10sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBucl9zZWdzLCBFcnJvciAqKmVycnAp OworCiAjZW5kaWYgLyogSFdfWEVOX0JVU19IICovCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu b3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs