aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/hda_intel.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2010-02-12 12:17:06 -0500
committerTakashi Iwai <tiwai@suse.de>2010-02-12 12:20:04 -0500
commitd6d8bf549393484e906913f02fa3c9518a2819b6 (patch)
tree29c0ecdb65f436e818786d15d55bf4a8c70bb873 /sound/pci/hda/hda_intel.c
parentfed08d036f2aabd8d0c684439de37f8ebec2bbc2 (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.c9
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 */