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
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.
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
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]>
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]>