From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v6 06/18] xen/pvcalls: handle commands from the frontend Date: Mon, 3 Jul 2017 14:08:27 -0700 Message-ID: <1499116119-15638-6-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 V2hlbiB0aGUgb3RoZXIgZW5kIG5vdGlmaWVzIHVzIHRoYXQgdGhlcmUgYXJlIGNvbW1hbmRzIHRv IGJlIHJlYWQKKHB2Y2FsbHNfYmFja19ldmVudCksIHdha2UgdXAgdGhlIGJhY2tlbmQgdGhyZWFk IHRvIHBhcnNlIHRoZSBjb21tYW5kLgoKVGhlIGNvbW1hbmQgcmluZyB3b3JrcyBsaWtlIG1vc3Qg b3RoZXIgWGVuIHJpbmdzLCBzbyB1c2UgdGhlIHVzdWFsCnJpbmcgbWFjcm9zIHRvIHJlYWQgYW5k IHdyaXRlIHRvIGl0LiBUaGUgZnVuY3Rpb25zIGltcGxlbWVudGluZyB0aGUKY29tbWFuZHMgYXJl IGVtcHR5IHN0dWJzIGZvciBub3cuCgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIFN0YWJlbGxpbmkg PHN0ZWZhbm9AYXBvcmV0by5jb20+CkNDOiBib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbQpDQzog amdyb3NzQHN1c2UuY29tCi0tLQogZHJpdmVycy94ZW4vcHZjYWxscy1iYWNrLmMgfCAxNDQgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMTI5IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMveGVuL3B2Y2FsbHMtYmFjay5jIGIvZHJpdmVycy94ZW4vcHZjYWxscy1iYWNrLmMKaW5kZXgg ZTRjMmU0Ni4uOWUwMDk3MSAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vcHZjYWxscy1iYWNrLmMK KysrIGIvZHJpdmVycy94ZW4vcHZjYWxscy1iYWNrLmMKQEAgLTQ3LDE2ICs0NywxMzUgQEAgc3Ry dWN0IHB2Y2FsbHNfZmVkYXRhIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIHNvY2tldF9tYXBwaW5nczsK IAlzdHJ1Y3QgcmFkaXhfdHJlZV9yb290IHNvY2tldHBhc3NfbWFwcGluZ3M7CiAJc3RydWN0IHNl bWFwaG9yZSBzb2NrZXRfbG9jazsKLQlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqd3E7Ci0Jc3Ry dWN0IHdvcmtfc3RydWN0IHJlZ2lzdGVyX3dvcms7CiB9OwogCi1zdGF0aWMgdm9pZCBwdmNhbGxz X2JhY2tfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCitzdGF0aWMgaW50IHB2Y2FsbHNf YmFja19zb2NrZXQoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKKwkJc3RydWN0IHhlbl9wdmNh bGxzX3JlcXVlc3QgKnJlcSkKIHsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBwdmNhbGxz X2JhY2tfY29ubmVjdChzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LAorCQkJCXN0cnVjdCB4ZW5f cHZjYWxsc19yZXF1ZXN0ICpyZXEpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcHZj YWxsc19iYWNrX3JlbGVhc2Uoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKKwkJCQlzdHJ1Y3Qg eGVuX3B2Y2FsbHNfcmVxdWVzdCAqcmVxKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50 IHB2Y2FsbHNfYmFja19iaW5kKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYsCisJCQkgICAgIHN0 cnVjdCB4ZW5fcHZjYWxsc19yZXF1ZXN0ICpyZXEpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRp YyBpbnQgcHZjYWxsc19iYWNrX2xpc3RlbihzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LAorCQkJ ICAgICAgIHN0cnVjdCB4ZW5fcHZjYWxsc19yZXF1ZXN0ICpyZXEpCit7CisJcmV0dXJuIDA7Cit9 CisKK3N0YXRpYyBpbnQgcHZjYWxsc19iYWNrX2FjY2VwdChzdHJ1Y3QgeGVuYnVzX2RldmljZSAq ZGV2LAorCQkJICAgICAgIHN0cnVjdCB4ZW5fcHZjYWxsc19yZXF1ZXN0ICpyZXEpCit7CisJcmV0 dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcHZjYWxsc19iYWNrX3BvbGwoc3RydWN0IHhlbmJ1c19k ZXZpY2UgKmRldiwKKwkJCSAgICAgc3RydWN0IHhlbl9wdmNhbGxzX3JlcXVlc3QgKnJlcSkKK3sK KwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBwdmNhbGxzX2JhY2tfaGFuZGxlX2NtZChzdHJ1 Y3QgeGVuYnVzX2RldmljZSAqZGV2LAorCQkJCSAgIHN0cnVjdCB4ZW5fcHZjYWxsc19yZXF1ZXN0 ICpyZXEpCit7CisJaW50IHJldCA9IDA7CisKKwlzd2l0Y2ggKHJlcS0+Y21kKSB7CisJY2FzZSBQ VkNBTExTX1NPQ0tFVDoKKwkJcmV0ID0gcHZjYWxsc19iYWNrX3NvY2tldChkZXYsIHJlcSk7CisJ CWJyZWFrOworCWNhc2UgUFZDQUxMU19DT05ORUNUOgorCQlyZXQgPSBwdmNhbGxzX2JhY2tfY29u bmVjdChkZXYsIHJlcSk7CisJCWJyZWFrOworCWNhc2UgUFZDQUxMU19SRUxFQVNFOgorCQlyZXQg PSBwdmNhbGxzX2JhY2tfcmVsZWFzZShkZXYsIHJlcSk7CisJCWJyZWFrOworCWNhc2UgUFZDQUxM U19CSU5EOgorCQlyZXQgPSBwdmNhbGxzX2JhY2tfYmluZChkZXYsIHJlcSk7CisJCWJyZWFrOwor CWNhc2UgUFZDQUxMU19MSVNURU46CisJCXJldCA9IHB2Y2FsbHNfYmFja19saXN0ZW4oZGV2LCBy ZXEpOworCQlicmVhazsKKwljYXNlIFBWQ0FMTFNfQUNDRVBUOgorCQlyZXQgPSBwdmNhbGxzX2Jh Y2tfYWNjZXB0KGRldiwgcmVxKTsKKwkJYnJlYWs7CisJY2FzZSBQVkNBTExTX1BPTEw6CisJCXJl dCA9IHB2Y2FsbHNfYmFja19wb2xsKGRldiwgcmVxKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwl7 CisJCXN0cnVjdCBwdmNhbGxzX2ZlZGF0YSAqZmVkYXRhOworCQlzdHJ1Y3QgeGVuX3B2Y2FsbHNf cmVzcG9uc2UgKnJzcDsKKworCQlmZWRhdGEgPSBkZXZfZ2V0X2RydmRhdGEoJmRldi0+ZGV2KTsK KwkJcnNwID0gUklOR19HRVRfUkVTUE9OU0UoCisJCQkJJmZlZGF0YS0+cmluZywgZmVkYXRhLT5y aW5nLnJzcF9wcm9kX3B2dCsrKTsKKwkJcnNwLT5yZXFfaWQgPSByZXEtPnJlcV9pZDsKKwkJcnNw LT5jbWQgPSByZXEtPmNtZDsKKwkJcnNwLT5yZXQgPSAtRU5PVFNVUFA7CisJCWJyZWFrOworCX0K Kwl9CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgcHZjYWxsc19iYWNrX3dvcmsoc3Ry dWN0IHB2Y2FsbHNfZmVkYXRhICpmZWRhdGEpCit7CisJaW50IG5vdGlmeSwgbm90aWZ5X2FsbCA9 IDAsIG1vcmUgPSAxOworCXN0cnVjdCB4ZW5fcHZjYWxsc19yZXF1ZXN0IHJlcTsKKwlzdHJ1Y3Qg eGVuYnVzX2RldmljZSAqZGV2ID0gZmVkYXRhLT5kZXY7CisKKwl3aGlsZSAobW9yZSkgeworCQl3 aGlsZSAoUklOR19IQVNfVU5DT05TVU1FRF9SRVFVRVNUUygmZmVkYXRhLT5yaW5nKSkgeworCQkJ UklOR19DT1BZX1JFUVVFU1QoJmZlZGF0YS0+cmluZywKKwkJCQkJICBmZWRhdGEtPnJpbmcucmVx X2NvbnMrKywKKwkJCQkJICAmcmVxKTsKKworCQkJaWYgKCFwdmNhbGxzX2JhY2tfaGFuZGxlX2Nt ZChkZXYsICZyZXEpKSB7CisJCQkJUklOR19QVVNIX1JFU1BPTlNFU19BTkRfQ0hFQ0tfTk9USUZZ KAorCQkJCQkmZmVkYXRhLT5yaW5nLCBub3RpZnkpOworCQkJCW5vdGlmeV9hbGwgKz0gbm90aWZ5 OworCQkJfQorCQl9CisKKwkJaWYgKG5vdGlmeV9hbGwpIHsKKwkJCW5vdGlmeV9yZW1vdGVfdmlh X2lycShmZWRhdGEtPmlycSk7CisJCQlub3RpZnlfYWxsID0gMDsKKwkJfQorCisJCVJJTkdfRklO QUxfQ0hFQ0tfRk9SX1JFUVVFU1RTKCZmZWRhdGEtPnJpbmcsIG1vcmUpOworCX0KIH0KIAogc3Rh dGljIGlycXJldHVybl90IHB2Y2FsbHNfYmFja19ldmVudChpbnQgaXJxLCB2b2lkICpkZXZfaWQp CiB7CisJc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiA9IGRldl9pZDsKKwlzdHJ1Y3QgcHZjYWxs c19mZWRhdGEgKmZlZGF0YSA9IE5VTEw7CisKKwlpZiAoZGV2ID09IE5VTEwpCisJCXJldHVybiBJ UlFfSEFORExFRDsKKworCWZlZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YSgmZGV2LT5kZXYpOworCWlm IChmZWRhdGEgPT0gTlVMTCkKKwkJcmV0dXJuIElSUV9IQU5ETEVEOworCisJcHZjYWxsc19iYWNr X3dvcmsoZmVkYXRhKTsKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CiAKQEAgLTg3LDE4ICsyMDYs MTUgQEAgc3RhdGljIGludCBiYWNrZW5kX2Nvbm5lY3Qoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRl dikKIAkJZ290byBlcnJvcjsKIAl9CiAKLQllcnIgPSBiaW5kX2ludGVyZG9tYWluX2V2dGNobl90 b19pcnFoYW5kbGVyKGRldi0+b3RoZXJlbmRfaWQsIGV2dGNobiwKLQkJCQkJCSAgICBwdmNhbGxz X2JhY2tfZXZlbnQsIDAsCi0JCQkJCQkgICAgInB2Y2FsbHMtYmFja2VuZCIsIGRldik7CisJZXJy ID0gYmluZF9pbnRlcmRvbWFpbl9ldnRjaG5fdG9faXJxKGRldi0+b3RoZXJlbmRfaWQsIGV2dGNo bik7CiAJaWYgKGVyciA8IDApCiAJCWdvdG8gZXJyb3I7CiAJZmVkYXRhLT5pcnEgPSBlcnI7Ci0K LQlmZWRhdGEtPndxID0gYWxsb2Nfd29ya3F1ZXVlKCJwdmNhbGxzX2JhY2tfd3EiLCBXUV9VTkJP VU5ELCAxKTsKLQlpZiAoIWZlZGF0YS0+d3EpIHsKLQkJZXJyID0gLUVOT01FTTsKKwkKKwllcnIg PSByZXF1ZXN0X3RocmVhZGVkX2lycShmZWRhdGEtPmlycSwgTlVMTCwgcHZjYWxsc19iYWNrX2V2 ZW50LAorCQkJCSAgIElSUUZfT05FU0hPVCwgInB2Y2FsbHMtYmFjayIsIGRldik7CisJaWYgKGVy ciA8IDApCiAJCWdvdG8gZXJyb3I7Ci0JfQogCiAJZXJyID0geGVuYnVzX21hcF9yaW5nX3ZhbGxv YyhkZXYsICZyaW5nX3JlZiwgMSwgKHZvaWQqKikmZmVkYXRhLT5zcmluZyk7CiAJaWYgKGVyciA8 IDApCkBAIC0xMDcsNyArMjIzLDYgQEAgc3RhdGljIGludCBiYWNrZW5kX2Nvbm5lY3Qoc3RydWN0 IHhlbmJ1c19kZXZpY2UgKmRldikKIAlCQUNLX1JJTkdfSU5JVCgmZmVkYXRhLT5yaW5nLCBmZWRh dGEtPnNyaW5nLCBYRU5fUEFHRV9TSVpFICogMSk7CiAJZmVkYXRhLT5kZXYgPSBkZXY7CiAKLQlJ TklUX1dPUksoJmZlZGF0YS0+cmVnaXN0ZXJfd29yaywgcHZjYWxsc19iYWNrX3dvcmspOwogCUlO SVRfTElTVF9IRUFEKCZmZWRhdGEtPnNvY2tldF9tYXBwaW5ncyk7CiAJSU5JVF9SQURJWF9UUkVF KCZmZWRhdGEtPnNvY2tldHBhc3NfbWFwcGluZ3MsIEdGUF9LRVJORUwpOwogCXNlbWFfaW5pdCgm ZmVkYXRhLT5zb2NrZXRfbG9jaywgMSk7CkBAIC0xMTYsMTUgKzIzMSwxNCBAQCBzdGF0aWMgaW50 IGJhY2tlbmRfY29ubmVjdChzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2KQogCWRvd24oJnB2Y2Fs bHNfYmFja19nbG9iYWwuZnJvbnRlbmRzX2xvY2spOwogCWxpc3RfYWRkX3RhaWwoJmZlZGF0YS0+ bGlzdCwgJnB2Y2FsbHNfYmFja19nbG9iYWwuZnJvbnRlbmRzKTsKIAl1cCgmcHZjYWxsc19iYWNr X2dsb2JhbC5mcm9udGVuZHNfbG9jayk7Ci0JcXVldWVfd29yayhmZWRhdGEtPndxLCAmZmVkYXRh LT5yZWdpc3Rlcl93b3JrKTsKKworCXB2Y2FsbHNfYmFja193b3JrKGZlZGF0YSk7CiAKIAlyZXR1 cm4gMDsKIAogIGVycm9yOgogCWlmIChmZWRhdGEtPnNyaW5nICE9IE5VTEwpCiAJCXhlbmJ1c191 bm1hcF9yaW5nX3ZmcmVlKGRldiwgZmVkYXRhLT5zcmluZyk7Ci0JaWYgKGZlZGF0YS0+d3EpCi0J CWRlc3Ryb3lfd29ya3F1ZXVlKGZlZGF0YS0+d3EpOwogCXVuYmluZF9mcm9tX2lycWhhbmRsZXIo ZmVkYXRhLT5pcnEsIGRldik7CiAJa2ZyZWUoZmVkYXRhKTsKIAlyZXR1cm4gZXJyOwotLSAKMS45 LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMu eGVuLm9yZy94ZW4tZGV2ZWwK