From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v4 11/18] xen/pvcalls: implement accept command Date: Thu, 15 Jun 2017 12:09:40 -0700 Message-ID: <1497553787-3709-11-git-send-email-sstabellini@kernel.org> References: <1497553787-3709-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: <1497553787-3709-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 SW1wbGVtZW50IHRoZSBhY2NlcHQgY29tbWFuZCBieSBjYWxsaW5nIGluZXRfYWNjZXB0LiBUbyBh dm9pZCBibG9ja2luZwppbiB0aGUga2VybmVsLCBjYWxsIGluZXRfYWNjZXB0KE9fTk9OQkxPQ0sp IGZyb20gYSB3b3JrcXVldWUsIHdoaWNoIGdldApzY2hlZHVsZWQgb24gc2tfZGF0YV9yZWFkeSAo Zm9yIGEgcGFzc2l2ZSBzb2NrZXQsIGl0IG1lYW5zIHRoYXQgdGhlcmUKYXJlIGNvbm5lY3Rpb25z IHRvIGFjY2VwdCkuCgpVc2UgdGhlIHJlcWNvcHkgZmllbGQgdG8gc3RvcmUgdGhlIHJlcXVlc3Qu IEFjY2VwdCB0aGUgbmV3IHNvY2tldCBmcm9tCnRoZSBkZWxheWVkIHdvcmsgZnVuY3Rpb24sIGNy ZWF0ZSBhIG5ldyBzb2NrX21hcHBpbmcgZm9yIGl0LCBtYXAKdGhlIGluZGV4ZXMgcGFnZSBhbmQg ZGF0YSByaW5nLCBhbmQgcmVwbHkgdG8gdGhlIG90aGVyIGVuZC4gQWxsb2NhdGUgYW4KaW93b3Jr ZXIgZm9yIHRoZSBzb2NrZXQuCgpPbmx5IHN1cHBvcnQgb25lIG91dHN0YW5kaW5nIGJsb2NraW5n IGFjY2VwdCByZXF1ZXN0IGZvciBldmVyeSBzb2NrZXQgYXQKYW55IHRpbWUuCgpBZGQgYSBmaWVs ZCB0byBzb2NrX21hcHBpbmcgdG8gcmVtZW1iZXIgdGhlIHBhc3NpdmUgc29ja2V0IGZyb20gd2hp Y2ggYW4KYWN0aXZlIHNvY2tldCB3YXMgY3JlYXRlZC4KClNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8g U3RhYmVsbGluaSA8c3RlZmFub0BhcG9yZXRvLmNvbT4KQ0M6IGJvcmlzLm9zdHJvdnNreUBvcmFj bGUuY29tCkNDOiBqZ3Jvc3NAc3VzZS5jb20KLS0tCiBkcml2ZXJzL3hlbi9wdmNhbGxzLWJhY2su YyB8IDExMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEg ZmlsZSBjaGFuZ2VkLCAxMTAgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVu L3B2Y2FsbHMtYmFjay5jIGIvZHJpdmVycy94ZW4vcHZjYWxscy1iYWNrLmMKaW5kZXggZTVjNTM1 ZC4uNzAxZjFmYyAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vcHZjYWxscy1iYWNrLmMKKysrIGIv ZHJpdmVycy94ZW4vcHZjYWxscy1iYWNrLmMKQEAgLTY0LDYgKzY0LDcgQEAgc3RydWN0IHB2Y2Fs bHNfaW93b3JrZXIgewogc3RydWN0IHNvY2tfbWFwcGluZyB7CiAJc3RydWN0IGxpc3RfaGVhZCBs aXN0OwogCXN0cnVjdCBwdmNhbGxzX2ZlZGF0YSAqZmVkYXRhOworCXN0cnVjdCBzb2NrcGFzc19t YXBwaW5nICpzb2NrcGFzczsKIAlzdHJ1Y3Qgc29ja2V0ICpzb2NrOwogCXVpbnQ2NF90IGlkOwog CWdyYW50X3JlZl90IHJlZjsKQEAgLTI3NiwxMCArMjc3LDgyIEBAIHN0YXRpYyBpbnQgcHZjYWxs c19iYWNrX3JlbGVhc2Uoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKIAogc3RhdGljIHZvaWQg X19wdmNhbGxzX2JhY2tfYWNjZXB0KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKKwlzdHJ1 Y3Qgc29ja3Bhc3NfbWFwcGluZyAqbWFwcGFzcyA9IGNvbnRhaW5lcl9vZigKKwkJd29yaywgc3Ry dWN0IHNvY2twYXNzX21hcHBpbmcsIHJlZ2lzdGVyX3dvcmspOworCXN0cnVjdCBzb2NrX21hcHBp bmcgKm1hcDsKKwlzdHJ1Y3QgcHZjYWxsc19pb3dvcmtlciAqaW93OworCXN0cnVjdCBwdmNhbGxz X2ZlZGF0YSAqZmVkYXRhOworCXN0cnVjdCBzb2NrZXQgKnNvY2s7CisJc3RydWN0IHhlbl9wdmNh bGxzX3Jlc3BvbnNlICpyc3A7CisJc3RydWN0IHhlbl9wdmNhbGxzX3JlcXVlc3QgKnJlcTsKKwlp bnQgbm90aWZ5OworCWludCByZXQgPSAtRUlOVkFMOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisK KwlmZWRhdGEgPSBtYXBwYXNzLT5mZWRhdGE7CisJLyoKKwkgKiBfX3B2Y2FsbHNfYmFja19hY2Nl cHQgY2FuIHJhY2UgYWdhaW5zdCBwdmNhbGxzX2JhY2tfYWNjZXB0LgorCSAqIFdlIG9ubHkgbmVl ZCB0byBjaGVjayB0aGUgdmFsdWUgb2YgImNtZCIgb24gcmVhZC4gSXQgY291bGQgYmUKKwkgKiBk b25lIGF0b21pY2FsbHksIGJ1dCB0byBzaW1wbGlmeSB0aGUgY29kZSBvbiB0aGUgd3JpdGUgc2lk ZSwgd2UKKwkgKiB1c2UgYSBzcGlubG9jay4KKwkgKi8KKwlzcGluX2xvY2tfaXJxc2F2ZSgmbWFw cGFzcy0+Y29weV9sb2NrLCBmbGFncyk7CisJcmVxID0gJm1hcHBhc3MtPnJlcWNvcHk7CisJaWYg KHJlcS0+Y21kICE9IFBWQ0FMTFNfQUNDRVBUKSB7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo Jm1hcHBhc3MtPmNvcHlfbG9jaywgZmxhZ3MpOworCQlyZXR1cm47CisJfQorCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJm1hcHBhc3MtPmNvcHlfbG9jaywgZmxhZ3MpOworCisJc29jayA9IHNvY2tf YWxsb2MoKTsKKwlpZiAoc29jayA9PSBOVUxMKQorCQlnb3RvIG91dF9lcnJvcjsKKwlzb2NrLT50 eXBlID0gbWFwcGFzcy0+c29jay0+dHlwZTsKKwlzb2NrLT5vcHMgPSBtYXBwYXNzLT5zb2NrLT5v cHM7CisKKwlyZXQgPSBpbmV0X2FjY2VwdChtYXBwYXNzLT5zb2NrLCBzb2NrLCBPX05PTkJMT0NL LCB0cnVlKTsKKwlpZiAocmV0ID09IC1FQUdBSU4pIHsKKwkJc29ja19yZWxlYXNlKHNvY2spOwor CQlnb3RvIG91dF9lcnJvcjsKKwl9CisKKwltYXAgPSBwdmNhbGxzX25ld19hY3RpdmVfc29ja2V0 KGZlZGF0YSwKKwkJCQkJcmVxLT51LmFjY2VwdC5pZF9uZXcsCisJCQkJCXJlcS0+dS5hY2NlcHQu cmVmLAorCQkJCQlyZXEtPnUuYWNjZXB0LmV2dGNobiwKKwkJCQkJc29jayk7CisJaWYgKCFtYXAp IHsKKwkJc29ja19yZWxlYXNlKHNvY2spOworCQlnb3RvIG91dF9lcnJvcjsKKwl9CisKKwltYXAt PnNvY2twYXNzID0gbWFwcGFzczsKKwlpb3cgPSAmbWFwLT5pb3dvcmtlcjsKKwlhdG9taWNfaW5j KCZtYXAtPnJlYWQpOworCWF0b21pY19pbmMoJm1hcC0+aW8pOworCXF1ZXVlX3dvcmsoaW93LT53 cSwgJmlvdy0+cmVnaXN0ZXJfd29yayk7CisKK291dF9lcnJvcjoKKwlyc3AgPSBSSU5HX0dFVF9S RVNQT05TRSgmZmVkYXRhLT5yaW5nLCBmZWRhdGEtPnJpbmcucnNwX3Byb2RfcHZ0KyspOworCXJz cC0+cmVxX2lkID0gcmVxLT5yZXFfaWQ7CisJcnNwLT5jbWQgPSByZXEtPmNtZDsKKwlyc3AtPnUu YWNjZXB0LmlkID0gcmVxLT51LmFjY2VwdC5pZDsKKwlyc3AtPnJldCA9IHJldDsKKwlSSU5HX1BV U0hfUkVTUE9OU0VTX0FORF9DSEVDS19OT1RJRlkoJmZlZGF0YS0+cmluZywgbm90aWZ5KTsKKwlp ZiAobm90aWZ5KQorCQlub3RpZnlfcmVtb3RlX3ZpYV9pcnEoZmVkYXRhLT5pcnEpOworCisJbWFw cGFzcy0+cmVxY29weS5jbWQgPSAwOwogfQogCiBzdGF0aWMgdm9pZCBwdmNhbGxzX3Bhc3Nfc2tf ZGF0YV9yZWFkeShzdHJ1Y3Qgc29jayAqc29jaykKIHsKKwlzdHJ1Y3Qgc29ja3Bhc3NfbWFwcGlu ZyAqbWFwcGFzcyA9IHNvY2stPnNrX3VzZXJfZGF0YTsKKworCWlmIChtYXBwYXNzID09IE5VTEwp CisJCXJldHVybjsKKworCXF1ZXVlX3dvcmsobWFwcGFzcy0+d3EsICZtYXBwYXNzLT5yZWdpc3Rl cl93b3JrKTsKIH0KIAogc3RhdGljIGludCBwdmNhbGxzX2JhY2tfYmluZChzdHJ1Y3QgeGVuYnVz X2RldmljZSAqZGV2LApAQCAtMzgzLDYgKzQ1Niw0MyBAQCBzdGF0aWMgaW50IHB2Y2FsbHNfYmFj a19saXN0ZW4oc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKIHN0YXRpYyBpbnQgcHZjYWxsc19i YWNrX2FjY2VwdChzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LAogCQkJICAgICAgIHN0cnVjdCB4 ZW5fcHZjYWxsc19yZXF1ZXN0ICpyZXEpCiB7CisJc3RydWN0IHB2Y2FsbHNfZmVkYXRhICpmZWRh dGE7CisJc3RydWN0IHNvY2twYXNzX21hcHBpbmcgKm1hcHBhc3M7CisJaW50IHJldCA9IC1FSU5W QUw7CisJc3RydWN0IHhlbl9wdmNhbGxzX3Jlc3BvbnNlICpyc3A7CisJdW5zaWduZWQgbG9uZyBm bGFnczsKKworCWZlZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YSgmZGV2LT5kZXYpOworCisJbWFwcGFz cyA9IHJhZGl4X3RyZWVfbG9va3VwKCZmZWRhdGEtPnNvY2tldHBhc3NfbWFwcGluZ3MsCisJCXJl cS0+dS5hY2NlcHQuaWQpOworCWlmIChtYXBwYXNzID09IE5VTEwpCisJCWdvdG8gb3V0X2Vycm9y OworCisJLyogCisJICogTGltaXRhdGlvbiBvZiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbjog b25seSBzdXBwb3J0IG9uZQorCSAqIGNvbmN1cnJlbnQgYWNjZXB0IG9yIHBvbGwgY2FsbCBvbiBv bmUgc29ja2V0LgorCSAqLworCXNwaW5fbG9ja19pcnFzYXZlKCZtYXBwYXNzLT5jb3B5X2xvY2ss IGZsYWdzKTsKKwlpZiAobWFwcGFzcy0+cmVxY29weS5jbWQgIT0gMCkgeworCQlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZtYXBwYXNzLT5jb3B5X2xvY2ssIGZsYWdzKTsKKwkJcmV0ID0gLUVJTlRS OworCQlnb3RvIG91dF9lcnJvcjsKKwl9CisKKwltYXBwYXNzLT5yZXFjb3B5ID0gKnJlcTsKKwlz cGluX3VubG9ja19pcnFyZXN0b3JlKCZtYXBwYXNzLT5jb3B5X2xvY2ssIGZsYWdzKTsKKwlxdWV1 ZV93b3JrKG1hcHBhc3MtPndxLCAmbWFwcGFzcy0+cmVnaXN0ZXJfd29yayk7CisKKwkvKiBUZWxs IHRoZSBjYWxsZXIgd2UgZG9uJ3QgbmVlZCB0byBzZW5kIGJhY2sgYSBub3RpZmljYXRpb24geWV0 ICovCisJcmV0dXJuIC0xOworCitvdXRfZXJyb3I6CisJcnNwID0gUklOR19HRVRfUkVTUE9OU0Uo JmZlZGF0YS0+cmluZywgZmVkYXRhLT5yaW5nLnJzcF9wcm9kX3B2dCsrKTsKKwlyc3AtPnJlcV9p ZCA9IHJlcS0+cmVxX2lkOworCXJzcC0+Y21kID0gcmVxLT5jbWQ7CisJcnNwLT51LmFjY2VwdC5p ZCA9IHJlcS0+dS5hY2NlcHQuaWQ7CisJcnNwLT5yZXQgPSByZXQ7CiAJcmV0dXJuIDA7CiB9CiAK LS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczov L2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==