Bug: Write fault blocked by KUAP! in do_notify_resume()
From: Christophe Leroy <hidden>
Date: 2023-05-26 10:22:08
Can't find how that can happen. I have: CONFIG_PREEMPT_BUILD=y # CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_VOLUNTARY is not set CONFIG_PREEMPT=y CONFIG_PREEMPT_COUNT=y CONFIG_PREEMPTION=y CONFIG_PREEMPT_RCU=y We are inside an access_begin / access_end block. [ 380.407589] ------------[ cut here ]------------ [ 380.408019] Bug: Write fault blocked by KUAP! [ 380.408497] WARNING: CPU: 0 PID: 422 at arch/powerpc/mm/fault.c:228 do_page_fault+0x510/0x78c [ 380.409353] CPU: 0 PID: 422 Comm: CORSurv Tainted: G W 6.4.0-rc2-s3k-dev-02274-gca69d28ba73c #328 [ 380.409879] Hardware name: MCR3000_2G 8xx 0x500000 CMPC885 [ 380.410346] NIP: c00135cc LR: c00135cc CTR: c0065b08 [ 380.410834] REGS: cae53ce0 TRAP: 0700 Tainted: G W (6.4.0-rc2-s3k-dev-02274-gca69d28ba73c) [ 380.411335] MSR: 00021032 <ME,IR,DR,RI> CR: 22e822d2 XER: 2000f701 [ 380.414300] [ 380.414300] GPR00: c00135cc cae53da0 c26439c0 00000021 c0a75d78 00000001 c0a75e88 00001032 [ 380.414300] GPR08: 00000027 00000000 00000001 921a5f00 22e822d2 1002c9f4 00000001 00000005 [ 380.414300] GPR16: 10025760 ffffffff 00000000 100254bc 10024eec 00000000 00000000 00000004 [ 380.414300] GPR24: 00000006 10025770 100100cc c26c8d80 7fab7b50 02000000 00000300 cae53de0 [ 380.428316] NIP [c00135cc] do_page_fault+0x510/0x78c [ 380.429005] LR [c00135cc] do_page_fault+0x510/0x78c [ 380.429673] Call Trace: [ 380.430115] [cae53da0] [c00135cc] do_page_fault+0x510/0x78c (unreliable) [ 380.431513] [cae53dd0] [c0003ac4] DataTLBError_virt+0x114/0x118 [ 380.432546] --- interrupt: 300 at __unsafe_save_user_regs.constprop.0+0x24/0x88 [ 380.433231] NIP: c000656c LR: c0006980 CTR: 00000006 [ 380.433714] REGS: cae53de0 TRAP: 0300 Tainted: G W (6.4.0-rc2-s3k-dev-02274-gca69d28ba73c) [ 380.434216] MSR: 00009032 <EE,ME,IR,DR,RI> CR: 22084442 XER: 2000f701 [ 380.437561] DAR: 7fab7b50 DSISR: 8a000000 [ 380.437561] GPR00: c0006980 cae53ea0 c26439c0 cae53f40 7fab7b50 7fab7b30 0000001d 7fab8010 [ 380.437561] GPR08: cae53f38 7fab7b50 cae53f40 918ffc00 22084442 1002c9f4 00000001 00000005 [ 380.437561] GPR16: 10025760 ffffffff 00000000 100254bc 10024eec 00000000 00000000 00000004 [ 380.437561] GPR24: 00000006 10025770 100100cc cae53f40 cae53f40 cae53ec8 c26439c0 7fab7b50 [ 380.451991] NIP [c000656c] __unsafe_save_user_regs.constprop.0+0x24/0x88 [ 380.452678] LR [c0006980] handle_signal32+0x9c/0x1a0 [ 380.453329] --- interrupt: 300 [ 380.453803] [cae53ea0] [10025770] 0x10025770 (unreliable) [ 380.455086] [cae53ec0] [c0008844] do_notify_resume+0x128/0x2cc [ 380.456149] [cae53f20] [c000df70] interrupt_exit_user_prepare_main+0x7c/0xd8 [ 380.457205] [cae53f30] [c00120b4] ret_from_syscall+0xc/0x28 [ 380.458249] --- interrupt: c00 at 0xff42e98 [ 380.458809] NIP: 0ff42e98 LR: 0ff42e8c CTR: 0fdff244 [ 380.459298] REGS: cae53f40 TRAP: 0c00 Tainted: G W (6.4.0-rc2-s3k-dev-02274-gca69d28ba73c) [ 380.459796] MSR: 0000d032 <EE,PR,ME,IR,DR,RI> CR: 38084448 XER: 2000f701 [ 380.463473] [ 380.463473] GPR00: 0000001d 7fab8010 77fc34d0 00000004 00000000 00000000 00000000 00000000 [ 380.463473] GPR08: 00000000 00002009 00000000 7fab7ef0 28084842 1002c9f4 00000001 00000005 [ 380.463473] GPR16: 10025760 ffffffff 00000000 100254bc 10024eec 00000000 00000000 00000004 [ 380.463473] GPR24: 00000006 10025770 100100cc 0fc425ec 1001048c 7fab8048 10025558 10024ee8 [ 380.477466] NIP [0ff42e98] 0xff42e98 [ 380.478015] LR [0ff42e8c] 0xff42e8c [ 380.478546] --- interrupt: c00 [ 380.479026] Code: 408201f8 807f0080 48033361 2c030000 41a2ffc8 2c1d0000 41820138 3c80c096 3884d5d0 3c60c096 3863d6bc 4800fa79 <0fe00000> 93410018 814203c8 714a0100 [ 380.486263] ---[ end trace 0000000000000000 ]--- [ 380.492813] [ 380.547950] CORSurv[422]: bad frame in handle_signal32: 3e6b61e5 nip 0ff42e98 lr 0ff42e8c Any idea ? Christophe