A random assortment of OPAL callers use __pa() on pointers (others don't).

This is not required because __pa() behaves the same as __va() when
translation is off. In order to run OPAL with translation on, the
effective addresses have to be used.

Signed-off-by: Nicholas Piggin <npig...@gmail.com>
---
 arch/powerpc/perf/imc-pmu.c                    |  4 ++--
 arch/powerpc/platforms/powernv/npu-dma.c       |  2 +-
 arch/powerpc/platforms/powernv/opal-dump.c     |  2 +-
 arch/powerpc/platforms/powernv/opal-elog.c     |  4 ++--
 arch/powerpc/platforms/powernv/opal-flash.c    |  6 +++---
 arch/powerpc/platforms/powernv/opal-hmi.c      |  2 +-
 arch/powerpc/platforms/powernv/opal-nvram.c    |  4 ++--
 arch/powerpc/platforms/powernv/opal-powercap.c |  2 +-
 arch/powerpc/platforms/powernv/opal-psr.c      |  2 +-
 arch/powerpc/platforms/powernv/opal-xscom.c    |  2 +-
 arch/powerpc/platforms/powernv/opal.c          |  6 +++---
 arch/powerpc/platforms/powernv/pci-ioda.c      |  2 +-
 arch/powerpc/sysdev/xive/native.c              |  2 +-
 drivers/char/powernv-op-panel.c                |  3 +--
 drivers/i2c/busses/i2c-opal.c                  | 12 ++++++------
 drivers/mtd/devices/powernv_flash.c            |  4 ++--
 16 files changed, 29 insertions(+), 30 deletions(-)

diff --git a/arch/powerpc/perf/imc-pmu.c b/arch/powerpc/perf/imc-pmu.c
index eb82dda884e5..332c7a3398f3 100644
--- a/arch/powerpc/perf/imc-pmu.c
+++ b/arch/powerpc/perf/imc-pmu.c
@@ -610,7 +610,7 @@ static int core_imc_mem_init(int cpu, int size)
        mutex_init(&core_imc_refc[core_id].lock);
 
        rc = opal_imc_counters_init(OPAL_IMC_COUNTERS_CORE,
-                               __pa((void *)mem_info->vbase),
+                               (u64)mem_info->vbase,
                                get_hard_smp_processor_id(cpu));
        if (rc) {
                free_pages((u64)mem_info->vbase, get_order(size));
@@ -1209,7 +1209,7 @@ static int trace_imc_mem_alloc(int cpu_id, int size)
                per_cpu(trace_imc_mem, cpu_id) = local_mem;
 
                /* Initialise the counters for trace mode */
-               rc = opal_imc_counters_init(OPAL_IMC_COUNTERS_TRACE, __pa((void 
*)local_mem),
+               rc = opal_imc_counters_init(OPAL_IMC_COUNTERS_TRACE, 
(u64)local_mem,
                                            get_hard_smp_processor_id(cpu_id));
                if (rc) {
                        pr_info("IMC:opal init failed for trace imc\n");
diff --git a/arch/powerpc/platforms/powernv/npu-dma.c 
b/arch/powerpc/platforms/powernv/npu-dma.c
index b95b9e3c4c98..9d38a30cc27e 100644
--- a/arch/powerpc/platforms/powernv/npu-dma.c
+++ b/arch/powerpc/platforms/powernv/npu-dma.c
@@ -149,7 +149,7 @@ static long pnv_npu_set_window(struct iommu_table_group 
*table_group, int num,
                        npe->pe_number,
                        npe->pe_number,
                        tbl->it_indirect_levels + 1,
-                       __pa(tbl->it_base),
+                       __pa(tbl->it_base), /* XXX? */
                        size << 3,
                        IOMMU_PAGE_SIZE(tbl));
        if (rc) {
diff --git a/arch/powerpc/platforms/powernv/opal-dump.c 
b/arch/powerpc/platforms/powernv/opal-dump.c
index 543c816fa99e..94d5fb716a32 100644
--- a/arch/powerpc/platforms/powernv/opal-dump.c
+++ b/arch/powerpc/platforms/powernv/opal-dump.c
@@ -256,7 +256,7 @@ static int64_t dump_read_data(struct dump_obj *dump)
        }
 
        /* First entry address */
-       addr = __pa(list);
+       addr = (u64)list;
 
        /* Fetch data */
        rc = OPAL_BUSY_EVENT;
diff --git a/arch/powerpc/platforms/powernv/opal-elog.c 
b/arch/powerpc/platforms/powernv/opal-elog.c
index 62ef7ad995da..6af5ff892195 100644
--- a/arch/powerpc/platforms/powernv/opal-elog.c
+++ b/arch/powerpc/platforms/powernv/opal-elog.c
@@ -163,7 +163,7 @@ static ssize_t raw_attr_read(struct file *filep, struct 
kobject *kobj,
                if (!elog->buffer)
                        return -EIO;
 
-               opal_rc = opal_read_elog(__pa(elog->buffer),
+               opal_rc = opal_read_elog((u64)elog->buffer,
                                         elog->size, elog->id);
                if (opal_rc != OPAL_SUCCESS) {
                        pr_err("ELOG: log read failed for log-id=%llx\n",
@@ -206,7 +206,7 @@ static struct elog_obj *create_elog_obj(uint64_t id, size_t 
size, uint64_t type)
        elog->buffer = kzalloc(elog->size, GFP_KERNEL);
 
        if (elog->buffer) {
-               rc = opal_read_elog(__pa(elog->buffer),
+               rc = opal_read_elog((u64)elog->buffer,
                                         elog->size, elog->id);
                if (rc != OPAL_SUCCESS) {
                        pr_err("ELOG: log read failed for log-id=%llx\n",
diff --git a/arch/powerpc/platforms/powernv/opal-flash.c 
b/arch/powerpc/platforms/powernv/opal-flash.c
index 7e7d38b17420..46f02279d36a 100644
--- a/arch/powerpc/platforms/powernv/opal-flash.c
+++ b/arch/powerpc/platforms/powernv/opal-flash.c
@@ -130,11 +130,11 @@ static DEFINE_MUTEX(image_data_mutex);
 static inline void opal_flash_validate(void)
 {
        long ret;
-       void *buf = validate_flash_data.buf;
+       u64 buf = (u64)validate_flash_data.buf;
        __be32 size = cpu_to_be32(validate_flash_data.buf_size);
        __be32 result;
 
-       ret = opal_validate_flash(__pa(buf), &size, &result);
+       ret = opal_validate_flash(buf, &size, &result);
 
        validate_flash_data.status = ret;
        validate_flash_data.buf_size = be32_to_cpu(size);
@@ -290,7 +290,7 @@ static int opal_flash_update(int op)
                goto invalid_img;
 
        /* First entry address */
-       addr = __pa(list);
+       addr = (u64)list;
 
 flash:
        rc = opal_update_flash(addr);
diff --git a/arch/powerpc/platforms/powernv/opal-hmi.c 
b/arch/powerpc/platforms/powernv/opal-hmi.c
index 3e1f064a18db..7c51baeb62ff 100644
--- a/arch/powerpc/platforms/powernv/opal-hmi.c
+++ b/arch/powerpc/platforms/powernv/opal-hmi.c
@@ -298,7 +298,7 @@ static void hmi_event_handler(struct work_struct *work)
 
        if (unrecoverable) {
                /* Pull all HMI events from OPAL before we panic. */
-               while (opal_get_msg(__pa(&msg), sizeof(msg)) == OPAL_SUCCESS) {
+               while (opal_get_msg((u64)&msg, sizeof(msg)) == OPAL_SUCCESS) {
                        u32 type;
 
                        type = be32_to_cpu(msg.msg_type);
diff --git a/arch/powerpc/platforms/powernv/opal-nvram.c 
b/arch/powerpc/platforms/powernv/opal-nvram.c
index 380bc2d7ebbf..a7924dffee2b 100644
--- a/arch/powerpc/platforms/powernv/opal-nvram.c
+++ b/arch/powerpc/platforms/powernv/opal-nvram.c
@@ -33,7 +33,7 @@ static ssize_t opal_nvram_read(char *buf, size_t count, 
loff_t *index)
        off = *index;
        if ((off + count) > nvram_size)
                count = nvram_size - off;
-       rc = opal_read_nvram(__pa(buf), count, off);
+       rc = opal_read_nvram((unsigned long)buf, count, off);
        if (rc != OPAL_SUCCESS)
                return -EIO;
        *index += count;
@@ -56,7 +56,7 @@ static ssize_t opal_nvram_write(char *buf, size_t count, 
loff_t *index)
                count = nvram_size - off;
 
        while (rc == OPAL_BUSY || rc == OPAL_BUSY_EVENT) {
-               rc = opal_write_nvram(__pa(buf), count, off);
+               rc = opal_write_nvram((unsigned long)buf, count, off);
                if (rc == OPAL_BUSY_EVENT) {
                        if (in_interrupt() || irqs_disabled())
                                mdelay(OPAL_BUSY_DELAY_MS);
diff --git a/arch/powerpc/platforms/powernv/opal-powercap.c 
b/arch/powerpc/platforms/powernv/opal-powercap.c
index c16d44f6f1d1..a1167ecf9e43 100644
--- a/arch/powerpc/platforms/powernv/opal-powercap.c
+++ b/arch/powerpc/platforms/powernv/opal-powercap.c
@@ -46,7 +46,7 @@ static ssize_t powercap_show(struct kobject *kobj, struct 
kobj_attribute *attr,
        if (ret)
                goto out_token;
 
-       ret = opal_get_powercap(pcap_attr->handle, token, (u32 *)__pa(&pcap));
+       ret = opal_get_powercap(pcap_attr->handle, token, &pcap);
        switch (ret) {
        case OPAL_ASYNC_COMPLETION:
                ret = opal_async_wait_response(token, &msg);
diff --git a/arch/powerpc/platforms/powernv/opal-psr.c 
b/arch/powerpc/platforms/powernv/opal-psr.c
index 69d7e75950d1..a3a68f53b1f8 100644
--- a/arch/powerpc/platforms/powernv/opal-psr.c
+++ b/arch/powerpc/platforms/powernv/opal-psr.c
@@ -40,7 +40,7 @@ static ssize_t psr_show(struct kobject *kobj, struct 
kobj_attribute *attr,
                goto out_token;
 
        ret = opal_get_power_shift_ratio(psr_attr->handle, token,
-                                           (u32 *)__pa(&psr));
+                                           (u32 *)&psr);
        switch (ret) {
        case OPAL_ASYNC_COMPLETION:
                ret = opal_async_wait_response(token, &msg);
diff --git a/arch/powerpc/platforms/powernv/opal-xscom.c 
b/arch/powerpc/platforms/powernv/opal-xscom.c
index fd510d961b8c..aef596997ad4 100644
--- a/arch/powerpc/platforms/powernv/opal-xscom.c
+++ b/arch/powerpc/platforms/powernv/opal-xscom.c
@@ -58,7 +58,7 @@ static int opal_scom_read(uint32_t chip, uint64_t addr, u64 
reg, u64 *value)
        __be64 v;
 
        reg = opal_scom_unmangle(addr + reg);
-       rc = opal_xscom_read(chip, reg, (__be64 *)__pa(&v));
+       rc = opal_xscom_read(chip, reg, &v);
        if (rc) {
                *value = 0xfffffffffffffffful;
                return -EIO;
diff --git a/arch/powerpc/platforms/powernv/opal.c 
b/arch/powerpc/platforms/powernv/opal.c
index e8eba210a92d..a0e9808237b2 100644
--- a/arch/powerpc/platforms/powernv/opal.c
+++ b/arch/powerpc/platforms/powernv/opal.c
@@ -397,7 +397,7 @@ static void opal_handle_message(void)
        s64 ret;
        u32 type;
 
-       ret = opal_get_msg(__pa(opal_msg), opal_msg_size);
+       ret = opal_get_msg((u64)opal_msg, opal_msg_size);
        /* No opal message pending. */
        if (ret == OPAL_RESOURCE)
                return;
@@ -961,7 +961,7 @@ static void __init opal_dump_region_init(void)
                return;
 
        rc = opal_register_dump_region(OPAL_DUMP_REGION_LOG_BUF,
-                                      __pa(addr), size);
+                                      (u64)addr, size);
        /* Don't warn if this is just an older OPAL that doesn't
         * know about that call
         */
@@ -1197,7 +1197,7 @@ struct opal_sg_list *opal_vmalloc_to_sg_list(void 
*vmalloc_addr,
                        sg->length = cpu_to_be64(
                                        i * sizeof(struct opal_sg_entry) + 16);
                        i = 0;
-                       sg->next = cpu_to_be64(__pa(next));
+                       sg->next = cpu_to_be64(next);
                        sg = next;
                }
 
diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c 
b/arch/powerpc/platforms/powernv/pci-ioda.c
index 57d3a6af1d52..dc6caec7cb46 100644
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -1844,7 +1844,7 @@ static int pnv_pci_ioda_dma_64bit_bypass(struct 
pnv_ioda_pe *pe)
                                        /* reconfigure window 0 */
                                        (pe->pe_number << 1) + 0,
                                        1,
-                                       __pa(tces),
+                                       __pa(tces), /* XXX? */
                                        table_size,
                                        1 << tce_order);
        if (rc == OPAL_SUCCESS) {
diff --git a/arch/powerpc/sysdev/xive/native.c 
b/arch/powerpc/sysdev/xive/native.c
index 5218fdc4b29a..a80960829bf0 100644
--- a/arch/powerpc/sysdev/xive/native.c
+++ b/arch/powerpc/sysdev/xive/native.c
@@ -647,7 +647,7 @@ static bool xive_native_provision_pages(void)
                        pr_err("Failed to allocate provisioning page\n");
                        return false;
                }
-               opal_xive_donate_page(chip, __pa(p));
+               opal_xive_donate_page(chip, (u64)p);
        }
        return true;
 }
diff --git a/drivers/char/powernv-op-panel.c b/drivers/char/powernv-op-panel.c
index 027484ecfb0d..e7569f5025ef 100644
--- a/drivers/char/powernv-op-panel.c
+++ b/drivers/char/powernv-op-panel.c
@@ -175,8 +175,7 @@ static int oppanel_probe(struct platform_device *pdev)
        memset(oppanel_data, ' ', oppanel_size);
        for (i = 0; i < num_lines; i++) {
                oppanel_lines[i].line_len = cpu_to_be64(line_len);
-               oppanel_lines[i].line = cpu_to_be64(__pa(&oppanel_data[i *
-                                               line_len]));
+               oppanel_lines[i].line = cpu_to_be64(&oppanel_data[i * 
line_len]);
        }
 
        rc = misc_register(&oppanel_dev);
diff --git a/drivers/i2c/busses/i2c-opal.c b/drivers/i2c/busses/i2c-opal.c
index 1c4c9bb06a0b..a2ea1e36d9aa 100644
--- a/drivers/i2c/busses/i2c-opal.c
+++ b/drivers/i2c/busses/i2c-opal.c
@@ -87,7 +87,7 @@ static int i2c_opal_master_xfer(struct i2c_adapter *adap, 
struct i2c_msg *msgs,
                        OPAL_I2C_RAW_READ : OPAL_I2C_RAW_WRITE;
                req.addr = cpu_to_be16(msgs[0].addr);
                req.size = cpu_to_be32(msgs[0].len);
-               req.buffer_ra = cpu_to_be64(__pa(msgs[0].buf));
+               req.buffer_ra = cpu_to_be64(msgs[0].buf);
                break;
        case 2:
                req.type = (msgs[1].flags & I2C_M_RD) ?
@@ -98,7 +98,7 @@ static int i2c_opal_master_xfer(struct i2c_adapter *adap, 
struct i2c_msg *msgs,
                        req.subaddr = (req.subaddr << 8) | msgs[0].buf[i];
                req.subaddr = cpu_to_be32(req.subaddr);
                req.size = cpu_to_be32(msgs[1].len);
-               req.buffer_ra = cpu_to_be64(__pa(msgs[1].buf));
+               req.buffer_ra = cpu_to_be64(msgs[1].buf);
                break;
        }
 
@@ -123,7 +123,7 @@ static int i2c_opal_smbus_xfer(struct i2c_adapter *adap, 
u16 addr,
        req.addr = cpu_to_be16(addr);
        switch (size) {
        case I2C_SMBUS_BYTE:
-               req.buffer_ra = cpu_to_be64(__pa(&data->byte));
+               req.buffer_ra = cpu_to_be64(&data->byte);
                req.size = cpu_to_be32(1);
                /* Fall through */
        case I2C_SMBUS_QUICK:
@@ -131,7 +131,7 @@ static int i2c_opal_smbus_xfer(struct i2c_adapter *adap, 
u16 addr,
                        OPAL_I2C_RAW_READ : OPAL_I2C_RAW_WRITE;
                break;
        case I2C_SMBUS_BYTE_DATA:
-               req.buffer_ra = cpu_to_be64(__pa(&data->byte));
+               req.buffer_ra = cpu_to_be64(&data->byte);
                req.size = cpu_to_be32(1);
                req.subaddr = cpu_to_be32(command);
                req.subaddr_sz = 1;
@@ -143,7 +143,7 @@ static int i2c_opal_smbus_xfer(struct i2c_adapter *adap, 
u16 addr,
                        local[0] = data->word & 0xff;
                        local[1] = (data->word >> 8) & 0xff;
                }
-               req.buffer_ra = cpu_to_be64(__pa(local));
+               req.buffer_ra = cpu_to_be64(local);
                req.size = cpu_to_be32(2);
                req.subaddr = cpu_to_be32(command);
                req.subaddr_sz = 1;
@@ -151,7 +151,7 @@ static int i2c_opal_smbus_xfer(struct i2c_adapter *adap, 
u16 addr,
                        OPAL_I2C_SM_READ : OPAL_I2C_SM_WRITE;
                break;
        case I2C_SMBUS_I2C_BLOCK_DATA:
-               req.buffer_ra = cpu_to_be64(__pa(&data->block[1]));
+               req.buffer_ra = cpu_to_be64(&data->block[1]);
                req.size = cpu_to_be32(data->block[0]);
                req.subaddr = cpu_to_be32(command);
                req.subaddr_sz = 1;
diff --git a/drivers/mtd/devices/powernv_flash.c 
b/drivers/mtd/devices/powernv_flash.c
index 0b757d9ba2f6..86dbaae8808f 100644
--- a/drivers/mtd/devices/powernv_flash.c
+++ b/drivers/mtd/devices/powernv_flash.c
@@ -66,10 +66,10 @@ static int powernv_flash_async_op(struct mtd_info *mtd, 
enum flash_op op,
 
        switch (op) {
        case FLASH_OP_READ:
-               rc = opal_flash_read(info->id, offset, __pa(buf), len, token);
+               rc = opal_flash_read(info->id, offset, (u64)buf, len, token);
                break;
        case FLASH_OP_WRITE:
-               rc = opal_flash_write(info->id, offset, __pa(buf), len, token);
+               rc = opal_flash_write(info->id, offset, (u64)buf, len, token);
                break;
        case FLASH_OP_ERASE:
                rc = opal_flash_erase(info->id, offset, len, token);
-- 
2.23.0

Reply via email to