From patchwork Sun Mar 8 00:56:18 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yinghai Lu X-Patchwork-Id: 447658 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3A321140213 for ; Sun, 8 Mar 2015 11:58:53 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752391AbbCHA5t (ORCPT ); Sat, 7 Mar 2015 19:57:49 -0500 Received: from aserp1040.oracle.com ([141.146.126.69]:28012 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752259AbbCHA5o (ORCPT ); Sat, 7 Mar 2015 19:57:44 -0500 Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id t280vNEi025564 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sun, 8 Mar 2015 00:57:23 GMT Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserv0021.oracle.com (8.13.8/8.13.8) with ESMTP id t280vNLD026930 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 8 Mar 2015 00:57:23 GMT Received: from abhmp0001.oracle.com (abhmp0001.oracle.com [141.146.116.7]) by aserv0121.oracle.com (8.13.8/8.13.8) with ESMTP id t280vNaS032622; Sun, 8 Mar 2015 00:57:23 GMT Received: from linux-siqj.lan (/162.250.208.86) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Sat, 07 Mar 2015 16:57:18 -0800 From: Yinghai Lu To: Matt Fleming , "H. Peter Anvin" , Ingo Molnar , Borislav Petkov , Bjorn Helgaas Cc: Thomas Gleixner , Jiri Kosina , "Chun-Yi Lee" , linux-kernel@vger.kernel.org, linux-efi@vger.kernel.org, linux-pci@vger.kernel.org, Yinghai Lu Subject: [PATCH v3 5/8] x86: Kill not used setup_data handling code Date: Sat, 7 Mar 2015 16:56:18 -0800 Message-Id: <1425776181-10219-6-git-send-email-yinghai@kernel.org> X-Mailer: git-send-email 1.8.4.5 In-Reply-To: <1425776181-10219-1-git-send-email-yinghai@kernel.org> References: <1425776181-10219-1-git-send-email-yinghai@kernel.org> X-Source-IP: aserv0021.oracle.com [141.146.126.233] Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@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 94f95e0..a7e688c 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -486,20 +486,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_iounmap(data, sizeof(*data)); - } -} - /* * --------- Crashkernel reservation ------------------------------ */ @@ -1006,9 +992,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;