Hi, On 11/25/20 6:29 PM, Mike Travis wrote: > Add "deprecated" message to any access to old /proc/sgi_uv/* leaves. > > Signed-off-by: Mike Travis <mike.travis@xxxxxxx> > Reviewed-by: Steve Wahl <steve.wahl@xxxxxxx> > --- > arch/x86/kernel/apic/x2apic_uv_x.c | 26 +++++++++++++++++++++++++- > 1 file changed, 25 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c > index 48746031b39a..bfd77a00c2a1 100644 > --- a/arch/x86/kernel/apic/x2apic_uv_x.c > +++ b/arch/x86/kernel/apic/x2apic_uv_x.c > @@ -1615,21 +1615,45 @@ static void check_efi_reboot(void) > reboot_type = BOOT_ACPI; > } > > -/* Setup user proc fs files */ > +/* > + * User proc fs file handling now deprecated. > + * Recommend using /sys/firmware/sgi_uv/... instead. > + */ > +static void proc_print_msg(int *flag, char *what, char *which) > +{ > + if (*flag) > + return; > + > + pr_notice( > + "%s: using deprecated /proc/sgi_uv/%s, use /sys/firmware/sgi_uv/%s\n", > + current->comm, what, which ? which : what); > + > + *flag = 1; > +} > + You have just re-invented pr_notice_once, please just use pr_notice_once directly in the _show functions. Regards, Hans > static int __maybe_unused proc_hubbed_show(struct seq_file *file, void *data) > { > + static int flag; > + > + proc_print_msg(&flag, "hubbed", "hub_type"); > seq_printf(file, "0x%x\n", uv_hubbed_system); > return 0; > } > > static int __maybe_unused proc_hubless_show(struct seq_file *file, void *data) > { > + static int flag; > + > + proc_print_msg(&flag, "hubless", NULL); > seq_printf(file, "0x%x\n", uv_hubless_system); > return 0; > } > > static int __maybe_unused proc_archtype_show(struct seq_file *file, void *data) > { > + static int flag; > + > + proc_print_msg(&flag, "archtype", NULL); > seq_printf(file, "%s/%s\n", uv_archtype, oem_table_id); > return 0; > } >