On Fri, 2015-05-29 at 01:04 -0700, Narsimhulu Musini wrote:
> +#define SNIC_TRC(_hno, _tag, d1, d2, d3, d4, d5) \
> + do { \
> + if (unlikely(snic_log_level & 0x2)) \
> + SNIC_DBG("SnicTrace: %s %2u %2u %llx %llx %llx %llx
> %llx", \
> + (char *)__func__, \
> + (u16)(_hno), \
> + (u32)(_tag), \
> + (u64)(d1), \
> + (u64)(d2), \
> + (u64)(d3), \
> + (u64)(d4), \
> + (u64)(d5)); \
> + } while (0);
This one is also a fault: do { } while(0) is added to a set of
statements to make it appear to the compiler as a unit. If you add an
extra semicolon at the end you get a hidden double semicolon which can
lead to unexpected problems. For instance
for (SNIC_TRC(...), i=1; ...)
will cause an error.
I fixed this up too.
James
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html