All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: Greg KH <greg@kroah.com>
Cc: Greg KH <gregkh@suse.de>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] platform_driver_register:  warn if probe is in .init.text
Date: Fri, 17 Jul 2009 10:34:46 +0200	[thread overview]
Message-ID: <20090717083446.GA12135@pengutronix.de> (raw)
In-Reply-To: <20090716225809.GA3609@kroah.com>

Hello Greg,

> > > This code kills the build in very bad ways :(
> > it's just a ; that didn't made it into the new version.  Don't know why.
> > 
> > If you squash the patch below into the patch I sent it should work
> > again.
> 
> I don't have the original anymore :(
See below.  I changed the wording of the output in the !HOTPLUG case to
say .devinit.text instead of .init.text and fixed a typo in the commit
log.  Other than that the patch is unchanged.
 
> As it seemed that a lot of people who controlled the problem drivers
> didn't like the patches, what are you considering doing now?
Hmm, there are only two people that expressed not being completly happy
with my suggestions.

I think I will just drop the a patches for now and later just point out
the problem.  (At least for David's nacked drivers I feel little urge to
implement the alternative fix.)

And maybe if the "warn if probe is in .init.text" patch is merged the
people seeing the problem become more numerous which I hope will either
increase the positive feedback for the other patches or someone else
will propose a patch implementing the alternative.  (Maybe I should just
BUG() instead of only printing a warning :-)

Best regards and thanks for your ping on the subject
Uwe

--->8---
From: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Subject: platform_driver_register:  warn if probe is in .init.text

with HOTPLUG=y it's wrong to register a platform_driver who's probe
function lives in .init.text because the probe function can be called
(e.g. via sysfs or by registering a device late) after the init sections
are already discarded.  This results in an oops.

So warn if such a driver is registered.

Without HOTPLUG the probe function can (and should) be discarded if the
driver is registered while the init sections are still available.
In this case warn if the probe function isn't discarded later.  (As
described in the comments there is a small chance for a wrong warning.
But as HOTPLUG=n is unusual today and the situation is strage enough to
be cleaned up anyhow, I think this is OK.)

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 drivers/base/platform.c |   43 +++++++++++++++++++++++++++++++++++++------
 include/linux/kernel.h  |    2 ++
 include/linux/module.h  |   12 ++++++++++++
 kernel/extable.c        |   12 ++++++++++++
 kernel/module.c         |   36 ++++++++++++++++++++++++++++++++++++
 5 files changed, 99 insertions(+), 6 deletions(-)

diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index 81cb01b..68ef8cc 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -470,11 +470,7 @@ static void platform_drv_shutdown(struct device *_dev)
 	drv->shutdown(dev);
 }
 
-/**
- * platform_driver_register
- * @drv: platform driver structure
- */
-int platform_driver_register(struct platform_driver *drv)
+static int __platform_driver_register(struct platform_driver *drv)
 {
 	drv->driver.bus = &platform_bus_type;
 	if (drv->probe)
@@ -489,6 +485,41 @@ int platform_driver_register(struct platform_driver *drv)
 
 	return driver_register(&drv->driver);
 }
+
+/**
+ * platform_driver_register
+ * @drv: platform driver structure
+ */
+int platform_driver_register(struct platform_driver *drv)
+{
+	int ret = __platform_driver_register(drv);
+
+#if defined(CONFIG_HOTPLUG)
+	/*
+	 * drivers that are registered by platform_driver_register
+	 * should not have their probe function in .init.text.  The
+	 * reason is that a probe can happen after .init.text is
+	 * discarded which then results in an oops.  The alternatives
+	 * are using .devinit.text for the probe function or "register"
+	 * with platform_driver_probe.
+	 */
+	if (drv->probe && kernel_init_text_address((unsigned long)drv->probe))
+		pr_warning("oops-warning: probe function of platform driver %s"
+			       " lives in .init.text\n", drv->driver.name);
+#else
+	/*
+	 * without HOTPLUG probe functions can be discarded after the driver is
+	 * loaded.
+	 * There is a little chance for false positives, namely if the driver is
+	 * registered after the .init sections are discarded.
+	 */
+	if (drv->probe && !kernel_init_text_address((unsigned long)drv->probe))
+		pr_info("probably the probe function of platform driver %s can"
+				" be moved to .devinit.text\n",
+				drv->driver.name);
+#endif
+	return ret;
+}
 EXPORT_SYMBOL_GPL(platform_driver_register);
 
 /**
@@ -525,7 +556,7 @@ int __init_or_module platform_driver_probe(struct platform_driver *drv,
 
 	/* temporary section violation during probe() */
 	drv->probe = probe;
