[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 2/4] target/ppc: moved function out of mmu-hash64
From: |
David Gibson |
Subject: |
Re: [PATCH v3 2/4] target/ppc: moved function out of mmu-hash64 |
Date: |
Fri, 7 May 2021 13:13:27 +1000 |
On Thu, May 06, 2021 at 01:39:39PM -0300, Lucas Mateus Castro (alqotel) wrote:
> The function ppc_hash64_filter_pagesizes has been moved from a function
> with prototype in mmu-hash64.h and implemented in mmu-hash64.c to
> a static function in hw/ppc/spapr_caps.c as it's only used in that file.
>
> Signed-off-by: Lucas Mateus Castro (alqotel)
> <lucas.araujo@eldorado.org.br>
Applied to ppc-for-6.1, thanks.
> ---
> hw/ppc/spapr_caps.c | 59 +++++++++++++++++++++++++++++++++++++++++
> target/ppc/mmu-hash64.c | 57 ---------------------------------------
> target/ppc/mmu-hash64.h | 3 ---
> 3 files changed, 59 insertions(+), 60 deletions(-)
>
> diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c
> index 9ea7ddd1e9..d0c419b392 100644
> --- a/hw/ppc/spapr_caps.c
> +++ b/hw/ppc/spapr_caps.c
> @@ -371,6 +371,65 @@ static bool spapr_pagesize_cb(void *opaque, uint32_t
> seg_pshift,
> return true;
> }
>
> +static void ppc_hash64_filter_pagesizes(PowerPCCPU *cpu,
> + bool (*cb)(void *, uint32_t, uint32_t),
> + void *opaque)
> +{
> + PPCHash64Options *opts = cpu->hash64_opts;
> + int i;
> + int n = 0;
> + bool ci_largepage = false;
> +
> + assert(opts);
> +
> + n = 0;
> + for (i = 0; i < ARRAY_SIZE(opts->sps); i++) {
> + PPCHash64SegmentPageSizes *sps = &opts->sps[i];
> + int j;
> + int m = 0;
> +
> + assert(n <= i);
> +
> + if (!sps->page_shift) {
> + break;
> + }
> +
> + for (j = 0; j < ARRAY_SIZE(sps->enc); j++) {
> + PPCHash64PageSize *ps = &sps->enc[j];
> +
> + assert(m <= j);
> + if (!ps->page_shift) {
> + break;
> + }
> +
> + if (cb(opaque, sps->page_shift, ps->page_shift)) {
> + if (ps->page_shift >= 16) {
> + ci_largepage = true;
> + }
> + sps->enc[m++] = *ps;
> + }
> + }
> +
> + /* Clear rest of the row */
> + for (j = m; j < ARRAY_SIZE(sps->enc); j++) {
> + memset(&sps->enc[j], 0, sizeof(sps->enc[j]));
> + }
> +
> + if (m) {
> + n++;
> + }
> + }
> +
> + /* Clear the rest of the table */
> + for (i = n; i < ARRAY_SIZE(opts->sps); i++) {
> + memset(&opts->sps[i], 0, sizeof(opts->sps[i]));
> + }
> +
> + if (!ci_largepage) {
> + opts->flags &= ~PPC_HASH64_CI_LARGEPAGE;
> + }
> +}
> +
> static void cap_hpt_maxpagesize_cpu_apply(SpaprMachineState *spapr,
> PowerPCCPU *cpu,
> uint8_t val, Error **errp)
> diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c
> index d517a99832..be3596f27b 100644
> --- a/target/ppc/mmu-hash64.c
> +++ b/target/ppc/mmu-hash64.c
> @@ -1200,61 +1200,4 @@ const PPCHash64Options ppc_hash64_opts_POWER7 = {
> }
> };
>
> -void ppc_hash64_filter_pagesizes(PowerPCCPU *cpu,
> - bool (*cb)(void *, uint32_t, uint32_t),
> - void *opaque)
> -{
> - PPCHash64Options *opts = cpu->hash64_opts;
> - int i;
> - int n = 0;
> - bool ci_largepage = false;
> -
> - assert(opts);
> -
> - n = 0;
> - for (i = 0; i < ARRAY_SIZE(opts->sps); i++) {
> - PPCHash64SegmentPageSizes *sps = &opts->sps[i];
> - int j;
> - int m = 0;
>
> - assert(n <= i);
> -
> - if (!sps->page_shift) {
> - break;
> - }
> -
> - for (j = 0; j < ARRAY_SIZE(sps->enc); j++) {
> - PPCHash64PageSize *ps = &sps->enc[j];
> -
> - assert(m <= j);
> - if (!ps->page_shift) {
> - break;
> - }
> -
> - if (cb(opaque, sps->page_shift, ps->page_shift)) {
> - if (ps->page_shift >= 16) {
> - ci_largepage = true;
> - }
> - sps->enc[m++] = *ps;
> - }
> - }
> -
> - /* Clear rest of the row */
> - for (j = m; j < ARRAY_SIZE(sps->enc); j++) {
> - memset(&sps->enc[j], 0, sizeof(sps->enc[j]));
> - }
> -
> - if (m) {
> - n++;
> - }
> - }
> -
> - /* Clear the rest of the table */
> - for (i = n; i < ARRAY_SIZE(opts->sps); i++) {
> - memset(&opts->sps[i], 0, sizeof(opts->sps[i]));
> - }
> -
> - if (!ci_largepage) {
> - opts->flags &= ~PPC_HASH64_CI_LARGEPAGE;
> - }
> -}
> diff --git a/target/ppc/mmu-hash64.h b/target/ppc/mmu-hash64.h
> index 87729d48b3..5dfd7f8b93 100644
> --- a/target/ppc/mmu-hash64.h
> +++ b/target/ppc/mmu-hash64.h
> @@ -18,9 +18,6 @@ unsigned ppc_hash64_hpte_page_shift_noslb(PowerPCCPU *cpu,
> void ppc_store_lpcr(PowerPCCPU *cpu, target_ulong val);
> void ppc_hash64_init(PowerPCCPU *cpu);
> void ppc_hash64_finalize(PowerPCCPU *cpu);
> -void ppc_hash64_filter_pagesizes(PowerPCCPU *cpu,
> - bool (*cb)(void *, uint32_t, uint32_t),
> - void *opaque);
> #endif
>
> /*
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature