Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 69581
b: refs/heads/master
c: 540557b
h: refs/heads/master
i:
  69579: fe15446
v: v3
  • Loading branch information
Andy Whitcroft authored and Linus Torvalds committed Oct 16, 2007
1 parent 1a704e2 commit aa6761c
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: cd881a6b22902b356cacf8fd2e4e895871068eec
refs/heads/master: 540557b9439ec19668553830c90222f9fb0c2e95
6 changes: 3 additions & 3 deletions trunk/drivers/base/memory.c
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ store_mem_state(struct sys_device *dev, const char *buf, size_t count)
mem = container_of(dev, struct memory_block, sysdev);
phys_section_nr = mem->phys_index;

if (!valid_section_nr(phys_section_nr))
if (!present_section_nr(phys_section_nr))
goto out;

if (!strncmp(buf, "online", min((int)count, 6)))
Expand Down Expand Up @@ -418,7 +418,7 @@ int register_new_memory(struct mem_section *section)

int unregister_memory_section(struct mem_section *section)
{
if (!valid_section(section))
if (!present_section(section))
return -EINVAL;

return remove_memory_block(0, section, 0);
Expand All @@ -443,7 +443,7 @@ int __init memory_dev_init(void)
* during boot and have been initialized
*/
for (i = 0; i < NR_MEM_SECTIONS; i++) {
if (!valid_section_nr(i))
if (!present_section_nr(i))
continue;
err = add_memory_block(0, __nr_to_section(i), MEM_ONLINE, 0);
if (!ret)
Expand Down
16 changes: 14 additions & 2 deletions trunk/include/linux/mmzone.h
Original file line number Diff line number Diff line change
Expand Up @@ -771,12 +771,17 @@ static inline struct page *__section_mem_map_addr(struct mem_section *section)
return (struct page *)map;
}

static inline int valid_section(struct mem_section *section)
static inline int present_section(struct mem_section *section)
{
return (section && (section->section_mem_map & SECTION_MARKED_PRESENT));
}

static inline int section_has_mem_map(struct mem_section *section)
static inline int present_section_nr(unsigned long nr)
{
return present_section(__nr_to_section(nr));
}

static inline int valid_section(struct mem_section *section)
{
return (section && (section->section_mem_map & SECTION_HAS_MEM_MAP));
}
Expand All @@ -798,6 +803,13 @@ static inline int pfn_valid(unsigned long pfn)
return valid_section(__nr_to_section(pfn_to_section_nr(pfn)));
}

static inline int pfn_present(unsigned long pfn)
{
if (pfn_to_section_nr(pfn) >= NR_MEM_SECTIONS)
return 0;
return present_section(__nr_to_section(pfn_to_section_nr(pfn)));
}

/*
* These are _only_ used during initialisation, therefore they
* can use __initdata ... They could have names to indicate
Expand Down
9 changes: 5 additions & 4 deletions trunk/mm/sparse.c
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ unsigned long __init node_memmap_size_bytes(int nid, unsigned long start_pfn,
if (nid != early_pfn_to_nid(pfn))
continue;

if (pfn_valid(pfn))
if (pfn_present(pfn))
nr_pages += PAGES_PER_SECTION;
}

Expand Down Expand Up @@ -206,11 +206,12 @@ struct page *sparse_decode_mem_map(unsigned long coded_mem_map, unsigned long pn
static int __meminit sparse_init_one_section(struct mem_section *ms,
unsigned long pnum, struct page *mem_map)
{
if (!valid_section(ms))
if (!present_section(ms))
return -EINVAL;

ms->section_mem_map &= ~SECTION_MAP_MASK;
ms->section_mem_map |= sparse_encode_mem_map(mem_map, pnum);
ms->section_mem_map |= sparse_encode_mem_map(mem_map, pnum) |
SECTION_HAS_MEM_MAP;

return 1;
}
Expand Down Expand Up @@ -256,7 +257,7 @@ void __init sparse_init(void)
struct page *map;

for (pnum = 0; pnum < NR_MEM_SECTIONS; pnum++) {
if (!valid_section_nr(pnum))
if (!present_section_nr(pnum))
continue;

map = sparse_early_mem_map_alloc(pnum);
Expand Down

0 comments on commit aa6761c

Please sign in to comment.