> +#define RT_PRINT_DATA(rtlpriv, _comp, _level, _titlestring, _hexdata, \ > + _hexdatalen) \ > +do { \ > + if (unlikely(((_comp) & rtlpriv->dbg.global_debugcomponents) && \ > + (_level <= rtlpriv->dbg.global_debuglevel))) { \ > + printk(KERN_DEBUG "%s: ", KBUILD_MODNAME); \ > + pr_cont("In process \"%s\" (pid %i):", \ > + current->comm, current->pid); \ > + printk(_titlestring); \ > + print_hex_dump_bytes("", DUMP_PREFIX_NONE, \ > + _hexdata, _hexdatalen); \ > + } \ > +} while (0) >From my experiences you need to use: if (unlikely(a) && b) not: if (unlikely(a && b)) to get the expected static branch prediction. Also, only the initial test need be in the #define, the printfs (etc) can be moved into a real function. This would reduce the code size (if used more than once). David -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html