lkml.org 
[lkml]   [2018]   [Mar]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL for 4.15 094/124] serdev: Fix serdev_uevent failure on ACPI enumerated serdev-controllers
    Date
    From: Hans de Goede <hdegoede@redhat.com>

    [ Upstream commit 7d09995dcb0577b4a56aad7f2bb56f28604e8f1a ]

    ACPI enumerated serdev-controllers do not have an ACPI companion, the ACPI
    companion belongs to the serdev-device child of the serdev-controller, not
    to the controller itself. This was causing serdev_uevent to always return
    -ENODEV when called on a serdev-controller leading to errors like these:

    kernel: serial serial0: uevent: failed to send synthetic uevent

    being logged. This commit modifies serdev_uevent to directly return 0
    when called on an ACPI enumerated serdev-controller fixing this.

    Note: I do not think that setting a modalias on a devicetree enumerated
    serdev-controller makes sense either. So perhaps the !dev->of_node part of
    the check can be dropped too, but I'm not entirely sure that doing this
    on devicetree too is correct.

    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Acked-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    ---
    drivers/tty/serdev/core.c | 5 +++++
    1 file changed, 5 insertions(+)

    diff --git a/drivers/tty/serdev/core.c b/drivers/tty/serdev/core.c
    index 1bef39828ca7..571ce1f69d8d 100644
    --- a/drivers/tty/serdev/core.c
    +++ b/drivers/tty/serdev/core.c
    @@ -54,6 +54,11 @@ static int serdev_uevent(struct device *dev, struct kobj_uevent_env *env)
    int rc;

    /* TODO: platform modalias */
    +
    + /* ACPI enumerated controllers do not have a modalias */
    + if (!dev->of_node && dev->type == &serdev_ctrl_type)
    + return 0;
    +
    rc = acpi_device_uevent_modalias(dev, env);
    if (rc != -ENODEV)
    return rc;
    --
    2.14.1
    \
     
     \ /
      Last update: 2018-03-19 23:17    [W:2.291 / U:0.104 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site