Re: [PATCH] serdev: Fix serdev_uevent failure on ACPI enumerated serdev-controllers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Dec 25, 2017 at 09:50:45PM +0100, Hans de Goede wrote:
> 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.

Yes, generating modaliases for controllers doesn't make any sense as
they are not bound to any drivers.

I've prepared a patch, on top of yours, which moves the modalias
handling over to the device-type (rather than bus) code instead. Note
that this includes the modalias attributes, which we shouldn't be
creating for controllers either.

> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
> ---
>  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;

Thanks,
Johan
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux