Re: Latest -current panic in uaudio_detach() / bus_dmamem_free()

From: Andrey Chernov <ache_at_freebsd.org>
Date: Mon, 23 Jun 2014 08:03:20 +0400
On 23.06.2014 6:46, Alexander Kabaev wrote:
> Please provide us with the information on the actual audio hardware
> you are using, preferably in form of a dmesg output. 

uaudio0: <vendor 0x046d product 0x0990, class 239/2, rev 2.00/0.05, addr 7> on usbus3
uaudio0: No playback.
uaudio0: Record: 16000 Hz, 1 ch, 16-bit S-LE PCM format, 2x8ms buffer.
uaudio0: No MIDI sequencer.
pcm7: <USB audio> on uaudio0
uaudio0: No HID volume keys found.

Thanx, after backing out the patch below this panic is gone. Probably even 
additional b->dmatag NULL check is needed for bus_dmamap_unload() too.

> This revision is
> your culpit:
>  http://svnweb.freebsd.org/changeset/base/267581 and I have strong
>  suspicion that restoring the NULL check on dmatag in the chunk below
>  will cure your crash.
> 
> -- Modified: head/sys/dev/sound/pcm/buffer.c
> ==============================================================================
> --- head/sys/dev/sound/pcm/buffer.c	Tue Jun 17 14:47:49
> 2014	(r267580) +++ head/sys/dev/sound/pcm/buffer.c	Tue
> Jun 17 16:07:57 2014	(r267581) _at__at_ -139,10 +139,9 _at__at_
> sndbuf_free(struct snd_dbuf *b) 
>  	if (b->buf) {
>  		if (b->flags & SNDBUF_F_MANAGED) {
> -			if (b->dmamap)
> +			if (b->buf_addr)
>  				bus_dmamap_unload(b->dmatag,
> b->dmamap);
> -			if (b->dmatag)
> -				bus_dmamem_free(b->dmatag, b->buf,
> b->dmamap);
> +			bus_dmamem_free(b->dmatag, b->buf, b->dmamap);
>  		} else
>  			free(b->buf, M_DEVBUF);
>  	}
> 

-- 
http://ache.vniz.net/


Received on Mon Jun 23 2014 - 02:28:26 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:50 UTC