All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] enable sysfs for lightnvm
@ 2016-06-29 14:51 ` Matias Bjørling
  0 siblings, 0 replies; 33+ 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

The common way to expose a storage device is to export it through the
gendisk structure, which takes care of handling the visibility lifetime
of the device to user-space and carries device driver and block layer
specific sysfs entries.

For LightNVM, no gendisk is exposed, which hides these entries.

This patchset enables LightNVM to expose a subset of the gendisk entries
by implementing a new non-gendisk device that only exposes the sysfs
entries that are relevant to the device driver and LightNVM. For example
/mq and the NVMe sysfs entries.

The new non-gendisk exposes itself in place of the original gendisk.
Thus, a gendisk device exposed through /sys/class/nvme/nvme0n1, will
still be exposed through the same directory, although only with the /mq,
lightnvm, and nvme specific entries.

The LightNVM storage device can be found through sysfs by searching
for devices that has the "lightnvm" dev type.

The patches require the just posted patches before they can be applied.
They can also be found in the for-4.8/sysfs branch at:

  https://github.com/OpenChannelSSD/linux.git

v3:
 - Fixed missing divising by nvme block nr.
v2:
 - Updated "expose gennvm target type" to expose its own kobject, which
   pblk and others can hook into.
 - Fixed missing disk_name in null_blk patch on lightnvm device

Matias Bjørling (4):
  nvme: refactor namespaces to support non-gendisk devices
  null_blk: refactor to support non-gendisk devices
  blk-mq: register device instead of disk
  lightnvm: let drivers control the lifetime of nvm_dev

Simon A. F. Lund (2):
  lightnvm: expose device geometry through sysfs
  lightnvm: expose gennvm target type through sysfs

 block/blk-mq-sysfs.c         |  13 ++-
 block/blk-sysfs.c            |   4 +-
 drivers/block/null_blk.c     | 128 +++++++++++++++++-----------
 drivers/lightnvm/Makefile    |   2 +-
 drivers/lightnvm/core.c      |  54 +++++-------
 drivers/lightnvm/gennvm.c    | 112 +++++++++++++++++++++----
 drivers/lightnvm/lightnvm.h  |  35 ++++++++
 drivers/lightnvm/sysfs.c     | 195 +++++++++++++++++++++++++++++++++++++++++++
 drivers/md/dm.c              |   2 +-
 drivers/nvme/host/core.c     | 165 ++++++++++++++++++++----------------
 drivers/nvme/host/lightnvm.c |  34 ++++++--
 drivers/nvme/host/nvme.h     |  26 ++++--
 include/linux/blk-mq.h       |   4 +-
 include/linux/lightnvm.h     |  28 +++++--
 14 files changed, 603 insertions(+), 199 deletions(-)
 create mode 100644 drivers/lightnvm/lightnvm.h
 create mode 100644 drivers/lightnvm/sysfs.c

-- 
2.1.4

^ permalink raw reply	[flat|nested] 33+ messages in thread
* [PATCH 5/6] lightnvm: expose device geometry through sysfs
@ 2016-06-10 12:22 ` Matias Bjørling
  0 siblings, 0 replies; 33+ 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] 33+ messages in thread

end of thread, other threads:[~2016-07-01  7:20 UTC | newest]

Thread overview: 33+ 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 ` Matias Bjørling
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
2016-06-29 14:51   ` Matias Bjørling
2016-06-29 14:51   ` 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
2016-06-29 14:51   ` Matias Bjørling
2016-06-29 14:51   ` 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
2016-06-29 14:51   ` Matias Bjørling
2016-06-29 14:51   ` 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
2016-06-29 14:51   ` Matias Bjørling
2016-06-29 14:51   ` 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   ` Matias Bjørling
2016-06-29 14:51   ` Matias Bjørling
2016-06-30 20:01   ` J Freyensee
2016-06-30 20:01     ` J Freyensee
2016-07-01  7:20     ` Matias Bjørling
2016-07-01  7:20       ` Matias Bjørling
2016-06-29 14:51 ` [PATCH 6/6] lightnvm: expose gennvm target type " Matias Bjørling
2016-06-29 14:51   ` Matias Bjørling
2016-06-29 14:51   ` Matias Bjørling
2016-06-29 14:51   ` 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
2016-06-10 12:22 ` Matias Bjørling
2016-06-10 12:22 ` Matias Bjørling

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.