lkml.org 
[lkml]   [2018]   [Jul]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/3] m68k/page_no.h: force __va argument to be unsigned long
On Tue, Jul 03, 2018 at 05:14:01PM +0200, Michal Hocko wrote:
> On Tue 03-07-18 08:05:35, Matthew Wilcox wrote:
> > On Tue, Jul 03, 2018 at 06:03:16PM +0300, Mike Rapoport wrote:
> > > On Tue, Jul 03, 2018 at 04:20:54PM +0200, Michal Hocko wrote:
> > > > On Tue 03-07-18 13:29:54, Mike Rapoport wrote:
> > > > > Add explicit casting to unsigned long to the __va() parameter
> > > >
> > > > Why is this needed?
> > >
> > > To make it consitent with other architecures and asm-generic :)
> > >
> > > But more importantly, __memblock_free_late() passes u64 to page_to_pfn().
> >
> > Why does memblock work in terms of u64 instead of phys_addr_t?
>
> Yes, phys_addr_t was exactly that came to my mind as well. Casting
> physical address to unsigned long just screams for potential problems.

Not sure if for m68k-nommu the physical address can really go beyond 32
bits, but in general this is something that should be taken care of.

I think adding the cast in m68k-nommu case is a viable band aid to allow
sorting out the bootmem vs nobootmem.

In any case care should be taken of all those

#define __va(x) ((void *)((unsigned long)(x)))

all around.

Regardless, I can s/u64/phys_addr_t/ in memblock.c.

> --
> Michal Hocko
> SUSE Labs
>

--
Sincerely yours,
Mike.

\
 
 \ /
  Last update: 2018-07-03 17:49    [W:0.085 / U:0.408 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site