[PATCH v3 2/2] kexec: Use min_t to simplify logic

Zhang Yanfei zhangyanfei at cn.fujitsu.com
Tue Feb 26 03:49:02 EST 2013


于 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



More information about the kexec mailing list