From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Matias=20Bj=C3=B8rling?= Subject: [PATCH 4/6] lightnvm: let drivers control the lifetime of nvm_dev Date: Wed, 29 Jun 2016 16:51:39 +0200 Message-ID: <1467211901-26707-5-git-send-email-m@bjorling.me> References: <1467211901-26707-1-git-send-email-m@bjorling.me> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1467211901-26707-1-git-send-email-m@bjorling.me> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com To: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, axboe@fb.com, keith.busch@intel.com, linux-nvme@lists.infradead.org, dm-devel@redhat.com Cc: =?UTF-8?q?Matias=20Bj=C3=B8rling?= List-Id: dm-devel.ids 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 Ki8KICNlbmRpZiAvKiBMSUdIVE5WTS5IICovCi0tIAoyLjEuNAoKLS0KZG0tZGV2ZWwgbWFpbGlu ZyBsaXN0CmRtLWRldmVsQHJlZGhhdC5jb20KaHR0cHM6Ly93d3cucmVkaGF0LmNvbS9tYWlsbWFu L2xpc3RpbmZvL2RtLWRldmVs