* [PATCH 0/6] enable sysfs for lightnvm
@ 2016-06-29 14:51 Matias Bjørling
2016-06-29 14:51 ` [PATCH 1/6] nvme: refactor namespaces to support non-gendisk devices Matias Bjørling
` (5 more replies)
0 siblings, 6 replies; 10+ messages in thread
From: Matias Bjørling @ 2016-06-29 14:51 UTC (permalink / raw)
To: linux-block, linux-kernel, axboe, keith.busch, linux-nvme,
dm-devel
Cc: Matias Bjørling
VGhlIGNvbW1vbiB3YXkgdG8gZXhwb3NlIGEgc3RvcmFnZSBkZXZpY2UgaXMgdG8gZXhwb3J0IGl0
IHRocm91Z2ggdGhlCmdlbmRpc2sgc3RydWN0dXJlLCB3aGljaCB0YWtlcyBjYXJlIG9mIGhhbmRs
aW5nIHRoZSB2aXNpYmlsaXR5IGxpZmV0aW1lCm9mIHRoZSBkZXZpY2UgdG8gdXNlci1zcGFjZSBh
bmQgY2FycmllcyBkZXZpY2UgZHJpdmVyIGFuZCBibG9jayBsYXllcgpzcGVjaWZpYyBzeXNmcyBl
bnRyaWVzLgoKRm9yIExpZ2h0TlZNLCBubyBnZW5kaXNrIGlzIGV4cG9zZWQsIHdoaWNoIGhpZGVz
IHRoZXNlIGVudHJpZXMuCgpUaGlzIHBhdGNoc2V0IGVuYWJsZXMgTGlnaHROVk0gdG8gZXhwb3Nl
IGEgc3Vic2V0IG9mIHRoZSBnZW5kaXNrIGVudHJpZXMKYnkgaW1wbGVtZW50aW5nIGEgbmV3IG5v
bi1nZW5kaXNrIGRldmljZSB0aGF0IG9ubHkgZXhwb3NlcyB0aGUgc3lzZnMKZW50cmllcyB0aGF0
IGFyZSByZWxldmFudCB0byB0aGUgZGV2aWNlIGRyaXZlciBhbmQgTGlnaHROVk0uIEZvciBleGFt
cGxlCi9tcSBhbmQgdGhlIE5WTWUgc3lzZnMgZW50cmllcy4KClRoZSBuZXcgbm9uLWdlbmRpc2sg
ZXhwb3NlcyBpdHNlbGYgaW4gcGxhY2Ugb2YgdGhlIG9yaWdpbmFsIGdlbmRpc2suClRodXMsIGEg
Z2VuZGlzayBkZXZpY2UgZXhwb3NlZCB0aHJvdWdoIC9zeXMvY2xhc3MvbnZtZS9udm1lMG4xLCB3
aWxsCnN0aWxsIGJlIGV4cG9zZWQgdGhyb3VnaCB0aGUgc2FtZSBkaXJlY3RvcnksIGFsdGhvdWdo
IG9ubHkgd2l0aCB0aGUgL21xLApsaWdodG52bSwgYW5kIG52bWUgc3BlY2lmaWMgZW50cmllcy4K
ClRoZSBMaWdodE5WTSBzdG9yYWdlIGRldmljZSBjYW4gYmUgZm91bmQgdGhyb3VnaCBzeXNmcyBi
eSBzZWFyY2hpbmcKZm9yIGRldmljZXMgdGhhdCBoYXMgdGhlICJsaWdodG52bSIgZGV2IHR5cGUu
CgpUaGUgcGF0Y2hlcyByZXF1aXJlIHRoZSBqdXN0IHBvc3RlZCBwYXRjaGVzIGJlZm9yZSB0aGV5
IGNhbiBiZSBhcHBsaWVkLgpUaGV5IGNhbiBhbHNvIGJlIGZvdW5kIGluIHRoZSBmb3ItNC44L3N5
c2ZzIGJyYW5jaCBhdDoKCiAgaHR0cHM6Ly9naXRodWIuY29tL09wZW5DaGFubmVsU1NEL2xpbnV4
LmdpdAoKdjM6CiAtIEZpeGVkIG1pc3NpbmcgZGl2aXNpbmcgYnkgbnZtZSBibG9jayBuci4KdjI6
CiAtIFVwZGF0ZWQgImV4cG9zZSBnZW5udm0gdGFyZ2V0IHR5cGUiIHRvIGV4cG9zZSBpdHMgb3du
IGtvYmplY3QsIHdoaWNoCiAgIHBibGsgYW5kIG90aGVycyBjYW4gaG9vayBpbnRvLgogLSBGaXhl
ZCBtaXNzaW5nIGRpc2tfbmFtZSBpbiBudWxsX2JsayBwYXRjaCBvbiBsaWdodG52bSBkZXZpY2UK
Ck1hdGlhcyBCasO4cmxpbmcgKDQpOgogIG52bWU6IHJlZmFjdG9yIG5hbWVzcGFjZXMgdG8gc3Vw
cG9ydCBub24tZ2VuZGlzayBkZXZpY2VzCiAgbnVsbF9ibGs6IHJlZmFjdG9yIHRvIHN1cHBvcnQg
bm9uLWdlbmRpc2sgZGV2aWNlcwogIGJsay1tcTogcmVnaXN0ZXIgZGV2aWNlIGluc3RlYWQgb2Yg
ZGlzawogIGxpZ2h0bnZtOiBsZXQgZHJpdmVycyBjb250cm9sIHRoZSBsaWZldGltZSBvZiBudm1f
ZGV2CgpTaW1vbiBBLiBGLiBMdW5kICgyKToKICBsaWdodG52bTogZXhwb3NlIGRldmljZSBnZW9t
ZXRyeSB0aHJvdWdoIHN5c2ZzCiAgbGlnaHRudm06IGV4cG9zZSBnZW5udm0gdGFyZ2V0IHR5cGUg
dGhyb3VnaCBzeXNmcwoKIGJsb2NrL2Jsay1tcS1zeXNmcy5jICAgICAgICAgfCAgMTMgKystCiBi
bG9jay9ibGstc3lzZnMuYyAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2Jsb2NrL251bGxf
YmxrLmMgICAgIHwgMTI4ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIGRyaXZlcnMvbGln
aHRudm0vTWFrZWZpbGUgICAgfCAgIDIgKy0KIGRyaXZlcnMvbGlnaHRudm0vY29yZS5jICAgICAg
fCAgNTQgKysrKystLS0tLS0tCiBkcml2ZXJzL2xpZ2h0bnZtL2dlbm52bS5jICAgIHwgMTEyICsr
KysrKysrKysrKysrKysrKysrKy0tLS0KIGRyaXZlcnMvbGlnaHRudm0vbGlnaHRudm0uaCAgfCAg
MzUgKysrKysrKysKIGRyaXZlcnMvbGlnaHRudm0vc3lzZnMuYyAgICAgfCAxOTUgKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9tZC9kbS5jICAgICAg
ICAgICAgICB8ICAgMiArLQogZHJpdmVycy9udm1lL2hvc3QvY29yZS5jICAgICB8IDE2NSArKysr
KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvbnZtZS9ob3N0L2xpZ2h0
bnZtLmMgfCAgMzQgKysrKysrLS0KIGRyaXZlcnMvbnZtZS9ob3N0L252bWUuaCAgICAgfCAgMjYg
KysrKy0tCiBpbmNsdWRlL2xpbnV4L2Jsay1tcS5oICAgICAgIHwgICA0ICstCiBpbmNsdWRlL2xp
bnV4L2xpZ2h0bnZtLmggICAgIHwgIDI4ICsrKysrLS0KIDE0IGZpbGVzIGNoYW5nZWQsIDYwMyBp
bnNlcnRpb25zKCspLCAxOTkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy
cy9saWdodG52bS9saWdodG52bS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9saWdodG52
bS9zeXNmcy5jCgotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpMaW51eC1udm1lIG1haWxpbmcgbGlzdApMaW51eC1udm1lQGxpc3RzLmlu
ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s
aW51eC1udm1lCg==
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH 1/6] nvme: refactor namespaces to support non-gendisk devices
2016-06-29 14:51 [PATCH 0/6] enable sysfs for lightnvm Matias Bjørling
@ 2016-06-29 14:51 ` Matias Bjørling
2016-06-29 14:51 ` [PATCH 2/6] null_blk: refactor " Matias Bjørling
` (4 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Matias Bjørling @ 2016-06-29 14:51 UTC (permalink / raw)
To: linux-block, linux-kernel, axboe, keith.busch, linux-nvme,
dm-devel
Cc: Matias Bjørling
V2l0aCBMaWdodE5WTSBlbmFibGVkIG5hbWVzcGFjZXMsIHRoZSBnZW5kaXNrIHN0cnVjdHVyZSBp
cyBub3QgZXhwb3NlZAp0byB0aGUgdXNlci4gVGhpcyBwcmV2ZW50cyBMaWdodE5WTSB1c2VycyBm
cm9tIGFjY2Vzc2luZyB0aGUgTlZNZSBkZXZpY2UKZHJpdmVyIHNwZWNpZmljIHN5c2ZzIGVudHJp
ZXMsIGFuZCBMaWdodE5WTSBuYW1lc3BhY2UgZ2VvbWV0cnkuCgpSZWZhY3RvciB0aGUgcmV2YWxp
ZGF0aW9uIHByb2Nlc3MsIHNvIHRoYXQgYSBuYW1lc3BhY2UsIGluc3RlYWQgb2YgYQpnZW5kaXNr
LCBpcyByZXZhbGlkYXRlZC4gVGhpcyBsYXRlciBhbGxvd3MgcGF0Y2hlcyB0byB3aXJlIHVwIHRo
ZQpzeXNmcyBlbnRyaWVzIHVwIHRvIGEgbm9uLWdlbmRpc2sgbmFtZXNwYWNlLgoKU2lnbmVkLW9m
Zi1ieTogTWF0aWFzIEJqw7hybGluZyA8bUBiam9ybGluZy5tZT4KLS0tCiBkcml2ZXJzL2xpZ2h0
bnZtL2NvcmUuYyAgICAgIHwgICAyICsKIGRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYyAgICAgfCAx
MzQgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9u
dm1lL2hvc3QvbGlnaHRudm0uYyB8ICAgNSArLQogMyBmaWxlcyBjaGFuZ2VkLCA4NyBpbnNlcnRp
b25zKCspLCA1NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2xpZ2h0bnZtL2Nv
cmUuYyBiL2RyaXZlcnMvbGlnaHRudm0vY29yZS5jCmluZGV4IDllYmQyY2YuLjI1YzVkZjkgMTAw
NjQ0Ci0tLSBhL2RyaXZlcnMvbGlnaHRudm0vY29yZS5jCisrKyBiL2RyaXZlcnMvbGlnaHRudm0v
Y29yZS5jCkBAIC01ODEsNiArNTgxLDggQEAgc3RhdGljIGludCBudm1fY29yZV9pbml0KHN0cnVj
dCBudm1fZGV2ICpkZXYpCiAJbXV0ZXhfaW5pdCgmZGV2LT5tbG9jayk7CiAJc3Bpbl9sb2NrX2lu
aXQoJmRldi0+bG9jayk7CiAKKwlibGtfcXVldWVfbG9naWNhbF9ibG9ja19zaXplKGRldi0+cSwg
ZGV2LT5zZWNfc2l6ZSk7CisKIAlyZXR1cm4gMDsKIGVycl9mbXR5cGU6CiAJa2ZyZWUoZGV2LT5s
dW5fbWFwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYyBiL2RyaXZlcnMv
bnZtZS9ob3N0L2NvcmUuYwppbmRleCA2ODQwNjJhLi5mNjE1YjZiIDEwMDY0NAotLS0gYS9kcml2
ZXJzL252bWUvaG9zdC9jb3JlLmMKKysrIGIvZHJpdmVycy9udm1lL2hvc3QvY29yZS5jCkBAIC03
ODUsNDIgKzc4NSwzMyBAQCBzdGF0aWMgdm9pZCBudm1lX2NvbmZpZ19kaXNjYXJkKHN0cnVjdCBu
dm1lX25zICpucykKIAlxdWV1ZV9mbGFnX3NldF91bmxvY2tlZChRVUVVRV9GTEFHX0RJU0NBUkQs
IG5zLT5xdWV1ZSk7CiB9CiAKLXN0YXRpYyBpbnQgbnZtZV9yZXZhbGlkYXRlX2Rpc2soc3RydWN0
IGdlbmRpc2sgKmRpc2spCitzdGF0aWMgaW50IG52bWVfcmV2YWxpZGF0ZV9ucyhzdHJ1Y3QgbnZt
ZV9ucyAqbnMsIHN0cnVjdCBudm1lX2lkX25zICoqaWQpCiB7Ci0Jc3RydWN0IG52bWVfbnMgKm5z
ID0gZGlzay0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBudm1lX2lkX25zICppZDsKLQl1OCBsYmFm
LCBwaV90eXBlOwotCXUxNiBvbGRfbXM7Ci0JdW5zaWduZWQgc2hvcnQgYnM7Ci0KLQlpZiAodGVz
dF9iaXQoTlZNRV9OU19ERUFELCAmbnMtPmZsYWdzKSkgewotCQlzZXRfY2FwYWNpdHkoZGlzaywg
MCk7Ci0JCXJldHVybiAtRU5PREVWOwotCX0KLQlpZiAobnZtZV9pZGVudGlmeV9ucyhucy0+Y3Ry
bCwgbnMtPm5zX2lkLCAmaWQpKSB7CisJaWYgKG52bWVfaWRlbnRpZnlfbnMobnMtPmN0cmwsIG5z
LT5uc19pZCwgaWQpKSB7CiAJCWRldl93YXJuKGRpc2tfdG9fZGV2KG5zLT5kaXNrKSwgIiVzOiBJ
ZGVudGlmeSBmYWlsdXJlXG4iLAogCQkJCV9fZnVuY19fKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJ
fQotCWlmIChpZC0+bmNhcCA9PSAwKSB7Ci0JCWtmcmVlKGlkKTsKLQkJcmV0dXJuIC1FTk9ERVY7
Ci0JfQogCi0JaWYgKG52bWVfbnZtX25zX3N1cHBvcnRlZChucywgaWQpICYmIG5zLT50eXBlICE9
IE5WTUVfTlNfTElHSFROVk0pIHsKLQkJaWYgKG52bWVfbnZtX3JlZ2lzdGVyKG5zLT5xdWV1ZSwg
ZGlzay0+ZGlza19uYW1lKSkgewotCQkJZGV2X3dhcm4oZGlza190b19kZXYobnMtPmRpc2spLAot
CQkJCSIlczogTGlnaHROVk0gaW5pdCBmYWlsdXJlXG4iLCBfX2Z1bmNfXyk7Ci0JCQlrZnJlZShp
ZCk7Ci0JCQlyZXR1cm4gLUVOT0RFVjsKLQkJfQotCQlucy0+dHlwZSA9IE5WTUVfTlNfTElHSFRO
Vk07CisJaWYgKCgqaWQpLT5uY2FwID09IDApIHsKKwkJa2ZyZWUoKmlkKTsKKwkJcmV0dXJuIC1F
Tk9ERVY7CiAJfQogCiAJaWYgKG5zLT5jdHJsLT52cyA+PSBOVk1FX1ZTKDEsIDEpKQotCQltZW1j
cHkobnMtPmV1aSwgaWQtPmV1aTY0LCBzaXplb2YobnMtPmV1aSkpOworCQltZW1jcHkobnMtPmV1
aSwgKCppZCktPmV1aTY0LCBzaXplb2YobnMtPmV1aSkpOwogCWlmIChucy0+Y3RybC0+dnMgPj0g
TlZNRV9WUygxLCAyKSkKLQkJbWVtY3B5KG5zLT51dWlkLCBpZC0+bmd1aWQsIHNpemVvZihucy0+
dXVpZCkpOworCQltZW1jcHkobnMtPnV1aWQsICgqaWQpLT5uZ3VpZCwgc2l6ZW9mKG5zLT51dWlk
KSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19udm1lX3JldmFsaWRhdGVfZGlz
ayhzdHJ1Y3QgZ2VuZGlzayAqZGlzaywgc3RydWN0IG52bWVfaWRfbnMgKmlkKQoreworCXN0cnVj
dCBudm1lX25zICpucyA9IGRpc2stPnByaXZhdGVfZGF0YTsKKwl1OCBsYmFmLCBwaV90eXBlOwor
CXUxNiBvbGRfbXM7CisJdW5zaWduZWQgc2hvcnQgYnM7CiAKIAlvbGRfbXMgPSBucy0+bXM7CiAJ
bGJhZiA9IGlkLT5mbGJhcyAmIE5WTUVfTlNfRkxCQVNfTEJBX01BU0s7CkBAIC04NTksOCArODUw
LDI2IEBAIHN0YXRpYyBpbnQgbnZtZV9yZXZhbGlkYXRlX2Rpc2soc3RydWN0IGdlbmRpc2sgKmRp
c2spCiAJaWYgKG5zLT5jdHJsLT5vbmNzICYgTlZNRV9DVFJMX09OQ1NfRFNNKQogCQludm1lX2Nv
bmZpZ19kaXNjYXJkKG5zKTsKIAlibGtfbXFfdW5mcmVlemVfcXVldWUoZGlzay0+cXVldWUpOwor
fQogCitzdGF0aWMgaW50IG52bWVfcmV2YWxpZGF0ZV9kaXNrKHN0cnVjdCBnZW5kaXNrICpkaXNr
KQoreworCXN0cnVjdCBudm1lX25zICpucyA9IGRpc2stPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3Qg
bnZtZV9pZF9ucyAqaWQgPSBOVUxMOworCWludCByZXQ7CisKKwlpZiAodGVzdF9iaXQoTlZNRV9O
U19ERUFELCAmbnMtPmZsYWdzKSkgeworCQlzZXRfY2FwYWNpdHkoZGlzaywgMCk7CisJCXJldHVy
biAtRU5PREVWOworCX0KKworCXJldCA9IG52bWVfcmV2YWxpZGF0ZV9ucyhucywgJmlkKTsKKwlp
ZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJX19udm1lX3JldmFsaWRhdGVfZGlzayhkaXNrLCBp
ZCk7CiAJa2ZyZWUoaWQpOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTE0MzAsNiArMTQzOSw4IEBA
IHN0YXRpYyB2b2lkIG52bWVfYWxsb2NfbnMoc3RydWN0IG52bWVfY3RybCAqY3RybCwgdW5zaWdu
ZWQgbnNpZCkKIHsKIAlzdHJ1Y3QgbnZtZV9ucyAqbnM7CiAJc3RydWN0IGdlbmRpc2sgKmRpc2s7
CisJc3RydWN0IG52bWVfaWRfbnMgKmlkOworCWNoYXIgZGlza19uYW1lW0RJU0tfTkFNRV9MRU5d
OwogCWludCBub2RlID0gZGV2X3RvX25vZGUoY3RybC0+ZGV2KTsKIAogCWxvY2tkZXBfYXNzZXJ0
X2hlbGQoJmN0cmwtPm5hbWVzcGFjZXNfbXV0ZXgpOwpAQCAtMTQ0OSw0NCArMTQ2MCw2MyBAQCBz
dGF0aWMgdm9pZCBudm1lX2FsbG9jX25zKHN0cnVjdCBudm1lX2N0cmwgKmN0cmwsIHVuc2lnbmVk
IG5zaWQpCiAJbnMtPnF1ZXVlLT5xdWV1ZWRhdGEgPSBuczsKIAlucy0+Y3RybCA9IGN0cmw7CiAK
LQlkaXNrID0gYWxsb2NfZGlza19ub2RlKDAsIG5vZGUpOwotCWlmICghZGlzaykKLQkJZ290byBv
dXRfZnJlZV9xdWV1ZTsKLQogCWtyZWZfaW5pdCgmbnMtPmtyZWYpOwogCW5zLT5uc19pZCA9IG5z
aWQ7Ci0JbnMtPmRpc2sgPSBkaXNrOwogCW5zLT5sYmFfc2hpZnQgPSA5OyAvKiBzZXQgdG8gYSBk
ZWZhdWx0IHZhbHVlIGZvciA1MTIgdW50aWwgZGlzayBpcyB2YWxpZGF0ZWQgKi8KIAotCiAJYmxr
X3F1ZXVlX2xvZ2ljYWxfYmxvY2tfc2l6ZShucy0+cXVldWUsIDEgPDwgbnMtPmxiYV9zaGlmdCk7
CiAJbnZtZV9zZXRfcXVldWVfbGltaXRzKGN0cmwsIG5zLT5xdWV1ZSk7CiAKLQlkaXNrLT5tYWpv
ciA9IG52bWVfbWFqb3I7Ci0JZGlzay0+Zmlyc3RfbWlub3IgPSAwOwotCWRpc2stPmZvcHMgPSAm
bnZtZV9mb3BzOwotCWRpc2stPnByaXZhdGVfZGF0YSA9IG5zOwotCWRpc2stPnF1ZXVlID0gbnMt
PnF1ZXVlOwotCWRpc2stPmRyaXZlcmZzX2RldiA9IGN0cmwtPmRldmljZTsKLQlkaXNrLT5mbGFn
cyA9IEdFTkhEX0ZMX0VYVF9ERVZUOwotCXNwcmludGYoZGlzay0+ZGlza19uYW1lLCAibnZtZSVk
biVkIiwgY3RybC0+aW5zdGFuY2UsIG5zLT5pbnN0YW5jZSk7Ci0KLQlpZiAobnZtZV9yZXZhbGlk
YXRlX2Rpc2sobnMtPmRpc2spKQotCQlnb3RvIG91dF9mcmVlX2Rpc2s7CisJaWYgKG52bWVfcmV2
YWxpZGF0ZV9ucyhucywgJmlkKSkKKwkJZ290byBvdXRfZnJlZV9xdWV1ZTsKKworCXNwcmludGYo
ZGlza19uYW1lLCAibnZtZSVkbiVkIiwgY3RybC0+aW5zdGFuY2UsIG5zLT5pbnN0YW5jZSk7CisK
KwlpZiAobnZtZV9udm1fbnNfc3VwcG9ydGVkKG5zLCBpZCkpIHsKKwkJaWYgKG52bWVfbnZtX3Jl
Z2lzdGVyKG5zLT5xdWV1ZSwgZGlza19uYW1lKSkgeworCQkJZGV2X3dhcm4oY3RybC0+ZGV2LAor
CQkJCSIlczogTGlnaHROVk0gaW5pdCBmYWlsdXJlXG4iLCBfX2Z1bmNfXyk7CisJCQlnb3RvIG91
dF9mcmVlX2lkOworCQl9CisKKwkJZGlzayA9IGFsbG9jX2Rpc2tfbm9kZSgwLCBub2RlKTsKKwkJ
aWYgKCFkaXNrKQorCQkJZ290byBvdXRfZnJlZV9pZDsKKwkJbWVtY3B5KGRpc2stPmRpc2tfbmFt
ZSwgZGlza19uYW1lLCBESVNLX05BTUVfTEVOKTsKKwkJbnMtPmRpc2sgPSBkaXNrOworCQlucy0+
dHlwZSA9IE5WTUVfTlNfTElHSFROVk07CisJfSBlbHNlIHsKKwkJZGlzayA9IGFsbG9jX2Rpc2tf
bm9kZSgwLCBub2RlKTsKKwkJaWYgKCFkaXNrKQorCQkJZ290byBvdXRfZnJlZV9pZDsKKworCQlk
aXNrLT5tYWpvciA9IG52bWVfbWFqb3I7CisJCWRpc2stPmZpcnN0X21pbm9yID0gMDsKKwkJZGlz
ay0+Zm9wcyA9ICZudm1lX2ZvcHM7CisJCWRpc2stPnByaXZhdGVfZGF0YSA9IG5zOworCQlkaXNr
LT5xdWV1ZSA9IG5zLT5xdWV1ZTsKKwkJZGlzay0+ZHJpdmVyZnNfZGV2ID0gY3RybC0+ZGV2aWNl
OworCQlkaXNrLT5mbGFncyA9IEdFTkhEX0ZMX0VYVF9ERVZUOworCQltZW1jcHkoZGlzay0+ZGlz
a19uYW1lLCBkaXNrX25hbWUsIERJU0tfTkFNRV9MRU4pOworCQlucy0+ZGlzayA9IGRpc2s7CisK
KwkJX19udm1lX3JldmFsaWRhdGVfZGlzayhkaXNrLCBpZCk7CisKKwkJYWRkX2Rpc2sobnMtPmRp
c2spOworCisJCWlmIChzeXNmc19jcmVhdGVfZ3JvdXAoJmRpc2tfdG9fZGV2KG5zLT5kaXNrKS0+
a29iaiwKKwkJCQkJCQkmbnZtZV9uc19hdHRyX2dyb3VwKSkKKwkJCXByX3dhcm4oIiVzOiBmYWls
ZWQgdG8gY3JlYXRlIHN5c2ZzIGdyb3VwIGZvciBpZGVudGlmaWNhdGlvblxuIiwKKwkJCQlucy0+
ZGlzay0+ZGlza19uYW1lKTsKKwl9CiAKIAlsaXN0X2FkZF90YWlsX3JjdSgmbnMtPmxpc3QsICZj
dHJsLT5uYW1lc3BhY2VzKTsKIAlrcmVmX2dldCgmY3RybC0+a3JlZik7Ci0JaWYgKG5zLT50eXBl
ID09IE5WTUVfTlNfTElHSFROVk0pCi0JCXJldHVybjsKIAotCWFkZF9kaXNrKG5zLT5kaXNrKTsK
LQlpZiAoc3lzZnNfY3JlYXRlX2dyb3VwKCZkaXNrX3RvX2Rldihucy0+ZGlzayktPmtvYmosCi0J
CQkJCSZudm1lX25zX2F0dHJfZ3JvdXApKQotCQlwcl93YXJuKCIlczogZmFpbGVkIHRvIGNyZWF0
ZSBzeXNmcyBncm91cCBmb3IgaWRlbnRpZmljYXRpb25cbiIsCi0JCQlucy0+ZGlzay0+ZGlza19u
YW1lKTsKKwlrZnJlZShpZCk7CiAJcmV0dXJuOwotIG91dF9mcmVlX2Rpc2s6Ci0Ja2ZyZWUoZGlz
ayk7Cisgb3V0X2ZyZWVfaWQ6CisJa2ZyZWUoaWQpOwogIG91dF9mcmVlX3F1ZXVlOgogCWJsa19j
bGVhbnVwX3F1ZXVlKG5zLT5xdWV1ZSk7CiAgb3V0X3JlbGVhc2VfaW5zdGFuY2U6CmRpZmYgLS1n
aXQgYS9kcml2ZXJzL252bWUvaG9zdC9saWdodG52bS5jIGIvZHJpdmVycy9udm1lL2hvc3QvbGln
aHRudm0uYwppbmRleCA5N2ZlNjEwLi5iYTUxNjAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL252bWUv
aG9zdC9saWdodG52bS5jCisrKyBiL2RyaXZlcnMvbnZtZS9ob3N0L2xpZ2h0bnZtLmMKQEAgLTQ3
NCw4ICs0NzQsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbnZtZV9udm1fcnF0b2NtZChzdHJ1Y3Qg
cmVxdWVzdCAqcnEsIHN0cnVjdCBudm1fcnEgKnJxZCwKIAljLT5waF9ydy5sZW5ndGggPSBjcHVf
dG9fbGUxNihycWQtPm5yX3BwYXMgLSAxKTsKIAogCWlmIChycWQtPm9wY29kZSA9PSBOVk1fT1Bf
SEJXUklURSB8fCBycWQtPm9wY29kZSA9PSBOVk1fT1BfSEJSRUFEKQotCQljLT5oYl9ydy5zbGJh
ID0gY3B1X3RvX2xlNjQobnZtZV9ibG9ja19ucihucywKLQkJCQkJCXJxZC0+YmlvLT5iaV9pdGVy
LmJpX3NlY3RvcikpOworCQkvKiBtb21lbnRhcmlseSBoYXJkY29kZSB0aGUgc2hpZnQgY29uZmln
dXJhdGlvbi4gbGJhX3NoaWZ0IGZyb20KKwkJICogbnZtX2RldiB3aWxsIGJlIGF2YWlsYWJsZSBp
biBhIGZvbGxvdy11cCBwYXRjaCAqLworCQljLT5oYl9ydy5zbGJhID0gY3B1X3RvX2xlNjQocnFk
LT5iaW8tPmJpX2l0ZXIuYmlfc2VjdG9yID4+IDMpOwogfQogCiBzdGF0aWMgdm9pZCBudm1lX252
bV9lbmRfaW8oc3RydWN0IHJlcXVlc3QgKnJxLCBpbnQgZXJyb3IpCi0tIAoyLjEuNAoKCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LW52bWUgbWFp
bGluZyBsaXN0CkxpbnV4LW52bWVAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5m
cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW52bWUK
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH 2/6] null_blk: refactor to support non-gendisk devices
2016-06-29 14:51 [PATCH 0/6] enable sysfs for lightnvm Matias Bjørling
2016-06-29 14:51 ` [PATCH 1/6] nvme: refactor namespaces to support non-gendisk devices Matias Bjørling
@ 2016-06-29 14:51 ` Matias Bjørling
2016-06-29 14:51 ` [PATCH 3/6] blk-mq: register device instead of disk Matias Bjørling
` (3 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Matias Bjørling @ 2016-06-29 14:51 UTC (permalink / raw)
To: linux-block, linux-kernel, axboe, keith.busch, linux-nvme,
dm-devel
Cc: Matias Bjørling
V2l0aCBMaWdodE5WTSBlbmFibGVkIGRldmljZXMsIHRoZSBnZW5kaXNrIHN0cnVjdHVyZSBpcyBu
b3QgZXhwb3NlZAp0byB0aGUgdXNlci4gVGhpcyBoaWRlcyB0aGUgZGV2aWNlIGRyaXZlciBzcGVj
aWZpYyBzeXNmcyBlbnRyaWVzLCBhbmQKcHJldmVudHMgYmluZGluZyBvZiBMaWdodE5WTSBnZW9t
ZXRyeSBpbmZvcm1hdGlvbiB0byB0aGUgZGV2aWNlLgoKUmVmYWN0b3IgdGhlIGRldmljZSByZWdp
c3RyYXRpb24gcHJvY2Vzcywgc28gdGhhdCBnZW5kaXNrIGFuZApub24tZ2VuZGlzayBkZXZpY2Vz
IGFyZSBlYXNpbHkgbWFuYWdlZC4KClNpZ25lZC1vZmYtYnk6IE1hdGlhcyBCasO4cmxpbmcgPG1A
YmpvcmxpbmcubWU+Ci0tLQogZHJpdmVycy9ibG9jay9udWxsX2Jsay5jIHwgMTEwICsrKysrKysr
KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg
NjEgaW5zZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9i
bG9jay9udWxsX2Jsay5jIGIvZHJpdmVycy9ibG9jay9udWxsX2Jsay5jCmluZGV4IGNhYjk3NTku
LjMxMTdkZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svbnVsbF9ibGsuYworKysgYi9kcml2
ZXJzL2Jsb2NrL251bGxfYmxrLmMKQEAgLTQxNCwyMyArNDE0LDYgQEAgc3RhdGljIHZvaWQgY2xl
YW51cF9xdWV1ZXMoc3RydWN0IG51bGxiICpudWxsYikKIAlrZnJlZShudWxsYi0+cXVldWVzKTsK
IH0KIAotc3RhdGljIHZvaWQgbnVsbF9kZWxfZGV2KHN0cnVjdCBudWxsYiAqbnVsbGIpCi17Ci0J
bGlzdF9kZWxfaW5pdCgmbnVsbGItPmxpc3QpOwotCi0JaWYgKHVzZV9saWdodG52bSkKLQkJbnZt
X3VucmVnaXN0ZXIobnVsbGItPmRpc2tfbmFtZSk7Ci0JZWxzZQotCQlkZWxfZ2VuZGlzayhudWxs
Yi0+ZGlzayk7Ci0JYmxrX2NsZWFudXBfcXVldWUobnVsbGItPnEpOwotCWlmIChxdWV1ZV9tb2Rl
ID09IE5VTExfUV9NUSkKLQkJYmxrX21xX2ZyZWVfdGFnX3NldCgmbnVsbGItPnRhZ19zZXQpOwot
CWlmICghdXNlX2xpZ2h0bnZtKQotCQlwdXRfZGlzayhudWxsYi0+ZGlzayk7Ci0JY2xlYW51cF9x
dWV1ZXMobnVsbGIpOwotCWtmcmVlKG51bGxiKTsKLX0KLQogI2lmZGVmIENPTkZJR19OVk0KIAog
c3RhdGljIHZvaWQgbnVsbF9sbnZtX2VuZF9pbyhzdHJ1Y3QgcmVxdWVzdCAqcnEsIGludCBlcnJv
cikKQEAgLTU2NCwxMCArNTQ3LDQxIEBAIHN0YXRpYyBzdHJ1Y3QgbnZtX2Rldl9vcHMgbnVsbF9s
bnZtX2Rldl9vcHMgPSB7CiAJLyogU2ltdWxhdGUgbnZtZSBwcm90b2NvbCByZXN0cmljdGlvbiAq
LwogCS5tYXhfcGh5c19zZWN0CQk9IDY0LAogfTsKKworc3RhdGljIGludCBudWxsX252bV9yZWdp
c3RlcihzdHJ1Y3QgbnVsbGIgKm51bGxiKQoreworCXJldHVybiBudm1fcmVnaXN0ZXIobnVsbGIt
PnEsIG51bGxiLT5kaXNrX25hbWUsICZudWxsX2xudm1fZGV2X29wcyk7Cit9CisKK3N0YXRpYyB2
b2lkIG51bGxfbnZtX3VucmVnaXN0ZXIoc3RydWN0IG51bGxiICpudWxsYikKK3sKKwludm1fdW5y
ZWdpc3RlcihudWxsYi0+ZGlza19uYW1lKTsKK30KICNlbHNlCi1zdGF0aWMgc3RydWN0IG52bV9k
ZXZfb3BzIG51bGxfbG52bV9kZXZfb3BzOworc3RhdGljIGludCBudWxsX252bV9yZWdpc3Rlcihz
dHJ1Y3QgbnVsbGIgKm51bGxiKQoreworCXJldHVybiAtRUlOVkFMOworfQorc3RhdGljIHZvaWQg
bnVsbF9udm1fdW5yZWdpc3RlcihzdHJ1Y3QgbnVsbGIgKm51bGxiKSB7fQogI2VuZGlmIC8qIENP
TkZJR19OVk0gKi8KIAorc3RhdGljIHZvaWQgbnVsbF9kZWxfZGV2KHN0cnVjdCBudWxsYiAqbnVs
bGIpCit7CisJbGlzdF9kZWxfaW5pdCgmbnVsbGItPmxpc3QpOworCisJaWYgKHVzZV9saWdodG52
bSkKKwkJbnVsbF9udm1fdW5yZWdpc3RlcihudWxsYik7CisJZWxzZQorCQlkZWxfZ2VuZGlzayhu
dWxsYi0+ZGlzayk7CisJYmxrX2NsZWFudXBfcXVldWUobnVsbGItPnEpOworCWlmIChxdWV1ZV9t
b2RlID09IE5VTExfUV9NUSkKKwkJYmxrX21xX2ZyZWVfdGFnX3NldCgmbnVsbGItPnRhZ19zZXQp
OworCWlmICghdXNlX2xpZ2h0bnZtKQorCQlwdXRfZGlzayhudWxsYi0+ZGlzayk7CisJY2xlYW51
cF9xdWV1ZXMobnVsbGIpOworCWtmcmVlKG51bGxiKTsKK30KKwogc3RhdGljIGludCBudWxsX29w
ZW4oc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgZm1vZGVfdCBtb2RlKQogewogCXJldHVybiAw
OwpAQCAtNjQwLDExICs2NTQsMzIgQEAgc3RhdGljIGludCBpbml0X2RyaXZlcl9xdWV1ZXMoc3Ry
dWN0IG51bGxiICpudWxsYikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBudWxsX2FkZF9k
ZXYodm9pZCkKK3N0YXRpYyBpbnQgbnVsbF9nZW5kaXNrX3JlZ2lzdGVyKHN0cnVjdCBudWxsYiAq
bnVsbGIpCiB7CiAJc3RydWN0IGdlbmRpc2sgKmRpc2s7Ci0Jc3RydWN0IG51bGxiICpudWxsYjsK
IAlzZWN0b3JfdCBzaXplOworCisJZGlzayA9IG51bGxiLT5kaXNrID0gYWxsb2NfZGlza19ub2Rl
KDEsIGhvbWVfbm9kZSk7CisJaWYgKCFkaXNrKQorCQlyZXR1cm4gLUVOT01FTTsKKwlzaXplID0g
Z2IgKiAxMDI0ICogMTAyNCAqIDEwMjRVTEw7CisJc2V0X2NhcGFjaXR5KGRpc2ssIHNpemUgPj4g
OSk7CisKKwlkaXNrLT5mbGFncyB8PSBHRU5IRF9GTF9FWFRfREVWVCB8IEdFTkhEX0ZMX1NVUFBS
RVNTX1BBUlRJVElPTl9JTkZPOworCWRpc2stPm1ham9yCQk9IG51bGxfbWFqb3I7CisJZGlzay0+
Zmlyc3RfbWlub3IJPSBudWxsYi0+aW5kZXg7CisJZGlzay0+Zm9wcwkJPSAmbnVsbF9mb3BzOwor
CWRpc2stPnByaXZhdGVfZGF0YQk9IG51bGxiOworCWRpc2stPnF1ZXVlCQk9IG51bGxiLT5xOwor
CXN0cm5jcHkoZGlzay0+ZGlza19uYW1lLCBudWxsYi0+ZGlza19uYW1lLCBESVNLX05BTUVfTEVO
KTsKKworCWFkZF9kaXNrKGRpc2spOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IG51bGxf
YWRkX2Rldih2b2lkKQoreworCXN0cnVjdCBudWxsYiAqbnVsbGI7CiAJaW50IHJ2OwogCiAJbnVs
bGIgPSBremFsbG9jX25vZGUoc2l6ZW9mKCpudWxsYiksIEdGUF9LRVJORUwsIGhvbWVfbm9kZSk7
CkBAIC03MTYsNDIgKzc1MSwxOSBAQCBzdGF0aWMgaW50IG51bGxfYWRkX2Rldih2b2lkKQogCiAJ
c3ByaW50ZihudWxsYi0+ZGlza19uYW1lLCAibnVsbGIlZCIsIG51bGxiLT5pbmRleCk7CiAKLQlp
ZiAodXNlX2xpZ2h0bnZtKSB7Ci0JCXJ2ID0gbnZtX3JlZ2lzdGVyKG51bGxiLT5xLCBudWxsYi0+
ZGlza19uYW1lLAotCQkJCQkJCSZudWxsX2xudm1fZGV2X29wcyk7Ci0JCWlmIChydikKLQkJCWdv
dG8gb3V0X2NsZWFudXBfYmxrX3F1ZXVlOwotCQlnb3RvIGRvbmU7Ci0JfQorCWlmICh1c2VfbGln
aHRudm0pCisJCXJ2ID0gbnVsbF9udm1fcmVnaXN0ZXIobnVsbGIpOworCWVsc2UKKwkJcnYgPSBu
dWxsX2dlbmRpc2tfcmVnaXN0ZXIobnVsbGIpOwogCi0JZGlzayA9IG51bGxiLT5kaXNrID0gYWxs
b2NfZGlza19ub2RlKDEsIGhvbWVfbm9kZSk7Ci0JaWYgKCFkaXNrKSB7Ci0JCXJ2ID0gLUVOT01F
TTsKLQkJZ290byBvdXRfY2xlYW51cF9saWdodG52bTsKLQl9Ci0Jc2l6ZSA9IGdiICogMTAyNCAq
IDEwMjQgKiAxMDI0VUxMOwotCXNldF9jYXBhY2l0eShkaXNrLCBzaXplID4+IDkpOworCWlmIChy
dikKKwkJZ290byBvdXRfY2xlYW51cF9ibGtfcXVldWU7CiAKLQlkaXNrLT5mbGFncyB8PSBHRU5I
RF9GTF9FWFRfREVWVCB8IEdFTkhEX0ZMX1NVUFBSRVNTX1BBUlRJVElPTl9JTkZPOwotCWRpc2st
Pm1ham9yCQk9IG51bGxfbWFqb3I7Ci0JZGlzay0+Zmlyc3RfbWlub3IJPSBudWxsYi0+aW5kZXg7
Ci0JZGlzay0+Zm9wcwkJPSAmbnVsbF9mb3BzOwotCWRpc2stPnByaXZhdGVfZGF0YQk9IG51bGxi
OwotCWRpc2stPnF1ZXVlCQk9IG51bGxiLT5xOwotCXN0cm5jcHkoZGlzay0+ZGlza19uYW1lLCBu
dWxsYi0+ZGlza19uYW1lLCBESVNLX05BTUVfTEVOKTsKLQotCWFkZF9kaXNrKGRpc2spOwotCi1k
b25lOgogCW11dGV4X2xvY2soJmxvY2spOwogCWxpc3RfYWRkX3RhaWwoJm51bGxiLT5saXN0LCAm
bnVsbGJfbGlzdCk7CiAJbXV0ZXhfdW5sb2NrKCZsb2NrKTsKIAogCXJldHVybiAwOwotCi1vdXRf
Y2xlYW51cF9saWdodG52bToKLQlpZiAodXNlX2xpZ2h0bnZtKQotCQludm1fdW5yZWdpc3Rlcihu
dWxsYi0+ZGlza19uYW1lKTsKIG91dF9jbGVhbnVwX2Jsa19xdWV1ZToKIAlibGtfY2xlYW51cF9x
dWV1ZShudWxsYi0+cSk7CiBvdXRfY2xlYW51cF90YWdzOgotLSAKMi4xLjQKCgpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1udm1lIG1haWxpbmcg
bGlzdApMaW51eC1udm1lQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh
ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1udm1lCg==
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH 3/6] blk-mq: register device instead of disk
2016-06-29 14:51 [PATCH 0/6] enable sysfs for lightnvm Matias Bjørling
2016-06-29 14:51 ` [PATCH 1/6] nvme: refactor namespaces to support non-gendisk devices Matias Bjørling
2016-06-29 14:51 ` [PATCH 2/6] null_blk: refactor " Matias Bjørling
@ 2016-06-29 14:51 ` Matias Bjørling
2016-06-29 14:51 ` [PATCH 4/6] lightnvm: let drivers control the lifetime of nvm_dev Matias Bjørling
` (2 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Matias Bjørling @ 2016-06-29 14:51 UTC (permalink / raw)
To: linux-block, linux-kernel, axboe, keith.busch, linux-nvme,
dm-devel
Cc: Matias Bjørling
RW5hYmxlIGRldmljZXMgd2l0aG91dCBhIGdlbmRpc2sgaW5zdGFuY2UgdG8gcmVnaXN0ZXIgaXRz
ZWxmIHdpdGggYmxrLW1xCmFuZCBleHBvc2UgdGhlIGFzc29jaWF0ZWQgbXVsdGktcXVldWUgc3lz
ZnMgZW50cmllcy4KClNpZ25lZC1vZmYtYnk6IE1hdGlhcyBCasO4cmxpbmcgPG1AYmpvcmxpbmcu
bWU+Ci0tLQogYmxvY2svYmxrLW1xLXN5c2ZzLmMgICB8IDEzICsrKysrLS0tLS0tLS0KIGJsb2Nr
L2Jsay1zeXNmcy5jICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL21kL2RtLmMgICAgICAgIHwgIDIg
Ky0KIGluY2x1ZGUvbGludXgvYmxrLW1xLmggfCAgNCArKy0tCiA0IGZpbGVzIGNoYW5nZWQsIDEw
IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay1t
cS1zeXNmcy5jIGIvYmxvY2svYmxrLW1xLXN5c2ZzLmMKaW5kZXggNGVhNGRkOC4uZjY3YjVjMSAx
MDA2NDQKLS0tIGEvYmxvY2svYmxrLW1xLXN5c2ZzLmMKKysrIGIvYmxvY2svYmxrLW1xLXN5c2Zz
LmMKQEAgLTM4MCw5ICszODAsOCBAQCBzdGF0aWMgaW50IGJsa19tcV9yZWdpc3Rlcl9oY3R4KHN0
cnVjdCBibGtfbXFfaHdfY3R4ICpoY3R4KQogCXJldHVybiByZXQ7CiB9CiAKLXZvaWQgYmxrX21x
X3VucmVnaXN0ZXJfZGlzayhzdHJ1Y3QgZ2VuZGlzayAqZGlzaykKK3ZvaWQgYmxrX21xX3VucmVn
aXN0ZXJfZGV2KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJlcXVlc3RfcXVldWUgKnEpCiB7
Ci0Jc3RydWN0IHJlcXVlc3RfcXVldWUgKnEgPSBkaXNrLT5xdWV1ZTsKIAlzdHJ1Y3QgYmxrX21x
X2h3X2N0eCAqaGN0eDsKIAlzdHJ1Y3QgYmxrX21xX2N0eCAqY3R4OwogCWludCBpLCBqOwpAQCAt
NDAyLDcgKzQwMSw3IEBAIHZvaWQgYmxrX21xX3VucmVnaXN0ZXJfZGlzayhzdHJ1Y3QgZ2VuZGlz
ayAqZGlzaykKIAlrb2JqZWN0X2RlbCgmcS0+bXFfa29iaik7CiAJa29iamVjdF9wdXQoJnEtPm1x
X2tvYmopOwogCi0Ja29iamVjdF9wdXQoJmRpc2tfdG9fZGV2KGRpc2spLT5rb2JqKTsKKwlrb2Jq
ZWN0X3B1dCgmZGV2LT5rb2JqKTsKIAogCXEtPm1xX3N5c2ZzX2luaXRfZG9uZSA9IGZhbHNlOwog
CWJsa19tcV9lbmFibGVfaG90cGx1ZygpOwpAQCAtNDI2LDEwICs0MjUsOCBAQCBzdGF0aWMgdm9p
ZCBibGtfbXFfc3lzZnNfaW5pdChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSkKIAl9CiB9CiAKLWlu
dCBibGtfbXFfcmVnaXN0ZXJfZGlzayhzdHJ1Y3QgZ2VuZGlzayAqZGlzaykKK2ludCBibGtfbXFf
cmVnaXN0ZXJfZGV2KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJlcXVlc3RfcXVldWUgKnEp
CiB7Ci0Jc3RydWN0IGRldmljZSAqZGV2ID0gZGlza190b19kZXYoZGlzayk7Ci0Jc3RydWN0IHJl
cXVlc3RfcXVldWUgKnEgPSBkaXNrLT5xdWV1ZTsKIAlzdHJ1Y3QgYmxrX21xX2h3X2N0eCAqaGN0
eDsKIAlpbnQgcmV0LCBpOwogCkBAIC00NTAsNyArNDQ3LDcgQEAgaW50IGJsa19tcV9yZWdpc3Rl
cl9kaXNrKHN0cnVjdCBnZW5kaXNrICpkaXNrKQogCX0KIAogCWlmIChyZXQpCi0JCWJsa19tcV91
bnJlZ2lzdGVyX2Rpc2soZGlzayk7CisJCWJsa19tcV91bnJlZ2lzdGVyX2RldihkZXYsIHEpOwog
CWVsc2UKIAkJcS0+bXFfc3lzZnNfaW5pdF9kb25lID0gdHJ1ZTsKIG91dDoKQEAgLTQ1OCw3ICs0
NTUsNyBAQCBvdXQ6CiAKIAlyZXR1cm4gcmV0OwogfQotRVhQT1JUX1NZTUJPTF9HUEwoYmxrX21x
X3JlZ2lzdGVyX2Rpc2spOworRVhQT1JUX1NZTUJPTF9HUEwoYmxrX21xX3JlZ2lzdGVyX2Rldik7
CiAKIHZvaWQgYmxrX21xX3N5c2ZzX3VucmVnaXN0ZXIoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEp
CiB7CmRpZmYgLS1naXQgYS9ibG9jay9ibGstc3lzZnMuYyBiL2Jsb2NrL2Jsay1zeXNmcy5jCmlu
ZGV4IDk5MjA1OTYuLjUyMjNjNWYgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsay1zeXNmcy5jCisrKyBi
L2Jsb2NrL2Jsay1zeXNmcy5jCkBAIC02OTMsNyArNjkzLDcgQEAgaW50IGJsa19yZWdpc3Rlcl9x
dWV1ZShzdHJ1Y3QgZ2VuZGlzayAqZGlzaykKIAlrb2JqZWN0X3VldmVudCgmcS0+a29iaiwgS09C
Sl9BREQpOwogCiAJaWYgKHEtPm1xX29wcykKLQkJYmxrX21xX3JlZ2lzdGVyX2Rpc2soZGlzayk7
CisJCWJsa19tcV9yZWdpc3Rlcl9kZXYoZGlza190b19kZXYoZGlzayksIHEpOwogCiAJaWYgKCFx
LT5yZXF1ZXN0X2ZuKQogCQlyZXR1cm4gMDsKQEAgLTcxOCw3ICs3MTgsNyBAQCB2b2lkIGJsa191
bnJlZ2lzdGVyX3F1ZXVlKHN0cnVjdCBnZW5kaXNrICpkaXNrKQogCQlyZXR1cm47CiAKIAlpZiAo
cS0+bXFfb3BzKQotCQlibGtfbXFfdW5yZWdpc3Rlcl9kaXNrKGRpc2spOworCQlibGtfbXFfdW5y
ZWdpc3Rlcl9kZXYoZGlza190b19kZXYoZGlzayksIHEpOwogCiAJaWYgKHEtPnJlcXVlc3RfZm4p
CiAJCWVsdl91bnJlZ2lzdGVyX3F1ZXVlKHEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS5j
IGIvZHJpdmVycy9tZC9kbS5jCmluZGV4IGFiYTdlZDkuLjlkZTNhOWMgMTAwNjQ0Ci0tLSBhL2Ry
aXZlcnMvbWQvZG0uYworKysgYi9kcml2ZXJzL21kL2RtLmMKQEAgLTI3OTgsNyArMjc5OCw3IEBA
IHN0YXRpYyBpbnQgZG1fbXFfaW5pdF9yZXF1ZXN0X3F1ZXVlKHN0cnVjdCBtYXBwZWRfZGV2aWNl
ICptZCwKIAlkbV9pbml0X21kX3F1ZXVlKG1kKTsKIAogCS8qIGJhY2tmaWxsICdtcScgc3lzZnMg
cmVnaXN0cmF0aW9uIG5vcm1hbGx5IGRvbmUgaW4gYmxrX3JlZ2lzdGVyX3F1ZXVlICovCi0JYmxr
X21xX3JlZ2lzdGVyX2Rpc2sobWQtPmRpc2spOworCWJsa19tcV9yZWdpc3Rlcl9kZXYoZGlza190
b19kZXYobWQtPmRpc2spLCBxKTsKIAogCXJldHVybiAwOwogCmRpZmYgLS1naXQgYS9pbmNsdWRl
L2xpbnV4L2Jsay1tcS5oIGIvaW5jbHVkZS9saW51eC9ibGstbXEuaAppbmRleCAyNDk4ZmRmLi5h
YjZmYjMyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Jsay1tcS5oCisrKyBiL2luY2x1ZGUv
bGludXgvYmxrLW1xLmgKQEAgLTE3Niw4ICsxNzYsOCBAQCBlbnVtIHsKIHN0cnVjdCByZXF1ZXN0
X3F1ZXVlICpibGtfbXFfaW5pdF9xdWV1ZShzdHJ1Y3QgYmxrX21xX3RhZ19zZXQgKik7CiBzdHJ1
Y3QgcmVxdWVzdF9xdWV1ZSAqYmxrX21xX2luaXRfYWxsb2NhdGVkX3F1ZXVlKHN0cnVjdCBibGtf
bXFfdGFnX3NldCAqc2V0LAogCQkJCQkJICBzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSk7Ci1pbnQg
YmxrX21xX3JlZ2lzdGVyX2Rpc2soc3RydWN0IGdlbmRpc2sgKik7Ci12b2lkIGJsa19tcV91bnJl
Z2lzdGVyX2Rpc2soc3RydWN0IGdlbmRpc2sgKik7CitpbnQgYmxrX21xX3JlZ2lzdGVyX2Rldihz
dHJ1Y3QgZGV2aWNlICosIHN0cnVjdCByZXF1ZXN0X3F1ZXVlICopOwordm9pZCBibGtfbXFfdW5y
ZWdpc3Rlcl9kZXYoc3RydWN0IGRldmljZSAqLCBzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqKTsKIAog
aW50IGJsa19tcV9hbGxvY190YWdfc2V0KHN0cnVjdCBibGtfbXFfdGFnX3NldCAqc2V0KTsKIHZv
aWQgYmxrX21xX2ZyZWVfdGFnX3NldChzdHJ1Y3QgYmxrX21xX3RhZ19zZXQgKnNldCk7Ci0tIAoy
LjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxp
bnV4LW52bWUgbWFpbGluZyBsaXN0CkxpbnV4LW52bWVAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw
Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW52bWUK
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH 4/6] lightnvm: let drivers control the lifetime of nvm_dev
2016-06-29 14:51 [PATCH 0/6] enable sysfs for lightnvm Matias Bjørling
` (2 preceding siblings ...)
2016-06-29 14:51 ` [PATCH 3/6] blk-mq: register device instead of disk Matias Bjørling
@ 2016-06-29 14:51 ` Matias Bjørling
2016-06-29 14:51 ` [PATCH 5/6] lightnvm: expose device geometry through sysfs Matias Bjørling
2016-06-29 14:51 ` [PATCH 6/6] lightnvm: expose gennvm target type " Matias Bjørling
5 siblings, 0 replies; 10+ messages in thread
From: Matias Bjørling @ 2016-06-29 14:51 UTC (permalink / raw)
To: linux-block, linux-kernel, axboe, keith.busch, linux-nvme,
dm-devel
Cc: Matias Bjørling
TGlnaHROVk0gZG9lcyBub3QgY3VycmVudGx5IGV4cG9zZSB0aGUgZGV2aWNlIGRyaXZlciBzeXNm
cyBzcGVjaWZpYwplbnRyaWVzIHRvIHVzZXItc3BhY2UsIGFzIHRoZSBkZXZpY2UgZHJpdmVyIHNr
aXBzIHRoZSBpbml0aWFsaXphdGlvbiBvZgpnZW5kaXNrLgoKVG8gZW5hYmxlIGEgZGV2aWNlIGRy
aXZlciBzeXNmcyBlbnRyaWVzIHRvIGJlIGV4cG9zZWQsIHdlIG5lZWQgYSBzdHJ1Y3QKZGV2aWNl
IHRvIGF0dGFjaCBpdCB0by4gVG8gYWxsb3cgYm90aCB0aGUgZGV2aWNlIGRyaXZlciBhbmQgTGln
aHROVk0gdG8KYWNjZXNzIHRoZSBzYW1lIHN0cnVjdCBkZXZpY2UsIHdlIG5lZWQgdGhlIGRldmlj
ZSBkcml2ZXIgdG8gdHJhY2sgdGhlCmxpZmV0aW1lIG9mIHRoZSBudm1fZGV2IHN0cnVjdHVyZS4K
ClRoaXMgcGF0Y2ggcmVmYWN0b3JzIHRoZSB0d28gdXNlcnMgb2YgTGlnaHROVk0gKE5WTWUgYW5k
IG51bGxfYmxrKSwKZW5hYmxlcyB0aGVtIHRvIGFsbG9jYXRlIGFuZCBmcmVlIG52bV9kZXYsIGFu
ZCBhdCBsYXN0IHJlbW92ZXMgZ2VuZGlzawp1c2FnZSB3aGVuIGEgTGlnaHROVk0gZGV2aWNlIGlz
IHVzZWQuCgpTaWduZWQtb2ZmLWJ5OiBNYXRpYXMgQmrDuHJsaW5nIDxtQGJqb3JsaW5nLm1lPgot
LS0KIGRyaXZlcnMvYmxvY2svbnVsbF9ibGsuYyAgICAgfCAyMiArKysrKysrKysrKysrKysrKysr
Ky0tCiBkcml2ZXJzL2xpZ2h0bnZtL2NvcmUuYyAgICAgIHwgMzQgKysrKysrKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9udm1lL2hvc3QvY29yZS5jICAgICB8IDM0ICsrKysr
KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvbnZtZS9ob3N0L2xpZ2h0bnZt
LmMgfCAzMyArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIGRyaXZlcnMvbnZtZS9o
b3N0L252bWUuaCAgICAgfCAgOCArKysrKy0tLQogaW5jbHVkZS9saW51eC9saWdodG52bS5oICAg
ICB8IDE1ICsrKysrKysrKy0tLS0tLQogNiBmaWxlcyBjaGFuZ2VkLCA4MSBpbnNlcnRpb25zKCsp
LCA2NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL251bGxfYmxrLmMg
Yi9kcml2ZXJzL2Jsb2NrL251bGxfYmxrLmMKaW5kZXggMzExN2RmMS4uNWEwZGE4YiAxMDA2NDQK
LS0tIGEvZHJpdmVycy9ibG9jay9udWxsX2Jsay5jCisrKyBiL2RyaXZlcnMvYmxvY2svbnVsbF9i
bGsuYwpAQCAtMzQsNiArMzQsNyBAQCBzdHJ1Y3QgbnVsbGIgewogCXVuc2lnbmVkIGludCBpbmRl
eDsKIAlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcTsKIAlzdHJ1Y3QgZ2VuZGlzayAqZGlzazsKKwlz
dHJ1Y3QgbnZtX2RldiAqbmRldjsKIAlzdHJ1Y3QgYmxrX21xX3RhZ19zZXQgdGFnX3NldDsKIAlz
dHJ1Y3QgaHJ0aW1lciB0aW1lcjsKIAl1bnNpZ25lZCBpbnQgcXVldWVfZGVwdGg7CkBAIC01NTAs
MTIgKzU1MSwyOSBAQCBzdGF0aWMgc3RydWN0IG52bV9kZXZfb3BzIG51bGxfbG52bV9kZXZfb3Bz
ID0gewogCiBzdGF0aWMgaW50IG51bGxfbnZtX3JlZ2lzdGVyKHN0cnVjdCBudWxsYiAqbnVsbGIp
CiB7Ci0JcmV0dXJuIG52bV9yZWdpc3RlcihudWxsYi0+cSwgbnVsbGItPmRpc2tfbmFtZSwgJm51
bGxfbG52bV9kZXZfb3BzKTsKKwlzdHJ1Y3QgbnZtX2RldiAqZGV2OworCWludCBydjsKKworCWRl
diA9IG52bV9hbGxvY19kZXYoMCk7CisJaWYgKCFkZXYpCisJCXJldHVybiAtRU5PTUVNOworCisJ
ZGV2LT5xID0gbnVsbGItPnE7CisJbWVtY3B5KGRldi0+bmFtZSwgbnVsbGItPmRpc2tfbmFtZSwg
RElTS19OQU1FX0xFTik7CisJZGV2LT5vcHMgPSAmbnVsbF9sbnZtX2Rldl9vcHM7CisKKwlydiA9
IG52bV9yZWdpc3RlcihkZXYpOworCWlmIChydikgeworCQlrZnJlZShkZXYpOworCQlyZXR1cm4g
cnY7CisJfQorCW51bGxiLT5uZGV2ID0gZGV2OworCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9p
ZCBudWxsX252bV91bnJlZ2lzdGVyKHN0cnVjdCBudWxsYiAqbnVsbGIpCiB7Ci0JbnZtX3VucmVn
aXN0ZXIobnVsbGItPmRpc2tfbmFtZSk7CisJbnZtX3VucmVnaXN0ZXIobnVsbGItPm5kZXYpOwog
fQogI2Vsc2UKIHN0YXRpYyBpbnQgbnVsbF9udm1fcmVnaXN0ZXIoc3RydWN0IG51bGxiICpudWxs
YikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGlnaHRudm0vY29yZS5jIGIvZHJpdmVycy9saWdodG52
bS9jb3JlLmMKaW5kZXggMjVjNWRmOS4uMDY1NGMwNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9saWdo
dG52bS9jb3JlLmMKKysrIGIvZHJpdmVycy9saWdodG52bS9jb3JlLmMKQEAgLTY2MCwyMyArNjYw
LDE1IEBAIHN0YXRpYyB2b2lkIG52bV9leGl0KHN0cnVjdCBudm1fZGV2ICpkZXYpCiAJcHJfaW5m
bygibnZtOiBzdWNjZXNzZnVsbHkgdW5sb2FkZWRcbiIpOwogfQogCi1pbnQgbnZtX3JlZ2lzdGVy
KHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCBjaGFyICpkaXNrX25hbWUsCi0JCQkJCQkJc3RydWN0
IG52bV9kZXZfb3BzICpvcHMpCitzdHJ1Y3QgbnZtX2RldiAqbnZtX2FsbG9jX2RldihpbnQgbm9k
ZSkKK3sKKwlyZXR1cm4ga3phbGxvY19ub2RlKHNpemVvZihzdHJ1Y3QgbnZtX2RldiksIEdGUF9L
RVJORUwsIG5vZGUpOworfQorCitpbnQgbnZtX3JlZ2lzdGVyKHN0cnVjdCBudm1fZGV2ICpkZXYp
CiB7Ci0Jc3RydWN0IG52bV9kZXYgKmRldjsKIAlpbnQgcmV0OwogCi0JaWYgKCFvcHMtPmlkZW50
aXR5KQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWRldiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBu
dm1fZGV2KSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFkZXYpCi0JCXJldHVybiAtRU5PTUVNOwotCi0J
ZGV2LT5xID0gcTsKLQlkZXYtPm9wcyA9IG9wczsKLQlzdHJuY3B5KGRldi0+bmFtZSwgZGlza19u
YW1lLCBESVNLX05BTUVfTEVOKTsKLQogCXJldCA9IG52bV9pbml0KGRldik7CiAJaWYgKHJldCkK
IAkJZ290byBlcnJfaW5pdDsKQEAgLTcxNCwyOSArNzA2LDE3IEBAIGludCBudm1fcmVnaXN0ZXIo
c3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIGNoYXIgKmRpc2tfbmFtZSwKIAlyZXR1cm4gMDsKIGVy
cl9pbml0OgogCWtmcmVlKGRldi0+bHVuX21hcCk7Ci0Ja2ZyZWUoZGV2KTsKIAlyZXR1cm4gcmV0
OwogfQogRVhQT1JUX1NZTUJPTChudm1fcmVnaXN0ZXIpOwogCi12b2lkIG52bV91bnJlZ2lzdGVy
KGNoYXIgKmRpc2tfbmFtZSkKK3ZvaWQgbnZtX3VucmVnaXN0ZXIoc3RydWN0IG52bV9kZXYgKmRl
dikKIHsKLQlzdHJ1Y3QgbnZtX2RldiAqZGV2OwotCiAJZG93bl93cml0ZSgmbnZtX2xvY2spOwot
CWRldiA9IG52bV9maW5kX252bV9kZXYoZGlza19uYW1lKTsKLQlpZiAoIWRldikgewotCQlwcl9l
cnIoIm52bTogY291bGQgbm90IGZpbmQgZGV2aWNlICVzIHRvIHVucmVnaXN0ZXJcbiIsCi0JCQkJ
CQkJCWRpc2tfbmFtZSk7Ci0JCXVwX3dyaXRlKCZudm1fbG9jayk7Ci0JCXJldHVybjsKLQl9Ci0K
IAlsaXN0X2RlbCgmZGV2LT5kZXZpY2VzKTsKIAl1cF93cml0ZSgmbnZtX2xvY2spOwogCiAJbnZt
X2V4aXQoZGV2KTsKLQlrZnJlZShkZXYpOwogfQogRVhQT1JUX1NZTUJPTChudm1fdW5yZWdpc3Rl
cik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYyBiL2RyaXZlcnMvbnZt
ZS9ob3N0L2NvcmUuYwppbmRleCBmNjE1YjZiLi5mZTEzNWQ5IDEwMDY0NAotLS0gYS9kcml2ZXJz
L252bWUvaG9zdC9jb3JlLmMKKysrIGIvZHJpdmVycy9udm1lL2hvc3QvY29yZS5jCkBAIC0xMzcs
MTIgKzEzNywxNCBAQCBzdGF0aWMgdm9pZCBudm1lX2ZyZWVfbnMoc3RydWN0IGtyZWYgKmtyZWYp
CiB7CiAJc3RydWN0IG52bWVfbnMgKm5zID0gY29udGFpbmVyX29mKGtyZWYsIHN0cnVjdCBudm1l
X25zLCBrcmVmKTsKIAotCWlmIChucy0+dHlwZSA9PSBOVk1FX05TX0xJR0hUTlZNKQotCQludm1l
X252bV91bnJlZ2lzdGVyKG5zLT5xdWV1ZSwgbnMtPmRpc2stPmRpc2tfbmFtZSk7CisJaWYgKG5z
LT5uZGV2KQorCQludm1lX252bV91bnJlZ2lzdGVyKG5zKTsKIAotCXNwaW5fbG9jaygmZGV2X2xp
c3RfbG9jayk7Ci0JbnMtPmRpc2stPnByaXZhdGVfZGF0YSA9IE5VTEw7Ci0Jc3Bpbl91bmxvY2so
JmRldl9saXN0X2xvY2spOworCWlmIChucy0+ZGlzaykgeworCQlzcGluX2xvY2soJmRldl9saXN0
X2xvY2spOworCQlucy0+ZGlzay0+cHJpdmF0ZV9kYXRhID0gTlVMTDsKKwkJc3Bpbl91bmxvY2so
JmRldl9saXN0X2xvY2spOworCX0KIAogCXB1dF9kaXNrKG5zLT5kaXNrKTsKIAlpZGFfc2ltcGxl
X3JlbW92ZSgmbnMtPmN0cmwtPm5zX2lkYSwgbnMtPmluc3RhbmNlKTsKQEAgLTc4OCw4ICs3OTAs
NyBAQCBzdGF0aWMgdm9pZCBudm1lX2NvbmZpZ19kaXNjYXJkKHN0cnVjdCBudm1lX25zICpucykK
IHN0YXRpYyBpbnQgbnZtZV9yZXZhbGlkYXRlX25zKHN0cnVjdCBudm1lX25zICpucywgc3RydWN0
IG52bWVfaWRfbnMgKippZCkKIHsKIAlpZiAobnZtZV9pZGVudGlmeV9ucyhucy0+Y3RybCwgbnMt
Pm5zX2lkLCBpZCkpIHsKLQkJZGV2X3dhcm4oZGlza190b19kZXYobnMtPmRpc2spLCAiJXM6IElk
ZW50aWZ5IGZhaWx1cmVcbiIsCi0JCQkJX19mdW5jX18pOworCQlkZXZfd2Fybihucy0+Y3RybC0+
ZGV2LCAiJXM6IElkZW50aWZ5IGZhaWx1cmVcbiIsIF9fZnVuY19fKTsKIAkJcmV0dXJuIC1FTk9E
RVY7CiAJfQogCkBAIC0xNDczLDE4ICsxNDc0LDExIEBAIHN0YXRpYyB2b2lkIG52bWVfYWxsb2Nf
bnMoc3RydWN0IG52bWVfY3RybCAqY3RybCwgdW5zaWduZWQgbnNpZCkKIAlzcHJpbnRmKGRpc2tf
bmFtZSwgIm52bWUlZG4lZCIsIGN0cmwtPmluc3RhbmNlLCBucy0+aW5zdGFuY2UpOwogCiAJaWYg
KG52bWVfbnZtX25zX3N1cHBvcnRlZChucywgaWQpKSB7Ci0JCWlmIChudm1lX252bV9yZWdpc3Rl
cihucy0+cXVldWUsIGRpc2tfbmFtZSkpIHsKLQkJCWRldl93YXJuKGN0cmwtPmRldiwKLQkJCQki
JXM6IExpZ2h0TlZNIGluaXQgZmFpbHVyZVxuIiwgX19mdW5jX18pOworCQlpZiAobnZtZV9udm1f
cmVnaXN0ZXIobnMsIGRpc2tfbmFtZSwgbm9kZSkpIHsKKwkJCWRldl93YXJuKGN0cmwtPmRldiwg
IiVzOiBMaWdodE5WTSBpbml0IGZhaWx1cmVcbiIsCisJCQkJCQkJCV9fZnVuY19fKTsKIAkJCWdv
dG8gb3V0X2ZyZWVfaWQ7CiAJCX0KLQotCQlkaXNrID0gYWxsb2NfZGlza19ub2RlKDAsIG5vZGUp
OwotCQlpZiAoIWRpc2spCi0JCQlnb3RvIG91dF9mcmVlX2lkOwotCQltZW1jcHkoZGlzay0+ZGlz
a19uYW1lLCBkaXNrX25hbWUsIERJU0tfTkFNRV9MRU4pOwotCQlucy0+ZGlzayA9IGRpc2s7Ci0J
CW5zLT50eXBlID0gTlZNRV9OU19MSUdIVE5WTTsKIAl9IGVsc2UgewogCQlkaXNrID0gYWxsb2Nf
ZGlza19ub2RlKDAsIG5vZGUpOwogCQlpZiAoIWRpc2spCkBAIC0xNTMyLDcgKzE1MjYsNyBAQCBz
dGF0aWMgdm9pZCBudm1lX25zX3JlbW92ZShzdHJ1Y3QgbnZtZV9ucyAqbnMpCiAJaWYgKHRlc3Rf
YW5kX3NldF9iaXQoTlZNRV9OU19SRU1PVklORywgJm5zLT5mbGFncykpCiAJCXJldHVybjsKIAot
CWlmIChucy0+ZGlzay0+ZmxhZ3MgJiBHRU5IRF9GTF9VUCkgeworCWlmIChucy0+ZGlzayAmJiBu
cy0+ZGlzay0+ZmxhZ3MgJiBHRU5IRF9GTF9VUCkgewogCQlpZiAoYmxrX2dldF9pbnRlZ3JpdHko
bnMtPmRpc2spKQogCQkJYmxrX2ludGVncml0eV91bnJlZ2lzdGVyKG5zLT5kaXNrKTsKIAkJc3lz
ZnNfcmVtb3ZlX2dyb3VwKCZkaXNrX3RvX2Rldihucy0+ZGlzayktPmtvYmosCkBAIC0xNTUyLDcg
KzE1NDYsNyBAQCBzdGF0aWMgdm9pZCBudm1lX3ZhbGlkYXRlX25zKHN0cnVjdCBudm1lX2N0cmwg
KmN0cmwsIHVuc2lnbmVkIG5zaWQpCiAKIAlucyA9IG52bWVfZmluZF9ucyhjdHJsLCBuc2lkKTsK
IAlpZiAobnMpIHsKLQkJaWYgKHJldmFsaWRhdGVfZGlzayhucy0+ZGlzaykpCisJCWlmIChucy0+
ZGlzayAmJiByZXZhbGlkYXRlX2Rpc2sobnMtPmRpc2spKQogCQkJbnZtZV9uc19yZW1vdmUobnMp
OwogCX0gZWxzZQogCQludm1lX2FsbG9jX25zKGN0cmwsIG5zaWQpOwpAQCAtMTg1Niw3ICsxODUw
LDcgQEAgdm9pZCBudm1lX2tpbGxfcXVldWVzKHN0cnVjdCBudm1lX2N0cmwgKmN0cmwpCiAJCSAq
IFJldmFsaWRhdGluZyBhIGRlYWQgbmFtZXNwYWNlIHNldHMgY2FwYWNpdHkgdG8gMC4gVGhpcyB3
aWxsCiAJCSAqIGVuZCBidWZmZXJlZCB3cml0ZXJzIGRpcnR5aW5nIHBhZ2VzIHRoYXQgY2FuJ3Qg
YmUgc3luY2VkLgogCQkgKi8KLQkJaWYgKCF0ZXN0X2FuZF9zZXRfYml0KE5WTUVfTlNfREVBRCwg
Jm5zLT5mbGFncykpCisJCWlmIChucy0+ZGlzayAmJiAhdGVzdF9hbmRfc2V0X2JpdChOVk1FX05T
X0RFQUQsICZucy0+ZmxhZ3MpKQogCQkJcmV2YWxpZGF0ZV9kaXNrKG5zLT5kaXNrKTsKIAogCQli
bGtfc2V0X3F1ZXVlX2R5aW5nKG5zLT5xdWV1ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL252bWUv
aG9zdC9saWdodG52bS5jIGIvZHJpdmVycy9udm1lL2hvc3QvbGlnaHRudm0uYwppbmRleCBiYTUx
NjAyLi5lYjc4MGVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL252bWUvaG9zdC9saWdodG52bS5jCisr
KyBiL2RyaXZlcnMvbnZtZS9ob3N0L2xpZ2h0bnZtLmMKQEAgLTQ3NCw5ICs0NzQsOCBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgbnZtZV9udm1fcnF0b2NtZChzdHJ1Y3QgcmVxdWVzdCAqcnEsIHN0cnVj
dCBudm1fcnEgKnJxZCwKIAljLT5waF9ydy5sZW5ndGggPSBjcHVfdG9fbGUxNihycWQtPm5yX3Bw
YXMgLSAxKTsKIAogCWlmIChycWQtPm9wY29kZSA9PSBOVk1fT1BfSEJXUklURSB8fCBycWQtPm9w
Y29kZSA9PSBOVk1fT1BfSEJSRUFEKQotCQkvKiBtb21lbnRhcmlseSBoYXJkY29kZSB0aGUgc2hp
ZnQgY29uZmlndXJhdGlvbi4gbGJhX3NoaWZ0IGZyb20KLQkJICogbnZtX2RldiB3aWxsIGJlIGF2
YWlsYWJsZSBpbiBhIGZvbGxvdy11cCBwYXRjaCAqLwotCQljLT5oYl9ydy5zbGJhID0gY3B1X3Rv
X2xlNjQocnFkLT5iaW8tPmJpX2l0ZXIuYmlfc2VjdG9yID4+IDMpOworCQljLT5oYl9ydy5zbGJh
ID0gY3B1X3RvX2xlNjQobnZtZV9ibG9ja19ucihucywKKwkJCQkJcnFkLT5iaW8tPmJpX2l0ZXIu
Ymlfc2VjdG9yKSk7CiB9CiAKIHN0YXRpYyB2b2lkIG52bWVfbnZtX2VuZF9pbyhzdHJ1Y3QgcmVx
dWVzdCAqcnEsIGludCBlcnJvcikKQEAgLTU5MywxNCArNTkyLDM0IEBAIHN0YXRpYyBzdHJ1Y3Qg
bnZtX2Rldl9vcHMgbnZtZV9udm1fZGV2X29wcyA9IHsKIAkubWF4X3BoeXNfc2VjdAkJPSA2NCwK
IH07CiAKLWludCBudm1lX252bV9yZWdpc3RlcihzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwgY2hh
ciAqZGlza19uYW1lKQoraW50IG52bWVfbnZtX3JlZ2lzdGVyKHN0cnVjdCBudm1lX25zICpucywg
Y2hhciAqZGlza19uYW1lLCBpbnQgbm9kZSkKIHsKLQlyZXR1cm4gbnZtX3JlZ2lzdGVyKHEsIGRp
c2tfbmFtZSwgJm52bWVfbnZtX2Rldl9vcHMpOworCXN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxID0g
bnMtPnF1ZXVlOworCXN0cnVjdCBudm1fZGV2ICpkZXY7CisKKwlkZXYgPSBudm1fYWxsb2NfZGV2
KG5vZGUpOworCWlmICghZGV2KQorCQlyZXR1cm4gLUVOT01FTTsKKworCWRldi0+cSA9IHE7CisJ
bWVtY3B5KGRldi0+bmFtZSwgZGlza19uYW1lLCBESVNLX05BTUVfTEVOKTsKKwlkZXYtPm9wcyA9
ICZudm1lX252bV9kZXZfb3BzOworCW5zLT5uZGV2ID0gZGV2OworCisJcmV0ID0gbnZtX3JlZ2lz
dGVyKGRldik7CisKKwlucy0+bGJhX3NoaWZ0ID0gaWxvZzIoZGV2LT5zZWNfc2l6ZSkgLSA5Owor
CisJaWYgKHN5c2ZzX2NyZWF0ZV9ncm91cCgmZGV2LT5kZXYua29iaiwgYXR0cnMpKQorCQlwcl93
YXJuKCIlczogZmFpbGVkIHRvIGNyZWF0ZSBzeXNmcyBncm91cCBmb3IgaWRlbnRpZmljYXRpb25c
biIsCisJCQlucy0+ZGlzay0+ZGlza19uYW1lKTsKKwlyZXR1cm4gcmV0OwogfQogCi12b2lkIG52
bWVfbnZtX3VucmVnaXN0ZXIoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIGNoYXIgKmRpc2tfbmFt
ZSkKK3ZvaWQgbnZtZV9udm1fdW5yZWdpc3RlcihzdHJ1Y3QgbnZtZV9ucyAqbnMpCiB7Ci0JbnZt
X3VucmVnaXN0ZXIoZGlza19uYW1lKTsKKwludm1fdW5yZWdpc3Rlcihucy0+bmRldik7CisJa2Zy
ZWUobnMtPm5kZXYpOwogfQogCiAvKiBtb3ZlIHRvIHNoYXJlZCBwbGFjZSB3aGVuIHVzZWQgaW4g
bXVsdGlwbGUgcGxhY2VzLiAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lL2hvc3QvbnZtZS5o
IGIvZHJpdmVycy9udm1lL2hvc3QvbnZtZS5oCmluZGV4IDI4MjQyMWYuLjdiNDliNDUgMTAwNjQ0
Ci0tLSBhL2RyaXZlcnMvbnZtZS9ob3N0L252bWUuaAorKysgYi9kcml2ZXJzL252bWUvaG9zdC9u
dm1lLmgKQEAgLTE4LDYgKzE4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KICNpbmNsdWRl
IDxsaW51eC9rcmVmLmg+CiAjaW5jbHVkZSA8bGludXgvYmxrLW1xLmg+CisjaW5jbHVkZSA8bGlu
dXgvbGlnaHRudm0uaD4KIAogZW51bSB7CiAJLyoKQEAgLTEyMiw2ICsxMjMsNyBAQCBzdHJ1Y3Qg
bnZtZV9ucyB7CiAJc3RydWN0IG52bWVfY3RybCAqY3RybDsKIAlzdHJ1Y3QgcmVxdWVzdF9xdWV1
ZSAqcXVldWU7CiAJc3RydWN0IGdlbmRpc2sgKmRpc2s7CisJc3RydWN0IG52bV9kZXYgKm5kZXY7
CiAJc3RydWN0IGtyZWYga3JlZjsKIAlpbnQgaW5zdGFuY2U7CiAKQEAgLTEzMyw3ICsxMzUsNiBA
QCBzdHJ1Y3QgbnZtZV9ucyB7CiAJdTE2IG1zOwogCWJvb2wgZXh0OwogCXU4IHBpX3R5cGU7Ci0J
aW50IHR5cGU7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogI2RlZmluZSBOVk1FX05TX1JFTU9W
SU5HIDAKQEAgLTI2OSwxMiArMjcwLDEzIEBAIGludCBudm1lX252bV9uc19zdXBwb3J0ZWQoc3Ry
dWN0IG52bWVfbnMgKm5zLCBzdHJ1Y3QgbnZtZV9pZF9ucyAqaWQpOwogaW50IG52bWVfbnZtX3Jl
Z2lzdGVyKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCBjaGFyICpkaXNrX25hbWUpOwogdm9pZCBu
dm1lX252bV91bnJlZ2lzdGVyKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCBjaGFyICpkaXNrX25h
bWUpOwogI2Vsc2UKLXN0YXRpYyBpbmxpbmUgaW50IG52bWVfbnZtX3JlZ2lzdGVyKHN0cnVjdCBy
ZXF1ZXN0X3F1ZXVlICpxLCBjaGFyICpkaXNrX25hbWUpCitzdGF0aWMgaW5saW5lIGludCBudm1l
X252bV9yZWdpc3RlcihzdHJ1Y3QgbnZtZV9ucyAqbnMsIGNoYXIgKmRpc2tfbmFtZSwKKwkJCQkJ
CQkJaW50IG5vZGUpCiB7CiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBudm1l
X252bV91bnJlZ2lzdGVyKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCBjaGFyICpkaXNrX25hbWUp
IHt9Oworc3RhdGljIGlubGluZSB2b2lkIG52bWVfbnZtX3VucmVnaXN0ZXIoc3RydWN0IG52bWVf
bnMgKm5zKSB7fTsKIAogc3RhdGljIGlubGluZSBpbnQgbnZtZV9udm1fbnNfc3VwcG9ydGVkKHN0
cnVjdCBudm1lX25zICpucywgc3RydWN0IG52bWVfaWRfbnMgKmlkKQogewpkaWZmIC0tZ2l0IGEv
aW5jbHVkZS9saW51eC9saWdodG52bS5oIGIvaW5jbHVkZS9saW51eC9saWdodG52bS5oCmluZGV4
IGJhNzhiODMuLjVhZmMyNjMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbGlnaHRudm0uaAor
KysgYi9pbmNsdWRlL2xpbnV4L2xpZ2h0bnZtLmgKQEAgLTUyNCw5ICs1MjQsOSBAQCBleHRlcm4g
c3RydWN0IG52bV9ibG9jayAqbnZtX2dldF9ibGsoc3RydWN0IG52bV9kZXYgKiwgc3RydWN0IG52
bV9sdW4gKiwKIAkJCQkJCQkJdW5zaWduZWQgbG9uZyk7CiBleHRlcm4gdm9pZCBudm1fcHV0X2Js
ayhzdHJ1Y3QgbnZtX2RldiAqLCBzdHJ1Y3QgbnZtX2Jsb2NrICopOwogCi1leHRlcm4gaW50IG52
bV9yZWdpc3RlcihzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqLCBjaGFyICosCi0JCQkJCQlzdHJ1Y3Qg
bnZtX2Rldl9vcHMgKik7Ci1leHRlcm4gdm9pZCBudm1fdW5yZWdpc3RlcihjaGFyICopOworZXh0
ZXJuIHN0cnVjdCBudm1fZGV2ICpudm1fYWxsb2NfZGV2KGludCk7CitleHRlcm4gaW50IG52bV9y
ZWdpc3RlcihzdHJ1Y3QgbnZtX2RldiAqKTsKK2V4dGVybiB2b2lkIG52bV91bnJlZ2lzdGVyKHN0
cnVjdCBudm1fZGV2ICopOwogCiB2b2lkIG52bV9tYXJrX2JsayhzdHJ1Y3QgbnZtX2RldiAqZGV2
LCBzdHJ1Y3QgcHBhX2FkZHIgcHBhLCBpbnQgdHlwZSk7CiAKQEAgLTU3NSwxMSArNTc1LDE0IEBA
IGV4dGVybiBpbnQgbnZtX2Rldl9mYWN0b3J5KHN0cnVjdCBudm1fZGV2ICosIGludCBmbGFncyk7
CiAjZWxzZSAvKiBDT05GSUdfTlZNICovCiBzdHJ1Y3QgbnZtX2Rldl9vcHM7CiAKLXN0YXRpYyBp
bmxpbmUgaW50IG52bV9yZWdpc3RlcihzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwgY2hhciAqZGlz
a19uYW1lLAotCQkJCQkJCXN0cnVjdCBudm1fZGV2X29wcyAqb3BzKQorc3RhdGljIGlubGluZSBz
dHJ1Y3QgbnZtX2RldiAqbnZtX2FsbG9jX2RldihpbnQgbm9kZSkKK3sKKwlyZXR1cm4gRVJSX1BU
UigtRUlOVkFMKTsKK30KK3N0YXRpYyBpbmxpbmUgaW50IG52bV9yZWdpc3RlcihzdHJ1Y3QgbnZt
X2RldiAqZGV2KQogewogCXJldHVybiAtRUlOVkFMOwogfQotc3RhdGljIGlubGluZSB2b2lkIG52
bV91bnJlZ2lzdGVyKGNoYXIgKmRpc2tfbmFtZSkge30KK3N0YXRpYyBpbmxpbmUgdm9pZCBudm1f
dW5yZWdpc3RlcihzdHJ1Y3QgbnZtX2RldiAqZGV2KSB7fQogI2VuZGlmIC8qIENPTkZJR19OVk0g
Ki8KICNlbmRpZiAvKiBMSUdIVE5WTS5IICovCi0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LW52bWUgbWFpbGluZyBsaXN0Ckxp
bnV4LW52bWVAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9t
YWlsbWFuL2xpc3RpbmZvL2xpbnV4LW52bWUK
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH 5/6] lightnvm: expose device geometry through sysfs
2016-06-29 14:51 [PATCH 0/6] enable sysfs for lightnvm Matias Bjørling
` (3 preceding siblings ...)
2016-06-29 14:51 ` [PATCH 4/6] lightnvm: let drivers control the lifetime of nvm_dev Matias Bjørling
@ 2016-06-29 14:51 ` Matias Bjørling
2016-06-30 20:01 ` J Freyensee
2016-06-29 14:51 ` [PATCH 6/6] lightnvm: expose gennvm target type " Matias Bjørling
5 siblings, 1 reply; 10+ messages in thread
From: Matias Bjørling @ 2016-06-29 14:51 UTC (permalink / raw)
To: linux-block, linux-kernel, axboe, keith.busch, linux-nvme,
dm-devel
Cc: Simon A. F. Lund, Matias Bjørling
RnJvbTogIlNpbW9uIEEuIEYuIEx1bmQiIDxzbHVuZEBjbmV4bGFicy5jb20+CgpGb3IgYSBob3N0
IHRvIGFjY2VzcyBhbiBPcGVuLUNoYW5uZWwgU1NELCBpdCBoYXMgdG8ga25vdyBpdHMgZ2VvbWV0
cnksCnNvIHRoYXQgaXQgd3JpdGVzIGFuZCByZWFkcyBhdCB0aGUgYXBwcm9wcmlhdGUgZGV2aWNl
IGJvdW5kcy4KCkN1cnJlbnRseSwgdGhlIGdlb21ldHJ5IGluZm9ybWF0aW9uIGlzIGtlcHQgd2l0
aGluIHRoZSBrZXJuZWwsIGFuZCBub3QKZXhwb3J0ZWQgdG8gdXNlci1zcGFjZSBmb3IgY29uc3Vt
cHRpb24uIFRoaXMgcGF0Y2ggZXhwb3NlcyB0aGUKY29uZmlndXJhdGlvbiB0aHJvdWdoIHN5c2Zz
IGFuZCBlbmFibGVzIHVzZXItc3BhY2UgbGlicmFyaWVzLCBzdWNoIGFzCmxpYmxpZ2h0bnZtLCB0
byB1c2UgdGhlIHN5c2ZzIGltcGxlbWVudGF0aW9uIHRvIGdldCB0aGUgZ2VvbWV0cnkgb2YgYW4K
T3Blbi1DaGFubmVsIFNTRC4KClRoZSBzeXNmcyBlbnRyaWVzIGFyZSBzdG9yZWQgd2l0aGluIHRo
ZSBkZXZpY2UgaGllcmFyY2h5LCBhbmQgY2FuIGJlCmZvdW5kIHVzaW5nIHRoZSAibGlnaHRudm0i
IGRldmljZSB0eXBlLgoKQW4gZXhhbXBsZSBjb25maWd1cmF0aW9uIGxvb2tzIGxpa2UgdGhpczoK
Ci9zeXMvY2xhc3MvbnZtZS8K4pSU4pSA4pSAIG52bWUwbjEKICAg4pSc4pSA4pSAIGNhcGFiaWxp
dGllczogMwogICDilJzilIDilIAgZGV2aWNlX21vZGU6IDEKICAg4pSc4pSA4pSAIGNoYW5uZWxf
cGFyYWxsZWxpc206IDAKICAg4pSc4pSA4pSAIGVyYXNlX21heDogMTAwMDAwMAogICDilJzilIDi
lIAgZXJhc2VfdHlwOiAxMDAwMDAwCiAgIOKUnOKUgOKUgCBmbGFzaF9tZWRpYV90eXBlOiAwCiAg
IOKUnOKUgOKUgCBtZWRpYV9jYXBhYmlsaXRpZXM6IDB4MDAwMDAwMDEKICAg4pSc4pSA4pSAIG1l
ZGlhX3R5cGU6IDAKICAg4pSc4pSA4pSAIG11bHRpcGxhbmU6IDB4MDAwMTAxMDEKICAg4pSc4pSA
4pSAIG51bV9ibG9ja3M6IDEwMjIKICAg4pSc4pSA4pSAIG51bV9jaGFubmVsczogMQogICDilJzi
lIDilIAgbnVtX2x1bnM6IDQKICAg4pSc4pSA4pSAIG51bV9wYWdlczogNjQKICAg4pSc4pSA4pSA
IG51bV9wbGFuZXM6IDEKICAg4pSc4pSA4pSAIHBhZ2Vfc2l6ZTogNDA5NgogICDilJzilIDilIAg
cHJvZ19tYXg6IDEwMDAwMAogICDilJzilIDilIAgcHJvZ190eXA6IDEwMDAwMAogICDilJzilIDi
lIAgcmVhZF9tYXg6IDEwMDAwCiAgIOKUnOKUgOKUgCByZWFkX3R5cDogMTAwMDAKICAg4pSc4pSA
4pSAIHNlY3Rvcl9vb2Jfc2l6ZTogMAogICDilJzilIDilIAgc2VjdG9yX3NpemU6IDQwOTYKICAg
4pSc4pSA4pSAIG1lZGlhX21hbmFnZXI6IGdlbm52bQogICDilJzilIDilIAgcHBhX2Zvcm1hdDog
MHgzODA4MzAwODI4MDgwMDEwMTAxMDIwMDgKICAg4pSc4pSA4pSAIHZlbmRvcl9vcGNvZGU6IDAK
ICAg4pSU4pSA4pSAIHZlcnNpb246IDEKClNpZ25lZC1vZmYtYnk6IFNpbW9uIEEuIEYuIEx1bmQg
PHNsdW5kQGNuZXhsYWJzLmNvbT4KU2lnbmVkLW9mZi1ieTogTWF0aWFzIEJqw7hybGluZyA8bUBi
am9ybGluZy5tZT4KLS0tCiBkcml2ZXJzL2xpZ2h0bnZtL01ha2VmaWxlICAgIHwgICAyICstCiBk
cml2ZXJzL2xpZ2h0bnZtL2NvcmUuYyAgICAgIHwgIDIwICsrKy0tCiBkcml2ZXJzL2xpZ2h0bnZt
L2xpZ2h0bnZtLmggIHwgIDM1ICsrKysrKysrCiBkcml2ZXJzL2xpZ2h0bnZtL3N5c2ZzLmMgICAg
IHwgMTk1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZl
cnMvbnZtZS9ob3N0L2NvcmUuYyAgICAgfCAgMTMgKy0tCiBkcml2ZXJzL252bWUvaG9zdC9saWdo
dG52bS5jIHwgICA2ICstCiBkcml2ZXJzL252bWUvaG9zdC9udm1lLmggICAgIHwgIDIwICsrKyst
CiBpbmNsdWRlL2xpbnV4L2xpZ2h0bnZtLmggICAgIHwgICAzICsKIDggZmlsZXMgY2hhbmdlZCwg
Mjc3IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRy
aXZlcnMvbGlnaHRudm0vbGlnaHRudm0uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbGln
aHRudm0vc3lzZnMuYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGlnaHRudm0vTWFrZWZpbGUgYi9k
cml2ZXJzL2xpZ2h0bnZtL01ha2VmaWxlCmluZGV4IGE3YTBhMjIuLjFmNmI2NTIgMTAwNjQ0Ci0t
LSBhL2RyaXZlcnMvbGlnaHRudm0vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9saWdodG52bS9NYWtl
ZmlsZQpAQCAtMiw2ICsyLDYgQEAKICMgTWFrZWZpbGUgZm9yIE9wZW4tQ2hhbm5lbCBTU0RzLgog
IwogCi1vYmotJChDT05GSUdfTlZNKQkJOj0gY29yZS5vIHN5c2Jsay5vCitvYmotJChDT05GSUdf
TlZNKQkJOj0gY29yZS5vIHN5c2Jsay5vIHN5c2ZzLm8KIG9iai0kKENPTkZJR19OVk1fR0VOTlZN
KSAJKz0gZ2VubnZtLm8KIG9iai0kKENPTkZJR19OVk1fUlJQQykJCSs9IHJycGMubwpkaWZmIC0t
Z2l0IGEvZHJpdmVycy9saWdodG52bS9jb3JlLmMgYi9kcml2ZXJzL2xpZ2h0bnZtL2NvcmUuYwpp
bmRleCAwNjU0YzA2Li4wMjA4NjM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2xpZ2h0bnZtL2NvcmUu
YworKysgYi9kcml2ZXJzL2xpZ2h0bnZtL2NvcmUuYwpAQCAtMjcsNiArMjcsOCBAQAogI2luY2x1
ZGUgPGxpbnV4L2xpZ2h0bnZtLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQvc3lzY3RsLmg+CiAK
KyNpbmNsdWRlICJsaWdodG52bS5oIgorCiBzdGF0aWMgTElTVF9IRUFEKG52bV90Z3RfdHlwZXMp
Owogc3RhdGljIERFQ0xBUkVfUldTRU0obnZtX3RndHRfbG9jayk7CiBzdGF0aWMgTElTVF9IRUFE
KG52bV9tZ3JzKTsKQEAgLTU5OCwxNSArNjAwLDE5IEBAIHN0YXRpYyB2b2lkIG52bV9mcmVlX21n
cihzdHJ1Y3QgbnZtX2RldiAqZGV2KQogCWRldi0+bXQgPSBOVUxMOwogfQogCi1zdGF0aWMgdm9p
ZCBudm1fZnJlZShzdHJ1Y3QgbnZtX2RldiAqZGV2KQordm9pZCBudm1fZnJlZShzdHJ1Y3QgbnZt
X2RldiAqZGV2KQogewogCWlmICghZGV2KQogCQlyZXR1cm47CiAKIAludm1fZnJlZV9tZ3IoZGV2
KTsKIAorCWlmIChkZXYtPmRtYV9wb29sKQorCQlkZXYtPm9wcy0+ZGVzdHJveV9kbWFfcG9vbChk
ZXYtPmRtYV9wb29sKTsKKwogCWtmcmVlKGRldi0+bHB0YmwpOwogCWtmcmVlKGRldi0+bHVuX21h
cCk7CisJa2ZyZWUoZGV2KTsKIH0KIAogc3RhdGljIGludCBudm1faW5pdChzdHJ1Y3QgbnZtX2Rl
diAqZGV2KQpAQCAtNjUzLDExICs2NTksNyBAQCBlcnI6CiAKIHN0YXRpYyB2b2lkIG52bV9leGl0
KHN0cnVjdCBudm1fZGV2ICpkZXYpCiB7Ci0JaWYgKGRldi0+ZG1hX3Bvb2wpCi0JCWRldi0+b3Bz
LT5kZXN0cm95X2RtYV9wb29sKGRldi0+ZG1hX3Bvb2wpOwotCW52bV9mcmVlKGRldik7Ci0KLQlw
cl9pbmZvKCJudm06IHN1Y2Nlc3NmdWxseSB1bmxvYWRlZFxuIik7CisJbnZtX3N5c2ZzX3VucmVn
aXN0ZXJfZGV2KGRldik7CiB9CiAKIHN0cnVjdCBudm1fZGV2ICpudm1fYWxsb2NfZGV2KGludCBu
b2RlKQpAQCAtNjg4LDYgKzY5MCwxMCBAQCBpbnQgbnZtX3JlZ2lzdGVyKHN0cnVjdCBudm1fZGV2
ICpkZXYpCiAJCX0KIAl9CiAKKwlyZXQgPSBudm1fc3lzZnNfcmVnaXN0ZXJfZGV2KGRldik7CisJ
aWYgKHJldCkKKwkJZ290byBlcnJfcHBhbGlzdDsKKwogCWlmIChkZXYtPmlkZW50aXR5LmNhcCAm
IE5WTV9JRF9EQ0FQX0JCTEtNR01UKSB7CiAJCXJldCA9IG52bV9nZXRfc3lzYmxvY2soZGV2LCAm
ZGV2LT5zYik7CiAJCWlmICghcmV0KQpAQCAtNzA0LDYgKzcxMCw4IEBAIGludCBudm1fcmVnaXN0
ZXIoc3RydWN0IG52bV9kZXYgKmRldikKIAl1cF93cml0ZSgmbnZtX2xvY2spOwogCiAJcmV0dXJu
IDA7CitlcnJfcHBhbGlzdDoKKwlkZXYtPm9wcy0+ZGVzdHJveV9kbWFfcG9vbChkZXYtPmRtYV9w
b29sKTsKIGVycl9pbml0OgogCWtmcmVlKGRldi0+bHVuX21hcCk7CiAJcmV0dXJuIHJldDsKZGlm
ZiAtLWdpdCBhL2RyaXZlcnMvbGlnaHRudm0vbGlnaHRudm0uaCBiL2RyaXZlcnMvbGlnaHRudm0v
bGlnaHRudm0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45M2YxYWFjCi0t
LSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9saWdodG52bS9saWdodG52bS5oCkBAIC0wLDAgKzEs
MzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQ05FWCBMYWJzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogSW5pdGlhbCByZWxlYXNlOiBNYXRpYXMgQmpvcmxpbmcgPG1hdGlhc0BjbmV4
bGFicy5jb20+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbgorICogMiBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgKiBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksCisgKiBVU0EuCisgKgor
ICovCisKKyNpZm5kZWYgTElHSFROVk1fSAorI2RlZmluZSBMSUdIVE5WTV9ICisKKyNpbmNsdWRl
IDxsaW51eC9saWdodG52bS5oPgorCisvKiBjb3JlIC0+IHN5c2ZzLmMgKi8KK2ludCBudm1fc3lz
ZnNfcmVnaXN0ZXJfZGV2KHN0cnVjdCBudm1fZGV2ICopOwordm9pZCBudm1fc3lzZnNfdW5yZWdp
c3Rlcl9kZXYoc3RydWN0IG52bV9kZXYgKik7CitpbnQgbnZtX3N5c2ZzX3JlZ2lzdGVyKHZvaWQp
Owordm9pZCBudm1fc3lzZnNfdW5yZWdpc3Rlcih2b2lkKTsKKworLyogc3lzZnMgPiBjb3JlICov
Cit2b2lkIG52bV9mcmVlKHN0cnVjdCBudm1fZGV2ICopOworCisjZW5kaWYKZGlmZiAtLWdpdCBh
L2RyaXZlcnMvbGlnaHRudm0vc3lzZnMuYyBiL2RyaXZlcnMvbGlnaHRudm0vc3lzZnMuYwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzE0MTcyCi0tLSAvZGV2L251bGwKKysr
IGIvZHJpdmVycy9saWdodG52bS9zeXNmcy5jCkBAIC0wLDAgKzEsMTk1IEBACisjaW5jbHVkZSA8
bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvbGlnaHRudm0uaD4KKyNpbmNsdWRlIDxs
aW51eC9taXNjZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgva29iamVjdC5oPgorI2luY2x1ZGUg
PGxpbnV4L2Jsay1tcS5oPgorCisjaW5jbHVkZSAibGlnaHRudm0uaCIKKworc3RhdGljIHNzaXpl
X3QgbnZtX2Rldl9hdHRyX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAorCQkJCSBzdHJ1Y3QgZGV2
aWNlX2F0dHJpYnV0ZSAqZGF0dHIsIGNoYXIgKnBhZ2UpCit7CisJc3RydWN0IG52bV9kZXYgKm5k
ZXYgPSBjb250YWluZXJfb2YoZGV2LCBzdHJ1Y3QgbnZtX2RldiwgZGV2KTsKKwlzdHJ1Y3QgbnZt
X2lkICppZCA9ICZuZGV2LT5pZGVudGl0eTsKKwlzdHJ1Y3QgbnZtX2lkX2dyb3VwICpncnAgPSAm
aWQtPmdyb3Vwc1swXTsKKwlzdHJ1Y3QgYXR0cmlidXRlICphdHRyID0gJmRhdHRyLT5hdHRyOwor
CisJaWYgKHN0cmNtcChhdHRyLT5uYW1lLCAidmVyc2lvbiIpID09IDApIHsKKwkJcmV0dXJuIHNj
bnByaW50ZihwYWdlLCBQQUdFX1NJWkUsICIldVxuIiwgaWQtPnZlcl9pZCk7CisJfSBlbHNlIGlm
IChzdHJjbXAoYXR0ci0+bmFtZSwgInZlbmRvcl9vcGNvZGUiKSA9PSAwKSB7CisJCXJldHVybiBz
Y25wcmludGYocGFnZSwgUEFHRV9TSVpFLCAiJXVcbiIsIGlkLT52bW50KTsKKwl9IGVsc2UgaWYg
KHN0cmNtcChhdHRyLT5uYW1lLCAiY2FwYWJpbGl0aWVzIikgPT0gMCkgeworCQlyZXR1cm4gc2Nu
cHJpbnRmKHBhZ2UsIFBBR0VfU0laRSwgIiV1XG4iLCBpZC0+Y2FwKTsKKwl9IGVsc2UgaWYgKHN0
cmNtcChhdHRyLT5uYW1lLCAiZGV2aWNlX21vZGUiKSA9PSAwKSB7CisJCXJldHVybiBzY25wcmlu
dGYocGFnZSwgUEFHRV9TSVpFLCAiJXVcbiIsIGlkLT5kb20pOworCX0gZWxzZSBpZiAoc3RyY21w
KGF0dHItPm5hbWUsICJtZWRpYV9tYW5hZ2VyIikgPT0gMCkgeworCQlpZiAoIW5kZXYtPm10KQor
CQkJcmV0dXJuIHNjbnByaW50ZihwYWdlLCBQQUdFX1NJWkUsICIlc1xuIiwgIm5vbmUiKTsKKwkJ
cmV0dXJuIHNjbnByaW50ZihwYWdlLCBQQUdFX1NJWkUsICIlc1xuIiwgbmRldi0+bXQtPm5hbWUp
OworCX0gZWxzZSBpZiAoc3RyY21wKGF0dHItPm5hbWUsICJwcGFfZm9ybWF0IikgPT0gMCkgewor
CQlyZXR1cm4gc2NucHJpbnRmKHBhZ2UsIFBBR0VfU0laRSwKKwkJCSIweCUwMnglMDJ4JTAyeCUw
MnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeFxuIiwKKwkJCWlkLT5wcGFmLmNoX29m
ZnNldCwgaWQtPnBwYWYuY2hfbGVuLAorCQkJaWQtPnBwYWYubHVuX29mZnNldCwgaWQtPnBwYWYu
bHVuX2xlbiwKKwkJCWlkLT5wcGFmLnBsbl9vZmZzZXQsIGlkLT5wcGFmLnBsbl9sZW4sCisJCQlp
ZC0+cHBhZi5ibGtfb2Zmc2V0LCBpZC0+cHBhZi5ibGtfbGVuLAorCQkJaWQtPnBwYWYucGdfb2Zm
c2V0LCBpZC0+cHBhZi5wZ19sZW4sCisJCQlpZC0+cHBhZi5zZWN0X29mZnNldCwgaWQtPnBwYWYu
c2VjdF9sZW4pOworCX0gZWxzZSBpZiAoc3RyY21wKGF0dHItPm5hbWUsICJtZWRpYV90eXBlIikg
PT0gMCkgewkvKiB1OCAqLworCQlyZXR1cm4gc2NucHJpbnRmKHBhZ2UsIFBBR0VfU0laRSwgIiV1
XG4iLCBncnAtPm10eXBlKTsKKwl9IGVsc2UgaWYgKHN0cmNtcChhdHRyLT5uYW1lLCAiZmxhc2hf
bWVkaWFfdHlwZSIpID09IDApIHsKKwkJcmV0dXJuIHNjbnByaW50ZihwYWdlLCBQQUdFX1NJWkUs
ICIldVxuIiwgZ3JwLT5mbXR5cGUpOworCX0gZWxzZSBpZiAoc3RyY21wKGF0dHItPm5hbWUsICJu
dW1fY2hhbm5lbHMiKSA9PSAwKSB7CisJCXJldHVybiBzY25wcmludGYocGFnZSwgUEFHRV9TSVpF
LCAiJXVcbiIsIGdycC0+bnVtX2NoKTsKKwl9IGVsc2UgaWYgKHN0cmNtcChhdHRyLT5uYW1lLCAi
bnVtX2x1bnMiKSA9PSAwKSB7CisJCXJldHVybiBzY25wcmludGYocGFnZSwgUEFHRV9TSVpFLCAi
JXVcbiIsIGdycC0+bnVtX2x1bik7CisJfSBlbHNlIGlmIChzdHJjbXAoYXR0ci0+bmFtZSwgIm51
bV9wbGFuZXMiKSA9PSAwKSB7CisJCXJldHVybiBzY25wcmludGYocGFnZSwgUEFHRV9TSVpFLCAi
JXVcbiIsIGdycC0+bnVtX3Bsbik7CisJfSBlbHNlIGlmIChzdHJjbXAoYXR0ci0+bmFtZSwgIm51
bV9ibG9ja3MiKSA9PSAwKSB7CS8qIHUxNiAqLworCQlyZXR1cm4gc2NucHJpbnRmKHBhZ2UsIFBB
R0VfU0laRSwgIiV1XG4iLCBncnAtPm51bV9ibGspOworCX0gZWxzZSBpZiAoc3RyY21wKGF0dHIt
Pm5hbWUsICJudW1fcGFnZXMiKSA9PSAwKSB7CisJCXJldHVybiBzY25wcmludGYocGFnZSwgUEFH
RV9TSVpFLCAiJXVcbiIsIGdycC0+bnVtX3BnKTsKKwl9IGVsc2UgaWYgKHN0cmNtcChhdHRyLT5u
YW1lLCAicGFnZV9zaXplIikgPT0gMCkgeworCQlyZXR1cm4gc2NucHJpbnRmKHBhZ2UsIFBBR0Vf
U0laRSwgIiV1XG4iLCBncnAtPmZwZ19zeik7CisJfSBlbHNlIGlmIChzdHJjbXAoYXR0ci0+bmFt
ZSwgImh3X3NlY3Rvcl9zaXplIikgPT0gMCkgeworCQlyZXR1cm4gc2NucHJpbnRmKHBhZ2UsIFBB
R0VfU0laRSwgIiV1XG4iLCBncnAtPmNzZWNzKTsKKwl9IGVsc2UgaWYgKHN0cmNtcChhdHRyLT5u
YW1lLCAib29iX3NlY3Rvcl9zaXplIikgPT0gMCkgey8qIHUzMiAqLworCQlyZXR1cm4gc2NucHJp
bnRmKHBhZ2UsIFBBR0VfU0laRSwgIiV1XG4iLCBncnAtPnNvcyk7CisJfSBlbHNlIGlmIChzdHJj
bXAoYXR0ci0+bmFtZSwgInJlYWRfdHlwIikgPT0gMCkgeworCQlyZXR1cm4gc2NucHJpbnRmKHBh
Z2UsIFBBR0VfU0laRSwgIiV1XG4iLCBncnAtPnRyZHQpOworCX0gZWxzZSBpZiAoc3RyY21wKGF0
dHItPm5hbWUsICJyZWFkX21heCIpID09IDApIHsKKwkJcmV0dXJuIHNjbnByaW50ZihwYWdlLCBQ
QUdFX1NJWkUsICIldVxuIiwgZ3JwLT50cmRtKTsKKwl9IGVsc2UgaWYgKHN0cmNtcChhdHRyLT5u
YW1lLCAicHJvZ190eXAiKSA9PSAwKSB7CisJCXJldHVybiBzY25wcmludGYocGFnZSwgUEFHRV9T
SVpFLCAiJXVcbiIsIGdycC0+dHBydCk7CisJfSBlbHNlIGlmIChzdHJjbXAoYXR0ci0+bmFtZSwg
InByb2dfbWF4IikgPT0gMCkgeworCQlyZXR1cm4gc2NucHJpbnRmKHBhZ2UsIFBBR0VfU0laRSwg
IiV1XG4iLCBncnAtPnRwcm0pOworCX0gZWxzZSBpZiAoc3RyY21wKGF0dHItPm5hbWUsICJlcmFz
ZV90eXAiKSA9PSAwKSB7CisJCXJldHVybiBzY25wcmludGYocGFnZSwgUEFHRV9TSVpFLCAiJXVc
biIsIGdycC0+dGJldCk7CisJfSBlbHNlIGlmIChzdHJjbXAoYXR0ci0+bmFtZSwgImVyYXNlX21h
eCIpID09IDApIHsKKwkJcmV0dXJuIHNjbnByaW50ZihwYWdlLCBQQUdFX1NJWkUsICIldVxuIiwg
Z3JwLT50YmVtKTsKKwl9IGVsc2UgaWYgKHN0cmNtcChhdHRyLT5uYW1lLCAibXVsdGlwbGFuZV9t
b2RlcyIpID09IDApIHsKKwkJcmV0dXJuIHNjbnByaW50ZihwYWdlLCBQQUdFX1NJWkUsICIweCUw
OHhcbiIsIGdycC0+bXBvcyk7CisJfSBlbHNlIGlmIChzdHJjbXAoYXR0ci0+bmFtZSwgIm1lZGlh
X2NhcGFiaWxpdGllcyIpID09IDApIHsKKwkJcmV0dXJuIHNjbnByaW50ZihwYWdlLCBQQUdFX1NJ
WkUsICIweCUwOHhcbiIsIGdycC0+bWNjYXApOworCX0gZWxzZSBpZiAoc3RyY21wKGF0dHItPm5h
bWUsICJjaGFubmVsX3BhcmFsbGVsaXNtIikgPT0gMCkgey8qIHUxNiAqLworCQlyZXR1cm4gc2Nu
cHJpbnRmKHBhZ2UsIFBBR0VfU0laRSwgIiV1XG4iLCBncnAtPmNwYXIpOworCX0gZWxzZSB7CisJ
CXJldHVybiBzY25wcmludGYocGFnZSwKKwkJCQkgUEFHRV9TSVpFLAorCQkJCSAiVW5oYW5kbGVk
IGF0dHIoJXMpIGluIGBudm1fZGV2X2F0dHJfc2hvd2BcbiIsCisJCQkJIGF0dHItPm5hbWUpOwor
CX0KK30KKworI2RlZmluZSBOVk1fREVWX0FUVFJfUk8oX25hbWUpCQkJCQkJXAorCURFVklDRV9B
VFRSKF9uYW1lLCBTX0lSVUdPLCBudm1fZGV2X2F0dHJfc2hvdywgTlVMTCkKKworc3RhdGljIE5W
TV9ERVZfQVRUUl9STyh2ZXJzaW9uKTsKK3N0YXRpYyBOVk1fREVWX0FUVFJfUk8odmVuZG9yX29w
Y29kZSk7CitzdGF0aWMgTlZNX0RFVl9BVFRSX1JPKGNhcGFiaWxpdGllcyk7CitzdGF0aWMgTlZN
X0RFVl9BVFRSX1JPKGRldmljZV9tb2RlKTsKK3N0YXRpYyBOVk1fREVWX0FUVFJfUk8ocHBhX2Zv
cm1hdCk7CitzdGF0aWMgTlZNX0RFVl9BVFRSX1JPKG1lZGlhX21hbmFnZXIpOworCitzdGF0aWMg
TlZNX0RFVl9BVFRSX1JPKG1lZGlhX3R5cGUpOworc3RhdGljIE5WTV9ERVZfQVRUUl9STyhmbGFz
aF9tZWRpYV90eXBlKTsKK3N0YXRpYyBOVk1fREVWX0FUVFJfUk8obnVtX2NoYW5uZWxzKTsKK3N0
YXRpYyBOVk1fREVWX0FUVFJfUk8obnVtX2x1bnMpOworc3RhdGljIE5WTV9ERVZfQVRUUl9STyhu
dW1fcGxhbmVzKTsKK3N0YXRpYyBOVk1fREVWX0FUVFJfUk8obnVtX2Jsb2Nrcyk7CitzdGF0aWMg
TlZNX0RFVl9BVFRSX1JPKG51bV9wYWdlcyk7CitzdGF0aWMgTlZNX0RFVl9BVFRSX1JPKHBhZ2Vf
c2l6ZSk7CitzdGF0aWMgTlZNX0RFVl9BVFRSX1JPKGh3X3NlY3Rvcl9zaXplKTsKK3N0YXRpYyBO
Vk1fREVWX0FUVFJfUk8ob29iX3NlY3Rvcl9zaXplKTsKK3N0YXRpYyBOVk1fREVWX0FUVFJfUk8o
cmVhZF90eXApOworc3RhdGljIE5WTV9ERVZfQVRUUl9STyhyZWFkX21heCk7CitzdGF0aWMgTlZN
X0RFVl9BVFRSX1JPKHByb2dfdHlwKTsKK3N0YXRpYyBOVk1fREVWX0FUVFJfUk8ocHJvZ19tYXgp
Oworc3RhdGljIE5WTV9ERVZfQVRUUl9STyhlcmFzZV90eXApOworc3RhdGljIE5WTV9ERVZfQVRU
Ul9STyhlcmFzZV9tYXgpOworc3RhdGljIE5WTV9ERVZfQVRUUl9STyhtdWx0aXBsYW5lX21vZGVz
KTsKK3N0YXRpYyBOVk1fREVWX0FUVFJfUk8obWVkaWFfY2FwYWJpbGl0aWVzKTsKK3N0YXRpYyBO
Vk1fREVWX0FUVFJfUk8oY2hhbm5lbF9wYXJhbGxlbGlzbSk7CisKKyNkZWZpbmUgTlZNX0RFVl9B
VFRSKF9uYW1lKSAoZGV2X2F0dHJfIyNfbmFtZSMjKQorCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0
ZSAqbnZtX2Rldl9hdHRyc1tdID0geworCSZkZXZfYXR0cl92ZXJzaW9uLmF0dHIsCisJJmRldl9h
dHRyX3ZlbmRvcl9vcGNvZGUuYXR0ciwKKwkmZGV2X2F0dHJfY2FwYWJpbGl0aWVzLmF0dHIsCisJ
JmRldl9hdHRyX2RldmljZV9tb2RlLmF0dHIsCisJJmRldl9hdHRyX21lZGlhX21hbmFnZXIuYXR0
ciwKKworCSZkZXZfYXR0cl9wcGFfZm9ybWF0LmF0dHIsCisJJmRldl9hdHRyX21lZGlhX3R5cGUu
YXR0ciwKKwkmZGV2X2F0dHJfZmxhc2hfbWVkaWFfdHlwZS5hdHRyLAorCSZkZXZfYXR0cl9udW1f
Y2hhbm5lbHMuYXR0ciwKKwkmZGV2X2F0dHJfbnVtX2x1bnMuYXR0ciwKKwkmZGV2X2F0dHJfbnVt
X3BsYW5lcy5hdHRyLAorCSZkZXZfYXR0cl9udW1fYmxvY2tzLmF0dHIsCisJJmRldl9hdHRyX251
bV9wYWdlcy5hdHRyLAorCSZkZXZfYXR0cl9wYWdlX3NpemUuYXR0ciwKKwkmZGV2X2F0dHJfaHdf
c2VjdG9yX3NpemUuYXR0ciwKKwkmZGV2X2F0dHJfb29iX3NlY3Rvcl9zaXplLmF0dHIsCisJJmRl
dl9hdHRyX3JlYWRfdHlwLmF0dHIsCisJJmRldl9hdHRyX3JlYWRfbWF4LmF0dHIsCisJJmRldl9h
dHRyX3Byb2dfdHlwLmF0dHIsCisJJmRldl9hdHRyX3Byb2dfbWF4LmF0dHIsCisJJmRldl9hdHRy
X2VyYXNlX3R5cC5hdHRyLAorCSZkZXZfYXR0cl9lcmFzZV9tYXguYXR0ciwKKwkmZGV2X2F0dHJf
bXVsdGlwbGFuZV9tb2Rlcy5hdHRyLAorCSZkZXZfYXR0cl9tZWRpYV9jYXBhYmlsaXRpZXMuYXR0
ciwKKwkmZGV2X2F0dHJfY2hhbm5lbF9wYXJhbGxlbGlzbS5hdHRyLAorCU5VTEwsCit9OworCitz
dGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBudm1fZGV2X2F0dHJfZ3JvdXAgPSB7CisJLm5h
bWUgPSAibGlnaHRudm0iLAorCS5hdHRycyA9IG52bV9kZXZfYXR0cnMsCit9OworCitzdGF0aWMg
Y29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqbnZtX2Rldl9hdHRyX2dyb3Vwc1tdID0gewor
CSZudm1fZGV2X2F0dHJfZ3JvdXAsCisJTlVMTCwKK307CisKK3N0YXRpYyB2b2lkIG52bV9kZXZf
cmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXZpY2UpCit7CisJc3RydWN0IG52bV9kZXYgKmRldiA9
IGNvbnRhaW5lcl9vZihkZXZpY2UsIHN0cnVjdCBudm1fZGV2LCBkZXYpOworCXN0cnVjdCByZXF1
ZXN0X3F1ZXVlICpxID0gZGV2LT5xOworCisJcHJfZGVidWcoIm52bS9zeXNmczogYG52bV9kZXZf
cmVsZWFzZWBcbiIpOworCisJYmxrX21xX3VucmVnaXN0ZXJfZGV2KGRldmljZSwgcSk7CisKKwlu
dm1fZnJlZShkZXYpOworfQorCitzdGF0aWMgc3RydWN0IGRldmljZV90eXBlIG52bV90eXBlID0g
eworCS5uYW1lCQk9ICJsaWdodG52bSIsCisJLmdyb3VwcwkJPSBudm1fZGV2X2F0dHJfZ3JvdXBz
LAorCS5yZWxlYXNlCT0gbnZtX2Rldl9yZWxlYXNlLAorfTsKKworaW50IG52bV9zeXNmc19yZWdp
c3Rlcl9kZXYoc3RydWN0IG52bV9kZXYgKmRldikKK3sKKwlpZiAoIWRldi0+cGFyZW50X2RldikK
KwkJcmV0dXJuIDA7CisKKwlkZXYtPmRldi5wYXJlbnQgPSBkZXYtPnBhcmVudF9kZXY7CisJZGV2
X3NldF9uYW1lKCZkZXYtPmRldiwgIiVzIiwgZGV2LT5uYW1lKTsKKwlkZXYtPmRldi5jbGFzcyA9
IGRldi0+cGFyZW50X2Rldi0+Y2xhc3M7CisJZGV2LT5kZXYudHlwZSA9ICZudm1fdHlwZTsKKwlk
ZXZpY2VfaW5pdGlhbGl6ZSgmZGV2LT5kZXYpOworCWRldmljZV9hZGQoJmRldi0+ZGV2KTsKKwor
CWJsa19tcV9yZWdpc3Rlcl9kZXYoJmRldi0+ZGV2LCBkZXYtPnEpOworCisJcmV0dXJuIDA7Cit9
CisKK3ZvaWQgbnZtX3N5c2ZzX3VucmVnaXN0ZXJfZGV2KHN0cnVjdCBudm1fZGV2ICpkZXYpCit7
CisJaWYgKGRldiAmJiBkZXYtPnBhcmVudF9kZXYpCisJCWtvYmplY3RfcHV0KCZkZXYtPmRldi5r
b2JqKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYyBiL2RyaXZlcnMv
bnZtZS9ob3N0L2NvcmUuYwppbmRleCBmZTEzNWQ5Li4xYzU4NjkyIDEwMDY0NAotLS0gYS9kcml2
ZXJzL252bWUvaG9zdC9jb3JlLmMKKysrIGIvZHJpdmVycy9udm1lL2hvc3QvY29yZS5jCkBAIC0x
Mjk2LDcgKzEyOTYsNyBAQCBzdGF0aWMgREVWSUNFX0FUVFIocmVzY2FuX2NvbnRyb2xsZXIsIFNf
SVdVU1IsIE5VTEwsIG52bWVfc3lzZnNfcmVzY2FuKTsKIHN0YXRpYyBzc2l6ZV90IHd3aWRfc2hv
dyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCQkJ
CQkJCQljaGFyICpidWYpCiB7Ci0Jc3RydWN0IG52bWVfbnMgKm5zID0gZGV2X3RvX2Rpc2soZGV2
KS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBudm1lX25zICpucyA9IG52bWVfZ2V0X25zX2Zyb21f
ZGV2KGRldik7CiAJc3RydWN0IG52bWVfY3RybCAqY3RybCA9IG5zLT5jdHJsOwogCWludCBzZXJp
YWxfbGVuID0gc2l6ZW9mKGN0cmwtPnNlcmlhbCk7CiAJaW50IG1vZGVsX2xlbiA9IHNpemVvZihj
dHJsLT5tb2RlbCk7CkBAIC0xMzIwLDcgKzEzMjAsNyBAQCBzdGF0aWMgREVWSUNFX0FUVFIod3dp
ZCwgU19JUlVHTywgd3dpZF9zaG93LCBOVUxMKTsKIHN0YXRpYyBzc2l6ZV90IHV1aWRfc2hvdyhz
dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCQkJCQkJ
CQljaGFyICpidWYpCiB7Ci0Jc3RydWN0IG52bWVfbnMgKm5zID0gZGV2X3RvX2Rpc2soZGV2KS0+
cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBudm1lX25zICpucyA9IG52bWVfZ2V0X25zX2Zyb21fZGV2
KGRldik7CiAJcmV0dXJuIHNwcmludGYoYnVmLCAiJXBVXG4iLCBucy0+dXVpZCk7CiB9CiBzdGF0
aWMgREVWSUNFX0FUVFIodXVpZCwgU19JUlVHTywgdXVpZF9zaG93LCBOVUxMKTsKQEAgLTEzMjgs
NyArMTMyOCw3IEBAIHN0YXRpYyBERVZJQ0VfQVRUUih1dWlkLCBTX0lSVUdPLCB1dWlkX3Nob3cs
IE5VTEwpOwogc3RhdGljIHNzaXplX3QgZXVpX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1
Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIAkJCQkJCQkJY2hhciAqYnVmKQogewotCXN0cnVj
dCBudm1lX25zICpucyA9IGRldl90b19kaXNrKGRldiktPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3Qg
bnZtZV9ucyAqbnMgPSBudm1lX2dldF9uc19mcm9tX2RldihkZXYpOwogCXJldHVybiBzcHJpbnRm
KGJ1ZiwgIiU4cGhkXG4iLCBucy0+ZXVpKTsKIH0KIHN0YXRpYyBERVZJQ0VfQVRUUihldWksIFNf
SVJVR08sIGV1aV9zaG93LCBOVUxMKTsKQEAgLTEzMzYsNyArMTMzNiw3IEBAIHN0YXRpYyBERVZJ
Q0VfQVRUUihldWksIFNfSVJVR08sIGV1aV9zaG93LCBOVUxMKTsKIHN0YXRpYyBzc2l6ZV90IG5z
aWRfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRy
LAogCQkJCQkJCQljaGFyICpidWYpCiB7Ci0Jc3RydWN0IG52bWVfbnMgKm5zID0gZGV2X3RvX2Rp
c2soZGV2KS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBudm1lX25zICpucyA9IG52bWVfZ2V0X25z
X2Zyb21fZGV2KGRldik7CiAJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIG5zLT5uc19pZCk7
CiB9CiBzdGF0aWMgREVWSUNFX0FUVFIobnNpZCwgU19JUlVHTywgbnNpZF9zaG93LCBOVUxMKTsK
QEAgLTEzNTMsNyArMTM1Myw3IEBAIHN0YXRpYyB1bW9kZV90IG52bWVfYXR0cnNfYXJlX3Zpc2li
bGUoc3RydWN0IGtvYmplY3QgKmtvYmosCiAJCXN0cnVjdCBhdHRyaWJ1dGUgKmEsIGludCBuKQog
ewogCXN0cnVjdCBkZXZpY2UgKmRldiA9IGNvbnRhaW5lcl9vZihrb2JqLCBzdHJ1Y3QgZGV2aWNl
LCBrb2JqKTsKLQlzdHJ1Y3QgbnZtZV9ucyAqbnMgPSBkZXZfdG9fZGlzayhkZXYpLT5wcml2YXRl
X2RhdGE7CisJc3RydWN0IG52bWVfbnMgKm5zID0gbnZtZV9nZXRfbnNfZnJvbV9kZXYoZGV2KTsK
IAogCWlmIChhID09ICZkZXZfYXR0cl91dWlkLmF0dHIpIHsKIAkJaWYgKCFtZW1jaHJfaW52KG5z
LT51dWlkLCAwLCBzaXplb2YobnMtPnV1aWQpKSkKQEAgLTE0NzQsNyArMTQ3NCw4IEBAIHN0YXRp
YyB2b2lkIG52bWVfYWxsb2NfbnMoc3RydWN0IG52bWVfY3RybCAqY3RybCwgdW5zaWduZWQgbnNp
ZCkKIAlzcHJpbnRmKGRpc2tfbmFtZSwgIm52bWUlZG4lZCIsIGN0cmwtPmluc3RhbmNlLCBucy0+
aW5zdGFuY2UpOwogCiAJaWYgKG52bWVfbnZtX25zX3N1cHBvcnRlZChucywgaWQpKSB7Ci0JCWlm
IChudm1lX252bV9yZWdpc3RlcihucywgZGlza19uYW1lLCBub2RlKSkgeworCQlpZiAobnZtZV9u
dm1fcmVnaXN0ZXIobnMsIGRpc2tfbmFtZSwgbm9kZSwKKwkJCQkJCQkmbnZtZV9uc19hdHRyX2dy
b3VwKSkgewogCQkJZGV2X3dhcm4oY3RybC0+ZGV2LCAiJXM6IExpZ2h0TlZNIGluaXQgZmFpbHVy
ZVxuIiwKIAkJCQkJCQkJX19mdW5jX18pOwogCQkJZ290byBvdXRfZnJlZV9pZDsKZGlmZiAtLWdp
dCBhL2RyaXZlcnMvbnZtZS9ob3N0L2xpZ2h0bnZtLmMgYi9kcml2ZXJzL252bWUvaG9zdC9saWdo
dG52bS5jCmluZGV4IGViNzgwZWYuLmZiZTMyMDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbnZtZS9o
b3N0L2xpZ2h0bnZtLmMKKysrIGIvZHJpdmVycy9udm1lL2hvc3QvbGlnaHRudm0uYwpAQCAtNTky
LDEwICs1OTIsMTIgQEAgc3RhdGljIHN0cnVjdCBudm1fZGV2X29wcyBudm1lX252bV9kZXZfb3Bz
ID0gewogCS5tYXhfcGh5c19zZWN0CQk9IDY0LAogfTsKIAotaW50IG52bWVfbnZtX3JlZ2lzdGVy
KHN0cnVjdCBudm1lX25zICpucywgY2hhciAqZGlza19uYW1lLCBpbnQgbm9kZSkKK2ludCBudm1l
X252bV9yZWdpc3RlcihzdHJ1Y3QgbnZtZV9ucyAqbnMsIGNoYXIgKmRpc2tfbmFtZSwgaW50IG5v
ZGUsCisJCSAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKmF0dHJzKQogewogCXN0
cnVjdCByZXF1ZXN0X3F1ZXVlICpxID0gbnMtPnF1ZXVlOwogCXN0cnVjdCBudm1fZGV2ICpkZXY7
CisJaW50IHJldDsKIAogCWRldiA9IG52bV9hbGxvY19kZXYobm9kZSk7CiAJaWYgKCFkZXYpCkBA
IC02MDQsNiArNjA2LDggQEAgaW50IG52bWVfbnZtX3JlZ2lzdGVyKHN0cnVjdCBudm1lX25zICpu
cywgY2hhciAqZGlza19uYW1lLCBpbnQgbm9kZSkKIAlkZXYtPnEgPSBxOwogCW1lbWNweShkZXYt
Pm5hbWUsIGRpc2tfbmFtZSwgRElTS19OQU1FX0xFTik7CiAJZGV2LT5vcHMgPSAmbnZtZV9udm1f
ZGV2X29wczsKKwlkZXYtPnBhcmVudF9kZXYgPSBucy0+Y3RybC0+ZGV2aWNlOworCWRldi0+cHJp
dmF0ZV9kYXRhID0gbnM7CiAJbnMtPm5kZXYgPSBkZXY7CiAKIAlyZXQgPSBudm1fcmVnaXN0ZXIo
ZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZS9ob3N0L252bWUuaCBiL2RyaXZlcnMvbnZt
ZS9ob3N0L252bWUuaAppbmRleCA3YjQ5YjQ1Li40M2E2ZTkzIDEwMDY0NAotLS0gYS9kcml2ZXJz
L252bWUvaG9zdC9udm1lLmgKKysrIGIvZHJpdmVycy9udm1lL2hvc3QvbnZtZS5oCkBAIC0yNjcs
MTEgKzI2NywyMSBAQCBpbnQgbnZtZV9zZ19nZXRfdmVyc2lvbl9udW0oaW50IF9fdXNlciAqaXAp
OwogCiAjaWZkZWYgQ09ORklHX05WTQogaW50IG52bWVfbnZtX25zX3N1cHBvcnRlZChzdHJ1Y3Qg
bnZtZV9ucyAqbnMsIHN0cnVjdCBudm1lX2lkX25zICppZCk7Ci1pbnQgbnZtZV9udm1fcmVnaXN0
ZXIoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIGNoYXIgKmRpc2tfbmFtZSk7Ci12b2lkIG52bWVf
bnZtX3VucmVnaXN0ZXIoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIGNoYXIgKmRpc2tfbmFtZSk7
CitpbnQgbnZtZV9udm1fcmVnaXN0ZXIoc3RydWN0IG52bWVfbnMgKm5zLCBjaGFyICpkaXNrX25h
bWUsIGludCBub2RlLAorCQkgICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICphdHRy
cyk7Cit2b2lkIG52bWVfbnZtX3VucmVnaXN0ZXIoc3RydWN0IG52bWVfbnMgKm5zKTsKKworc3Rh
dGljIGlubGluZSBzdHJ1Y3QgbnZtZV9ucyAqbnZtZV9nZXRfbnNfZnJvbV9kZXYoc3RydWN0IGRl
dmljZSAqZGV2KQoreworCWlmIChkZXYtPnR5cGUtPmRldm5vZGUpCisJCXJldHVybiBkZXZfdG9f
ZGlzayhkZXYpLT5wcml2YXRlX2RhdGE7CisKKwlyZXR1cm4gKGNvbnRhaW5lcl9vZihkZXYsIHN0
cnVjdCBudm1fZGV2LCBkZXYpKS0+cHJpdmF0ZV9kYXRhOworfQogI2Vsc2UKIHN0YXRpYyBpbmxp
bmUgaW50IG52bWVfbnZtX3JlZ2lzdGVyKHN0cnVjdCBudm1lX25zICpucywgY2hhciAqZGlza19u
YW1lLAotCQkJCQkJCQlpbnQgbm9kZSkKKwkJCQkgICAgaW50IG5vZGUsCisJCQkJICAgIGNvbnN0
IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKmF0dHJzKQogewogCXJldHVybiAwOwogfQpAQCAtMjgy
LDYgKzI5MiwxMCBAQCBzdGF0aWMgaW5saW5lIGludCBudm1lX252bV9uc19zdXBwb3J0ZWQoc3Ry
dWN0IG52bWVfbnMgKm5zLCBzdHJ1Y3QgbnZtZV9pZF9ucyAqaQogewogCXJldHVybiAwOwogfQor
c3RhdGljIGlubGluZSBzdHJ1Y3QgbnZtZV9ucyAqbnZtZV9nZXRfbnNfZnJvbV9kZXYoc3RydWN0
IGRldmljZSAqZGV2KQoreworCXJldHVybiBkZXZfdG9fZGlzayhkZXYpLT5wcml2YXRlX2RhdGE7
Cit9CiAjZW5kaWYgLyogQ09ORklHX05WTSAqLwogCiBpbnQgX19pbml0IG52bWVfY29yZV9pbml0
KHZvaWQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9saWdodG52bS5oIGIvaW5jbHVkZS9s
aW51eC9saWdodG52bS5oCmluZGV4IDVhZmMyNjMuLmQxOTA3ODYgMTAwNjQ0Ci0tLSBhL2luY2x1
ZGUvbGludXgvbGlnaHRudm0uaAorKysgYi9pbmNsdWRlL2xpbnV4L2xpZ2h0bnZtLmgKQEAgLTM1
Miw3ICszNTIsMTAgQEAgc3RydWN0IG52bV9kZXYgewogCiAJLyogQmFja2VuZCBkZXZpY2UgKi8K
IAlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcTsKKwlzdHJ1Y3QgZGV2aWNlIGRldjsKKwlzdHJ1Y3Qg
ZGV2aWNlICpwYXJlbnRfZGV2OwogCWNoYXIgbmFtZVtESVNLX05BTUVfTEVOXTsKKwl2b2lkICpw
cml2YXRlX2RhdGE7CiAKIAlzdHJ1Y3QgbXV0ZXggbWxvY2s7CiAJc3BpbmxvY2tfdCBsb2NrOwot
LSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
XwpMaW51eC1udm1lIG1haWxpbmcgbGlzdApMaW51eC1udm1lQGxpc3RzLmluZnJhZGVhZC5vcmcK
aHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1udm1lCg==
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 5/6] lightnvm: expose device geometry through sysfs
2016-06-29 14:51 ` [PATCH 5/6] lightnvm: expose device geometry through sysfs Matias Bjørling
@ 2016-06-30 20:01 ` J Freyensee
2016-07-01 7:20 ` Matias Bjørling
0 siblings, 1 reply; 10+ messages in thread
From: J Freyensee @ 2016-06-30 20:01 UTC (permalink / raw)
To: Matias Bjørling, linux-block, linux-kernel, axboe,
keith.busch, linux-nvme, dm-devel
Cc: Simon A. F. Lund
On Wed, 2016-06-29 at 16:51 +0200, Matias Bjørling wrote:
> From: "Simon A. F. Lund" <slund@cnexlabs.com>
>
> For a host to access an Open-Channel SSD, it has to know its
> geometry,
> so that it writes and reads at the appropriate device bounds.
>
> Currently, the geometry information is kept within the kernel, and
> not
> exported to user-space for consumption. This patch exposes the
> configuration through sysfs and enables user-space libraries, such as
> liblightnvm, to use the sysfs implementation to get the geometry of
> an
> Open-Channel SSD.
>
> The sysfs entries are stored within the device hierarchy, and can be
> found using the "lightnvm" device type.
>
> An example configuration looks like this:
>
> /sys/class/nvme/
> └── nvme0n1
> ├── capabilities: 3
> ├── device_mode: 1
> ├── channel_parallelism: 0
> ├── erase_max: 1000000
> ├── erase_typ: 1000000
> ├── flash_media_type: 0
> ├── media_capabilities: 0x00000001
> ├── media_type: 0
> ├── multiplane: 0x00010101
> ├── num_blocks: 1022
> ├── num_channels: 1
> ├── num_luns: 4
> ├── num_pages: 64
> ├── num_planes: 1
> ├── page_size: 4096
> ├── prog_max: 100000
> ├── prog_typ: 100000
> ├── read_max: 10000
> ├── read_typ: 10000
> ├── sector_oob_size: 0
> ├── sector_size: 4096
> ├── media_manager: gennvm
> ├── ppa_format: 0x380830082808001010102008
> ├── vendor_opcode: 0
> └── version: 1
>
That is an awful lot of new things to add under nvme0n1-type sysfs
entries when there is already a decent amount of stuff under it.
Any chance these new things could be stuck under a separate sysfs
directory under each nvmeXnY device? If these things are mainly
beneficial to LightNVM, it will be easier for a LightNVM newbie to
find, recognize, and consider all the important things in an Open
Channel SSD solution if it's under a separate directory. And for
current SSD solutions that don't seem to need these things exposed in
sysfs for operation, it will make what is directly under nvmeXnY
directories less cluttered.
Thanks,
Jay
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 5/6] lightnvm: expose device geometry through sysfs
2016-06-30 20:01 ` J Freyensee
@ 2016-07-01 7:20 ` Matias Bjørling
0 siblings, 0 replies; 10+ messages in thread
From: Matias Bjørling @ 2016-07-01 7:20 UTC (permalink / raw)
To: J Freyensee, linux-block, linux-kernel, axboe, keith.busch,
linux-nvme, dm-devel
Cc: Simon A. F. Lund
On 06/30/2016 10:01 PM, J Freyensee wrote:
> On Wed, 2016-06-29 at 16:51 +0200, Matias Bjørling wrote:
>> From: "Simon A. F. Lund" <slund@cnexlabs.com>
>>
>> For a host to access an Open-Channel SSD, it has to know its
>> geometry,
>> so that it writes and reads at the appropriate device bounds.
>>
>> Currently, the geometry information is kept within the kernel, and
>> not
>> exported to user-space for consumption. This patch exposes the
>> configuration through sysfs and enables user-space libraries, such as
>> liblightnvm, to use the sysfs implementation to get the geometry of
>> an
>> Open-Channel SSD.
>>
>> The sysfs entries are stored within the device hierarchy, and can be
>> found using the "lightnvm" device type.
>>
>> An example configuration looks like this:
>>
>> /sys/class/nvme/
>> └── nvme0n1
>> ├── capabilities: 3
>> ├── device_mode: 1
>> ├── channel_parallelism: 0
>> ├── erase_max: 1000000
>> ├── erase_typ: 1000000
>> ├── flash_media_type: 0
>> ├── media_capabilities: 0x00000001
>> ├── media_type: 0
>> ├── multiplane: 0x00010101
>> ├── num_blocks: 1022
>> ├── num_channels: 1
>> ├── num_luns: 4
>> ├── num_pages: 64
>> ├── num_planes: 1
>> ├── page_size: 4096
>> ├── prog_max: 100000
>> ├── prog_typ: 100000
>> ├── read_max: 10000
>> ├── read_typ: 10000
>> ├── sector_oob_size: 0
>> ├── sector_size: 4096
>> ├── media_manager: gennvm
>> ├── ppa_format: 0x380830082808001010102008
>> ├── vendor_opcode: 0
>> └── version: 1
>>
>
> That is an awful lot of new things to add under nvme0n1-type sysfs
> entries when there is already a decent amount of stuff under it.
>
You are right. These are rightfully placed under /lightnvm in the sysfs
path. The description is wrong, will update it. Thanks Jay.
> Any chance these new things could be stuck under a separate sysfs
> directory under each nvmeXnY device? If these things are mainly
> beneficial to LightNVM, it will be easier for a LightNVM newbie to
> find, recognize, and consider all the important things in an Open
> Channel SSD solution if it's under a separate directory. And for
> current SSD solutions that don't seem to need these things exposed in
> sysfs for operation, it will make what is directly under nvmeXnY
> directories less cluttered.
>
> Thanks,
> Jay
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 6/6] lightnvm: expose gennvm target type through sysfs
2016-06-29 14:51 [PATCH 0/6] enable sysfs for lightnvm Matias Bjørling
` (4 preceding siblings ...)
2016-06-29 14:51 ` [PATCH 5/6] lightnvm: expose device geometry through sysfs Matias Bjørling
@ 2016-06-29 14:51 ` Matias Bjørling
5 siblings, 0 replies; 10+ messages in thread
From: Matias Bjørling @ 2016-06-29 14:51 UTC (permalink / raw)
To: linux-block, linux-kernel, axboe, keith.busch, linux-nvme,
dm-devel
Cc: Simon A. F. Lund, Matias Bjørling
RnJvbTogIlNpbW9uIEEuIEYuIEx1bmQiIDxzbHVuZEBjbmV4bGFicy5jb20+CgpDcmVhdGUgYSBz
eXNmcyBkaXJlY3RvcnkgZm9yIHRhcmdldHMgdG8gZXhwb3NlIHRoZWlyIGludGVybmFsIHN0YXRp
c3RpY3MKYW5kIGtub2JzLiBUaGUgZW50cmllcyBpcyBleHBvc2VkIHRocm91Z2ggdGhlCi9zeXMv
YmxvY2svPGRpc2s+L2xpZ2h0bnZtLyogZGlyZWN0b3J5LgoKSXQgY3VycmVudGx5IGhvbGRzIGEg
c2luZ2xlIHN5c2ZzIGVudHJ5ICJ0eXBlIiwgd2hpY2ggZXhwb3J0cyB0aGUgdGFyZ2V0CnR5cGUg
bmFtZS4KClNpZ25lZC1vZmYtYnk6IFNpbW9uIEEuIEYuIEx1bmQgPHNsdW5kQGNuZXhsYWJzLmNv
bT4KU2lnbmVkLW9mZi1ieTogTWF0aWFzIEJqw7hybGluZyA8bUBiam9ybGluZy5tZT4KLS0tCiBk
cml2ZXJzL2xpZ2h0bnZtL2dlbm52bS5jIHwgMTEyICsrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrLS0tLS0tLS0KIGluY2x1ZGUvbGludXgvbGlnaHRudm0uaCAgfCAgMTAgKysr
KysKIDIgZmlsZXMgY2hhbmdlZCwgMTA0IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGlnaHRudm0vZ2VubnZtLmMgYi9kcml2ZXJzL2xpZ2h0bnZt
L2dlbm52bS5jCmluZGV4IGI3NDE3NGMuLmJmZGFkM2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbGln
aHRudm0vZ2VubnZtLmMKKysrIGIvZHJpdmVycy9saWdodG52bS9nZW5udm0uYwpAQCAtMjAsNiAr
MjAsODcgQEAKIAogI2luY2x1ZGUgImdlbm52bS5oIgogCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0
ZSBnZW5fdHlwZV9hdHRyID0geworCS5uYW1lID0gInR5cGUiLAorCS5tb2RlID0gU19JUlVHTwor
fTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmdlbl90YXJnZXRfYXR0cnNbXSA9IHsKKwkm
Z2VuX3R5cGVfYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHNzaXplX3QgZ2VuX3RhcmdldF9h
dHRyX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCisJCQkJc3RydWN0IGF0dHJpYnV0ZSAqYXR0
ciwKKwkJCQljaGFyICpwYWdlKQoreworCXN0cnVjdCBudm1fdGFyZ2V0ICp0ID0gY29udGFpbmVy
X29mKGtvYmosIHN0cnVjdCBudm1fdGFyZ2V0LCBrb2JqKTsKKworCWlmIChzdHJjbXAoYXR0ci0+
bmFtZSwgInR5cGUiKSA9PSAwKQorCQlyZXR1cm4gc2NucHJpbnRmKHBhZ2UsIFBBR0VfU0laRSwg
IiVzXG4iLCB0LT50eXBlLT5uYW1lKTsKKworCWlmICh0LT50eXBlLT5zeXNmc19zaG93KQorCQly
ZXR1cm4gdC0+dHlwZS0+c3lzZnNfc2hvdyh0LCBhdHRyLCBwYWdlKTsKKworCXJldHVybiBzY25w
cmludGYocGFnZSwgUEFHRV9TSVpFLAorCQkJIlVuaGFuZGxlZCBhdHRyKCVzKSBpbiBgbnZtX3Rh
cmdldF9hdHRyX3Nob3dgXG4iLAorCQkJYXR0ci0+bmFtZSk7Cit9CisKK3N0YXRpYyBjb25zdCBz
dHJ1Y3Qgc3lzZnNfb3BzIHRhcmdldF9zeXNmc19vcHMgPSB7CisJLnNob3cgPSBnZW5fdGFyZ2V0
X2F0dHJfc2hvdywKK307CisKK3N0YXRpYyB2b2lkIGdlbl90YXJnZXRfcmVsZWFzZShzdHJ1Y3Qg
a29iamVjdCAqa29iaikKK3sKKwlzdHJ1Y3QgbnZtX3RhcmdldCAqdCA9IGNvbnRhaW5lcl9vZihr
b2JqLCBzdHJ1Y3QgbnZtX3RhcmdldCwga29iaik7CisJc3RydWN0IG52bV90Z3RfdHlwZSAqdHQg
PSB0LT50eXBlOworCXN0cnVjdCBnZW5kaXNrICp0ZGlzayA9IHQtPmRpc2s7CisJc3RydWN0IHJl
cXVlc3RfcXVldWUgKnEgPSB0ZGlzay0+cXVldWU7CisKKwlwcl9kZWJ1ZygiZ2VuOiBgZ2VuX3Rh
cmdldF9yZWxlYXNlYFxuIik7CisKKwlkZWxfZ2VuZGlzayh0ZGlzayk7CisJYmxrX2NsZWFudXBf
cXVldWUocSk7CisJcHV0X2Rpc2sodGRpc2spOworCisJaWYgKHR0LT5leGl0KQorCQl0dC0+ZXhp
dCh0ZGlzay0+cHJpdmF0ZV9kYXRhKTsKKworCWtmcmVlKHQpOworfQorCitzdGF0aWMgc3RydWN0
IGtvYmpfdHlwZSBudm1fdGFyZ2V0X3R5cGUgPSB7CisJLnN5c2ZzX29wcwk9ICZ0YXJnZXRfc3lz
ZnNfb3BzLAorCS5kZWZhdWx0X2F0dHJzCT0gZ2VuX3RhcmdldF9hdHRycywKKwkucmVsZWFzZQk9
IGdlbl90YXJnZXRfcmVsZWFzZQorfTsKKwordm9pZCBnZW5fdW5yZWdpc3Rlcl90YXJnZXQoc3Ry
dWN0IG52bV90YXJnZXQgKnQpCit7CisJa29iamVjdF91ZXZlbnQoJnQtPmtvYmosIEtPQkpfUkVN
T1ZFKTsKKwlrb2JqZWN0X2RlbCgmdC0+a29iaik7CisJa29iamVjdF9wdXQoJnQtPmtvYmopOwor
fQorCitpbnQgZ2VuX3JlZ2lzdGVyX3RhcmdldChzdHJ1Y3QgbnZtX3RhcmdldCAqdCkKK3sKKwlz
dHJ1Y3QgZ2VuZGlzayAqZGlzayA9IHQtPmRpc2s7CisJc3RydWN0IGRldmljZSAqZGV2ID0gZGlz
a190b19kZXYoZGlzayk7CisJaW50IHJldDsKKworCXJldCA9IGtvYmplY3RfaW5pdF9hbmRfYWRk
KCZ0LT5rb2JqLCAmbnZtX3RhcmdldF90eXBlLAorCQkJCSAgIGtvYmplY3RfZ2V0KCZkZXYtPmtv
YmopLCAiJXMiLCAibGlnaHRudm0iKTsKKwlpZiAocmV0IDwgMCkgeworCQlwcl9lcnIoImdlbjog
YF9yZWdpc3Rlcl90YXJnZXRgIGZhaWxlZC5cbiIpOworCQlrb2JqZWN0X3B1dCgmdC0+a29iaik7
CisJCXJldHVybiByZXQ7CisJfQorCisJa29iamVjdF91ZXZlbnQoJnQtPmtvYmosIEtPQkpfQURE
KTsKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIHN0cnVjdCBudm1fdGFyZ2V0ICpnZW5fZmluZF90
YXJnZXQoc3RydWN0IGdlbl9kZXYgKmduLCBjb25zdCBjaGFyICpuYW1lKQogewogCXN0cnVjdCBu
dm1fdGFyZ2V0ICp0Z3Q7CkBAIC02MCw3ICsxNDEsNyBAQCBzdGF0aWMgaW50IGdlbl9jcmVhdGVf
dGd0KHN0cnVjdCBudm1fZGV2ICpkZXYsIHN0cnVjdCBudm1faW9jdGxfY3JlYXRlICpjcmVhdGUp
CiAJfQogCW11dGV4X3VubG9jaygmZ24tPmxvY2spOwogCi0JdCA9IGttYWxsb2Moc2l6ZW9mKHN0
cnVjdCBudm1fdGFyZ2V0KSwgR0ZQX0tFUk5FTCk7CisJdCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVj
dCBudm1fdGFyZ2V0KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCF0KQogCQlyZXR1cm4gLUVOT01FTTsK
IApAQCAtODksMTMgKzE3MCwxOSBAQCBzdGF0aWMgaW50IGdlbl9jcmVhdGVfdGd0KHN0cnVjdCBu
dm1fZGV2ICpkZXYsIHN0cnVjdCBudm1faW9jdGxfY3JlYXRlICpjcmVhdGUpCiAKIAlibGtfcXVl
dWVfbWF4X2h3X3NlY3RvcnModHF1ZXVlLCA4ICogZGV2LT5vcHMtPm1heF9waHlzX3NlY3QpOwog
Ci0Jc2V0X2NhcGFjaXR5KHRkaXNrLCB0dC0+Y2FwYWNpdHkodGFyZ2V0ZGF0YSkpOwotCWFkZF9k
aXNrKHRkaXNrKTsKLQogCXQtPnR5cGUgPSB0dDsKIAl0LT5kaXNrID0gdGRpc2s7CiAJdC0+ZGV2
ID0gZGV2OwogCisJc2V0X2NhcGFjaXR5KHRkaXNrLCB0dC0+Y2FwYWNpdHkodGFyZ2V0ZGF0YSkp
OworCWFkZF9kaXNrKHRkaXNrKTsKKworCWlmIChnZW5fcmVnaXN0ZXJfdGFyZ2V0KHQpKQorCQln
b3RvIGVycl9pbml0OworCisJaWYgKHR0LT5zeXNmc19pbml0KQorCQl0dC0+c3lzZnNfaW5pdCh0
KTsKKwogCW11dGV4X2xvY2soJmduLT5sb2NrKTsKIAlsaXN0X2FkZF90YWlsKCZ0LT5saXN0LCAm
Z24tPnRhcmdldHMpOwogCW11dGV4X3VubG9jaygmZ24tPmxvY2spOwpAQCAtMTEyLDIwICsxOTks
MTAgQEAgZXJyX3Q6CiAKIHN0YXRpYyB2b2lkIF9fZ2VuX3JlbW92ZV90YXJnZXQoc3RydWN0IG52
bV90YXJnZXQgKnQpCiB7Ci0Jc3RydWN0IG52bV90Z3RfdHlwZSAqdHQgPSB0LT50eXBlOwotCXN0
cnVjdCBnZW5kaXNrICp0ZGlzayA9IHQtPmRpc2s7Ci0Jc3RydWN0IHJlcXVlc3RfcXVldWUgKnEg
PSB0ZGlzay0+cXVldWU7Ci0KLQlkZWxfZ2VuZGlzayh0ZGlzayk7Ci0JYmxrX2NsZWFudXBfcXVl
dWUocSk7Ci0KLQlpZiAodHQtPmV4aXQpCi0JCXR0LT5leGl0KHRkaXNrLT5wcml2YXRlX2RhdGEp
OwotCi0JcHV0X2Rpc2sodGRpc2spOwotCiAJbGlzdF9kZWwoJnQtPmxpc3QpOwotCWtmcmVlKHQp
OworCWlmICh0LT50eXBlLT5zeXNmc19leGl0KQorCQl0LT50eXBlLT5zeXNmc19leGl0KHQpOwor
CWdlbl91bnJlZ2lzdGVyX3RhcmdldCh0KTsKIH0KIAogLyoqCkBAIC02MjcsNyArNzA0LDYgQEAg
c3RhdGljIHZvaWQgZ2VuX2x1bl9pbmZvX3ByaW50KHN0cnVjdCBudm1fZGV2ICpkZXYpCiAJc3Ry
dWN0IGdlbl9sdW4gKmx1bjsKIAl1bnNpZ25lZCBpbnQgaTsKIAotCiAJZ2VuX2Zvcl9lYWNoX2x1
bihnbiwgbHVuLCBpKSB7CiAJCXNwaW5fbG9jaygmbHVuLT52bHVuLmxvY2spOwogCmRpZmYgLS1n
aXQgYS9pbmNsdWRlL2xpbnV4L2xpZ2h0bnZtLmggYi9pbmNsdWRlL2xpbnV4L2xpZ2h0bnZtLmgK
aW5kZXggZDE5MDc4Ni4uMzgyMzg5MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9saWdodG52
bS5oCisrKyBiL2luY2x1ZGUvbGludXgvbGlnaHRudm0uaApAQCAtMjExLDYgKzIxMSw4IEBAIHN0
cnVjdCBudm1fdGFyZ2V0IHsKIAlzdHJ1Y3QgbnZtX2RldiAqZGV2OwogCXN0cnVjdCBudm1fdGd0
X3R5cGUgKnR5cGU7CiAJc3RydWN0IGdlbmRpc2sgKmRpc2s7CisKKwlzdHJ1Y3Qga29iamVjdCBr
b2JqOwogfTsKIAogc3RydWN0IG52bV90Z3RfaW5zdGFuY2UgewpAQCAtNDM0LDYgKzQzNiwxMCBA
QCB0eXBlZGVmIGJsa19xY190IChudm1fdGd0X21ha2VfcnFfZm4pKHN0cnVjdCByZXF1ZXN0X3F1
ZXVlICosIHN0cnVjdCBiaW8gKik7CiB0eXBlZGVmIHNlY3Rvcl90IChudm1fdGd0X2NhcGFjaXR5
X2ZuKSh2b2lkICopOwogdHlwZWRlZiB2b2lkICoobnZtX3RndF9pbml0X2ZuKShzdHJ1Y3QgbnZt
X2RldiAqLCBzdHJ1Y3QgZ2VuZGlzayAqLCBpbnQsIGludCk7CiB0eXBlZGVmIHZvaWQgKG52bV90
Z3RfZXhpdF9mbikodm9pZCAqKTsKK3R5cGVkZWYgdm9pZCAobnZtX3RndF9zeXNmc19pbml0X2Zu
KShzdHJ1Y3QgbnZtX3RhcmdldCAqKTsKK3R5cGVkZWYgdm9pZCAobnZtX3RndF9zeXNmc19leGl0
X2ZuKShzdHJ1Y3QgbnZtX3RhcmdldCAqKTsKK3R5cGVkZWYgc3NpemVfdChudm1fdGd0X3N5c2Zz
X3Nob3dfZm4pKHN0cnVjdCBudm1fdGFyZ2V0ICosCisJCQkJICAgICBzdHJ1Y3QgYXR0cmlidXRl
ICosIGNoYXIgKik7CiAKIHN0cnVjdCBudm1fdGd0X3R5cGUgewogCWNvbnN0IGNoYXIgKm5hbWU7
CkBAIC00NDgsNiArNDU0LDEwIEBAIHN0cnVjdCBudm1fdGd0X3R5cGUgewogCW52bV90Z3RfaW5p
dF9mbiAqaW5pdDsKIAludm1fdGd0X2V4aXRfZm4gKmV4aXQ7CiAKKwludm1fdGd0X3N5c2ZzX2lu
aXRfZm4gKnN5c2ZzX2luaXQ7CisJbnZtX3RndF9zeXNmc19leGl0X2ZuICpzeXNmc19leGl0Owor
CW52bV90Z3Rfc3lzZnNfc2hvd19mbiAqc3lzZnNfc2hvdzsKKwogCS8qIEZvciBpbnRlcm5hbCB1
c2UgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CiB9OwotLSAKMi4xLjQKCgpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1udm1lIG1haWxpbmcg
bGlzdApMaW51eC1udm1lQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh
ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1udm1lCg==
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 5/6] lightnvm: expose device geometry through sysfs
@ 2016-06-10 12:22 Matias Bjørling
0 siblings, 0 replies; 10+ messages in thread
From: Matias Bjørling @ 2016-06-10 12:22 UTC (permalink / raw)
To: linux-block, linux-kernel, axboe, keith.busch, linux-nvme
Cc: Simon A. F. Lund, Matias Bjørling
RnJvbTogIlNpbW9uIEEuIEYuIEx1bmQiIDxzbHVuZEBjbmV4bGFicy5jb20+CgpGb3IgYSBob3N0
IHRvIGFjY2VzcyBhbiBPcGVuLUNoYW5uZWwgU1NELCBpdCBoYXMgdG8ga25vdyBpdHMgZ2VvbWV0
cnksCnNvIHRoYXQgaXQgd3JpdGVzIGFuZCByZWFkcyBhdCB0aGUgYXBwcm9wcmlhdGUgZGV2aWNl
IGJvdW5kcy4KCkN1cnJlbnRseSwgdGhlIGdlb21ldHJ5IGluZm9ybWF0aW9uIGlzIGtlcHQgd2l0
aGluIHRoZSBrZXJuZWwsIGFuZCBub3QKZXhwb3J0ZWQgdG8gdXNlci1zcGFjZSBmb3IgY29uc3Vt
cHRpb24uIFRoaXMgcGF0Y2ggZXhwb3NlcyB0aGUKY29uZmlndXJhdGlvbiB0aHJvdWdoIHN5c2Zz
IGFuZCBlbmFibGVzIHVzZXItc3BhY2UgbGlicmFyaWVzLCBzdWNoIGFzCmxpYmxpZ2h0bnZtLCB0
byB1c2UgdGhlIHN5c2ZzIGltcGxlbWVudGF0aW9uIHRvIGdldCB0aGUgZ2VvbWV0cnkgb2YgYW4K
T3Blbi1DaGFubmVsIFNTRC4KClRoZSBzeXNmcyBlbnRyaWVzIGFyZSBzdG9yZWQgd2l0aGluIHRo
ZSBkZXZpY2UgaGllcmFyY2h5LCBhbmQgY2FuIGJlCmZvdW5kIHVzaW5nIHRoZSAibGlnaHRudm0i
IGRldmljZSB0eXBlLgoKQW4gZXhhbXBsZSBjb25maWd1cmF0aW9uIGxvb2tzIGxpa2UgdGhpczoK
Ci9zeXMvY2xhc3MvbnZtZS8K4pSU4pSA4pSAIG52bWUwbjEKICAg4pSc4pSA4pSAIGNhcGFiaWxp
dGllczogMwogICDilJzilIDilIAgZGV2aWNlX21vZGU6IDEKICAg4pSc4pSA4pSAIGNoYW5uZWxf
cGFyYWxsZWxpc206IDAKICAg4pSc4pSA4pSAIGVyYXNlX21heDogMTAwMDAwMAogICDilJzilIDi
lIAgZXJhc2VfdHlwOiAxMDAwMDAwCiAgIOKUnOKUgOKUgCBmbGFzaF9tZWRpYV90eXBlOiAwCiAg
IOKUnOKUgOKUgCBtZWRpYV9jYXBhYmlsaXRpZXM6IDB4MDAwMDAwMDEKICAg4pSc4pSA4pSAIG1l
ZGlhX3R5cGU6IDAKICAg4pSc4pSA4pSAIG11bHRpcGxhbmU6IDB4MDAwMTAxMDEKICAg4pSc4pSA
4pSAIG51bV9ibG9ja3M6IDEwMjIKICAg4pSc4pSA4pSAIG51bV9jaGFubmVsczogMQogICDilJzi
lIDilIAgbnVtX2x1bnM6IDQKICAg4pSc4pSA4pSAIG51bV9wYWdlczogNjQKICAg4pSc4pSA4pSA
IG51bV9wbGFuZXM6IDEKICAg4pSc4pSA4pSAIHBhZ2Vfc2l6ZTogNDA5NgogICDilJzilIDilIAg
cHJvZ19tYXg6IDEwMDAwMAogICDilJzilIDilIAgcHJvZ190eXA6IDEwMDAwMAogICDilJzilIDi
lIAgcmVhZF9tYXg6IDEwMDAwCiAgIOKUnOKUgOKUgCByZWFkX3R5cDogMTAwMDAKICAg4pSc4pSA
4pSAIHNlY3Rvcl9vb2Jfc2l6ZTogMAogICDilJzilIDilIAgc2VjdG9yX3NpemU6IDQwOTYKICAg
4pSc4pSA4pSAIG1lZGlhX21hbmFnZXI6IGdlbm52bQogICDilJzilIDilIAgcHBhX2Zvcm1hdDog
MHgzODA4MzAwODI4MDgwMDEwMTAxMDIwMDgKICAg4pSc4pSA4pSAIHZlbmRvcl9vcGNvZGU6IDAK
ICAg4pSU4pSA4pSAIHZlcnNpb246IDEKClNpZ25lZC1vZmYtYnk6IFNpbW9uIEEuIEYuIEx1bmQg
PHNsdW5kQGNuZXhsYWJzLmNvbT4KU2lnbmVkLW9mZi1ieTogTWF0aWFzIEJqw7hybGluZyA8bUBi
am9ybGluZy5tZT4KLS0tCiBkcml2ZXJzL2xpZ2h0bnZtL01ha2VmaWxlICAgIHwgICAyICstCiBk
cml2ZXJzL2xpZ2h0bnZtL2NvcmUuYyAgICAgIHwgIDIwICsrKy0tCiBkcml2ZXJzL2xpZ2h0bnZt
L2xpZ2h0bnZtLmggIHwgIDM1ICsrKysrKysrCiBkcml2ZXJzL2xpZ2h0bnZtL3N5c2ZzLmMgICAg
IHwgMTk1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZl
cnMvbnZtZS9ob3N0L2NvcmUuYyAgICAgfCAgMTMgKy0tCiBkcml2ZXJzL252bWUvaG9zdC9saWdo
dG52bS5jIHwgIDEyICsrLQogZHJpdmVycy9udm1lL2hvc3QvbnZtZS5oICAgICB8ICAyMCArKysr
LQogaW5jbHVkZS9saW51eC9saWdodG52bS5oICAgICB8ICAgMyArCiA4IGZpbGVzIGNoYW5nZWQs
IDI4MiBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBk
cml2ZXJzL2xpZ2h0bnZtL2xpZ2h0bnZtLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2xp
Z2h0bnZtL3N5c2ZzLmMKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2xpZ2h0bnZtL01ha2VmaWxlIGIv
ZHJpdmVycy9saWdodG52bS9NYWtlZmlsZQppbmRleCBhN2EwYTIyLi4xZjZiNjUyIDEwMDY0NAot
LS0gYS9kcml2ZXJzL2xpZ2h0bnZtL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvbGlnaHRudm0vTWFr
ZWZpbGUKQEAgLTIsNiArMiw2IEBACiAjIE1ha2VmaWxlIGZvciBPcGVuLUNoYW5uZWwgU1NEcy4K
ICMKIAotb2JqLSQoQ09ORklHX05WTSkJCTo9IGNvcmUubyBzeXNibGsubworb2JqLSQoQ09ORklH
X05WTSkJCTo9IGNvcmUubyBzeXNibGsubyBzeXNmcy5vCiBvYmotJChDT05GSUdfTlZNX0dFTk5W
TSkgCSs9IGdlbm52bS5vCiBvYmotJChDT05GSUdfTlZNX1JSUEMpCQkrPSBycnBjLm8KZGlmZiAt
LWdpdCBhL2RyaXZlcnMvbGlnaHRudm0vY29yZS5jIGIvZHJpdmVycy9saWdodG52bS9jb3JlLmMK
aW5kZXggYWQyNzc2OC4uNjYxYzFiZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9saWdodG52bS9jb3Jl
LmMKKysrIGIvZHJpdmVycy9saWdodG52bS9jb3JlLmMKQEAgLTI3LDYgKzI3LDggQEAKICNpbmNs
dWRlIDxsaW51eC9saWdodG52bS5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkL3N5c2N0bC5oPgog
CisjaW5jbHVkZSAibGlnaHRudm0uaCIKKwogc3RhdGljIExJU1RfSEVBRChudm1fdGd0X3R5cGVz
KTsKIHN0YXRpYyBERUNMQVJFX1JXU0VNKG52bV90Z3R0X2xvY2spOwogc3RhdGljIExJU1RfSEVB
RChudm1fbWdycyk7CkBAIC01OTMsMTUgKzU5NSwxOSBAQCBzdGF0aWMgdm9pZCBudm1fZnJlZV9t
Z3Ioc3RydWN0IG52bV9kZXYgKmRldikKIAlkZXYtPm10ID0gTlVMTDsKIH0KIAotc3RhdGljIHZv
aWQgbnZtX2ZyZWUoc3RydWN0IG52bV9kZXYgKmRldikKK3ZvaWQgbnZtX2ZyZWUoc3RydWN0IG52
bV9kZXYgKmRldikKIHsKIAlpZiAoIWRldikKIAkJcmV0dXJuOwogCiAJbnZtX2ZyZWVfbWdyKGRl
dik7CiAKKwlpZiAoZGV2LT5kbWFfcG9vbCkKKwkJZGV2LT5vcHMtPmRlc3Ryb3lfZG1hX3Bvb2wo
ZGV2LT5kbWFfcG9vbCk7CisKIAlrZnJlZShkZXYtPmxwdGJsKTsKIAlrZnJlZShkZXYtPmx1bl9t
YXApOworCWtmcmVlKGRldik7CiB9CiAKIHN0YXRpYyBpbnQgbnZtX2luaXQoc3RydWN0IG52bV9k
ZXYgKmRldikKQEAgLTY0OCwxMSArNjU0LDcgQEAgZXJyOgogCiBzdGF0aWMgdm9pZCBudm1fZXhp
dChzdHJ1Y3QgbnZtX2RldiAqZGV2KQogewotCWlmIChkZXYtPmRtYV9wb29sKQotCQlkZXYtPm9w
cy0+ZGVzdHJveV9kbWFfcG9vbChkZXYtPmRtYV9wb29sKTsKLQludm1fZnJlZShkZXYpOwotCi0J
cHJfaW5mbygibnZtOiBzdWNjZXNzZnVsbHkgdW5sb2FkZWRcbiIpOworCW52bV9zeXNmc191bnJl
Z2lzdGVyX2RldihkZXYpOwogfQogCiBzdHJ1Y3QgbnZtX2RldiAqbnZtX2FsbG9jX2RldihpbnQg
bm9kZSkKQEAgLTY4Myw2ICs2ODUsMTAgQEAgaW50IG52bV9yZWdpc3RlcihzdHJ1Y3QgbnZtX2Rl
diAqZGV2KQogCQl9CiAJfQogCisJcmV0ID0gbnZtX3N5c2ZzX3JlZ2lzdGVyX2RldihkZXYpOwor
CWlmIChyZXQpCisJCWdvdG8gZXJyX3BwYWxpc3Q7CisKIAlpZiAoZGV2LT5pZGVudGl0eS5jYXAg
JiBOVk1fSURfRENBUF9CQkxLTUdNVCkgewogCQlyZXQgPSBudm1fZ2V0X3N5c2Jsb2NrKGRldiwg
JmRldi0+c2IpOwogCQlpZiAoIXJldCkKQEAgLTY5OSw2ICs3MDUsOCBAQCBpbnQgbnZtX3JlZ2lz
dGVyKHN0cnVjdCBudm1fZGV2ICpkZXYpCiAJdXBfd3JpdGUoJm52bV9sb2NrKTsKIAogCXJldHVy
biAwOworZXJyX3BwYWxpc3Q6CisJZGV2LT5vcHMtPmRlc3Ryb3lfZG1hX3Bvb2woZGV2LT5kbWFf
cG9vbCk7CiBlcnJfaW5pdDoKIAlrZnJlZShkZXYtPmx1bl9tYXApOwogCXJldHVybiByZXQ7CmRp
ZmYgLS1naXQgYS9kcml2ZXJzL2xpZ2h0bnZtL2xpZ2h0bnZtLmggYi9kcml2ZXJzL2xpZ2h0bnZt
L2xpZ2h0bnZtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTNmMWFhYwot
LS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbGlnaHRudm0vbGlnaHRudm0uaApAQCAtMCwwICsx
LDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IENORVggTGFicy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIEluaXRpYWwgcmVsZWFzZTogTWF0aWFzIEJqb3JsaW5nIDxtYXRpYXNAY25l
eGxhYnMuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24KKyAqIDIgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICog
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LAorICogVVNBLgorICoK
KyAqLworCisjaWZuZGVmIExJR0hUTlZNX0gKKyNkZWZpbmUgTElHSFROVk1fSAorCisjaW5jbHVk
ZSA8bGludXgvbGlnaHRudm0uaD4KKworLyogY29yZSAtPiBzeXNmcy5jICovCitpbnQgbnZtX3N5
c2ZzX3JlZ2lzdGVyX2RldihzdHJ1Y3QgbnZtX2RldiAqKTsKK3ZvaWQgbnZtX3N5c2ZzX3VucmVn
aXN0ZXJfZGV2KHN0cnVjdCBudm1fZGV2ICopOworaW50IG52bV9zeXNmc19yZWdpc3Rlcih2b2lk
KTsKK3ZvaWQgbnZtX3N5c2ZzX3VucmVnaXN0ZXIodm9pZCk7CisKKy8qIHN5c2ZzID4gY29yZSAq
Lwordm9pZCBudm1fZnJlZShzdHJ1Y3QgbnZtX2RldiAqKTsKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9kcml2ZXJzL2xpZ2h0bnZtL3N5c2ZzLmMgYi9kcml2ZXJzL2xpZ2h0bnZtL3N5c2ZzLmMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjcxNDE3MgotLS0gL2Rldi9udWxsCisr
KyBiL2RyaXZlcnMvbGlnaHRudm0vc3lzZnMuYwpAQCAtMCwwICsxLDE5NSBAQAorI2luY2x1ZGUg
PGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2xpZ2h0bnZtLmg+CisjaW5jbHVkZSA8
bGludXgvbWlzY2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tvYmplY3QuaD4KKyNpbmNsdWRl
IDxsaW51eC9ibGstbXEuaD4KKworI2luY2x1ZGUgImxpZ2h0bnZtLmgiCisKK3N0YXRpYyBzc2l6
ZV90IG52bV9kZXZfYXR0cl9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkgc3RydWN0IGRl
dmljZV9hdHRyaWJ1dGUgKmRhdHRyLCBjaGFyICpwYWdlKQoreworCXN0cnVjdCBudm1fZGV2ICpu
ZGV2ID0gY29udGFpbmVyX29mKGRldiwgc3RydWN0IG52bV9kZXYsIGRldik7CisJc3RydWN0IG52
bV9pZCAqaWQgPSAmbmRldi0+aWRlbnRpdHk7CisJc3RydWN0IG52bV9pZF9ncm91cCAqZ3JwID0g
JmlkLT5ncm91cHNbMF07CisJc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciA9ICZkYXR0ci0+YXR0cjsK
KworCWlmIChzdHJjbXAoYXR0ci0+bmFtZSwgInZlcnNpb24iKSA9PSAwKSB7CisJCXJldHVybiBz
Y25wcmludGYocGFnZSwgUEFHRV9TSVpFLCAiJXVcbiIsIGlkLT52ZXJfaWQpOworCX0gZWxzZSBp
ZiAoc3RyY21wKGF0dHItPm5hbWUsICJ2ZW5kb3Jfb3Bjb2RlIikgPT0gMCkgeworCQlyZXR1cm4g
c2NucHJpbnRmKHBhZ2UsIFBBR0VfU0laRSwgIiV1XG4iLCBpZC0+dm1udCk7CisJfSBlbHNlIGlm
IChzdHJjbXAoYXR0ci0+bmFtZSwgImNhcGFiaWxpdGllcyIpID09IDApIHsKKwkJcmV0dXJuIHNj
bnByaW50ZihwYWdlLCBQQUdFX1NJWkUsICIldVxuIiwgaWQtPmNhcCk7CisJfSBlbHNlIGlmIChz
dHJjbXAoYXR0ci0+bmFtZSwgImRldmljZV9tb2RlIikgPT0gMCkgeworCQlyZXR1cm4gc2NucHJp
bnRmKHBhZ2UsIFBBR0VfU0laRSwgIiV1XG4iLCBpZC0+ZG9tKTsKKwl9IGVsc2UgaWYgKHN0cmNt
cChhdHRyLT5uYW1lLCAibWVkaWFfbWFuYWdlciIpID09IDApIHsKKwkJaWYgKCFuZGV2LT5tdCkK
KwkJCXJldHVybiBzY25wcmludGYocGFnZSwgUEFHRV9TSVpFLCAiJXNcbiIsICJub25lIik7CisJ
CXJldHVybiBzY25wcmludGYocGFnZSwgUEFHRV9TSVpFLCAiJXNcbiIsIG5kZXYtPm10LT5uYW1l
KTsKKwl9IGVsc2UgaWYgKHN0cmNtcChhdHRyLT5uYW1lLCAicHBhX2Zvcm1hdCIpID09IDApIHsK
KwkJcmV0dXJuIHNjbnByaW50ZihwYWdlLCBQQUdFX1NJWkUsCisJCQkiMHglMDJ4JTAyeCUwMngl
MDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnhcbiIsCisJCQlpZC0+cHBhZi5jaF9v
ZmZzZXQsIGlkLT5wcGFmLmNoX2xlbiwKKwkJCWlkLT5wcGFmLmx1bl9vZmZzZXQsIGlkLT5wcGFm
Lmx1bl9sZW4sCisJCQlpZC0+cHBhZi5wbG5fb2Zmc2V0LCBpZC0+cHBhZi5wbG5fbGVuLAorCQkJ
aWQtPnBwYWYuYmxrX29mZnNldCwgaWQtPnBwYWYuYmxrX2xlbiwKKwkJCWlkLT5wcGFmLnBnX29m
ZnNldCwgaWQtPnBwYWYucGdfbGVuLAorCQkJaWQtPnBwYWYuc2VjdF9vZmZzZXQsIGlkLT5wcGFm
LnNlY3RfbGVuKTsKKwl9IGVsc2UgaWYgKHN0cmNtcChhdHRyLT5uYW1lLCAibWVkaWFfdHlwZSIp
ID09IDApIHsJLyogdTggKi8KKwkJcmV0dXJuIHNjbnByaW50ZihwYWdlLCBQQUdFX1NJWkUsICIl
dVxuIiwgZ3JwLT5tdHlwZSk7CisJfSBlbHNlIGlmIChzdHJjbXAoYXR0ci0+bmFtZSwgImZsYXNo
X21lZGlhX3R5cGUiKSA9PSAwKSB7CisJCXJldHVybiBzY25wcmludGYocGFnZSwgUEFHRV9TSVpF
LCAiJXVcbiIsIGdycC0+Zm10eXBlKTsKKwl9IGVsc2UgaWYgKHN0cmNtcChhdHRyLT5uYW1lLCAi
bnVtX2NoYW5uZWxzIikgPT0gMCkgeworCQlyZXR1cm4gc2NucHJpbnRmKHBhZ2UsIFBBR0VfU0la
RSwgIiV1XG4iLCBncnAtPm51bV9jaCk7CisJfSBlbHNlIGlmIChzdHJjbXAoYXR0ci0+bmFtZSwg
Im51bV9sdW5zIikgPT0gMCkgeworCQlyZXR1cm4gc2NucHJpbnRmKHBhZ2UsIFBBR0VfU0laRSwg
IiV1XG4iLCBncnAtPm51bV9sdW4pOworCX0gZWxzZSBpZiAoc3RyY21wKGF0dHItPm5hbWUsICJu
dW1fcGxhbmVzIikgPT0gMCkgeworCQlyZXR1cm4gc2NucHJpbnRmKHBhZ2UsIFBBR0VfU0laRSwg
IiV1XG4iLCBncnAtPm51bV9wbG4pOworCX0gZWxzZSBpZiAoc3RyY21wKGF0dHItPm5hbWUsICJu
dW1fYmxvY2tzIikgPT0gMCkgewkvKiB1MTYgKi8KKwkJcmV0dXJuIHNjbnByaW50ZihwYWdlLCBQ
QUdFX1NJWkUsICIldVxuIiwgZ3JwLT5udW1fYmxrKTsKKwl9IGVsc2UgaWYgKHN0cmNtcChhdHRy
LT5uYW1lLCAibnVtX3BhZ2VzIikgPT0gMCkgeworCQlyZXR1cm4gc2NucHJpbnRmKHBhZ2UsIFBB
R0VfU0laRSwgIiV1XG4iLCBncnAtPm51bV9wZyk7CisJfSBlbHNlIGlmIChzdHJjbXAoYXR0ci0+
bmFtZSwgInBhZ2Vfc2l6ZSIpID09IDApIHsKKwkJcmV0dXJuIHNjbnByaW50ZihwYWdlLCBQQUdF
X1NJWkUsICIldVxuIiwgZ3JwLT5mcGdfc3opOworCX0gZWxzZSBpZiAoc3RyY21wKGF0dHItPm5h
bWUsICJod19zZWN0b3Jfc2l6ZSIpID09IDApIHsKKwkJcmV0dXJuIHNjbnByaW50ZihwYWdlLCBQ
QUdFX1NJWkUsICIldVxuIiwgZ3JwLT5jc2Vjcyk7CisJfSBlbHNlIGlmIChzdHJjbXAoYXR0ci0+
bmFtZSwgIm9vYl9zZWN0b3Jfc2l6ZSIpID09IDApIHsvKiB1MzIgKi8KKwkJcmV0dXJuIHNjbnBy
aW50ZihwYWdlLCBQQUdFX1NJWkUsICIldVxuIiwgZ3JwLT5zb3MpOworCX0gZWxzZSBpZiAoc3Ry
Y21wKGF0dHItPm5hbWUsICJyZWFkX3R5cCIpID09IDApIHsKKwkJcmV0dXJuIHNjbnByaW50Zihw
YWdlLCBQQUdFX1NJWkUsICIldVxuIiwgZ3JwLT50cmR0KTsKKwl9IGVsc2UgaWYgKHN0cmNtcChh
dHRyLT5uYW1lLCAicmVhZF9tYXgiKSA9PSAwKSB7CisJCXJldHVybiBzY25wcmludGYocGFnZSwg
UEFHRV9TSVpFLCAiJXVcbiIsIGdycC0+dHJkbSk7CisJfSBlbHNlIGlmIChzdHJjbXAoYXR0ci0+
bmFtZSwgInByb2dfdHlwIikgPT0gMCkgeworCQlyZXR1cm4gc2NucHJpbnRmKHBhZ2UsIFBBR0Vf
U0laRSwgIiV1XG4iLCBncnAtPnRwcnQpOworCX0gZWxzZSBpZiAoc3RyY21wKGF0dHItPm5hbWUs
ICJwcm9nX21heCIpID09IDApIHsKKwkJcmV0dXJuIHNjbnByaW50ZihwYWdlLCBQQUdFX1NJWkUs
ICIldVxuIiwgZ3JwLT50cHJtKTsKKwl9IGVsc2UgaWYgKHN0cmNtcChhdHRyLT5uYW1lLCAiZXJh
c2VfdHlwIikgPT0gMCkgeworCQlyZXR1cm4gc2NucHJpbnRmKHBhZ2UsIFBBR0VfU0laRSwgIiV1
XG4iLCBncnAtPnRiZXQpOworCX0gZWxzZSBpZiAoc3RyY21wKGF0dHItPm5hbWUsICJlcmFzZV9t
YXgiKSA9PSAwKSB7CisJCXJldHVybiBzY25wcmludGYocGFnZSwgUEFHRV9TSVpFLCAiJXVcbiIs
IGdycC0+dGJlbSk7CisJfSBlbHNlIGlmIChzdHJjbXAoYXR0ci0+bmFtZSwgIm11bHRpcGxhbmVf
bW9kZXMiKSA9PSAwKSB7CisJCXJldHVybiBzY25wcmludGYocGFnZSwgUEFHRV9TSVpFLCAiMHgl
MDh4XG4iLCBncnAtPm1wb3MpOworCX0gZWxzZSBpZiAoc3RyY21wKGF0dHItPm5hbWUsICJtZWRp
YV9jYXBhYmlsaXRpZXMiKSA9PSAwKSB7CisJCXJldHVybiBzY25wcmludGYocGFnZSwgUEFHRV9T
SVpFLCAiMHglMDh4XG4iLCBncnAtPm1jY2FwKTsKKwl9IGVsc2UgaWYgKHN0cmNtcChhdHRyLT5u
YW1lLCAiY2hhbm5lbF9wYXJhbGxlbGlzbSIpID09IDApIHsvKiB1MTYgKi8KKwkJcmV0dXJuIHNj
bnByaW50ZihwYWdlLCBQQUdFX1NJWkUsICIldVxuIiwgZ3JwLT5jcGFyKTsKKwl9IGVsc2Ugewor
CQlyZXR1cm4gc2NucHJpbnRmKHBhZ2UsCisJCQkJIFBBR0VfU0laRSwKKwkJCQkgIlVuaGFuZGxl
ZCBhdHRyKCVzKSBpbiBgbnZtX2Rldl9hdHRyX3Nob3dgXG4iLAorCQkJCSBhdHRyLT5uYW1lKTsK
Kwl9Cit9CisKKyNkZWZpbmUgTlZNX0RFVl9BVFRSX1JPKF9uYW1lKQkJCQkJCVwKKwlERVZJQ0Vf
QVRUUihfbmFtZSwgU19JUlVHTywgbnZtX2Rldl9hdHRyX3Nob3csIE5VTEwpCisKK3N0YXRpYyBO
Vk1fREVWX0FUVFJfUk8odmVyc2lvbik7CitzdGF0aWMgTlZNX0RFVl9BVFRSX1JPKHZlbmRvcl9v
cGNvZGUpOworc3RhdGljIE5WTV9ERVZfQVRUUl9STyhjYXBhYmlsaXRpZXMpOworc3RhdGljIE5W
TV9ERVZfQVRUUl9STyhkZXZpY2VfbW9kZSk7CitzdGF0aWMgTlZNX0RFVl9BVFRSX1JPKHBwYV9m
b3JtYXQpOworc3RhdGljIE5WTV9ERVZfQVRUUl9STyhtZWRpYV9tYW5hZ2VyKTsKKworc3RhdGlj
IE5WTV9ERVZfQVRUUl9STyhtZWRpYV90eXBlKTsKK3N0YXRpYyBOVk1fREVWX0FUVFJfUk8oZmxh
c2hfbWVkaWFfdHlwZSk7CitzdGF0aWMgTlZNX0RFVl9BVFRSX1JPKG51bV9jaGFubmVscyk7Citz
dGF0aWMgTlZNX0RFVl9BVFRSX1JPKG51bV9sdW5zKTsKK3N0YXRpYyBOVk1fREVWX0FUVFJfUk8o
bnVtX3BsYW5lcyk7CitzdGF0aWMgTlZNX0RFVl9BVFRSX1JPKG51bV9ibG9ja3MpOworc3RhdGlj
IE5WTV9ERVZfQVRUUl9STyhudW1fcGFnZXMpOworc3RhdGljIE5WTV9ERVZfQVRUUl9STyhwYWdl
X3NpemUpOworc3RhdGljIE5WTV9ERVZfQVRUUl9STyhod19zZWN0b3Jfc2l6ZSk7CitzdGF0aWMg
TlZNX0RFVl9BVFRSX1JPKG9vYl9zZWN0b3Jfc2l6ZSk7CitzdGF0aWMgTlZNX0RFVl9BVFRSX1JP
KHJlYWRfdHlwKTsKK3N0YXRpYyBOVk1fREVWX0FUVFJfUk8ocmVhZF9tYXgpOworc3RhdGljIE5W
TV9ERVZfQVRUUl9STyhwcm9nX3R5cCk7CitzdGF0aWMgTlZNX0RFVl9BVFRSX1JPKHByb2dfbWF4
KTsKK3N0YXRpYyBOVk1fREVWX0FUVFJfUk8oZXJhc2VfdHlwKTsKK3N0YXRpYyBOVk1fREVWX0FU
VFJfUk8oZXJhc2VfbWF4KTsKK3N0YXRpYyBOVk1fREVWX0FUVFJfUk8obXVsdGlwbGFuZV9tb2Rl
cyk7CitzdGF0aWMgTlZNX0RFVl9BVFRSX1JPKG1lZGlhX2NhcGFiaWxpdGllcyk7CitzdGF0aWMg
TlZNX0RFVl9BVFRSX1JPKGNoYW5uZWxfcGFyYWxsZWxpc20pOworCisjZGVmaW5lIE5WTV9ERVZf
QVRUUihfbmFtZSkgKGRldl9hdHRyXyMjX25hbWUjIykKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1
dGUgKm52bV9kZXZfYXR0cnNbXSA9IHsKKwkmZGV2X2F0dHJfdmVyc2lvbi5hdHRyLAorCSZkZXZf
YXR0cl92ZW5kb3Jfb3Bjb2RlLmF0dHIsCisJJmRldl9hdHRyX2NhcGFiaWxpdGllcy5hdHRyLAor
CSZkZXZfYXR0cl9kZXZpY2VfbW9kZS5hdHRyLAorCSZkZXZfYXR0cl9tZWRpYV9tYW5hZ2VyLmF0
dHIsCisKKwkmZGV2X2F0dHJfcHBhX2Zvcm1hdC5hdHRyLAorCSZkZXZfYXR0cl9tZWRpYV90eXBl
LmF0dHIsCisJJmRldl9hdHRyX2ZsYXNoX21lZGlhX3R5cGUuYXR0ciwKKwkmZGV2X2F0dHJfbnVt
X2NoYW5uZWxzLmF0dHIsCisJJmRldl9hdHRyX251bV9sdW5zLmF0dHIsCisJJmRldl9hdHRyX251
bV9wbGFuZXMuYXR0ciwKKwkmZGV2X2F0dHJfbnVtX2Jsb2Nrcy5hdHRyLAorCSZkZXZfYXR0cl9u
dW1fcGFnZXMuYXR0ciwKKwkmZGV2X2F0dHJfcGFnZV9zaXplLmF0dHIsCisJJmRldl9hdHRyX2h3
X3NlY3Rvcl9zaXplLmF0dHIsCisJJmRldl9hdHRyX29vYl9zZWN0b3Jfc2l6ZS5hdHRyLAorCSZk
ZXZfYXR0cl9yZWFkX3R5cC5hdHRyLAorCSZkZXZfYXR0cl9yZWFkX21heC5hdHRyLAorCSZkZXZf
YXR0cl9wcm9nX3R5cC5hdHRyLAorCSZkZXZfYXR0cl9wcm9nX21heC5hdHRyLAorCSZkZXZfYXR0
cl9lcmFzZV90eXAuYXR0ciwKKwkmZGV2X2F0dHJfZXJhc2VfbWF4LmF0dHIsCisJJmRldl9hdHRy
X211bHRpcGxhbmVfbW9kZXMuYXR0ciwKKwkmZGV2X2F0dHJfbWVkaWFfY2FwYWJpbGl0aWVzLmF0
dHIsCisJJmRldl9hdHRyX2NoYW5uZWxfcGFyYWxsZWxpc20uYXR0ciwKKwlOVUxMLAorfTsKKwor
c3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgbnZtX2Rldl9hdHRyX2dyb3VwID0geworCS5u
YW1lID0gImxpZ2h0bnZtIiwKKwkuYXR0cnMgPSBudm1fZGV2X2F0dHJzLAorfTsKKworc3RhdGlj
IGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKm52bV9kZXZfYXR0cl9ncm91cHNbXSA9IHsK
KwkmbnZtX2Rldl9hdHRyX2dyb3VwLAorCU5VTEwsCit9OworCitzdGF0aWMgdm9pZCBudm1fZGV2
X3JlbGVhc2Uoc3RydWN0IGRldmljZSAqZGV2aWNlKQoreworCXN0cnVjdCBudm1fZGV2ICpkZXYg
PSBjb250YWluZXJfb2YoZGV2aWNlLCBzdHJ1Y3QgbnZtX2RldiwgZGV2KTsKKwlzdHJ1Y3QgcmVx
dWVzdF9xdWV1ZSAqcSA9IGRldi0+cTsKKworCXByX2RlYnVnKCJudm0vc3lzZnM6IGBudm1fZGV2
X3JlbGVhc2VgXG4iKTsKKworCWJsa19tcV91bnJlZ2lzdGVyX2RldihkZXZpY2UsIHEpOworCisJ
bnZtX2ZyZWUoZGV2KTsKK30KKworc3RhdGljIHN0cnVjdCBkZXZpY2VfdHlwZSBudm1fdHlwZSA9
IHsKKwkubmFtZQkJPSAibGlnaHRudm0iLAorCS5ncm91cHMJCT0gbnZtX2Rldl9hdHRyX2dyb3Vw
cywKKwkucmVsZWFzZQk9IG52bV9kZXZfcmVsZWFzZSwKK307CisKK2ludCBudm1fc3lzZnNfcmVn
aXN0ZXJfZGV2KHN0cnVjdCBudm1fZGV2ICpkZXYpCit7CisJaWYgKCFkZXYtPnBhcmVudF9kZXYp
CisJCXJldHVybiAwOworCisJZGV2LT5kZXYucGFyZW50ID0gZGV2LT5wYXJlbnRfZGV2OworCWRl
dl9zZXRfbmFtZSgmZGV2LT5kZXYsICIlcyIsIGRldi0+bmFtZSk7CisJZGV2LT5kZXYuY2xhc3Mg
PSBkZXYtPnBhcmVudF9kZXYtPmNsYXNzOworCWRldi0+ZGV2LnR5cGUgPSAmbnZtX3R5cGU7CisJ
ZGV2aWNlX2luaXRpYWxpemUoJmRldi0+ZGV2KTsKKwlkZXZpY2VfYWRkKCZkZXYtPmRldik7CisK
KwlibGtfbXFfcmVnaXN0ZXJfZGV2KCZkZXYtPmRldiwgZGV2LT5xKTsKKworCXJldHVybiAwOwor
fQorCit2b2lkIG52bV9zeXNmc191bnJlZ2lzdGVyX2RldihzdHJ1Y3QgbnZtX2RldiAqZGV2KQor
eworCWlmIChkZXYgJiYgZGV2LT5wYXJlbnRfZGV2KQorCQlrb2JqZWN0X3B1dCgmZGV2LT5kZXYu
a29iaik7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMgYi9kcml2ZXJz
L252bWUvaG9zdC9jb3JlLmMKaW5kZXggZmUxMzVkOS4uMWM1ODY5MiAxMDA2NDQKLS0tIGEvZHJp
dmVycy9udm1lL2hvc3QvY29yZS5jCisrKyBiL2RyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYwpAQCAt
MTI5Niw3ICsxMjk2LDcgQEAgc3RhdGljIERFVklDRV9BVFRSKHJlc2Nhbl9jb250cm9sbGVyLCBT
X0lXVVNSLCBOVUxMLCBudm1lX3N5c2ZzX3Jlc2Nhbik7CiBzdGF0aWMgc3NpemVfdCB3d2lkX3No
b3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIAkJ
CQkJCQkJY2hhciAqYnVmKQogewotCXN0cnVjdCBudm1lX25zICpucyA9IGRldl90b19kaXNrKGRl
diktPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgbnZtZV9ucyAqbnMgPSBudm1lX2dldF9uc19mcm9t
X2RldihkZXYpOwogCXN0cnVjdCBudm1lX2N0cmwgKmN0cmwgPSBucy0+Y3RybDsKIAlpbnQgc2Vy
aWFsX2xlbiA9IHNpemVvZihjdHJsLT5zZXJpYWwpOwogCWludCBtb2RlbF9sZW4gPSBzaXplb2Yo
Y3RybC0+bW9kZWwpOwpAQCAtMTMyMCw3ICsxMzIwLDcgQEAgc3RhdGljIERFVklDRV9BVFRSKHd3
aWQsIFNfSVJVR08sIHd3aWRfc2hvdywgTlVMTCk7CiBzdGF0aWMgc3NpemVfdCB1dWlkX3Nob3co
c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIAkJCQkJ
CQkJY2hhciAqYnVmKQogewotCXN0cnVjdCBudm1lX25zICpucyA9IGRldl90b19kaXNrKGRldikt
PnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgbnZtZV9ucyAqbnMgPSBudm1lX2dldF9uc19mcm9tX2Rl
dihkZXYpOwogCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVwVVxuIiwgbnMtPnV1aWQpOwogfQogc3Rh
dGljIERFVklDRV9BVFRSKHV1aWQsIFNfSVJVR08sIHV1aWRfc2hvdywgTlVMTCk7CkBAIC0xMzI4
LDcgKzEzMjgsNyBAQCBzdGF0aWMgREVWSUNFX0FUVFIodXVpZCwgU19JUlVHTywgdXVpZF9zaG93
LCBOVUxMKTsKIHN0YXRpYyBzc2l6ZV90IGV1aV9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3Ry
dWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJCQkJCQkJCWNoYXIgKmJ1ZikKIHsKLQlzdHJ1
Y3QgbnZtZV9ucyAqbnMgPSBkZXZfdG9fZGlzayhkZXYpLT5wcml2YXRlX2RhdGE7CisJc3RydWN0
IG52bWVfbnMgKm5zID0gbnZtZV9nZXRfbnNfZnJvbV9kZXYoZGV2KTsKIAlyZXR1cm4gc3ByaW50
ZihidWYsICIlOHBoZFxuIiwgbnMtPmV1aSk7CiB9CiBzdGF0aWMgREVWSUNFX0FUVFIoZXVpLCBT
X0lSVUdPLCBldWlfc2hvdywgTlVMTCk7CkBAIC0xMzM2LDcgKzEzMzYsNyBAQCBzdGF0aWMgREVW
SUNFX0FUVFIoZXVpLCBTX0lSVUdPLCBldWlfc2hvdywgTlVMTCk7CiBzdGF0aWMgc3NpemVfdCBu
c2lkX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0
ciwKIAkJCQkJCQkJY2hhciAqYnVmKQogewotCXN0cnVjdCBudm1lX25zICpucyA9IGRldl90b19k
aXNrKGRldiktPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgbnZtZV9ucyAqbnMgPSBudm1lX2dldF9u
c19mcm9tX2RldihkZXYpOwogCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBucy0+bnNfaWQp
OwogfQogc3RhdGljIERFVklDRV9BVFRSKG5zaWQsIFNfSVJVR08sIG5zaWRfc2hvdywgTlVMTCk7
CkBAIC0xMzUzLDcgKzEzNTMsNyBAQCBzdGF0aWMgdW1vZGVfdCBudm1lX2F0dHJzX2FyZV92aXNp
YmxlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCQlzdHJ1Y3QgYXR0cmlidXRlICphLCBpbnQgbikK
IHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBjb250YWluZXJfb2Yoa29iaiwgc3RydWN0IGRldmlj
ZSwga29iaik7Ci0Jc3RydWN0IG52bWVfbnMgKm5zID0gZGV2X3RvX2Rpc2soZGV2KS0+cHJpdmF0
ZV9kYXRhOworCXN0cnVjdCBudm1lX25zICpucyA9IG52bWVfZ2V0X25zX2Zyb21fZGV2KGRldik7
CiAKIAlpZiAoYSA9PSAmZGV2X2F0dHJfdXVpZC5hdHRyKSB7CiAJCWlmICghbWVtY2hyX2ludihu
cy0+dXVpZCwgMCwgc2l6ZW9mKG5zLT51dWlkKSkpCkBAIC0xNDc0LDcgKzE0NzQsOCBAQCBzdGF0
aWMgdm9pZCBudm1lX2FsbG9jX25zKHN0cnVjdCBudm1lX2N0cmwgKmN0cmwsIHVuc2lnbmVkIG5z
aWQpCiAJc3ByaW50ZihkaXNrX25hbWUsICJudm1lJWRuJWQiLCBjdHJsLT5pbnN0YW5jZSwgbnMt
Pmluc3RhbmNlKTsKIAogCWlmIChudm1lX252bV9uc19zdXBwb3J0ZWQobnMsIGlkKSkgewotCQlp
ZiAobnZtZV9udm1fcmVnaXN0ZXIobnMsIGRpc2tfbmFtZSwgbm9kZSkpIHsKKwkJaWYgKG52bWVf
bnZtX3JlZ2lzdGVyKG5zLCBkaXNrX25hbWUsIG5vZGUsCisJCQkJCQkJJm52bWVfbnNfYXR0cl9n
cm91cCkpIHsKIAkJCWRldl93YXJuKGN0cmwtPmRldiwgIiVzOiBMaWdodE5WTSBpbml0IGZhaWx1
cmVcbiIsCiAJCQkJCQkJCV9fZnVuY19fKTsKIAkJCWdvdG8gb3V0X2ZyZWVfaWQ7CmRpZmYgLS1n
aXQgYS9kcml2ZXJzL252bWUvaG9zdC9saWdodG52bS5jIGIvZHJpdmVycy9udm1lL2hvc3QvbGln
aHRudm0uYwppbmRleCAwOTVlNThlLi4zNGJlYTg5IDEwMDY0NAotLS0gYS9kcml2ZXJzL252bWUv
aG9zdC9saWdodG52bS5jCisrKyBiL2RyaXZlcnMvbnZtZS9ob3N0L2xpZ2h0bnZtLmMKQEAgLTU5
MiwxMCArNTkyLDEyIEBAIHN0YXRpYyBzdHJ1Y3QgbnZtX2Rldl9vcHMgbnZtZV9udm1fZGV2X29w
cyA9IHsKIAkubWF4X3BoeXNfc2VjdAkJPSA2NCwKIH07CiAKLWludCBudm1lX252bV9yZWdpc3Rl
cihzdHJ1Y3QgbnZtZV9ucyAqbnMsIGNoYXIgKmRpc2tfbmFtZSwgaW50IG5vZGUpCitpbnQgbnZt
ZV9udm1fcmVnaXN0ZXIoc3RydWN0IG52bWVfbnMgKm5zLCBjaGFyICpkaXNrX25hbWUsIGludCBu
b2RlLAorCQkgICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICphdHRycykKIHsKIAlz
dHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IG5zLT5xdWV1ZTsKIAlzdHJ1Y3QgbnZtX2RldiAqZGV2
OworCWludCByZXQ7CiAKIAlkZXYgPSBudm1fYWxsb2NfZGV2KG5vZGUpOwogCWlmICghZGV2KQpA
QCAtNjA0LDkgKzYwNiwxNSBAQCBpbnQgbnZtZV9udm1fcmVnaXN0ZXIoc3RydWN0IG52bWVfbnMg
Km5zLCBjaGFyICpkaXNrX25hbWUsIGludCBub2RlKQogCWRldi0+cSA9IHE7CiAJbWVtY3B5KGRl
di0+bmFtZSwgZGlza19uYW1lLCBESVNLX05BTUVfTEVOKTsKIAlkZXYtPm9wcyA9ICZudm1lX252
bV9kZXZfb3BzOworCWRldi0+cGFyZW50X2RldiA9IG5zLT5jdHJsLT5kZXZpY2U7CisJZGV2LT5w
cml2YXRlX2RhdGEgPSBuczsKIAlucy0+bmRldiA9IGRldjsKIAotCXJldHVybiBudm1fcmVnaXN0
ZXIoZGV2KTsKKwlyZXQgPSBudm1fcmVnaXN0ZXIoZGV2KTsKKwlpZiAoc3lzZnNfY3JlYXRlX2dy
b3VwKCZkZXYtPmRldi5rb2JqLCBhdHRycykpCisJCXByX3dhcm4oIiVzOiBmYWlsZWQgdG8gY3Jl
YXRlIHN5c2ZzIGdyb3VwIGZvciBpZGVudGlmaWNhdGlvblxuIiwKKwkJCW5zLT5kaXNrLT5kaXNr
X25hbWUpOworCXJldHVybiByZXQ7CiB9CiAKIHZvaWQgbnZtZV9udm1fdW5yZWdpc3RlcihzdHJ1
Y3QgbnZtZV9ucyAqbnMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL252bWUvaG9zdC9udm1lLmggYi9k
cml2ZXJzL252bWUvaG9zdC9udm1lLmgKaW5kZXggN2I0OWI0NS4uNDNhNmU5MyAxMDA2NDQKLS0t
IGEvZHJpdmVycy9udm1lL2hvc3QvbnZtZS5oCisrKyBiL2RyaXZlcnMvbnZtZS9ob3N0L252bWUu
aApAQCAtMjY3LDExICsyNjcsMjEgQEAgaW50IG52bWVfc2dfZ2V0X3ZlcnNpb25fbnVtKGludCBf
X3VzZXIgKmlwKTsKIAogI2lmZGVmIENPTkZJR19OVk0KIGludCBudm1lX252bV9uc19zdXBwb3J0
ZWQoc3RydWN0IG52bWVfbnMgKm5zLCBzdHJ1Y3QgbnZtZV9pZF9ucyAqaWQpOwotaW50IG52bWVf
bnZtX3JlZ2lzdGVyKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCBjaGFyICpkaXNrX25hbWUpOwot
dm9pZCBudm1lX252bV91bnJlZ2lzdGVyKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCBjaGFyICpk
aXNrX25hbWUpOworaW50IG52bWVfbnZtX3JlZ2lzdGVyKHN0cnVjdCBudm1lX25zICpucywgY2hh
ciAqZGlza19uYW1lLCBpbnQgbm9kZSwKKwkJICAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9n
cm91cCAqYXR0cnMpOwordm9pZCBudm1lX252bV91bnJlZ2lzdGVyKHN0cnVjdCBudm1lX25zICpu
cyk7CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IG52bWVfbnMgKm52bWVfZ2V0X25zX2Zyb21fZGV2
KHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlpZiAoZGV2LT50eXBlLT5kZXZub2RlKQorCQlyZXR1
cm4gZGV2X3RvX2Rpc2soZGV2KS0+cHJpdmF0ZV9kYXRhOworCisJcmV0dXJuIChjb250YWluZXJf
b2YoZGV2LCBzdHJ1Y3QgbnZtX2RldiwgZGV2KSktPnByaXZhdGVfZGF0YTsKK30KICNlbHNlCiBz
dGF0aWMgaW5saW5lIGludCBudm1lX252bV9yZWdpc3RlcihzdHJ1Y3QgbnZtZV9ucyAqbnMsIGNo
YXIgKmRpc2tfbmFtZSwKLQkJCQkJCQkJaW50IG5vZGUpCisJCQkJICAgIGludCBub2RlLAorCQkJ
CSAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICphdHRycykKIHsKIAlyZXR1cm4gMDsK
IH0KQEAgLTI4Miw2ICsyOTIsMTAgQEAgc3RhdGljIGlubGluZSBpbnQgbnZtZV9udm1fbnNfc3Vw
cG9ydGVkKHN0cnVjdCBudm1lX25zICpucywgc3RydWN0IG52bWVfaWRfbnMgKmkKIHsKIAlyZXR1
cm4gMDsKIH0KK3N0YXRpYyBpbmxpbmUgc3RydWN0IG52bWVfbnMgKm52bWVfZ2V0X25zX2Zyb21f
ZGV2KHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlyZXR1cm4gZGV2X3RvX2Rpc2soZGV2KS0+cHJp
dmF0ZV9kYXRhOworfQogI2VuZGlmIC8qIENPTkZJR19OVk0gKi8KIAogaW50IF9faW5pdCBudm1l
X2NvcmVfaW5pdCh2b2lkKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbGlnaHRudm0uaCBi
L2luY2x1ZGUvbGludXgvbGlnaHRudm0uaAppbmRleCA1YWZjMjYzLi5kMTkwNzg2IDEwMDY0NAot
LS0gYS9pbmNsdWRlL2xpbnV4L2xpZ2h0bnZtLmgKKysrIGIvaW5jbHVkZS9saW51eC9saWdodG52
bS5oCkBAIC0zNTIsNyArMzUyLDEwIEBAIHN0cnVjdCBudm1fZGV2IHsKIAogCS8qIEJhY2tlbmQg
ZGV2aWNlICovCiAJc3RydWN0IHJlcXVlc3RfcXVldWUgKnE7CisJc3RydWN0IGRldmljZSBkZXY7
CisJc3RydWN0IGRldmljZSAqcGFyZW50X2RldjsKIAljaGFyIG5hbWVbRElTS19OQU1FX0xFTl07
CisJdm9pZCAqcHJpdmF0ZV9kYXRhOwogCiAJc3RydWN0IG11dGV4IG1sb2NrOwogCXNwaW5sb2Nr
X3QgbG9jazsKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KTGludXgtbnZtZSBtYWlsaW5nIGxpc3QKTGludXgtbnZtZUBsaXN0cy5pbmZy
YWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu
dXgtbnZtZQo=
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2016-07-01 7:21 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-06-29 14:51 [PATCH 0/6] enable sysfs for lightnvm Matias Bjørling
2016-06-29 14:51 ` [PATCH 1/6] nvme: refactor namespaces to support non-gendisk devices Matias Bjørling
2016-06-29 14:51 ` [PATCH 2/6] null_blk: refactor " Matias Bjørling
2016-06-29 14:51 ` [PATCH 3/6] blk-mq: register device instead of disk Matias Bjørling
2016-06-29 14:51 ` [PATCH 4/6] lightnvm: let drivers control the lifetime of nvm_dev Matias Bjørling
2016-06-29 14:51 ` [PATCH 5/6] lightnvm: expose device geometry through sysfs Matias Bjørling
2016-06-30 20:01 ` J Freyensee
2016-07-01 7:20 ` Matias Bjørling
2016-06-29 14:51 ` [PATCH 6/6] lightnvm: expose gennvm target type " Matias Bjørling
-- strict thread matches above, loose matches on Subject: below --
2016-06-10 12:22 [PATCH 5/6] lightnvm: expose device geometry " Matias Bjørling
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).