mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 16:54:20 +08:00
ac2a659968
[ Spotted by Miklos ] Fix a memory leak in init_new_context. The struct page ** buffer allocated for install_special_mapping was never recorded, and thus leaked when the mm_struct was freed. Fix it by saving the pointer in mm_context_t and freeing it in arch_exit_mmap. Signed-off-by: Jeff Dike <jdike@linux.intel.com> Cc: Miklos Szeredi <miklos@szeredi.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
26 lines
560 B
C
26 lines
560 B
C
/*
|
|
* Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
|
|
* Licensed under the GPL
|
|
*/
|
|
|
|
#ifndef __ARCH_UM_MMU_H
|
|
#define __ARCH_UM_MMU_H
|
|
|
|
#include "uml-config.h"
|
|
#include "mm_id.h"
|
|
#include "asm/ldt.h"
|
|
|
|
typedef struct mm_context {
|
|
struct mm_id id;
|
|
struct uml_ldt ldt;
|
|
struct page **stub_pages;
|
|
} mm_context_t;
|
|
|
|
extern void __switch_mm(struct mm_id * mm_idp);
|
|
|
|
/* Avoid tangled inclusion with asm/ldt.h */
|
|
extern long init_new_ldt(struct mm_context *to_mm, struct mm_context *from_mm);
|
|
extern void free_ldt(struct mm_context *mm);
|
|
|
|
#endif
|