Conexant 2388x: check for kthread_run
PATCH 1/1 Conexant 2388x: check for kthread_run
This patch adds checking of kthread_run return code.
---
Probably we could just ignore a such situation (we do check for core->kthread value before trying to stop the thread) but we have to leave a footmark in kernel messages anyway I guess. Comments?
drivers/media/video/cx88/cx88-video.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-)
drivers/media/video/cx88/cx88-video.c +8 -1
@@ -1881,8 +1881,15 @@ static int __devinit cx8800_initdev(struct pci_dev *pci_dev,mutex_unlock (&core->lock);/* start tvaudio thread */ -if (core->tuner_type !=TUNER_ABSENT ) +if (core->tuner_type !=TUNER_ABSENT ) { core->kthread =kthread_run (cx88_audio_thread, core,"cx88 tvaudio" ); +if (IS_ERR (core->kthread)) { + err =PTR_ERR (core->kthread); +printk (KERN_ERR "Failed to create cx88 audio thread, err=%d\n" , + err); + goto fail_unreg; + } + }return 0 ; fail_unreg:
Hi Cyrill,
Em Qua, 2007-07-18 às 22:56 +0400, Cyrill Gorcunov escreveu:
Quoted 9 lines
This patch adds checking of
kthread_runreturn code.Signed-off-by Cyrill Gorcunov <[email protected]>---
Probably we could just ignore a such situation (we do check forcore->kthreadvalue before trying to stop the thread) but we have to leave a footmark in kernel messages anyway I guess. Comments?
drivers/media/video/cx88/cx88-video.c static int __devinit cx8800_initdev(struct pci_dev *pci_dev, · line 1890
Quoted 5 lines
drivers/media/video/cx88/cx88-video.c +5
-0+if (IS_ERR (core->kthread)) { + err =PTR_ERR (core->kthread); +printk (KERN_ERR "Failed to create cx88 audio thread, err=%d\n" , + err); + goto fail_unreg;
I would just remove the goto from your patch.
It is safe not starting the kernel thread, but keeping the driver initializing.
The drawback of not having the thread is not changing to stereo on some situations and not detecting audio standard changes (some countries may have more than one audio standard when you changing from VHF to UHF or on Cable TV).
Signature · 2 lines
Cheers, Mauro
[Mauro Carvalho Chehab - Wed, Jul 18, 2007 at 04:25:38PM -0300]
| Hi Cyrill, | | Em Qua, 2007-07-18 ??s 22:56 +0400, Cyrill Gorcunov escreveu: | > This patch adds checking of kthread_run return code. | > | > Signed-off-by: Cyrill Gorcunov <[email protected]> | > --- | > Probably we could just ignore a such situation (we do | > check for core->kthread value before trying to stop the | > thread) but we have to leave a footmark in kernel | > messages anyway I guess. Comments? | | > + if (IS_ERR(core->kthread)) { | > + err = PTR_ERR(core->kthread); | > + printk(KERN_ERR "Failed to create cx88 audio thread, err=%d\n", | > + err); | > + goto fail_unreg; | | I would just remove the goto from your patch. | | It is safe not starting the kernel thread, but keeping the driver | initializing. | | The drawback of not having the thread is not changing to stereo on some | situations and not detecting audio standard changes (some countries may | have more than one audio standard when you changing from VHF to UHF or | on Cable TV). | | -- | Cheers, | Mauro |
Hi Mauro,
thanks for the answer. Well, here is updated version.
---
From: Cyrill Gorcunov <[email protected]>
Subject: [PATCH] Conexant 2388x: check for kthread_run
The patch adds checking of kthread_run return code and issues a message if it fails.
---
drivers/media/video/cx88/cx88-video.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-)
drivers/media/video/cx88/cx88-video.c +7 -1
@@ -1881,8 +1881,14 @@ static int __devinit cx8800_initdev(struct pci_dev *pci_dev,mutex_unlock (&core->lock);/* start tvaudio thread */ -if (core->tuner_type !=TUNER_ABSENT ) +if (core->tuner_type !=TUNER_ABSENT ) { core->kthread =kthread_run (cx88_audio_thread, core,"cx88 tvaudio" ); +if (IS_ERR (core->kthread)) { + err =PTR_ERR (core->kthread); +printk (KERN_ERR "Failed to create cx88 audio thread, err=%d\n" , + err); + } + }return 0 ; fail_unreg: