From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v2 05/13] xen/pvcalls: implement bind command Date: Tue, 25 Jul 2017 14:22:02 -0700 Message-ID: <1501017730-12797-5-git-send-email-sstabellini@kernel.org> References: <1501017730-12797-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: <1501017730-12797-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 U2VuZCBQVkNBTExTX0JJTkQgdG8gdGhlIGJhY2tlbmQuIEludHJvZHVjZSBhIG5ldyBzdHJ1Y3R1 cmUsIHBhcnQgb2YKc3RydWN0IHNvY2tfbWFwcGluZywgdG8gc3RvcmUgaW5mb3JtYXRpb24gc3Bl Y2lmaWMgdG8gcGFzc2l2ZSBzb2NrZXRzLgoKSW50cm9kdWNlIGEgc3RhdHVzIGZpZWxkIHRvIGtl ZXAgdHJhY2sgb2YgdGhlIHN0YXR1cyBvZiB0aGUgcGFzc2l2ZQpzb2NrZXQuCgpJbnRyb2R1Y2Ug YSB3YWl0cXVldWUgZm9yIHRoZSAiYWNjZXB0IiBjb21tYW5kIChzZWUgdGhlIGFjY2VwdCBjb21t YW5kCmltcGxlbWVudGF0aW9uKTogaXQgaXMgdXNlZCB0byBhbGxvdyBvbmx5IG9uZSBvdXRzdGFu ZGluZyBhY2NlcHQKY29tbWFuZCBhdCBhbnkgZ2l2ZW4gdGltZSBhbmQgdG8gaW1wbGVtZW50IHBv bGxpbmcgb24gdGhlIHBhc3NpdmUKc29ja2V0LiBJbnRyb2R1Y2UgYSBmbGFncyBmaWVsZCB0byBr ZWVwIHRyYWNrIG9mIGluLWZsaWdodCBhY2NlcHQgYW5kCnBvbGwgY29tbWFuZHMuCgpzb2NrLT5z ay0+c2tfc2VuZF9oZWFkIGlzIG5vdCB1c2VkIGZvciBpcCBzb2NrZXRzOiByZXVzZSB0aGUgZmll bGQgdG8Kc3RvcmUgYSBwb2ludGVyIHRvIHRoZSBzdHJ1Y3Qgc29ja19tYXBwaW5nIGNvcnJlc3Bv bmRpbmcgdG8gdGhlIHNvY2tldC4KCkNvbnZlcnQgdGhlIHN0cnVjdCBzb2NrZXQgcG9pbnRlciBp bnRvIGFuIHVpbnQ2NF90IGFuZCB1c2UgaXQgYXMgaWQgZm9yCnRoZSBzb2NrZXQgdG8gcGFzcyB0 byB0aGUgYmFja2VuZC4KClNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFu b0BhcG9yZXRvLmNvbT4KQ0M6IGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tCkNDOiBqZ3Jvc3NA c3VzZS5jb20KLS0tCiBkcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmMgfCA3MyArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMveGVuL3B2Y2FsbHMt ZnJvbnQuaCB8ICAzICsrCiAyIGZpbGVzIGNoYW5nZWQsIDc2IGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9kcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmMgYi9kcml2ZXJzL3hlbi9wdmNhbGxz LWZyb250LmMKaW5kZXggZDBmNWY0Mi4uYWYyY2UyMCAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4v cHZjYWxscy1mcm9udC5jCisrKyBiL2RyaXZlcnMveGVuL3B2Y2FsbHMtZnJvbnQuYwpAQCAtNTks NiArNTksMjMgQEAgc3RydWN0IHNvY2tfbWFwcGluZyB7CiAKIAkJCXdhaXRfcXVldWVfaGVhZF90 IGluZmxpZ2h0X2Nvbm5fcmVxOwogCQl9IGFjdGl2ZTsKKwkJc3RydWN0IHsKKwkJLyogU29ja2V0 IHN0YXR1cyAqLworI2RlZmluZSBQVkNBTExTX1NUQVRVU19VTklOSVRBTElaRUQgIDAKKyNkZWZp bmUgUFZDQUxMU19TVEFUVVNfQklORCAgICAgICAgICAxCisjZGVmaW5lIFBWQ0FMTFNfU1RBVFVT X0xJU1RFTiAgICAgICAgMgorCQkJdWludDhfdCBzdGF0dXM7CisJCS8qCisJCSAqIEludGVybmFs IHN0YXRlLW1hY2hpbmUgZmxhZ3MuCisJCSAqIE9ubHkgb25lIGFjY2VwdCBvcGVyYXRpb24gY2Fu IGJlIGluZmxpZ2h0IGZvciBhIHNvY2tldC4KKwkJICogT25seSBvbmUgcG9sbCBvcGVyYXRpb24g Y2FuIGJlIGluZmxpZ2h0IGZvciBhIGdpdmVuIHNvY2tldC4KKwkJICovCisjZGVmaW5lIFBWQ0FM TFNfRkxBR19BQ0NFUFRfSU5GTElHSFQgMAorI2RlZmluZSBQVkNBTExTX0ZMQUdfUE9MTF9JTkZM SUdIVCAgIDEKKyNkZWZpbmUgUFZDQUxMU19GTEFHX1BPTExfUkVUICAgICAgICAyCisJCQl1aW50 OF90IGZsYWdzOworCQkJd2FpdF9xdWV1ZV9oZWFkX3QgaW5mbGlnaHRfYWNjZXB0X3JlcTsKKwkJ fSBwYXNzaXZlOwogCX07CiB9OwogCkBAIC0yOTIsNiArMzA5LDYyIEBAIGludCBwdmNhbGxzX2Zy b250X2Nvbm5lY3Qoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyICphZGRyLAog CXJldHVybiByZXQ7CiB9CiAKK2ludCBwdmNhbGxzX2Zyb250X2JpbmQoc3RydWN0IHNvY2tldCAq c29jaywgc3RydWN0IHNvY2thZGRyICphZGRyLCBpbnQgYWRkcl9sZW4pCit7CisJc3RydWN0IHB2 Y2FsbHNfYmVkYXRhICpiZWRhdGE7CisJc3RydWN0IHNvY2tfbWFwcGluZyAqbWFwID0gTlVMTDsK KwlzdHJ1Y3QgeGVuX3B2Y2FsbHNfcmVxdWVzdCAqcmVxOworCWludCBub3RpZnksIHJlcV9pZCwg cmV0OworCisJaWYgKCFwdmNhbGxzX2Zyb250X2RldikKKwkJcmV0dXJuIC1FTk9UQ09OTjsKKwlp ZiAoYWRkci0+c2FfZmFtaWx5ICE9IEFGX0lORVQgfHwgc29jay0+dHlwZSAhPSBTT0NLX1NUUkVB TSkKKwkJcmV0dXJuIC1FTk9UU1VQUDsKKwliZWRhdGEgPSBkZXZfZ2V0X2RydmRhdGEoJnB2Y2Fs bHNfZnJvbnRfZGV2LT5kZXYpOworCisJbWFwID0ga3phbGxvYyhzaXplb2YoKm1hcCksIEdGUF9L RVJORUwpOworCWlmIChtYXAgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlzcGluX2xv Y2soJmJlZGF0YS0+cHZjYWxsc3NfbG9jayk7CisJcmVxX2lkID0gYmVkYXRhLT5yaW5nLnJlcV9w cm9kX3B2dCAmIChSSU5HX1NJWkUoJmJlZGF0YS0+cmluZykgLSAxKTsKKwlpZiAoUklOR19GVUxM KCZiZWRhdGEtPnJpbmcpIHx8CisJICAgIFJFQURfT05DRShiZWRhdGEtPnJzcFtyZXFfaWRdLnJl cV9pZCkgIT0gUFZDQUxMU19JTlZBTElEX0lEKSB7CisJCWtmcmVlKG1hcCk7CisJCXNwaW5fdW5s b2NrKCZiZWRhdGEtPnB2Y2FsbHNzX2xvY2spOworCQlyZXR1cm4gLUVBR0FJTjsKKwl9CisJcmVx ID0gUklOR19HRVRfUkVRVUVTVCgmYmVkYXRhLT5yaW5nLCByZXFfaWQpOworCXJlcS0+cmVxX2lk ID0gcmVxX2lkOworCW1hcC0+c29jayA9IHNvY2s7CisJcmVxLT5jbWQgPSBQVkNBTExTX0JJTkQ7 CisJcmVxLT51LmJpbmQuaWQgPSAodWludDY0X3QpIHNvY2s7CisJbWVtY3B5KHJlcS0+dS5iaW5k LmFkZHIsIGFkZHIsIHNpemVvZigqYWRkcikpOworCXJlcS0+dS5iaW5kLmxlbiA9IGFkZHJfbGVu OworCisJaW5pdF93YWl0cXVldWVfaGVhZCgmbWFwLT5wYXNzaXZlLmluZmxpZ2h0X2FjY2VwdF9y ZXEpOworCisJbGlzdF9hZGRfdGFpbCgmbWFwLT5saXN0LCAmYmVkYXRhLT5zb2NrZXRwYXNzX21h cHBpbmdzKTsKKwlXUklURV9PTkNFKHNvY2stPnNrLT5za19zZW5kX2hlYWQsICh2b2lkICopbWFw KTsKKwltYXAtPmFjdGl2ZV9zb2NrZXQgPSBmYWxzZTsKKworCWJlZGF0YS0+cmluZy5yZXFfcHJv ZF9wdnQrKzsKKwlSSU5HX1BVU0hfUkVRVUVTVFNfQU5EX0NIRUNLX05PVElGWSgmYmVkYXRhLT5y aW5nLCBub3RpZnkpOworCXNwaW5fdW5sb2NrKCZiZWRhdGEtPnB2Y2FsbHNzX2xvY2spOworCWlm IChub3RpZnkpCisJCW5vdGlmeV9yZW1vdGVfdmlhX2lycShiZWRhdGEtPmlycSk7CisKKwl3YWl0 X2V2ZW50KGJlZGF0YS0+aW5mbGlnaHRfcmVxLAorCQkgICBSRUFEX09OQ0UoYmVkYXRhLT5yc3Bb cmVxX2lkXS5yZXFfaWQpID09IHJlcV9pZCk7CisKKwltYXAtPnBhc3NpdmUuc3RhdHVzID0gUFZD QUxMU19TVEFUVVNfQklORDsKKwlyZXQgPSBiZWRhdGEtPnJzcFtyZXFfaWRdLnJldDsKKwkvKiBy ZWFkIHJldCwgdGhlbiBzZXQgdGhpcyByc3Agc2xvdCB0byBiZSByZXVzZWQgKi8KKwlzbXBfbWIo KTsKKwlXUklURV9PTkNFKGJlZGF0YS0+cnNwW3JlcV9pZF0ucmVxX2lkLCBQVkNBTExTX0lOVkFM SURfSUQpOworCXJldHVybiAwOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IHhlbmJ1c19kZXZp Y2VfaWQgcHZjYWxsc19mcm9udF9pZHNbXSA9IHsKIAl7ICJwdmNhbGxzIiB9LAogCXsgIiIgfQpk aWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vcHZjYWxscy1mcm9udC5oIGIvZHJpdmVycy94ZW4vcHZj YWxscy1mcm9udC5oCmluZGV4IDYzYjA0MTcuLjhiMGEyNzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv eGVuL3B2Y2FsbHMtZnJvbnQuaAorKysgYi9kcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmgKQEAg LTYsNSArNiw4IEBACiBpbnQgcHZjYWxsc19mcm9udF9zb2NrZXQoc3RydWN0IHNvY2tldCAqc29j ayk7CiBpbnQgcHZjYWxsc19mcm9udF9jb25uZWN0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVj dCBzb2NrYWRkciAqYWRkciwKIAkJCSAgaW50IGFkZHJfbGVuLCBpbnQgZmxhZ3MpOworaW50IHB2 Y2FsbHNfZnJvbnRfYmluZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLAorCQkgICAgICAgc3RydWN0IHNv Y2thZGRyICphZGRyLAorCQkgICAgICAgaW50IGFkZHJfbGVuKTsKIAogI2VuZGlmCi0tIAoxLjku MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=