From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v2,1/7] x86: refactor kprobes_fault() like kprobe_exceptions_notify() From: Borislav Petkov Message-Id: <20180828113611.GC32231@nazgul.tnic> Date: Tue, 28 Aug 2018 13:36:11 +0200 To: Jann Horn Cc: Kees Cook , Thomas Gleixner , Ingo Molnar , x86@kernel.org, Andy Lutomirski , kernel-hardening@lists.openwall.com, Tony Luck , linux-kernel@vger.kernel.org, dvyukov@google.com, linux-edac@vger.kernel.org List-ID: T24gTW9uLCBBdWcgMjcsIDIwMTggYXQgMDg6NTY6MjVQTSArMDIwMCwgSmFubiBIb3JuIHdyb3Rl Ogo+IFRoaXMgaXMgYW4gZXh0ZW5zaW9uIG9mIGNvbW1pdCBiNTA2YTlkMDhiYWUgKCJ4ODY6IGNv ZGUgY2xhcmlmaWNhdGlvbiBwYXRjaAo+IHRvIEtwcm9iZXMgYXJjaCBjb2RlIikuIEFzIHRoYXQg Y29tbWl0IGV4cGxhaW5zLCBldmVuIHRob3VnaAo+IGtwcm9iZV9ydW5uaW5nKCkgY2FuJ3QgYmUg Y2FsbGVkIHdpdGggcHJlZW1wdGlvbiBlbmFibGVkLCB5b3UgZG9uJ3QgaGF2ZSB0bwo+IGRpc2Fi bGUgcHJlZW1wdGlvbiAtIGlmIHByZWVtcHRpb24gaXMgb24sIHlvdSBjYW4ndCBiZSBpbiBhIGtw cm9iZS4KPiAKPiBBbHNvLCB1c2UgWDg2X1RSQVBfUEYgaW5zdGVhZCBvZiAxNC4KPiAKPiBTaWdu ZWQtb2ZmLWJ5OiBKYW5uIEhvcm4gPGphbm5oQGdvb2dsZS5jb20+Cj4gLS0tCj4gIGFyY2gveDg2 L21tL2ZhdWx0LmMgfCAxOSArKysrKysrKy0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCA4 IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9hcmNoL3g4 Ni9tbS9mYXVsdC5jIGIvYXJjaC94ODYvbW0vZmF1bHQuYwo+IGluZGV4IGI5MTIzYzQ5N2UwYS4u MjI1NGEzMDUzM2I5IDEwMDY0NAo+IC0tLSBhL2FyY2gveDg2L21tL2ZhdWx0LmMKPiArKysgYi9h cmNoL3g4Ni9tbS9mYXVsdC5jCj4gQEAgLTQ0LDE3ICs0NCwxNCBAQCBrbW1pb19mYXVsdChzdHJ1 Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgbG9uZyBhZGRyKQo+ICAKPiAgc3RhdGljIG5va3By b2JlX2lubGluZSBpbnQga3Byb2Jlc19mYXVsdChzdHJ1Y3QgcHRfcmVncyAqcmVncykKPiAgewo+ IC0JaW50IHJldCA9IDA7Cj4gLQo+IC0JLyoga3Byb2JlX3J1bm5pbmcoKSBuZWVkcyBzbXBfcHJv Y2Vzc29yX2lkKCkgKi8KPiAtCWlmIChrcHJvYmVzX2J1aWx0X2luKCkgJiYgIXVzZXJfbW9kZShy ZWdzKSkgewo+IC0JCXByZWVtcHRfZGlzYWJsZSgpOwo+IC0JCWlmIChrcHJvYmVfcnVubmluZygp ICYmIGtwcm9iZV9mYXVsdF9oYW5kbGVyKHJlZ3MsIDE0KSkKPiAtCQkJcmV0ID0gMTsKPiAtCQlw cmVlbXB0X2VuYWJsZSgpOwo+IC0JfQo+IC0KPiAtCXJldHVybiByZXQ7Cj4gKwkvKgo+ICsJICog VG8gYmUgcG90ZW50aWFsbHkgcHJvY2Vzc2luZyBhIGtwcm9iZSBmYXVsdCBhbmQgdG8gYmUgYWxs b3dlZCB0byBjYWxsCj4gKwkgKiBrcHJvYmVfcnVubmluZygpLCB3ZSBoYXZlIHRvIGJlIG5vbi1w cmVlbXB0aWJsZS4KPiArCSAqLwo+ICsJaWYgKGtwcm9iZXNfYnVpbHRfaW4oKSAmJiAhdXNlcl9t b2RlKHJlZ3MpICYmICFwcmVlbXB0aWJsZSgpICYmCj4gKwkgICAga3Byb2JlX3J1bm5pbmcoKSAm JiBrcHJvYmVfZmF1bHRfaGFuZGxlcihyZWdzLCBYODZfVFJBUF9QRikpCj4gKwkJcmV0dXJuIDE7 Cj4gKwlyZXR1cm4gMDsKCk1heWJlIGV2ZW46CgoJcmV0dXJuIChrcHJvYmVzX2J1aWx0X2luKCkg JiYKCQkhdXNlcl9tb2RlKHJlZ3MpICYmCgkJIXByZWVtcHRpYmxlKCkgJiYKCQlrcHJvYmVfcnVu bmluZygpICYmCgkJa3Byb2JlX2ZhdWx0X2hhbmRsZXIocmVncywgWDg2X1RSQVBfUEYpKTsKCkFs dGhvdWdoIEknZCBkbyBpdCBhIGJpdCBtb3JlIHJlYWRhYmxlIGJ5IGZsaXBwaW5nIHRoZSBjaGVj a3MgYW5kCnNwbGl0dGluZyB0aGVtOgoKCWlmICgha3Byb2Jlc19idWlsdF9pbigpKQoJCXJldHVy biAwOwoKCWlmICh1c2VyX21vZGUocmVncykpCgkJcmV0dXJuIDA7CgoJLi4uCgoJcmV0dXJuIGtw cm9iZV9mYXVsdF9oYW5kbGVyKHJlZ3MsIFg4Nl9UUkFQX1BGKTsKfQo=