lkml.org 
[lkml]   [2020]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.9 095/141] driver core: Print device when resources present in really_probe()
    Date
    From: Geert Uytterhoeven <geert+renesas@glider.be>

    [ Upstream commit 7c35e699c88bd60734277b26962783c60e04b494 ]

    If a device already has devres items attached before probing, a warning
    backtrace is printed. However, this backtrace does not reveal the
    offending device, leaving the user uninformed. Furthermore, using
    WARN_ON() causes systems with panic-on-warn to reboot.

    Fix this by replacing the WARN_ON() by a dev_crit() message.
    Abort probing the device, to prevent doing more damage to the device's
    resources.

    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Link: https://lore.kernel.org/r/20191206132219.28908-1-geert+renesas@glider.be
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/base/dd.c | 5 ++++-
    1 file changed, 4 insertions(+), 1 deletion(-)

    diff --git a/drivers/base/dd.c b/drivers/base/dd.c
    index ee25a69630c3a..854d218ea76ac 100644
    --- a/drivers/base/dd.c
    +++ b/drivers/base/dd.c
    @@ -341,7 +341,10 @@ static int really_probe(struct device *dev, struct device_driver *drv)
    atomic_inc(&probe_count);
    pr_debug("bus: '%s': %s: probing driver %s with device %s\n",
    drv->bus->name, __func__, drv->name, dev_name(dev));
    - WARN_ON(!list_empty(&dev->devres_head));
    + if (!list_empty(&dev->devres_head)) {
    + dev_crit(dev, "Resources present before probing\n");
    + return -EBUSY;
    + }

    re_probe:
    dev->driver = drv;
    --
    2.20.1
    \
     
     \ /
      Last update: 2020-02-14 17:39    [W:4.083 / U:0.904 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site