Date: Wed, 28 Jul 2010 16:18:51 +0300 From: Kostik Belousov <kostikbel@gmail.com> To: Andriy Gapon <avg@icyb.net.ua> Cc: Gavin Atkinson <gavin@freebsd.org>, freebsd-current@freebsd.org Subject: Re: free(sc, M_DEVBUF) [Was: amd64 panic snd_hda - hdac_get_capabilities: Invalid corb size (0)] Message-ID: <20100728131851.GU22295@deviant.kiev.zoral.com.ua> In-Reply-To: <4C502D22.10800@icyb.net.ua> References: <20100726132451.GA18443@mech-cluster241.men.bris.ac.uk> <1280226205.78791.0.camel@buffy.york.ac.uk> <20100727115831.GA46325@mech-cluster241.men.bris.ac.uk> <1280238737.78791.20.camel@buffy.york.ac.uk> <20100727144703.GA46905@mech-cluster241.men.bris.ac.uk> <1280249605.78791.36.camel@buffy.york.ac.uk> <4C502D22.10800@icyb.net.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
--Y51z1SGMnxVzkhDv Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Jul 28, 2010 at 04:14:10PM +0300, Andriy Gapon wrote: > on 27/07/2010 19:53 Gavin Atkinson said the following: > >=20 > > Thanks. Can you try > > http://people.freebsd.org/~gavin/mexas-hda-panic.diff > >=20 > > and see if that solves things for you? > >=20 > > (Credit goes to avg@ for looking into this before me :) >=20 > BTW, it seems that there is an epidemic of "free(sc, M_DEVBUF)" in sound = drivers. > And not only them, but I haven't looked at the other cases - perhaps the = code > there does something different and thus correct. >=20 >=20 > glimpse -w M_DEVBUF | fgrep -w free | fgrep '(sc,' > /usr/src/sys/dev/sound/pci/hda/hdac.c: free(sc, M_DEVBUF); > /usr/src/sys/net/if_lagg.c: free(sc, M_DEVBUF); > /usr/src/sys/net/if_lagg.c: free(sc, M_DEVBUF= ); > /usr/src/sys/net/if_lagg.c: free(sc, M_DEVBUF); > /usr/src/sys/net/if_bridge.c: free(sc, M_DEVBUF); > /usr/src/sys/net/if_bridge.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/ich.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/ich.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/maestro3.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/maestro3.c: free(sc, M_DEVBUF); > /usr/src/sys/net/if_enc.c: free(sc, M_DEVBUF); > /usr/src/sys/sun4v/sun4v/simdisk.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/ofw/ofw_disk.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/isa/ess.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/sbus/cs4231.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/atiixp.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/emu10kx-pcm.c: free(sc, M_DEVBUF= ); > /usr/src/sys/dev/sound/pci/emu10kx-pcm.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/emu10kx-pcm.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/ds1.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/ds1.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/cmi.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/cmi.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/neomagic.c: free(sc, = M_DEVBUF); > /usr/src/sys/dev/sound/pci/neomagic.c: free(sc, M_DEVBUF= ); > /usr/src/sys/dev/sound/pci/neomagic.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/neomagic.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/solo.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/als4000.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/als4000.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/vibes.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/emu10k1.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/emu10k1.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/cs4281.c: free(sc, M_DEVBUF); > /usr/src/sys/dev/sound/pci/cs4281.c: free(sc, M_DEVBUF); >=20 >=20 > Good example of how get examples get multiplied. >=20 > P.S. > Actually all non-sound case seem to be correct, explicitly malloc-ed memo= ry gets > freed. If anybody goes to make infrastructure work on the sound drivers, it might be not that bad idea to replace clone.c with cdevpriv. --Y51z1SGMnxVzkhDv Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEARECAAYFAkxQLjoACgkQC3+MBN1Mb4hN2QCffq1CgP2Iqu8pTLbq3qoRfxkB Tk0AoJImzG2/dN+Pz+pQmcwf4VhkrUb+ =D+b1 -----END PGP SIGNATURE----- --Y51z1SGMnxVzkhDv--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100728131851.GU22295>