From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v2 08/18] xen/pvcalls: implement connect command Date: Fri, 19 May 2017 16:22:49 -0700 Message-ID: <1495236179-27776-8-git-send-email-sstabellini@kernel.org> References: <1495236179-27776-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: <1495236179-27776-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 QWxsb2NhdGUgYSBzb2NrZXQuIEtlZXAgdHJhY2sgb2Ygc29ja2V0IDwtPiByaW5nIG1hcHBpbmdz IHdpdGggYSBuZXcgZGF0YQpzdHJ1Y3R1cmUsIGNhbGxlZCBzb2NrX21hcHBpbmcuIEltcGxlbWVu dCB0aGUgY29ubmVjdCBjb21tYW5kIGJ5IGNhbGxpbmcKaW5ldF9zdHJlYW1fY29ubmVjdCwgYW5k IG1hcHBpbmcgdGhlIG5ldyBpbmRleGVzIHBhZ2UgYW5kIGRhdGEgcmluZy4KQWxsb2NhdGUgYSB3 b3JrcXVldWUgYW5kIGEgd29ya19zdHJ1Y3QsIGNhbGxlZCBpb3dvcmtlciwgdG8gcGVyZm9ybQpy ZWFkcyBhbmQgd3JpdGVzIHRvIHRoZSBzb2NrZXQuCgpXaGVuIGFuIGFjdGl2ZSBzb2NrZXQgaXMg Y2xvc2VkIChza19zdGF0ZV9jaGFuZ2UpLCBzZXQgaW5fZXJyb3IgdG8KLUVOT1RDT05OIGFuZCBu b3RpZnkgdGhlIG90aGVyIGVuZCwgYXMgc3BlY2lmaWVkIGJ5IHRoZSBwcm90b2NvbC4KCnNrX2Rh dGFfcmVhZHkgYW5kIHB2Y2FsbHNfYmFja19pb3dvcmtlciB3aWxsIGJlIGltcGxlbWVudGVkIGxh dGVyLgoKU2lnbmVkLW9mZi1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5vQGFwb3JldG8u Y29tPgpDQzogYm9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20KQ0M6IGpncm9zc0BzdXNlLmNvbQot LS0KIGRyaXZlcnMveGVuL3B2Y2FsbHMtYmFjay5jIHwgMTYxICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDE2MSBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vcHZjYWxscy1iYWNrLmMgYi9kcml2ZXJzL3hl bi9wdmNhbGxzLWJhY2suYwppbmRleCBmZWQ1NGJmLi42NWZiYzM5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL3hlbi9wdmNhbGxzLWJhY2suYworKysgYi9kcml2ZXJzL3hlbi9wdmNhbGxzLWJhY2suYwpA QCAtNTcsNiArNTcsNDAgQEAgc3RydWN0IHB2Y2FsbHNfYmFja19wcml2IHsKIAlzdHJ1Y3Qgd29y a19zdHJ1Y3QgcmVnaXN0ZXJfd29yazsKIH07CiAKK3N0cnVjdCBwdmNhbGxzX2lvd29ya2VyIHsK KwlzdHJ1Y3Qgd29ya19zdHJ1Y3QgcmVnaXN0ZXJfd29yazsKKwlzdHJ1Y3Qgd29ya3F1ZXVlX3N0 cnVjdCAqd3E7CisJdW5zaWduZWQgaW50IGNwdTsKK307CisKK3N0cnVjdCBzb2NrX21hcHBpbmcg eworCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKKwlzdHJ1Y3QgcHZjYWxsc19iYWNrX3ByaXYgKnBy aXY7CisJc3RydWN0IHNvY2tldCAqc29jazsKKwl1aW50NjRfdCBpZDsKKwlncmFudF9yZWZfdCBy ZWY7CisJc3RydWN0IHB2Y2FsbHNfZGF0YV9pbnRmICpyaW5nOworCXZvaWQgKmJ5dGVzOworCXN0 cnVjdCBwdmNhbGxzX2RhdGEgZGF0YTsKKwl1aW50MzJfdCByaW5nX29yZGVyOworCWludCBpcnE7 CisJYXRvbWljX3QgcmVhZDsKKwlhdG9taWNfdCB3cml0ZTsKKwlhdG9taWNfdCBpbzsKKwlhdG9t aWNfdCByZWxlYXNlOworCXZvaWQgKCpzYXZlZF9kYXRhX3JlYWR5KShzdHJ1Y3Qgc29jayAqc2sp OworCXN0cnVjdCBwdmNhbGxzX2lvd29ya2VyIGlvd29ya2VyOworfTsKKworc3RhdGljIGlycXJl dHVybl90IHB2Y2FsbHNfYmFja19jb25uX2V2ZW50KGludCBpcnEsIHZvaWQgKnNvY2tfbWFwKTsK K3N0YXRpYyBpbnQgcHZjYWxsc19iYWNrX3JlbGVhc2VfYWN0aXZlKHN0cnVjdCB4ZW5idXNfZGV2 aWNlICpkZXYsCisJCQkJICAgICAgIHN0cnVjdCBwdmNhbGxzX2JhY2tfcHJpdiAqcHJpdiwKKwkJ CQkgICAgICAgc3RydWN0IHNvY2tfbWFwcGluZyAqbWFwKTsKKworc3RhdGljIHZvaWQgcHZjYWxs c19iYWNrX2lvd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKK3sKK30KKwogc3RhdGlj IGludCBwdmNhbGxzX2JhY2tfc29ja2V0KHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYsCiAJCXN0 cnVjdCB4ZW5fcHZjYWxsc19yZXF1ZXN0ICpyZXEpCiB7CkBAIC04NSw5ICsxMTksMTMxIEBAIHN0 YXRpYyBpbnQgcHZjYWxsc19iYWNrX3NvY2tldChzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LAog CXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyB2b2lkIHB2Y2FsbHNfc2tfc3RhdGVfY2hhbmdlKHN0 cnVjdCBzb2NrICpzb2NrKQoreworCXN0cnVjdCBzb2NrX21hcHBpbmcgKm1hcCA9IHNvY2stPnNr X3VzZXJfZGF0YTsKKwlzdHJ1Y3QgcHZjYWxsc19kYXRhX2ludGYgKmludGY7CisKKwlpZiAobWFw ID09IE5VTEwpCisJCXJldHVybjsKKworCWludGYgPSBtYXAtPnJpbmc7CisJaW50Zi0+aW5fZXJy b3IgPSAtRU5PVENPTk47CisJbm90aWZ5X3JlbW90ZV92aWFfaXJxKG1hcC0+aXJxKTsKK30KKwor c3RhdGljIHZvaWQgcHZjYWxsc19za19kYXRhX3JlYWR5KHN0cnVjdCBzb2NrICpzb2NrKQorewor fQorCiBzdGF0aWMgaW50IHB2Y2FsbHNfYmFja19jb25uZWN0KHN0cnVjdCB4ZW5idXNfZGV2aWNl ICpkZXYsCiAJCQkJc3RydWN0IHhlbl9wdmNhbGxzX3JlcXVlc3QgKnJlcSkKIHsKKwlzdHJ1Y3Qg cHZjYWxsc19iYWNrX3ByaXYgKnByaXY7CisJaW50IHJldDsKKwlzdHJ1Y3Qgc29ja2V0ICpzb2Nr OworCXN0cnVjdCBzb2NrX21hcHBpbmcgKm1hcCA9IE5VTEw7CisJdm9pZCAqcGFnZTsKKwlzdHJ1 Y3QgeGVuX3B2Y2FsbHNfcmVzcG9uc2UgKnJzcDsKKworCXByaXYgPSBkZXZfZ2V0X2RydmRhdGEo JmRldi0+ZGV2KTsKKworCW1hcCA9IGt6YWxsb2Moc2l6ZW9mKCptYXApLCBHRlBfS0VSTkVMKTsK KwlpZiAobWFwID09IE5VTEwpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXQ7CisJfQor CXJldCA9IHNvY2tfY3JlYXRlKEFGX0lORVQsIFNPQ0tfU1RSRUFNLCAwLCAmc29jayk7CisJaWYg KHJldCA8IDApIHsKKwkJa2ZyZWUobWFwKTsKKwkJZ290byBvdXQ7CisJfQorCisJbWFwLT5wcml2 ID0gcHJpdjsKKwltYXAtPnNvY2sgPSBzb2NrOworCW1hcC0+aWQgPSByZXEtPnUuY29ubmVjdC5p ZDsKKwltYXAtPnJlZiA9IHJlcS0+dS5jb25uZWN0LnJlZjsKKworCXJldCA9IHhlbmJ1c19tYXBf cmluZ192YWxsb2MoZGV2LCAmcmVxLT51LmNvbm5lY3QucmVmLCAxLCAmcGFnZSk7CisJaWYgKHJl dCA8IDApIHsKKwkJc29ja19yZWxlYXNlKG1hcC0+c29jayk7CisJCWtmcmVlKG1hcCk7CisJCWdv dG8gb3V0OworCX0KKwltYXAtPnJpbmcgPSBwYWdlOworCW1hcC0+cmluZ19vcmRlciA9IG1hcC0+ cmluZy0+cmluZ19vcmRlcjsKKwkvKiBmaXJzdCByZWFkIHRoZSBvcmRlciwgdGhlbiBtYXAgdGhl IGRhdGEgcmluZyAqLworCXZpcnRfcm1iKCk7CisJaWYgKG1hcC0+cmluZ19vcmRlciA+IE1BWF9S SU5HX09SREVSKSB7CisJCXJldCA9IC1FRkFVTFQ7CisJCWdvdG8gb3V0OworCX0KKwlyZXQgPSB4 ZW5idXNfbWFwX3JpbmdfdmFsbG9jKGRldiwgbWFwLT5yaW5nLT5yZWYsCisJCQkJICAgICAoMSA8 PCBtYXAtPnJpbmdfb3JkZXIpLCAmcGFnZSk7CisJaWYgKHJldCA8IDApIHsKKwkJc29ja19yZWxl YXNlKG1hcC0+c29jayk7CisJCXhlbmJ1c191bm1hcF9yaW5nX3ZmcmVlKGRldiwgbWFwLT5yaW5n KTsKKwkJa2ZyZWUobWFwKTsKKwkJZ290byBvdXQ7CisJfQorCW1hcC0+Ynl0ZXMgPSBwYWdlOwor CisJcmV0ID0gYmluZF9pbnRlcmRvbWFpbl9ldnRjaG5fdG9faXJxaGFuZGxlcihwcml2LT5kZXYt Pm90aGVyZW5kX2lkLAorCQkJCQkJICAgIHJlcS0+dS5jb25uZWN0LmV2dGNobiwKKwkJCQkJCSAg ICBwdmNhbGxzX2JhY2tfY29ubl9ldmVudCwKKwkJCQkJCSAgICAwLAorCQkJCQkJICAgICJwdmNh bGxzLWJhY2tlbmQiLAorCQkJCQkJICAgIG1hcCk7CisJaWYgKHJldCA8IDApIHsKKwkJc29ja19y ZWxlYXNlKG1hcC0+c29jayk7CisJCWtmcmVlKG1hcCk7CisJCWdvdG8gb3V0OworCX0KKwltYXAt PmlycSA9IHJldDsKKworCW1hcC0+ZGF0YS5pbiA9IG1hcC0+Ynl0ZXM7CisJbWFwLT5kYXRhLm91 dCA9IG1hcC0+Ynl0ZXMgKyBYRU5fRkxFWF9SSU5HX1NJWkUobWFwLT5yaW5nX29yZGVyKTsKKwor CW1hcC0+aW93b3JrZXIud3EgPSBhbGxvY193b3JrcXVldWUoInB2Y2FsbHNfaW8iLCBXUV9VTkJP VU5ELCAxKTsKKwlpZiAoIW1hcC0+aW93b3JrZXIud3EpIHsKKwkgICAgcmV0ID0gLUVOT01FTTsK KwkgICAgZ290byBvdXQ7CisJfQorCW1hcC0+aW93b3JrZXIuY3B1ID0gZ2V0X3JhbmRvbV9pbnQo KSAlIG51bV9vbmxpbmVfY3B1cygpOworCWF0b21pY19zZXQoJm1hcC0+aW8sIDEpOworCUlOSVRf V09SSygmbWFwLT5pb3dvcmtlci5yZWdpc3Rlcl93b3JrLAlwdmNhbGxzX2JhY2tfaW93b3JrZXIp OworCisJZG93bigmcHJpdi0+c29ja2V0X2xvY2spOworCWxpc3RfYWRkX3RhaWwoJm1hcC0+bGlz dCwgJnByaXYtPnNvY2tldF9tYXBwaW5ncyk7CisJdXAoJnByaXYtPnNvY2tldF9sb2NrKTsKKwor CXJldCA9IGluZXRfc3RyZWFtX2Nvbm5lY3Qoc29jaywgKHN0cnVjdCBzb2NrYWRkciAqKSZyZXEt PnUuY29ubmVjdC5hZGRyLAorCQkJCSAgcmVxLT51LmNvbm5lY3QubGVuLCByZXEtPnUuY29ubmVj dC5mbGFncyk7CisJaWYgKHJldCA8IDApIHsKKwkJcHZjYWxsc19iYWNrX3JlbGVhc2VfYWN0aXZl KGRldiwgcHJpdiwgbWFwKTsKKwl9IGVsc2UgeworCQl3cml0ZV9sb2NrX2JoKCZzb2NrLT5zay0+ c2tfY2FsbGJhY2tfbG9jayk7CisJCW1hcC0+c2F2ZWRfZGF0YV9yZWFkeSA9IHNvY2stPnNrLT5z a19kYXRhX3JlYWR5OworCQlzb2NrLT5zay0+c2tfdXNlcl9kYXRhID0gbWFwOworCQlzb2NrLT5z ay0+c2tfZGF0YV9yZWFkeSA9IHB2Y2FsbHNfc2tfZGF0YV9yZWFkeTsKKwkJc29jay0+c2stPnNr X3N0YXRlX2NoYW5nZSA9IHB2Y2FsbHNfc2tfc3RhdGVfY2hhbmdlOworCQl3cml0ZV91bmxvY2tf YmgoJnNvY2stPnNrLT5za19jYWxsYmFja19sb2NrKTsKKwl9CisKK291dDoKKwlyc3AgPSBSSU5H X0dFVF9SRVNQT05TRSgmcHJpdi0+cmluZywgcHJpdi0+cmluZy5yc3BfcHJvZF9wdnQrKyk7CisJ cnNwLT5yZXFfaWQgPSByZXEtPnJlcV9pZDsKKwlyc3AtPmNtZCA9IHJlcS0+Y21kOworCXJzcC0+ dS5jb25uZWN0LmlkID0gcmVxLT51LmNvbm5lY3QuaWQ7CisJcnNwLT5yZXQgPSByZXQ7CisKKwly ZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHB2Y2FsbHNfYmFja19yZWxlYXNlX2FjdGl2ZShz dHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LAorCQkJCSAgICAgICBzdHJ1Y3QgcHZjYWxsc19iYWNr X3ByaXYgKnByaXYsCisJCQkJICAgICAgIHN0cnVjdCBzb2NrX21hcHBpbmcgKm1hcCkKK3sKIAly ZXR1cm4gMDsKIH0KIApAQCAtMjAzLDYgKzM1OSwxMSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgcHZj YWxsc19iYWNrX2V2ZW50KGludCBpcnEsIHZvaWQgKmRldl9pZCkKIAlyZXR1cm4gSVJRX0hBTkRM RUQ7CiB9CiAKK3N0YXRpYyBpcnFyZXR1cm5fdCBwdmNhbGxzX2JhY2tfY29ubl9ldmVudChpbnQg aXJxLCB2b2lkICpzb2NrX21hcCkKK3sKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKIHN0YXRp YyBpbnQgYmFja2VuZF9jb25uZWN0KHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYpCiB7CiAJaW50 IGVyciwgZXZ0Y2huOwotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK