At Wed, 06 Mar 2013 14:49:28 +0100, David Henningsson wrote:
2013-03-05 21:41, Christine Spang skrev:
On 03/05/2013 04:05 AM, Takashi Iwai wrote:
At Mon, 4 Mar 2013 17:02:59 -0500, Christine Spang wrote:
Having snd_BUG_ON() only evaluate its conditional when CONFIG_SND_DEBUG is set leads to frequent bugs, since other similar macros in the kernel have different behavior. Let's make snd_BUG_ON() act like those macros so it will stop being accidentally misused.
Signed-off-by: Christine Spang christine.spang@oracle.com
Sounds reasonable. The dependency on CONFIG_SND_DEBUG was for allowing more optimization, but since we use this for more places than expected, this change would be safer indeed.
If no one has objection, I'll apply it for 3.10 kernel.
If snd_BUG_ON now works like WARN_ON rather than BUG_ON (at least it does with this change, if I understand things right),
No, snd_BUG_ON() has always been equivalent with WARN_ON() when CONFIG_SND_DEBUG is set. But it's empty when CONFIG_SND_DEBUG=n (i.e. the conditional is ignored).
Christine's patch changes the behavior in only the latter case. It enables the conditional but doesn't involve WARN_ON(), so the check is done silently.
maybe we should rename it to snd_WARN_ON for consistency?
Maybe. As an additional note, BUG_ON() should be almost never used in the normal driver codes. If you find BUG_ON() in a driver code, doubt it twice whether it's right.
Takashi