Re: [PATCH 04/36] x86/pci: add cap_resource

Yinghai Lu
2010-01-21T20:02:43Z

On 01/21/2010 07:49 AM, Linus Torvalds wrote:
>
>
> On Wed, 20 Jan 2010, Yinghai Lu wrote:
>>
>> -v2: hpa said we should compare with (resource_size_t)~0
>
> Hmm. Some of these look dubious.
>
>> diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c
>> index f939d60..b267919 100644
>> --- a/arch/x86/pci/bus_numa.c
>> +++ b/arch/x86/pci/bus_numa.c
>> @@ -60,6 +60,9 @@ void __devinit update_res(struct pci_root_info *info, size_t start,
>> if (start > end)
>> return;
>>
>> + if (start == (resource_size_t)~0)
>> + return;
>
> Here, 'start' isn't a resource_size_t. It's a regular size_t. And if
> resource_size_t is u64, and size_t is u32, this test can never be true.
>
> Maybe that is intentional, but if looks odd/wrong. Needs a comment if
> right, needs fixing if wrong.

you are right, there are two patches about that already went into pci/linux-next

will ask Jesse to drop them from pci tree.

so could make them go via tip/x86

http://git.kernel.org/?p=linux/kernel/git/jbarnes/pci-2.6.git;a=commitdiff;h=f84fe8aef6e4b23ab58175a15dd12c197c993f81
http://git.kernel.org/?p=linux/kernel/git/jbarnes/pci-2.6.git;a=commitdiff;h=693f084f82a38fc1b01e3b05664a6fe014a3488a

or later may have merge problem.

>
>> +static inline resource_size_t cap_resource(u64 val)
>> +{
>> + if (val > (resource_size_t)~0)
>> + return (resource_size_t)~0;
>> + else
>> + return val;
>> +}
>> #endif
>
> And this just looks odd. I'd suggest just doing
>
> #define MAX_RESOURCE ((resource_size_t)~0)
>
> static inline resource_size_t cap_resource(u64 val)
> {
> if (val > MAX_RESOURCE)
> val = MAX_RESOURCE;
> return val;
> }
>
> instead, which looks a whole lot more natural. No?

OK

Yinghai