diff options
author | Takashi Iwai <tiwai@suse.de> | 2010-02-12 12:17:06 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2010-02-12 12:20:04 -0500 |
commit | d6d8bf549393484e906913f02fa3c9518a2819b6 (patch) | |
tree | 29c0ecdb65f436e818786d15d55bf4a8c70bb873 /sound/pci/hda/hda_intel.c | |
parent | fed08d036f2aabd8d0c684439de37f8ebec2bbc2 (diff) |
ALSA: hda - use WARN_ON_ONCE() for zero-division detection
Replace the zero-division warning message with WARN_ON_ONCE() per the
advice by Linus. This shouldn't happen, but if it happens, it's
possible that the bug happens often due to buggy IRQs.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/hda_intel.c')
-rw-r--r-- | sound/pci/hda/hda_intel.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index e767c3f395ab..3600e9cc9bc6 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c | |||
@@ -1893,12 +1893,9 @@ static int azx_position_ok(struct azx *chip, struct azx_dev *azx_dev) | |||
1893 | 1893 | ||
1894 | if (!bdl_pos_adj[chip->dev_index]) | 1894 | if (!bdl_pos_adj[chip->dev_index]) |
1895 | return 1; /* no delayed ack */ | 1895 | return 1; /* no delayed ack */ |
1896 | if (azx_dev->period_bytes == 0) { | 1896 | if (WARN_ONCE(!azx_dev->period_bytes, |
1897 | printk(KERN_WARNING | 1897 | "hda-intel: zero azx_dev->period_bytes")) |
1898 | "hda-intel: Divide by zero was avoided " | 1898 | return 0; /* this shouldn't happen! */ |
1899 | "in azx_dev->period_bytes.\n"); | ||
1900 | return 0; | ||
1901 | } | ||
1902 | if (pos % azx_dev->period_bytes > azx_dev->period_bytes / 2) | 1899 | if (pos % azx_dev->period_bytes > azx_dev->period_bytes / 2) |
1903 | return 0; /* NG - it's below the period boundary */ | 1900 | return 0; /* NG - it's below the period boundary */ |
1904 | return 1; /* OK, it's fine */ | 1901 | return 1; /* OK, it's fine */ |