Re: [PATCH] ata: libahci_platform: Do not set mask_port_map when not needed

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

 



Hi Damien,

Am 07.02.25 um 08:48 schrieb Damien Le Moal:
> Commit 8c87215dd3a2 ("ata: libahci_platform: support non-consecutive
> port numbers") modified ahci_platform_get_resources() to allow
> identifying the ports of a controller that are defined as child nodes of
> the controller node in order to support non-consecutive port numbers (as
> defined by the platform device tree).
>
> However, this commit also erroneously sets bits 0 of
> hpriv->mask_port_map when the platform devices tree does not define port
> child nodes, to match the fact that the temporary default number of
> ports used in that case is 1.
And to match the fact that only index 0 of hpriv->phys[0] was initialized
from calling into ahci_platform_get_phy.
> Doing so causes ahci_platform_init_host()
> to initialize and probe only the first port, even if the controller has
> multiple ports (that are not defined through the platform DT).
>
> Fix this by removing setting bit 0 of hpriv->mask_port_map when the
> platform devices tree does not define port child nodes.
>
> Reported-by: Klaus Kudielka <klaus.kudielka@xxxxxxxxx>
> Fixes: 8c87215dd3a2 ("ata: libahci_platform: support non-consecutive port numbers")
> Cc: stable@xxxxxxxxxxxxxxx
> Tested-by: Klaus Kudielka <klaus.kudielka@xxxxxxxxx>
> Signed-off-by: Damien Le Moal <dlemoal@xxxxxxxxxx>
> ---
>  drivers/ata/libahci_platform.c | 2 --
>  1 file changed, 2 deletions(-)
>
> diff --git a/drivers/ata/libahci_platform.c b/drivers/ata/libahci_platform.c
> index 53b2c7719dc5..91d44302eac9 100644
> --- a/drivers/ata/libahci_platform.c
> +++ b/drivers/ata/libahci_platform.c
> @@ -651,8 +651,6 @@ struct ahci_host_priv *ahci_platform_get_resources(struct platform_device *pdev,
>  		 * If no sub-node was found, keep this for device tree
>  		 * compatibility
>  		 */
> -		hpriv->mask_port_map |= BIT(0);
> -
>  		rc = ahci_platform_get_phy(hpriv, 0, dev, dev->of_node);

This function initializes hpriv->phys[0], and only at index 0.

I am not aware whether or not this causes any issue,
therefore no strong objection to restoring original behaviour.

>  		if (rc)
>  			goto err_out;
sincerely
Josua Mayer




[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux