Messages in this thread Patch in this message | | | Date | Thu, 26 Feb 2004 10:53:24 -0800 | From | Greg KH <> | Subject | Re: [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/
| |