From: Zeng Zhaoxiu <[email protected]>
Signed-off-by: Zeng Zhaoxiu <[email protected]>
---
drivers/bus/brcmstb_gisb.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/bus/brcmstb_gisb.c b/drivers/bus/brcmstb_gisb.c
index f364fa4..2816a04 100644
--- a/drivers/bus/brcmstb_gisb.c
+++ b/drivers/bus/brcmstb_gisb.c
@@ -24,6 +24,7 @@
#include <linux/of.h>
#include <linux/bitops.h>
#include <linux/pm.h>
+#include <linux/log2.h>
#ifdef CONFIG_ARM
#include <asm/bug.h>
@@ -171,7 +172,7 @@ brcmstb_gisb_master_to_str(struct brcmstb_gisb_arb_device *gdev,
{
u32 mask = gdev->valid_mask & masters;
- if (hweight_long(mask) != 1)
+ if (!is_power_of_2(mask))
return NULL;
return gdev->master_names[ffs(mask) - 1];
--
2.5.0
On 06/12/15 02:11, Zhaoxiu Zeng wrote:
> From: Zeng Zhaoxiu <[email protected]>
is_power_of_2, AFAICT does not handle the case where the mask to be
tested for is zero, which is why I went with hweight_long() in the first
place.
Without further explanation as to whether we should prefer
is_power_of_2(), NAK.
>
> Signed-off-by: Zeng Zhaoxiu <[email protected]>
> ---
> drivers/bus/brcmstb_gisb.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/bus/brcmstb_gisb.c b/drivers/bus/brcmstb_gisb.c
> index f364fa4..2816a04 100644
> --- a/drivers/bus/brcmstb_gisb.c
> +++ b/drivers/bus/brcmstb_gisb.c
> @@ -24,6 +24,7 @@
> #include <linux/of.h>
> #include <linux/bitops.h>
> #include <linux/pm.h>
> +#include <linux/log2.h>
>
> #ifdef CONFIG_ARM
> #include <asm/bug.h>
> @@ -171,7 +172,7 @@ brcmstb_gisb_master_to_str(struct brcmstb_gisb_arb_device *gdev,
> {
> u32 mask = gdev->valid_mask & masters;
>
> - if (hweight_long(mask) != 1)
> + if (!is_power_of_2(mask))
> return NULL;
>
> return gdev->master_names[ffs(mask) - 1];
>
--
Florian