• Paul Mackerras's avatar
    [PATCH] PPC64 rtasd: window when error_log_cnt could get zeroed · 38e8a56e
    Paul Mackerras authored
    This patch is from Jake Moilanen <moilanen@austin.ibm.com>.
    
    There appears to be a hole that if we get an log_error() call, that we could
    zero out our error log count in nvram. 
    
    When rtasd() starts up, it turns on the logging via 'no_more_logging = 0'.  If
    we get a log_error() call after that is set but before nvram_read_error_log
    has actually read nvram to set error_log_cnt, the log_error() call will write
    back to nvram a uninitialized error_log_cnt value, and wipe out our sequence
    number.
    
    To close the hole, simply move the 'no_more_logging = 0' till after nvram sets
    error_log_cnt but before pSeries_log_error is called.
    
    I also changed the 'no_more_logging' variable to be 'no_logging' since it's
    not only used when we stop logging now.  I also removed the "volatile" part of
    no_more_logging, since it's unneeded.  
    Signed-off-by: default avatarJake Moilanen <moilanen@austin.ibm.com>
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    38e8a56e
nvram.c 18.5 KB