From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v2 21/30] xen/pci: split code to size BARs from pci_add_device Date: Tue, 27 Sep 2016 17:57:16 +0200 Message-ID: <1474991845-27962-22-git-send-email-roger.pau@citrix.com> References: <1474991845-27962-1-git-send-email-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1boumA-000821-KG for xen-devel@lists.xenproject.org; Tue, 27 Sep 2016 15:58:34 +0000 In-Reply-To: <1474991845-27962-1-git-send-email-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 Cc: boris.ostrovsky@oracle.com, Roger Pau Monne , Jan Beulich List-Id: xen-devel@lists.xenproject.org QmVjYXVzZSBpdCdzIGFsc28gZ29pbmcgdG8gYmUgdXNlZCBieSBvdGhlciBjb2RlLgoKU2lnbmVk LW9mZi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Ci0tLQpDYzog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3BjaS5jIHwgODYgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDUzIGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvcGNpLmMKaW5kZXggYTUzYjRjOC4uNmQ4MzFkZCAxMDA2NDQKLS0tIGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNp LmMKQEAgLTU4Nyw2ICs1ODcsNTIgQEAgc3RhdGljIHZvaWQgcGNpX2VuYWJsZV9hY3Moc3RydWN0 IHBjaV9kZXYgKnBkZXYpCiAgICAgcGNpX2NvbmZfd3JpdGUxNihzZWcsIGJ1cywgZGV2LCBmdW5j LCBwb3MgKyBQQ0lfQUNTX0NUUkwsIGN0cmwpOwogfQogCitzdGF0aWMgaW50IHBjaV9zaXplX2Jh cih1bnNpZ25lZCBpbnQgc2VnLCB1bnNpZ25lZCBpbnQgYnVzLCB1bnNpZ25lZCBpbnQgc2xvdCwK KyAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmdW5jLCB1bnNpZ25lZCBpbnQg YmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBtYXhfYmFycywgdW5z aWduZWQgaW50ICppbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90ICphZGRy LCB1aW50NjRfdCAqc2l6ZSkKK3sKKyAgICB1bnNpZ25lZCBpbnQgaWR4ID0gYmFzZSArICppbmRl eCAqIDQ7CisgICAgdTMyIGJhciA9IHBjaV9jb25mX3JlYWQzMihzZWcsIGJ1cywgc2xvdCwgZnVu YywgaWR4KTsKKyAgICB1MzIgaGkgPSAwOworCisgICAgKmFkZHIgPSAqc2l6ZSA9IDA7CisKKyAg ICBBU1NFUlQoKGJhciAmIFBDSV9CQVNFX0FERFJFU1NfU1BBQ0UpID09IFBDSV9CQVNFX0FERFJF U1NfU1BBQ0VfTUVNT1JZKTsKKyAgICBwY2lfY29uZl93cml0ZTMyKHNlZywgYnVzLCBzbG90LCBm dW5jLCBpZHgsIH4wKTsKKyAgICBpZiAoIChiYXIgJiBQQ0lfQkFTRV9BRERSRVNTX01FTV9UWVBF X01BU0spID09CisgICAgICAgICBQQ0lfQkFTRV9BRERSRVNTX01FTV9UWVBFXzY0ICkKKyAgICB7 CisgICAgICAgIGlmICggKmluZGV4ID49IG1heF9iYXJzICkKKyAgICAgICAgeworICAgICAgICAg ICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HCisgICAgICAgICAgICAgICAgICAgImRldmljZSAlMDR4 OiUwMng6JTAyeC4ldSB3aXRoIDY0LWJpdCBCQVIgaW4gbGFzdCBzbG90XG4iLAorICAgICAgICAg ICAgICAgICAgIHNlZywgYnVzLCBzbG90LCBmdW5jKTsKKyAgICAgICAgICAgIHJldHVybiAtRUlO VkFMOworICAgICAgICB9CisgICAgICAgIGhpID0gcGNpX2NvbmZfcmVhZDMyKHNlZywgYnVzLCBz bG90LCBmdW5jLCBpZHggKyA0KTsKKyAgICAgICAgcGNpX2NvbmZfd3JpdGUzMihzZWcsIGJ1cywg c2xvdCwgZnVuYywgaWR4ICsgNCwgfjApOworICAgIH0KKyAgICAqc2l6ZSA9IHBjaV9jb25mX3Jl YWQzMihzZWcsIGJ1cywgc2xvdCwgZnVuYywgaWR4KSAmCisgICAgICAgICAgICBQQ0lfQkFTRV9B RERSRVNTX01FTV9NQVNLOworICAgIGlmICggKGJhciAmIFBDSV9CQVNFX0FERFJFU1NfTUVNX1RZ UEVfTUFTSykgPT0KKyAgICAgICAgIFBDSV9CQVNFX0FERFJFU1NfTUVNX1RZUEVfNjQgKQorICAg IHsKKyAgICAgICAgKnNpemUgfD0gKHU2NClwY2lfY29uZl9yZWFkMzIoc2VnLCBidXMsIHNsb3Qs IGZ1bmMsIGlkeCArIDQpIDw8IDMyOworICAgICAgICBwY2lfY29uZl93cml0ZTMyKHNlZywgYnVz LCBzbG90LCBmdW5jLCBpZHggKyA0LCBoaSk7CisgICAgfQorICAgIGVsc2UgaWYgKCAqc2l6ZSAp CisgICAgICAgICpzaXplIHw9ICh1NjQpfjAgPDwgMzI7CisgICAgcGNpX2NvbmZfd3JpdGUzMihz ZWcsIGJ1cywgc2xvdCwgZnVuYywgaWR4LCBiYXIpOworICAgICpzaXplID0gLSAqc2l6ZTsKKyAg ICAqYWRkciA9IChiYXIgJiBQQ0lfQkFTRV9BRERSRVNTX01FTV9NQVNLKSB8ICgodTY0KWhpIDw8 IDMyKTsKKyAgICBpZiAoIChiYXIgJiBQQ0lfQkFTRV9BRERSRVNTX01FTV9UWVBFX01BU0spID09 CisgICAgICAgICBQQ0lfQkFTRV9BRERSRVNTX01FTV9UWVBFXzY0ICkKKyAgICAgICAgKysqaW5k ZXg7CisKKyAgICByZXR1cm4gMDsKK30KKwogaW50IHBjaV9hZGRfZGV2aWNlKHUxNiBzZWcsIHU4 IGJ1cywgdTggZGV2Zm4sCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZf aW5mbyAqaW5mbywgbm9kZWlkX3Qgbm9kZSkKIHsKQEAgLTY1MSw3ICs2OTcsNyBAQCBpbnQgcGNp X2FkZF9kZXZpY2UodTE2IHNlZywgdTggYnVzLCB1OCBkZXZmbiwKICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaWR4ID0gcG9zICsgUENJX1NSSU9WX0JBUiArIGkg KiA0OwogICAgICAgICAgICAgICAgIHUzMiBiYXIgPSBwY2lfY29uZl9yZWFkMzIoc2VnLCBidXMs IHNsb3QsIGZ1bmMsIGlkeCk7Ci0gICAgICAgICAgICAgICAgdTMyIGhpID0gMDsKKyAgICAgICAg ICAgICAgICB1aW50NjRfdCBhZGRyOwogCiAgICAgICAgICAgICAgICAgaWYgKCAoYmFyICYgUENJ X0JBU0VfQUREUkVTU19TUEFDRSkgPT0KICAgICAgICAgICAgICAgICAgICAgIFBDSV9CQVNFX0FE RFJFU1NfU1BBQ0VfSU8gKQpAQCAtNjYyLDM4ICs3MDgsMTIgQEAgaW50IHBjaV9hZGRfZGV2aWNl KHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWcsIGJ1cywgc2xvdCwgZnVuYywgaSk7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwY2lfY29uZl93cml0ZTMyKHNlZywg YnVzLCBzbG90LCBmdW5jLCBpZHgsIH4wKTsKLSAgICAgICAgICAgICAgICBpZiAoIChiYXIgJiBQ Q0lfQkFTRV9BRERSRVNTX01FTV9UWVBFX01BU0spID09Ci0gICAgICAgICAgICAgICAgICAgICBQ Q0lfQkFTRV9BRERSRVNTX01FTV9UWVBFXzY0ICkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAg ICAgICAgICAgICAgIGlmICggaSA+PSBQQ0lfU1JJT1ZfTlVNX0JBUlMgKQotICAgICAgICAgICAg ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU1ItSU9WIGRldmljZSAlMDR4OiUwMng6 JTAyeC4ldSB3aXRoIDY0LWJpdCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHZm IEJBUiBpbiBsYXN0IHNsb3RcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vn LCBidXMsIHNsb3QsIGZ1bmMpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaGkgPSBwY2lfY29uZl9yZWFk MzIoc2VnLCBidXMsIHNsb3QsIGZ1bmMsIGlkeCArIDQpOwotICAgICAgICAgICAgICAgICAgICBw Y2lfY29uZl93cml0ZTMyKHNlZywgYnVzLCBzbG90LCBmdW5jLCBpZHggKyA0LCB+MCk7Ci0gICAg ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHBkZXYtPnZmX3JsZW5baV0gPSBwY2lfY29u Zl9yZWFkMzIoc2VnLCBidXMsIHNsb3QsIGZ1bmMsIGlkeCkgJgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQQ0lfQkFTRV9BRERSRVNTX01FTV9NQVNLOwotICAgICAgICAgICAg ICAgIGlmICggKGJhciAmIFBDSV9CQVNFX0FERFJFU1NfTUVNX1RZUEVfTUFTSykgPT0KLSAgICAg ICAgICAgICAgICAgICAgIFBDSV9CQVNFX0FERFJFU1NfTUVNX1RZUEVfNjQgKQotICAgICAgICAg ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgcGRldi0+dmZfcmxlbltpXSB8PSAodTY0KXBj aV9jb25mX3JlYWQzMihzZWcsIGJ1cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LCBmdW5jLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkeCArIDQpIDw8 IDMyOwotICAgICAgICAgICAgICAgICAgICBwY2lfY29uZl93cml0ZTMyKHNlZywgYnVzLCBzbG90 LCBmdW5jLCBpZHggKyA0LCBoaSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg IGVsc2UgaWYgKCBwZGV2LT52Zl9ybGVuW2ldICkKLSAgICAgICAgICAgICAgICAgICAgcGRldi0+ dmZfcmxlbltpXSB8PSAodTY0KX4wIDw8IDMyOwotICAgICAgICAgICAgICAgIHBjaV9jb25mX3dy aXRlMzIoc2VnLCBidXMsIHNsb3QsIGZ1bmMsIGlkeCwgYmFyKTsKLSAgICAgICAgICAgICAgICBw ZGV2LT52Zl9ybGVuW2ldID0gLXBkZXYtPnZmX3JsZW5baV07Ci0gICAgICAgICAgICAgICAgaWYg KCAoYmFyICYgUENJX0JBU0VfQUREUkVTU19NRU1fVFlQRV9NQVNLKSA9PQotICAgICAgICAgICAg ICAgICAgICAgUENJX0JBU0VfQUREUkVTU19NRU1fVFlQRV82NCApCi0gICAgICAgICAgICAgICAg ICAgICsraTsKKyAgICAgICAgICAgICAgICByZXQgPSBwY2lfc2l6ZV9iYXIoc2VnLCBidXMsIHNs b3QsIGZ1bmMsIHBvcyArIFBDSV9TUklPVl9CQVIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBDSV9TUklPVl9OVU1fQkFSUywgJmksICZhZGRyLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmcGRldi0+dmZfcmxlbltpXSk7CisgICAgICAgICAgICAgICAg aWYgKCByZXQgKQorICAgICAgICAgICAgICAgICAgICBwcmludGtfcGRldihwZGV2LCBYRU5MT0df V0FSTklORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZhaWxlZCB0byBzaXpl IFNSLUlPViBCQVIldVxuIiwgaSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAg ZWxzZQotLSAKMi43LjQgKEFwcGxlIEdpdC02NikKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK