diff options
| author | Frederic Weisbecker <fweisbec@gmail.com> | 2013-05-02 17:37:49 +0200 | 
|---|---|---|
| committer | Frederic Weisbecker <fweisbec@gmail.com> | 2013-05-02 17:54:19 +0200 | 
| commit | c032862fba51a3ca504752d3a25186b324c5ce83 (patch) | |
| tree | 955dc2ba4ab3df76ecc2bb780ee84aca04967e8d /include/linux/vmalloc.h | |
| parent | fda76e074c7737fc57855dd17c762e50ed526052 (diff) | |
| parent | 8700c95adb033843fc163d112b9d21d4fda78018 (diff) | |
| download | olio-linux-3.10-c032862fba51a3ca504752d3a25186b324c5ce83.tar.xz olio-linux-3.10-c032862fba51a3ca504752d3a25186b324c5ce83.zip  | |
Merge commit '8700c95adb03' into timers/nohz
The full dynticks tree needs the latest RCU and sched
upstream updates in order to fix some dependencies.
Merge a common upstream merge point that has these
updates.
Conflicts:
	include/linux/perf_event.h
	kernel/rcutree.h
	kernel/rcutree_plugin.h
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Diffstat (limited to 'include/linux/vmalloc.h')
| -rw-r--r-- | include/linux/vmalloc.h | 34 | 
1 files changed, 32 insertions, 2 deletions
diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h index 6071e911c7f..7d5773a99f2 100644 --- a/include/linux/vmalloc.h +++ b/include/linux/vmalloc.h @@ -3,7 +3,9 @@  #include <linux/spinlock.h>  #include <linux/init.h> +#include <linux/list.h>  #include <asm/page.h>		/* pgprot_t */ +#include <linux/rbtree.h>  struct vm_area_struct;		/* vma defining user mapping in mm_types.h */ @@ -35,6 +37,17 @@ struct vm_struct {  	const void		*caller;  }; +struct vmap_area { +	unsigned long va_start; +	unsigned long va_end; +	unsigned long flags; +	struct rb_node rb_node;         /* address sorted rbtree */ +	struct list_head list;          /* address sorted list */ +	struct list_head purge_list;    /* "lazy purge" list */ +	struct vm_struct *vm; +	struct rcu_head rcu_head; +}; +  /*   *	Highlevel APIs for driver use   */ @@ -130,8 +143,7 @@ extern long vwrite(char *buf, char *addr, unsigned long count);  /*   *	Internals.  Dont't use..   */ -extern rwlock_t vmlist_lock; -extern struct vm_struct *vmlist; +extern struct list_head vmap_area_list;  extern __init void vm_area_add_early(struct vm_struct *vm);  extern __init void vm_area_register_early(struct vm_struct *vm, size_t align); @@ -158,4 +170,22 @@ pcpu_free_vm_areas(struct vm_struct **vms, int nr_vms)  # endif  #endif +struct vmalloc_info { +	unsigned long   used; +	unsigned long   largest_chunk; +}; + +#ifdef CONFIG_MMU +#define VMALLOC_TOTAL (VMALLOC_END - VMALLOC_START) +extern void get_vmalloc_info(struct vmalloc_info *vmi); +#else + +#define VMALLOC_TOTAL 0UL +#define get_vmalloc_info(vmi)			\ +do {						\ +	(vmi)->used = 0;			\ +	(vmi)->largest_chunk = 0;		\ +} while (0) +#endif +  #endif /* _LINUX_VMALLOC_H */  |