From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH RFC 02/10] passthrough: split out x86 PCI code to x86/pci.c Date: Wed, 21 Feb 2018 21:46:53 +0000 Message-ID: <20180221214701.1646-3-wei.liu2@citrix.com> References: <20180221214701.1646-1-wei.liu2@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.84_2) (envelope-from ) id 1eocEI-0001ia-EJ for xen-devel@lists.xenproject.org; Wed, 21 Feb 2018 21:47:10 +0000 In-Reply-To: <20180221214701.1646-1-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Julien Grall , Stefano Stabellini , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org TW92ZSB0aGUgZnVuY3Rpb25zIHRoYXQgcmVmZXJlbmNlIHg4NiBodm0gZGF0YSBzdHJ1Y3R1cmVz IHRvIGl0cyBvd24KZmlsZS4gIFJlbmFtZSBwY2lfY2xlYW5fZHBjaV9pcnFzIHRvIGFyY2hfcGNp X2NsZWFuX2lycXMuCgpUaGVyZSBpcyBzdGlsbCBvbmUgbG9jYXRpb24gaW4gdGhhdCBmaWxlIHdo aWNoIHJlZmVyZW5jZXMKYXJjaC5odm1fZG9tYWluLCBidXQgaXQgaXMgZmluZSBiZWNhdXNlIEFS TSBndWVzdCBpcyBIVk0uCgpTaWduZWQtb2ZmLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXgu Y29tPgotLS0KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4K Q2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CkNjOiBKYW4gQmV1bGljaCA8 amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy aXguY29tPgoKQVJNIGRvZXNuJ3Qgc2VsZWN0IEhBU19QQ0ksIHRoYXQncyB3aHkgQVJNIGJ1aWxk IGlzIG5vdCBicm9rZW4gYnkKdGhpcy4gQUlVSSBBUk0gd2lsbCBzZWxlY3QgSEFTX1BDSSBhdCBz b21lIHBvaW50LCBoZW5jZSBJIG9ubHkgbW92ZQp0aGUgeDg2IGJpdHMuCi0tLQogeGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvcGNpLmMgICAgICAgIHwgNTEgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9NYWtlZmlsZSB8ICAxICsKIHhlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9wY2kuYyAgICB8IDYyICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogeGVuL2luY2x1ZGUveGVuL3BjaS5oICAgICAgICAgICAgICAgIHwg IDIgKysKIDQgZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0p CiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L3BjaS5jCgpk aWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMgYi94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC9wY2kuYwppbmRleCAyYjk3NmFkZTYyLi5iZjgzZDA3Mjc5IDEwMDY0NAotLS0g YS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9wY2kuYwpAQCAtMjIsNyArMjIsNiBAQAogI2luY2x1ZGUgPHhlbi9pb21tdS5oPgogI2lu Y2x1ZGUgPHhlbi9pcnEuaD4KICNpbmNsdWRlIDx4ZW4vdm1fZXZlbnQuaD4KLSNpbmNsdWRlIDxh c20vaHZtL2lycS5oPgogI2luY2x1ZGUgPHhlbi9kZWxheS5oPgogI2luY2x1ZGUgPHhlbi9rZXlo YW5kbGVyLmg+CiAjaW5jbHVkZSA8eGVuL2V2ZW50Lmg+CkBAIC03OTgsNTQgKzc5Nyw2IEBAIGlu dCBwY2lfcmVtb3ZlX2RldmljZSh1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuKQogICAgIHJldHVy biByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgcGNpX2NsZWFuX2RwY2lfaXJxKHN0cnVjdCBkb21haW4g KmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaHZtX3BpcnFfZHBjaSAq cGlycV9kcGNpLCB2b2lkICphcmcpCi17Ci0gICAgc3RydWN0IGRldl9pbnR4X2dzaV9saW5rICpk aWdsLCAqdG1wOwotCi0gICAgcGlycV9ndWVzdF91bmJpbmQoZCwgZHBjaV9waXJxKHBpcnFfZHBj aSkpOwotCi0gICAgaWYgKCBwdF9pcnFfbmVlZF90aW1lcihwaXJxX2RwY2ktPmZsYWdzKSApCi0g ICAgICAgIGtpbGxfdGltZXIoJnBpcnFfZHBjaS0+dGltZXIpOwotCi0gICAgbGlzdF9mb3JfZWFj aF9lbnRyeV9zYWZlICggZGlnbCwgdG1wLCAmcGlycV9kcGNpLT5kaWdsX2xpc3QsIGxpc3QgKQot ICAgIHsKLSAgICAgICAgbGlzdF9kZWwoJmRpZ2wtPmxpc3QpOwotICAgICAgICB4ZnJlZShkaWds KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcHRfcGlycV9zb2Z0aXJxX2FjdGl2ZShwaXJxX2RwY2kp ID8gLUVSRVNUQVJUIDogMDsKLX0KLQotc3RhdGljIGludCBwY2lfY2xlYW5fZHBjaV9pcnFzKHN0 cnVjdCBkb21haW4gKmQpCi17Ci0gICAgc3RydWN0IGh2bV9pcnFfZHBjaSAqaHZtX2lycV9kcGNp ID0gTlVMTDsKLQotICAgIGlmICggIWlvbW11X2VuYWJsZWQgKQotICAgICAgICByZXR1cm4gMDsK LQotICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgKQotICAgICAgICByZXR1cm4gMDsKLQotICAg IHNwaW5fbG9jaygmZC0+ZXZlbnRfbG9jayk7Ci0gICAgaHZtX2lycV9kcGNpID0gZG9tYWluX2dl dF9pcnFfZHBjaShkKTsKLSAgICBpZiAoIGh2bV9pcnFfZHBjaSAhPSBOVUxMICkKLSAgICB7Ci0g ICAgICAgIGludCByZXQgPSBwdF9waXJxX2l0ZXJhdGUoZCwgcGNpX2NsZWFuX2RwY2lfaXJxLCBO VUxMKTsKLQotICAgICAgICBpZiAoIHJldCApCi0gICAgICAgIHsKLSAgICAgICAgICAgIHNwaW5f dW5sb2NrKCZkLT5ldmVudF9sb2NrKTsKLSAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAg IH0KLQotICAgICAgICBodm1fZG9tYWluX2lycShkKS0+ZHBjaSA9IE5VTEw7Ci0gICAgICAgIGZy ZWVfaHZtX2lycV9kcGNpKGh2bV9pcnFfZHBjaSk7Ci0gICAgfQotICAgIHNwaW5fdW5sb2NrKCZk LT5ldmVudF9sb2NrKTsKLSAgICByZXR1cm4gMDsKLX0KLQogaW50IHBjaV9yZWxlYXNlX2Rldmlj ZXMoc3RydWN0IGRvbWFpbiAqZCkKIHsKICAgICBzdHJ1Y3QgcGNpX2RldiAqcGRldjsKQEAgLTg1 Myw3ICs4MDQsNyBAQCBpbnQgcGNpX3JlbGVhc2VfZGV2aWNlcyhzdHJ1Y3QgZG9tYWluICpkKQog ICAgIGludCByZXQ7CiAKICAgICBwY2lkZXZzX2xvY2soKTsKLSAgICByZXQgPSBwY2lfY2xlYW5f ZHBjaV9pcnFzKGQpOworICAgIHJldCA9IGFyY2hfcGNpX2NsZWFuX2lycXMoZCk7CiAgICAgaWYg KCByZXQgKQogICAgIHsKICAgICAgICAgcGNpZGV2c191bmxvY2soKTsKZGlmZiAtLWdpdCBhL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9NYWtlZmlsZSBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3g4Ni9NYWtlZmlsZQppbmRleCAwNjk3MTcwN2Y4Li4wYTIxYjYwYjVhIDEwMDY0NAotLS0g YS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvTWFrZWZpbGUKKysrIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gveDg2L01ha2VmaWxlCkBAIC00LDMgKzQsNCBAQCBzdWJkaXIteSArPSBhbWQK IG9iai15ICs9IGF0cy5vCiBvYmoteSArPSBpby5vCiBvYmoteSArPSBpb21tdS5vCitvYmoteSAr PSBwY2kubwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L3BjaS5jIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L3BjaS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAuLmUwYTdlNDczYjEKLS0tIC9kZXYvbnVsbAorKysgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC94ODYvcGNpLmMKQEAgLTAsMCArMSw2MiBAQAorI2luY2x1ZGUgPHhlbi9p cnEuaD4KKyNpbmNsdWRlIDx4ZW4vaW9tbXUuaD4KKyNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KKwor I2luY2x1ZGUgPGFzbS9odm0vaXJxLmg+CisKK3N0YXRpYyBpbnQgcGNpX2NsZWFuX2RwY2lfaXJx KHN0cnVjdCBkb21haW4gKmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg aHZtX3BpcnFfZHBjaSAqcGlycV9kcGNpLCB2b2lkICphcmcpCit7CisgICAgc3RydWN0IGRldl9p bnR4X2dzaV9saW5rICpkaWdsLCAqdG1wOworCisgICAgcGlycV9ndWVzdF91bmJpbmQoZCwgZHBj aV9waXJxKHBpcnFfZHBjaSkpOworCisgICAgaWYgKCBwdF9pcnFfbmVlZF90aW1lcihwaXJxX2Rw Y2ktPmZsYWdzKSApCisgICAgICAgIGtpbGxfdGltZXIoJnBpcnFfZHBjaS0+dGltZXIpOworCisg ICAgbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlICggZGlnbCwgdG1wLCAmcGlycV9kcGNpLT5kaWds X2xpc3QsIGxpc3QgKQorICAgIHsKKyAgICAgICAgbGlzdF9kZWwoJmRpZ2wtPmxpc3QpOworICAg ICAgICB4ZnJlZShkaWdsKTsKKyAgICB9CisKKyAgICByZXR1cm4gcHRfcGlycV9zb2Z0aXJxX2Fj dGl2ZShwaXJxX2RwY2kpID8gLUVSRVNUQVJUIDogMDsKK30KKworaW50IGFyY2hfcGNpX2NsZWFu X2lycXMoc3RydWN0IGRvbWFpbiAqZCkKK3sKKyAgICBzdHJ1Y3QgaHZtX2lycV9kcGNpICpodm1f aXJxX2RwY2kgPSBOVUxMOworCisgICAgaWYgKCAhaW9tbXVfZW5hYmxlZCApCisgICAgICAgIHJl dHVybiAwOworCisgICAgaWYgKCAhaXNfaHZtX2RvbWFpbihkKSApCisgICAgICAgIHJldHVybiAw OworCisgICAgc3Bpbl9sb2NrKCZkLT5ldmVudF9sb2NrKTsKKyAgICBodm1faXJxX2RwY2kgPSBk b21haW5fZ2V0X2lycV9kcGNpKGQpOworICAgIGlmICggaHZtX2lycV9kcGNpICE9IE5VTEwgKQor ICAgIHsKKyAgICAgICAgaW50IHJldCA9IHB0X3BpcnFfaXRlcmF0ZShkLCBwY2lfY2xlYW5fZHBj aV9pcnEsIE5VTEwpOworCisgICAgICAgIGlmICggcmV0ICkKKyAgICAgICAgeworICAgICAgICAg ICAgc3Bpbl91bmxvY2soJmQtPmV2ZW50X2xvY2spOworICAgICAgICAgICAgcmV0dXJuIHJldDsK KyAgICAgICAgfQorCisgICAgICAgIGh2bV9kb21haW5faXJxKGQpLT5kcGNpID0gTlVMTDsKKyAg ICAgICAgZnJlZV9odm1faXJxX2RwY2koaHZtX2lycV9kcGNpKTsKKyAgICB9CisgICAgc3Bpbl91 bmxvY2soJmQtPmV2ZW50X2xvY2spOworICAgIHJldHVybiAwOworfQorCisvKgorICogTG9jYWwg dmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNp Yy1vZmZzZXQ6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vcGNpLmggYi94ZW4vaW5jbHVkZS94ZW4vcGNpLmgKaW5k ZXggZGQ1ZWM0M2E3MC4uMmQzYmRmMzg2ZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3Bj aS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9wY2kuaApAQCAtMTUzLDYgKzE1Myw4IEBAIHN0cnVj dCBwY2lfZGV2ICpwY2lfZ2V0X3BkZXZfYnlfZG9tYWluKGNvbnN0IHN0cnVjdCBkb21haW4gKiwg aW50IHNlZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBidXMs IGludCBkZXZmbik7CiB2b2lkIHBjaV9jaGVja19kaXNhYmxlX2RldmljZSh1MTYgc2VnLCB1OCBi dXMsIHU4IGRldmZuKTsKIAoraW50IGFyY2hfcGNpX2NsZWFuX2lycXMoc3RydWN0IGRvbWFpbiAq ZCk7CisKIHVpbnQ4X3QgcGNpX2NvbmZfcmVhZDgoCiAgICAgdW5zaWduZWQgaW50IHNlZywgdW5z aWduZWQgaW50IGJ1cywgdW5zaWduZWQgaW50IGRldiwgdW5zaWduZWQgaW50IGZ1bmMsCiAgICAg dW5zaWduZWQgaW50IHJlZyk7Ci0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4v bGlzdGluZm8veGVuLWRldmVs