-	retval = code = platform_driver_register(drv);
+	retval = code = __platform_driver_register(drv);
 
 	/* Fixup that section violation, being paranoid about code scanning
 	 * the list of drivers in order to probe new devices.  Check to see
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index d6320a3..2d48087 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -203,8 +203,10 @@ extern char *get_options(const char *str, int nints, int *ints);
 extern unsigned long long memparse(const char *ptr, char **retptr);
 
 extern int core_kernel_text(unsigned long addr);
+extern int core_kernel_init_text(unsigned long addr);
 extern int __kernel_text_address(unsigned long addr);
 extern int kernel_text_address(unsigned long addr);
+extern int kernel_init_text_address(unsigned long addr);
 extern int func_ptr_is_kernel_text(void *ptr);
 
 struct pid;
diff --git a/include/linux/module.h b/include/linux/module.h
index 098bdb7..93f47c4 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -385,9 +385,11 @@ static inline int module_is_live(struct module *mod)
 }
 
 struct module *__module_text_address(unsigned long addr);
+struct module *__module_init_text_address(unsigned long addr);
 struct module *__module_address(unsigned long addr);
 bool is_module_address(unsigned long addr);
 bool is_module_text_address(unsigned long addr);
+bool is_module_init_text_address(unsigned long addr);
 
 static inline int within_module_core(unsigned long addr, struct module *mod)
 {
@@ -556,6 +558,11 @@ static inline struct module *__module_text_address(unsigned long addr)
 	return NULL;
 }
 
+static inline struct module *__module_init_text_address(unsigned long addr)
+{
+	return NULL;
+}
+
 static inline bool is_module_address(unsigned long addr)
 {
 	return false;
@@ -566,6 +573,11 @@ static inline bool is_module_text_address(unsigned long addr)
 	return false;
 }
 
+static inline bool is_module_init_text_address(unsigned long addr)
+{
+	return false;
+}
+
 /* Get/put a kernel symbol (calls should be symmetric) */
 #define symbol_get(x) ({ extern typeof(x) x __attribute__((weak)); &(x); })
 #define symbol_put(x) do { } while(0)
diff --git a/kernel/extable.c b/kernel/extable.c
index 7f8f263..bfd7bda 100644
--- a/kernel/extable.c
+++ b/kernel/extable.c
@@ -66,6 +66,11 @@ int core_kernel_text(unsigned long addr)
 	    addr <= (unsigned long)_etext)
 		return 1;
 
+	return core_kernel_init_text;
+}
+
+int core_kernel_init_text(unsigned long addr)
+{
 	if (system_state == SYSTEM_BOOTING &&
 	    init_kernel_text(addr))
 		return 1;
@@ -98,6 +103,13 @@ int kernel_text_address(unsigned long addr)
 	return is_module_text_address(addr);
 }
 
