From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v5 12/13] xen/pvcalls: implement release command Date: Fri, 6 Oct 2017 17:30:26 -0700 Message-ID: <1507336227-20477-12-git-send-email-sstabellini@kernel.org> References: <1507336227-20477-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: <1507336227-20477-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 U2VuZCBQVkNBTExTX1JFTEVBU0UgdG8gdGhlIGJhY2tlbmQgYW5kIHdhaXQgZm9yIGEgcmVwbHku IFRha2UgYm90aAppbl9tdXRleCBhbmQgb3V0X211dGV4IHRvIGF2b2lkIGNvbmN1cnJlbnQgYWNj ZXNzZXMuIFRoZW4sIGZyZWUgdGhlCnNvY2tldC4KCkZvciBwYXNzaXZlIHNvY2tldHMsIGNoZWNr IHdoZXRoZXIgd2UgaGF2ZSBhbHJlYWR5IHByZS1hbGxvY2F0ZWQgYW4KYWN0aXZlIHNvY2tldCBm b3IgdGhlIHB1cnBvc2Ugb2YgYmVpbmcgYWNjZXB0ZWQuIElmIHNvLCBmcmVlIHRoYXQgYXMKd2Vs bC4KClNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFub0BhcG9yZXRvLmNv bT4KQ0M6IGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tCkNDOiBqZ3Jvc3NAc3VzZS5jb20KLS0t CiBkcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmMgfCA5OCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMveGVuL3B2Y2FsbHMtZnJvbnQuaCB8ICAx ICsKIDIgZmlsZXMgY2hhbmdlZCwgOTkgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMveGVuL3B2Y2FsbHMtZnJvbnQuYyBiL2RyaXZlcnMveGVuL3B2Y2FsbHMtZnJvbnQuYwppbmRl eCBhY2EyYjMyLi45YmViMzRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250 LmMKKysrIGIvZHJpdmVycy94ZW4vcHZjYWxscy1mcm9udC5jCkBAIC0yMDAsNiArMjAwLDE5IEBA IHN0YXRpYyBpcnFyZXR1cm5fdCBwdmNhbGxzX2Zyb250X2V2ZW50X2hhbmRsZXIoaW50IGlycSwg dm9pZCAqZGV2X2lkKQogc3RhdGljIHZvaWQgcHZjYWxsc19mcm9udF9mcmVlX21hcChzdHJ1Y3Qg cHZjYWxsc19iZWRhdGEgKmJlZGF0YSwKIAkJCQkgICBzdHJ1Y3Qgc29ja19tYXBwaW5nICptYXAp CiB7CisJaW50IGk7CisKKwl1bmJpbmRfZnJvbV9pcnFoYW5kbGVyKG1hcC0+YWN0aXZlLmlycSwg bWFwKTsKKworCXNwaW5fbG9jaygmYmVkYXRhLT5zb2NrZXRfbG9jayk7CisJaWYgKCFsaXN0X2Vt cHR5KCZtYXAtPmxpc3QpKQorCQlsaXN0X2RlbF9pbml0KCZtYXAtPmxpc3QpOworCXNwaW5fdW5s b2NrKCZiZWRhdGEtPnNvY2tldF9sb2NrKTsKKworCWZvciAoaSA9IDA7IGkgPCAoMSA8PCBQVkNB TExTX1JJTkdfT1JERVIpOyBpKyspCisJCWdudHRhYl9lbmRfZm9yZWlnbl9hY2Nlc3MobWFwLT5h Y3RpdmUucmluZy0+cmVmW2ldLCAwLCAwKTsKKwlnbnR0YWJfZW5kX2ZvcmVpZ25fYWNjZXNzKG1h cC0+YWN0aXZlLnJlZiwgMCwgMCk7CisJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKW1hcC0+YWN0 aXZlLnJpbmcpOwogfQogCiBzdGF0aWMgaXJxcmV0dXJuX3QgcHZjYWxsc19mcm9udF9jb25uX2hh bmRsZXIoaW50IGlycSwgdm9pZCAqc29ja19tYXApCkBAIC05NjgsNiArOTgxLDkxIEBAIHVuc2ln bmVkIGludCBwdmNhbGxzX2Zyb250X3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBzb2Nr ZXQgKnNvY2ssCiAJcmV0dXJuIHJldDsKIH0KIAoraW50IHB2Y2FsbHNfZnJvbnRfcmVsZWFzZShz dHJ1Y3Qgc29ja2V0ICpzb2NrKQoreworCXN0cnVjdCBwdmNhbGxzX2JlZGF0YSAqYmVkYXRhOwor CXN0cnVjdCBzb2NrX21hcHBpbmcgKm1hcDsKKwlpbnQgcmVxX2lkLCBub3RpZnksIHJldDsKKwlz dHJ1Y3QgeGVuX3B2Y2FsbHNfcmVxdWVzdCAqcmVxOworCisJaWYgKHNvY2stPnNrID09IE5VTEwp CisJCXJldHVybiAwOworCisJcHZjYWxsc19lbnRlcigpOworCWlmICghcHZjYWxsc19mcm9udF9k ZXYpIHsKKwkJcHZjYWxsc19leGl0KCk7CisJCXJldHVybiAtRUlPOworCX0KKworCWJlZGF0YSA9 IGRldl9nZXRfZHJ2ZGF0YSgmcHZjYWxsc19mcm9udF9kZXYtPmRldik7CisKKwltYXAgPSAoc3Ry dWN0IHNvY2tfbWFwcGluZyAqKSBzb2NrLT5zay0+c2tfc2VuZF9oZWFkOworCWlmIChtYXAgPT0g TlVMTCkgeworCQlwdmNhbGxzX2V4aXQoKTsKKwkJcmV0dXJuIDA7CisJfQorCisJc3Bpbl9sb2Nr KCZiZWRhdGEtPnNvY2tldF9sb2NrKTsKKwlyZXQgPSBnZXRfcmVxdWVzdChiZWRhdGEsICZyZXFf aWQpOworCWlmIChyZXQgPCAwKSB7CisJCXNwaW5fdW5sb2NrKCZiZWRhdGEtPnNvY2tldF9sb2Nr KTsKKwkJcHZjYWxsc19leGl0KCk7CisJCXJldHVybiByZXQ7CisJfQorCXNvY2stPnNrLT5za19z ZW5kX2hlYWQgPSBOVUxMOworCisJcmVxID0gUklOR19HRVRfUkVRVUVTVCgmYmVkYXRhLT5yaW5n LCByZXFfaWQpOworCXJlcS0+cmVxX2lkID0gcmVxX2lkOworCXJlcS0+Y21kID0gUFZDQUxMU19S RUxFQVNFOworCXJlcS0+dS5yZWxlYXNlLmlkID0gKHVpbnQ2NF90KW1hcDsKKworCWJlZGF0YS0+ cmluZy5yZXFfcHJvZF9wdnQrKzsKKwlSSU5HX1BVU0hfUkVRVUVTVFNfQU5EX0NIRUNLX05PVElG WSgmYmVkYXRhLT5yaW5nLCBub3RpZnkpOworCXNwaW5fdW5sb2NrKCZiZWRhdGEtPnNvY2tldF9s b2NrKTsKKwlpZiAobm90aWZ5KQorCQlub3RpZnlfcmVtb3RlX3ZpYV9pcnEoYmVkYXRhLT5pcnEp OworCisJd2FpdF9ldmVudChiZWRhdGEtPmluZmxpZ2h0X3JlcSwKKwkJICAgUkVBRF9PTkNFKGJl ZGF0YS0+cnNwW3JlcV9pZF0ucmVxX2lkKSA9PSByZXFfaWQpOworCisJaWYgKG1hcC0+YWN0aXZl X3NvY2tldCkgeworCQkvKgorCQkgKiBTZXQgaW5fZXJyb3IgYW5kIHdha2UgdXAgaW5mbGlnaHRf Y29ubl9yZXEgdG8gZm9yY2UKKwkJICogcmVjdm1zZyB3YWl0ZXJzIHRvIGV4aXQuCisJCSAqLwor CQltYXAtPmFjdGl2ZS5yaW5nLT5pbl9lcnJvciA9IC1FQkFERjsKKwkJd2FrZV91cF9pbnRlcnJ1 cHRpYmxlKCZtYXAtPmFjdGl2ZS5pbmZsaWdodF9jb25uX3JlcSk7CisKKwkJLyoKKwkJICogV2Fp dCB1bnRpbCB0aGVyZSBhcmUgbm8gbW9yZSB3YWl0ZXJzIG9uIHRoZSBtdXRleGVzLgorCQkgKiBX ZSBrbm93IHRoYXQgbm8gbmV3IHdhaXRlcnMgY2FuIGJlIGFkZGVkIGJlY2F1c2Ugc2tfc2VuZF9o ZWFkCisJCSAqIGlzIHNldCB0byBOVUxMIC0tIHdlIG9ubHkgbmVlZCB0byB3YWl0IGZvciB0aGUg ZXhpc3RpbmcKKwkJICogd2FpdGVycyB0byByZXR1cm4uCisJCSAqLworCQl3aGlsZSAoIW11dGV4 X3RyeWxvY2soJm1hcC0+YWN0aXZlLmluX211dGV4KSB8fAorCQkJICAgIW11dGV4X3RyeWxvY2so Jm1hcC0+YWN0aXZlLm91dF9tdXRleCkpCisJCQljcHVfcmVsYXgoKTsKKworCQlwdmNhbGxzX2Zy b250X2ZyZWVfbWFwKGJlZGF0YSwgbWFwKTsKKwkJa2ZyZWUobWFwKTsKKwl9IGVsc2UgeworCQlz cGluX2xvY2soJmJlZGF0YS0+c29ja2V0X2xvY2spOworCQlpZiAoUkVBRF9PTkNFKG1hcC0+cGFz c2l2ZS5pbmZsaWdodF9yZXFfaWQpICE9CisJCSAgICBQVkNBTExTX0lOVkFMSURfSUQpIHsKKwkJ CXB2Y2FsbHNfZnJvbnRfZnJlZV9tYXAoYmVkYXRhLAorCQkJCQkgICAgICAgbWFwLT5wYXNzaXZl LmFjY2VwdF9tYXApOworCQkJa2ZyZWUobWFwLT5wYXNzaXZlLmFjY2VwdF9tYXApOworCQl9CisJ CWxpc3RfZGVsX2luaXQoJm1hcC0+bGlzdCk7CisJCWtmcmVlKG1hcCk7CisJCXNwaW5fdW5sb2Nr KCZiZWRhdGEtPnNvY2tldF9sb2NrKTsKKwl9CisJV1JJVEVfT05DRShiZWRhdGEtPnJzcFtyZXFf aWRdLnJlcV9pZCwgUFZDQUxMU19JTlZBTElEX0lEKTsKKworCXB2Y2FsbHNfZXhpdCgpOworCXJl dHVybiAwOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IHhlbmJ1c19kZXZpY2VfaWQgcHZjYWxs c19mcm9udF9pZHNbXSA9IHsKIAl7ICJwdmNhbGxzIiB9LAogCXsgIiIgfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy94ZW4vcHZjYWxscy1mcm9udC5oIGIvZHJpdmVycy94ZW4vcHZjYWxscy1mcm9udC5o CmluZGV4IDI1ZTA1YjguLjMzMzI5NzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3B2Y2FsbHMt ZnJvbnQuaAorKysgYi9kcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmgKQEAgLTIzLDUgKzIzLDYg QEAgaW50IHB2Y2FsbHNfZnJvbnRfcmVjdm1zZyhzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogdW5zaWdu ZWQgaW50IHB2Y2FsbHNfZnJvbnRfcG9sbChzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJCQlzdHJ1Y3Qg c29ja2V0ICpzb2NrLAogCQkJCXBvbGxfdGFibGUgKndhaXQpOworaW50IHB2Y2FsbHNfZnJvbnRf cmVsZWFzZShzdHJ1Y3Qgc29ja2V0ICpzb2NrKTsKIAogI2VuZGlmCi0tIAoxLjkuMQoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbAo=