From: Takashi Iwai Date: Tue, 15 Jan 2013 16:43:09 +0000 (+0100) Subject: ALSA: hda/ca0132 - Fix possible invalid DMA channel deallocation X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=8ae3124b8f0f3f97f928be22ccc816118d4b0ecb;p=deliverable%2Flinux.git ALSA: hda/ca0132 - Fix possible invalid DMA channel deallocation ... in the error path in dspxfr_image(). Signed-off-by: Takashi Iwai --- diff --git a/sound/pci/hda/patch_ca0132.c b/sound/pci/hda/patch_ca0132.c index ee2b9c6600ff..cc6c8a590316 100644 --- a/sound/pci/hda/patch_ca0132.c +++ b/sound/pci/hda/patch_ca0132.c @@ -2167,7 +2167,7 @@ static const struct dsp_image_seg *get_next_seg_ptr( /* * CA0132 chip DSP transfer stuffs. For DSP download. */ -#define INVALID_DMA_CHANNEL (~0UL) +#define INVALID_DMA_CHANNEL (~0U) /* * Program a list of address/data pairs via the ChipIO widget. @@ -2431,7 +2431,7 @@ static int dspxfr_image(struct hda_codec *codec, dma_engine->buf_size = (ovly ? DSP_DMA_WRITE_BUFLEN_OVLY : DSP_DMA_WRITE_BUFLEN_INIT) * 2; - dma_chan = 0; + dma_chan = ovly ? INVALID_DMA_CHANNEL : 0; status = codec_set_converter_format(codec, WIDGET_CHIP_CTRL, hda_format, &response); @@ -2453,7 +2453,7 @@ static int dspxfr_image(struct hda_codec *codec, status = dspio_alloc_dma_chan(codec, &dma_chan); if (status < 0) { snd_printdd(KERN_ERR "alloc dmachan fail"); - dma_chan = (unsigned int)INVALID_DMA_CHANNEL; + dma_chan = INVALID_DMA_CHANNEL; goto exit; } }