+int kernel_init_text_address(unsigned long addr)
+{
+	if (core_kernel_init_text(addr))
+		return 1;
+	return is_module_init_text_address(addr);
+}
+
 /*
  * On some architectures (PPC64, IA64) function pointers
  * are actually only tokens to some data that then holds the
diff --git a/kernel/module.c b/kernel/module.c
index 0a04983..f1fbeb0 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -2890,6 +2890,22 @@ bool is_module_text_address(unsigned long addr)
 }
 
 /*
+ * is_module_init_text_address - is this address inside a module's .init.text
+ * section?
+ * @addr: the address to check.
+ */
+bool is_module_init_text_address(unsigned long addr)
+{
+	bool ret;
+
+	preempt_disable();
+	ret = __module_init_text_address(addr) != NULL;
+	preempt_enable();
+
+	return ret;
+}
+
+/*
  * __module_text_address - get the module whose code contains an address.
  * @addr: the address.
  *
@@ -2909,6 +2925,26 @@ struct module *__module_text_address(unsigned long addr)
 }
 EXPORT_SYMBOL_GPL(__module_text_address);
 
+/*
+ * __module_init_text_address - get the module whose .init.text contains an
+ * address.
+ * @addr: the address.
+ *
+ * Must be called with preempt disabled or module mutex held so that
+ * module doesn't get freed during this.
+ */
+struct module *__module_init_text_address(unsigned long addr)
+{
+	struct module *mod = __module_address(addr);
+	if (mod) {
+		/* Make sure it's within the .init.text section. */
+		if (!within(addr, mod->module_init, mod->init_text_size))
+			mod = NULL;
+	}
+	return mod;
+}
+EXPORT_SYMBOL_GPL(__module_init_text_address);
+
 /* Don't grab lock, we're oopsing. */
 void print_modules(void)
 {
-- 
1.6.3.3

-- 
Pengutronix e.K.                              | Uwe Kleine-König            |
Industrial Linux Solutions                    | http://www.pengutronix.de/  |

      reply	other threads:[~2009-07-17  8:34 UTC|newest]

Thread overview: 197+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-16  5:13 [GIT PATCH] USB patches for 2.6.30-git Greg KH
     [not found] ` <1245129858-23818-12-git-send-email-gregkh@suse.de>
2009-06-16  6:05   ` [PATCH 012/143] USB: move twl4030_usb's probe function to .devinit.text Uwe Kleine-König
2009-06-16  6:20     ` Greg KH
2009-06-16  9:14       ` Uwe Kleine-König
2009-06-16 16:21         ` Greg KH
2009-06-16 17:59           ` Uwe Kleine-König
2009-06-16 18:00             ` Greg KH
2009-06-16 18:23               ` Uwe Kleine-König
2009-06-19 13:42                 ` [PATCH] platform_driver_register: warn if probe is in .init.text Uwe Kleine-König
2009-06-19 14:11                   ` Greg KH
2009-06-19 14:43                     ` Uwe Kleine-König
2009-06-29  7:55                       ` Uwe Kleine-König
2009-07-11  3:34                         ` Greg KH
2009-07-11 10:00                           ` Uwe Kleine-König
2009-07-11 17:05                             ` Greg KH
2009-07-11 20:52                               ` [PATCH] move acornfb's probe function to .devinit.text Uwe Kleine-König
2009-07-11 20:52                                 ` Uwe Kleine-König
2009-07-11 20:52                                 ` [PATCH] move am79c961's " Uwe Kleine-König
2009-07-11 20:52                                   ` [PATCH] move arcfb's " Uwe Kleine-König
2009-07-11 20:52                                     ` [PATCH] move at91_ether's " Uwe Kleine-König
2009-07-11 20:52                                       ` [PATCH] move cfag12864bfb's " Uwe Kleine-König
2009-07-11 20:52                                         ` [PATCH] move leds-clevo-mail's " Uwe Kleine-König
2009-07-11 20:52                                           ` [PATCH] move cobalt-lcd's " Uwe Kleine-König
2009-07-11 20:52                                             ` [PATCH] move corgi-ssp's " Uwe Kleine-König
2009-07-11 20:52                                               ` [PATCH] move efifb's " Uwe Kleine-König
2009-07-11 20:52                                                 ` [PATCH] move epson1355fb's " Uwe Kleine-König
2009-07-11 20:52                                                   ` [PATCH] move sh_flctl's " Uwe Kleine-König
2009-07-11 20:52                                                     ` [PATCH] move gbefb's " Uwe Kleine-König
2009-07-11 20:52                                                       ` [PATCH] move h1940-bt's " Uwe Kleine-König
2009-07-11 20:52                                                         ` [PATCH] move hgafb's " Uwe Kleine-König
2009-07-11 20:52                                                           ` [PATCH] move hitfb's " Uwe Kleine-König
2009-07-11 20:52                                                             ` [PATCH] move hp680-bl's " Uwe Kleine-König
2009-07-11 20:52                                                               ` [PATCH] move hp-wmi's " Uwe Kleine-König
2009-07-11 20:52                                                                 ` [PATCH] move jazzsonic's " Uwe Kleine-König
2009-07-11 20:52                                                                   ` [PATCH] move jornada_ssp's " Uwe Kleine-König
2009-07-11 20:52                                                                     ` [PATCH] move macsonic's " Uwe Kleine-König
2009-07-11 20:52                                                                       ` [PATCH] move meth's " Uwe Kleine-König
2009-07-11 20:52                                                                         ` [PATCH] move omap24xxcam's " Uwe Kleine-König
2009-07-11 20:52                                                                           ` [PATCH] move omap_hdq's " Uwe Kleine-König
2009-07-11 20:52                                                                             ` [PATCH] move i2c_omap's " Uwe Kleine-König
2009-07-11 20:52                                                                               ` [PATCH] move mmci-omap-hs's " Uwe Kleine-König
2009-07-11 20:52                                                                                 ` [PATCH] move orion_nand's " Uwe Kleine-König
2009-07-11 20:52                                                                                   ` [PATCH] move q40fb's " Uwe Kleine-König
2009-07-11 20:52                                                                                     ` [PATCH] move s3c241xfb's " Uwe Kleine-König
2009-07-11 20:52                                                                                       ` [PATCH] move sa11x0-fb's " Uwe Kleine-König
2009-07-11 20:52                                                                                         ` [PATCH] move sb1250-mac's " Uwe Kleine-König
2009-07-11 20:52                                                                                           ` [PATCH] move sgiseeq's " Uwe Kleine-König
2009-07-11 20:53                                                                                             ` [PATCH] move sgivwfb's " Uwe Kleine-König
2009-07-11 20:53                                                                                               ` [PATCH] move sgiwd93's " Uwe Kleine-König
2009-07-11 20:53                                                                                                 ` [PATCH] move sharpsl-pm's " Uwe Kleine-König
2009-07-11 20:53                                                                                                   ` [PATCH] move sh_mobile_lcdc_fb's " Uwe Kleine-König
2009-07-11 20:53                                                                                                     ` [PATCH] move snirm_53c710's " Uwe Kleine-König
2009-07-11 20:53                                                                                                       ` [PATCH] move stk17ta8's " Uwe Kleine-König
2009-07-11 20:53                                                                                                         ` [PATCH] move omap_udc's " Uwe Kleine-König
2009-07-11 20:53                                                                                                           ` [PATCH] move vesafb's " Uwe Kleine-König
2009-07-11 20:53                                                                                                             ` [PATCH] move vfb's " Uwe Kleine-König
2009-07-11 20:53                                                                                                               ` [PATCH] move vga16fb's " Uwe Kleine-König
2009-07-11 20:53                                                                                                                 ` [PATCH] move w100fb's " Uwe Kleine-König
2009-07-11 20:53                                                                                                                   ` [PATCH] move xtsonic's " Uwe Kleine-König
2009-07-11 22:26                                                                                                                   ` [PATCH] move w100fb's " Ian molton
2009-07-11 22:30                                                                                                           ` [PATCH] move omap_udc's " David Brownell
2009-07-12  8:35                                                                                                             ` Uwe Kleine-König
2009-07-12  8:47                                                                                                               ` Russell King
2009-07-12  9:30                                                                                                                 ` David Brownell
2009-07-12 13:17                                                                                                                 ` Russell King
2009-07-12 20:07                                                                                                                   ` David Brownell
2009-07-12 22:21                                                                                                                   ` David Brownell
2009-07-13  9:10                                                                                                                     ` Uwe Kleine-König
2009-07-13 21:31                                                                                                                       ` David Brownell
2009-07-12  9:37                                                                                                               ` David Brownell
2009-07-12 20:48                                                                                                             ` Uwe Kleine-König
2009-07-12 22:12                                                                                                               ` David Brownell
2009-07-13  9:12                                                                                                               ` [PATCH] don't add clevo_mail_led_driver's probe function to the driver struct Uwe Kleine-König
2009-08-13  9:59                                                                                                         ` [PATCH] move stk17ta8's probe function to .devinit.text Jiri Kosina
2009-10-09 15:24                                                                                                         ` Jiri Kosina
2009-10-09 18:33                                                                                                           ` Alessandro Zummo
2009-10-09 21:22                                                                                                             ` Jiri Kosina
2009-10-09 21:55                                                                                                               ` Alessandro Zummo
2009-07-12  0:36                                                                                           ` [PATCH] move sb1250-mac's " Maciej W. Rozycki
2009-07-13 19:37                                                                                   ` [PATCH] move orion_nand's " Nicolas Pitre
2009-07-14  8:09                                                                                     ` Uwe Kleine-König
2009-07-14 16:12                                                                                       ` Nicolas Pitre
2009-07-14 17:17                                                                                         ` Uwe Kleine-König
2009-07-21 20:46                                                                                         ` [PATCH] register orion_nand using platform_driver_probe Uwe Kleine-König
2009-07-21 20:46                                                                                           ` Uwe Kleine-König
2009-07-21 22:26                                                                                           ` Nicolas Pitre
2009-07-21 22:26                                                                                             ` Nicolas Pitre
2009-07-22  5:17                                                                                             ` Uwe Kleine-König
2009-07-22  5:17                                                                                               ` Uwe Kleine-König
2009-07-11 22:29                                                                                 ` [PATCH] move mmci-omap-hs's probe function to .devinit.text David Brownell
2009-07-21 20:36                                                                                   ` [PATCH] register mmci-omap-hs using platform_driver_probe Uwe Kleine-König
2009-07-22 17:38                                                                                     ` David Brownell
2009-07-21 15:14                                                                       ` [PATCH] move macsonic's probe function to .devinit.text Finn Thain
2009-07-21 15:40                                                                         ` [PATCH] macsonic, jazzsonic - fix oops on module unload Finn Thain
2009-07-21 19:22                                                                           ` David Miller
2009-07-21 19:20                                                                         ` [PATCH] move macsonic's probe function to .devinit.text Uwe Kleine-König
2009-07-21 19:20                                                                         ` David Miller
2009-07-21 19:40                                                                           ` Uwe Kleine-König
2009-07-21 19:41                                                                             ` David Miller
2009-09-19 23:09                                                     ` [PATCH] move sh_flctl's " David Woodhouse
2009-09-21  7:43                                                       ` Uwe Kleine-König
2009-07-13 13:51                                                 ` [PATCH] move efifb's " Peter Jones
2009-07-13  8:44                                               ` [PATCH] move corgi-ssp's " Eric Miao
2009-07-13  9:01                                                 ` Uwe Kleine-König
2009-07-11 22:27                                       ` [PATCH] move at91_ether's " David Brownell
2009-07-21 20:11                                         ` [PATCH] register at91_ether using platform_driver_probe Uwe Kleine-König
2009-07-22 17:37                                           ` David Brownell
2009-07-22 17:46                                           ` Andrew Victor
2009-07-22 18:24                                             ` David Miller
2009-09-07 14:19                               ` [PATCH] platform_driver_register: warn if probe is in .init.text Uwe Kleine-König
2010-01-22 17:06                                 ` Uwe Kleine-König
2010-01-22 17:38                                   ` Greg KH
2010-01-22 19:49                                     ` Uwe Kleine-König
2010-01-22 23:49                                       ` Dmitry Torokhov
2010-01-23  9:49                                         ` Uwe Kleine-König
2010-01-25 17:14                                           ` Dmitry Torokhov
2010-01-25 19:25                                             ` Uwe Kleine-König
2010-01-25 19:31                                               ` Dmitry Torokhov
2010-01-23 20:35                                       ` [PATCH 01/29] move acornfb's probe function to .devinit.text Uwe Kleine-König
2010-01-23 20:35                                         ` Uwe Kleine-König
2010-01-23 23:25                                         ` Alexey Dobriyan
2010-01-23 23:28                                         ` Alexey Dobriyan
2010-01-26  8:46                                           ` Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 02/29] move am79c961's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 03/29] move arcfb's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 04/29] move cfag12864bfb's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 05/29] move cobalt-lcd's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 06/29] move corgi-ssp's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 07/29] move efifb's " Uwe Kleine-König
2010-01-26 16:20                                         ` Peter Jones
2010-01-23 20:35                                       ` [PATCH 08/29] move epson1355fb's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 09/29] move gbefb's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 10/29] move h1940-bt's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 11/29] move hgafb's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 12/29] move hitfb's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 13/29] move hp-wmi's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 14/29] move jornada_ssp's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 15/29] move omap24xxcam's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 16/29] move omap_hdq's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 17/29] move i2c_omap's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 18/29] move q40fb's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 19/29] move s3c241xfb's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 20/29] move sa11x0-fb's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 21/29] move sgivwfb's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 22/29] move sgiwd93's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 23/29] move sharpsl-pm's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 24/29] move sh_mobile_lcdc_fb's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 25/29] move snirm_53c710's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 26/29] move vesafb's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 27/29] move vfb's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 28/29] move vga16fb's " Uwe Kleine-König
2010-01-23 20:35                                       ` [PATCH 29/29] move w100fb's " Uwe Kleine-König
2010-01-24 21:09                                       ` [PATCH] platform_driver_register: warn if probe is in .init.text OGAWA Hirofumi
2010-01-26  8:47                                         ` Uwe Kleine-König
2010-01-28  1:14                                           ` Greg KH
2010-01-30 20:44                                             ` Uwe Kleine-König
2010-01-30 20:46                                               ` [PATCH 1/7] modpost: members of *driver structs should not point to __init functions Uwe Kleine-König
2010-01-30 20:46                                               ` [PATCH 2/7] modpost: define ALL_XYX{IN,EX}IT_SECTIONS Uwe Kleine-König
2010-01-30 20:46                                               ` [PATCH 3/7] modpost: give most mismatch constants a better name Uwe Kleine-König
2010-01-30 20:46                                               ` [PATCH 4/7] modpost: pass around const struct sectioncheck * instead of enum mismatch Uwe Kleine-König
2010-01-30 20:46                                               ` [PATCH 5/7] modpost: remove now unused NO_MISMATCH constant Uwe Kleine-König
2010-01-30 20:46                                               ` [PATCH 6/7] modpost: make symbol white list a per mismatch type variable Uwe Kleine-König
2010-01-30 20:46                                               ` [PATCH 7/7] modpost: don't allow *driver to reference .init.* Uwe Kleine-König
2010-01-31 16:02                                               ` [PATCH] platform_driver_register: warn if probe is in .init.text Sam Ravnborg
2010-01-31 20:13                                                 ` Uwe Kleine-König
2010-02-02 15:25                                                   ` Michal Marek
2010-02-01 14:57                                               ` [PATCH] i2c/imx: don't add probe function to the driver struct Uwe Kleine-König
2010-02-01 14:57                                                 ` Uwe Kleine-König
2010-01-26  8:59                                     ` [PATCH] platform_driver_register: warn if probe is in .init.text Uwe Kleine-König
2010-01-26 14:30                                       ` Greg KH
2010-01-28 18:02                                       ` Greg KH
2010-02-03  9:42                                         ` Uwe Kleine-König
2010-02-03 15:08                                           ` Greg KH
2010-02-04 19:56                                             ` [PATCH 1/9] platform-drivers: move probe to .devinit.text in arch/arm Uwe Kleine-König
2010-02-04 20:56                                               ` Dmitry Eremin-Solenikov
2010-02-04 21:09                                                 ` Kristoffer Ericson
2010-02-04 21:20                                               ` Arnaud Patard
2010-02-04 19:56                                             ` [PATCH 2/9] platform-drivers: move probe to .devinit.text in drivers/scsi Uwe Kleine-König
2010-02-04 20:25                                               ` Ralf Baechle
2010-02-04 21:31                                                 ` Uwe Kleine-König
2010-02-04 19:56                                             ` [PATCH 4/9] x86: move hp-wmi's probe function to .devinit.text Uwe Kleine-König
2010-02-04 20:05                                               ` Matthew Garrett
2010-02-04 19:56                                             ` [PATCH 5/9] i2c: move i2c_omap's " Uwe Kleine-König
2010-02-04 19:56                                             ` [PATCH 6/9] w1: move omap_hdq's " Uwe Kleine-König
2010-02-04 19:56                                             ` [PATCH 7/9] media: move omap24xxcam's " Uwe Kleine-König
2010-02-04 19:56                                             ` [PATCH 8/9] auxdisplay: move cfag12864bfb's " Uwe Kleine-König
2010-02-04 19:56                                             ` [PATCH 9/9] net: move am79c961's " Uwe Kleine-König
2010-02-04 20:05                                               ` David Miller
2010-02-04 20:06                                                 ` Uwe Kleine-König
2010-02-12 20:11                                                   ` David Miller
2010-02-17 20:46                                                   ` Greg KH
2010-02-17 21:15                                               ` patch net-move-am79c961-s-probe-function-to-.devinit.text.patch added to gregkh-2.6 tree gregkh
2009-09-21  7:54                               ` [PATCH] platform_driver_register: warn if probe is in .init.text Uwe Kleine-König
2009-07-11 18:59                             ` Greg KH
2009-07-11 20:46                               ` Uwe Kleine-König
2009-07-16 22:58                                 ` Greg KH
2009-07-17  8:34                                   ` Uwe Kleine-König [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090717083446.GA12135@pengutronix.de \
    --to=u.kleine-koenig@pengutronix.de \
    --cc=greg@kroah.com \
    --cc=gregkh@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.