Re: [PATCH v4 01/14] ARM: Add page table and page defines needed by KVM

Christoffer Dall
2012-11-30T15:54:55Z

On Fri, Nov 30, 2012 at 6:46 AM, Will Deacon <will.deacon@arm.com> wrote:
> On Thu, Nov 29, 2012 at 03:57:00PM +0000, Christoffer Dall wrote:
>> On Mon, Nov 19, 2012 at 9:14 AM, Will Deacon <will.deacon@arm.com> wrote:
>> > On Sat, Nov 10, 2012 at 03:42:17PM +0000, Christoffer Dall wrote:
>> >>
>> >> +#ifdef CONFIG_ARM_LPAE
>> >> +#define s2_policy(policy) policy
>> >> +#else
>> >> +#define s2_policy(policy) 0
>> >> +#endif
>> >
>> > Put the macro in pgtable-{2,3}level.h?
>> >
>>
>> I think that's weird, defining something far away from where it's used
>> will only make it harder to read, pgtable.h is not included in this
>> file, and there are other #ifdef CONFIG_ARM_LPAE in that file.
>
>
> Of course pgtable.h is included in this file -- we have direct references to
> L_PTE_MT_UNCACHED, for example, so by your logic we should inline all of
> that too!

no, not at all!

>
> Yes, there are other CONFIG_ARM_LPAE checks in this file, but only where
> there's a piece of code that is not applicable one way or the other. For
> data definitions, it's really easy to fix in the headers so please do it
> there instead.
>
I don't see that macro as a data definition, it's a way to avoid
compile error when those defines are not there, and I don't see where
that would ever be used outside this file, so moving it just makes you
go hunting for the definition elsewhere.

Perhaps there's an idea behind these files stating that it's
universally better to have things in a header file, but I don't quite
see why?

(I can definitely move it, and I don't want to fight over it, I'm
merely trying to understand why it would make the code cleaner/better
to maintain/etc.)

-Christoffer