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    [W:0.022 / U:2.340 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site