On Fri, Jan 11 2013, Minchan Kim wrote: > The C standards allows the character type char to be singed or unsinged, > depending on the platform and compiler. Most of systems uses signed char, > but those based on PowerPC and ARM processors typically use unsigned char. > This can lead to unexpected results when the variable is used to compare > with EOF(-1). It happens my ARM system and this patch fixes it. > > Cc: Mel Gorman > Cc: Andy Whitcroft > Cc: Alexander Nyberg > Cc: Michal Nazarewicz Acked-by: Michal Nazarewicz > Cc: Randy Dunlap > Signed-off-by: Minchan Kim > --- > Documentation/page_owner.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/Documentation/page_owner.c b/Documentation/page_owner.c > index f0156e1..43dde96 100644 > --- a/Documentation/page_owner.c > +++ b/Documentation/page_owner.c > @@ -32,12 +32,13 @@ int read_block(char *buf, FILE *fin) > { > int ret = 0; > int hit = 0; > + int val; > char *curr = buf; > > for (;;) { > - *curr = getc(fin); > - if (*curr == EOF) return -1; > - > + val = getc(fin); > + if (val == EOF) return -1; > + *curr = val; > ret++; > if (*curr == '\n' && hit == 1) > return ret - 1; -- Best regards, _ _ .o. | Liege of Serenely Enlightened Majesty of o' \,=./ `o ..o | Computer Science, Michał “mina86” Nazarewicz (o o) ooo +------------------ooO--(_)--Ooo--