[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] x86: Use printk_once() instead of opencoding it
commit a6120e3fc8fd90f3ed638c6f7a573bfb534af154 Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> AuthorDate: Wed May 10 20:21:12 2023 +0100 Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CommitDate: Tue Jun 20 17:20:01 2023 +0100 x86: Use printk_once() instead of opencoding it Technically our helper post-dates all of these examples, but it's good cleanup nevertheless. None of these examples should be using fully locked test_and_set_bool() in the first place. No functional change. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx> --- xen/arch/x86/cpu/amd.c | 27 +++++++++------------------ xen/arch/x86/hvm/vmx/vmx.c | 18 ++++++------------ xen/arch/x86/srat.c | 8 ++------ xen/arch/x86/time.c | 19 ++++--------------- 4 files changed, 21 insertions(+), 51 deletions(-) diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c index 0d3143031b..0eaef82e51 100644 --- a/xen/arch/x86/cpu/amd.c +++ b/xen/arch/x86/cpu/amd.c @@ -493,7 +493,6 @@ void amd_check_disable_c1e(unsigned int port, u8 value) static void check_syscfg_dram_mod_en(void) { uint64_t syscfg; - static bool_t printed = 0; if (!((boot_cpu_data.x86_vendor == X86_VENDOR_AMD) && (boot_cpu_data.x86 >= 0x0f))) @@ -503,9 +502,7 @@ static void check_syscfg_dram_mod_en(void) if (!(syscfg & SYSCFG_MTRR_FIX_DRAM_MOD_EN)) return; - if (!test_and_set_bool(printed)) - printk(KERN_ERR "MTRR: SYSCFG[MtrrFixDramModEn] not " - "cleared by BIOS, clearing this bit\n"); + printk_once(KERN_ERR "MTRR: SYSCFG[MtrrFixDramModEn] found set; clearing\n"); syscfg &= ~SYSCFG_MTRR_FIX_DRAM_MOD_EN; wrmsrl(MSR_K8_SYSCFG, syscfg); @@ -1107,25 +1104,19 @@ static void cf_check init_amd(struct cpuinfo_x86 *c) rdmsrl(MSR_AMD64_LS_CFG, value); if (!(value & (1 << 15))) { - static bool_t warned; - - if (c == &boot_cpu_data || opt_cpu_info || - !test_and_set_bool(warned)) - printk(KERN_WARNING - "CPU%u: Applying workaround for erratum 793\n", - smp_processor_id()); + if (c == &boot_cpu_data || opt_cpu_info) + printk_once(XENLOG_WARNING + "CPU%u: Applying workaround for erratum 793\n", + smp_processor_id()); wrmsrl(MSR_AMD64_LS_CFG, value | (1 << 15)); } } else if (c->x86 == 0x12) { rdmsrl(MSR_AMD64_DE_CFG, value); if (!(value & (1U << 31))) { - static bool warned; - - if (c == &boot_cpu_data || opt_cpu_info || - !test_and_set_bool(warned)) - printk(KERN_WARNING - "CPU%u: Applying workaround for erratum 665\n", - smp_processor_id()); + if (c == &boot_cpu_data || opt_cpu_info) + printk_once(XENLOG_WARNING + "CPU%u: Applying workaround for erratum 665\n", + smp_processor_id()); wrmsrl(MSR_AMD64_DE_CFG, value | (1U << 31)); } } diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c index 40767b94c3..c686e6990c 100644 --- a/xen/arch/x86/hvm/vmx/vmx.c +++ b/xen/arch/x86/hvm/vmx/vmx.c @@ -1207,16 +1207,11 @@ static void cf_check vmx_get_segment_register( */ if ( unlikely(!vmx_vmcs_try_enter(v)) ) { - static bool_t warned; + printk_once(XENLOG_WARNING "Segment register inaccessible for %pv\n" + "(If you see this outside of debugging activity," + " please report to xen-devel@xxxxxxxxxxxxxxxxxxxx)\n", + v); - if ( !warned ) - { - warned = 1; - printk(XENLOG_WARNING "Segment register inaccessible for %pv\n" - "(If you see this outside of debugging activity," - " please report to xen-devel@xxxxxxxxxxxxxxxxxxxx)\n", - v); - } memset(reg, 0, sizeof(*reg)); return; } @@ -2325,10 +2320,9 @@ static bool cf_check vmx_test_pir(const struct vcpu *v, uint8_t vec) static void cf_check vmx_handle_eoi(uint8_t vector, int isr) { uint8_t old_svi = set_svi(isr); - static bool warned; - if ( vector != old_svi && !test_and_set_bool(warned) ) - printk(XENLOG_WARNING "EOI for %02x but SVI=%02x\n", vector, old_svi); + if ( vector != old_svi ) + printk_once(XENLOG_WARNING "EOI for %02x but SVI=%02x\n", vector, old_svi); } static void cf_check vmx_enable_msr_interception(struct domain *d, uint32_t msr) diff --git a/xen/arch/x86/srat.c b/xen/arch/x86/srat.c index 56749ddca5..3f70338e6e 100644 --- a/xen/arch/x86/srat.c +++ b/xen/arch/x86/srat.c @@ -55,7 +55,6 @@ nodeid_t setup_node(unsigned pxm) { nodeid_t node; unsigned idx; - static bool warned; static unsigned nodes_found; BUILD_BUG_ON(MAX_NUMNODES >= NUMA_NO_NODE); @@ -75,11 +74,8 @@ nodeid_t setup_node(unsigned pxm) if (pxm2node[idx].node == NUMA_NO_NODE) goto finish; - if (!warned) { - printk(KERN_WARNING "SRAT: Too many proximity domains (%#x)\n", - pxm); - warned = true; - } + printk_once(XENLOG_WARNING "SRAT: Too many proximity domains (%#x)\n", + pxm); return NUMA_NO_NODE; diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c index bc75e1ae7d..f5e30d4e02 100644 --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -876,13 +876,8 @@ static void cf_check plt_overflow(void *unused) plt_stamp64 += plt_mask + 1; } if ( i != 0 ) - { - static bool warned_once; - - if ( !test_and_set_bool(warned_once) ) - printk("Platform timer appears to have unexpectedly wrapped " - "%u%s times.\n", i, (i == 10) ? " or more" : ""); - } + printk_once("Platform timer appears to have unexpectedly wrapped " + "%u%s times.\n", i, (i == 10) ? " or more" : ""); spin_unlock_irq(&platform_timer_lock); @@ -2156,14 +2151,8 @@ void init_percpu_time(void) } else if ( adj != tsc_adjust[socket] ) { - static bool __read_mostly warned; - - if ( !warned ) - { - warned = true; - printk(XENLOG_WARNING - "Differing TSC ADJUST values within socket(s) - fixing all\n"); - } + printk_once(XENLOG_WARNING + "Differing TSC ADJUST values within socket(s) - fixing all\n"); wrmsrl(MSR_IA32_TSC_ADJUST, tsc_adjust[socket]); } } -- generated by git-patchbot for /home/xen/git/xen.git#master
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |