From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Gleixner Subject: [patch V3 03/29] lib/stackdepot: Provide functions which operate on plain storage arrays Date: Thu, 25 Apr 2019 11:44:56 +0200 Message-ID: <20190425094801.414574828@linutronix.de> References: <20190425094453.875139013@linutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: LKML Cc: Mike Snitzer , David Airlie , Catalin Marinas , dri-devel@lists.freedesktop.org, linux-mm@kvack.org, dm-devel@redhat.com, Alexander Potapenko , Christoph Lameter , Miroslav Benes , Christoph Hellwig , Alasdair Kergon , Marek Szyprowski , linux-arch@vger.kernel.org, x86@kernel.org, kasan-dev@googlegroups.com, Johannes Thumshirn , Andrey Ryabinin , Alexey Dobriyan , intel-gfx@lists.freedesktop.org, David Rientjes , Akinobu Mita , Steven Rostedt , Josef Bacik , Mike Rapoport , Andy Lutomirski , Josh Poimboeuf List-Id: intel-gfx@lists.freedesktop.org VGhlIHN0cnVjdCBzdGFja190cmFjZSBpbmRpcmVjdGlvbiBpbiB0aGUgc3RhY2sgZGVwb3QgZnVu Y3Rpb25zIGlzIGEgdHJ1bHkKcG9pbnRsZXNzIGV4Y2VyY2lzZSB3aGljaCByZXF1aXJlcyBob3Jy aWJsZSBjb2RlIGF0IHRoZSBjYWxsc2l0ZXMuCgpQcm92aWRlIGludGVyZmFjZXMgYmFzZWQgb24g cGxhaW4gc3RvcmFnZSBhcnJheXMuCgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgR2xlaXhuZXIgPHRn bHhAbGludXRyb25peC5kZT4KQWNrZWQtYnk6IEFsZXhhbmRlciBQb3RhcGVua28gPGdsaWRlckBn b29nbGUuY29tPgotLS0KVjM6IEZpeCBrZXJuZWwtZG9jCi0tLQogaW5jbHVkZS9saW51eC9zdGFj a2RlcG90LmggfCAgICA0ICsrCiBsaWIvc3RhY2tkZXBvdC5jICAgICAgICAgICB8ICAgNzAgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5n ZWQsIDU1IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQoKLS0tIGEvaW5jbHVkZS9saW51 eC9zdGFja2RlcG90LmgKKysrIGIvaW5jbHVkZS9saW51eC9zdGFja2RlcG90LmgKQEAgLTI2LDcg KzI2LDExIEBAIHR5cGVkZWYgdTMyIGRlcG90X3N0YWNrX2hhbmRsZV90Owogc3RydWN0IHN0YWNr X3RyYWNlOwogCiBkZXBvdF9zdGFja19oYW5kbGVfdCBkZXBvdF9zYXZlX3N0YWNrKHN0cnVjdCBz dGFja190cmFjZSAqdHJhY2UsIGdmcF90IGZsYWdzKTsKK2RlcG90X3N0YWNrX2hhbmRsZV90IHN0 YWNrX2RlcG90X3NhdmUodW5zaWduZWQgbG9uZyAqZW50cmllcywKKwkJCQkgICAgICB1bnNpZ25l ZCBpbnQgbnJfZW50cmllcywgZ2ZwX3QgZ2ZwX2ZsYWdzKTsKIAogdm9pZCBkZXBvdF9mZXRjaF9z dGFjayhkZXBvdF9zdGFja19oYW5kbGVfdCBoYW5kbGUsIHN0cnVjdCBzdGFja190cmFjZSAqdHJh Y2UpOwordW5zaWduZWQgaW50IHN0YWNrX2RlcG90X2ZldGNoKGRlcG90X3N0YWNrX2hhbmRsZV90 IGhhbmRsZSwKKwkJCSAgICAgICB1bnNpZ25lZCBsb25nICoqZW50cmllcyk7CiAKICNlbmRpZgot LS0gYS9saWIvc3RhY2tkZXBvdC5jCisrKyBiL2xpYi9zdGFja2RlcG90LmMKQEAgLTE5NCw0MCAr MTk0LDYwIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHN0YWNrX3JlY29yZCAqZmluZF8KIAlyZXR1 cm4gTlVMTDsKIH0KIAotdm9pZCBkZXBvdF9mZXRjaF9zdGFjayhkZXBvdF9zdGFja19oYW5kbGVf dCBoYW5kbGUsIHN0cnVjdCBzdGFja190cmFjZSAqdHJhY2UpCisvKioKKyAqIHN0YWNrX2RlcG90 X2ZldGNoIC0gRmV0Y2ggc3RhY2sgZW50cmllcyBmcm9tIGEgZGVwb3QKKyAqCisgKiBAaGFuZGxl OgkJU3RhY2sgZGVwb3QgaGFuZGxlIHdoaWNoIHdhcyByZXR1cm5lZCBmcm9tCisgKgkJCXN0YWNr X2RlcG90X3NhdmUoKS4KKyAqIEBlbnRyaWVzOgkJUG9pbnRlciB0byBzdG9yZSB0aGUgZW50cmll cyBhZGRyZXNzCisgKgorICogUmV0dXJuOiBUaGUgbnVtYmVyIG9mIHRyYWNlIGVudHJpZXMgZm9y IHRoaXMgZGVwb3QuCisgKi8KK3Vuc2lnbmVkIGludCBzdGFja19kZXBvdF9mZXRjaChkZXBvdF9z dGFja19oYW5kbGVfdCBoYW5kbGUsCisJCQkgICAgICAgdW5zaWduZWQgbG9uZyAqKmVudHJpZXMp CiB7CiAJdW5pb24gaGFuZGxlX3BhcnRzIHBhcnRzID0geyAuaGFuZGxlID0gaGFuZGxlIH07CiAJ dm9pZCAqc2xhYiA9IHN0YWNrX3NsYWJzW3BhcnRzLnNsYWJpbmRleF07CiAJc2l6ZV90IG9mZnNl dCA9IHBhcnRzLm9mZnNldCA8PCBTVEFDS19BTExPQ19BTElHTjsKIAlzdHJ1Y3Qgc3RhY2tfcmVj b3JkICpzdGFjayA9IHNsYWIgKyBvZmZzZXQ7CiAKLQl0cmFjZS0+bnJfZW50cmllcyA9IHRyYWNl LT5tYXhfZW50cmllcyA9IHN0YWNrLT5zaXplOwotCXRyYWNlLT5lbnRyaWVzID0gc3RhY2stPmVu dHJpZXM7Ci0JdHJhY2UtPnNraXAgPSAwOworCSplbnRyaWVzID0gc3RhY2stPmVudHJpZXM7CisJ cmV0dXJuIHN0YWNrLT5zaXplOworfQorRVhQT1JUX1NZTUJPTF9HUEwoc3RhY2tfZGVwb3RfZmV0 Y2gpOworCit2b2lkIGRlcG90X2ZldGNoX3N0YWNrKGRlcG90X3N0YWNrX2hhbmRsZV90IGhhbmRs ZSwgc3RydWN0IHN0YWNrX3RyYWNlICp0cmFjZSkKK3sKKwl1bnNpZ25lZCBpbnQgbmVudCA9IHN0 YWNrX2RlcG90X2ZldGNoKGhhbmRsZSwgJnRyYWNlLT5lbnRyaWVzKTsKKworCXRyYWNlLT5tYXhf ZW50cmllcyA9IHRyYWNlLT5ucl9lbnRyaWVzID0gbmVudDsKIH0KIEVYUE9SVF9TWU1CT0xfR1BM KGRlcG90X2ZldGNoX3N0YWNrKTsKIAogLyoqCi0gKiBkZXBvdF9zYXZlX3N0YWNrIC0gc2F2ZSBz dGFjayBpbiBhIHN0YWNrIGRlcG90LgotICogQHRyYWNlIC0gdGhlIHN0YWNrdHJhY2UgdG8gc2F2 ZS4KLSAqIEBhbGxvY19mbGFncyAtIGZsYWdzIGZvciBhbGxvY2F0aW5nIGFkZGl0aW9uYWwgbWVt b3J5IGlmIHJlcXVpcmVkLgorICogc3RhY2tfZGVwb3Rfc2F2ZSAtIFNhdmUgYSBzdGFjayB0cmFj ZSBmcm9tIGFuIGFycmF5CisgKgorICogQGVudHJpZXM6CQlQb2ludGVyIHRvIHN0b3JhZ2UgYXJy YXkKKyAqIEBucl9lbnRyaWVzOgkJU2l6ZSBvZiB0aGUgc3RvcmFnZSBhcnJheQorICogQGFsbG9j X2ZsYWdzOglBbGxvY2F0aW9uIGdmcCBmbGFncwogICoKLSAqIFJldHVybnMgdGhlIGhhbmRsZSBv ZiB0aGUgc3RhY2sgc3RydWN0IHN0b3JlZCBpbiBkZXBvdC4KKyAqIFJldHVybjogVGhlIGhhbmRs ZSBvZiB0aGUgc3RhY2sgc3RydWN0IHN0b3JlZCBpbiBkZXBvdAogICovCi1kZXBvdF9zdGFja19o YW5kbGVfdCBkZXBvdF9zYXZlX3N0YWNrKHN0cnVjdCBzdGFja190cmFjZSAqdHJhY2UsCi0JCQkJ ICAgIGdmcF90IGFsbG9jX2ZsYWdzKQorZGVwb3Rfc3RhY2tfaGFuZGxlX3Qgc3RhY2tfZGVwb3Rf c2F2ZSh1bnNpZ25lZCBsb25nICplbnRyaWVzLAorCQkJCSAgICAgIHVuc2lnbmVkIGludCBucl9l bnRyaWVzLAorCQkJCSAgICAgIGdmcF90IGFsbG9jX2ZsYWdzKQogewotCXUzMiBoYXNoOwotCWRl cG90X3N0YWNrX2hhbmRsZV90IHJldHZhbCA9IDA7CiAJc3RydWN0IHN0YWNrX3JlY29yZCAqZm91 bmQgPSBOVUxMLCAqKmJ1Y2tldDsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOworCWRlcG90X3N0YWNr X2hhbmRsZV90IHJldHZhbCA9IDA7CiAJc3RydWN0IHBhZ2UgKnBhZ2UgPSBOVUxMOwogCXZvaWQg KnByZWFsbG9jID0gTlVMTDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXUzMiBoYXNoOwogCi0J aWYgKHVubGlrZWx5KHRyYWNlLT5ucl9lbnRyaWVzID09IDApKQorCWlmICh1bmxpa2VseShucl9l bnRyaWVzID09IDApKQogCQlnb3RvIGZhc3RfZXhpdDsKIAotCWhhc2ggPSBoYXNoX3N0YWNrKHRy YWNlLT5lbnRyaWVzLCB0cmFjZS0+bnJfZW50cmllcyk7CisJaGFzaCA9IGhhc2hfc3RhY2soZW50 cmllcywgbnJfZW50cmllcyk7CiAJYnVja2V0ID0gJnN0YWNrX3RhYmxlW2hhc2ggJiBTVEFDS19I QVNIX01BU0tdOwogCiAJLyoKQEAgLTIzNSw4ICsyNTUsOCBAQCBkZXBvdF9zdGFja19oYW5kbGVf dCBkZXBvdF9zYXZlX3N0YWNrKHN0CiAJICogVGhlIHNtcF9sb2FkX2FjcXVpcmUoKSBoZXJlIHBh aXJzIHdpdGggc21wX3N0b3JlX3JlbGVhc2UoKSB0bwogCSAqIHxidWNrZXR8IGJlbG93LgogCSAq LwotCWZvdW5kID0gZmluZF9zdGFjayhzbXBfbG9hZF9hY3F1aXJlKGJ1Y2tldCksIHRyYWNlLT5l bnRyaWVzLAotCQkJICAgdHJhY2UtPm5yX2VudHJpZXMsIGhhc2gpOworCWZvdW5kID0gZmluZF9z dGFjayhzbXBfbG9hZF9hY3F1aXJlKGJ1Y2tldCksIGVudHJpZXMsCisJCQkgICBucl9lbnRyaWVz LCBoYXNoKTsKIAlpZiAoZm91bmQpCiAJCWdvdG8gZXhpdDsKIApAQCAtMjY0LDEwICsyODQsMTAg QEAgZGVwb3Rfc3RhY2tfaGFuZGxlX3QgZGVwb3Rfc2F2ZV9zdGFjayhzdAogCiAJc3Bpbl9sb2Nr X2lycXNhdmUoJmRlcG90X2xvY2ssIGZsYWdzKTsKIAotCWZvdW5kID0gZmluZF9zdGFjaygqYnVj a2V0LCB0cmFjZS0+ZW50cmllcywgdHJhY2UtPm5yX2VudHJpZXMsIGhhc2gpOworCWZvdW5kID0g ZmluZF9zdGFjaygqYnVja2V0LCBlbnRyaWVzLCBucl9lbnRyaWVzLCBoYXNoKTsKIAlpZiAoIWZv dW5kKSB7CiAJCXN0cnVjdCBzdGFja19yZWNvcmQgKm5ldyA9Ci0JCQlkZXBvdF9hbGxvY19zdGFj ayh0cmFjZS0+ZW50cmllcywgdHJhY2UtPm5yX2VudHJpZXMsCisJCQlkZXBvdF9hbGxvY19zdGFj ayhlbnRyaWVzLCBucl9lbnRyaWVzLAogCQkJCQkgIGhhc2gsICZwcmVhbGxvYywgYWxsb2NfZmxh Z3MpOwogCQlpZiAobmV3KSB7CiAJCQluZXctPm5leHQgPSAqYnVja2V0OwpAQCAtMjk3LDQgKzMx NywxNiBAQCBkZXBvdF9zdGFja19oYW5kbGVfdCBkZXBvdF9zYXZlX3N0YWNrKHN0CiBmYXN0X2V4 aXQ6CiAJcmV0dXJuIHJldHZhbDsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKHN0YWNrX2RlcG90X3Nh dmUpOworCisvKioKKyAqIGRlcG90X3NhdmVfc3RhY2sgLSBzYXZlIHN0YWNrIGluIGEgc3RhY2sg ZGVwb3QuCisgKiBAdHJhY2UgLSB0aGUgc3RhY2t0cmFjZSB0byBzYXZlLgorICogQGFsbG9jX2Zs YWdzIC0gZmxhZ3MgZm9yIGFsbG9jYXRpbmcgYWRkaXRpb25hbCBtZW1vcnkgaWYgcmVxdWlyZWQu CisgKi8KK2RlcG90X3N0YWNrX2hhbmRsZV90IGRlcG90X3NhdmVfc3RhY2soc3RydWN0IHN0YWNr X3RyYWNlICp0cmFjZSwKKwkJCQkgICAgICBnZnBfdCBhbGxvY19mbGFncykKK3sKKwlyZXR1cm4g c3RhY2tfZGVwb3Rfc2F2ZSh0cmFjZS0+ZW50cmllcywgdHJhY2UtPm5yX2VudHJpZXMsIGFsbG9j X2ZsYWdzKTsKK30KIEVYUE9SVF9TWU1CT0xfR1BMKGRlcG90X3NhdmVfc3RhY2spOwoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==