On Tue, 26 Feb 2013 16:49:02 +0800 Zhang Yanfei <zhangyanfei at cn.fujitsu.com> wrote: > >> diff --git a/kernel/kexec.c b/kernel/kexec.c > > [] > >> @@ -822,13 +822,9 @@ static int kimage_load_normal_segment(struct kimage *image, > > [] > >> + mchunk = min_t(size_t, mbytes, > >> + (size_t)(PAGE_SIZE - (maddr & ~PAGE_MASK))); > > > > #define min_t(type, x, y) ({ \ > > type __min1 = (x); \ > > type __min2 = (y); \ > > __min1 < __min2 ? __min1: __min2; }) > > > > > > > > Hmm, from the definition, the cast is redundant. > > Maybe I misunderstood what Andrew meant in the mail related to v2: > > "The types of PAGE_SIZE and PAGE_MASK are vague - iirc they once had > different types on different architectures, so some form of casting is > unavoidable here." > > Andrew, could you please explain the casting you meant above? I mean that a cast (or min_t, which is a cast) will be needed. The code you have here casts the same thing two times, which isn't necessary.