From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v3 12/18] xen/pvcalls: implement poll command Date: Fri, 2 Jun 2017 12:31:49 -0700 Message-ID: <1496431915-20774-12-git-send-email-sstabellini@kernel.org> References: <1496431915-20774-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: <1496431915-20774-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 bi9wdmNhbGxzLWJhY2suYwppbmRleCBmMTE3M2Y0Li44MmYzNTBkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL3hlbi9wdmNhbGxzLWJhY2suYworKysgYi9kcml2ZXJzL3hlbi9wdmNhbGxzLWJhY2suYwpA QCAtMzQ0LDExICszNDQsMzMgQEAgc3RhdGljIHZvaWQgX19wdmNhbGxzX2JhY2tfYWNjZXB0KHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHN0YXRpYyB2b2lkIHB2Y2FsbHNfcGFzc19za19kYXRh X3JlYWR5KHN0cnVjdCBzb2NrICpzb2NrKQogewogCXN0cnVjdCBzb2NrcGFzc19tYXBwaW5nICpt YXBwYXNzID0gc29jay0+c2tfdXNlcl9kYXRhOworCXN0cnVjdCBwdmNhbGxzX2ZlZGF0YSAqcHJp djsKKwlzdHJ1Y3QgeGVuX3B2Y2FsbHNfcmVzcG9uc2UgKnJzcDsKKwl1bnNpZ25lZCBsb25nIGZs YWdzOworCWludCBub3RpZnk7CiAKIAlpZiAobWFwcGFzcyA9PSBOVUxMKQogCQlyZXR1cm47CiAK LQlxdWV1ZV93b3JrKG1hcHBhc3MtPndxLCAmbWFwcGFzcy0+cmVnaXN0ZXJfd29yayk7CisJcHJp diA9IG1hcHBhc3MtPnByaXY7CisJc3Bpbl9sb2NrX2lycXNhdmUoJm1hcHBhc3MtPmNvcHlfbG9j aywgZmxhZ3MpOworCWlmIChtYXBwYXNzLT5yZXFjb3B5LmNtZCA9PSBQVkNBTExTX1BPTEwpIHsK KwkJcnNwID0gUklOR19HRVRfUkVTUE9OU0UoJnByaXYtPnJpbmcsIHByaXYtPnJpbmcucnNwX3By b2RfcHZ0KyspOworCQlyc3AtPnJlcV9pZCA9IG1hcHBhc3MtPnJlcWNvcHkucmVxX2lkOworCQly c3AtPnUucG9sbC5pZCA9IG1hcHBhc3MtPnJlcWNvcHkudS5wb2xsLmlkOworCQlyc3AtPmNtZCA9 IG1hcHBhc3MtPnJlcWNvcHkuY21kOworCQlyc3AtPnJldCA9IDA7CisKKwkJbWFwcGFzcy0+cmVx Y29weS5jbWQgPSAwOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZtYXBwYXNzLT5jb3B5X2xv Y2ssIGZsYWdzKTsKKworCQlSSU5HX1BVU0hfUkVTUE9OU0VTX0FORF9DSEVDS19OT1RJRlkoJnBy aXYtPnJpbmcsIG5vdGlmeSk7CisJCWlmIChub3RpZnkpCisJCQlub3RpZnlfcmVtb3RlX3ZpYV9p cnEobWFwcGFzcy0+cHJpdi0+aXJxKTsKKwl9IGVsc2UgeworCQlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZtYXBwYXNzLT5jb3B5X2xvY2ssIGZsYWdzKTsKKwkJcXVldWVfd29yayhtYXBwYXNzLT53 cSwgJm1hcHBhc3MtPnJlZ2lzdGVyX3dvcmspOworCX0KIH0KIAogc3RhdGljIGludCBwdmNhbGxz X2JhY2tfYmluZChzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LApAQCAtNDkzLDcgKzUxNSw1NiBA QCBzdGF0aWMgaW50IHB2Y2FsbHNfYmFja19hY2NlcHQoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRl diwKIHN0YXRpYyBpbnQgcHZjYWxsc19iYWNrX3BvbGwoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRl diwKIAkJCSAgICAgc3RydWN0IHhlbl9wdmNhbGxzX3JlcXVlc3QgKnJlcSkKIHsKLQlyZXR1cm4g MDsKKwlzdHJ1Y3QgcHZjYWxsc19mZWRhdGEgKnByaXY7CisJc3RydWN0IHNvY2twYXNzX21hcHBp bmcgKm1hcHBhc3M7CisJc3RydWN0IHhlbl9wdmNhbGxzX3Jlc3BvbnNlICpyc3A7CisJc3RydWN0 IGluZXRfY29ubmVjdGlvbl9zb2NrICppY3NrOworCXN0cnVjdCByZXF1ZXN0X3NvY2tfcXVldWUg KnF1ZXVlOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IHJldDsKKwlib29sIGRhdGE7CisK Kwlwcml2ID0gZGV2X2dldF9kcnZkYXRhKCZkZXYtPmRldik7CisKKwltYXBwYXNzID0gcmFkaXhf dHJlZV9sb29rdXAoJnByaXYtPnNvY2tldHBhc3NfbWFwcGluZ3MsIHJlcS0+dS5wb2xsLmlkKTsK KwlpZiAobWFwcGFzcyA9PSBOVUxMKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCS8qCisJICogTGlt aXRhdGlvbiBvZiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbjogb25seSBzdXBwb3J0IG9uZQor CSAqIGNvbmN1cnJlbnQgYWNjZXB0IG9yIHBvbGwgY2FsbCBvbiBvbmUgc29ja2V0LgorCSAqLwor CXNwaW5fbG9ja19pcnFzYXZlKCZtYXBwYXNzLT5jb3B5X2xvY2ssIGZsYWdzKTsKKwlpZiAobWFw cGFzcy0+cmVxY29weS5jbWQgIT0gMCkgeworCQlyZXQgPSAtRUlOVFI7CisJCWdvdG8gb3V0Owor CX0KKworCW1hcHBhc3MtPnJlcWNvcHkgPSAqcmVxOworCWljc2sgPSBpbmV0X2NzayhtYXBwYXNz LT5zb2NrLT5zayk7CisJcXVldWUgPSAmaWNzay0+aWNza19hY2NlcHRfcXVldWU7CisJc3Bpbl9s b2NrKCZxdWV1ZS0+cnNrcV9sb2NrKTsKKwlkYXRhID0gcXVldWUtPnJza3FfYWNjZXB0X2hlYWQg IT0gTlVMTDsKKwlzcGluX3VubG9jaygmcXVldWUtPnJza3FfbG9jayk7CisJaWYgKGRhdGEpIHsK KwkJbWFwcGFzcy0+cmVxY29weS5jbWQgPSAwOworCQlyZXQgPSAwOworCQlnb3RvIG91dDsKKwl9 CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbWFwcGFzcy0+Y29weV9sb2NrLCBmbGFncyk7CisK KwkvKiBUZWxsIHRoZSBjYWxsZXIgd2UgZG9uJ3QgbmVlZCB0byBzZW5kIGJhY2sgYSBub3RpZmlj YXRpb24geWV0ICovCisJcmV0dXJuIC0xOworCitvdXQ6CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmbWFwcGFzcy0+Y29weV9sb2NrLCBmbGFncyk7CisKKwlyc3AgPSBSSU5HX0dFVF9SRVNQT05T RSgmcHJpdi0+cmluZywgcHJpdi0+cmluZy5yc3BfcHJvZF9wdnQrKyk7CisJcnNwLT5yZXFfaWQg PSByZXEtPnJlcV9pZDsKKwlyc3AtPmNtZCA9IHJlcS0+Y21kOworCXJzcC0+dS5wb2xsLmlkID0g cmVxLT51LnBvbGwuaWQ7CisJcnNwLT5yZXQgPSByZXQ7CisJcmV0dXJuIHJldDsKIH0KIAogc3Rh dGljIGludCBwdmNhbGxzX2JhY2tfaGFuZGxlX2NtZChzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2 LAotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBz Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK