? 2013?02?26? 16:38, Joe Perches ??: > On Tue, 2013-02-26 at 13:30 +0800, Zhang Yanfei wrote: >> This is just a tweak: using min_t to simplify logic of variable >> assignments. >> >> v3: >> - cast type of (PAGE_SIZE - (maddr & ~PAGE_MASK)) into size_t. > > Why? Isn't this just a redundant cast? > >> 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? Thanks Zhang