From owner-freebsd-emulation@FreeBSD.ORG Thu Feb 18 18:43:00 2010 Return-Path: Delivered-To: emulation@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A237C1065679; Thu, 18 Feb 2010 18:43:00 +0000 (UTC) (envelope-from lars@e.0x20.net) Received: from mail.0x20.net (mail.0x20.net [217.69.67.217]) by mx1.freebsd.org (Postfix) with ESMTP id 1C7928FC15; Thu, 18 Feb 2010 18:42:59 +0000 (UTC) Received: by mail.0x20.net (Postfix, from userid 1002) id 9120E39DFE; Thu, 18 Feb 2010 19:23:36 +0100 (CET) Date: Thu, 18 Feb 2010 19:23:36 +0100 From: Lars Engels To: "J.R. Oldroyd" Message-ID: <20100218182336.GJ27126@e.0x20.net> References: <20091204223126.00005392@unknown> <20100112124621.59fa3747@shibato.opal.com> <201001121849.48833.hselasky@c2i.net> <201002172137.25396.hselasky@c2i.net> <20100218120812.2224f6bf@shibato.opal.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="GEl8M6OaEs83Y7Jz" Content-Disposition: inline In-Reply-To: <20100218120812.2224f6bf@shibato.opal.com> X-Editor: VIM - Vi IMproved 7.2 X-Operation-System: FreeBSD 5.5-RELEASE-p19 User-Agent: Mutt/1.5.20 (2009-06-14) Cc: emulation@freebsd.org, Hans Petter Selasky , freebsd-multimedia@freebsd.org, multimedia@freebsd.org, lme@freebsd.org, Alexander Leidinger Subject: Re: FYI: v4l-linuxulator support in FreeBSD-current now [panic] X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Feb 2010 18:43:00 -0000 --GEl8M6OaEs83Y7Jz Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Feb 18, 2010 at 12:08:12PM -0500, J.R. Oldroyd wrote: > On Wed, 17 Feb 2010 21:37:25 +0100, Hans Petter Selasky wrote: > > > > On Tuesday 12 January 2010 18:49:48 Hans Petter Selasky wrote: > > > Re: FYI: v4l-linuxulator support in FreeBSD-current now > > >=20 > >=20 > > Hi, > >=20 > > Some panics have cropped up when using linux-V4L with webcamd. > >=20 > > 1st) panic: freeing memory in linux_v4l_cliplist_free() which is not=20 > > allocated, but there seems to be more which needs to be done. > >=20 > > I tried to fix something, but it was not enough. > >=20 > > Help appreciated. > >=20 > > We are currently debugging this issue @ #bsdusb on efnet. > >=20 > > --HPS > >=20 > > --- linux_ioctl.c.orig 2010-02-17 20:42:53.000000000 +0100 > > +++ linux_ioctl.c 2010-02-17 21:03:10.000000000 +0100 > > @@ -2711,7 +2711,7 @@ > > /* XXX: If there can be no concurrency: s/M_NOWAIT/M_WAITOK/ */ > > if ((*ppvc =3D malloc(sizeof(**ppvc), M_LINUX, M_NOWAIT)) =3D= =3D NULL) > > return (ENOMEM); /* XXX: linux has no ENOMEM here */ > > - memcpy(&vclip, *ppvc, sizeof(vclip)); > > + memcpy(*ppvc, &vclip, sizeof(vclip)); > > (*ppvc)->next =3D NULL; > > return (0); > > } > > @@ -2719,13 +2719,15 @@ > > static int > > linux_v4l_cliplist_free(struct video_window *vw) > > { > > - struct video_clip **ppvc; > > - struct video_clip **ppvc_next; > > + struct video_clip *ppvc; > > + struct video_clip *ppvc_next; > > =20 > > - for (ppvc =3D &(vw->clips); *ppvc !=3D NULL; ppvc =3D ppvc_next= ) { > > - ppvc_next =3D &((*ppvc)->next); > > - free(*ppvc, M_LINUX); > > + for (ppvc =3D vw->clips; ppvc !=3D NULL; ppvc =3D ppvc_next) { > > + ppvc_next =3D ppvc->next; > > + free(ppvc, M_LINUX); > > } > > + vw->clips =3D NULL; > > + > > return (0); > > } > > =20 >=20 > I wrote the video_clip support but was unable to test it due to lack > of either a driver that supported it or an application that used it. > I did this based on very sparse documentation on what a video clip > list actually is. >=20 > Looks like the memcpy in linux_v4l_clip_copy is indeed backwards, > so sorry about that. >=20 > Simplifying the double pointers in linux_v4l_cliplist_free is > probably also OK, but in that case, you should also rename the > pointers to "pvc" rather than "ppvc". >=20 > If it is still failing with these changes, it would help to know if > the failure is happening during the cliplist build, during the > ioctl that uses the cliplist, or when tearing down the cliplist > after the call. You could try instrumenting LINUX_VIDIOCSWIN to see > how far it is getting. >=20 Hi jr, would you like to join us at #bsdusb at EFNet? --GEl8M6OaEs83Y7Jz Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEARECAAYFAkt9hagACgkQKc512sD3afj61wCdEK1olE82TXzul66DQV0frDcK VZQAniLsMfoc8CkNa5yqwA8UAYN7ecrI =aPfL -----END PGP SIGNATURE----- --GEl8M6OaEs83Y7Jz--