From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from us-smtp-2.mimecast.com ([207.211.31.81] helo=us-smtp-delivery-1.mimecast.com) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jWyac-0004Jc-QA for kexec@lists.infradead.org; Fri, 08 May 2020 08:42:39 +0000 From: David Hildenbrand Subject: [PATCH v4 1/4] device-dax: Don't leak kernel memory to user space after unloading kmem Date: Fri, 8 May 2020 10:42:14 +0200 Message-Id: <20200508084217.9160-2-david@redhat.com> In-Reply-To: <20200508084217.9160-1-david@redhat.com> References: <20200508084217.9160-1-david@redhat.com> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "kexec" Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org To: linux-kernel@vger.kernel.org Cc: Dave Jiang , Pavel Tatashin , linux-nvdimm@lists.01.org, Vishal Verma , David Hildenbrand , kexec@lists.infradead.org, stable@vger.kernel.org, linux-mm@kvack.org, Dan Williams , Andrew Morton QXNzdW1lIHdlIGhhdmUga21lbSBjb25maWd1cmVkIGFuZCBsb2FkZWQ6CiAgW3Jvb3RAbG9jYWxo b3N0IH5dIyBjYXQgL3Byb2MvaW9tZW0KICAuLi4KICAxNDAwMDAwMDAtMzNmZmZmZmZmIDogUGVy c2lzdGVudCBNZW1vcnkkCiAgICAxNDAwMDAwMDAtMTQ4MWZmZmZmIDogbmFtZXNwYWNlMC4wCiAg ICAxNTAwMDAwMDAtMzNmZmZmZmZmIDogZGF4MC4wCiAgICAgIDE1MDAwMDAwMC0zM2ZmZmZmZmYg OiBTeXN0ZW0gUkFNCgpBc3N1bWUgd2UgdHJ5IHRvIHVubG9hZCBrbWVtLiBUaGlzIGZvcmNlLXVu bG9hZGluZyB3aWxsIHdvcmssIGV2ZW4gaWYKbWVtb3J5IGNhbm5vdCBnZXQgcmVtb3ZlZCBmcm9t IHRoZSBzeXN0ZW0uCiAgW3Jvb3RAbG9jYWxob3N0IH5dIyBybW1vZCBrbWVtCiAgWyAgIDg2LjM4 MDIyOF0gcmVtb3ZpbmcgbWVtb3J5IGZhaWxzLCBiZWNhdXNlIG1lbW9yeSBbMHgwMDAwMDAwMTUw MDAwMDAwLTB4MDAwMDAwMDE1N2ZmZmZmZl0gaXMgb25saW5lZAogIC4uLgogIFsgICA4Ni40MzEy MjVdIGttZW0gZGF4MC4wOiBEQVggcmVnaW9uIFttZW0gMHgxNTAwMDAwMDAtMHgzM2ZmZmZmZmZd IGNhbm5vdCBiZSBob3RyZW1vdmVkIHVudGlsIHRoZSBuZXh0IHJlYm9vdAoKTm93LCB3ZSBjYW4g cmVjb25maWd1cmUgdGhlIG5hbWVzcGFjZToKICBbcm9vdEBsb2NhbGhvc3Qgfl0jIG5kY3RsIGNy ZWF0ZS1uYW1lc3BhY2UgLS1mb3JjZSAtLXJlY29uZmlnPW5hbWVzcGFjZTAuMCAtLW1vZGU9ZGV2 ZGF4CiAgWyAgMTMxLjQwOTM1MV0gbmRfcG1lbSBuYW1lc3BhY2UwLjA6IGNvdWxkIG5vdCByZXNl cnZlIHJlZ2lvbiBbbWVtIDB4MTQwMDAwMDAwLTB4MzNmZmZmZmZmXWRheAogIFsgIDEzMS40MTAx NDddIG5kX3BtZW06IHByb2JlIG9mIG5hbWVzcGFjZTAuMCBmYWlsZWQgd2l0aCBlcnJvciAtMTZu YW1lc3BhY2UwLjAgLS1tb2RlPWRldmRheAogIC4uLgoKVGhpcyBmYWlscyBhcyBleHBlY3RlZCBk dWUgdG8gdGhlIGJ1c3kgbWVtb3J5IHJlc291cmNlLCBhbmQgdGhlIG1lbW9yeQpjYW5ub3QgYmUg dXNlZC4gSG93ZXZlciwgdGhlIGRheDAuMCBkZXZpY2UgaXMgcmVtb3ZlZCwgYW5kIGFsb25nIGl0 cyBuYW1lLgoKVGhlIG5hbWUgb2YgdGhlIG1lbW9yeSByZXNvdXJjZSBub3cgcG9pbnRzIGF0IGZy ZWVkIG1lbW9yeSAobmFtZSBvZiB0aGUKZGV2aWNlKS4KICBbcm9vdEBsb2NhbGhvc3Qgfl0jIGNh dCAvcHJvYy9pb21lbQogIC4uLgogIDE0MDAwMDAwMC0zM2ZmZmZmZmYgOiBQZXJzaXN0ZW50IE1l bW9yeQogICAgMTQwMDAwMDAwLTE0ODFmZmZmZiA6IG5hbWVzcGFjZTAuMAogICAgMTUwMDAwMDAw LTMzZmZmZmZmZiA6IO+/vV/vv71eN1/vv73vv70vX++/ve+/vXdS77+977+9V1Hvv73vv73vv71e 77+977+977+9IC4uLgogICAgMTUwMDAwMDAwLTMzZmZmZmZmZiA6IFN5c3RlbSBSQU0KCldlIGhh dmUgdG8gbWFrZSBzdXJlIHRvIGR1cGxpY2F0ZSB0aGUgc3RyaW5nLiBXaGlsZSBhdCBpdCwgcmVt b3ZlIHRoZQpzdXBlcmZsdW91cyBzZXR0aW5nIG9mIHRoZSBuYW1lIGFuZCBmaXh1cCBhIHN0YWxl IGNvbW1lbnQuCgpGaXhlczogOWY5NjBkYTcyYjI1ICgiZGV2aWNlLWRheDogIkhvdHJlbW92ZSIg cGVyc2lzdGVudCBtZW1vcnkgdGhhdCBpcyB1c2VkIGxpa2Ugbm9ybWFsIFJBTSIpCkNjOiBzdGFi bGVAdmdlci5rZXJuZWwub3JnICMgdjUuMwpDYzogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFt c0BpbnRlbC5jb20+CkNjOiBWaXNoYWwgVmVybWEgPHZpc2hhbC5sLnZlcm1hQGludGVsLmNvbT4K Q2M6IERhdmUgSmlhbmcgPGRhdmUuamlhbmdAaW50ZWwuY29tPgpDYzogUGF2ZWwgVGF0YXNoaW4g PHBhc2hhLnRhdGFzaGluQHNvbGVlbi5jb20+CkNjOiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4 LWZvdW5kYXRpb24ub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBIaWxkZW5icmFuZCA8ZGF2aWRA cmVkaGF0LmNvbT4KLS0tCiBkcml2ZXJzL2RheC9rbWVtLmMgfCAxNCArKysrKysrKysrKy0tLQog MSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9kYXgva21lbS5jIGIvZHJpdmVycy9kYXgva21lbS5jCmluZGV4IDNkMGE3 ZTcwMmM5NC4uMWU2NzhiZGY1YWVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2RheC9rbWVtLmMKKysr IGIvZHJpdmVycy9kYXgva21lbS5jCkBAIC0yMiw2ICsyMiw3IEBAIGludCBkZXZfZGF4X2ttZW1f cHJvYmUoc3RydWN0IGRldmljZSAqZGV2KQogCXJlc291cmNlX3NpemVfdCBrbWVtX3NpemU7CiAJ cmVzb3VyY2Vfc2l6ZV90IGttZW1fZW5kOwogCXN0cnVjdCByZXNvdXJjZSAqbmV3X3JlczsKKwlj b25zdCBjaGFyICpuZXdfcmVzX25hbWU7CiAJaW50IG51bWFfbm9kZTsKIAlpbnQgcmM7CiAKQEAg LTQ4LDExICs0OSwxNiBAQCBpbnQgZGV2X2RheF9rbWVtX3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRl dikKIAlrbWVtX3NpemUgJj0gfihtZW1vcnlfYmxvY2tfc2l6ZV9ieXRlcygpIC0gMSk7CiAJa21l bV9lbmQgPSBrbWVtX3N0YXJ0ICsga21lbV9zaXplOwogCi0JLyogUmVnaW9uIGlzIHBlcm1hbmVu dGx5IHJlc2VydmVkLiAgSG90LXJlbW92ZSBub3QgeWV0IGltcGxlbWVudGVkLiAqLwotCW5ld19y ZXMgPSByZXF1ZXN0X21lbV9yZWdpb24oa21lbV9zdGFydCwga21lbV9zaXplLCBkZXZfbmFtZShk ZXYpKTsKKwluZXdfcmVzX25hbWUgPSBrc3RyZHVwKGRldl9uYW1lKGRldiksIEdGUF9LRVJORUwp OworCWlmICghbmV3X3Jlc19uYW1lKQorCQlyZXR1cm4gLUVOT01FTTsKKworCS8qIFJlZ2lvbiBp cyBwZXJtYW5lbnRseSByZXNlcnZlZCBpZiBob3RyZW1vdmUgZmFpbHMuICovCisJbmV3X3JlcyA9 IHJlcXVlc3RfbWVtX3JlZ2lvbihrbWVtX3N0YXJ0LCBrbWVtX3NpemUsIG5ld19yZXNfbmFtZSk7 CiAJaWYgKCFuZXdfcmVzKSB7CiAJCWRldl93YXJuKGRldiwgImNvdWxkIG5vdCByZXNlcnZlIHJl Z2lvbiBbJXBhLSVwYV1cbiIsCiAJCQkgJmttZW1fc3RhcnQsICZrbWVtX2VuZCk7CisJCWtmcmVl KG5ld19yZXNfbmFtZSk7CiAJCXJldHVybiAtRUJVU1k7CiAJfQogCkBAIC02MywxMiArNjksMTIg QEAgaW50IGRldl9kYXhfa21lbV9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJICogdW5rbm93 biB0byB1cyB0aGF0IHdpbGwgYnJlYWsgYWRkX21lbW9yeSgpIGJlbG93LgogCSAqLwogCW5ld19y ZXMtPmZsYWdzID0gSU9SRVNPVVJDRV9TWVNURU1fUkFNOwotCW5ld19yZXMtPm5hbWUgPSBkZXZf bmFtZShkZXYpOwogCiAJcmMgPSBhZGRfbWVtb3J5KG51bWFfbm9kZSwgbmV3X3Jlcy0+c3RhcnQs IHJlc291cmNlX3NpemUobmV3X3JlcykpOwogCWlmIChyYykgewogCQlyZWxlYXNlX3Jlc291cmNl KG5ld19yZXMpOwogCQlrZnJlZShuZXdfcmVzKTsKKwkJa2ZyZWUobmV3X3Jlc19uYW1lKTsKIAkJ cmV0dXJuIHJjOwogCX0KIAlkZXZfZGF4LT5kYXhfa21lbV9yZXMgPSBuZXdfcmVzOwpAQCAtODMs NiArODksNyBAQCBzdGF0aWMgaW50IGRldl9kYXhfa21lbV9yZW1vdmUoc3RydWN0IGRldmljZSAq ZGV2KQogCXN0cnVjdCByZXNvdXJjZSAqcmVzID0gZGV2X2RheC0+ZGF4X2ttZW1fcmVzOwogCXJl c291cmNlX3NpemVfdCBrbWVtX3N0YXJ0ID0gcmVzLT5zdGFydDsKIAlyZXNvdXJjZV9zaXplX3Qg a21lbV9zaXplID0gcmVzb3VyY2Vfc2l6ZShyZXMpOworCWNvbnN0IGNoYXIgKnJlc19uYW1lID0g cmVzLT5uYW1lOwogCWludCByYzsKIAogCS8qCkBAIC0xMDIsNiArMTA5LDcgQEAgc3RhdGljIGlu dCBkZXZfZGF4X2ttZW1fcmVtb3ZlKHN0cnVjdCBkZXZpY2UgKmRldikKIAkvKiBSZWxlYXNlIGFu ZCBmcmVlIGRheCByZXNvdXJjZXMgKi8KIAlyZWxlYXNlX3Jlc291cmNlKHJlcyk7CiAJa2ZyZWUo cmVzKTsKKwlrZnJlZShyZXNfbmFtZSk7CiAJZGV2X2RheC0+ZGF4X2ttZW1fcmVzID0gTlVMTDsK IAogCXJldHVybiAwOwotLSAKMi4yNS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18Ka2V4ZWMgbWFpbGluZyBsaXN0CmtleGVjQGxpc3RzLmluZnJhZGVh ZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9rZXhlYwo=