From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v6 11/18] xen/pvcalls: implement accept command Date: Mon, 3 Jul 2017 14:08:32 -0700 Message-ID: <1499116119-15638-11-git-send-email-sstabellini@kernel.org> References: <1499116119-15638-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: <1499116119-15638-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 YyB8IDExMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEg ZmlsZSBjaGFuZ2VkLCAxMTMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVu L3B2Y2FsbHMtYmFjay5jIGIvZHJpdmVycy94ZW4vcHZjYWxscy1iYWNrLmMKaW5kZXggNjg5Yjg0 Zi4uNzViN2I5YTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3B2Y2FsbHMtYmFjay5jCisrKyBi L2RyaXZlcnMveGVuL3B2Y2FsbHMtYmFjay5jCkBAIC02Miw2ICs2Miw3IEBAIHN0cnVjdCBwdmNh bGxzX2lvd29ya2VyIHsKIHN0cnVjdCBzb2NrX21hcHBpbmcgewogCXN0cnVjdCBsaXN0X2hlYWQg bGlzdDsKIAlzdHJ1Y3QgcHZjYWxsc19mZWRhdGEgKmZlZGF0YTsKKwlzdHJ1Y3Qgc29ja3Bhc3Nf bWFwcGluZyAqc29ja3Bhc3M7CiAJc3RydWN0IHNvY2tldCAqc29jazsKIAl1aW50NjRfdCBpZDsK IAlncmFudF9yZWZfdCByZWY7CkBAIC0yNzcsMTAgKzI3OCw4MyBAQCBzdGF0aWMgaW50IHB2Y2Fs bHNfYmFja19yZWxlYXNlKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYsCiAKIHN0YXRpYyB2b2lk IF9fcHZjYWxsc19iYWNrX2FjY2VwdChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7CisJc3Ry dWN0IHNvY2twYXNzX21hcHBpbmcgKm1hcHBhc3MgPSBjb250YWluZXJfb2YoCisJCXdvcmssIHN0 cnVjdCBzb2NrcGFzc19tYXBwaW5nLCByZWdpc3Rlcl93b3JrKTsKKwlzdHJ1Y3Qgc29ja19tYXBw aW5nICptYXA7CisJc3RydWN0IHB2Y2FsbHNfaW93b3JrZXIgKmlvdzsKKwlzdHJ1Y3QgcHZjYWxs c19mZWRhdGEgKmZlZGF0YTsKKwlzdHJ1Y3Qgc29ja2V0ICpzb2NrOworCXN0cnVjdCB4ZW5fcHZj YWxsc19yZXNwb25zZSAqcnNwOworCXN0cnVjdCB4ZW5fcHZjYWxsc19yZXF1ZXN0ICpyZXE7CisJ aW50IG5vdGlmeTsKKwlpbnQgcmV0ID0gLUVJTlZBTDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOwor CisJZmVkYXRhID0gbWFwcGFzcy0+ZmVkYXRhOworCS8qCisJICogX19wdmNhbGxzX2JhY2tfYWNj ZXB0IGNhbiByYWNlIGFnYWluc3QgcHZjYWxsc19iYWNrX2FjY2VwdC4KKwkgKiBXZSBvbmx5IG5l ZWQgdG8gY2hlY2sgdGhlIHZhbHVlIG9mICJjbWQiIG9uIHJlYWQuIEl0IGNvdWxkIGJlCisJICog ZG9uZSBhdG9taWNhbGx5LCBidXQgdG8gc2ltcGxpZnkgdGhlIGNvZGUgb24gdGhlIHdyaXRlIHNp ZGUsIHdlCisJICogdXNlIGEgc3BpbmxvY2suCisJICovCisJc3Bpbl9sb2NrX2lycXNhdmUoJm1h cHBhc3MtPmNvcHlfbG9jaywgZmxhZ3MpOworCXJlcSA9ICZtYXBwYXNzLT5yZXFjb3B5OworCWlm IChyZXEtPmNtZCAhPSBQVkNBTExTX0FDQ0VQVCkgeworCQlzcGluX3VubG9ja19pcnFyZXN0b3Jl KCZtYXBwYXNzLT5jb3B5X2xvY2ssIGZsYWdzKTsKKwkJcmV0dXJuOworCX0KKwlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZtYXBwYXNzLT5jb3B5X2xvY2ssIGZsYWdzKTsKKworCXNvY2sgPSBzb2Nr X2FsbG9jKCk7CisJaWYgKHNvY2sgPT0gTlVMTCkKKwkJZ290byBvdXRfZXJyb3I7CisJc29jay0+ dHlwZSA9IG1hcHBhc3MtPnNvY2stPnR5cGU7CisJc29jay0+b3BzID0gbWFwcGFzcy0+c29jay0+ b3BzOworCisJcmV0ID0gaW5ldF9hY2NlcHQobWFwcGFzcy0+c29jaywgc29jaywgT19OT05CTE9D SywgdHJ1ZSk7CisJaWYgKHJldCA9PSAtRUFHQUlOKSB7CisJCXNvY2tfcmVsZWFzZShzb2NrKTsK KwkJZ290byBvdXRfZXJyb3I7CisJfQorCisJbWFwID0gcHZjYWxsc19uZXdfYWN0aXZlX3NvY2tl dChmZWRhdGEsCisJCQkJCXJlcS0+dS5hY2NlcHQuaWRfbmV3LAorCQkJCQlyZXEtPnUuYWNjZXB0 LnJlZiwKKwkJCQkJcmVxLT51LmFjY2VwdC5ldnRjaG4sCisJCQkJCXNvY2spOworCWlmICghbWFw KSB7CisJCXJldCA9IC1FRkFVTFQ7CisJCXNvY2tfcmVsZWFzZShzb2NrKTsKKwkJZ290byBvdXRf ZXJyb3I7CisJfQorCisJbWFwLT5zb2NrcGFzcyA9IG1hcHBhc3M7CisJaW93ID0gJm1hcC0+aW93 b3JrZXI7CisJYXRvbWljX2luYygmbWFwLT5yZWFkKTsKKwlhdG9taWNfaW5jKCZtYXAtPmlvKTsK KwlxdWV1ZV93b3JrKGlvdy0+d3EsICZpb3ctPnJlZ2lzdGVyX3dvcmspOworCitvdXRfZXJyb3I6 CisJcnNwID0gUklOR19HRVRfUkVTUE9OU0UoJmZlZGF0YS0+cmluZywgZmVkYXRhLT5yaW5nLnJz cF9wcm9kX3B2dCsrKTsKKwlyc3AtPnJlcV9pZCA9IHJlcS0+cmVxX2lkOworCXJzcC0+Y21kID0g cmVxLT5jbWQ7CisJcnNwLT51LmFjY2VwdC5pZCA9IHJlcS0+dS5hY2NlcHQuaWQ7CisJcnNwLT5y ZXQgPSByZXQ7CisJUklOR19QVVNIX1JFU1BPTlNFU19BTkRfQ0hFQ0tfTk9USUZZKCZmZWRhdGEt PnJpbmcsIG5vdGlmeSk7CisJaWYgKG5vdGlmeSkKKwkJbm90aWZ5X3JlbW90ZV92aWFfaXJxKGZl ZGF0YS0+aXJxKTsKKworCW1hcHBhc3MtPnJlcWNvcHkuY21kID0gMDsKIH0KIAogc3RhdGljIHZv aWQgcHZjYWxsc19wYXNzX3NrX2RhdGFfcmVhZHkoc3RydWN0IHNvY2sgKnNvY2spCiB7CisJc3Ry dWN0IHNvY2twYXNzX21hcHBpbmcgKm1hcHBhc3MgPSBzb2NrLT5za191c2VyX2RhdGE7CisKKwlp ZiAobWFwcGFzcyA9PSBOVUxMKQorCQlyZXR1cm47CisKKwlxdWV1ZV93b3JrKG1hcHBhc3MtPndx LCAmbWFwcGFzcy0+cmVnaXN0ZXJfd29yayk7CiB9CiAKIHN0YXRpYyBpbnQgcHZjYWxsc19iYWNr X2JpbmQoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKQEAgLTM4Niw2ICs0NjAsNDUgQEAgc3Rh dGljIGludCBwdmNhbGxzX2JhY2tfbGlzdGVuKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYsCiBz dGF0aWMgaW50IHB2Y2FsbHNfYmFja19hY2NlcHQoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwK IAkJCSAgICAgICBzdHJ1Y3QgeGVuX3B2Y2FsbHNfcmVxdWVzdCAqcmVxKQogeworCXN0cnVjdCBw dmNhbGxzX2ZlZGF0YSAqZmVkYXRhOworCXN0cnVjdCBzb2NrcGFzc19tYXBwaW5nICptYXBwYXNz OworCWludCByZXQgPSAtRUlOVkFMOworCXN0cnVjdCB4ZW5fcHZjYWxsc19yZXNwb25zZSAqcnNw OworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlmZWRhdGEgPSBkZXZfZ2V0X2RydmRhdGEoJmRl di0+ZGV2KTsKKworCWRvd24oJmZlZGF0YS0+c29ja2V0X2xvY2spOworCW1hcHBhc3MgPSByYWRp eF90cmVlX2xvb2t1cCgmZmVkYXRhLT5zb2NrZXRwYXNzX21hcHBpbmdzLAorCQlyZXEtPnUuYWNj ZXB0LmlkKTsKKwl1cCgmZmVkYXRhLT5zb2NrZXRfbG9jayk7CisJaWYgKG1hcHBhc3MgPT0gTlVM TCkKKwkJZ290byBvdXRfZXJyb3I7CisKKwkvKiAKKwkgKiBMaW1pdGF0aW9uIG9mIHRoZSBjdXJy ZW50IGltcGxlbWVudGF0aW9uOiBvbmx5IHN1cHBvcnQgb25lCisJICogY29uY3VycmVudCBhY2Nl cHQgb3IgcG9sbCBjYWxsIG9uIG9uZSBzb2NrZXQuCisJICovCisJc3Bpbl9sb2NrX2lycXNhdmUo Jm1hcHBhc3MtPmNvcHlfbG9jaywgZmxhZ3MpOworCWlmIChtYXBwYXNzLT5yZXFjb3B5LmNtZCAh PSAwKSB7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm1hcHBhc3MtPmNvcHlfbG9jaywgZmxh Z3MpOworCQlyZXQgPSAtRUlOVFI7CisJCWdvdG8gb3V0X2Vycm9yOworCX0KKworCW1hcHBhc3Mt PnJlcWNvcHkgPSAqcmVxOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm1hcHBhc3MtPmNvcHlf bG9jaywgZmxhZ3MpOworCXF1ZXVlX3dvcmsobWFwcGFzcy0+d3EsICZtYXBwYXNzLT5yZWdpc3Rl cl93b3JrKTsKKworCS8qIFRlbGwgdGhlIGNhbGxlciB3ZSBkb24ndCBuZWVkIHRvIHNlbmQgYmFj ayBhIG5vdGlmaWNhdGlvbiB5ZXQgKi8KKwlyZXR1cm4gLTE7CisKK291dF9lcnJvcjoKKwlyc3Ag PSBSSU5HX0dFVF9SRVNQT05TRSgmZmVkYXRhLT5yaW5nLCBmZWRhdGEtPnJpbmcucnNwX3Byb2Rf cHZ0KyspOworCXJzcC0+cmVxX2lkID0gcmVxLT5yZXFfaWQ7CisJcnNwLT5jbWQgPSByZXEtPmNt ZDsKKwlyc3AtPnUuYWNjZXB0LmlkID0gcmVxLT51LmFjY2VwdC5pZDsKKwlyc3AtPnJldCA9IHJl dDsKIAlyZXR1cm4gMDsKIH0KIAotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK