2015-12-01 08:37:18

by Naoya Horiguchi

[permalink] [raw]
Subject: [PATCH v1] mm: fix warning in comparing enumerator

I saw the following warning when building mmotm-2015-11-25-17-08.

mm/page_alloc.c:4185:16: warning: comparison between 'enum zone_type' and 'enum <anonymous>' [-Wenum-compare]
for (i = 0; i < MAX_ZONELISTS; i++) {
^

enum zone_type is named like ZONE_* which is different from ZONELIST_*, so
we are somehow doing incorrect comparison. Just fixes it.

Signed-off-by: Naoya Horiguchi <[email protected]>
---
mm/page_alloc.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)

diff --git mmotm-2015-11-25-17-08/mm/page_alloc.c mmotm-2015-11-25-17-08_patched/mm/page_alloc.c
index e267faa..b801e6f 100644
--- mmotm-2015-11-25-17-08/mm/page_alloc.c
+++ mmotm-2015-11-25-17-08_patched/mm/page_alloc.c
@@ -4174,8 +4174,7 @@ static void set_zonelist_order(void)

static void build_zonelists(pg_data_t *pgdat)
{
- int j, node, load;
- enum zone_type i;
+ int i, j, node, load;
nodemask_t used_mask;
int local_node, prev_node;
struct zonelist *zonelist;
--
1.7.1


2015-12-01 22:25:55

by David Rientjes

[permalink] [raw]
Subject: Re: [PATCH v1] mm: fix warning in comparing enumerator

On Tue, 1 Dec 2015, Naoya Horiguchi wrote:

> I saw the following warning when building mmotm-2015-11-25-17-08.
>
> mm/page_alloc.c:4185:16: warning: comparison between 'enum zone_type' and 'enum <anonymous>' [-Wenum-compare]
> for (i = 0; i < MAX_ZONELISTS; i++) {
> ^
>
> enum zone_type is named like ZONE_* which is different from ZONELIST_*, so
> we are somehow doing incorrect comparison. Just fixes it.
>
> Signed-off-by: Naoya Horiguchi <[email protected]>
> ---
> mm/page_alloc.c | 3 +--
> 1 files changed, 1 insertions(+), 2 deletions(-)
>
> diff --git mmotm-2015-11-25-17-08/mm/page_alloc.c mmotm-2015-11-25-17-08_patched/mm/page_alloc.c
> index e267faa..b801e6f 100644
> --- mmotm-2015-11-25-17-08/mm/page_alloc.c
> +++ mmotm-2015-11-25-17-08_patched/mm/page_alloc.c
> @@ -4174,8 +4174,7 @@ static void set_zonelist_order(void)
>
> static void build_zonelists(pg_data_t *pgdat)
> {
> - int j, node, load;
> - enum zone_type i;
> + int i, j, node, load;
> nodemask_t used_mask;
> int local_node, prev_node;
> struct zonelist *zonelist;

Obviously correct, but I would have thought we could just remove 'j' and
used 'i' as our iterator through the entire function.

2015-12-01 23:17:31

by Naoya Horiguchi

[permalink] [raw]
Subject: [PATCH v2] mm: fix warning in comparing enumerator

On Tue, Dec 01, 2015 at 02:25:50PM -0800, David Rientjes wrote:
> On Tue, 1 Dec 2015, Naoya Horiguchi wrote:
>
> > I saw the following warning when building mmotm-2015-11-25-17-08.
> >
> > mm/page_alloc.c:4185:16: warning: comparison between 'enum zone_type' and 'enum <anonymous>' [-Wenum-compare]
> > for (i = 0; i < MAX_ZONELISTS; i++) {
> > ^
> >
> > enum zone_type is named like ZONE_* which is different from ZONELIST_*, so
> > we are somehow doing incorrect comparison. Just fixes it.
> >
> > Signed-off-by: Naoya Horiguchi <[email protected]>
> > ---
> > mm/page_alloc.c | 3 +--
> > 1 files changed, 1 insertions(+), 2 deletions(-)
> >
> > diff --git mmotm-2015-11-25-17-08/mm/page_alloc.c mmotm-2015-11-25-17-08_patched/mm/page_alloc.c
> > index e267faa..b801e6f 100644
> > --- mmotm-2015-11-25-17-08/mm/page_alloc.c
> > +++ mmotm-2015-11-25-17-08_patched/mm/page_alloc.c
> > @@ -4174,8 +4174,7 @@ static void set_zonelist_order(void)
> >
> > static void build_zonelists(pg_data_t *pgdat)
> > {
> > - int j, node, load;
> > - enum zone_type i;
> > + int i, j, node, load;
> > nodemask_t used_mask;
> > int local_node, prev_node;
> > struct zonelist *zonelist;
>
> Obviously correct, but I would have thought we could just remove 'j' and
> used 'i' as our iterator through the entire function.

You're right, thank you.

Here is v2.

---
From: Naoya Horiguchi <[email protected]>
Subject: [PATCH v2] mm: fix warning in comparing enumerator

I saw the following warning when building mmotm-2015-11-25-17-08.

mm/page_alloc.c:4185:16: warning: comparison between 'enum zone_type' and 'enum <anonymous>' [-Wenum-compare]
for (i = 0; i < MAX_ZONELISTS; i++) {
^

enum zone_type is named like ZONE_* which is different from ZONELIST_*, so
we are somehow doing incorrect comparison. Just fixes it.

Signed-off-by: Naoya Horiguchi <[email protected]>
---
v1 -> v2:
- remove 'j'
---
mm/page_alloc.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index e267faad4649..54fcd0a60d5e 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -4174,8 +4174,7 @@ static void set_zonelist_order(void)

static void build_zonelists(pg_data_t *pgdat)
{
- int j, node, load;
- enum zone_type i;
+ int i, node, load;
nodemask_t used_mask;
int local_node, prev_node;
struct zonelist *zonelist;
@@ -4195,7 +4194,7 @@ static void build_zonelists(pg_data_t *pgdat)
nodes_clear(used_mask);

memset(node_order, 0, sizeof(node_order));
- j = 0;
+ i = 0;

while ((node = find_next_best_node(local_node, &used_mask)) >= 0) {
/*
@@ -4212,12 +4211,12 @@ static void build_zonelists(pg_data_t *pgdat)
if (order == ZONELIST_ORDER_NODE)
build_zonelists_in_node_order(pgdat, node);
else
- node_order[j++] = node; /* remember order */
+ node_order[i++] = node; /* remember order */
}

if (order == ZONELIST_ORDER_ZONE) {
/* calculate node order -- i.e., DMA last! */
- build_zonelists_in_zone_order(pgdat, j);
+ build_zonelists_in_zone_order(pgdat, i);
}

build_thisnode_zonelists(pgdat);
--
2.4.3

2015-12-01 23:36:01

by David Rientjes

[permalink] [raw]
Subject: Re: [PATCH v2] mm: fix warning in comparing enumerator

On Wed, 2 Dec 2015, Naoya Horiguchi wrote:

> From: Naoya Horiguchi <[email protected]>
> Subject: [PATCH v2] mm: fix warning in comparing enumerator
>
> I saw the following warning when building mmotm-2015-11-25-17-08.
>
> mm/page_alloc.c:4185:16: warning: comparison between 'enum zone_type' and 'enum <anonymous>' [-Wenum-compare]
> for (i = 0; i < MAX_ZONELISTS; i++) {
> ^
>
> enum zone_type is named like ZONE_* which is different from ZONELIST_*, so
> we are somehow doing incorrect comparison. Just fixes it.
>
> Signed-off-by: Naoya Horiguchi <[email protected]>

Acked-by: David Rientjes <[email protected]>

2015-12-02 09:16:52

by baiyaowei

[permalink] [raw]
Subject: Re: [PATCH v2] mm: fix warning in comparing enumerator

On Wed, Dec 02, 2015 at 08:07:42AM +0900, Naoya Horiguchi wrote:
> On Tue, Dec 01, 2015 at 02:25:50PM -0800, David Rientjes wrote:
> > On Tue, 1 Dec 2015, Naoya Horiguchi wrote:
>
> I saw the following warning when building mmotm-2015-11-25-17-08.
>
> mm/page_alloc.c:4185:16: warning: comparison between 'enum zone_type' and 'enum <anonymous>' [-Wenum-compare]
> for (i = 0; i < MAX_ZONELISTS; i++) {
> ^
>
> enum zone_type is named like ZONE_* which is different from ZONELIST_*, so
> we are somehow doing incorrect comparison. Just fixes it.
>
> Signed-off-by: Naoya Horiguchi <[email protected]>

Acked-by: Yaowei Bai <[email protected]>