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; +} + 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; } -- 2.21.0