Skip to content

Commit

Permalink
uml: SMP locking commentary
Browse files Browse the repository at this point in the history
Add some more commentary about various pieces of global data not needing
locking.

Also got rid of unmap_physmem since that is no longer used.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Jeff Dike authored and Linus Torvalds committed Feb 5, 2008
1 parent 3a24ebf commit 80e3931
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 10 deletions.
7 changes: 6 additions & 1 deletion arch/um/drivers/net_kern.c
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,6 @@ static struct platform_driver uml_net_driver = {
.name = DRIVER_NAME,
},
};
static int driver_registered;

static void net_device_release(struct device *dev)
{
Expand All @@ -383,6 +382,12 @@ static void net_device_release(struct device *dev)
free_netdev(netdev);
}

/*
* Ensures that platform_driver_register is called only once by
* eth_configure. Will be set in an initcall.
*/
static int driver_registered;

static void eth_configure(int n, void *init, char *mac,
struct transport *transport)
{
Expand Down
1 change: 0 additions & 1 deletion arch/um/include/mem_user.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ extern void setup_physmem(unsigned long start, unsigned long usable,
unsigned long len, unsigned long long highmem);
extern void add_iomem(char *name, int fd, unsigned long size);
extern unsigned long phys_offset(unsigned long phys);
extern void unmap_physmem(void);
extern void map_memory(unsigned long virt, unsigned long phys,
unsigned long len, int r, int w, int x);

Expand Down
13 changes: 8 additions & 5 deletions arch/um/kernel/mem.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,20 @@
unsigned long *empty_zero_page = NULL;
/* allocated in paging_init and unchanged thereafter */
unsigned long *empty_bad_page = NULL;

/*
* Initialized during boot, and readonly for initializing page tables
* afterwards
*/
pgd_t swapper_pg_dir[PTRS_PER_PGD];

/* Initialized at boot time, and readonly after that */
unsigned long long highmem;
int kmalloc_ok = 0;

/* Used during early boot */
static unsigned long brk_end;

void unmap_physmem(void)
{
os_unmap_memory((void *) brk_end, uml_reserved - brk_end);
}

static void map_cb(void *unused)
{
map_memory(brk_end, __pa(brk_end), uml_reserved - brk_end, 1, 1, 0);
Expand Down
6 changes: 3 additions & 3 deletions arch/um/kernel/physmem.c
Original file line number Diff line number Diff line change
Expand Up @@ -164,10 +164,10 @@ __uml_setup("iomem=", parse_iomem,
* setup_iomem, both of which run during early boot. Afterwards, it's
* unchanged.
*/
struct iomem_region *iomem_regions = NULL;
struct iomem_region *iomem_regions;

/* Initialized in parse_iomem */
int iomem_size = 0;
/* Initialized in parse_iomem and unchanged thereafter */
int iomem_size;

unsigned long find_iomem(char *driver, unsigned long *len_out)
{
Expand Down

0 comments on commit 80e3931

Please sign in to comment.