Re: [PATCH v2 1/2] modpost: file2alias: fixup mdio alias garbled code in modules.alias

From: Heiner Kallweit
Date: Fri Nov 26 2021 - 05:33:11 EST


On 26.11.2021 10:45, Yinbo Zhu wrote:
> After module compilation, module alias mechanism will generate a ugly
> mdio modules alias configure if ethernet phy was selected, this patch
> is to fixup mdio alias garbled code.
>
> In addition, that ugly alias configure will cause ethernet phy module
> doens't match udev, phy module auto-load is fail, but add this patch
> that it is well mdio driver alias configure match phy device uevent.
>
I think Andrew asked you for an example already.
For which PHY's the driver isn't auto-loaded?

In addition your commit descriptions are hard to read, especially the
one for patch 2. Could you please try to change them to proper English?
Not being a native speaker myself ..

> Signed-off-by: Yinbo Zhu <zhuyinbo@xxxxxxxxxxx>
> ---
> Change in v2:
> Add a MDIO_ANY_ID for considering some special phy device
> which phy id doesn't be read from phy register.
>
>
> include/linux/mod_devicetable.h | 2 ++
> scripts/mod/file2alias.c | 17 +----------------
> 2 files changed, 3 insertions(+), 16 deletions(-)
>
> diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
> index ae2e75d..7bd23bf 100644
> --- a/include/linux/mod_devicetable.h
> +++ b/include/linux/mod_devicetable.h
> @@ -595,6 +595,8 @@ struct platform_device_id {
> kernel_ulong_t driver_data;
> };
>
> +#define MDIO_ANY_ID (~0)
> +
> #define MDIO_NAME_SIZE 32
> #define MDIO_MODULE_PREFIX "mdio:"
>
> diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
> index 49aba86..63f3149 100644
> --- a/scripts/mod/file2alias.c
> +++ b/scripts/mod/file2alias.c
> @@ -1027,24 +1027,9 @@ static int do_platform_entry(const char *filename,
> static int do_mdio_entry(const char *filename,
> void *symval, char *alias)
> {
> - int i;
> DEF_FIELD(symval, mdio_device_id, phy_id);
> - DEF_FIELD(symval, mdio_device_id, phy_id_mask);
> -
> alias += sprintf(alias, MDIO_MODULE_PREFIX);
> -
> - for (i = 0; i < 32; i++) {
> - if (!((phy_id_mask >> (31-i)) & 1))
> - *(alias++) = '?';
> - else if ((phy_id >> (31-i)) & 1)
> - *(alias++) = '1';
> - else
> - *(alias++) = '0';
> - }
> -
> - /* Terminate the string */
> - *alias = 0;
> -
> + ADD(alias, "p", phy_id != MDIO_ANY_ID, phy_id);
> return 1;
> }
>
>