[RFC PATCH v3 1/5] lib: sbi: Rename map_range/unmap_range functions

Pawandeep Oza pawandeep.oza at oss.qualcomm.com
Fri Aug 14 11:32:42 PDT 2026


On Wed, Aug 12, 2026 at 4:44 AM Anup Patel <anup.patel at oss.qualcomm.com> wrote:
>
> On Thu, Aug 6, 2026 at 12:09 AM Rahul Pathak
> <rahul.pathak at oss.qualcomm.com> wrote:
> >
> > *_map_range and *_unmap_range functions are required
> > in M-Mode to get the temporary access to S-Mode and U-Mode
> > regions. Thse functions only operate using the TYPE_MEMORY
>
> s/Ths/These/
>
> > memory protection mechanisms. Rename them to reflect the
> > actual usage of these functions and let generic map/unmap_range
> > names to implement generic functions
> >
> > Signed-off-by: Rahul Pathak <rahul.pathak at oss.qualcomm.com>
>
> LGTM.
>
> Reviewed-by: Anup Patel <anup at brainfault.org>
>
> Regards,
> Anup
>
>
> > ---
> >  include/sbi/sbi_hart_protection.h | 27 ++++++++++++++++-----------
> >  lib/sbi/sbi_dbtr.c                | 26 +++++++++++++-------------
> >  lib/sbi/sbi_ecall_dbcn.c          |  4 ++--
> >  lib/sbi/sbi_hart_pmp.c            | 10 +++++-----
> >  lib/sbi/sbi_hart_protection.c     | 12 ++++++------
> >  lib/sbi/sbi_mpxy.c                | 24 ++++++++++++------------
> >  lib/sbi/sbi_pmu.c                 |  4 ++--
> >  lib/sbi/sbi_sse.c                 |  8 ++++----
> >  8 files changed, 60 insertions(+), 55 deletions(-)
> >
> > diff --git a/include/sbi/sbi_hart_protection.h b/include/sbi/sbi_hart_protection.h
> > index cafe6ee7..bdcad008 100644
> > --- a/include/sbi/sbi_hart_protection.h
> > +++ b/include/sbi/sbi_hart_protection.h
> > @@ -40,13 +40,17 @@ struct sbi_hart_protection {
> >         /** Unconfigure protection for current HART (Optional) */
> >         void (*unconfigure)(struct sbi_scratch *scratch, struct sbi_domain *dom);
> >
> > -       /** Create temporary mapping to access address range on current HART (Optional) */
> > -       int (*map_range)(struct sbi_scratch *scratch,
> > -                        unsigned long base, unsigned long size);
> > -
> > -       /** Destroy temporary mapping on current HART (Optional) */
> > -       int (*unmap_range)(struct sbi_scratch *scratch,
> > -                          unsigned long base, unsigned long size);
> > +       /**
> > +        * Give temporary M-mode access to an S/U-mode address range on current
> > +        * HART (Optional). Only applicable for the TYPE_MEMORY and the TYPE_ID
> > +        * mechanisms are not invoked.
> > +        */
> > +       int (*temp_map_range)(struct sbi_scratch *scratch,
> > +                             unsigned long base, unsigned long size);
> > +
> > +       /** Remove the temporary M-mode access on the current HART (Optional) */
> > +       int (*temp_unmap_range)(struct sbi_scratch *scratch,
> > +                               unsigned long base, unsigned long size);
> >  };
> >
> >  /**
> > @@ -111,23 +115,24 @@ int sbi_hart_protection_reconfigure(struct sbi_scratch *scratch,
> >                                     struct sbi_domain *next_dom);
> >
> >  /**
> > - * Create temporary mapping to access address range on current HART
> > + * Give temporary M-mode access to an S/U-mode address range on the
> > + * current HART. Only valid for TYPE_MEMORY.
> >   *
> >   * @param base base address of the temporary mapping
> >   * @param size size of the temporary mapping
> >   *
> >   * @return 0 on success and negative error code on failure
> >   */
> > -int sbi_hart_protection_map_range(unsigned long base, unsigned long size);
> > +int sbi_hart_protection_temp_map_range(unsigned long base, unsigned long size);
> >
> >  /**
> > - * Destroy temporary mapping to access address range on current HART
> > + * Remove the temporary M-mode access on the current HART
> >   *
> >   * @param base base address of the temporary mapping
> >   * @param size size of the temporary mapping
> >   *
> >   * @return 0 on success and negative error code on failure
> >   */
> > -int sbi_hart_protection_unmap_range(unsigned long base, unsigned long size);
> > +int sbi_hart_protection_temp_unmap_range(unsigned long base, unsigned long size);
> >
> >  #endif /* __SBI_HART_PROTECTION_H__ */
> > diff --git a/lib/sbi/sbi_dbtr.c b/lib/sbi/sbi_dbtr.c
> > index 01047969..afa8232f 100644
> > --- a/lib/sbi/sbi_dbtr.c
> > +++ b/lib/sbi/sbi_dbtr.c
> > @@ -580,7 +580,7 @@ int sbi_dbtr_read_trig(unsigned long smode,
> >
> >         shmem_base = hart_shmem_base(hs);
> >
> > -       sbi_hart_protection_map_range((unsigned long)shmem_base,
> > +       sbi_hart_protection_temp_map_range((unsigned long)shmem_base,
> >                                       trig_count * sizeof(*entry));
> >         for_each_trig_entry(shmem_base, trig_count, typeof(*entry), entry) {
> >                 xmit = &entry->data;
> > @@ -594,7 +594,7 @@ int sbi_dbtr_read_trig(unsigned long smode,
> >                 xmit->tdata2 = cpu_to_lle(trig->tdata2);
> >                 xmit->tdata3 = cpu_to_lle(trig->tdata3);
> >         }
> > -       sbi_hart_protection_unmap_range((unsigned long)shmem_base,
> > +       sbi_hart_protection_temp_unmap_range((unsigned long)shmem_base,
> >                                         trig_count * sizeof(*entry));
> >
> >         return SBI_SUCCESS;
> > @@ -620,7 +620,7 @@ int sbi_dbtr_install_trig(unsigned long smode,
> >                 return SBI_ERR_NO_SHMEM;
> >
> >         shmem_base = hart_shmem_base(hs);
> > -       sbi_hart_protection_map_range((unsigned long)shmem_base,
> > +       sbi_hart_protection_temp_map_range((unsigned long)shmem_base,
> >                                       trig_count * sizeof(*entry));
> >
> >         /*
> > @@ -639,14 +639,14 @@ int sbi_dbtr_install_trig(unsigned long smode,
> >
> >                 if (!dbtr_trigger_supported(TDATA1_GET_TYPE(ctrl))) {
> >                         *out = _idx;
> > -                       sbi_hart_protection_unmap_range((unsigned long)shmem_base,
> > +                       sbi_hart_protection_temp_unmap_range((unsigned long)shmem_base,
> >                                                         trig_count * sizeof(*entry));
> >                         return SBI_ERR_FAILED;
> >                 }
> >
> >                 if (!dbtr_trigger_valid(TDATA1_GET_TYPE(ctrl), ctrl)) {
> >                         *out = _idx;
> > -                       sbi_hart_protection_unmap_range((unsigned long)shmem_base,
> > +                       sbi_hart_protection_temp_unmap_range((unsigned long)shmem_base,
> >                                                         trig_count * sizeof(*entry));
> >                         return SBI_ERR_FAILED;
> >                 }
> > @@ -654,7 +654,7 @@ int sbi_dbtr_install_trig(unsigned long smode,
> >                 if ((recv->tdata2 && !tdata2_impl) ||
> >                     (recv->tdata3 && !tdata3_impl)) {
> >                         *out = _idx;
> > -                       sbi_hart_protection_unmap_range((unsigned long)shmem_base,
> > +                       sbi_hart_protection_temp_unmap_range((unsigned long)shmem_base,
> >                                                         trig_count * sizeof(*entry));
> >                         return SBI_ERR_NOT_SUPPORTED;
> >                 }
> > @@ -662,7 +662,7 @@ int sbi_dbtr_install_trig(unsigned long smode,
> >
> >         if (hs->available_trigs < trig_count) {
> >                 *out = hs->available_trigs;
> > -               sbi_hart_protection_unmap_range((unsigned long)shmem_base,
> > +               sbi_hart_protection_temp_unmap_range((unsigned long)shmem_base,
> >                                                trig_count * sizeof(*entry));
> >                 return SBI_ERR_FAILED;
> >         }
> > @@ -684,7 +684,7 @@ int sbi_dbtr_install_trig(unsigned long smode,
> >
> >         }
> >
> > -       sbi_hart_protection_unmap_range((unsigned long)shmem_base,
> > +       sbi_hart_protection_temp_unmap_range((unsigned long)shmem_base,
> >                                         trig_count * sizeof(*entry));
> >
> >         return SBI_SUCCESS;
> > @@ -768,29 +768,29 @@ int sbi_dbtr_update_trig(unsigned long smode,
> >         tdata3_impl = tdata_implemented(CSR_TDATA3);
> >
> >         for_each_trig_entry(shmem_base, trig_count, typeof(*entry), entry) {
> > -               sbi_hart_protection_map_range((unsigned long)entry, sizeof(*entry));
> > +               sbi_hart_protection_temp_map_range((unsigned long)entry, sizeof(*entry));
> >                 trig_idx = entry->id.idx;
> >
> >                 if (trig_idx >= hs->total_trigs) {
> > -                       sbi_hart_protection_unmap_range((unsigned long)entry, sizeof(*entry));
> > +                       sbi_hart_protection_temp_unmap_range((unsigned long)entry, sizeof(*entry));
> >                         return SBI_ERR_INVALID_PARAM;
> >                 }
> >
> >                 trig = INDEX_TO_TRIGGER(trig_idx);
> >
> >                 if (!(trig->state & RV_DBTR_BIT_MASK(TS, MAPPED))) {
> > -                       sbi_hart_protection_unmap_range((unsigned long)entry, sizeof(*entry));
> > +                       sbi_hart_protection_temp_unmap_range((unsigned long)entry, sizeof(*entry));
> >                         return SBI_ERR_FAILED;
> >                 }
> >
> >                 if ((entry->data.tdata2 && !tdata2_impl) ||
> >                     (entry->data.tdata3 && !tdata3_impl)) {
> > -                       sbi_hart_protection_unmap_range((unsigned long)entry, sizeof(*entry));
> > +                       sbi_hart_protection_temp_unmap_range((unsigned long)entry, sizeof(*entry));
> >                         return SBI_ERR_NOT_SUPPORTED;
> >                 }
> >
> >                 dbtr_trigger_setup(trig, &entry->data);
> > -               sbi_hart_protection_unmap_range((unsigned long)entry, sizeof(*entry));
> > +               sbi_hart_protection_temp_unmap_range((unsigned long)entry, sizeof(*entry));
> >                 dbtr_trigger_enable(trig);
> >         }
> >
> > diff --git a/lib/sbi/sbi_ecall_dbcn.c b/lib/sbi/sbi_ecall_dbcn.c
> > index 75c8455d..76837737 100644
> > --- a/lib/sbi/sbi_ecall_dbcn.c
> > +++ b/lib/sbi/sbi_ecall_dbcn.c
> > @@ -46,12 +46,12 @@ static int sbi_ecall_dbcn_handler(unsigned long extid, unsigned long funcid,
> >                                         regs->a1, regs->a0, smode,
> >                                         SBI_DOMAIN_READ|SBI_DOMAIN_WRITE))
> >                         return SBI_ERR_INVALID_PARAM;
> > -               sbi_hart_protection_map_range(regs->a1, regs->a0);
> > +               sbi_hart_protection_temp_map_range(regs->a1, regs->a0);
> >                 if (funcid == SBI_EXT_DBCN_CONSOLE_WRITE)
> >                         out->value = sbi_nputs((const char *)regs->a1, regs->a0);
> >                 else
> >                         out->value = sbi_ngets((char *)regs->a1, regs->a0);
> > -               sbi_hart_protection_unmap_range(regs->a1, regs->a0);
> > +               sbi_hart_protection_temp_unmap_range(regs->a1, regs->a0);
> >                 return 0;
> >         case SBI_EXT_DBCN_CONSOLE_WRITE_BYTE:
> >                 sbi_putc(regs->a0);
> > diff --git a/lib/sbi/sbi_hart_pmp.c b/lib/sbi/sbi_hart_pmp.c
> > index c0a4ce1b..c530739f 100644
> > --- a/lib/sbi/sbi_hart_pmp.c
> > +++ b/lib/sbi/sbi_hart_pmp.c
> > @@ -135,7 +135,7 @@ int sbi_hart_pmp_get(unsigned int n, unsigned long *prot_out, unsigned long *add
> >   * When shared memory access is required, the physical address
> >   * should be programmed into the first PMP entry with R/W
> >   * permissions to the M-mode. Once the work is done, it should be
> > - * unmapped. sbi_hart_protection_map_range/sbi_hart_protection_unmap_range
> > + * unmapped. sbi_hart_protection_temp_map_range/sbi_hart_protection_temp_unmap_range
> >   * function pair should be used to map/unmap the shared memory.
> >   */
> >  #define SBI_SMEPMP_RESV_ENTRY          0
> > @@ -327,7 +327,7 @@ static int sbi_hart_smepmp_configure(struct sbi_scratch *scratch,
> >         return 0;
> >  }
> >
> > -static int sbi_hart_smepmp_map_range(struct sbi_scratch *scratch,
> > +static int sbi_hart_smepmp_temp_map_range(struct sbi_scratch *scratch,
> >                                      unsigned long addr, unsigned long size)
> >  {
> >         /* shared R/W access for M and S/U mode */
> > @@ -359,7 +359,7 @@ static int sbi_hart_smepmp_map_range(struct sbi_scratch *scratch,
> >         return SBI_OK;
> >  }
> >
> > -static int sbi_hart_smepmp_unmap_range(struct sbi_scratch *scratch,
> > +static int sbi_hart_smepmp_temp_unmap_range(struct sbi_scratch *scratch,
> >                                        unsigned long addr, unsigned long size)
> >  {
> >         sbi_platform_pmp_disable(sbi_platform_ptr(scratch), SBI_SMEPMP_RESV_ENTRY);
> > @@ -436,8 +436,8 @@ static struct sbi_hart_protection epmp_protection = {
> >         .type = SBI_HART_PROTECTION_TYPE_MEMORY,
> >         .configure = sbi_hart_smepmp_configure,
> >         .unconfigure = sbi_hart_pmp_unconfigure,
> > -       .map_range = sbi_hart_smepmp_map_range,
> > -       .unmap_range = sbi_hart_smepmp_unmap_range,
> > +       .temp_map_range = sbi_hart_smepmp_temp_map_range,
> > +       .temp_unmap_range = sbi_hart_smepmp_temp_unmap_range,
> >  };
> >
> >  int sbi_hart_pmp_init(struct sbi_scratch *scratch)
> > diff --git a/lib/sbi/sbi_hart_protection.c b/lib/sbi/sbi_hart_protection.c
> > index c4c149c8..ee4d4beb 100644
> > --- a/lib/sbi/sbi_hart_protection.c
> > +++ b/lib/sbi/sbi_hart_protection.c
> > @@ -196,22 +196,22 @@ int sbi_hart_protection_reconfigure(struct sbi_scratch *scratch,
> >         return 0;
> >  }
> >
> > -int sbi_hart_protection_map_range(unsigned long base, unsigned long size)
> > +int sbi_hart_protection_temp_map_range(unsigned long base, unsigned long size)
> >  {
> >         struct sbi_hart_protection *hprot = __hart_memory_protection_best();
> >
> > -       if (!hprot || !hprot->map_range)
> > +       if (!hprot || !hprot->temp_map_range)
> >                 return 0;
> >
> > -       return hprot->map_range(sbi_scratch_thishart_ptr(), base, size);
> > +       return hprot->temp_map_range(sbi_scratch_thishart_ptr(), base, size);
> >  }
> >
> > -int sbi_hart_protection_unmap_range(unsigned long base, unsigned long size)
> > +int sbi_hart_protection_temp_unmap_range(unsigned long base, unsigned long size)
> >  {
> >         struct sbi_hart_protection *hprot = __hart_memory_protection_best();
> >
> > -       if (!hprot || !hprot->unmap_range)
> > +       if (!hprot || !hprot->temp_unmap_range)
> >                 return 0;
> >
> > -       return hprot->unmap_range(sbi_scratch_thishart_ptr(), base, size);
> > +       return hprot->temp_unmap_range(sbi_scratch_thishart_ptr(), base, size);
> >  }
> > diff --git a/lib/sbi/sbi_mpxy.c b/lib/sbi/sbi_mpxy.c
> > index 19f59f3a..41fea0ae 100644
> > --- a/lib/sbi/sbi_mpxy.c
> > +++ b/lib/sbi/sbi_mpxy.c
> > @@ -401,10 +401,10 @@ int sbi_mpxy_set_shmem(unsigned long shmem_phys_lo,
> >         if (flags == SBI_EXT_MPXY_SHMEM_FLAG_OVERWRITE_RETURN) {
> >                 ret_buf = (unsigned long *)(ulong)SHMEM_PHYS_ADDR(shmem_phys_hi,
> >                                                                   shmem_phys_lo);
> > -               sbi_hart_protection_map_range((unsigned long)ret_buf, mpxy_shmem_size);
> > +               sbi_hart_protection_temp_map_range((unsigned long)ret_buf, mpxy_shmem_size);
> >                 ret_buf[0] = cpu_to_lle(ms->shmem.shmem_addr_lo);
> >                 ret_buf[1] = cpu_to_lle(ms->shmem.shmem_addr_hi);
> > -               sbi_hart_protection_unmap_range((unsigned long)ret_buf, mpxy_shmem_size);
> > +               sbi_hart_protection_temp_unmap_range((unsigned long)ret_buf, mpxy_shmem_size);
> >         }
> >
> >         /** Setup the new shared memory */
> > @@ -436,7 +436,7 @@ int sbi_mpxy_get_channel_ids(u32 start_index)
> >                 return SBI_ERR_INVALID_PARAM;
> >
> >         shmem_base = hart_shmem_base(ms);
> > -       sbi_hart_protection_map_range((unsigned long)hart_shmem_base(ms), mpxy_shmem_size);
> > +       sbi_hart_protection_temp_map_range((unsigned long)hart_shmem_base(ms), mpxy_shmem_size);
> >
> >         /** number of channel ids which can be stored in shmem adjusting
> >          * for remaining and returned fields */
> > @@ -466,7 +466,7 @@ int sbi_mpxy_get_channel_ids(u32 start_index)
> >         shmem_base[0] = cpu_to_le32(remaining);
> >         shmem_base[1] = cpu_to_le32(returned);
> >
> > -       sbi_hart_protection_unmap_range((unsigned long)hart_shmem_base(ms), mpxy_shmem_size);
> > +       sbi_hart_protection_temp_unmap_range((unsigned long)hart_shmem_base(ms), mpxy_shmem_size);
> >
> >         return SBI_SUCCESS;
> >  }
> > @@ -498,7 +498,7 @@ int sbi_mpxy_read_attrs(u32 channel_id, u32 base_attr_id, u32 attr_count)
> >         shmem_base = hart_shmem_base(ms);
> >         end_id = base_attr_id + attr_count - 1;
> >
> > -       sbi_hart_protection_map_range((unsigned long)hart_shmem_base(ms), mpxy_shmem_size);
> > +       sbi_hart_protection_temp_map_range((unsigned long)hart_shmem_base(ms), mpxy_shmem_size);
> >
> >         /* Standard attributes range check */
> >         if (mpxy_is_std_attr(base_attr_id)) {
> > @@ -537,7 +537,7 @@ int sbi_mpxy_read_attrs(u32 channel_id, u32 base_attr_id, u32 attr_count)
> >                                                base_attr_id, attr_count);
> >         }
> >  out:
> > -       sbi_hart_protection_unmap_range((unsigned long)hart_shmem_base(ms), mpxy_shmem_size);
> > +       sbi_hart_protection_temp_unmap_range((unsigned long)hart_shmem_base(ms), mpxy_shmem_size);
> >         return ret;
> >  }
> >
> > @@ -650,7 +650,7 @@ int sbi_mpxy_write_attrs(u32 channel_id, u32 base_attr_id, u32 attr_count)
> >         shmem_base = hart_shmem_base(ms);
> >         end_id = base_attr_id + attr_count - 1;
> >
> > -       sbi_hart_protection_map_range((unsigned long)shmem_base, mpxy_shmem_size);
> > +       sbi_hart_protection_temp_map_range((unsigned long)shmem_base, mpxy_shmem_size);
> >
> >         mem_ptr = (u32 *)shmem_base;
> >
> > @@ -707,7 +707,7 @@ int sbi_mpxy_write_attrs(u32 channel_id, u32 base_attr_id, u32 attr_count)
> >                                                base_attr_id, attr_count);
> >         }
> >  out:
> > -       sbi_hart_protection_unmap_range((unsigned long)shmem_base, mpxy_shmem_size);
> > +       sbi_hart_protection_temp_unmap_range((unsigned long)shmem_base, mpxy_shmem_size);
> >         return ret;
> >  }
> >
> > @@ -740,7 +740,7 @@ int sbi_mpxy_send_message(u32 channel_id, u8 msg_id,
> >                 return SBI_ERR_INVALID_PARAM;
> >
> >         shmem_base = hart_shmem_base(ms);
> > -       sbi_hart_protection_map_range((unsigned long)shmem_base, mpxy_shmem_size);
> > +       sbi_hart_protection_temp_map_range((unsigned long)shmem_base, mpxy_shmem_size);
> >
> >         if (resp_data_len) {
> >                 resp_buf = shmem_base;
> > @@ -757,7 +757,7 @@ int sbi_mpxy_send_message(u32 channel_id, u8 msg_id,
> >                                                              msg_data_len);
> >         }
> >
> > -       sbi_hart_protection_unmap_range((unsigned long)shmem_base, mpxy_shmem_size);
> > +       sbi_hart_protection_temp_unmap_range((unsigned long)shmem_base, mpxy_shmem_size);
> >
> >         if (ret == SBI_ERR_TIMEOUT || ret == SBI_ERR_IO)
> >                 return ret;
> > @@ -788,12 +788,12 @@ int sbi_mpxy_get_notification_events(u32 channel_id, unsigned long *events_len)
> >                 return SBI_ERR_NOT_SUPPORTED;
> >
> >         shmem_base = hart_shmem_base(ms);
> > -       sbi_hart_protection_map_range((unsigned long)shmem_base, mpxy_shmem_size);
> > +       sbi_hart_protection_temp_map_range((unsigned long)shmem_base, mpxy_shmem_size);
> >         eventsbuf = shmem_base;
> >         ret = channel->get_notification_events(channel, eventsbuf,
> >                                                mpxy_shmem_size,
> >                                                events_len);
> > -       sbi_hart_protection_unmap_range((unsigned long)shmem_base, mpxy_shmem_size);
> > +       sbi_hart_protection_temp_unmap_range((unsigned long)shmem_base, mpxy_shmem_size);
> >
> >         if (ret)
> >                 return ret;
> > diff --git a/lib/sbi/sbi_pmu.c b/lib/sbi/sbi_pmu.c
> > index a0f6d2fa..aac6adb6 100644
> > --- a/lib/sbi/sbi_pmu.c
> > +++ b/lib/sbi/sbi_pmu.c
> > @@ -1093,7 +1093,7 @@ int sbi_pmu_event_get_info(unsigned long shmem_phys_lo, unsigned long shmem_phys
> >                                          SBI_DOMAIN_READ | SBI_DOMAIN_WRITE))
> >                 return SBI_ERR_INVALID_ADDRESS;
> >
> > -       sbi_hart_protection_map_range(shmem_phys_lo, shmem_size);
> > +       sbi_hart_protection_temp_map_range(shmem_phys_lo, shmem_size);
> >
> >         einfo = (struct sbi_pmu_event_info *)(shmem_phys_lo);
> >         for (i = 0; i < num_events; i++) {
> > @@ -1127,7 +1127,7 @@ int sbi_pmu_event_get_info(unsigned long shmem_phys_lo, unsigned long shmem_phys
> >                 }
> >         }
> >
> > -       sbi_hart_protection_unmap_range(shmem_phys_lo, shmem_size);
> > +       sbi_hart_protection_temp_unmap_range(shmem_phys_lo, shmem_size);
> >
> >         return 0;
> >  }
> > diff --git a/lib/sbi/sbi_sse.c b/lib/sbi/sbi_sse.c
> > index 818afb87..ad9e6a06 100644
> > --- a/lib/sbi/sbi_sse.c
> > +++ b/lib/sbi/sbi_sse.c
> > @@ -1037,7 +1037,7 @@ int sbi_sse_read_attrs(uint32_t event_id, uint32_t base_attr_id,
> >         if (ret)
> >                 return ret;
> >
> > -       sbi_hart_protection_map_range(output_phys_lo, sizeof(unsigned long) * attr_count);
> > +       sbi_hart_protection_temp_map_range(output_phys_lo, sizeof(unsigned long) * attr_count);
> >
> >         /*
> >          * Copy all attributes at once since struct sse_event_attrs is matching
> > @@ -1050,7 +1050,7 @@ int sbi_sse_read_attrs(uint32_t event_id, uint32_t base_attr_id,
> >         attrs = (unsigned long *)output_phys_lo;
> >         copy_attrs(attrs, &e_attrs[base_attr_id], attr_count);
> >
> > -       sbi_hart_protection_unmap_range(output_phys_lo, sizeof(unsigned long) * attr_count);
> > +       sbi_hart_protection_temp_unmap_range(output_phys_lo, sizeof(unsigned long) * attr_count);
> >
> >         sse_event_put(e);
> >
> > @@ -1065,7 +1065,7 @@ static int sse_write_attrs(struct sbi_sse_event *e, uint32_t base_attr_id,
> >         uint32_t id, end_id = base_attr_id + attr_count;
> >         unsigned long *attrs = (unsigned long *)input_phys;
> >
> > -       sbi_hart_protection_map_range(input_phys, sizeof(unsigned long) * attr_count);
> > +       sbi_hart_protection_temp_map_range(input_phys, sizeof(unsigned long) * attr_count);
> >
> >         for (id = base_attr_id; id < end_id; id++) {
> >                 val = attrs[attr++];
> > @@ -1081,7 +1081,7 @@ static int sse_write_attrs(struct sbi_sse_event *e, uint32_t base_attr_id,
> >         }
> >
> >  out:
> > -       sbi_hart_protection_unmap_range(input_phys, sizeof(unsigned long) * attr_count);
> > +       sbi_hart_protection_temp_unmap_range(input_phys, sizeof(unsigned long) * attr_count);
> >
> >         return ret;
> >  }
> > --
> > 2.51.0
> >
> >
> > --
> > opensbi mailing list
> > opensbi at lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/opensbi
>
> --
> opensbi mailing list
> opensbi at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/opensbi

Reviewed-by: Pawandeep Oza <pawandeep.oza at oss.qualcomm.com>



More information about the opensbi mailing list