From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bob Liu Subject: [PATCH] xen-blkfront: save uncompleted reqs in blkfront_resume() Date: Mon, 27 Jun 2016 16:33:24 +0800 Message-ID: <1467016404-7883-1-git-send-email-bob.liu__26978.8384241567$1467016509$gmane$org@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bHRzS-0003Xw-Nk for xen-devel@lists.xenproject.org; Mon, 27 Jun 2016 08:33:58 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: linux-kernel@vger.kernel.org Cc: xen-devel@lists.xenproject.org, Bob Liu , roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org VW5jb21wbGV0ZWQgcmVxcyB1c2VkIHRvIGJlICdzYXZlZCBhbmQgcmVzdWJtaXR0ZWQnIGluIGJs a2Zyb250X3JlY292ZXIoKSBkdXJpbmcKbWlncmF0aW9uLCBidXQgdGhhdCdzIHRvbyBsYXRlciBh ZnRlciBtdWx0aS1xdWV1ZSBpbnRyb2R1Y2VkLgoKQWZ0ZXIgYSBtaWdyYXRlIHRvIGFub3RoZXIg aG9zdCAod2hpY2ggbWF5IG5vdCBoYXZlIG11bHRpcXVldWUgc3VwcG9ydCksIHRoZQpudW1iZXIg b2YgcmluZ3MgKGJsb2NrIGhhcmR3YXJlIHF1ZXVlcykgbWF5IGJlIGNoYW5nZWQgYW5kIHRoZSBy aW5nIGFuZCBzaGFkb3cKc3RydWN0dXJlIHdpbGwgYWxzbyBiZSByZWFsbG9jYXRlZC4KU28gdGhh dCBibGtmcm9udF9yZWNvdmVyKCkgY2FuJ3QgJ3NhdmUgYW5kIHJlc3VibWl0JyB0aGUgcmVhbCB1 bmNvbXBsZXRlZCByZXFzCmJlY2F1c2Ugc2hhZG93IHN0cnVjdHVyZSBoYXMgYmVlbiByZWFsbG9j YXRlZC4KClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBpc3N1ZSBieSBtb3ZpbmcgdGhlICdzYXZlIGFu ZCByZXN1Ym1pdCcgbG9naWMgb3V0IG9mCmJsa2Zyb250X3JlY292ZXIoKSB0byBlYXJsaWVyIHBs YWNlOmJsa2Zyb250X3Jlc3VtZSgpLgoKU2lnbmVkLW9mZi1ieTogQm9iIExpdSA8Ym9iLmxpdUBv cmFjbGUuY29tPgotLS0KIGRyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250LmMgfCA5MSArKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQw IGluc2VydGlvbnMoKyksIDUxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxv Y2sveGVuLWJsa2Zyb250LmMgYi9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtmcm9udC5jCmluZGV4IDJl NmQxZTkuLmZjYzViNGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250LmMK KysrIGIvZHJpdmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYwpAQCAtMjA3LDYgKzIwNyw5IEBAIHN0 cnVjdCBibGtmcm9udF9pbmZvCiAJc3RydWN0IGJsa19tcV90YWdfc2V0IHRhZ19zZXQ7CiAJc3Ry dWN0IGJsa2Zyb250X3JpbmdfaW5mbyAqcmluZm87CiAJdW5zaWduZWQgaW50IG5yX3JpbmdzOwor CS8qIFNhdmUgdW5jb21wbGV0ZSByZXFzIGFuZCBiaW9zIGZvciBtaWdyYXRpb24uICovCisJc3Ry dWN0IGxpc3RfaGVhZCByZXF1ZXN0czsKKwlzdHJ1Y3QgYmlvX2xpc3QgYmlvX2xpc3Q7CiB9Owog CiBzdGF0aWMgdW5zaWduZWQgaW50IG5yX21pbm9yczsKQEAgLTIwMDIsNjkgKzIwMDUsMjIgQEAg c3RhdGljIGludCBibGtpZl9yZWNvdmVyKHN0cnVjdCBibGtmcm9udF9pbmZvICppbmZvKQogewog CXVuc2lnbmVkIGludCBpLCByX2luZGV4OwogCXN0cnVjdCByZXF1ZXN0ICpyZXEsICpuOwotCXN0 cnVjdCBibGtfc2hhZG93ICpjb3B5OwogCWludCByYzsKIAlzdHJ1Y3QgYmlvICpiaW8sICpjbG9u ZWRfYmlvOwotCXN0cnVjdCBiaW9fbGlzdCBiaW9fbGlzdCwgbWVyZ2VfYmlvOwogCXVuc2lnbmVk IGludCBzZWdzLCBvZmZzZXQ7CiAJaW50IHBlbmRpbmcsIHNpemU7CiAJc3RydWN0IHNwbGl0X2Jp byAqc3BsaXRfYmlvOwotCXN0cnVjdCBsaXN0X2hlYWQgcmVxdWVzdHM7CiAKIAlibGtmcm9udF9n YXRoZXJfYmFja2VuZF9mZWF0dXJlcyhpbmZvKTsKIAlzZWdzID0gaW5mby0+bWF4X2luZGlyZWN0 X3NlZ21lbnRzID8gOiBCTEtJRl9NQVhfU0VHTUVOVFNfUEVSX1JFUVVFU1Q7CiAJYmxrX3F1ZXVl X21heF9zZWdtZW50cyhpbmZvLT5ycSwgc2Vncyk7Ci0JYmlvX2xpc3RfaW5pdCgmYmlvX2xpc3Qp OwotCUlOSVRfTElTVF9IRUFEKCZyZXF1ZXN0cyk7CiAKIAlmb3IgKHJfaW5kZXggPSAwOyByX2lu ZGV4IDwgaW5mby0+bnJfcmluZ3M7IHJfaW5kZXgrKykgewotCQlzdHJ1Y3QgYmxrZnJvbnRfcmlu Z19pbmZvICpyaW5mbzsKLQotCQlyaW5mbyA9ICZpbmZvLT5yaW5mb1tyX2luZGV4XTsKLQkJLyog U3RhZ2UgMTogTWFrZSBhIHNhZmUgY29weSBvZiB0aGUgc2hhZG93IHN0YXRlLiAqLwotCQljb3B5 ID0ga21lbWR1cChyaW5mby0+c2hhZG93LCBzaXplb2YocmluZm8tPnNoYWRvdyksCi0JCQkgICAg ICAgR0ZQX05PSU8gfCBfX0dGUF9SRVBFQVQgfCBfX0dGUF9ISUdIKTsKLQkJaWYgKCFjb3B5KQot CQkJcmV0dXJuIC1FTk9NRU07Ci0KLQkJLyogU3RhZ2UgMjogU2V0IHVwIGZyZWUgbGlzdC4gKi8K LQkJbWVtc2V0KCZyaW5mby0+c2hhZG93LCAwLCBzaXplb2YocmluZm8tPnNoYWRvdykpOwotCQlm b3IgKGkgPSAwOyBpIDwgQkxLX1JJTkdfU0laRShpbmZvKTsgaSsrKQotCQkJcmluZm8tPnNoYWRv d1tpXS5yZXEudS5ydy5pZCA9IGkrMTsKLQkJcmluZm8tPnNoYWRvd19mcmVlID0gcmluZm8tPnJp bmcucmVxX3Byb2RfcHZ0OwotCQlyaW5mby0+c2hhZG93W0JMS19SSU5HX1NJWkUoaW5mbyktMV0u cmVxLnUucncuaWQgPSAweDBmZmZmZmZmOworCQlzdHJ1Y3QgYmxrZnJvbnRfcmluZ19pbmZvICpy aW5mbyA9ICZpbmZvLT5yaW5mb1tyX2luZGV4XTsKIAogCQlyYyA9IGJsa2Zyb250X3NldHVwX2lu ZGlyZWN0KHJpbmZvKTsKLQkJaWYgKHJjKSB7Ci0JCQlrZnJlZShjb3B5KTsKKwkJaWYgKHJjKQog CQkJcmV0dXJuIHJjOwotCQl9Ci0KLQkJZm9yIChpID0gMDsgaSA8IEJMS19SSU5HX1NJWkUoaW5m byk7IGkrKykgewotCQkJLyogTm90IGluIHVzZT8gKi8KLQkJCWlmICghY29weVtpXS5yZXF1ZXN0 KQotCQkJCWNvbnRpbnVlOwotCi0JCQkvKgotCQkJICogR2V0IHRoZSBiaW9zIGluIHRoZSByZXF1 ZXN0IHNvIHdlIGNhbiByZS1xdWV1ZSB0aGVtLgotCQkJICovCi0JCQlpZiAoY29weVtpXS5yZXF1 ZXN0LT5jbWRfZmxhZ3MgJgotCQkJICAgIChSRVFfRkxVU0ggfCBSRVFfRlVBIHwgUkVRX0RJU0NB UkQgfCBSRVFfU0VDVVJFKSkgewotCQkJCS8qCi0JCQkJICogRmx1c2ggb3BlcmF0aW9ucyBkb24n dCBjb250YWluIGJpb3MsIHNvCi0JCQkJICogd2UgbmVlZCB0byByZXF1ZXVlIHRoZSB3aG9sZSBy ZXF1ZXN0Ci0JCQkJICovCi0JCQkJbGlzdF9hZGQoJmNvcHlbaV0ucmVxdWVzdC0+cXVldWVsaXN0 LCAmcmVxdWVzdHMpOwotCQkJCWNvbnRpbnVlOwotCQkJfQotCQkJbWVyZ2VfYmlvLmhlYWQgPSBj b3B5W2ldLnJlcXVlc3QtPmJpbzsKLQkJCW1lcmdlX2Jpby50YWlsID0gY29weVtpXS5yZXF1ZXN0 LT5iaW90YWlsOwotCQkJYmlvX2xpc3RfbWVyZ2UoJmJpb19saXN0LCAmbWVyZ2VfYmlvKTsKLQkJ CWNvcHlbaV0ucmVxdWVzdC0+YmlvID0gTlVMTDsKLQkJCWJsa19lbmRfcmVxdWVzdF9hbGwoY29w eVtpXS5yZXF1ZXN0LCAwKTsKLQkJfQotCi0JCWtmcmVlKGNvcHkpOwogCX0KIAl4ZW5idXNfc3dp dGNoX3N0YXRlKGluZm8tPnhiZGV2LCBYZW5idXNTdGF0ZUNvbm5lY3RlZCk7CiAKQEAgLTIwNzks NyArMjAzNSw3IEBAIHN0YXRpYyBpbnQgYmxraWZfcmVjb3ZlcihzdHJ1Y3QgYmxrZnJvbnRfaW5m byAqaW5mbykKIAkJa2lja19wZW5kaW5nX3JlcXVlc3RfcXVldWVzKHJpbmZvKTsKIAl9CiAKLQls aXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocmVxLCBuLCAmcmVxdWVzdHMsIHF1ZXVlbGlzdCkgewor CWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyZXEsIG4sICZpbmZvLT5yZXF1ZXN0cywgcXVldWVs aXN0KSB7CiAJCS8qIFJlcXVldWUgcGVuZGluZyByZXF1ZXN0cyAoZmx1c2ggb3IgZGlzY2FyZCkg Ki8KIAkJbGlzdF9kZWxfaW5pdCgmcmVxLT5xdWV1ZWxpc3QpOwogCQlCVUdfT04ocmVxLT5ucl9w aHlzX3NlZ21lbnRzID4gc2Vncyk7CkBAIC0yMDg3LDcgKzIwNDMsNyBAQCBzdGF0aWMgaW50IGJs a2lmX3JlY292ZXIoc3RydWN0IGJsa2Zyb250X2luZm8gKmluZm8pCiAJfQogCWJsa19tcV9raWNr X3JlcXVldWVfbGlzdChpbmZvLT5ycSk7CiAKLQl3aGlsZSAoKGJpbyA9IGJpb19saXN0X3BvcCgm YmlvX2xpc3QpKSAhPSBOVUxMKSB7CisJd2hpbGUgKChiaW8gPSBiaW9fbGlzdF9wb3AoJmluZm8t PmJpb19saXN0KSkgIT0gTlVMTCkgewogCQkvKiBUcmF2ZXJzZSB0aGUgbGlzdCBvZiBwZW5kaW5n IGJpb3MgYW5kIHJlLXF1ZXVlIHRoZW0gKi8KIAkJaWYgKGJpb19zZWdtZW50cyhiaW8pID4gc2Vn cykgewogCQkJLyoKQEAgLTIxMzMsOSArMjA4OSw0MiBAQCBzdGF0aWMgaW50IGJsa2Zyb250X3Jl c3VtZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBibGtmcm9udF9pbmZv ICppbmZvID0gZGV2X2dldF9kcnZkYXRhKCZkZXYtPmRldik7CiAJaW50IGVyciA9IDA7CisJdW5z aWduZWQgaW50IGksIGo7CiAKIAlkZXZfZGJnKCZkZXYtPmRldiwgImJsa2Zyb250X3Jlc3VtZTog JXNcbiIsIGRldi0+bm9kZW5hbWUpOwogCisJYmlvX2xpc3RfaW5pdCgmaW5mby0+YmlvX2xpc3Qp OworCUlOSVRfTElTVF9IRUFEKCZpbmZvLT5yZXF1ZXN0cyk7CisJZm9yIChpID0gMDsgaSA8IGlu Zm8tPm5yX3JpbmdzOyBpKyspIHsKKwkJc3RydWN0IGJsa2Zyb250X3JpbmdfaW5mbyAqcmluZm8g PSAmaW5mby0+cmluZm9baV07CisJCXN0cnVjdCBiaW9fbGlzdCBtZXJnZV9iaW87CisJCXN0cnVj dCBibGtfc2hhZG93ICpzaGFkb3cgPSByaW5mby0+c2hhZG93OworCisJCWZvciAoaiA9IDA7IGog PCBCTEtfUklOR19TSVpFKGluZm8pOyBqKyspIHsKKwkJCS8qIE5vdCBpbiB1c2U/ICovCisJCQlp ZiAoIXNoYWRvd1tqXS5yZXF1ZXN0KQorCQkJCWNvbnRpbnVlOworCisJCQkvKgorCQkJICogR2V0 IHRoZSBiaW9zIGluIHRoZSByZXF1ZXN0IHNvIHdlIGNhbiByZS1xdWV1ZSB0aGVtLgorCQkJICov CisJCQlpZiAoc2hhZG93W2pdLnJlcXVlc3QtPmNtZF9mbGFncyAmCisJCQkJCShSRVFfRkxVU0gg fCBSRVFfRlVBIHwgUkVRX0RJU0NBUkQgfCBSRVFfU0VDVVJFKSkgeworCQkJCS8qCisJCQkJICog Rmx1c2ggb3BlcmF0aW9ucyBkb24ndCBjb250YWluIGJpb3MsIHNvCisJCQkJICogd2UgbmVlZCB0 byByZXF1ZXVlIHRoZSB3aG9sZSByZXF1ZXN0CisJCQkJICovCisJCQkJbGlzdF9hZGQoJnNoYWRv d1tqXS5yZXF1ZXN0LT5xdWV1ZWxpc3QsICZpbmZvLT5yZXF1ZXN0cyk7CisJCQkJY29udGludWU7 CisJCQl9CisJCQltZXJnZV9iaW8uaGVhZCA9IHNoYWRvd1tqXS5yZXF1ZXN0LT5iaW87CisJCQlt ZXJnZV9iaW8udGFpbCA9IHNoYWRvd1tqXS5yZXF1ZXN0LT5iaW90YWlsOworCQkJYmlvX2xpc3Rf bWVyZ2UoJmluZm8tPmJpb19saXN0LCAmbWVyZ2VfYmlvKTsKKwkJCXNoYWRvd1tqXS5yZXF1ZXN0 LT5iaW8gPSBOVUxMOworCQkJYmxrX21xX2VuZF9yZXF1ZXN0KHNoYWRvd1tqXS5yZXF1ZXN0LCAw KTsKKwkJfQorCX0KKwogCWJsa2lmX2ZyZWUoaW5mbywgaW5mby0+Y29ubmVjdGVkID09IEJMS0lG X1NUQVRFX0NPTk5FQ1RFRCk7CiAKIAllcnIgPSBuZWdvdGlhdGVfbXEoaW5mbyk7Ci0tIAoyLjcu NAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhl bi5vcmcveGVuLWRldmVsCg==