From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933483AbbGGUZf (ORCPT ); Tue, 7 Jul 2015 16:25:35 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:51293 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758079AbbGGUVF (ORCPT ); Tue, 7 Jul 2015 16:21:05 -0400 From: Yinghai Lu To: Kees Cook , "H. Peter Anvin" , Baoquan He Cc: linux-kernel@vger.kernel.org, Yinghai Lu , Matt Fleming Subject: [PATCH 34/42] x86: Kill not used setup_data handling code Date: Tue, 7 Jul 2015 13:20:20 -0700 Message-Id: <1436300428-21163-35-git-send-email-yinghai@kernel.org> X-Mailer: git-send-email 1.8.4.5 In-Reply-To: <1436300428-21163-1-git-send-email-yinghai@kernel.org> References: <1436300428-21163-1-git-send-email-yinghai@kernel.org> X-Source-IP: aserv0021.oracle.com [141.146.126.233] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Cc: Matt Fleming Signed-off-by: Yinghai Lu --- arch/x86/kernel/kdebugfs.c | 142 --------------------------------------------- arch/x86/kernel/setup.c | 17 ------ 2 files changed, 159 deletions(-) diff --git a/arch/x86/kernel/kdebugfs.c b/arch/x86/kernel/kdebugfs.c index dc1404b..c8ca86c 100644 --- a/arch/x86/kernel/kdebugfs.c +++ b/arch/x86/kernel/kdebugfs.c @@ -21,142 +21,6 @@ struct dentry *arch_debugfs_dir; EXPORT_SYMBOL(arch_debugfs_dir); #ifdef CONFIG_DEBUG_BOOT_PARAMS -struct setup_data_node { - u64 paddr; - u32 type; - u32 len; -}; - -static ssize_t setup_data_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) -{ - struct setup_data_node *node = file->private_data; - unsigned long remain; - loff_t pos = *ppos; - struct page *pg; - void *p; - u64 pa; - - if (pos < 0) - return -EINVAL; - - if (pos >= node->len) - return 0; - - if (count > node->len - pos) - count = node->len - pos; - - pa = node->paddr + sizeof(struct setup_data) + pos; - pg = pfn_to_page((pa + count - 1) >> PAGE_SHIFT); - if (PageHighMem(pg)) { - p = ioremap_cache(pa, count); - if (!p) - return -ENXIO; - } else - p = __va(pa); - - remain = copy_to_user(user_buf, p, count); - - if (PageHighMem(pg)) - iounmap(p); - - if (remain) - return -EFAULT; - - *ppos = pos + count; - - return count; -} - -static const struct file_operations fops_setup_data = { - .read = setup_data_read, - .open = simple_open, - .llseek = default_llseek, -}; - -static int __init -create_setup_data_node(struct dentry *parent, int no, - struct setup_data_node *node) -{ - struct dentry *d, *type, *data; - char buf[16]; - - sprintf(buf, "%d", no); - d = debugfs_create_dir(buf, parent); - if (!d) - return -ENOMEM; - - type = debugfs_create_x32("type", S_IRUGO, d, &node->type); - if (!type) - goto err_dir; - - data = debugfs_create_file("data", S_IRUGO, d, node, &fops_setup_data); - if (!data) - goto err_type; - - return 0; - -err_type: - debugfs_remove(type); -err_dir: - debugfs_remove(d); - return -ENOMEM; -} - -static int __init create_setup_data_nodes(struct dentry *parent) -{ - struct setup_data_node *node; - struct setup_data *data; - int error; - struct dentry *d; - struct page *pg; - u64 pa_data; - int no = 0; - - d = debugfs_create_dir("setup_data", parent); - if (!d) - return -ENOMEM; - - pa_data = boot_params.hdr.setup_data; - - while (pa_data) { - node = kmalloc(sizeof(*node), GFP_KERNEL); - if (!node) { - error = -ENOMEM; - goto err_dir; - } - - pg = pfn_to_page((pa_data+sizeof(*data)-1) >> PAGE_SHIFT); - if (PageHighMem(pg)) { - data = ioremap_cache(pa_data, sizeof(*data)); - if (!data) { - kfree(node); - error = -ENXIO; - goto err_dir; - } - } else - data = __va(pa_data); - - node->paddr = pa_data; - node->type = data->type; - node->len = data->len; - error = create_setup_data_node(d, no, node); - pa_data = data->next; - - if (PageHighMem(pg)) - iounmap(data); - if (error) - goto err_dir; - no++; - } - - return 0; - -err_dir: - debugfs_remove(d); - return error; -} - static struct debugfs_blob_wrapper boot_params_blob = { .data = &boot_params, .size = sizeof(boot_params), @@ -181,14 +45,8 @@ static int __init boot_params_kdebugfs_init(void) if (!data) goto err_version; - error = create_setup_data_nodes(dbp); - if (error) - goto err_data; - return 0; -err_data: - debugfs_remove(data); err_version: debugfs_remove(version); err_dir: diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index de0f830..35d9ff5 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -465,20 +465,6 @@ static void __init parse_setup_data(void) boot_params.hdr.setup_data = 0; /* all done */ } -static void __init memblock_x86_reserve_range_setup_data(void) -{ - struct setup_data *data; - u64 pa_data; - - pa_data = boot_params.hdr.setup_data; - while (pa_data) { - data = early_memremap(pa_data, sizeof(*data)); - memblock_reserve(pa_data, sizeof(*data) + data->len); - pa_data = data->next; - early_memunmap(data, sizeof(*data)); - } -} - /* * --------- Crashkernel reservation ------------------------------ */ @@ -988,9 +974,6 @@ void __init setup_arch(char **cmdline_p) x86_report_nx(); - /* after early param, so could get panic from serial */ - memblock_x86_reserve_range_setup_data(); - if (acpi_mps_check()) { #ifdef CONFIG_X86_LOCAL_APIC disable_apic = 1; -- 1.8.4.5