Hi Sean,

Sean McGranaghan wrote:
I have also been having problems with sporadic 'Illegal Instruction' exceptions on my M5208EVB board. I am also using an ITIMER and had started to suspect it was related to signal handling. I would like to try this patch but apparently I joined the list after the original post. Is there someplace I can get it?

Try the reworked version I just posted.

Regards
Greg



Greg Ungerer wrote:
Hi Wilson,

Wilson Callan wrote:
I've been seeing an occasional Illegal Instruction exception on the 5235 coldfire and found that its due to arch/m68knommu/kernel/signal.c which has an empty push_cache(). I'm using a 100ms ITIMER so there are many opportunities for this bug.

You cannot put instructions in memory and expect the processor to run them without flushing the instruction cache. To fix this i've recoded the return from the user space signal handler to not use instructions on the stack. Doing it this way is more straight forward and doesnt require a cache flush (which creates inefficient memory access).

If you dont choose to integrate this patch, also note that there most likely a bug in setup_rt_frame() where it dangerously goes ahead and puts machine code on the stack. the 0x4600 instruction is not a "not.l d0" instruction as the comment suggests.

Thats not what the comment says :-)

  /* moveq #,d0; notb d0; trap #0 */

0x4600 is the conventional m68k "not.b d0" instruction.
Now this code path is used by all varients of m68k/coldfire,
so it is obviously broken for ColdFire where this not a
valid instruction.

Is this the real cause of your illegal instruction trap?

The current ColdFire cache support on the 5235 only enables
the instruction cache. Still though the empty push_cache()
is a problem.

Regards
Greg



------------------------------------------------------------------------
Greg Ungerer  --  Chief Software Dude       EMAIL:     [EMAIL PROTECTED]
Secure Computing Corporation                PHONE:       +61 7 3435 2888
825 Stanley St,                             FAX:         +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia         WEB: http://www.SnapGear.com
_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev


_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev


--
------------------------------------------------------------------------
Greg Ungerer  --  Chief Software Dude       EMAIL:     [EMAIL PROTECTED]
Secure Computing Corporation                PHONE:       +61 7 3435 2888
825 Stanley St,                             FAX:         +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia         WEB: http://www.SnapGear.com
_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to