[PATCH] ahci: use hweight_long() to count port_map bits

kensanya@163.com posted 1 patch 1 week, 5 days ago
drivers/ata/libahci.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
[PATCH] ahci: use hweight_long() to count port_map bits
Posted by kensanya@163.com 1 week, 5 days ago
From: TanZheng <tanzheng@kylinos.cn>

Replace the open loop used to calculate the number of set bits
in the port mapping with the `hweight_long()` function, which
simplifies the code without altering its functionality.

Signed-off-by: TanZheng <tanzheng@kylinos.cn>
---
 drivers/ata/libahci.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
index c79abdfcd7a9..15d44266c9df 100644
--- a/drivers/ata/libahci.c
+++ b/drivers/ata/libahci.c
@@ -552,11 +552,7 @@ void ahci_save_initial_config(struct device *dev, struct ahci_host_priv *hpriv)
 
 	/* cross check port_map and cap.n_ports */
 	if (port_map) {
-		int map_ports = 0;
-
-		for (i = 0; i < AHCI_MAX_PORTS; i++)
-			if (port_map & (1 << i))
-				map_ports++;
+		int map_ports = hweight_long(port_map);
 
 		/* If PI has more ports than n_ports, whine, clear
 		 * port_map and let it be generated from n_ports.
-- 
2.25.1
Re: [PATCH] ahci: use hweight_long() to count port_map bits
Posted by Damien Le Moal 1 week, 4 days ago
On 2026/05/27 18:17, kensanya@163.com wrote:
> From: TanZheng <tanzheng@kylinos.cn>
> 
> Replace the open loop used to calculate the number of set bits
> in the port mapping with the `hweight_long()` function, which
> simplifies the code without altering its functionality.
> 
> Signed-off-by: TanZheng <tanzheng@kylinos.cn>

This looks good to me. But as Niklas commented, if this needs a Suggested-by
tag, please add it.

Reviewed-by: Damien Le Moal <dlemoal@kernel.org>

-- 
Damien Le Moal
Western Digital Research
Re: [PATCH] ahci: use hweight_long() to count port_map bits
Posted by Damien Le Moal 1 week, 4 days ago
On 5/28/26 03:18, Damien Le Moal wrote:
> On 2026/05/27 18:17, kensanya@163.com wrote:
>> From: TanZheng <tanzheng@kylinos.cn>
>>
>> Replace the open loop used to calculate the number of set bits
>> in the port mapping with the `hweight_long()` function, which
>> simplifies the code without altering its functionality.
>>
>> Signed-off-by: TanZheng <tanzheng@kylinos.cn>
> 
> This looks good to me. But as Niklas commented, if this needs a Suggested-by
> tag, please add it.
> 
> Reviewed-by: Damien Le Moal <dlemoal@kernel.org>

Note: the patch title should be:

ata: libahci: use hweight_long() to count port_map bits

Maybe Niklas can fix this when applying.


-- 
Damien Le Moal
Western Digital Research
Re:Re: [PATCH] ahci: use hweight_long() to count port_map bits
Posted by kensanya 1 week, 4 days ago
















At 2026-05-28 13:27:15, "Damien Le Moal" <dlemoal@kernel.org> wrote:
>On 5/28/26 03:18, Damien Le Moal wrote:
>> On 2026/05/27 18:17, kensanya@163.com wrote:
>>> From: TanZheng <tanzheng@kylinos.cn>
>>>
>>> Replace the open loop used to calculate the number of set bits
>>> in the port mapping with the `hweight_long()` function, which
>>> simplifies the code without altering its functionality.
>>>
>>> Signed-off-by: TanZheng <tanzheng@kylinos.cn>
>> 
>> This looks good to me. But as Niklas commented, if this needs a Suggested-by
>> tag, please add it.
>> 
>> Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
>
>Note: the patch title should be:
>
>ata: libahci: use hweight_long() to count port_map bits
>
>Maybe Niklas can fix this when applying.
>
>
>-- 
>Damien Le Moal
>Western Digital Research

Hi

I will modify the patch title and resend the patch.

Bset regards,
TanZheng

Re: [PATCH] ahci: use hweight_long() to count port_map bits
Posted by Niklas Cassel 1 week, 5 days ago
On Wed, May 27, 2026 at 05:17:29PM +0800, kensanya@163.com wrote:
> From: TanZheng <tanzheng@kylinos.cn>
> 
> Replace the open loop used to calculate the number of set bits
> in the port mapping with the `hweight_long()` function, which
> simplifies the code without altering its functionality.
> 
> Signed-off-by: TanZheng <tanzheng@kylinos.cn>
> ---
>  drivers/ata/libahci.c | 6 +-----
>  1 file changed, 1 insertion(+), 5 deletions(-)
> 
> diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
> index c79abdfcd7a9..15d44266c9df 100644
> --- a/drivers/ata/libahci.c
> +++ b/drivers/ata/libahci.c
> @@ -552,11 +552,7 @@ void ahci_save_initial_config(struct device *dev, struct ahci_host_priv *hpriv)
>  
>  	/* cross check port_map and cap.n_ports */
>  	if (port_map) {
> -		int map_ports = 0;
> -
> -		for (i = 0; i < AHCI_MAX_PORTS; i++)
> -			if (port_map & (1 << i))
> -				map_ports++;
> +		int map_ports = hweight_long(port_map);
>  
>  		/* If PI has more ports than n_ports, whine, clear
>  		 * port_map and let it be generated from n_ports.
> -- 
> 2.25.1
> 

Hello TanZheng,

Is it a coincidence that you send this the same day as Michael pointed out
the same, or was this sent as a response to Michael's email?


Kind regards,
Niklas