Re: linux-next: build warnings after merge of the writeback tree

From: Wu Fengguang
Date: Tue Oct 11 2011 - 05:17:30 EST


Hi Stephen,

On Tue, Oct 11, 2011 at 04:57:04PM +0800, Stephen Rothwell wrote:
> Hi Wu,
>
> After merging the writeback tree, today's linux-next build (powerpc
> allnoconfig) produced these warnings:
>
> mm/page-writeback.c: In function 'bdi_position_ratio':
> mm/page-writeback.c:622:3: warning: comparison of distinct pointer types lacks a cast [enabled by default]
> page-writeback.c:635:4: warning: comparison of distinct pointer types lacks a cast [enabled by default]
>
> Introduced by commits 6c14ae1e92c7 ("writeback: dirty position control")
> and 8927f66c4ede ("writeback: dirty position control - bdi reserve area").

Ah sorry! The below patch should fix it. Shall I update the original
commits in place, or append this patch as a new commit?

Thanks,
Fengguang
---

Subject: writeback: fix ppc compile warnings on do_div(long long, unsigned long)
Date: Tue Oct 11 17:06:33 CST 2011

Fix powerpc compile warnings

mm/page-writeback.c: In function 'bdi_position_ratio':
mm/page-writeback.c:622:3: warning: comparison of distinct pointer types lacks a cast [enabled by default]
page-writeback.c:635:4: warning: comparison of distinct pointer types lacks a cast [enabled by default]

Signed-off-by: Wu Fengguang <fengguang.wu@xxxxxxxxx>
---
mm/page-writeback.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)

--- linux-next.orig/mm/page-writeback.c 2011-10-11 17:04:00.000000000 +0800
+++ linux-next/mm/page-writeback.c 2011-10-11 17:06:31.000000000 +0800
@@ -618,8 +618,8 @@ static unsigned long bdi_position_ratio(
x_intercept = bdi_setpoint + span;

if (bdi_dirty < x_intercept - span / 4) {
- pos_ratio *= x_intercept - bdi_dirty;
- do_div(pos_ratio, x_intercept - bdi_setpoint + 1);
+ pos_ratio = div_u64(pos_ratio * (x_intercept - bdi_dirty),
+ x_intercept - bdi_setpoint + 1);
} else
pos_ratio /= 4;

@@ -630,10 +630,9 @@ static unsigned long bdi_position_ratio(
*/
x_intercept = bdi_thresh / 2;
if (bdi_dirty < x_intercept) {
- if (bdi_dirty > x_intercept / 8) {
- pos_ratio *= x_intercept;
- do_div(pos_ratio, bdi_dirty);
- } else
+ if (bdi_dirty > x_intercept / 8)
+ pos_ratio = div_u64(pos_ratio * x_intercept, bdi_dirty);
+ else
pos_ratio *= 8;
}

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/