Skip to content

Commit bf36619

Browse files
committed
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>
1 parent f1ad601 commit bf36619

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

drivers/firmware/arm_scmi/optee.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -405,8 +405,8 @@ static int scmi_optee_chan_free(int id, void *p, void *data)
405405
return 0;
406406
}
407407

408-
static struct scmi_shared_mem *get_channel_shm(struct scmi_optee_channel *chan,
409-
struct scmi_xfer *xfer)
408+
static struct scmi_shared_mem __iomem *
409+
get_channel_shm(struct scmi_optee_channel *chan, struct scmi_xfer *xfer)
410410
{
411411
if (!chan)
412412
return NULL;
@@ -419,7 +419,7 @@ static int scmi_optee_send_message(struct scmi_chan_info *cinfo,
419419
struct scmi_xfer *xfer)
420420
{
421421
struct scmi_optee_channel *channel = cinfo->transport_info;
422-
struct scmi_shared_mem *shmem = get_channel_shm(channel, xfer);
422+
struct scmi_shared_mem __iomem *shmem = get_channel_shm(channel, xfer);
423423
int ret;
424424

425425
mutex_lock(&channel->mu);
@@ -436,7 +436,7 @@ static void scmi_optee_fetch_response(struct scmi_chan_info *cinfo,
436436
struct scmi_xfer *xfer)
437437
{
438438
struct scmi_optee_channel *channel = cinfo->transport_info;
439-
struct scmi_shared_mem *shmem = get_channel_shm(channel, xfer);
439+
struct scmi_shared_mem __iomem *shmem = get_channel_shm(channel, xfer);
440440

441441
shmem_fetch_response(shmem, xfer);
442442
}

0 commit comments

Comments
 (0)