]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mailbox: pcc: Use acpi_os_ioremap() instead of ioremap()
authorSudeep Holla <sudeep.holla@arm.com>
Thu, 13 Mar 2025 15:28:51 +0000 (15:28 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 May 2025 09:12:25 +0000 (11:12 +0200)
[ Upstream commit d181acea5b864e91f38f5771b8961215ce5017ae ]

The Platform Communication Channel (PCC) mailbox driver currently uses
ioremap() to map channel shared memory regions. However it is preferred
to use acpi_os_ioremap(), which is mapping function specific to EFI/ACPI
defined memory regions. It ensures that the correct memory attributes
are applied when mapping ACPI-provided regions.

While at it, also add checks for handling any errors with the mapping.

Acked-by: Huisong Li <lihuisong@huawei.com>
Tested-by: Huisong Li <lihuisong@huawei.com>
Tested-by: Adam Young <admiyo@os.amperecomputing.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Jassi Brar <jassisinghbrar@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/mailbox/pcc.c

index f8215a8f656a460b38806d4c002470c3fe1e3c9c..49254d99a8ad68463e44a9fdad70f3706844d84b 100644 (file)
@@ -419,8 +419,12 @@ int pcc_mbox_ioremap(struct mbox_chan *chan)
                return -1;
        pchan_info = chan->con_priv;
        pcc_mbox_chan = &pchan_info->chan;
-       pcc_mbox_chan->shmem = ioremap(pcc_mbox_chan->shmem_base_addr,
-                                      pcc_mbox_chan->shmem_size);
+
+       pcc_mbox_chan->shmem = acpi_os_ioremap(pcc_mbox_chan->shmem_base_addr,
+                                              pcc_mbox_chan->shmem_size);
+       if (!pcc_mbox_chan->shmem)
+               return -ENXIO;
+
        return 0;
 }
 EXPORT_SYMBOL_GPL(pcc_mbox_ioremap);