[PATCH 09/15] lightnvm: implement get log report chunk helpers
From: Javier González <hidden>
Date: 2018-02-28 17:09:49
Also in:
linux-nvme, lkml
Subsystem:
nvm express driver, the rest · Maintainers:
Keith Busch, Jens Axboe, Christoph Hellwig, Sagi Grimberg, Linus Torvalds
VGhlIDIuMCBzcGVjIHByb3ZpZGVzIGEgcmVwb3J0IGNodW5rIGxvZyBwYWdlIHRoYXQgY2FuIGJl IHJldHJpZXZlZAp1c2luZyB0aGUgc3RhbmdhcmQgbnZtZSBnZXQgbG9nIHBhZ2UuIFRoaXMgcmVw bGFjZXMgdGhlIGRlZGljYXRlZApnZXQvcHV0IGJhZCBibG9jayB0YWJsZSBpbiAxLjIuCgpUaGlz IHBhdGNoIGltcGxlbWVudHMgdGhlIGhlbHBlciBmdW5jdGlvbnMgdG8gYWxsb3cgdGFyZ2V0cyBy ZXRyaWV2ZSB0aGUKY2h1bmsgbWV0YWRhdGEgdXNpbmcgZ2V0IGxvZyBwYWdlLiBJdCBtYWtlcyBu dm1lX2dldF9sb2dfZXh0IGF2YWlsYWJsZQpvdXRzaWRlIG9mIG52bWUgY29yZSBzbyB0aGF0IHdl IGNhbiB1c2UgaXQgZm9ybSBsaWdodG52bS4KClNpZ25lZC1vZmYtYnk6IEphdmllciBHb256w6Fs ZXogPGphdmllckBjbmV4bGFicy5jb20+Ci0tLQogZHJpdmVycy9saWdodG52bS9jb3JlLmMgICAg ICB8IDExICsrKysrKysKIGRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYyAgICAgfCAgNiArKy0tCiBk cml2ZXJzL252bWUvaG9zdC9saWdodG52bS5jIHwgNzQgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvbnZtZS9ob3N0L252bWUuaCAgICAgfCAgMyAr KwogaW5jbHVkZS9saW51eC9saWdodG52bS5oICAgICB8IDI0ICsrKysrKysrKysrKysrCiA1IGZp bGVzIGNoYW5nZWQsIDExNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbGlnaHRudm0vY29yZS5jIGIvZHJpdmVycy9saWdodG52bS9jb3JlLmMKaW5k ZXggZWQzM2UwYjExNzg4Li40MTQxODcxZjQ2MGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbGlnaHRu dm0vY29yZS5jCisrKyBiL2RyaXZlcnMvbGlnaHRudm0vY29yZS5jCkBAIC03MTIsNiArNzEyLDE3 IEBAIHN0YXRpYyB2b2lkIG52bV9mcmVlX3JxZF9wcGFsaXN0KHN0cnVjdCBudm1fdGd0X2RldiAq dGd0X2RldiwKIAludm1fZGV2X2RtYV9mcmVlKHRndF9kZXYtPnBhcmVudCwgcnFkLT5wcGFfbGlz dCwgcnFkLT5kbWFfcHBhX2xpc3QpOwogfQogCitpbnQgbnZtX2dldF9jaHVua19tZXRhKHN0cnVj dCBudm1fdGd0X2RldiAqdGd0X2Rldiwgc3RydWN0IG52bV9jaGtfbWV0YSAqbWV0YSwKKwkJc3Ry dWN0IHBwYV9hZGRyIHBwYSwgaW50IG5jaGtzKQoreworCXN0cnVjdCBudm1fZGV2ICpkZXYgPSB0 Z3RfZGV2LT5wYXJlbnQ7CisKKwludm1fcHBhX3RndF90b19kZXYodGd0X2RldiwgJnBwYSwgMSk7 CisKKwlyZXR1cm4gZGV2LT5vcHMtPmdldF9jaGtfbWV0YSh0Z3RfZGV2LT5wYXJlbnQsIG1ldGEs CisJCQkJCQkoc2VjdG9yX3QpcHBhLnBwYSwgbmNoa3MpOworfQorRVhQT1JUX1NZTUJPTChudm1f Z2V0X2NodW5rX21ldGEpOwogCiBpbnQgbnZtX3NldF90Z3RfYmJfdGJsKHN0cnVjdCBudm1fdGd0 X2RldiAqdGd0X2Rldiwgc3RydWN0IHBwYV9hZGRyICpwcGFzLAogCQkgICAgICAgaW50IG5yX3Bw YXMsIGludCB0eXBlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lL2hvc3QvY29yZS5jIGIvZHJp dmVycy9udm1lL2hvc3QvY29yZS5jCmluZGV4IDJlOWU5Zjk3M2E3NS4uYWY2NDJjZTZiYTY5IDEw MDY0NAotLS0gYS9kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMKKysrIGIvZHJpdmVycy9udm1lL2hv c3QvY29yZS5jCkBAIC0yMTI3LDkgKzIxMjcsOSBAQCBzdGF0aWMgaW50IG52bWVfaW5pdF9zdWJz eXN0ZW0oc3RydWN0IG52bWVfY3RybCAqY3RybCwgc3RydWN0IG52bWVfaWRfY3RybCAqaWQpCiAJ cmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBudm1lX2dldF9sb2dfZXh0KHN0cnVjdCBudm1l X2N0cmwgKmN0cmwsIHN0cnVjdCBudm1lX25zICpucywKLQkJCSAgICB1OCBsb2dfcGFnZSwgdm9p ZCAqbG9nLAotCQkJICAgIHNpemVfdCBzaXplLCBzaXplX3Qgb2Zmc2V0KQoraW50IG52bWVfZ2V0 X2xvZ19leHQoc3RydWN0IG52bWVfY3RybCAqY3RybCwgc3RydWN0IG52bWVfbnMgKm5zLAorCQkg ICAgIHU4IGxvZ19wYWdlLCB2b2lkICpsb2csCisJCSAgICAgc2l6ZV90IHNpemUsIHNpemVfdCBv ZmZzZXQpCiB7CiAJc3RydWN0IG52bWVfY29tbWFuZCBjID0geyB9OwogCXVuc2lnbmVkIGxvbmcg ZHdsZW4gPSBzaXplIC8gNCAtIDE7CmRpZmYgLS1naXQgYS9kcml2ZXJzL252bWUvaG9zdC9saWdo dG52bS5jIGIvZHJpdmVycy9udm1lL2hvc3QvbGlnaHRudm0uYwppbmRleCBmNzEzNTY1OWY5MTgu LmExNzk2MjQxMDQwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9udm1lL2hvc3QvbGlnaHRudm0uYwor KysgYi9kcml2ZXJzL252bWUvaG9zdC9saWdodG52bS5jCkBAIC0zNSw2ICszNSwxMCBAQCBlbnVt IG52bWVfbnZtX2FkbWluX29wY29kZSB7CiAJbnZtZV9udm1fYWRtaW5fc2V0X2JiX3RibAk9IDB4 ZjEsCiB9OwogCitlbnVtIG52bWVfbnZtX2xvZ19wYWdlIHsKKwlOVk1FX05WTV9MT0dfUkVQT1JU X0NIVU5LCT0gMHhjYSwKK307CisKIHN0cnVjdCBudm1lX252bV9waF9ydyB7CiAJX191OAkJCW9w Y29kZTsKIAlfX3U4CQkJZmxhZ3M7CkBAIC0yMzYsNiArMjQwLDE2IEBAIHN0cnVjdCBudm1lX252 bV9pZDIwIHsKIAlfX3U4CQkJdnNbMTAyNF07CiB9OwogCitzdHJ1Y3QgbnZtZV9udm1fY2hrX21l dGEgeworCV9fdTgJc3RhdGU7CisJX191OAl0eXBlOworCV9fdTgJd2k7CisJX191OAlyc3ZkWzVd OworCV9fbGU2NAlzbGJhOworCV9fbGU2NAljbmxiOworCV9fbGU2NAl3cDsKK307CisKIC8qCiAg KiBDaGVjayB3ZSBkaWRuJ3QgaW5hZHZlcnRlbnRseSBncm93IHRoZSBjb21tYW5kIHN0cnVjdAog ICovCkBAIC0yNTIsNiArMjY2LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIF9udm1lX252bV9jaGVj a19zaXplKHZvaWQpCiAJQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3QgbnZtZV9udm1fYmJfdGJs KSAhPSA2NCk7CiAJQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3QgbnZtZV9udm1faWQyMF9hZGRy ZikgIT0gOCk7CiAJQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3QgbnZtZV9udm1faWQyMCkgIT0g TlZNRV9JREVOVElGWV9EQVRBX1NJWkUpOworCUJVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0IG52 bWVfbnZtX2Noa19tZXRhKSAhPSAzMik7CisJQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3QgbnZt ZV9udm1fY2hrX21ldGEpICE9CisJCQkJCQlzaXplb2Yoc3RydWN0IG52bV9jaGtfbWV0YSkpOwog fQogCiBzdGF0aWMgdm9pZCBudm1lX252bV9zZXRfYWRkcl8xMihzdHJ1Y3QgbnZtX2FkZHJfZm9y bWF0XzEyICpkc3QsCkBAIC01NTUsNiArNTcyLDYxIEBAIHN0YXRpYyBpbnQgbnZtZV9udm1fc2V0 X2JiX3RibChzdHJ1Y3QgbnZtX2RldiAqbnZtZGV2LCBzdHJ1Y3QgcHBhX2FkZHIgKnBwYXMsCiAJ cmV0dXJuIHJldDsKIH0KIAorLyoKKyAqIEV4cGVjdCB0aGUgbGJhIGluIGRldmljZSBmb3JtYXQK KyAqLworc3RhdGljIGludCBudm1lX252bV9nZXRfY2hrX21ldGEoc3RydWN0IG52bV9kZXYgKm5k ZXYsCisJCQkJIHN0cnVjdCBudm1fY2hrX21ldGEgKm1ldGEsCisJCQkJIHNlY3Rvcl90IHNsYmEs IGludCBuY2hrcykKK3sKKwlzdHJ1Y3QgbnZtX2dlbyAqZ2VvID0gJm5kZXYtPmdlbzsKKwlzdHJ1 Y3QgbnZtZV9ucyAqbnMgPSBuZGV2LT5xLT5xdWV1ZWRhdGE7CisJc3RydWN0IG52bWVfY3RybCAq Y3RybCA9IG5zLT5jdHJsOworCXN0cnVjdCBudm1lX252bV9jaGtfbWV0YSAqZGV2X21ldGEgPSAo c3RydWN0IG52bWVfbnZtX2Noa19tZXRhICopbWV0YTsKKwlzdHJ1Y3QgcHBhX2FkZHIgcHBhOwor CXNpemVfdCBsZWZ0ID0gbmNoa3MgKiBzaXplb2Yoc3RydWN0IG52bWVfbnZtX2Noa19tZXRhKTsK KwlzaXplX3QgbG9nX3Bvcywgb2Zmc2V0LCBsZW47CisJaW50IHJldCwgaTsKKworCS8qIE5vcm1h bGl6ZSBsYmEgYWRkcmVzcyBzcGFjZSB0byBvYnRhaW4gbG9nIG9mZnNldCAqLworCXBwYS5wcGEg PSBzbGJhOworCXBwYSA9IGRldl90b19nZW5lcmljX2FkZHIobmRldiwgcHBhKTsKKworCWxvZ19w b3MgPSBwcGEubS5jaGs7CisJbG9nX3BvcyArPSBwcGEubS5wdSAqIGdlby0+bnVtX2NoazsKKwls b2dfcG9zICs9IHBwYS5tLmdycCAqIGdlby0+bnVtX2x1biAqIGdlby0+bnVtX2NoazsKKworCW9m ZnNldCA9IGxvZ19wb3MgKiBzaXplb2Yoc3RydWN0IG52bWVfbnZtX2Noa19tZXRhKTsKKworCXdo aWxlIChsZWZ0KSB7CisJCWxlbiA9IG1pbl90KHVuc2lnbmVkIGludCwgbGVmdCwgY3RybC0+bWF4 X2h3X3NlY3RvcnMgPDwgOSk7CisKKwkJcmV0ID0gbnZtZV9nZXRfbG9nX2V4dChjdHJsLCBucywg TlZNRV9OVk1fTE9HX1JFUE9SVF9DSFVOSywKKwkJCQlkZXZfbWV0YSwgbGVuLCBvZmZzZXQpOwor CQlpZiAocmV0KSB7CisJCQlkZXZfZXJyKGN0cmwtPmRldmljZSwgIkdldCBSRVBPUlQgQ0hVTksg bG9nIGVycm9yXG4iKTsKKwkJCWJyZWFrOworCQl9CisKKwkJZm9yIChpID0gMDsgaSA8IGxlbjsg aSArPSBzaXplb2Yoc3RydWN0IG52bWVfbnZtX2Noa19tZXRhKSkgeworCQkJbWV0YS0+c3RhdGUg PSBkZXZfbWV0YS0+c3RhdGU7CisJCQltZXRhLT50eXBlID0gZGV2X21ldGEtPnR5cGU7CisJCQlt ZXRhLT53aSA9IGRldl9tZXRhLT53aTsKKwkJCW1ldGEtPnNsYmEgPSBsZTY0X3RvX2NwdShkZXZf bWV0YS0+c2xiYSk7CisJCQltZXRhLT5jbmxiID0gbGU2NF90b19jcHUoZGV2X21ldGEtPmNubGIp OworCQkJbWV0YS0+d3AgPSBsZTY0X3RvX2NwdShkZXZfbWV0YS0+d3ApOworCisJCQltZXRhKys7 CisJCQlkZXZfbWV0YSsrOworCQl9CisKKwkJb2Zmc2V0ICs9IGxlbjsKKwkJbGVmdCAtPSBsZW47 CisJfQorCisJcmV0dXJuIHJldDsKK30KKwogc3RhdGljIGlubGluZSB2b2lkIG52bWVfbnZtX3Jx dG9jbWQoc3RydWN0IG52bV9ycSAqcnFkLCBzdHJ1Y3QgbnZtZV9ucyAqbnMsCiAJCQkJICAgIHN0 cnVjdCBudm1lX252bV9jb21tYW5kICpjKQogewpAQCAtNjg2LDYgKzc1OCw4IEBAIHN0YXRpYyBz dHJ1Y3QgbnZtX2Rldl9vcHMgbnZtZV9udm1fZGV2X29wcyA9IHsKIAkuZ2V0X2JiX3RibAkJPSBu dm1lX252bV9nZXRfYmJfdGJsLAogCS5zZXRfYmJfdGJsCQk9IG52bWVfbnZtX3NldF9iYl90Ymws CiAKKwkuZ2V0X2Noa19tZXRhCQk9IG52bWVfbnZtX2dldF9jaGtfbWV0YSwKKwogCS5zdWJtaXRf aW8JCT0gbnZtZV9udm1fc3VibWl0X2lvLAogCS5zdWJtaXRfaW9fc3luYwkJPSBudm1lX252bV9z dWJtaXRfaW9fc3luYywKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lL2hvc3QvbnZtZS5oIGIv ZHJpdmVycy9udm1lL2hvc3QvbnZtZS5oCmluZGV4IDFjYTA4ZjQ5OTNiYS4uNTA1Zjc5N2Y4YzZj IDEwMDY0NAotLS0gYS9kcml2ZXJzL252bWUvaG9zdC9udm1lLmgKKysrIGIvZHJpdmVycy9udm1l L2hvc3QvbnZtZS5oCkBAIC0zOTYsNiArMzk2LDkgQEAgaW50IG52bWVfcmVzZXRfY3RybChzdHJ1 Y3QgbnZtZV9jdHJsICpjdHJsKTsKIGludCBudm1lX2RlbGV0ZV9jdHJsKHN0cnVjdCBudm1lX2N0 cmwgKmN0cmwpOwogaW50IG52bWVfZGVsZXRlX2N0cmxfc3luYyhzdHJ1Y3QgbnZtZV9jdHJsICpj dHJsKTsKIAoraW50IG52bWVfZ2V0X2xvZ19leHQoc3RydWN0IG52bWVfY3RybCAqY3RybCwgc3Ry dWN0IG52bWVfbnMgKm5zLAorCQkgICAgIHU4IGxvZ19wYWdlLCB2b2lkICpsb2csIHNpemVfdCBz aXplLCBzaXplX3Qgb2Zmc2V0KTsKKwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3Jv dXAgbnZtZV9uc19pZF9hdHRyX2dyb3VwOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBibG9ja19kZXZp Y2Vfb3BlcmF0aW9ucyBudm1lX25zX2hlYWRfb3BzOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xp bnV4L2xpZ2h0bnZtLmggYi9pbmNsdWRlL2xpbnV4L2xpZ2h0bnZtLmgKaW5kZXggZTg3OGI5NWFl ZWM0Li45ZmUzN2Y3ZTgxODUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbGlnaHRudm0uaAor KysgYi9pbmNsdWRlL2xpbnV4L2xpZ2h0bnZtLmgKQEAgLTgxLDEwICs4MSwxMyBAQCBzdHJ1Y3Qg bnZtX3JxOwogc3RydWN0IG52bV9pZDsKIHN0cnVjdCBudm1fZGV2Owogc3RydWN0IG52bV90Z3Rf ZGV2Oworc3RydWN0IG52bV9jaGtfbWV0YTsKIAogdHlwZWRlZiBpbnQgKG52bV9pZF9mbikoc3Ry dWN0IG52bV9kZXYgKik7CiB0eXBlZGVmIGludCAobnZtX29wX2JiX3RibF9mbikoc3RydWN0IG52 bV9kZXYgKiwgc3RydWN0IHBwYV9hZGRyLCB1OCAqKTsKIHR5cGVkZWYgaW50IChudm1fb3Bfc2V0 X2JiX2ZuKShzdHJ1Y3QgbnZtX2RldiAqLCBzdHJ1Y3QgcHBhX2FkZHIgKiwgaW50LCBpbnQpOwor dHlwZWRlZiBpbnQgKG52bV9nZXRfY2hrX21ldGFfZm4pKHN0cnVjdCBudm1fZGV2ICosIHN0cnVj dCBudm1fY2hrX21ldGEgKiwKKwkJCQkJCQkJc2VjdG9yX3QsIGludCk7CiB0eXBlZGVmIGludCAo bnZtX3N1Ym1pdF9pb19mbikoc3RydWN0IG52bV9kZXYgKiwgc3RydWN0IG52bV9ycSAqKTsKIHR5 cGVkZWYgaW50IChudm1fc3VibWl0X2lvX3N5bmNfZm4pKHN0cnVjdCBudm1fZGV2ICosIHN0cnVj dCBudm1fcnEgKik7CiB0eXBlZGVmIHZvaWQgKihudm1fY3JlYXRlX2RtYV9wb29sX2ZuKShzdHJ1 Y3QgbnZtX2RldiAqLCBjaGFyICopOwpAQCAtOTgsNiArMTAxLDggQEAgc3RydWN0IG52bV9kZXZf b3BzIHsKIAludm1fb3BfYmJfdGJsX2ZuCSpnZXRfYmJfdGJsOwogCW52bV9vcF9zZXRfYmJfZm4J KnNldF9iYl90Ymw7CiAKKwludm1fZ2V0X2Noa19tZXRhX2ZuCSpnZXRfY2hrX21ldGE7CisKIAlu dm1fc3VibWl0X2lvX2ZuCSpzdWJtaXRfaW87CiAJbnZtX3N1Ym1pdF9pb19zeW5jX2ZuCSpzdWJt aXRfaW9fc3luYzsKIApAQCAtMjI3LDYgKzIzMiwyMCBAQCBzdHJ1Y3QgbnZtX2FkZHJfZm9ybWF0 IHsKIAl1NjQJcnN2X21hc2tbMl07CiB9OwogCisvKgorICogTm90ZTogVGhlIHN0cnVjdHVyZSBz aXplIGlzIGxpbmtlZCB0byBudm1lX252bV9jaGtfbWV0YSBzdWNoIHRoYXQgdGhlIHNhbWUKKyAq IGJ1ZmZlciBjYW4gYmUgdXNlZCB3aGVuIGNvbnZlcnRpbmcgZnJvbSBsaXR0bGUgZW5kaWFuIHRv IGNwdSBhZGRyZXNzaW5nLgorICovCitzdHJ1Y3QgbnZtX2Noa19tZXRhIHsKKwl1OAlzdGF0ZTsK Kwl1OAl0eXBlOworCXU4CXdpOworCXU4CXJzdmRbNV07CisJdTY0CXNsYmE7CisJdTY0CWNubGI7 CisJdTY0CXdwOworfTsKKwogc3RydWN0IG52bV90YXJnZXQgewogCXN0cnVjdCBsaXN0X2hlYWQg bGlzdDsKIAlzdHJ1Y3QgbnZtX3RndF9kZXYgKmRldjsKQEAgLTQ5Niw2ICs1MTUsMTEgQEAgZXh0 ZXJuIHN0cnVjdCBudm1fZGV2ICpudm1fYWxsb2NfZGV2KGludCk7CiBleHRlcm4gaW50IG52bV9y ZWdpc3RlcihzdHJ1Y3QgbnZtX2RldiAqKTsKIGV4dGVybiB2b2lkIG52bV91bnJlZ2lzdGVyKHN0 cnVjdCBudm1fZGV2ICopOwogCisKK2V4dGVybiBpbnQgbnZtX2dldF9jaHVua19tZXRhKHN0cnVj dCBudm1fdGd0X2RldiAqdGd0X2RldiwKKwkJCSAgICAgIHN0cnVjdCBudm1fY2hrX21ldGEgKm1l dGEsIHN0cnVjdCBwcGFfYWRkciBwcGEsCisJCQkgICAgICBpbnQgbmNoa3MpOworCiBleHRlcm4g aW50IG52bV9zZXRfdGd0X2JiX3RibChzdHJ1Y3QgbnZtX3RndF9kZXYgKiwgc3RydWN0IHBwYV9h ZGRyICosCiAJCQkgICAgICBpbnQsIGludCk7CiBleHRlcm4gaW50IG52bV9zdWJtaXRfaW8oc3Ry dWN0IG52bV90Z3RfZGV2ICosIHN0cnVjdCBudm1fcnEgKik7Ci0tIAoyLjcuNAoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LW52bWUgbWFpbGlu ZyBsaXN0CkxpbnV4LW52bWVAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW52bWUK