From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v2 12/18] xen/pvcalls: implement poll command Date: Fri, 19 May 2017 16:22:53 -0700 Message-ID: <1495236179-27776-12-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 SW1wbGVtZW50IHBvbGwgb24gcGFzc2l2ZSBzb2NrZXRzIGJ5IHJlcXVlc3RpbmcgYSBkZWxheWVk IHJlc3BvbnNlIHdpdGgKbWFwcGFzcy0+cmVxY29weSwgYW5kIHJlcGx5IGJhY2sgd2hlbiB0aGVy ZSBpcyBkYXRhIG9uIHRoZSBwYXNzaXZlCnNvY2tldC4KClBvbGwgb24gYWN0aXZlIHNvY2tldCBp cyB1bmltcGxlbWVudGVkIGFzIGJ5IHRoZSBzcGVjLCBhcyB0aGUgZnJvbnRlbmQKc2hvdWxkIGp1 c3Qgd2FpdCBmb3IgZXZlbnRzIGFuZCBjaGVjayB0aGUgaW5kZXhlcyBvbiB0aGUgaW5kZXhlcyBw YWdlLgoKT25seSBzdXBwb3J0IG9uZSBvdXRzdGFuZGluZyBwb2xsIChvciBhY2NlcHQpIHJlcXVl c3QgZm9yIGV2ZXJ5IHBhc3NpdmUKc29ja2V0IGF0IGFueSBnaXZlbiB0aW1lLgoKU2lnbmVkLW9m Zi1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5vQGFwb3JldG8uY29tPgpDQzogYm9yaXMu b3N0cm92c2t5QG9yYWNsZS5jb20KQ0M6IGpncm9zc0BzdXNlLmNvbQotLS0KIGRyaXZlcnMveGVu L3B2Y2FsbHMtYmFjay5jIHwgNzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDczIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vcHZjYWxscy1iYWNrLmMgYi9kcml2ZXJzL3hl bi9wdmNhbGxzLWJhY2suYwppbmRleCBiYzY0MWE4Li41ZmYxNTA0IDEwMDY0NAotLS0gYS9kcml2 ZXJzL3hlbi9wdmNhbGxzLWJhY2suYworKysgYi9kcml2ZXJzL3hlbi9wdmNhbGxzLWJhY2suYwpA QCAtMzg4LDExICszODgsMzMgQEAgc3RhdGljIHZvaWQgX19wdmNhbGxzX2JhY2tfYWNjZXB0KHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHN0YXRpYyB2b2lkIHB2Y2FsbHNfcGFzc19za19kYXRh X3JlYWR5KHN0cnVjdCBzb2NrICpzb2NrKQogewogCXN0cnVjdCBzb2NrcGFzc19tYXBwaW5nICpt YXBwYXNzID0gc29jay0+c2tfdXNlcl9kYXRhOworCXN0cnVjdCBwdmNhbGxzX2JhY2tfcHJpdiAq cHJpdjsKKwlzdHJ1Y3QgeGVuX3B2Y2FsbHNfcmVzcG9uc2UgKnJzcDsKKwl1bnNpZ25lZCBsb25n IGZsYWdzOworCWludCBub3RpZnk7CiAKIAlpZiAobWFwcGFzcyA9PSBOVUxMKQogCQlyZXR1cm47 CiAKLQlxdWV1ZV93b3JrKG1hcHBhc3MtPndxLCAmbWFwcGFzcy0+cmVnaXN0ZXJfd29yayk7CisJ cHJpdiA9IG1hcHBhc3MtPnByaXY7CisJc3Bpbl9sb2NrX2lycXNhdmUoJm1hcHBhc3MtPmNvcHlf bG9jaywgZmxhZ3MpOworCWlmIChtYXBwYXNzLT5yZXFjb3B5LmNtZCA9PSBQVkNBTExTX1BPTEwp IHsKKwkJcnNwID0gUklOR19HRVRfUkVTUE9OU0UoJnByaXYtPnJpbmcsIHByaXYtPnJpbmcucnNw X3Byb2RfcHZ0KyspOworCQlyc3AtPnJlcV9pZCA9IG1hcHBhc3MtPnJlcWNvcHkucmVxX2lkOwor CQlyc3AtPnUucG9sbC5pZCA9IG1hcHBhc3MtPnJlcWNvcHkudS5wb2xsLmlkOworCQlyc3AtPmNt ZCA9IG1hcHBhc3MtPnJlcWNvcHkuY21kOworCQlyc3AtPnJldCA9IDA7CisKKwkJbWFwcGFzcy0+ cmVxY29weS5jbWQgPSAwOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZtYXBwYXNzLT5jb3B5 X2xvY2ssIGZsYWdzKTsKKworCQlSSU5HX1BVU0hfUkVTUE9OU0VTX0FORF9DSEVDS19OT1RJRlko JnByaXYtPnJpbmcsIG5vdGlmeSk7CisJCWlmIChub3RpZnkpCisJCQlub3RpZnlfcmVtb3RlX3Zp YV9pcnEobWFwcGFzcy0+cHJpdi0+aXJxKTsKKwl9IGVsc2UgeworCQlzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZtYXBwYXNzLT5jb3B5X2xvY2ssIGZsYWdzKTsKKwkJcXVldWVfd29yayhtYXBwYXNz LT53cSwgJm1hcHBhc3MtPnJlZ2lzdGVyX3dvcmspOworCX0KIH0KIAogc3RhdGljIGludCBwdmNh bGxzX2JhY2tfYmluZChzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LApAQCAtNTM3LDcgKzU1OSw1 NiBAQCBzdGF0aWMgaW50IHB2Y2FsbHNfYmFja19hY2NlcHQoc3RydWN0IHhlbmJ1c19kZXZpY2Ug KmRldiwKIHN0YXRpYyBpbnQgcHZjYWxsc19iYWNrX3BvbGwoc3RydWN0IHhlbmJ1c19kZXZpY2Ug KmRldiwKIAkJCSAgICAgc3RydWN0IHhlbl9wdmNhbGxzX3JlcXVlc3QgKnJlcSkKIHsKLQlyZXR1 cm4gMDsKKwlzdHJ1Y3QgcHZjYWxsc19iYWNrX3ByaXYgKnByaXY7CisJc3RydWN0IHNvY2twYXNz X21hcHBpbmcgKm1hcHBhc3M7CisJc3RydWN0IHhlbl9wdmNhbGxzX3Jlc3BvbnNlICpyc3A7CisJ c3RydWN0IGluZXRfY29ubmVjdGlvbl9zb2NrICppY3NrOworCXN0cnVjdCByZXF1ZXN0X3NvY2tf cXVldWUgKnF1ZXVlOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IHJldDsKKwlib29sIGRh dGE7CisKKwlwcml2ID0gZGV2X2dldF9kcnZkYXRhKCZkZXYtPmRldik7CisKKwltYXBwYXNzID0g cmFkaXhfdHJlZV9sb29rdXAoJnByaXYtPnNvY2tldHBhc3NfbWFwcGluZ3MsIHJlcS0+dS5wb2xs LmlkKTsKKwlpZiAobWFwcGFzcyA9PSBOVUxMKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCS8qCisJ ICogTGltaXRhdGlvbiBvZiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbjogb25seSBzdXBwb3J0 IG9uZQorCSAqIGNvbmN1cnJlbnQgYWNjZXB0IG9yIHBvbGwgY2FsbCBvbiBvbmUgc29ja2V0Lgor CSAqLworCXNwaW5fbG9ja19pcnFzYXZlKCZtYXBwYXNzLT5jb3B5X2xvY2ssIGZsYWdzKTsKKwlp ZiAobWFwcGFzcy0+cmVxY29weS5jbWQgIT0gMCkgeworCQlyZXQgPSAtRUlOVFI7CisJCWdvdG8g b3V0OworCX0KKworCW1hcHBhc3MtPnJlcWNvcHkgPSAqcmVxOworCWljc2sgPSBpbmV0X2Nzayht YXBwYXNzLT5zb2NrLT5zayk7CisJcXVldWUgPSAmaWNzay0+aWNza19hY2NlcHRfcXVldWU7CisJ c3Bpbl9sb2NrKCZxdWV1ZS0+cnNrcV9sb2NrKTsKKwlkYXRhID0gcXVldWUtPnJza3FfYWNjZXB0 X2hlYWQgIT0gTlVMTDsKKwlzcGluX3VubG9jaygmcXVldWUtPnJza3FfbG9jayk7CisJaWYgKGRh dGEpIHsKKwkJbWFwcGFzcy0+cmVxY29weS5jbWQgPSAwOworCQlyZXQgPSAwOworCQlnb3RvIG91 dDsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbWFwcGFzcy0+Y29weV9sb2NrLCBmbGFn cyk7CisKKwkvKiBUZWxsIHRoZSBjYWxsZXIgd2UgZG9uJ3QgbmVlZCB0byBzZW5kIGJhY2sgYSBu b3RpZmljYXRpb24geWV0ICovCisJcmV0dXJuIC0xOworCitvdXQ6CisJc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmbWFwcGFzcy0+Y29weV9sb2NrLCBmbGFncyk7CisKKwlyc3AgPSBSSU5HX0dFVF9S RVNQT05TRSgmcHJpdi0+cmluZywgcHJpdi0+cmluZy5yc3BfcHJvZF9wdnQrKyk7CisJcnNwLT5y ZXFfaWQgPSByZXEtPnJlcV9pZDsKKwlyc3AtPmNtZCA9IHJlcS0+Y21kOworCXJzcC0+dS5wb2xs LmlkID0gcmVxLT51LnBvbGwuaWQ7CisJcnNwLT5yZXQgPSByZXQ7CisJcmV0dXJuIHJldDsKIH0K IAogc3RhdGljIGludCBwdmNhbGxzX2JhY2tfaGFuZGxlX2NtZChzdHJ1Y3QgeGVuYnVzX2Rldmlj ZSAqZGV2LAotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3Jn Cmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK