On 11-May-10 7:21 PM, Sasha Khapyorsky wrote:
On 12:06 Tue 11 May     , Yevgeny Kliteynik wrote:

osm_log() always logs messages that came with OSM_LOG_SYS level,
so osm_log_is_active() should concur with this.
As a by-product of this fix, OSM_LOG_SYS messages can now be
printed with OSM_LOG macro, instead of using osm_log() directly.

Signed-off-by: Yevgeny Kliteynik<[email protected]>
---
  opensm/include/opensm/osm_log.h |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/opensm/include/opensm/osm_log.h b/opensm/include/opensm/osm_log.h
index b2f105a..a494bc3 100644
--- a/opensm/include/opensm/osm_log.h
+++ b/opensm/include/opensm/osm_log.h
@@ -355,7 +355,7 @@ static inline void osm_log_set_level(IN osm_log_t * p_log,
  static inline boolean_t osm_log_is_active(IN const osm_log_t * p_log,
                                          IN osm_log_level_t level)
  {
-       return ((p_log->level&  level) != 0);
+       return (((OSM_LOG_SYS | p_log->level)&  level) != 0);
  }

What about to set OSM_LOG_SYS bits in p_log->level at stage of
initialization and to remove all subsequent explicit checks? Like this
(against master):

diff --git a/opensm/opensm/osm_log.c b/opensm/opensm/osm_log.c
index 54c2f36..bd4a200 100644
--- a/opensm/opensm/osm_log.c
+++ b/opensm/opensm/osm_log.c
@@ -119,7 +119,7 @@ void osm_log(IN osm_log_t * p_log, IN osm_log_level_t 
verbosity,
  #endif                                /* __WIN__ */

        /* If this is a call to syslog - always print it */
-       if (!(verbosity&  (OSM_LOG_SYS | p_log->level)))
+       if (!(verbosity&  p_log->level))
                return;

        va_start(args, p_str);
@@ -306,7 +306,7 @@ ib_api_status_t osm_log_init_v2(IN osm_log_t * p_log, IN 
boolean_t flush,
                                IN unsigned long max_size,
                                IN boolean_t accum_log_file)
  {
-       p_log->level = log_flags;
+       p_log->level = log_flags | OSM_LOG_SYS;

Sure, that should do the trick too.
Want me to send a patch, or will you do it?

-- Yevgeny

        p_log->flush = flush;
        p_log->count = 0;
        p_log->max_size = max_size<<  20; /* convert size in MB to bytes */


Sasha


--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to