You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by GitBox <gi...@apache.org> on 2020/04/20 13:42:29 UTC

[GitHub] [incubator-nuttx] patacongo commented on issue #802: Locking case in SMP mode

patacongo commented on issue #802:
URL: https://github.com/apache/incubator-nuttx/issues/802#issuecomment-616561874


   Hmmm... just looking at the code, it looks like arm_decode_irq() would be a bad place to put any debug output.  That is because arm_decode_irq() calls arm_doirq() and is where the interrupt mode is set:
   
        88   /* Current regs non-zero indicates that we are processing an interrupt;
        89    * CURRENT_REGS is also used to manage interrupt level context switches.
        90    */
        91
       92   CURRENT_REGS = regs;
   
   Prior to that, the system has no idea that it is in an interrupt handler.  Syslog will think it is in a normal task mode and will almost certainly do the wrong thing.  I have not tracked down all of that, but I have looked at enough to see that arm_decode_irq() is not a valid place to call syslog() functions.
   
   If you move the __err to _arm_doirq() after CURRENT_REGS is set, it may work.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org