On 02/21/2012 07:01 AM, Toshikazu Nakayama wrote:
(2012/02/20 20:06), Suzuki K. Poulose wrote:
[...]
> + * Find the platform of the crashing system and set the
> + * base_platform accordingly.
> + */
> +void
> +ppc_probe_base_platform(void)
> +{
> + probe_func_t probe;
> + char platform_name[MAX_PLATFORM_LEN];
> + ulong ptr;
> + int i;
> +
> + if(!try_get_symbol_data("powerpc_base_platform", sizeof(ulong),&ptr)
||
> + read_string(ptr, platform_name, MAX_PLATFORM_LEN - 1) == 0)
> + /* Let us fallback to default definitions */
> + platform_name[0] = '\0';
Could you give some fallback message at PLATFORM: via 'mach' command
like "undetectable" or any good phrase?
Yep, makes sense. I will make it '(unknown)'.
>
> *paddr = PAGEBASE(pte) + PAGEOFFSET(vaddr);
> @@ -623,7 +709,7 @@ ppc_get_task_pgd(ulong task)
> * If a physaddr pointer is passed in, don't print anything.
> */
> static int
> -ppc_translate_pte(ulong pte, void *physaddr, ulonglong unused)
> +ppc_translate_pte(ulong unused, void *physaddr, ulonglong pte)
This change may gives impacts for existing machdep->translate_pte() users
whose external modules are possible to call with legacy prototype
machdep->translate_pte(pte, physaddr, unused) for 32bit pte.
A "unused" should be used for extended 64bit pte support in addition to
first 32bit pte support.
I think it is better for everyone to mark machdep->flags with PAE at PATCH3/4.
Maybe PAE is named for x86 but there are no differences in terms of flag
handling.
Then declare ppc_translate_pte(ulong pte32, void *physaddr, ulonglong pte64)
so that ppc_pgd_vtop() can call with ppc_translate_pte((ulong)pte, NULL, pte)
and external users can also select similar way.
Makes sense. I will respin this with the changes. Thank you very much for the
suggestions.
Suzuki