(I should say, I'm still reading through this, and haven't formed an
overall opinion. Just nitpicking on the details as I see them for now)

> +#endif
> +
>  
>  #include <asm-generic/mmu_context.h>

extra newline

>  /* tlb.c */
> +#ifdef CONFIG_MMU
>  extern void report_enomem(void);
> +#else
> +static inline void report_enomem(void)
> +{
> +}
> +#endif

Should that really do _nothing_? Perhaps it's not called at all in no-
MMU, but then you don't need it, but otherwise it seems it should do
something even if it's just panic()?


>       brk_end = (unsigned long) UML_ROUND_UP(sbrk(0));
> +#ifdef CONFIG_MMU
>       map_memory(brk_end, __pa(brk_end), uml_reserved - brk_end, 1, 1, 0);
> +#else
> +     map_memory(brk_end, __pa(brk_end), uml_reserved - brk_end, 1, 1, 1);
> +#endif

That seems much simpler as

        map_memory(.....,
                   !IS_ENABLED(CONFIG_MMU));


> +#ifdef UML_CONFIG_MMU
>       loc = mmap64((void *) virt, len, prot, MAP_SHARED | MAP_FIXED,
>                    fd, off);
> +#else
> +     loc = mmap64((void *) virt, len, prot, MAP_SHARED | MAP_FIXED | 
> MAP_ANONYMOUS,
> +                  fd, off);
> +#endif

Same here,

        mmap64(....
               MAP_SHARED | MAP_FIXED |
                IS_ENABLED(CONFIG_MMU) ? MAP_ANONYMOUS : 0,
               ...);

johannes

Reply via email to