[PATCH] sandbox: Correctly define BITS_PER_LONG

Michal Suchánek msuchanek at suse.de
Sun Oct 23 13:30:45 CEST 2022


On Sun, Oct 23, 2022 at 09:56:29AM +0200, Heinrich Schuchardt wrote:
> On 10/23/22 09:50, Michal Suchánek wrote:
> > On Sat, Oct 22, 2022 at 11:52:29PM +0200, Heinrich Schuchardt wrote:
> > > 
> > > 
> > > Am 22. Oktober 2022 23:22:01 MESZ schrieb Michal Suchanek <msuchanek at suse.de>:
> > > > SANDBOX_BITS_PER_LONG is the number of bits in long on the sandbox
> > > > platform.
> > > 
> > > Please, explain in the commit message what this patch is good for.
> > 
> > For setting BITS_PER_LONG correctly.
> > 
> > > Aren't further patches needed to make use of it?
> > 
> > 'make ue of it' would likely by running 32bit sandbox with 64bit
> > phys_addr_t, and that indeed won't be fixed by this patch alone.
> > 
> > Nonetheless, since nobody noticed that this is broken so far I figured I
> > will send the patch anyway.
> > 
> > Thanks
> > 
> > Michal
> > 
> > > Best regards
> > > 
> > > Heinrich
> > > 
> > > > 
> > > > Signed-off-by: Michal Suchanek <msuchanek at suse.de>
> > > > ---
> > > > 
> > > > arch/sandbox/include/asm/types.h | 6 +-----
> > > > 1 file changed, 1 insertion(+), 5 deletions(-)
> > > > 
> > > > diff --git a/arch/sandbox/include/asm/types.h b/arch/sandbox/include/asm/types.h
> > > > index c1a5d2af82..5f4b649ee3 100644
> > > > --- a/arch/sandbox/include/asm/types.h
> > > > +++ b/arch/sandbox/include/asm/types.h
> > > > @@ -18,11 +18,7 @@ typedef unsigned short umode_t;
> > > > /*
> > > >   * Number of bits in a C 'long' on this architecture.
> > > >   */
> > > > -#ifdef	CONFIG_PHYS_64BIT
> > > > -#define BITS_PER_LONG 64
> CONFIG_PHYS_64BIT defines the length of phys_addr_t.
> 
> BITS_PER_LONG is about the length of long.
Sure
> 
> The length of long is defined by the compiler.
Sure
> phys_addr_t exists for
> having a type that is independent of the length of long.
sure
> 
> This patch is obviously wrong.

That's completely contradictory to what you say above.

According to that the patch is obviously right because it changes the
definition of BITS_PER_LONG from depending on phys_addr_t to depending
on the  length of long is defined by the compiler.

Thanks

Michal

> 
> Best regards
> 
> Heinrich
> 
> > > > -#else	/* CONFIG_PHYS_64BIT */
> > > > -#define BITS_PER_LONG 32
> > > > -#endif	/* CONFIG_PHYS_64BIT */
> > > > +#define BITS_PER_LONG CONFIG_SANDBOX_BITS_PER_LONG
> > > > 
> > > > #ifdef	CONFIG_PHYS_64BIT
> > > > typedef unsigned long long dma_addr_t;
> 


More information about the U-Boot mailing list