Commit bf36619a authored by Sudeep Holla's avatar Sudeep Holla

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: default avatarkernel test robot <lkp@intel.com>
Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
parent f1ad601d
...@@ -405,8 +405,8 @@ static int scmi_optee_chan_free(int id, void *p, void *data) ...@@ -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, ...@@ -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, ...@@ -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);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment