Re: [PATCH] Conexant 2388x: check for kthread_run

From: Cyrill Gorcunov
Date: Thu Jul 19 2007 - 10:33:20 EST


[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 <gorcunov@xxxxxxxxx>
| > ---
| > 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 <gorcunov@xxxxxxxxx>
Subject: [PATCH] Conexant 2388x: check for kthread_run

The patch adds checking of kthread_run return code
and issues a message if it fails.

Signed-off-by: Cyrill Gorcunov <gorcunov@xxxxxxxxx>
---

drivers/media/video/cx88/cx88-video.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/drivers/media/video/cx88/cx88-video.c b/drivers/media/video/cx88/cx88-video.c
index 98fa354..06b233a 100644
--- a/drivers/media/video/cx88/cx88-video.c
+++ b/drivers/media/video/cx88/cx88-video.c
@@ -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:
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/