Re: [PATCH v4 1/2] m68k: Handle __generic_copy_to_user faults more carefully

Greg Ungerer
2024-08-08T14:52:10Z

Hi Finn,

On 8/8/24 16:56, Finn Thain wrote:
> On Thu, 8 Aug 2024, Greg Ungerer wrote:
>> On 8/8/24 11:57, Finn Thain wrote:
>>>> I'm afraid I've lost track of where we're at with this patch series.
>>>> Does it need more work, or more bug reports such as the one below?
>>>
>>> Apparently the series is waiting for some testing on a Coldfire system
>>> with MMU.
>>
>> Ok, I am in a state that I can do that now (I managed to fix my M5475EVB
>> board).
>
> Thanks, Greg.
>
>> If I test the v4 versions of this patch set that should do the job?
>>
>
> There are 3 patches that need some more testing, one from me and two from
> Michael:
>
> [PATCH] m68k: Handle put_user() faults more carefully
> [PATCH v4 1/2] m68k: Handle __generic_copy_to_user faults more carefully
> [PATCH v4 2/2] m68k: improve __constant_copy_to_user_asm() fault handling
>
> They were posted in two threads:
>
> https://lore.kernel.org/linux-m68k/1ed9c4c753395510c1a8df9c35e2ad4c31c90f95.1714265926.git.fthain@linux-m68k.org/T/
> https://lore.kernel.org/linux-m68k/CAMuHMdVrOnOQwCxk42YCjEkbfL-YDSvpf_xTaouv9hUs2bO+qg@mail.gmail.com/T/
>
> On 680x0, one of the bugs was brought to light with 'stress-ng
> --sysbadaddr -1'. The others required special test programs.
>
> I've no idea whether Coldfire silicon is susceptable at all, and if it is,
> whether the same reproducers would work. But that's neither here nor there
> from a regression testing standpoint.

Ok, thanks for the links. I have applied and tested those, no obvious regressions.
So for all of these patches:

Tested-by: Greg Ungerer <gerg@linux-m68k.org>

I tried out the "stress-ng --sysbadaddr -1" test, and that didn't go so well for me:

# stress-ng --sysbadaddr -1
stress-ng: info: [37] defaulting to a 86400 second (1 day, 0.00 secs) run per stressor
stress-ng: info: [37] dispatching hogs: 1 sysbadaddr
*** ILLEGAL INSTRUCTION *** FORMAT=4
Current process id is 39
BAD KERNEL TRAP: 00000000
Modules linked in:
PC: [<00000000>] 0x0
SR: 2004 SP: 6504e563 a2: 008ee380
d0: 000000f7 d1: 00000000 d2: 00000000 d3: 00000000
d4: 00a87b80 d5: bfbf3814 a0: 00000000 a1: bfbf3814
Process stress-ng-sysba (pid: 39, task=4dbb2ec5)
Frame format=4 eff addr=480a2004 pc=0002b154
Stack from 00adff20:
00ade000 00000000 00000000 000000f7 00000000 00000004 00a87b80 00000000
00000000 00000000 00000000 008ee380 0002ab5c 00000100 00000122 fffffff6
bfbf376c 0002b29e 000000f7 bfbf3814 00000000 00000000 00ade000 0002b222
00ae0800 80118988 00000000 00000005 bfbf37a0 00000005 bfbf3814 00adffcc
00023d2c 00adffcc 00000000 00000000 00000000 00000000 000000f7 00000000
80118b46 00021850 00024b00 000000f7 bfbf3814 00000000 00000000 bfbf3814
Call Trace: [<0002ab5c>] child_wait_callback+0x0/0x24
[<0002b29e>] sys_wait4+0x7c/0x8e
[<0002b222>] sys_wait4+0x0/0x8e
[<00023d2c>] buserr_c+0xb0/0x152
[<00021850>] buserr+0x28/0x30
[<00024b00>] system_call+0x54/0xa8

But that is the same with and without these patches.

Regards
Greg