At Tue, 23 Oct 2012 22:16:42 +0800, Fengguang Wu wrote:
Hi,
smatch warns about a weird "if();" in sound/pci/au88x0/au88x0_core.c Any ideas to fix it?
2461 #ifndef CHIP_AU8810 2462 for (i = 0; i < NR_WT; i++) { 2463 if (vortex->dma_wt[i].fifo_status == FIFO_START) {
==> 2464 if (vortex_wtdma_bufshift(vortex, i)) ; 2465 spin_unlock(&vortex->lock); 2466 snd_pcm_period_elapsed(vortex->dma_wt[i]. 2467 substream); 2468 spin_lock(&vortex->lock); 2469 } 2470 } 2471 #endif
A quick fix is below, but I'm not 100% sure about it yet. Let's see.
thanks,
Takashi
--- diff --git a/sound/pci/au88x0/au88x0_core.c b/sound/pci/au88x0/au88x0_core.c index 525f881..3fe3dbe 100644 --- a/sound/pci/au88x0/au88x0_core.c +++ b/sound/pci/au88x0/au88x0_core.c @@ -2461,7 +2461,8 @@ static irqreturn_t vortex_interrupt(int irq, void *dev_id) #ifndef CHIP_AU8810 for (i = 0; i < NR_WT; i++) { if (vortex->dma_wt[i].fifo_status == FIFO_START) { - if (vortex_wtdma_bufshift(vortex, i)) ; + if (!vortex_wtdma_bufshift(vortex, i)) + continue; spin_unlock(&vortex->lock); snd_pcm_period_elapsed(vortex->dma_wt[i]. substream);