mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
firmware: arm_scmi: Fix sparse warnings in OPTEE transport driver
The sparse checker complains about converting pointers between address spaces. We correctly stored an __iomem pointer in struct scmi_optee_channel, but discarded the __iomem when returning it from get_channel_shm, causing one warning. Then we passed the non-__iomem pointer return from get_channel_shm at two other places, where an __iomem pointer is expected, causing couple of other warnings Add the appropriate __iomem annotations at all places where it is missing. optee.c:414:20: warning: incorrect type in return expression (different address spaces) optee.c:414:20: expected struct scmi_shared_mem * optee.c:414:20: got struct scmi_shared_mem [noderef] __iomem *shmem optee.c:426:26: warning: incorrect type in argument 1 (different address spaces) optee.c:426:26: expected struct scmi_shared_mem [noderef] __iomem *shmem optee.c:426:26: got struct scmi_shared_mem *shmem optee.c:441:30: warning: incorrect type in argument 1 (different address spaces) optee.c:441:30: expected struct scmi_shared_mem [noderef] __iomem *shmem optee.c:441:30: got struct scmi_shared_mem *shmem Link: https://lore.kernel.org/r/20220404102419.1159705-1-sudeep.holla@arm.com Cc: Etienne Carriere <etienne.carriere@linaro.org> Cc: Cristian Marussi <cristian.marussi@arm.com> Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
This commit is contained in:
parent
f1ad601d1f
commit
bf36619a54
@ -405,8 +405,8 @@ static int scmi_optee_chan_free(int id, void *p, void *data)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct scmi_shared_mem *get_channel_shm(struct scmi_optee_channel *chan,
|
static struct scmi_shared_mem __iomem *
|
||||||
struct scmi_xfer *xfer)
|
get_channel_shm(struct scmi_optee_channel *chan, struct scmi_xfer *xfer)
|
||||||
{
|
{
|
||||||
if (!chan)
|
if (!chan)
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -419,7 +419,7 @@ static int scmi_optee_send_message(struct scmi_chan_info *cinfo,
|
|||||||
struct scmi_xfer *xfer)
|
struct scmi_xfer *xfer)
|
||||||
{
|
{
|
||||||
struct scmi_optee_channel *channel = cinfo->transport_info;
|
struct scmi_optee_channel *channel = cinfo->transport_info;
|
||||||
struct scmi_shared_mem *shmem = get_channel_shm(channel, xfer);
|
struct scmi_shared_mem __iomem *shmem = get_channel_shm(channel, xfer);
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
mutex_lock(&channel->mu);
|
mutex_lock(&channel->mu);
|
||||||
@ -436,7 +436,7 @@ static void scmi_optee_fetch_response(struct scmi_chan_info *cinfo,
|
|||||||
struct scmi_xfer *xfer)
|
struct scmi_xfer *xfer)
|
||||||
{
|
{
|
||||||
struct scmi_optee_channel *channel = cinfo->transport_info;
|
struct scmi_optee_channel *channel = cinfo->transport_info;
|
||||||
struct scmi_shared_mem *shmem = get_channel_shm(channel, xfer);
|
struct scmi_shared_mem __iomem *shmem = get_channel_shm(channel, xfer);
|
||||||
|
|
||||||
shmem_fetch_response(shmem, xfer);
|
shmem_fetch_response(shmem, xfer);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user