* changeset 14351:2eda2bcc8d6f
@ 2010-03-03 11:39 e9hack
2010-03-13 16:27 ` Hans Verkuil
0 siblings, 1 reply; 10+ messages in thread
From: e9hack @ 2010-03-03 11:39 UTC (permalink / raw)
To: dougsland; +Cc: hverkuil, Mauro Carvalho Chehab, linux-media
Hi,
changeset 14351:2eda2bcc8d6f is incomplete. If the init function is split in two function,
the deinit function shall consider this. The changes shall be apply also to av7110_init_v4l().
diff -r 58ae12f18e80 linux/drivers/media/common/saa7146_fops.c
--- a/linux/drivers/media/common/saa7146_fops.c Tue Mar 02 23:52:36 2010 -0300
+++ b/linux/drivers/media/common/saa7146_fops.c Wed Mar 03 12:15:23 2010 +0100
@@ -481,8 +481,10 @@ int saa7146_vv_release(struct saa7146_de
DEB_EE(("dev:%p\n",dev));
v4l2_device_unregister(&dev->v4l2_dev);
- pci_free_consistent(dev->pci, SAA7146_CLIPPING_MEM, vv->d_clipping.cpu_addr,
vv->d_clipping.dma_handle);
- kfree(vv);
+ if (vv) {
+ pci_free_consistent(dev->pci, SAA7146_CLIPPING_MEM,
vv->d_clipping.cpu_addr, vv->d_clipping.dma_handle);
+ kfree(vv);
+ }
dev->vv_data = NULL;
dev->vv_callback = NULL;
diff -r 58ae12f18e80 linux/drivers/media/dvb/ttpci/av7110_v4l.c
--- a/linux/drivers/media/dvb/ttpci/av7110_v4l.c Tue Mar 02 23:52:36 2010 -0300
+++ b/linux/drivers/media/dvb/ttpci/av7110_v4l.c Wed Mar 03 12:15:23 2010 +0100
@@ -790,12 +790,20 @@ int av7110_init_v4l(struct av7110 *av711
vv_data = &av7110_vv_data_c;
else
vv_data = &av7110_vv_data_st;
+ ret = saa7146_vv_devinit(dev);
+
+ if (ret < 0) {
+ ERR(("cannot init device. skipping.\n"));
+ return ret;
+ }
+
ret = saa7146_vv_init(dev, vv_data);
-
- if (ret) {
+ if (ret < 0) {
ERR(("cannot init capture device. skipping.\n"));
+ saa7146_vv_release(dev);
return ret;
}
+
vv_data->ops.vidioc_enum_input = vidioc_enum_input;
vv_data->ops.vidioc_g_input = vidioc_g_input;
vv_data->ops.vidioc_s_input = vidioc_s_input;
Regards,
Hartmut
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: changeset 14351:2eda2bcc8d6f
2010-03-03 11:39 changeset 14351:2eda2bcc8d6f e9hack
@ 2010-03-13 16:27 ` Hans Verkuil
2010-03-16 19:29 ` e9hack
0 siblings, 1 reply; 10+ messages in thread
From: Hans Verkuil @ 2010-03-13 16:27 UTC (permalink / raw)
To: e9hack; +Cc: dougsland, Mauro Carvalho Chehab, linux-media
Hi Hartmut,
After reviewing your patch I realized that more needed to be done to get this
to work properly. The core problem is that the probe function does not have a
counterpart that can do a cleanup.
So if the probe fails, then v4l2_device_unregister will never be called, which
is a particular problem on mxb.
I've made a new patch that basically reverts my original patch and instead
modifies the mxb driver. I realized that mxb doesn't need to do a separate
probe. Instead attach can just call probe and return an error if it fails.
This way I can avoid the devinit and the cleanup is also much more straightforward.
If there are no further comments, then I'll post a pull request in a few days.
Tested with the mxb board. It would be nice if you can verify this with the
av7110.
Regards,
Hans
diff --git a/drivers/media/common/saa7146_fops.c b/drivers/media/common/saa7146_fops.c
index fd8e1f4..7364b96 100644
--- a/drivers/media/common/saa7146_fops.c
+++ b/drivers/media/common/saa7146_fops.c
@@ -423,15 +423,14 @@ static void vv_callback(struct saa7146_dev *dev, unsigned long status)
}
}
-int saa7146_vv_devinit(struct saa7146_dev *dev)
-{
- return v4l2_device_register(&dev->pci->dev, &dev->v4l2_dev);
-}
-EXPORT_SYMBOL_GPL(saa7146_vv_devinit);
-
int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv)
{
struct saa7146_vv *vv;
+ int err;
+
+ err = v4l2_device_register(&dev->pci->dev, &dev->v4l2_dev);
+ if (err)
+ return err;
vv = kzalloc(sizeof(struct saa7146_vv), GFP_KERNEL);
if (vv == NULL) {
diff --git a/drivers/media/video/hexium_gemini.c b/drivers/media/video/hexium_gemini.c
index e620a3a..ad2c232 100644
--- a/drivers/media/video/hexium_gemini.c
+++ b/drivers/media/video/hexium_gemini.c
@@ -356,9 +356,6 @@ static int hexium_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_d
DEB_EE((".\n"));
- ret = saa7146_vv_devinit(dev);
- if (ret)
- return ret;
hexium = kzalloc(sizeof(struct hexium), GFP_KERNEL);
if (NULL == hexium) {
printk("hexium_gemini: not enough kernel memory in hexium_attach().\n");
diff --git a/drivers/media/video/hexium_orion.c b/drivers/media/video/hexium_orion.c
index fe596a1..938a1f8 100644
--- a/drivers/media/video/hexium_orion.c
+++ b/drivers/media/video/hexium_orion.c
@@ -216,10 +216,6 @@ static int hexium_probe(struct saa7146_dev *dev)
return -EFAULT;
}
- err = saa7146_vv_devinit(dev);
- if (err)
- return err;
-
hexium = kzalloc(sizeof(struct hexium), GFP_KERNEL);
if (NULL == hexium) {
printk("hexium_orion: hexium_probe: not enough kernel memory.\n");
diff --git a/drivers/media/video/mxb.c b/drivers/media/video/mxb.c
index 9f01f14..ef0c817 100644
--- a/drivers/media/video/mxb.c
+++ b/drivers/media/video/mxb.c
@@ -169,11 +169,7 @@ static struct saa7146_extension extension;
static int mxb_probe(struct saa7146_dev *dev)
{
struct mxb *mxb = NULL;
- int err;
- err = saa7146_vv_devinit(dev);
- if (err)
- return err;
mxb = kzalloc(sizeof(struct mxb), GFP_KERNEL);
if (mxb == NULL) {
DEB_D(("not enough kernel memory.\n"));
@@ -699,14 +695,17 @@ static struct saa7146_ext_vv vv_data;
/* this function only gets called when the probing was successful */
static int mxb_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_data *info)
{
- struct mxb *mxb = (struct mxb *)dev->ext_priv;
+ struct mxb *mxb;
DEB_EE(("dev:%p\n", dev));
- /* checking for i2c-devices can be omitted here, because we
- already did this in "mxb_vl42_probe" */
-
saa7146_vv_init(dev, &vv_data);
+ if (mxb_probe(dev)) {
+ saa7146_vv_release(dev);
+ return -1;
+ }
+ mxb = (struct mxb *)dev->ext_priv;
+
vv_data.ops.vidioc_queryctrl = vidioc_queryctrl;
vv_data.ops.vidioc_g_ctrl = vidioc_g_ctrl;
vv_data.ops.vidioc_s_ctrl = vidioc_s_ctrl;
@@ -726,6 +725,7 @@ static int mxb_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_data
vv_data.ops.vidioc_default = vidioc_default;
if (saa7146_register_device(&mxb->video_dev, dev, "mxb", VFL_TYPE_GRABBER)) {
ERR(("cannot register capture v4l2 device. skipping.\n"));
+ saa7146_vv_release(dev);
return -1;
}
@@ -846,7 +846,6 @@ static struct saa7146_extension extension = {
.pci_tbl = &pci_tbl[0],
.module = THIS_MODULE,
- .probe = mxb_probe,
.attach = mxb_attach,
.detach = mxb_detach,
diff --git a/include/media/saa7146_vv.h b/include/media/saa7146_vv.h
index b9da1f5..4aeff96 100644
--- a/include/media/saa7146_vv.h
+++ b/include/media/saa7146_vv.h
@@ -188,7 +188,6 @@ void saa7146_buffer_timeout(unsigned long data);
void saa7146_dma_free(struct saa7146_dev* dev,struct videobuf_queue *q,
struct saa7146_buf *buf);
-int saa7146_vv_devinit(struct saa7146_dev *dev);
int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv);
int saa7146_vv_release(struct saa7146_dev* dev);
On Wednesday 03 March 2010 12:39:27 e9hack wrote:
> Hi,
>
> changeset 14351:2eda2bcc8d6f is incomplete. If the init function is split in two function,
> the deinit function shall consider this. The changes shall be apply also to av7110_init_v4l().
>
> diff -r 58ae12f18e80 linux/drivers/media/common/saa7146_fops.c
> --- a/linux/drivers/media/common/saa7146_fops.c Tue Mar 02 23:52:36 2010 -0300
> +++ b/linux/drivers/media/common/saa7146_fops.c Wed Mar 03 12:15:23 2010 +0100
> @@ -481,8 +481,10 @@ int saa7146_vv_release(struct saa7146_de
> DEB_EE(("dev:%p\n",dev));
>
> v4l2_device_unregister(&dev->v4l2_dev);
> - pci_free_consistent(dev->pci, SAA7146_CLIPPING_MEM, vv->d_clipping.cpu_addr,
> vv->d_clipping.dma_handle);
> - kfree(vv);
> + if (vv) {
> + pci_free_consistent(dev->pci, SAA7146_CLIPPING_MEM,
> vv->d_clipping.cpu_addr, vv->d_clipping.dma_handle);
> + kfree(vv);
> + }
> dev->vv_data = NULL;
> dev->vv_callback = NULL;
>
> diff -r 58ae12f18e80 linux/drivers/media/dvb/ttpci/av7110_v4l.c
> --- a/linux/drivers/media/dvb/ttpci/av7110_v4l.c Tue Mar 02 23:52:36 2010 -0300
> +++ b/linux/drivers/media/dvb/ttpci/av7110_v4l.c Wed Mar 03 12:15:23 2010 +0100
> @@ -790,12 +790,20 @@ int av7110_init_v4l(struct av7110 *av711
> vv_data = &av7110_vv_data_c;
> else
> vv_data = &av7110_vv_data_st;
> + ret = saa7146_vv_devinit(dev);
> +
> + if (ret < 0) {
> + ERR(("cannot init device. skipping.\n"));
> + return ret;
> + }
> +
> ret = saa7146_vv_init(dev, vv_data);
> -
> - if (ret) {
> + if (ret < 0) {
> ERR(("cannot init capture device. skipping.\n"));
> + saa7146_vv_release(dev);
> return ret;
> }
> +
> vv_data->ops.vidioc_enum_input = vidioc_enum_input;
> vv_data->ops.vidioc_g_input = vidioc_g_input;
> vv_data->ops.vidioc_s_input = vidioc_s_input;
>
> Regards,
> Hartmut
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
--
Hans Verkuil - video4linux developer - sponsored by TANDBERG
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: changeset 14351:2eda2bcc8d6f
2010-03-13 16:27 ` Hans Verkuil
@ 2010-03-16 19:29 ` e9hack
2010-03-20 14:07 ` av7110 and budget_av are broken! (was: Re: changeset 14351:2eda2bcc8d6f) Oliver Endriss
0 siblings, 1 reply; 10+ messages in thread
From: e9hack @ 2010-03-16 19:29 UTC (permalink / raw)
To: Hans Verkuil; +Cc: linux-media
Am 13.3.2010 17:27, schrieb Hans Verkuil:
> If there are no further comments, then I'll post a pull request in a few days.
>
> Tested with the mxb board. It would be nice if you can verify this with the
> av7110.
Hi hans,
it works with my TT-C2300 perfectly. The main problem of your changes was: It wasn't
possible to unload the module for the TT-C2300.
Regards,
Hartmut
^ permalink raw reply [flat|nested] 10+ messages in thread
* av7110 and budget_av are broken! (was: Re: changeset 14351:2eda2bcc8d6f)
2010-03-16 19:29 ` e9hack
@ 2010-03-20 14:07 ` Oliver Endriss
2010-03-20 14:20 ` Hans Verkuil
0 siblings, 1 reply; 10+ messages in thread
From: Oliver Endriss @ 2010-03-20 14:07 UTC (permalink / raw)
To: linux-media; +Cc: e9hack, Hans Verkuil, Mauro Carvalho Chehab
e9hack wrote:
> Am 13.3.2010 17:27, schrieb Hans Verkuil:
> > If there are no further comments, then I'll post a pull request in a few days.
> >
> > Tested with the mxb board. It would be nice if you can verify this with the
> > av7110.
>
> Hi hans,
>
> it works with my TT-C2300 perfectly. The main problem of your changes was: It wasn't
> possible to unload the module for the TT-C2300.
Guys, when will you finally apply this fix?
As Hartmut pointed out, changeset 14351:2eda2bcc8d6f broke the av7110
driver (and also budget-av).
It is time to fix it. This bug must not go into the kernel!
CU
Oliver
--
----------------------------------------------------------------
VDR Remote Plugin 0.4.0: http://www.escape-edv.de/endriss/vdr/
4 MByte Mod: http://www.escape-edv.de/endriss/dvb-mem-mod/
Full-TS Mod: http://www.escape-edv.de/endriss/dvb-full-ts-mod/
----------------------------------------------------------------
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: av7110 and budget_av are broken! (was: Re: changeset 14351:2eda2bcc8d6f)
2010-03-20 14:07 ` av7110 and budget_av are broken! (was: Re: changeset 14351:2eda2bcc8d6f) Oliver Endriss
@ 2010-03-20 14:20 ` Hans Verkuil
2010-03-20 15:13 ` Oliver Endriss
2010-03-20 16:03 ` av7110 and budget_av are broken! e9hack
0 siblings, 2 replies; 10+ messages in thread
From: Hans Verkuil @ 2010-03-20 14:20 UTC (permalink / raw)
To: linux-media; +Cc: e9hack, Mauro Carvalho Chehab
On Saturday 20 March 2010 15:07:08 Oliver Endriss wrote:
> e9hack wrote:
> > Am 13.3.2010 17:27, schrieb Hans Verkuil:
> > > If there are no further comments, then I'll post a pull request in a few days.
> > >
> > > Tested with the mxb board. It would be nice if you can verify this with the
> > > av7110.
> >
> > Hi hans,
> >
> > it works with my TT-C2300 perfectly. The main problem of your changes was: It wasn't
> > possible to unload the module for the TT-C2300.
>
> Guys, when will you finally apply this fix?
Thanks for reminding me, I frankly forgot about this.
Hartmut, is the problem with unloading the module something that my patch
caused? Or was that there as well before changeset 14351:2eda2bcc8d6f?
Are there any kernel messages indicating why it won't unload?
Regards,
Hans
> As Hartmut pointed out, changeset 14351:2eda2bcc8d6f broke the av7110
> driver (and also budget-av).
>
> It is time to fix it. This bug must not go into the kernel!
>
> CU
> Oliver
>
>
--
Hans Verkuil - video4linux developer - sponsored by TANDBERG
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: av7110 and budget_av are broken! (was: Re: changeset 14351:2eda2bcc8d6f)
2010-03-20 14:20 ` Hans Verkuil
@ 2010-03-20 15:13 ` Oliver Endriss
2010-03-20 16:03 ` av7110 and budget_av are broken! e9hack
1 sibling, 0 replies; 10+ messages in thread
From: Oliver Endriss @ 2010-03-20 15:13 UTC (permalink / raw)
To: Hans Verkuil; +Cc: linux-media, e9hack, Mauro Carvalho Chehab
Hans Verkuil wrote:
> On Saturday 20 March 2010 15:07:08 Oliver Endriss wrote:
> > e9hack wrote:
> > > Am 13.3.2010 17:27, schrieb Hans Verkuil:
> > > > If there are no further comments, then I'll post a pull request in a few days.
> > > >
> > > > Tested with the mxb board. It would be nice if you can verify this with the
> > > > av7110.
> > >
> > > Hi hans,
> > >
> > > it works with my TT-C2300 perfectly. The main problem of your changes was: It wasn't
> > > possible to unload the module for the TT-C2300.
> >
> > Guys, when will you finally apply this fix?
>
> Thanks for reminding me, I frankly forgot about this.
>
> Hartmut, is the problem with unloading the module something that my patch
> caused? Or was that there as well before changeset 14351:2eda2bcc8d6f?
> Are there any kernel messages indicating why it won't unload?
The patch caused the problem.
You moved v4l2_device_register() from saa7146_vv_init() to
saa7146_vv_devinit(), but you did not modify av7110_v4l.c and
budget-av.c accordingly.
$ grep saa7146_vv_init v4l/*c
v4l/av7110_v4l.c: ret = saa7146_vv_init(dev, vv_data);
v4l/budget-av.c: if (0 != saa7146_vv_init(dev, &vv_data)) {
v4l/hexium_gemini.c: saa7146_vv_init(dev, &vv_data);
v4l/hexium_orion.c: saa7146_vv_init(dev, &vv_data);
v4l/mxb.c: saa7146_vv_init(dev, &vv_data);
v4l/saa7146_fops.c:int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv)
v4l/saa7146_fops.c:EXPORT_SYMBOL_GPL(saa7146_vv_init);
v4l/saa7146_fops.c:static int __init saa7146_vv_init_module(void)
v4l/saa7146_fops.c:module_init(saa7146_vv_init_module);
$ grep saa7146_vv_devinit v4l/*c
v4l/hexium_gemini.c: ret = saa7146_vv_devinit(dev);
v4l/hexium_orion.c: err = saa7146_vv_devinit(dev);
v4l/mxb.c: err = saa7146_vv_devinit(dev);
v4l/saa7146_fops.c:int saa7146_vv_devinit(struct saa7146_dev *dev)
v4l/saa7146_fops.c:EXPORT_SYMBOL_GPL(saa7146_vv_devinit);
CU
Oliver
--
----------------------------------------------------------------
VDR Remote Plugin 0.4.0: http://www.escape-edv.de/endriss/vdr/
4 MByte Mod: http://www.escape-edv.de/endriss/dvb-mem-mod/
Full-TS Mod: http://www.escape-edv.de/endriss/dvb-full-ts-mod/
----------------------------------------------------------------
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: av7110 and budget_av are broken!
2010-03-20 14:20 ` Hans Verkuil
2010-03-20 15:13 ` Oliver Endriss
@ 2010-03-20 16:03 ` e9hack
2010-03-20 21:37 ` Hans Verkuil
1 sibling, 1 reply; 10+ messages in thread
From: e9hack @ 2010-03-20 16:03 UTC (permalink / raw)
To: Hans Verkuil; +Cc: linux-media
Am 20.3.2010 15:20, schrieb Hans Verkuil:
> Hartmut, is the problem with unloading the module something that my patch
> caused? Or was that there as well before changeset 14351:2eda2bcc8d6f?
> Are there any kernel messages indicating why it won't unload?
Changset 14351:2eda2bcc8d6f causes a kernel oops during unload of the module for my dvb
cards. The call trace points to dvb_ttpci. I assumed, that the FF card is affected only.
It may be possible, that budget-av does crash also, if it is unload as second.
Regards,
Hartmut
Mar 3 11:42:33 vdr kernel: [ 3291.915576] saa7146: unregister extension 'budget_av'.
Mar 3 11:42:33 vdr kernel: [ 3291.916426] budget_av 0000:04:07.0: PCI INT A disabled
Mar 3 11:42:33 vdr kernel: [ 3291.918565] saa7146: unregister extension 'dvb'.
Mar 3 11:42:33 vdr kernel: [ 3291.918750] BUG: unable to handle kernel NULL pointer
dereference at (null)
Mar 3 11:42:33 vdr kernel: [ 3291.918966] IP: [<ffffffffa0286aac>]
v4l2_device_unregister+0x1c/0x60 [videodev]
Mar 3 11:42:33 vdr kernel: [ 3291.919013] PGD 3db10067 PUD 37a3d067 PMD 0
Mar 3 11:42:33 vdr kernel: [ 3291.919013] Oops: 0000 [#1] PREEMPT SMP
Mar 3 11:42:33 vdr kernel: [ 3291.919013] last sysfs file:
/sys/devices/platform/w83627ehf.2576/cpu0_vid
Mar 3 11:42:33 vdr kernel: [ 3291.919013] CPU 0
Mar 3 11:42:33 vdr kernel: [ 3291.919013] Pid: 15305, comm: rmmod Not tainted
2.6.33-64-suse-11.0 #4 MS-7207PV/MS-7207PV
Mar 3 11:42:33 vdr kernel: [ 3291.919013] RIP: 0010:[<ffffffffa0286aac>]
[<ffffffffa0286aac>] v4l2_device_unregister+0x1c/0x60 [videodev]
Mar 3 11:42:33 vdr kernel: [ 3291.919013] RSP: 0018:ffff88003da55cc8 EFLAGS: 00010203
Mar 3 11:42:33 vdr kernel: [ 3291.919013] RAX: 0000000000000000 RBX: 0000000000000000
RCX: ffff88003d64d3e0
Mar 3 11:42:34 vdr kernel: [ 3291.919013] RDX: 0000000000000001 RSI: 0000000000000000
RDI: 0000000000000000
Mar 3 11:42:34 vdr kernel: [ 3291.919013] RBP: ffff880037fd7018 R08: 0000000080808081
R09: 0000000000000000
Mar 3 11:42:34 vdr kernel: [ 3291.919013] R10: 0000000000000000 R11: ffffffffa02812a0
R12: ffff880037fd7020
Mar 3 11:42:34 vdr kernel: [ 3291.919013] R13: 0000000000000000 R14: 0000000000000001
R15: ffff88003fb98888
Mar 3 11:42:34 vdr kernel: [ 3291.919013] FS: 00007f2def23b6f0(0000)
GS:ffff880001800000(0000) knlGS:0000000000000000
Mar 3 11:42:34 vdr kernel: [ 3291.919013] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
Mar 3 11:42:34 vdr kernel: [ 3291.919013] CR2: 0000000000000000 CR3: 0000000037abd000
CR4: 00000000000006f0
Mar 3 11:42:34 vdr kernel: [ 3291.919013] DR0: 0000000000000000 DR1: 0000000000000000
DR2: 0000000000000000
Mar 3 11:42:34 vdr kernel: [ 3291.919013] DR3: 0000000000000000 DR6: 00000000ffff0ff0
DR7: 0000000000000400
Mar 3 11:42:34 vdr kernel: [ 3291.919013] Process rmmod (pid: 15305, threadinfo
ffff88003da54000, task ffff880009830080)
Mar 3 11:42:34 vdr kernel: [ 3291.919013] Stack:
Mar 3 11:42:34 vdr kernel: [ 3291.919013] ffff88003edc0108 ffff880037fd7000
ffff88003db47000 ffffffffa0396ca5
Mar 3 11:42:34 vdr kernel: [ 3291.919013] <0> ffffffffa03df158 ffff88003edc0108
ffff880037fd7118 ffff880037fd7000
Mar 3 11:42:34 vdr kernel: [ 3291.919013] <0> ffffffffa03df158 0000000000000001
ffff88003fb98888 ffffffffa03cb2c5
Mar 3 11:42:34 vdr kernel: [ 3291.919013] Call Trace:
Mar 3 11:42:34 vdr kernel: [ 3291.919013] [<ffffffffa0396ca5>] ?
saa7146_vv_release+0x45/0x140 [saa7146_vv]
Mar 3 11:42:34 vdr kernel: [ 3291.919013] [<ffffffffa03cb2c5>] ?
av7110_exit_v4l+0x45/0x60 [dvb_ttpci]
Mar 3 11:42:34 vdr kernel: [ 3291.919013] [<ffffffffa03d9748>] ?
av7110_detach+0x138/0x2a0 [dvb_ttpci]
Mar 3 11:42:34 vdr kernel: [ 3291.919013] [<ffffffffa02dd322>] ?
saa7146_remove_one+0xb2/0x230 [saa7146]
Mar 3 11:42:34 vdr kernel: [ 3291.919013] [<ffffffff811dd37f>] ? pci_device_remove+0x2f/0x60
Mar 3 11:42:34 vdr kernel: [ 3291.919013] [<ffffffff81270c88>] ?
__device_release_driver+0x78/0xf0
Mar 3 11:42:34 vdr kernel: [ 3291.919013] [<ffffffff81270db0>] ? driver_detach+0xb0/0xc0
Mar 3 11:42:34 vdr kernel: [ 3291.919013] [<ffffffff8126fca4>] ? bus_remove_driver+0x84/0xe0
Mar 3 11:42:34 vdr kernel: [ 3291.919013] [<ffffffff811dd69f>] ?
pci_unregister_driver+0x3f/0xc0
Mar 3 11:42:34 vdr kernel: [ 3291.919013] [<ffffffffa02dd1a7>] ?
saa7146_unregister_extension+0x27/0x60 [saa7146]
Mar 3 11:42:34 vdr kernel: [ 3291.919013] [<ffffffff81084db6>] ?
sys_delete_module+0x1f6/0x2d0
Mar 3 11:42:34 vdr kernel: [ 3291.919013] [<ffffffff81344255>] ?
_raw_spin_unlock_irqrestore+0x15/0x40
Mar 3 11:42:34 vdr kernel: [ 3291.919013] [<ffffffff81002e6b>] ?
system_call_fastpath+0x16/0x1b
Mar 3 11:42:34 vdr kernel: [ 3291.919013] Code: fe e0 48 c7 03 00 00 00 00 5b c3 0f 1f 40
00 41 54 48 85 ff 55 48 89 fd 53 74 4a e8 cf ff ff ff 48 8b 5d 08 4c 8d 65 08 4c 39 e3 <
Mar 3 11:42:34 vdr kernel: [ 3291.919013] RIP [<ffffffffa0286aac>]
v4l2_device_unregister+0x1c/0x60 [videodev]
Mar 3 11:42:34 vdr kernel: [ 3291.919013] RSP <ffff88003da55cc8>
Mar 3 11:42:34 vdr kernel: [ 3291.919013] CR2: 0000000000000000
Mar 3 11:42:34 vdr kernel: [ 3291.934087] ---[ end trace 685f9ceb9b064f25 ]---
Mar 3 11:42:52 vdr logger: rcvdr: stop
Mar 3 11:43:34 vdr shutdown[5610]: shutting down for system reboot
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: av7110 and budget_av are broken!
2010-03-20 16:03 ` av7110 and budget_av are broken! e9hack
@ 2010-03-20 21:37 ` Hans Verkuil
2010-03-22 19:34 ` e9hack
0 siblings, 1 reply; 10+ messages in thread
From: Hans Verkuil @ 2010-03-20 21:37 UTC (permalink / raw)
To: e9hack; +Cc: linux-media
On Saturday 20 March 2010 17:03:01 e9hack wrote:
> Am 20.3.2010 15:20, schrieb Hans Verkuil:
> > Hartmut, is the problem with unloading the module something that my patch
> > caused? Or was that there as well before changeset 14351:2eda2bcc8d6f?
> > Are there any kernel messages indicating why it won't unload?
>
> Changset 14351:2eda2bcc8d6f causes a kernel oops during unload of the module for my dvb
> cards.
OK, I know that. But does the patch I mailed you last time fix this problem
without causing new ones? If so, then I'll post that patch to the list.
Regards,
Hans
> The call trace points to dvb_ttpci. I assumed, that the FF card is affected only.
> It may be possible, that budget-av does crash also, if it is unload as second.
--
Hans Verkuil - video4linux developer - sponsored by TANDBERG
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: av7110 and budget_av are broken!
2010-03-20 21:37 ` Hans Verkuil
@ 2010-03-22 19:34 ` e9hack
2010-04-21 6:29 ` e9hack
0 siblings, 1 reply; 10+ messages in thread
From: e9hack @ 2010-03-22 19:34 UTC (permalink / raw)
To: Hans Verkuil; +Cc: linux-media
Am 20.3.2010 22:37, schrieb Hans Verkuil:
> On Saturday 20 March 2010 17:03:01 e9hack wrote:
> OK, I know that. But does the patch I mailed you last time fix this problem
> without causing new ones? If so, then I'll post that patch to the list.
With your last patch, I've no problems. I'm using a a TT-C2300 and a Budget card. If my
VDR does start, currently I've no chance to determine which module is load first, but it
works. If I unload all modules and load it again, I've no problem. In this case, the
modules for the budget card is load first and the modules for the FF loads as second one.
Regards,
Hartmut
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: av7110 and budget_av are broken!
2010-03-22 19:34 ` e9hack
@ 2010-04-21 6:29 ` e9hack
0 siblings, 0 replies; 10+ messages in thread
From: e9hack @ 2010-04-21 6:29 UTC (permalink / raw)
To: Hans Verkuil; +Cc: linux-media
Am 22.3.2010 20:34, schrieb e9hack:
> Am 20.3.2010 22:37, schrieb Hans Verkuil:
>> On Saturday 20 March 2010 17:03:01 e9hack wrote:
>> OK, I know that. But does the patch I mailed you last time fix this problem
>> without causing new ones? If so, then I'll post that patch to the list.
>
> With your last patch, I've no problems. I'm using a a TT-C2300 and a Budget card. If my
> VDR does start, currently I've no chance to determine which module is load first, but it
> works. If I unload all modules and load it again, I've no problem. In this case, the
> modules for the budget card is load first and the modules for the FF loads as second one.
Ping!!!!!!
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2010-04-21 6:29 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-03 11:39 changeset 14351:2eda2bcc8d6f e9hack
2010-03-13 16:27 ` Hans Verkuil
2010-03-16 19:29 ` e9hack
2010-03-20 14:07 ` av7110 and budget_av are broken! (was: Re: changeset 14351:2eda2bcc8d6f) Oliver Endriss
2010-03-20 14:20 ` Hans Verkuil
2010-03-20 15:13 ` Oliver Endriss
2010-03-20 16:03 ` av7110 and budget_av are broken! e9hack
2010-03-20 21:37 ` Hans Verkuil
2010-03-22 19:34 ` e9hack
2010-04-21 6:29 ` e9hack
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox