[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] x86/shadow: Reposition sh_remove_write_access_from_sl1p()
On 21/05/2020 11:26, Roger Pau Monné wrote: > On Thu, May 21, 2020 at 10:04:28AM +0100, Andrew Cooper wrote: >> When compiling with SHOPT_OUT_OF_SYNC disabled, the build fails with: >> >> common.c:41:12: error: ‘sh_remove_write_access_from_sl1p’ declared >> ‘static’ but never defined [-Werror=unused-function] >> static int sh_remove_write_access_from_sl1p(struct domain *d, mfn_t gmfn, >> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> >> due to an unguarded forward declaration. >> >> It turns out there is no need to forward declare >> sh_remove_write_access_from_sl1p() to begin with, so move it to just ahead of >> its first users, which is within a larger #ifdef'd SHOPT_OUT_OF_SYNC block. >> >> Fix up for style while moving it. No functional change. >> >> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> > Reviewed-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> > >> --- >> CC: Jan Beulich <JBeulich@xxxxxxxx> >> CC: Wei Liu <wl@xxxxxxx> >> CC: Roger Pau Monné <roger.pau@xxxxxxxxxx> >> CC: Tim Deegan <tim@xxxxxxx> >> --- >> xen/arch/x86/mm/shadow/common.c | 56 >> ++++++++++++++++++----------------------- >> 1 file changed, 25 insertions(+), 31 deletions(-) >> >> diff --git a/xen/arch/x86/mm/shadow/common.c >> b/xen/arch/x86/mm/shadow/common.c >> index 0ac3f880e1..6dff240e97 100644 >> --- a/xen/arch/x86/mm/shadow/common.c >> +++ b/xen/arch/x86/mm/shadow/common.c >> @@ -38,9 +38,6 @@ >> #include <xen/numa.h> >> #include "private.h" >> >> -static int sh_remove_write_access_from_sl1p(struct domain *d, mfn_t gmfn, >> - mfn_t smfn, unsigned long >> offset); >> - >> DEFINE_PER_CPU(uint32_t,trace_shadow_path_flags); >> >> static int sh_enable_log_dirty(struct domain *, bool log_global); >> @@ -252,6 +249,31 @@ static inline void _sh_resync_l1(struct vcpu *v, mfn_t >> gmfn, mfn_t snpmfn) >> SHADOW_INTERNAL_NAME(sh_resync_l1, 4)(v, gmfn, snpmfn); >> } >> >> +static int sh_remove_write_access_from_sl1p(struct domain *d, mfn_t gmfn, >> + mfn_t smfn, unsigned long off) >> +{ >> + struct page_info *sp = mfn_to_page(smfn); >> + >> + ASSERT(mfn_valid(smfn)); >> + ASSERT(mfn_valid(gmfn)); >> + >> + if ( sp->u.sh.type == SH_type_l1_32_shadow || >> + sp->u.sh.type == SH_type_fl1_32_shadow ) > Using a switch would also be nice IMO and would avoid some of the code > churn. Good point. Happy to do that if Tim agrees (but I won't bother sending a v2 just now). ~Andrew
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |