From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v2] dmaengine: pl330: flush before wait, and add dev burst support. From: Frank Mori Hess Message-Id: <1957017.QzKNMJJqD6@bear> Date: Tue, 06 Feb 2018 13:24:38 -0500 To: dmaengine@vger.kernel.org List-ID: UmVzZW5kaW5nIHNhbWUgcGF0Y2ggYXMgYmVmb3JlLCBleGNlcHQgbm90IGNvcnJ1cHRlZCBieSB3 b3JkLXdyYXAgdGhpcwp0aW1lLgoKRG8gRE1BRkxVU0hQIF9iZWZvcmVfIHRoZSBmaXJzdCBETUFX RlAgdG8gaW5zdXJlIGNvbnRyb2xsZXIKYW5kIHBlcmlwaGVyYWwgYXJlIGluIGFncmVlbWVudCBh Ym91dCBkbWEgcmVxdWVzdCBzdGF0ZSBiZWZvcmUgZmlyc3QKdHJhbnNmZXIuICBBZGQgc3VwcG9y dCBmb3IgYnVyc3QgdHJhbnNmZXJzIHRvL2Zyb20gcGVyaXBoZXJhbHMuIEluIHRoZSBuZXcKc2No ZW1lLCB0aGUgY29udHJvbGxlciBkb2VzIGFzIG1hbnkgYnVyc3QgdHJhbnNmZXJzIGFzIGl0IGNh biB0aGVuIHRyYW5zZmVycwp0aGUgcmVtYWluaW5nIGRyZWdzIHdpdGggZWl0aGVyIHNpbmdsZSB0 cmFuc2ZlcnMgZm9yIHBlcmlwaGVyYWxzLCBvciB3aXRoIGEKcmVkdWNlZCBzaXplIGJ1cnN0IGZv ciBtZW1vcnktdG8tbWVtb3J5IHRyYW5zZmVycy4KCkkgdGVzdGVkIGRtYSB0cmFuc2ZlcnMgdG8g cGVyaXBoZXJhbHMgd2l0aCBkZXNpZ253YXJlIHNlcmlhbCBwb3J0Cihkcml2ZXJzL3R0eS9zZXJp YWwvODI1MC84MjUwX2R3LmMpIGFuZCBhIEdQSUIgaW50ZXJmYWNlCihodHRwczovL2dpdGh1Yi5j b20vZm1oZXNzL2ZtaF9ncGliX2NvcmUpLCB3aXRoIGEgNC4xIGtlcm5lbC4KVGhlIHBvcnQgb2Yg bXkgY2hhbmdlcyB0byBIRUFEIGhhcyBvbmx5IGJlZW4gdGVzdGVkIHRvIGNvbXBpbGUuCkknbSB3 aWxsaW5nIHRvIHRyeSB0byB0ZXN0IG9uIG15IGhhcmR3YXJlIHdpdGggYSBIRUFEIGtlcm5lbAph bmQgdHJ5IHVzaW5nIHRoZSBkbWF0ZXN0IG1vZHVsZSB0byB0ZXN0IG1lbW9yeS10by1tZW1vcnkK dHJhbnNmZXJzIGlmIHRoaXMgcGF0Y2ggbWlnaHQgYmUgYWNjZXB0ZWQuCgpTaWduZWQtb2ZmLWJ5 OiBGcmFuayBNb3JpIEhlc3MgPGZtaDZqakBnbWFpbC5jb20+Ci0tLQogZHJpdmVycy9kbWEvcGwz MzAuYyB8IDEzMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgODcgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEvcGwzMzAuYyBiL2RyaXZlcnMvZG1hL3BsMzMwLmMK aW5kZXggZDczMjdmZDVmNDQ1Li41YTNlODBlYzRiMGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1h L3BsMzMwLmMKKysrIGIvZHJpdmVycy9kbWEvcGwzMzAuYwpAQCAtMTA5NCwyNiArMTA5NCwyNyBA QCBzdGF0aWMgaW5saW5lIGludCBfbGRzdF9tZW10b21lbSh1bnNpZ25lZCBkcnlfcnVuLCB1OCBi dWZbXSwKIAlyZXR1cm4gb2ZmOwogfQogCi1zdGF0aWMgaW5saW5lIGludCBfbGRzdF9kZXZ0b21l bShzdHJ1Y3QgcGwzMzBfZG1hYyAqcGwzMzAsIHVuc2lnbmVkIGRyeV9ydW4sCi0JCQkJIHU4IGJ1 ZltdLCBjb25zdCBzdHJ1Y3QgX3hmZXJfc3BlYyAqcHhzLAotCQkJCSBpbnQgY3ljKQorc3RhdGlj IGlubGluZSBpbnQgX2xkc3RfZGV2dG9tZW0oc3RydWN0IHBsMzMwX2RtYWMgKnBsMzMwLCB1bnNp Z25lZCBkcnlfcnVuLCAKKwkJCQl1OCBidWZbXSwgY29uc3Qgc3RydWN0IF94ZmVyX3NwZWMgKnB4 cywgCisJCQkJaW50IGN5YywgZW51bSBwbDMzMF9jb25kIGNvbmQpCiB7CiAJaW50IG9mZiA9IDA7 Ci0JZW51bSBwbDMzMF9jb25kIGNvbmQ7CiAKIAlpZiAocGwzMzAtPnF1aXJrcyAmIFBMMzMwX1FV SVJLX0JST0tFTl9OT19GTFVTSFApCiAJCWNvbmQgPSBCVVJTVDsKLQllbHNlCi0JCWNvbmQgPSBT SU5HTEU7CiAKKwkvKiBkbyBGTFVTSFAgYXQgYmVnaW5uaW5nIHRvIGNsZWFyIGFueSBzdGFsZSBk bWEgcmVxdWVzdHMgYmVmb3JlIGZpcnN0IFdGUC4gKi8KKwlpZiAoIShwbDMzMC0+cXVpcmtzICYg UEwzMzBfUVVJUktfQlJPS0VOX05PX0ZMVVNIUCkpCisJCW9mZiArPSBfZW1pdF9GTFVTSFAoZHJ5 X3J1biwgJmJ1ZltvZmZdLCBweHMtPmRlc2MtPnBlcmkpOwogCXdoaWxlIChjeWMtLSkgewogCQlv ZmYgKz0gX2VtaXRfV0ZQKGRyeV9ydW4sICZidWZbb2ZmXSwgY29uZCwgcHhzLT5kZXNjLT5wZXJp KTsKLQkJb2ZmICs9IF9lbWl0X0xEUChkcnlfcnVuLCAmYnVmW29mZl0sIGNvbmQsIHB4cy0+ZGVz Yy0+cGVyaSk7CisJCWlmKGNvbmQgPT0gQUxXQVlTKSB7CisJCQlvZmYgKz0gX2VtaXRfTERQKGRy eV9ydW4sICZidWZbb2ZmXSwgU0lOR0xFLCBweHMtPmRlc2MtPnBlcmkpOworCQkJb2ZmICs9IF9l bWl0X0xEUChkcnlfcnVuLCAmYnVmW29mZl0sIEJVUlNULCBweHMtPmRlc2MtPnBlcmkpOworCQl9 ZWxzZSB7CisJCQlvZmYgKz0gX2VtaXRfTERQKGRyeV9ydW4sICZidWZbb2ZmXSwgY29uZCwgcHhz LT5kZXNjLT5wZXJpKTsKKwkJfQogCQlvZmYgKz0gX2VtaXRfU1QoZHJ5X3J1biwgJmJ1ZltvZmZd LCBBTFdBWVMpOwotCi0JCWlmICghKHBsMzMwLT5xdWlya3MgJiBQTDMzMF9RVUlSS19CUk9LRU5f Tk9fRkxVU0hQKSkKLQkJCW9mZiArPSBfZW1pdF9GTFVTSFAoZHJ5X3J1biwgJmJ1ZltvZmZdLAot CQkJCQkgICAgcHhzLT5kZXNjLT5wZXJpKTsKIAl9CiAKIAlyZXR1cm4gb2ZmOwpAQCAtMTEyMSwy NCArMTEyMiwyNiBAQCBzdGF0aWMgaW5saW5lIGludCBfbGRzdF9kZXZ0b21lbShzdHJ1Y3QgcGwz MzBfZG1hYyAqcGwzMzAsIHVuc2lnbmVkIGRyeV9ydW4sCiAKIHN0YXRpYyBpbmxpbmUgaW50IF9s ZHN0X21lbXRvZGV2KHN0cnVjdCBwbDMzMF9kbWFjICpwbDMzMCwKIAkJCQkgdW5zaWduZWQgZHJ5 X3J1biwgdTggYnVmW10sCi0JCQkJIGNvbnN0IHN0cnVjdCBfeGZlcl9zcGVjICpweHMsIGludCBj eWMpCisJCQkJIGNvbnN0IHN0cnVjdCBfeGZlcl9zcGVjICpweHMsIGludCBjeWMsIAorCQkJCSBl bnVtIHBsMzMwX2NvbmQgY29uZCkKIHsKIAlpbnQgb2ZmID0gMDsKLQllbnVtIHBsMzMwX2NvbmQg Y29uZDsKIAogCWlmIChwbDMzMC0+cXVpcmtzICYgUEwzMzBfUVVJUktfQlJPS0VOX05PX0ZMVVNI UCkKIAkJY29uZCA9IEJVUlNUOwotCWVsc2UKLQkJY29uZCA9IFNJTkdMRTsKIAorCS8qIGRvIEZM VVNIUCBhdCBiZWdpbm5pbmcgdG8gY2xlYXIgYW55IHN0YWxlIGRtYSByZXF1ZXN0cyBiZWZvcmUg Zmlyc3QgV0ZQLiAqLworCWlmICghKHBsMzMwLT5xdWlya3MgJiBQTDMzMF9RVUlSS19CUk9LRU5f Tk9fRkxVU0hQKSkKKwkJb2ZmICs9IF9lbWl0X0ZMVVNIUChkcnlfcnVuLCAmYnVmW29mZl0sIHB4 cy0+ZGVzYy0+cGVyaSk7CiAJd2hpbGUgKGN5Yy0tKSB7CiAJCW9mZiArPSBfZW1pdF9XRlAoZHJ5 X3J1biwgJmJ1ZltvZmZdLCBjb25kLCBweHMtPmRlc2MtPnBlcmkpOwogCQlvZmYgKz0gX2VtaXRf TEQoZHJ5X3J1biwgJmJ1ZltvZmZdLCBBTFdBWVMpOwotCQlvZmYgKz0gX2VtaXRfU1RQKGRyeV9y dW4sICZidWZbb2ZmXSwgY29uZCwgcHhzLT5kZXNjLT5wZXJpKTsKLQotCQlpZiAoIShwbDMzMC0+ cXVpcmtzICYgUEwzMzBfUVVJUktfQlJPS0VOX05PX0ZMVVNIUCkpCi0JCQlvZmYgKz0gX2VtaXRf RkxVU0hQKGRyeV9ydW4sICZidWZbb2ZmXSwKLQkJCQkJICAgIHB4cy0+ZGVzYy0+cGVyaSk7CisJ CWlmKGNvbmQgPT0gQUxXQVlTKSB7CisJCQlvZmYgKz0gX2VtaXRfU1RQKGRyeV9ydW4sICZidWZb b2ZmXSwgU0lOR0xFLCBweHMtPmRlc2MtPnBlcmkpOworCQkJb2ZmICs9IF9lbWl0X1NUUChkcnlf cnVuLCAmYnVmW29mZl0sIEJVUlNULCBweHMtPmRlc2MtPnBlcmkpOworCQl9ZWxzZSB7CisJCQlv ZmYgKz0gX2VtaXRfU1RQKGRyeV9ydW4sICZidWZbb2ZmXSwgY29uZCwgcHhzLT5kZXNjLT5wZXJp KTsKKwkJfQogCX0KIAogCXJldHVybiBvZmY7CkBAIC0xMTQ4LDEzICsxMTUxLDE0IEBAIHN0YXRp YyBpbnQgX2J1cnN0cyhzdHJ1Y3QgcGwzMzBfZG1hYyAqcGwzMzAsIHVuc2lnbmVkIGRyeV9ydW4s IHU4IGJ1ZltdLAogCQljb25zdCBzdHJ1Y3QgX3hmZXJfc3BlYyAqcHhzLCBpbnQgY3ljKQogewog CWludCBvZmYgPSAwOwotCisJZW51bSBwbDMzMF9jb25kIGNvbmQgPSBCUlNUX0xFTihweHMtPmNj cikgPiAxID8gQlVSU1QgOiBTSU5HTEU7CisJCiAJc3dpdGNoIChweHMtPmRlc2MtPnJxdHlwZSkg ewogCWNhc2UgRE1BX01FTV9UT19ERVY6Ci0JCW9mZiArPSBfbGRzdF9tZW10b2RldihwbDMzMCwg ZHJ5X3J1biwgJmJ1ZltvZmZdLCBweHMsIGN5Yyk7CisJCW9mZiArPSBfbGRzdF9tZW10b2Rldihw bDMzMCwgZHJ5X3J1biwgJmJ1ZltvZmZdLCBweHMsIGN5YywgY29uZCk7CiAJCWJyZWFrOwogCWNh c2UgRE1BX0RFVl9UT19NRU06Ci0JCW9mZiArPSBfbGRzdF9kZXZ0b21lbShwbDMzMCwgZHJ5X3J1 biwgJmJ1ZltvZmZdLCBweHMsIGN5Yyk7CisJCW9mZiArPSBfbGRzdF9kZXZ0b21lbShwbDMzMCwg ZHJ5X3J1biwgJmJ1ZltvZmZdLCBweHMsIGN5YywgY29uZCk7CiAJCWJyZWFrOwogCWNhc2UgRE1B X01FTV9UT19NRU06CiAJCW9mZiArPSBfbGRzdF9tZW10b21lbShkcnlfcnVuLCAmYnVmW29mZl0s IHB4cywgY3ljKTsKQEAgLTExNjcsNiArMTE3MSwzOSBAQCBzdGF0aWMgaW50IF9idXJzdHMoc3Ry dWN0IHBsMzMwX2RtYWMgKnBsMzMwLCB1bnNpZ25lZCBkcnlfcnVuLCB1OCBidWZbXSwKIAlyZXR1 cm4gb2ZmOwogfQogCisvKiB0cmFuc2ZlciBkcmVncyB3aXRoIHNpbmdsZSB0cmFuc2ZlcnMgdG8g cGVyaXBoZXJhbCwgb3IgYSByZWR1Y2VkIHNpemUgYnVyc3QKKyAqIGZvciBtZW0tdG8tbWVtLiAq Lworc3RhdGljIGludCBfZHJlZ3Moc3RydWN0IHBsMzMwX2RtYWMgKnBsMzMwLCB1bnNpZ25lZCBk cnlfcnVuLCB1OCBidWZbXSwKKwkJY29uc3Qgc3RydWN0IF94ZmVyX3NwZWMgKnB4cywgaW50IHRy YW5zZmVyX2xlbmd0aCkKK3sKKwlpbnQgb2ZmID0gMDsKKwlpbnQgZHJlZ3NfY2NyOworCQorCWlm KHRyYW5zZmVyX2xlbmd0aCA9PSAwKSByZXR1cm4gb2ZmOworCQorCXN3aXRjaCAocHhzLT5kZXNj LT5ycXR5cGUpIHsKKwljYXNlIERNQV9NRU1fVE9fREVWOgorCQlvZmYgKz0gX2xkc3RfbWVtdG9k ZXYocGwzMzAsIGRyeV9ydW4sICZidWZbb2ZmXSwgcHhzLCB0cmFuc2Zlcl9sZW5ndGgsIFNJTkdM RSk7CisJCWJyZWFrOworCWNhc2UgRE1BX0RFVl9UT19NRU06CisJCW9mZiArPSBfbGRzdF9kZXZ0 b21lbShwbDMzMCwgZHJ5X3J1biwgJmJ1ZltvZmZdLCBweHMsIHRyYW5zZmVyX2xlbmd0aCwgU0lO R0xFKTsKKwkJYnJlYWs7CisJY2FzZSBETUFfTUVNX1RPX01FTToKKwkJZHJlZ3NfY2NyID0gcHhz LT5jY3I7CisJCWRyZWdzX2NjciAmPSB+KCgweGYgPDwgQ0NfU1JDQlJTVExFTl9TSEZUKSB8ICgw eGYgPDwgQ0NfRFNUQlJTVExFTl9TSEZUKSkgOworCQlkcmVnc19jY3IgfD0gKCgodHJhbnNmZXJf bGVuZ3RoIC0gMSkgJiAweGYpIDw8IENDX1NSQ0JSU1RMRU5fU0hGVCk7CisJCWRyZWdzX2NjciB8 PSAoKCh0cmFuc2Zlcl9sZW5ndGggLSAxKSAmIDB4ZikgPDwgQ0NfRFNUQlJTVExFTl9TSEZUKTsK KwkJb2ZmICs9IF9lbWl0X01PVihkcnlfcnVuLCAmYnVmW29mZl0sIENDUiwgZHJlZ3NfY2NyKTsK KwkJb2ZmICs9IF9sZHN0X21lbXRvbWVtKGRyeV9ydW4sICZidWZbb2ZmXSwgcHhzLCAxKTsKKwkJ YnJlYWs7CisJZGVmYXVsdDoKKwkJb2ZmICs9IDB4NDAwMDAwMDA7IC8qIFNjYXJlIG9mZiB0aGUg Q2xpZW50ICovCisJCWJyZWFrOworCX0KKworCXJldHVybiBvZmY7Cit9CisKIC8qIFJldHVybnMg Ynl0ZXMgY29uc3VtZWQgYW5kIHVwZGF0ZXMgYnVyc3RzICovCiBzdGF0aWMgaW5saW5lIGludCBf bG9vcChzdHJ1Y3QgcGwzMzBfZG1hYyAqcGwzMzAsIHVuc2lnbmVkIGRyeV9ydW4sIHU4IGJ1Zltd LAogCQl1bnNpZ25lZCBsb25nICpidXJzdHMsIGNvbnN0IHN0cnVjdCBfeGZlcl9zcGVjICpweHMp CkBAIC0xMjU2LDYgKzEyOTMsNyBAQCBzdGF0aWMgaW5saW5lIGludCBfc2V0dXBfbG9vcHMoc3Ry dWN0IHBsMzMwX2RtYWMgKnBsMzMwLAogCXN0cnVjdCBwbDMzMF94ZmVyICp4ID0gJnB4cy0+ZGVz Yy0+cHg7CiAJdTMyIGNjciA9IHB4cy0+Y2NyOwogCXVuc2lnbmVkIGxvbmcgYywgYnVyc3RzID0g QllURV9UT19CVVJTVCh4LT5ieXRlcywgY2NyKTsKKwlpbnQgbnVtX2RyZWdzID0gKHgtPmJ5dGVz IC0gQlVSU1RfVE9fQllURShidXJzdHMsIGNjcikpIC8gQlJTVF9TSVpFKGNjcik7CiAJaW50IG9m ZiA9IDA7CiAKIAl3aGlsZSAoYnVyc3RzKSB7CkBAIC0xMjYzLDcgKzEzMDEsOCBAQCBzdGF0aWMg aW5saW5lIGludCBfc2V0dXBfbG9vcHMoc3RydWN0IHBsMzMwX2RtYWMgKnBsMzMwLAogCQlvZmYg Kz0gX2xvb3AocGwzMzAsIGRyeV9ydW4sICZidWZbb2ZmXSwgJmMsIHB4cyk7CiAJCWJ1cnN0cyAt PSBjOwogCX0KLQorCW9mZiArPSBfZHJlZ3MocGwzMzAsIGRyeV9ydW4sICZidWZbb2ZmXSwgcHhz LCBudW1fZHJlZ3MpOworCQogCXJldHVybiBvZmY7CiB9CiAKQEAgLTEyOTQsNyArMTMzMyw2IEBA IHN0YXRpYyBpbnQgX3NldHVwX3JlcShzdHJ1Y3QgcGwzMzBfZG1hYyAqcGwzMzAsIHVuc2lnbmVk IGRyeV9ydW4sCiAJCSAgICAgIHN0cnVjdCBfeGZlcl9zcGVjICpweHMpCiB7CiAJc3RydWN0IF9w bDMzMF9yZXEgKnJlcSA9ICZ0aHJkLT5yZXFbaW5kZXhdOwotCXN0cnVjdCBwbDMzMF94ZmVyICp4 OwogCXU4ICpidWYgPSByZXEtPm1jX2NwdTsKIAlpbnQgb2ZmID0gMDsKIApAQCAtMTMwMywxMSAr MTM0MSw2IEBAIHN0YXRpYyBpbnQgX3NldHVwX3JlcShzdHJ1Y3QgcGwzMzBfZG1hYyAqcGwzMzAs IHVuc2lnbmVkIGRyeV9ydW4sCiAJLyogRE1BTU9WIENDUiwgY2NyICovCiAJb2ZmICs9IF9lbWl0 X01PVihkcnlfcnVuLCAmYnVmW29mZl0sIENDUiwgcHhzLT5jY3IpOwogCi0JeCA9ICZweHMtPmRl c2MtPnB4OwotCS8qIEVycm9yIGlmIHhmZXIgbGVuZ3RoIGlzIG5vdCBhbGlnbmVkIGF0IGJ1cnN0 IHNpemUgKi8KLQlpZiAoeC0+Ynl0ZXMgJSAoQlJTVF9TSVpFKHB4cy0+Y2NyKSAqIEJSU1RfTEVO KHB4cy0+Y2NyKSkpCi0JCXJldHVybiAtRUlOVkFMOwotCiAJb2ZmICs9IF9zZXR1cF94ZmVyKHBs MzMwLCBkcnlfcnVuLCAmYnVmW29mZl0sIHB4cyk7CiAKIAkvKiBETUFTRVYgcGVyaXBoZXJhbC9l dmVudCAqLwpAQCAtMjExNSwxNSArMjE0OCwzMSBAQCBzdGF0aWMgaW50IHBsMzMwX2NvbmZpZyhz dHJ1Y3QgZG1hX2NoYW4gKmNoYW4sCiAJCQlwY2gtPmZpZm9fYWRkciA9IHNsYXZlX2NvbmZpZy0+ ZHN0X2FkZHI7CiAJCWlmIChzbGF2ZV9jb25maWctPmRzdF9hZGRyX3dpZHRoKQogCQkJcGNoLT5i dXJzdF9zeiA9IF9fZmZzKHNsYXZlX2NvbmZpZy0+ZHN0X2FkZHJfd2lkdGgpOwotCQlpZiAoc2xh dmVfY29uZmlnLT5kc3RfbWF4YnVyc3QpCi0JCQlwY2gtPmJ1cnN0X2xlbiA9IHNsYXZlX2NvbmZp Zy0+ZHN0X21heGJ1cnN0OworCQlpZiAocGNoLT5kbWFjLT5xdWlya3MgJiBQTDMzMF9RVUlSS19C Uk9LRU5fTk9fRkxVU0hQKQorCQkJcGNoLT5idXJzdF9sZW4gPSAxOworCQllbHNlIGlmIChzbGF2 ZV9jb25maWctPmRzdF9tYXhidXJzdCkKKwkJeworCQkJaWYoc2xhdmVfY29uZmlnLT5kc3RfbWF4 YnVyc3QgPiBQTDMzMF9NQVhfQlVSU1QpCisJCQkJcGNoLT5idXJzdF9sZW4gPSBQTDMzMF9NQVhf QlVSU1Q7CisJCQllbHNlCisJCQkJcGNoLT5idXJzdF9sZW4gPSBzbGF2ZV9jb25maWctPmRzdF9t YXhidXJzdDsKKwkJfWVsc2UKKwkJCXBjaC0+YnVyc3RfbGVuID0gMTsKIAl9IGVsc2UgaWYgKHNs YXZlX2NvbmZpZy0+ZGlyZWN0aW9uID09IERNQV9ERVZfVE9fTUVNKSB7CiAJCWlmIChzbGF2ZV9j b25maWctPnNyY19hZGRyKQogCQkJcGNoLT5maWZvX2FkZHIgPSBzbGF2ZV9jb25maWctPnNyY19h ZGRyOwogCQlpZiAoc2xhdmVfY29uZmlnLT5zcmNfYWRkcl93aWR0aCkKIAkJCXBjaC0+YnVyc3Rf c3ogPSBfX2ZmcyhzbGF2ZV9jb25maWctPnNyY19hZGRyX3dpZHRoKTsKLQkJaWYgKHNsYXZlX2Nv bmZpZy0+c3JjX21heGJ1cnN0KQotCQkJcGNoLT5idXJzdF9sZW4gPSBzbGF2ZV9jb25maWctPnNy Y19tYXhidXJzdDsKKwkJaWYgKHBjaC0+ZG1hYy0+cXVpcmtzICYgUEwzMzBfUVVJUktfQlJPS0VO X05PX0ZMVVNIUCkKKwkJCXBjaC0+YnVyc3RfbGVuID0gMTsKKwkJZWxzZSBpZiAoc2xhdmVfY29u ZmlnLT5zcmNfbWF4YnVyc3QpCisJCXsKKwkJCWlmKHNsYXZlX2NvbmZpZy0+c3JjX21heGJ1cnN0 ID4gUEwzMzBfTUFYX0JVUlNUKQorCQkJCXBjaC0+YnVyc3RfbGVuID0gUEwzMzBfTUFYX0JVUlNU OworCQkJZWxzZQorCQkJCXBjaC0+YnVyc3RfbGVuID0gc2xhdmVfY29uZmlnLT5zcmNfbWF4YnVy c3Q7CisJCX1lbHNlCisJCQlwY2gtPmJ1cnN0X2xlbiA9IDE7CiAJfQogCiAJcmV0dXJuIDA7CkBA IC0yNTE3LDE0ICsyNTY2LDggQEAgc3RhdGljIGlubGluZSBpbnQgZ2V0X2J1cnN0X2xlbihzdHJ1 Y3QgZG1hX3BsMzMwX2Rlc2MgKmRlc2MsIHNpemVfdCBsZW4pCiAJYnVyc3RfbGVuID4+PSBkZXNj LT5ycWNmZy5icnN0X3NpemU7CiAKIAkvKiBzcmMvZHN0X2J1cnN0X2xlbiBjYW4ndCBiZSBtb3Jl IHRoYW4gMTYgKi8KLQlpZiAoYnVyc3RfbGVuID4gMTYpCi0JCWJ1cnN0X2xlbiA9IDE2OwotCi0J d2hpbGUgKGJ1cnN0X2xlbiA+IDEpIHsKLQkJaWYgKCEobGVuICUgKGJ1cnN0X2xlbiA8PCBkZXNj LT5ycWNmZy5icnN0X3NpemUpKSkKLQkJCWJyZWFrOwotCQlidXJzdF9sZW4tLTsKLQl9CisJaWYg KGJ1cnN0X2xlbiA+IFBMMzMwX01BWF9CVVJTVCkKKwkJYnVyc3RfbGVuID0gUEwzMzBfTUFYX0JV UlNUOwogCiAJcmV0dXJuIGJ1cnN0X2xlbjsKIH0KQEAgLTI1OTYsNyArMjYzOSw3IEBAIHN0YXRp YyBzdHJ1Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKnBsMzMwX3ByZXBfZG1hX2N5Y2xpYygK IAogCQlkZXNjLT5ycXR5cGUgPSBkaXJlY3Rpb247CiAJCWRlc2MtPnJxY2ZnLmJyc3Rfc2l6ZSA9 IHBjaC0+YnVyc3Rfc3o7Ci0JCWRlc2MtPnJxY2ZnLmJyc3RfbGVuID0gMTsKKwkJZGVzYy0+cnFj ZmcuYnJzdF9sZW4gPSBwY2gtPmJ1cnN0X2xlbjsKIAkJZGVzYy0+Ynl0ZXNfcmVxdWVzdGVkID0g cGVyaW9kX2xlbjsKIAkJZmlsbF9weCgmZGVzYy0+cHgsIGRzdCwgc3JjLCBwZXJpb2RfbGVuKTsK IApAQCAtMjc0MSw3ICsyNzg0LDcgQEAgcGwzMzBfcHJlcF9zbGF2ZV9zZyhzdHJ1Y3QgZG1hX2No YW4gKmNoYW4sIHN0cnVjdCBzY2F0dGVybGlzdCAqc2dsLAogCQl9CiAKIAkJZGVzYy0+cnFjZmcu YnJzdF9zaXplID0gcGNoLT5idXJzdF9zejsKLQkJZGVzYy0+cnFjZmcuYnJzdF9sZW4gPSAxOwor CQlkZXNjLT5ycWNmZy5icnN0X2xlbiA9IHBjaC0+YnVyc3RfbGVuOwogCQlkZXNjLT5ycXR5cGUg PSBkaXJlY3Rpb247CiAJCWRlc2MtPmJ5dGVzX3JlcXVlc3RlZCA9IHNnX2RtYV9sZW4oc2cpOwog CX0K