Hi Finn, On 25/04/24 16:16, Finn Thain wrote:
00464504 <__generic_copy_to_user>: 464504: 4e56 0000 linkw %fp,#0 464508: 2f03 movel %d3,%sp@- 46450a: 2f02 movel %d2,%sp@- 46450c: 262e 0008 movel %fp@(8),%d3 464510: 242e 0010 movel %fp@(16),%d2 464514: 2f02 movel %d2,%sp@- 464516: 2f03 movel %d3,%sp@- 464518: 4eb9 0046 44c6 jsr 4644c6 <__clear_user>
Not sure you noticed this - the 040 passed __clear_user without fault. We managed to test this one without meaning to. Exception handling in there appears to work OK (for the cases we're testing).
No idea why you have the __clear_user call occur within __generic_copy_to_user - it does not appear in my disassembly.
Cheers, Michael
46451e: 2002 movel %d2,%d0 464520: e488 lsrl #2,%d0 464522: 7203 moveq #3,%d1 464524: c282 andl %d2,%d1 464526: 226e 000c moveal %fp@(12),%a1 46452a: 2043 moveal %d3,%a0 46452c: 4a80 tstl %d0 46452e: 670a beqs 46453a <__generic_copy_to_user+0x36> 464530: 2419 movel %a1@+,%d2 464532: 0e98 2800 movesl %d2,%a0@+ 464536: 5380 subql #1,%d0 464538: 66f6 bnes 464530 <__generic_copy_to_user+0x2c> 46453a: 0801 0001 btst #1,%d1 46453e: 6706 beqs 464546 <__generic_copy_to_user+0x42> 464540: 3419 movew %a1@+,%d2 464542: 0e58 2800 movesw %d2,%a0@+ 464546: 0801 0000 btst #0,%d1 46454a: 6706 beqs 464552 <__generic_copy_to_user+0x4e> 46454c: 1419 moveb %a1@+,%d2 46454e: 0e18 2800 movesb %d2,%a0@+ 464552: 242e fff8 movel %fp@(-8),%d2 464556: 262e fffc movel %fp@(-4),%d3 46455a: 4e5e unlk %fp 46455c: 4e75 rts 46455e: 4e75 rts