linux-next: manual merge of the userns tree with the mips tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Eric,

Today's linux-next merge of the userns tree got conflicts in
arch/mips/include/asm/vpe.h and arch/mips/kernel/vpe.c between commits
1a2a6d7e8816 ("MIPS: APRP: Split VPE loader into separate files") and
5792bf643865 ("MIPS: APRP: Code formatting clean-ups") from the mips tree
and commit f58437f1f916 ("MIPS: VPE: Remove vpe_getuid and vpe_getgid")
from the userns tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    sfr@xxxxxxxxxxxxxxxx

diff --cc arch/mips/include/asm/vpe.h
index e0684f5f0054,0880fe8809b1..000000000000
--- a/arch/mips/include/asm/vpe.h
+++ b/arch/mips/include/asm/vpe.h
@@@ -9,88 -18,7 +9,87 @@@
  #ifndef _ASM_VPE_H
  #define _ASM_VPE_H
  
 +#include <linux/init.h>
 +#include <linux/list.h>
 +#include <linux/smp.h>
 +#include <linux/spinlock.h>
 +
 +#define VPE_MODULE_NAME "vpe"
 +#define VPE_MODULE_MINOR 1
 +
 +/* grab the likely amount of memory we will need. */
 +#ifdef CONFIG_MIPS_VPE_LOADER_TOM
 +#define P_SIZE (2 * 1024 * 1024)
 +#else
 +/* add an overhead to the max kmalloc size for non-striped symbols/etc */
 +#define P_SIZE (256 * 1024)
 +#endif
 +
 +#define MAX_VPES 16
 +#define VPE_PATH_MAX 256
 +
 +static inline int aprp_cpu_index(void)
 +{
 +#ifdef CONFIG_MIPS_CMP
 +	return setup_max_cpus;
 +#else
 +	extern int tclimit;
 +	return tclimit;
 +#endif
 +}
 +
 +enum vpe_state {
 +	VPE_STATE_UNUSED = 0,
 +	VPE_STATE_INUSE,
 +	VPE_STATE_RUNNING
 +};
 +
 +enum tc_state {
 +	TC_STATE_UNUSED = 0,
 +	TC_STATE_INUSE,
 +	TC_STATE_RUNNING,
 +	TC_STATE_DYNAMIC
 +};
 +
 +struct vpe {
 +	enum vpe_state state;
 +
 +	/* (device) minor associated with this vpe */
 +	int minor;
 +
 +	/* elfloader stuff */
 +	void *load_addr;
 +	unsigned long len;
 +	char *pbuffer;
 +	unsigned long plen;
- 	unsigned int uid, gid;
 +	char cwd[VPE_PATH_MAX];
 +
 +	unsigned long __start;
 +
 +	/* tc's associated with this vpe */
 +	struct list_head tc;
 +
 +	/* The list of vpe's */
 +	struct list_head list;
 +
 +	/* shared symbol address */
 +	void *shared_ptr;
 +
 +	/* the list of who wants to know when something major happens */
 +	struct list_head notify;
 +
 +	unsigned int ntcs;
 +};
 +
 +struct tc {
 +	enum tc_state state;
 +	int index;
 +
 +	struct vpe *pvpe;	/* parent VPE */
 +	struct list_head tc;	/* The list of TC's with this VPE */
 +	struct list_head list;	/* The global list of tc's */
 +};
 +
  struct vpe_notifications {
  	void (*start)(int vpe);
  	void (*stop)(int vpe);
@@@ -98,36 -26,10 +97,34 @@@
  	struct list_head list;
  };
  
 +struct vpe_control {
 +	spinlock_t vpe_list_lock;
 +	struct list_head vpe_list;      /* Virtual processing elements */
 +	spinlock_t tc_list_lock;
 +	struct list_head tc_list;       /* Thread contexts */
 +};
 +
 +extern unsigned long physical_memsize;
 +extern struct vpe_control vpecontrol;
 +extern const struct file_operations vpe_fops;
 +
 +int vpe_notify(int index, struct vpe_notifications *notify);
 +
 +void *vpe_get_shared(int index);
- int vpe_getuid(int index);
- int vpe_getgid(int index);
 +char *vpe_getcwd(int index);
 +
 +struct vpe *get_vpe(int minor);
 +struct tc *get_tc(int index);
 +struct vpe *alloc_vpe(int minor);
 +struct tc *alloc_tc(int index);
 +void release_vpe(struct vpe *v);
  
 -extern int vpe_notify(int index, struct vpe_notifications *notify);
 +void *alloc_progmem(unsigned long len);
 +void release_progmem(void *ptr);
  
 -extern void *vpe_get_shared(int index);
 -extern char *vpe_getcwd(int index);
 +int __weak vpe_run(struct vpe *v);
 +void cleanup_tc(struct tc *tc);
  
 +int __init vpe_module_init(void);
 +void __exit vpe_module_exit(void);
  #endif /* _ASM_VPE_H */
diff --cc arch/mips/kernel/vpe.c
index 42d3ca08bd28,2d5c142bad67..000000000000
--- a/arch/mips/kernel/vpe.c
+++ b/arch/mips/kernel/vpe.c
@@@ -899,35 -1262,14 +896,13 @@@ void *vpe_get_shared(int index
  
  	return v->shared_ptr;
  }
 -
  EXPORT_SYMBOL(vpe_get_shared);
  
- int vpe_getuid(int index)
- {
- 	struct vpe *v = get_vpe(index);
- 
- 	if (v == NULL)
- 		return -1;
- 
- 	return v->uid;
- }
- EXPORT_SYMBOL(vpe_getuid);
- 
- int vpe_getgid(int index)
- {
- 	struct vpe *v = get_vpe(index);
- 
- 	if (v == NULL)
- 		return -1;
- 
- 	return v->gid;
- }
- EXPORT_SYMBOL(vpe_getgid);
- 
  int vpe_notify(int index, struct vpe_notifications *notify)
  {
 -	struct vpe *v;
 +	struct vpe *v = get_vpe(index);
  
 -	if ((v = get_vpe(index)) == NULL)
 +	if (v == NULL)
  		return -1;
  
  	list_add(&notify->list, &v->notify);

Attachment: pgpryREk_ZXjh.pgp
Description: PGP signature


[Index of Archives]     [Linux Kernel]     [Linux USB Development]     [Yosemite News]     [Linux SCSI]

  Powered by Linux