lkml.org 
[lkml]   [2004]   [Feb]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH 2.6] Fix dev_printk to work with unclaimed devices
On Thu, Feb 26, 2004 at 11:34:39AM -0700, Deepak Saxena wrote:
>
> I need to do some fixup in platform_notify() and when trying to
> use the dev_* print functions for informational messages, they OOPs
> b/c the current code assumes that dev->driver exists. This is not the
> case since platform_notify() is called before a device has been attached
> to any driver.

Yeah, this "limitation" of the dev_* printks have been known for a
while, and it was determined that for situations like this, it's not
worth using those calls.

I have a patch somewhere in my tree that will give you a nice WARN()
output if this ever happens, so as to help when trying to port a new bus
to the driver model, but it's too ugly for mainline. Ah, found it, it's
below...

thanks,

greg k-h


diff -Nru a/include/linux/device.h b/include/linux/device.h
--- a/include/linux/device.h Thu Feb 26 10:48:37 2004
+++ b/include/linux/device.h Thu Feb 26 10:48:37 2004
@@ -394,8 +394,20 @@
extern void firmware_unregister(struct subsystem *);

/* debugging and troubleshooting/diagnostic helpers. */
+#ifdef CONFIG_DEBUG_DEV_PRINTK
+#define dev_printk(level, dev, format, arg...) \
+ do { \
+ if (!(dev) || !(dev)->driver) \
+ WARN_ON(1); \
+ else \
+ printk(level "%s %s: " format , \
+ (dev)->driver->name , \
+ (dev)->bus_id , ## arg); \
+ } while (0)
+#else
#define dev_printk(level, dev, format, arg...) \
printk(level "%s %s: " format , (dev)->driver->name , (dev)->bus_id , ## arg)
+#endif

#ifdef DEBUG
#define dev_dbg(dev, format, arg...) \
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 14:01    [from the cache]
©2003-2011 Jasper Spaans