From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Subject: [PATCH 6/6] xen-blkfront: prepare request locally, only then put it on the shared ring Date: Mon, 30 Apr 2018 23:01:50 +0200 Message-ID: <951a221b0e655b3077d1f96ac365194320bc8809.1525122026.git-series.marmarek__5573.66166399351$1525122112$gmane$org@invisiblethingslab.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fDFwy-0007Rr-0d for xen-devel@lists.xenproject.org; Mon, 30 Apr 2018 21:03:08 +0000 In-Reply-To: In-Reply-To: References: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Juergen Gross , Jens Axboe , =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= , stable@vger.kernel.org, open list , "open list:BLOCK LAYER" , Boris Ostrovsky , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org RG8gbm90IHJldXNlIGRhdGEgd2hpY2ggdGhlb3JldGljYWxseSBtaWdodCBiZSBhbHJlYWR5IG1v ZGlmaWVkIGJ5IHRoZQpiYWNrZW5kLiBUaGlzIGlzIG1vc3RseSBhYm91dCBwcml2YXRlIGNvcHkg b2YgdGhlIHJlcXVlc3QKKGluZm8tPnNoYWRvd1tpZF0ucmVxKSAtIG1ha2Ugc3VyZSB0aGUgcmVx dWVzdCBzYXZlZCB0aGVyZSBpcyByZWFsbHkgdGhlCm9uZSBqdXN0IGZpbGxlZC4KClRoaXMgaXMg Y29tcGxlbWVudGFyeSB0byBYU0ExNTUuCgpDQzogc3RhYmxlQHZnZXIua2VybmVsLm9yZwpTaWdu ZWQtb2ZmLWJ5OiBNYXJlayBNYXJjenlrb3dza2ktR8OzcmVja2kgPG1hcm1hcmVrQGludmlzaWJs ZXRoaW5nc2xhYi5jb20+Ci0tLQogZHJpdmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYyB8IDc2ICsr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0NCBp bnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2Nr L3hlbi1ibGtmcm9udC5jIGIvZHJpdmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYwppbmRleCAzOTI2 ODExLi5iMTAwYjU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtmcm9udC5jCisr KyBiL2RyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250LmMKQEAgLTUyNSwxOSArNTI1LDE2IEBAIHN0 YXRpYyBpbnQgYmxraWZfaW9jdGwoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgZm1vZGVfdCBt b2RlLAogCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBibGtpZl9yaW5nX2dldF9yZXF1ZXN0KHN0cnVj dCBibGtmcm9udF9yaW5nX2luZm8gKnJpbmZvLAogCQkJCQkgICAgc3RydWN0IHJlcXVlc3QgKnJl cSwKLQkJCQkJICAgIHN0cnVjdCBibGtpZl9yZXF1ZXN0ICoqcmluZ19yZXEpCisJCQkJCSAgICBz dHJ1Y3QgYmxraWZfcmVxdWVzdCAqcmluZ19yZXEpCiB7CiAJdW5zaWduZWQgbG9uZyBpZDsKIAot CSpyaW5nX3JlcSA9IFJJTkdfR0VUX1JFUVVFU1QoJnJpbmZvLT5yaW5nLCByaW5mby0+cmluZy5y ZXFfcHJvZF9wdnQpOwotCXJpbmZvLT5yaW5nLnJlcV9wcm9kX3B2dCsrOwotCiAJaWQgPSBnZXRf aWRfZnJvbV9mcmVlbGlzdChyaW5mbyk7CiAJcmluZm8tPnNoYWRvd1tpZF0ucmVxdWVzdCA9IHJl cTsKIAlyaW5mby0+c2hhZG93W2lkXS5zdGF0dXMgPSBSRVFfV0FJVElORzsKIAlyaW5mby0+c2hh ZG93W2lkXS5hc3NvY2lhdGVkX2lkID0gTk9fQVNTT0NJQVRFRF9JRDsKIAotCSgqcmluZ19yZXEp LT51LnJ3LmlkID0gaWQ7CisJcmluZ19yZXEtPnUucncuaWQgPSBpZDsKIAogCXJldHVybiBpZDsK IH0KQEAgLTU0NSwyMyArNTQyLDI4IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGJsa2lmX3Jpbmdf Z2V0X3JlcXVlc3Qoc3RydWN0IGJsa2Zyb250X3JpbmdfaW5mbyAqcmluZm8sCiBzdGF0aWMgaW50 IGJsa2lmX3F1ZXVlX2Rpc2NhcmRfcmVxKHN0cnVjdCByZXF1ZXN0ICpyZXEsIHN0cnVjdCBibGtm cm9udF9yaW5nX2luZm8gKnJpbmZvKQogewogCXN0cnVjdCBibGtmcm9udF9pbmZvICppbmZvID0g cmluZm8tPmRldl9pbmZvOwotCXN0cnVjdCBibGtpZl9yZXF1ZXN0ICpyaW5nX3JlcTsKKwlzdHJ1 Y3QgYmxraWZfcmVxdWVzdCByaW5nX3JlcSA9IHsgMCB9OwogCXVuc2lnbmVkIGxvbmcgaWQ7CiAK IAkvKiBGaWxsIG91dCBhIGNvbW11bmljYXRpb25zIHJpbmcgc3RydWN0dXJlLiAqLwogCWlkID0g YmxraWZfcmluZ19nZXRfcmVxdWVzdChyaW5mbywgcmVxLCAmcmluZ19yZXEpOwogCi0JcmluZ19y ZXEtPm9wZXJhdGlvbiA9IEJMS0lGX09QX0RJU0NBUkQ7Ci0JcmluZ19yZXEtPnUuZGlzY2FyZC5u cl9zZWN0b3JzID0gYmxrX3JxX3NlY3RvcnMocmVxKTsKLQlyaW5nX3JlcS0+dS5kaXNjYXJkLmlk ID0gaWQ7Ci0JcmluZ19yZXEtPnUuZGlzY2FyZC5zZWN0b3JfbnVtYmVyID0gKGJsa2lmX3NlY3Rv cl90KWJsa19ycV9wb3MocmVxKTsKKwlyaW5nX3JlcS5vcGVyYXRpb24gPSBCTEtJRl9PUF9ESVND QVJEOworCXJpbmdfcmVxLnUuZGlzY2FyZC5ucl9zZWN0b3JzID0gYmxrX3JxX3NlY3RvcnMocmVx KTsKKwlyaW5nX3JlcS51LmRpc2NhcmQuaWQgPSBpZDsKKwlyaW5nX3JlcS51LmRpc2NhcmQuc2Vj dG9yX251bWJlciA9IChibGtpZl9zZWN0b3JfdClibGtfcnFfcG9zKHJlcSk7CiAJaWYgKHJlcV9v cChyZXEpID09IFJFUV9PUF9TRUNVUkVfRVJBU0UgJiYgaW5mby0+ZmVhdHVyZV9zZWNkaXNjYXJk KQotCQlyaW5nX3JlcS0+dS5kaXNjYXJkLmZsYWcgPSBCTEtJRl9ESVNDQVJEX1NFQ1VSRTsKKwkJ cmluZ19yZXEudS5kaXNjYXJkLmZsYWcgPSBCTEtJRl9ESVNDQVJEX1NFQ1VSRTsKIAllbHNlCi0J CXJpbmdfcmVxLT51LmRpc2NhcmQuZmxhZyA9IDA7CisJCXJpbmdfcmVxLnUuZGlzY2FyZC5mbGFn ID0gMDsKKworCS8qIG1ha2UgdGhlIHJlcXVlc3QgYXZhaWxhYmxlIHRvIHRoZSBiYWNrZW5kICov CisJKlJJTkdfR0VUX1JFUVVFU1QoJnJpbmZvLT5yaW5nLCByaW5mby0+cmluZy5yZXFfcHJvZF9w dnQpID0gcmluZ19yZXE7CisJd21iKCk7CisJcmluZm8tPnJpbmcucmVxX3Byb2RfcHZ0Kys7CiAK IAkvKiBLZWVwIGEgcHJpdmF0ZSBjb3B5IHNvIHdlIGNhbiByZWlzc3VlIHJlcXVlc3RzIHdoZW4g cmVjb3ZlcmluZy4gKi8KLQlyaW5mby0+c2hhZG93W2lkXS5yZXEgPSAqcmluZ19yZXE7CisJcmlu Zm8tPnNoYWRvd1tpZF0ucmVxID0gcmluZ19yZXE7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTY5Myw3 ICs2OTUsNyBAQCBzdGF0aWMgdm9pZCBibGtpZl9zZXR1cF9leHRyYV9yZXEoc3RydWN0IGJsa2lm X3JlcXVlc3QgKmZpcnN0LAogc3RhdGljIGludCBibGtpZl9xdWV1ZV9yd19yZXEoc3RydWN0IHJl cXVlc3QgKnJlcSwgc3RydWN0IGJsa2Zyb250X3JpbmdfaW5mbyAqcmluZm8pCiB7CiAJc3RydWN0 IGJsa2Zyb250X2luZm8gKmluZm8gPSByaW5mby0+ZGV2X2luZm87Ci0Jc3RydWN0IGJsa2lmX3Jl cXVlc3QgKnJpbmdfcmVxLCAqZXh0cmFfcmluZ19yZXEgPSBOVUxMOworCXN0cnVjdCBibGtpZl9y ZXF1ZXN0IHJpbmdfcmVxID0geyAwIH0sIGV4dHJhX3JpbmdfcmVxID0geyAwIH07CiAJdW5zaWdu ZWQgbG9uZyBpZCwgZXh0cmFfaWQgPSBOT19BU1NPQ0lBVEVEX0lEOwogCWJvb2wgcmVxdWlyZV9l eHRyYV9yZXEgPSBmYWxzZTsKIAlpbnQgaTsKQEAgLTc1OCwxNiArNzYwLDE2IEBAIHN0YXRpYyBp bnQgYmxraWZfcXVldWVfcndfcmVxKHN0cnVjdCByZXF1ZXN0ICpyZXEsIHN0cnVjdCBibGtmcm9u dF9yaW5nX2luZm8gKnJpCiAJCSAqIEJMS0lGX09QX1dSSVRFCiAJCSAqLwogCQlCVUdfT04ocmVx X29wKHJlcSkgPT0gUkVRX09QX0ZMVVNIIHx8IHJlcS0+Y21kX2ZsYWdzICYgUkVRX0ZVQSk7Ci0J CXJpbmdfcmVxLT5vcGVyYXRpb24gPSBCTEtJRl9PUF9JTkRJUkVDVDsKLQkJcmluZ19yZXEtPnUu aW5kaXJlY3QuaW5kaXJlY3Rfb3AgPSBycV9kYXRhX2RpcihyZXEpID8KKwkJcmluZ19yZXEub3Bl cmF0aW9uID0gQkxLSUZfT1BfSU5ESVJFQ1Q7CisJCXJpbmdfcmVxLnUuaW5kaXJlY3QuaW5kaXJl Y3Rfb3AgPSBycV9kYXRhX2RpcihyZXEpID8KIAkJCUJMS0lGX09QX1dSSVRFIDogQkxLSUZfT1Bf UkVBRDsKLQkJcmluZ19yZXEtPnUuaW5kaXJlY3Quc2VjdG9yX251bWJlciA9IChibGtpZl9zZWN0 b3JfdClibGtfcnFfcG9zKHJlcSk7Ci0JCXJpbmdfcmVxLT51LmluZGlyZWN0LmhhbmRsZSA9IGlu Zm8tPmhhbmRsZTsKLQkJcmluZ19yZXEtPnUuaW5kaXJlY3QubnJfc2VnbWVudHMgPSBudW1fZ3Jh bnQ7CisJCXJpbmdfcmVxLnUuaW5kaXJlY3Quc2VjdG9yX251bWJlciA9IChibGtpZl9zZWN0b3Jf dClibGtfcnFfcG9zKHJlcSk7CisJCXJpbmdfcmVxLnUuaW5kaXJlY3QuaGFuZGxlID0gaW5mby0+ aGFuZGxlOworCQlyaW5nX3JlcS51LmluZGlyZWN0Lm5yX3NlZ21lbnRzID0gbnVtX2dyYW50Owog CX0gZWxzZSB7Ci0JCXJpbmdfcmVxLT51LnJ3LnNlY3Rvcl9udW1iZXIgPSAoYmxraWZfc2VjdG9y X3QpYmxrX3JxX3BvcyhyZXEpOwotCQlyaW5nX3JlcS0+dS5ydy5oYW5kbGUgPSBpbmZvLT5oYW5k bGU7Ci0JCXJpbmdfcmVxLT5vcGVyYXRpb24gPSBycV9kYXRhX2RpcihyZXEpID8KKwkJcmluZ19y ZXEudS5ydy5zZWN0b3JfbnVtYmVyID0gKGJsa2lmX3NlY3Rvcl90KWJsa19ycV9wb3MocmVxKTsK KwkJcmluZ19yZXEudS5ydy5oYW5kbGUgPSBpbmZvLT5oYW5kbGU7CisJCXJpbmdfcmVxLm9wZXJh dGlvbiA9IHJxX2RhdGFfZGlyKHJlcSkgPwogCQkJQkxLSUZfT1BfV1JJVEUgOiBCTEtJRl9PUF9S RUFEOwogCQlpZiAocmVxX29wKHJlcSkgPT0gUkVRX09QX0ZMVVNIIHx8IHJlcS0+Y21kX2ZsYWdz ICYgUkVRX0ZVQSkgewogCQkJLyoKQEAgLTc3OCwxNSArNzgwLDE1IEBAIHN0YXRpYyBpbnQgYmxr aWZfcXVldWVfcndfcmVxKHN0cnVjdCByZXF1ZXN0ICpyZXEsIHN0cnVjdCBibGtmcm9udF9yaW5n X2luZm8gKnJpCiAJCQkgKiBzaW5jZSBpdCBpcyBndWFyYW50ZWVkIG9yZGVyZWQgV1JUIHByZXZp b3VzIHdyaXRlcy4pCiAJCQkgKi8KIAkJCWlmIChpbmZvLT5mZWF0dXJlX2ZsdXNoICYmIGluZm8t PmZlYXR1cmVfZnVhKQotCQkJCXJpbmdfcmVxLT5vcGVyYXRpb24gPQorCQkJCXJpbmdfcmVxLm9w ZXJhdGlvbiA9CiAJCQkJCUJMS0lGX09QX1dSSVRFX0JBUlJJRVI7CiAJCQllbHNlIGlmIChpbmZv LT5mZWF0dXJlX2ZsdXNoKQotCQkJCXJpbmdfcmVxLT5vcGVyYXRpb24gPQorCQkJCXJpbmdfcmVx Lm9wZXJhdGlvbiA9CiAJCQkJCUJMS0lGX09QX0ZMVVNIX0RJU0tDQUNIRTsKIAkJCWVsc2UKLQkJ CQlyaW5nX3JlcS0+b3BlcmF0aW9uID0gMDsKKwkJCQlyaW5nX3JlcS5vcGVyYXRpb24gPSAwOwog CQl9Ci0JCXJpbmdfcmVxLT51LnJ3Lm5yX3NlZ21lbnRzID0gbnVtX2dyYW50OworCQlyaW5nX3Jl cS51LnJ3Lm5yX3NlZ21lbnRzID0gbnVtX2dyYW50OwogCQlpZiAodW5saWtlbHkocmVxdWlyZV9l eHRyYV9yZXEpKSB7CiAJCQlleHRyYV9pZCA9IGJsa2lmX3JpbmdfZ2V0X3JlcXVlc3QocmluZm8s IHJlcSwKIAkJCQkJCQkgICZleHRyYV9yaW5nX3JlcSk7CkBAIC03OTYsNyArNzk4LDcgQEAgc3Rh dGljIGludCBibGtpZl9xdWV1ZV9yd19yZXEoc3RydWN0IHJlcXVlc3QgKnJlcSwgc3RydWN0IGJs a2Zyb250X3JpbmdfaW5mbyAqcmkKIAkJCSAqLwogCQkJcmluZm8tPnNoYWRvd1tleHRyYV9pZF0u bnVtX3NnID0gMDsKIAotCQkJYmxraWZfc2V0dXBfZXh0cmFfcmVxKHJpbmdfcmVxLCBleHRyYV9y aW5nX3JlcSk7CisJCQlibGtpZl9zZXR1cF9leHRyYV9yZXEoJnJpbmdfcmVxLCAmZXh0cmFfcmlu Z19yZXEpOwogCiAJCQkvKiBMaW5rIHRoZSAyIHJlcXVlc3RzIHRvZ2V0aGVyICovCiAJCQlyaW5m by0+c2hhZG93W2V4dHJhX2lkXS5hc3NvY2lhdGVkX2lkID0gaWQ7CkBAIC04MDQsMTIgKzgwNiwx MiBAQCBzdGF0aWMgaW50IGJsa2lmX3F1ZXVlX3J3X3JlcShzdHJ1Y3QgcmVxdWVzdCAqcmVxLCBz dHJ1Y3QgYmxrZnJvbnRfcmluZ19pbmZvICpyaQogCQl9CiAJfQogCi0Jc2V0dXAucmluZ19yZXEg PSByaW5nX3JlcTsKKwlzZXR1cC5yaW5nX3JlcSA9ICZyaW5nX3JlcTsKIAlzZXR1cC5pZCA9IGlk OwogCiAJc2V0dXAucmVxdWlyZV9leHRyYV9yZXEgPSByZXF1aXJlX2V4dHJhX3JlcTsKIAlpZiAo dW5saWtlbHkocmVxdWlyZV9leHRyYV9yZXEpKQotCQlzZXR1cC5leHRyYV9yaW5nX3JlcSA9IGV4 dHJhX3JpbmdfcmVxOworCQlzZXR1cC5leHRyYV9yaW5nX3JlcSA9ICZleHRyYV9yaW5nX3JlcTsK IAogCWZvcl9lYWNoX3NnKHJpbmZvLT5zaGFkb3dbaWRdLnNnLCBzZywgbnVtX3NnLCBpKSB7CiAJ CUJVR19PTihzZy0+b2Zmc2V0ICsgc2ctPmxlbmd0aCA+IFBBR0VfU0laRSk7CkBAIC04MzEsMTAg KzgzMywyMCBAQCBzdGF0aWMgaW50IGJsa2lmX3F1ZXVlX3J3X3JlcShzdHJ1Y3QgcmVxdWVzdCAq cmVxLCBzdHJ1Y3QgYmxrZnJvbnRfcmluZ19pbmZvICpyaQogCWlmIChzZXR1cC5zZWdtZW50cykK IAkJa3VubWFwX2F0b21pYyhzZXR1cC5zZWdtZW50cyk7CiAKKwkvKiBtYWtlIHRoZSByZXF1ZXN0 IGF2YWlsYWJsZSB0byB0aGUgYmFja2VuZCAqLworCSpSSU5HX0dFVF9SRVFVRVNUKCZyaW5mby0+ cmluZywgcmluZm8tPnJpbmcucmVxX3Byb2RfcHZ0KSA9IHJpbmdfcmVxOworCXdtYigpOworCXJp bmZvLT5yaW5nLnJlcV9wcm9kX3B2dCsrOwogCS8qIEtlZXAgYSBwcml2YXRlIGNvcHkgc28gd2Ug Y2FuIHJlaXNzdWUgcmVxdWVzdHMgd2hlbiByZWNvdmVyaW5nLiAqLwotCXJpbmZvLT5zaGFkb3db aWRdLnJlcSA9ICpyaW5nX3JlcTsKLQlpZiAodW5saWtlbHkocmVxdWlyZV9leHRyYV9yZXEpKQot CQlyaW5mby0+c2hhZG93W2V4dHJhX2lkXS5yZXEgPSAqZXh0cmFfcmluZ19yZXE7CisJcmluZm8t PnNoYWRvd1tpZF0ucmVxID0gcmluZ19yZXE7CisKKwlpZiAodW5saWtlbHkocmVxdWlyZV9leHRy YV9yZXEpKSB7CisJCSpSSU5HX0dFVF9SRVFVRVNUKCZyaW5mby0+cmluZywgcmluZm8tPnJpbmcu cmVxX3Byb2RfcHZ0KSA9IGV4dHJhX3JpbmdfcmVxOworCQl3bWIoKTsKKwkJcmluZm8tPnJpbmcu cmVxX3Byb2RfcHZ0Kys7CisJCS8qIEtlZXAgYSBwcml2YXRlIGNvcHkgc28gd2UgY2FuIHJlaXNz dWUgcmVxdWVzdHMgd2hlbiByZWNvdmVyaW5nLiAqLworCQlyaW5mby0+c2hhZG93W2V4dHJhX2lk XS5yZXEgPSBleHRyYV9yaW5nX3JlcTsKKwl9CiAKIAlpZiAobmV3X3BlcnNpc3RlbnRfZ250cykK IAkJZ250dGFiX2ZyZWVfZ3JhbnRfcmVmZXJlbmNlcyhzZXR1cC5ncmVmX2hlYWQpOwotLSAKZ2l0 LXNlcmllcyAwLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v cmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZl bA==