Re: [PATCH 1/2] media: ipu6: fix the wrong type cast and 64-bit division

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Oct 09, 2024 at 01:06:32PM +0800, Bingbu Cao wrote:
> On 10/8/24 11:23 PM, Andy Shevchenko wrote:
> > On Tue, Oct 08, 2024 at 02:19:15PM +0800, bingbu.cao@xxxxxxxxx wrote:
> >> From: Bingbu Cao <bingbu.cao@xxxxxxxxx>

...

> >>  /* Shared structure between driver and FW - do not modify */
> >>  struct ipu6_fw_sys_queue {
> >> -	u64 host_address;
> >> +	uintptr_t host_address;
> > 
> > Okay, in the given semantic this probably should be phys_addr_t.
> > BUT, is this address somehow is going to be used by IPU6 hardware?
> > If "yes", the type shall not be changed.
> > 
> > Looking at types used I hope the answer is "no", otherwise the types
> > in the structures should be  properly choose WRT endianess (and what
> > __packed is doing here? Is it part of the protocol?).
> 
> You are correct, the type here should not be changed.

Okay, so perhaps for now we can amend the code to work around 32-bit
compilation issues while leaving the type the same. Ideally this struct should
be modified to follow endianess (all those types with __le prefixes), but
that is another story.

> >>  	u32 vied_address;
> >>  	u32 size;
> >>  	u32 token_size;

> >>  } __packed;

...

> > Side Q: What are the alignment requirements for the prog pointer?
> 
> It should be 64 bytes alignment.

Okay, so in this case it's good to cast like this. Perhaps a comment should be
added at some point, because it sounds like I already asked the very same
question a while ago.

-- 
With Best Regards,
Andy Shevchenko






[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux