Skip to contentSkip to conversation

V4L: v4l2-common: remove incorrect MODULE test

PATCH In review Michael Krufky 2 participants 2 messages Mar 31, 2009 – Apr 2, 2009 Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 V4L: v4l2-common: remove incorrect MODULE test

Quoted 1 line

From ba6b8068cf8f428f296762146cef6aafc4686f81 Mon Sep 17 00:00:00 2001

From: Hans Verkuil <[email protected]>
Date: Wed, 18 Mar 2009 15:48:01 -0300
Subject: [PATCH] V4L: v4l2-common: remove incorrect MODULE test

v4l2-common doesn't have to be a module for it to call request_module(). Just remove that test.

Without this patch loading ivtv as a module while v4l2-common is compiled into the kernel will cause a delayed load of the i2c modules that ivtv needs since request_module is never called directly.

While it is nice to see the delayed load in action, it is not so nice in that ivtv fails to do a lot of necessary i2c initializations and will oops later on with a division-by-zero.

Thanks to Mark Lord for reporting this and helping me figure out what was wrong.

Thanks-to: Guennadi Liakhovetski <[email protected]>
Thanks-to: Mark Lord <[email protected]>

(cherry picked from commit d64260d58865004c6354e024da3450fdd607ea07)
---
 drivers/media/video/v4l2-common.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
drivers/media/video/v4l2-common.c +4 -4
index b8f2be8..907cd02 100644
@@ -910,10 +910,10 @@ struct v4l2_subdev *v4l2_i2c_new_subdev(struct i2c_adapter *adapter,
 	struct i2c_board_info info;
 
 	BUG_ON(!dev);
-#ifdef MODULE
+
 	if (module_name)
 		request_module(module_name);
-#endif
+
 	/* Setup the i2c board info with the device type and
 	   the device address. */
 	memset(&info, 0, sizeof(info));
@@ -958,10 +958,10 @@ struct v4l2_subdev *v4l2_i2c_new_probed_subdev(struct i2c_adapter *adapter,
 	struct i2c_board_info info;
 
 	BUG_ON(!dev);
-#ifdef MODULE
+
 	if (module_name)
 		request_module(module_name);
-#endif
+
 	/* Setup the i2c board info with the device type and
 	   the device address. */
 	memset(&info, 0, sizeof(info));
Signature · 1 line
1.5.4.3
#1 lore raw

patch v4l-v4l2-common-remove-incorrect-module-test.patch queued to 2.6.29.y-stable tree

This is a note to let you know that we have just queued up the patch titled

Subject: V4L: v4l2-common: remove incorrect MODULE test

to the 2.6.29.y-stable tree. Its filename is

v4l-v4l2-common-remove-incorrect-module-test.patch

A git repo of this tree can be found at
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

Quoted 1 line

From [email protected] Wed Apr 1 23:18:58 2009

Message-ID: <[email protected]>
Date: Tue, 31 Mar 2009 09:23:04 -0400
From: Michael Krufky <[email protected]>
To: [email protected]
Cc: Hans Verkuil <[email protected]>, Linux Media Mailing List <[email protected]>
Subject: V4L: v4l2-common: remove incorrect MODULE test

From: Hans Verkuil <[email protected]>

upstream commit: d64260d58865004c6354e024da3450fdd607ea07

v4l2-common doesn't have to be a module for it to call request_module(). Just remove that test.

Without this patch loading ivtv as a module while v4l2-common is compiled into the kernel will cause a delayed load of the i2c modules that ivtv needs since request_module is never called directly.

While it is nice to see the delayed load in action, it is not so nice in that ivtv fails to do a lot of necessary i2c initializations and will oops later on with a division-by-zero.

Thanks to Mark Lord for reporting this and helping me figure out what was wrong.

Thanks-to: Guennadi Liakhovetski <[email protected]>
Thanks-to: Mark Lord <[email protected]>

---
 drivers/media/video/v4l2-common.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/media/video/v4l2-common.c +4 -4
@@ -910,10 +910,10 @@ struct v4l2_subdev *v4l2_i2c_new_subdev(
 	struct i2c_board_info info;
 
 	BUG_ON(!dev);
-#ifdef MODULE
+
 	if (module_name)
 		request_module(module_name);
-#endif
+
 	/* Setup the i2c board info with the device type and
 	   the device address. */
 	memset(&info, 0, sizeof(info));
@@ -958,10 +958,10 @@ struct v4l2_subdev *v4l2_i2c_new_probed_
 	struct i2c_board_info info;
 
 	BUG_ON(!dev);
-#ifdef MODULE
+
 	if (module_name)
 		request_module(module_name);
-#endif
+
 	/* Setup the i2c board info with the device type and
 	   the device address. */
 	memset(&info, 0, sizeof(info));

Patches currently in stable-queue which might be from [email protected] are