Fix iomem pointer usage with rproc_mem_entry_init
The carveout memory is being mapped with one of the ioremap functions
that returns a iomem pointer and should normally only be passed to
functions that request iomem pointers because they shouldn't be
dereferenced.
Currently, the iomem pointer is passed to rproc_mem_entry_init that is
expecting a normal pointer and Sparse is generating a warnings about
this. However, rproc_mem_entry_init won't dereference the pointer and
can handle any pointer type so the iomem attribute is cast away when
setting up the mem entry and the io_mem flag is set to indicate a iomem
pointer.
To ensure that the mapping is correctly managed, the mapping and
unmapping is now handled with the callback functions for
rproc_mem_entry_init instead of holding onto the mapping forever.
Change-Id: I511a9a16f110a23490141dd3db943244e0f978e2
Signed-off-by:
Mikael Olsson <mikael.olsson@arm.com>
Loading
Please register or sign in to comment