From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v5 05/13] xen/pvcalls: implement connect command Date: Fri, 6 Oct 2017 17:30:19 -0700 Message-ID: <1507336227-20477-5-git-send-email-sstabellini@kernel.org> References: <1507336227-20477-1-git-send-email-sstabellini@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1507336227-20477-1-git-send-email-sstabellini@kernel.org> 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: jgross@suse.com, Stefano Stabellini , boris.ostrovsky@oracle.com, sstabellini@kernel.org, linux-kernel@vger.kernel.org List-Id: xen-devel@lists.xenproject.org U2VuZCBQVkNBTExTX0NPTk5FQ1QgdG8gdGhlIGJhY2tlbmQuIEFsbG9jYXRlIGEgbmV3IHJpbmcg YW5kIGV2dGNobiBmb3IKdGhlIGFjdGl2ZSBzb2NrZXQuCgpJbnRyb2R1Y2UgZmllbGRzIGluIHN0 cnVjdCBzb2NrX21hcHBpbmcgdG8ga2VlcCB0cmFjayBvZiBhY3RpdmUgc29ja2V0cy4KSW50cm9k dWNlIGEgd2FpdHF1ZXVlIHRvIGFsbG93IHRoZSBmcm9udGVuZCB0byB3YWl0IG9uIGRhdGEgY29t aW5nIGZyb20KdGhlIGJhY2tlbmQgb24gdGhlIGFjdGl2ZSBzb2NrZXQgKHJlY3Ztc2cgY29tbWFu ZCkuCgpUd28gbXV0ZXhlcyAob25lIG9mIHJlYWRzIGFuZCBvbmUgZm9yIHdyaXRlcykgd2lsbCBi ZSB1c2VkIHRvIHByb3RlY3QKdGhlIGFjdGl2ZSBzb2NrZXQgaW4gYW5kIG91dCByaW5ncyBmcm9t IGNvbmN1cnJlbnQgYWNjZXNzZXMuCgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIFN0YWJlbGxpbmkg PHN0ZWZhbm9AYXBvcmV0by5jb20+ClJldmlld2VkLWJ5OiBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlz Lm9zdHJvdnNreUBvcmFjbGUuY29tPgpDQzogYm9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20KQ0M6 IGpncm9zc0BzdXNlLmNvbQotLS0KIGRyaXZlcnMveGVuL3B2Y2FsbHMtZnJvbnQuYyB8IDE2MiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy94ZW4v cHZjYWxscy1mcm9udC5oIHwgICAyICsKIDIgZmlsZXMgY2hhbmdlZCwgMTY0IGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmMgYi9kcml2ZXJzL3hl bi9wdmNhbGxzLWZyb250LmMKaW5kZXggOTVhOTg1Yy4uN2M5MjYxYiAxMDA2NDQKLS0tIGEvZHJp dmVycy94ZW4vcHZjYWxscy1mcm9udC5jCisrKyBiL2RyaXZlcnMveGVuL3B2Y2FsbHMtZnJvbnQu YwpAQCAtMTMsNiArMTMsMTAgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cisj aW5jbHVkZSA8bGludXgvbmV0Lmg+CisjaW5jbHVkZSA8bGludXgvc29ja2V0Lmg+CisKKyNpbmNs dWRlIDxuZXQvc29jay5oPgogCiAjaW5jbHVkZSA8eGVuL2V2ZW50cy5oPgogI2luY2x1ZGUgPHhl bi9ncmFudF90YWJsZS5oPgpAQCAtNTYsNiArNjAsMTggQEAgc3RydWN0IHNvY2tfbWFwcGluZyB7 CiAJYm9vbCBhY3RpdmVfc29ja2V0OwogCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKIAlzdHJ1Y3Qg c29ja2V0ICpzb2NrOworCXVuaW9uIHsKKwkJc3RydWN0IHsKKwkJCWludCBpcnE7CisJCQlncmFu dF9yZWZfdCByZWY7CisJCQlzdHJ1Y3QgcHZjYWxsc19kYXRhX2ludGYgKnJpbmc7CisJCQlzdHJ1 Y3QgcHZjYWxsc19kYXRhIGRhdGE7CisJCQlzdHJ1Y3QgbXV0ZXggaW5fbXV0ZXg7CisJCQlzdHJ1 Y3QgbXV0ZXggb3V0X211dGV4OworCisJCQl3YWl0X3F1ZXVlX2hlYWRfdCBpbmZsaWdodF9jb25u X3JlcTsKKwkJfSBhY3RpdmU7CisJfTsKIH07CiAKIHN0YXRpYyBpbmxpbmUgaW50IGdldF9yZXF1 ZXN0KHN0cnVjdCBwdmNhbGxzX2JlZGF0YSAqYmVkYXRhLCBpbnQgKnJlcV9pZCkKQEAgLTExOCw2 ICsxMzQsMTggQEAgc3RhdGljIHZvaWQgcHZjYWxsc19mcm9udF9mcmVlX21hcChzdHJ1Y3QgcHZj YWxsc19iZWRhdGEgKmJlZGF0YSwKIHsKIH0KIAorc3RhdGljIGlycXJldHVybl90IHB2Y2FsbHNf ZnJvbnRfY29ubl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKnNvY2tfbWFwKQoreworCXN0cnVjdCBz b2NrX21hcHBpbmcgKm1hcCA9IHNvY2tfbWFwOworCisJaWYgKG1hcCA9PSBOVUxMKQorCQlyZXR1 cm4gSVJRX0hBTkRMRUQ7CisKKwl3YWtlX3VwX2ludGVycnVwdGlibGUoJm1hcC0+YWN0aXZlLmlu ZmxpZ2h0X2Nvbm5fcmVxKTsKKworCXJldHVybiBJUlFfSEFORExFRDsKK30KKwogaW50IHB2Y2Fs bHNfZnJvbnRfc29ja2V0KHN0cnVjdCBzb2NrZXQgKnNvY2spCiB7CiAJc3RydWN0IHB2Y2FsbHNf YmVkYXRhICpiZWRhdGE7CkBAIC0xOTMsNiArMjIxLDEzMiBAQCBpbnQgcHZjYWxsc19mcm9udF9z b2NrZXQoc3RydWN0IHNvY2tldCAqc29jaykKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgaW50 IGNyZWF0ZV9hY3RpdmUoc3RydWN0IHNvY2tfbWFwcGluZyAqbWFwLCBpbnQgKmV2dGNobikKK3sK Kwl2b2lkICpieXRlczsKKwlpbnQgcmV0ID0gLUVOT01FTSwgaXJxID0gLTEsIGk7CisKKwkqZXZ0 Y2huID0gLTE7CisJaW5pdF93YWl0cXVldWVfaGVhZCgmbWFwLT5hY3RpdmUuaW5mbGlnaHRfY29u bl9yZXEpOworCisJbWFwLT5hY3RpdmUucmluZyA9IChzdHJ1Y3QgcHZjYWxsc19kYXRhX2ludGYg KikKKwkJX19nZXRfZnJlZV9wYWdlKEdGUF9LRVJORUwgfCBfX0dGUF9aRVJPKTsKKwlpZiAobWFw LT5hY3RpdmUucmluZyA9PSBOVUxMKQorCQlnb3RvIG91dF9lcnJvcjsKKwltYXAtPmFjdGl2ZS5y aW5nLT5yaW5nX29yZGVyID0gUFZDQUxMU19SSU5HX09SREVSOworCWJ5dGVzID0gKHZvaWQgKilf X2dldF9mcmVlX3BhZ2VzKEdGUF9LRVJORUwgfCBfX0dGUF9aRVJPLAorCQkJCQlQVkNBTExTX1JJ TkdfT1JERVIpOworCWlmIChieXRlcyA9PSBOVUxMKQorCQlnb3RvIG91dF9lcnJvcjsKKwlmb3Ig KGkgPSAwOyBpIDwgKDEgPDwgUFZDQUxMU19SSU5HX09SREVSKTsgaSsrKQorCQltYXAtPmFjdGl2 ZS5yaW5nLT5yZWZbaV0gPSBnbnR0YWJfZ3JhbnRfZm9yZWlnbl9hY2Nlc3MoCisJCQlwdmNhbGxz X2Zyb250X2Rldi0+b3RoZXJlbmRfaWQsCisJCQlwZm5fdG9fZ2ZuKHZpcnRfdG9fcGZuKGJ5dGVz KSArIGkpLCAwKTsKKworCW1hcC0+YWN0aXZlLnJlZiA9IGdudHRhYl9ncmFudF9mb3JlaWduX2Fj Y2VzcygKKwkJcHZjYWxsc19mcm9udF9kZXYtPm90aGVyZW5kX2lkLAorCQlwZm5fdG9fZ2ZuKHZp cnRfdG9fcGZuKCh2b2lkICopbWFwLT5hY3RpdmUucmluZykpLCAwKTsKKworCW1hcC0+YWN0aXZl LmRhdGEuaW4gPSBieXRlczsKKwltYXAtPmFjdGl2ZS5kYXRhLm91dCA9IGJ5dGVzICsKKwkJWEVO X0ZMRVhfUklOR19TSVpFKFBWQ0FMTFNfUklOR19PUkRFUik7CisKKwlyZXQgPSB4ZW5idXNfYWxs b2NfZXZ0Y2huKHB2Y2FsbHNfZnJvbnRfZGV2LCBldnRjaG4pOworCWlmIChyZXQpCisJCWdvdG8g b3V0X2Vycm9yOworCWlycSA9IGJpbmRfZXZ0Y2huX3RvX2lycWhhbmRsZXIoKmV2dGNobiwgcHZj YWxsc19mcm9udF9jb25uX2hhbmRsZXIsCisJCQkJCTAsICJwdmNhbGxzLWZyb250ZW5kIiwgbWFw KTsKKwlpZiAoaXJxIDwgMCkgeworCQlyZXQgPSBpcnE7CisJCWdvdG8gb3V0X2Vycm9yOworCX0K KworCW1hcC0+YWN0aXZlLmlycSA9IGlycTsKKwltYXAtPmFjdGl2ZV9zb2NrZXQgPSB0cnVlOwor CW11dGV4X2luaXQoJm1hcC0+YWN0aXZlLmluX211dGV4KTsKKwltdXRleF9pbml0KCZtYXAtPmFj dGl2ZS5vdXRfbXV0ZXgpOworCisJcmV0dXJuIDA7CisKK291dF9lcnJvcjoKKwlpZiAoaXJxID49 IDApCisJCXVuYmluZF9mcm9tX2lycWhhbmRsZXIoaXJxLCBtYXApOworCWVsc2UgaWYgKCpldnRj aG4gPj0gMCkKKwkJeGVuYnVzX2ZyZWVfZXZ0Y2huKHB2Y2FsbHNfZnJvbnRfZGV2LCAqZXZ0Y2hu KTsKKwlrZnJlZShtYXAtPmFjdGl2ZS5kYXRhLmluKTsKKwlrZnJlZShtYXAtPmFjdGl2ZS5yaW5n KTsKKwlyZXR1cm4gcmV0OworfQorCitpbnQgcHZjYWxsc19mcm9udF9jb25uZWN0KHN0cnVjdCBz b2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqYWRkciwKKwkJCQlpbnQgYWRkcl9sZW4sIGlu dCBmbGFncykKK3sKKwlzdHJ1Y3QgcHZjYWxsc19iZWRhdGEgKmJlZGF0YTsKKwlzdHJ1Y3Qgc29j a19tYXBwaW5nICptYXAgPSBOVUxMOworCXN0cnVjdCB4ZW5fcHZjYWxsc19yZXF1ZXN0ICpyZXE7 CisJaW50IG5vdGlmeSwgcmVxX2lkLCByZXQsIGV2dGNobjsKKworCWlmIChhZGRyLT5zYV9mYW1p bHkgIT0gQUZfSU5FVCB8fCBzb2NrLT50eXBlICE9IFNPQ0tfU1RSRUFNKQorCQlyZXR1cm4gLUVO T1RTVVBQOworCisJcHZjYWxsc19lbnRlcigpOworCWlmICghcHZjYWxsc19mcm9udF9kZXYpIHsK KwkJcHZjYWxsc19leGl0KCk7CisJCXJldHVybiAtRU5FVFVOUkVBQ0g7CisJfQorCisJYmVkYXRh ID0gZGV2X2dldF9kcnZkYXRhKCZwdmNhbGxzX2Zyb250X2Rldi0+ZGV2KTsKKworCW1hcCA9IChz dHJ1Y3Qgc29ja19tYXBwaW5nICopc29jay0+c2stPnNrX3NlbmRfaGVhZDsKKwlpZiAoIW1hcCkg eworCQlwdmNhbGxzX2V4aXQoKTsKKwkJcmV0dXJuIC1FTk9UU09DSzsKKwl9CisKKwlzcGluX2xv Y2soJmJlZGF0YS0+c29ja2V0X2xvY2spOworCXJldCA9IGdldF9yZXF1ZXN0KGJlZGF0YSwgJnJl cV9pZCk7CisJaWYgKHJldCA8IDApIHsKKwkJc3Bpbl91bmxvY2soJmJlZGF0YS0+c29ja2V0X2xv Y2spOworCQlwdmNhbGxzX2V4aXQoKTsKKwkJcmV0dXJuIHJldDsKKwl9CisJcmV0ID0gY3JlYXRl X2FjdGl2ZShtYXAsICZldnRjaG4pOworCWlmIChyZXQgPCAwKSB7CisJCXNwaW5fdW5sb2NrKCZi ZWRhdGEtPnNvY2tldF9sb2NrKTsKKwkJcHZjYWxsc19leGl0KCk7CisJCXJldHVybiByZXQ7CisJ fQorCisJcmVxID0gUklOR19HRVRfUkVRVUVTVCgmYmVkYXRhLT5yaW5nLCByZXFfaWQpOworCXJl cS0+cmVxX2lkID0gcmVxX2lkOworCXJlcS0+Y21kID0gUFZDQUxMU19DT05ORUNUOworCXJlcS0+ dS5jb25uZWN0LmlkID0gKHVpbnQ2NF90KW1hcDsKKwlyZXEtPnUuY29ubmVjdC5sZW4gPSBhZGRy X2xlbjsKKwlyZXEtPnUuY29ubmVjdC5mbGFncyA9IGZsYWdzOworCXJlcS0+dS5jb25uZWN0LnJl ZiA9IG1hcC0+YWN0aXZlLnJlZjsKKwlyZXEtPnUuY29ubmVjdC5ldnRjaG4gPSBldnRjaG47CisJ bWVtY3B5KHJlcS0+dS5jb25uZWN0LmFkZHIsIGFkZHIsIHNpemVvZigqYWRkcikpOworCisJbWFw LT5zb2NrID0gc29jazsKKworCWJlZGF0YS0+cmluZy5yZXFfcHJvZF9wdnQrKzsKKwlSSU5HX1BV U0hfUkVRVUVTVFNfQU5EX0NIRUNLX05PVElGWSgmYmVkYXRhLT5yaW5nLCBub3RpZnkpOworCXNw aW5fdW5sb2NrKCZiZWRhdGEtPnNvY2tldF9sb2NrKTsKKworCWlmIChub3RpZnkpCisJCW5vdGlm eV9yZW1vdGVfdmlhX2lycShiZWRhdGEtPmlycSk7CisKKwl3YWl0X2V2ZW50KGJlZGF0YS0+aW5m bGlnaHRfcmVxLAorCQkgICBSRUFEX09OQ0UoYmVkYXRhLT5yc3BbcmVxX2lkXS5yZXFfaWQpID09 IHJlcV9pZCk7CisKKwkvKiByZWFkIHJlcV9pZCwgdGhlbiB0aGUgY29udGVudCAqLworCXNtcF9y bWIoKTsKKwlyZXQgPSBiZWRhdGEtPnJzcFtyZXFfaWRdLnJldDsKKwliZWRhdGEtPnJzcFtyZXFf aWRdLnJlcV9pZCA9IFBWQ0FMTFNfSU5WQUxJRF9JRDsKKwlwdmNhbGxzX2V4aXQoKTsKKwlyZXR1 cm4gcmV0OworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IHhlbmJ1c19kZXZpY2VfaWQgcHZjYWxs c19mcm9udF9pZHNbXSA9IHsKIAl7ICJwdmNhbGxzIiB9LAogCXsgIiIgfQpAQCAtMjA5LDYgKzM2 MywxNCBAQCBzdGF0aWMgaW50IHB2Y2FsbHNfZnJvbnRfcmVtb3ZlKHN0cnVjdCB4ZW5idXNfZGV2 aWNlICpkZXYpCiAJaWYgKGJlZGF0YS0+aXJxID49IDApCiAJCXVuYmluZF9mcm9tX2lycWhhbmRs ZXIoYmVkYXRhLT5pcnEsIGRldik7CiAKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobWFwLCBu LCAmYmVkYXRhLT5zb2NrZXRfbWFwcGluZ3MsIGxpc3QpIHsKKwkJbWFwLT5zb2NrLT5zay0+c2tf c2VuZF9oZWFkID0gTlVMTDsKKwkJaWYgKG1hcC0+YWN0aXZlX3NvY2tldCkgeworCQkJbWFwLT5h Y3RpdmUucmluZy0+aW5fZXJyb3IgPSAtRUJBREY7CisJCQl3YWtlX3VwX2ludGVycnVwdGlibGUo Jm1hcC0+YWN0aXZlLmluZmxpZ2h0X2Nvbm5fcmVxKTsKKwkJfQorCX0KKwogCXNtcF9tYigpOwog CXdoaWxlIChhdG9taWNfcmVhZCgmcHZjYWxsc19yZWZjb3VudCkgPiAwKQogCQljcHVfcmVsYXgo KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3B2Y2FsbHMtZnJvbnQuaCBiL2RyaXZlcnMveGVu L3B2Y2FsbHMtZnJvbnQuaAppbmRleCBiN2RhYmVkLi42M2IwNDE3IDEwMDY0NAotLS0gYS9kcml2 ZXJzL3hlbi9wdmNhbGxzLWZyb250LmgKKysrIGIvZHJpdmVycy94ZW4vcHZjYWxscy1mcm9udC5o CkBAIC00LDUgKzQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L25ldC5oPgogCiBpbnQgcHZjYWxsc19m cm9udF9zb2NrZXQoc3RydWN0IHNvY2tldCAqc29jayk7CitpbnQgcHZjYWxsc19mcm9udF9jb25u ZWN0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqYWRkciwKKwkJCSAgaW50 IGFkZHJfbGVuLCBpbnQgZmxhZ3MpOwogCiAjZW5kaWYKLS0gCjEuOS4xCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVs Cg==