Commit aacea90f authored by Linus Torvalds's avatar Linus Torvalds

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc

Pull two sparc fixes from David S. Miller.

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
  sparc64: Be less verbose during vmemmap population.
  sparc64: do not clobber personality flags in sys_sparc64_personality()
parents ddf343f6 2856cc2e
...@@ -502,12 +502,12 @@ SYSCALL_DEFINE1(sparc64_personality, unsigned long, personality) ...@@ -502,12 +502,12 @@ SYSCALL_DEFINE1(sparc64_personality, unsigned long, personality)
{ {
int ret; int ret;
if (current->personality == PER_LINUX32 && if (personality(current->personality) == PER_LINUX32 &&
personality == PER_LINUX) personality(personality) == PER_LINUX)
personality = PER_LINUX32; personality |= PER_LINUX32;
ret = sys_personality(personality); ret = sys_personality(personality);
if (ret == PER_LINUX32) if (personality(ret) == PER_LINUX32)
ret = PER_LINUX; ret &= ~PER_LINUX32;
return ret; return ret;
} }
......
...@@ -2020,6 +2020,9 @@ EXPORT_SYMBOL(_PAGE_CACHE); ...@@ -2020,6 +2020,9 @@ EXPORT_SYMBOL(_PAGE_CACHE);
#ifdef CONFIG_SPARSEMEM_VMEMMAP #ifdef CONFIG_SPARSEMEM_VMEMMAP
unsigned long vmemmap_table[VMEMMAP_SIZE]; unsigned long vmemmap_table[VMEMMAP_SIZE];
static long __meminitdata addr_start, addr_end;
static int __meminitdata node_start;
int __meminit vmemmap_populate(struct page *start, unsigned long nr, int node) int __meminit vmemmap_populate(struct page *start, unsigned long nr, int node)
{ {
unsigned long vstart = (unsigned long) start; unsigned long vstart = (unsigned long) start;
...@@ -2050,15 +2053,30 @@ int __meminit vmemmap_populate(struct page *start, unsigned long nr, int node) ...@@ -2050,15 +2053,30 @@ int __meminit vmemmap_populate(struct page *start, unsigned long nr, int node)
*vmem_pp = pte_base | __pa(block); *vmem_pp = pte_base | __pa(block);
printk(KERN_INFO "[%p-%p] page_structs=%lu " /* check to see if we have contiguous blocks */
"node=%d entry=%lu/%lu\n", start, block, nr, if (addr_end != addr || node_start != node) {
node, if (addr_start)
addr >> VMEMMAP_CHUNK_SHIFT, printk(KERN_DEBUG " [%lx-%lx] on node %d\n",
VMEMMAP_SIZE); addr_start, addr_end-1, node_start);
addr_start = addr;
node_start = node;
}
addr_end = addr + VMEMMAP_CHUNK;
} }
} }
return 0; return 0;
} }
void __meminit vmemmap_populate_print_last(void)
{
if (addr_start) {
printk(KERN_DEBUG " [%lx-%lx] on node %d\n",
addr_start, addr_end-1, node_start);
addr_start = 0;
addr_end = 0;
node_start = 0;
}
}
#endif /* CONFIG_SPARSEMEM_VMEMMAP */ #endif /* CONFIG_SPARSEMEM_VMEMMAP */
static void prot_init_common(unsigned long page_none, static void prot_init_common(unsigned long page_none,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment