|
[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 |