From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sameer Goel Subject: [RFC v2 3/7] xen/passthrough/arm: Introduce iommu_fwspec Date: Wed, 20 Sep 2017 18:37:06 -0600 Message-ID: <1505954230-18892-4-git-send-email-sgoel@codeaurora.org> References: <1505954230-18892-1-git-send-email-sgoel@codeaurora.org> 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 1dupUk-0000Ik-5o for xen-devel@lists.xenproject.org; Thu, 21 Sep 2017 00:37:34 +0000 In-Reply-To: <1505954230-18892-1-git-send-email-sgoel@codeaurora.org> 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, julien.grall@arm.com, mjaggi@caviumnetworks.com Cc: sstabellini@kernel.org, wei.liu2@citrix.com, george.dunlap@eu.citrix.com, Andrew.Cooper3@citrix.com, jbeulich@suse.com, Sameer Goel , Ian.Jackson@citrix.com, nd@arm.com, robin.murphy@arm.com, shankerd@codeaurora.org List-Id: xen-devel@lists.xenproject.org SW50cm9kdWNlIGEgY29tbW9uIHN0cnVjdHVyZSB0byBob2xkIHRoZSBmdyAoQUNQSSBvciBEVCkg ZGVmaW5lZApjb25maWd1cmF0aW9uIGZvciBTTU1VIGh3LiBUaGUgY3VycmVudCB1c2UgY2FzZSBp cyBmb3IgYXJtIFNNTVVzLiBTbywKbWFraW5nIHRoaXMgYXJjaGl0ZWN0dXJlIHNwZWNpZmljLgoK QmFzZWQgb24gTGludXgga2VybmVsIGNvbW1pdCA1N2Y5OGQyZjYxZTE6IGlvbW11OiBJbnRyb2R1 Y2UgaW9tbXVfZndzcGVjClNpZ25lZC1vZmYtYnk6IFNhbWVlciBHb2VsIDxzZ29lbEBjb2RlYXVy b3JhLm9yZz4KLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vaW9tbXUuYyB8IDY2ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9pbmNsdWRlL2FzbS1hcm0v ZGV2aWNlLmggICAgICAgIHwgIDEgKwogeGVuL2luY2x1ZGUveGVuL2lvbW11LmggICAgICAgICAg ICAgfCAyOSArKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDk2IGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vaW9tbXUuYyBiL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9pb21tdS5jCmluZGV4IDk1YjFhYmIuLjQxYzY0OTcg MTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9pb21tdS5jCisrKyBiL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9pb21tdS5jCkBAIC03MywzICs3Myw2OSBAQCBpbnQg YXJjaF9pb21tdV9wb3B1bGF0ZV9wYWdlX3RhYmxlKHN0cnVjdCBkb21haW4gKmQpCiAgICAgLyog VGhlIElPTU1VIHNoYXJlcyB0aGUgcDJtIHdpdGggdGhlIENQVSAqLwogICAgIHJldHVybiAtRU5P U1lTOwogfQorCitjb25zdCBzdHJ1Y3QgaW9tbXVfb3BzICppb21tdV9vcHNfZnJvbV9md25vZGUo c3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSkKK3sKKyAgICByZXR1cm4gaW9tbXVfZ2V0X29w cygpOworfQorCitpbnQgaW9tbXVfZndzcGVjX2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1 Y3QgZndub2RlX2hhbmRsZSAqaW9tbXVfZndub2RlLAorICAgICAgICBjb25zdCBzdHJ1Y3QgaW9t bXVfb3BzICpvcHMpCit7CisgICAgc3RydWN0IGlvbW11X2Z3c3BlYyAqZndzcGVjID0gZGV2LT5p b21tdV9md3NwZWM7CisKKyAgICBpZiAoIGZ3c3BlYyApCisgICAgICAgIHJldHVybiBvcHMgPT0g ZndzcGVjLT5vcHMgPyAwIDogLUVJTlZBTDsKKworICAgIGZ3c3BlYyA9IF94emFsbG9jKHNpemVv ZihzdHJ1Y3QgaW9tbXVfZndzcGVjKSwgc2l6ZW9mKHZvaWQgKikpOworICAgIGlmICggIWZ3c3Bl YyApCisgICAgICAgIHJldHVybiAtRU5PTUVNOworCisgICAgZndzcGVjLT5pb21tdV9md25vZGUg PSBpb21tdV9md25vZGU7CisgICAgZndzcGVjLT5vcHMgPSBvcHM7CisgICAgZGV2LT5pb21tdV9m d3NwZWMgPSBmd3NwZWM7CisKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBpb21tdV9md3NwZWNf ZnJlZShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisgICAgc3RydWN0IGlvbW11X2Z3c3BlYyAqZndz cGVjID0gZGV2LT5pb21tdV9md3NwZWM7CisKKyAgICBpZiAoIGZ3c3BlYyApCisgICAgeworICAg ICAgICB4ZnJlZShmd3NwZWMpOworICAgICAgICBkZXYtPmlvbW11X2Z3c3BlYyA9IE5VTEw7Cisg ICAgfQorfQorCitpbnQgaW9tbXVfZndzcGVjX2FkZF9pZHMoc3RydWN0IGRldmljZSAqZGV2LCB1 MzIgKmlkcywgaW50IG51bV9pZHMpCit7CisgICAgc3RydWN0IGlvbW11X2Z3c3BlYyAqZndzcGVj ID0gZGV2LT5pb21tdV9md3NwZWM7CisgICAgc3RydWN0IGlvbW11X2Z3c3BlYyAqZndzcGVjX24g PSBOVUxMOworICAgIHNpemVfdCBzaXplLCBzaXplX247CisgICAgaW50IGk7CisKKyAgICBpZiAo ICFmd3NwZWMgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIHNpemUgPSBvZmZzZXRv ZihzdHJ1Y3QgaW9tbXVfZndzcGVjLCBpZHNbZndzcGVjLT5udW1faWRzXSk7CisgICAgc2l6ZV9u ID0gb2Zmc2V0b2Yoc3RydWN0IGlvbW11X2Z3c3BlYywgaWRzW2Z3c3BlYy0+bnVtX2lkcyArIG51 bV9pZHNdKTsKKyAgICBpZiAoIHNpemVfbiA+IHNpemUgKQorICAgIHsKKyAgICAgICAgZndzcGVj X24gPSBfeHphbGxvYyhzaXplX24sIHNpemVvZih2b2lkICopKTsKKyAgICAgICAgaWYgKCAhZndz cGVjX24gKQorICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07CisKKyAgICAgICAgbWVtY3B5KGZ3 c3BlY19uLCBmd3NwZWMsIHNpemUpOworICAgICAgICB4ZnJlZShmd3NwZWMpOworICAgIH0KKwor ICAgIGZvciAoaSA9IDA7IGkgPCBudW1faWRzOyBpKyspCisgICAgICAgIGZ3c3BlY19uLT5pZHNb ZndzcGVjX24tPm51bV9pZHMgKyBpXSA9IGlkc1tpXTsKKworICAgIGZ3c3BlY19uLT5udW1faWRz ICs9IG51bV9pZHM7CisgICAgZGV2LT5pb21tdV9md3NwZWMgPSBmd3NwZWNfbjsKKworICAgIHJl dHVybiAwOworfQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9kZXZpY2UuaCBiL3hl bi9pbmNsdWRlL2FzbS1hcm0vZGV2aWNlLmgKaW5kZXggNzhjMzhmZS4uNTAyN2M4NyAxMDA2NDQK LS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9kZXZpY2UuaAorKysgYi94ZW4vaW5jbHVkZS9hc20t YXJtL2RldmljZS5oCkBAIC0yMSw2ICsyMSw3IEBAIHN0cnVjdCBkZXZpY2UKICAgICBzdHJ1Y3Qg ZHRfZGV2aWNlX25vZGUgKm9mX25vZGU7IC8qIFVzZWQgYnkgZHJpdmVycyBpbXBvcnRlZCBmcm9t IExpbnV4ICovCiAjZW5kaWYKICAgICBzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlOyAvKmZ3 IGRldmljZSBub2RlIGlkZW50aWZpZXIgKi8KKyAgICBzdHJ1Y3QgaW9tbXVfZndzcGVjICppb21t dV9md3NwZWM7CiAgICAgc3RydWN0IGRldl9hcmNoZGF0YSBhcmNoZGF0YTsKIH07CiAKZGlmZiAt LWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oIGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgK aW5kZXggMGRhYzRmMy4uMzRlOGQ2OCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2lvbW11 LmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKQEAgLTIwOCw0ICsyMDgsMzMgQEAgREVD TEFSRV9QRVJfQ1BVKGJvb2xfdCwgaW9tbXVfZG9udF9mbHVzaF9pb3RsYik7CiBleHRlcm4gc3Ry dWN0IHNwaW5sb2NrIGlvbW11X3B0X2NsZWFudXBfbG9jazsKIGV4dGVybiBzdHJ1Y3QgcGFnZV9s aXN0X2hlYWQgaW9tbXVfcHRfY2xlYW51cF9saXN0OwogCisvKioKKyAqIEZvbGxvd2luZyBibG9j ayB3YXMgcG9ydGVkIGZyb20gTGludXggdG8gaGVscCB3aXRoIHRoZSBpbXBsZW1lbnRhdGlvbiBv ZgorICogYXJtNjQgaW9tbXUgZGV2aWNlcy4gSGVuY2UgdGhlIGFyY2hpdGVjdHVyZSBzcGVjaWZp YyBjb21waWxlCisgKi8KKworI2lmIGRlZmluZWQoQ09ORklHX0FSTSkKKy8qKgorICogc3RydWN0 IGlvbW11X2Z3c3BlYyAtIHBlci1kZXZpY2UgSU9NTVUgaW5zdGFuY2UgZGF0YQorICogQG9wczog b3BzIGZvciB0aGlzIGRldmljZSdzIElPTU1VCisgKiBAaW9tbXVfZndub2RlOiBmaXJtd2FyZSBo YW5kbGUgZm9yIHRoaXMgZGV2aWNlJ3MgSU9NTVUKKyAqIEBpb21tdV9wcml2OiBJT01NVSBkcml2 ZXIgcHJpdmF0ZSBkYXRhIGZvciB0aGlzIGRldmljZQorICogQG51bV9pZHM6IG51bWJlciBvZiBh c3NvY2lhdGVkIGRldmljZSBJRHMKKyAqIEBpZHM6IElEcyB3aGljaCB0aGlzIGRldmljZSBtYXkg cHJlc2VudCB0byB0aGUgSU9NTVUKKyAqLworc3RydWN0IGlvbW11X2Z3c3BlYyB7CisgICAgY29u c3Qgc3RydWN0IGlvbW11X29wcyAqb3BzOworICAgIHN0cnVjdCBmd25vZGVfaGFuZGxlICAgKmlv bW11X2Z3bm9kZTsKKyAgICB2b2lkICAgICAgICAgICAgICAgICAgICppb21tdV9wcml2OworICAg IHVuc2lnbmVkIGludCAgICAgICAgICAgbnVtX2lkczsKKyAgICB1MzIgICAgICAgICAgICAgICAg ICAgIGlkc1sxXTsKK307CisKK2ludCBpb21tdV9md3NwZWNfaW5pdChzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdCBmd25vZGVfaGFuZGxlICppb21tdV9md25vZGUsCisJCSAgICAgIGNvbnN0IHN0 cnVjdCBpb21tdV9vcHMgKm9wcyk7Cit2b2lkIGlvbW11X2Z3c3BlY19mcmVlKHN0cnVjdCBkZXZp Y2UgKmRldik7CitpbnQgaW9tbXVfZndzcGVjX2FkZF9pZHMoc3RydWN0IGRldmljZSAqZGV2LCB1 MzIgKmlkcywgaW50IG51bV9pZHMpOworY29uc3Qgc3RydWN0IGlvbW11X29wcyAqaW9tbXVfb3Bz X2Zyb21fZndub2RlKHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpOworCisjZW5kaWYKICNl bmRpZiAvKiBfSU9NTVVfSF8gKi8KLS0gClF1YWxjb21tIERhdGFjZW50ZXIgVGVjaG5vbG9naWVz IGFzIGFuIGFmZmlsaWF0ZSBvZiBRdWFsY29tbSBUZWNobm9sb2dpZXMsIEluYy4gUXVhbGNvbW0g VGVjaG5vbG9naWVzLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSBGb3J1bSwg YSBMaW51eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRpdmUgUHJvamVjdC4KCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK