diff options
Diffstat (limited to 'kernel/resource.c')
| -rw-r--r-- | kernel/resource.c | 44 | 
1 files changed, 6 insertions, 38 deletions
diff --git a/kernel/resource.c b/kernel/resource.c index 2af6c03858b9..30e1bc68503b 100644 --- a/kernel/resource.c +++ b/kernel/resource.c @@ -87,7 +87,7 @@ enum { MAX_IORES_LEVEL = 5 };  static void *r_start(struct seq_file *m, loff_t *pos)  	__acquires(resource_lock)  { -	struct resource *p = m->private; +	struct resource *p = PDE_DATA(file_inode(m->file));  	loff_t l = 0;  	read_lock(&resource_lock);  	for (p = p->child; p && l < *pos; p = r_next(m, p, &l)) @@ -103,7 +103,7 @@ static void r_stop(struct seq_file *m, void *v)  static int r_show(struct seq_file *m, void *v)  { -	struct resource *root = m->private; +	struct resource *root = PDE_DATA(file_inode(m->file));  	struct resource *r = v, *p;  	unsigned long long start, end;  	int width = root->end < 0x10000 ? 4 : 8; @@ -135,44 +135,11 @@ static const struct seq_operations resource_op = {  	.show	= r_show,  }; -static int ioports_open(struct inode *inode, struct file *file) -{ -	int res = seq_open(file, &resource_op); -	if (!res) { -		struct seq_file *m = file->private_data; -		m->private = &ioport_resource; -	} -	return res; -} - -static int iomem_open(struct inode *inode, struct file *file) -{ -	int res = seq_open(file, &resource_op); -	if (!res) { -		struct seq_file *m = file->private_data; -		m->private = &iomem_resource; -	} -	return res; -} - -static const struct file_operations proc_ioports_operations = { -	.open		= ioports_open, -	.read		= seq_read, -	.llseek		= seq_lseek, -	.release	= seq_release, -}; - -static const struct file_operations proc_iomem_operations = { -	.open		= iomem_open, -	.read		= seq_read, -	.llseek		= seq_lseek, -	.release	= seq_release, -}; -  static int __init ioresources_init(void)  { -	proc_create("ioports", 0, NULL, &proc_ioports_operations); -	proc_create("iomem", 0, NULL, &proc_iomem_operations); +	proc_create_seq_data("ioports", 0, NULL, &resource_op, +			&ioport_resource); +	proc_create_seq_data("iomem", 0, NULL, &resource_op, &iomem_resource);  	return 0;  }  __initcall(ioresources_init); @@ -448,6 +415,7 @@ int walk_iomem_res_desc(unsigned long desc, unsigned long flags, u64 start,  	return __walk_iomem_res_desc(&res, desc, false, arg, func);  } +EXPORT_SYMBOL_GPL(walk_iomem_res_desc);  /*   * This function calls the @func callback against all memory ranges of type  |