Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: powerpc: Update a BKL related comment powerpc/mm: Fix module instruction tlb fault handling on Book-E 64 powerpc: Fix call to subpage_protection() powerpc: Set CONFIG_32BIT on ppc32 powerpc/mm: Fix build error in setup_initial_memory_limit powerpc/pseries: Don't override CONFIG_PPC_PSERIES_DEBUG powerpc: Fix div64 in bootloader
This commit is contained in:
@@ -4,6 +4,10 @@ config PPC32
|
|||||||
bool
|
bool
|
||||||
default y if !PPC64
|
default y if !PPC64
|
||||||
|
|
||||||
|
config 32BIT
|
||||||
|
bool
|
||||||
|
default y if PPC32
|
||||||
|
|
||||||
config 64BIT
|
config 64BIT
|
||||||
bool
|
bool
|
||||||
default y if PPC64
|
default y if PPC64
|
||||||
|
@@ -33,9 +33,10 @@ __div64_32:
|
|||||||
cntlzw r0,r5 # we are shifting the dividend right
|
cntlzw r0,r5 # we are shifting the dividend right
|
||||||
li r10,-1 # to make it < 2^32, and shifting
|
li r10,-1 # to make it < 2^32, and shifting
|
||||||
srw r10,r10,r0 # the divisor right the same amount,
|
srw r10,r10,r0 # the divisor right the same amount,
|
||||||
add r9,r4,r10 # rounding up (so the estimate cannot
|
addc r9,r4,r10 # rounding up (so the estimate cannot
|
||||||
andc r11,r6,r10 # ever be too large, only too small)
|
andc r11,r6,r10 # ever be too large, only too small)
|
||||||
andc r9,r9,r10
|
andc r9,r9,r10
|
||||||
|
addze r9,r9
|
||||||
or r11,r5,r11
|
or r11,r5,r11
|
||||||
rotlw r9,r9,r0
|
rotlw r9,r9,r0
|
||||||
rotlw r11,r11,r0
|
rotlw r11,r11,r0
|
||||||
|
@@ -497,9 +497,8 @@ static void __init emergency_stack_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Called into from start_kernel, after lock_kernel has been called.
|
* Called into from start_kernel this initializes bootmem, which is used
|
||||||
* Initializes bootmem, which is unsed to manage page allocation until
|
* to manage page allocation until mem_init is called.
|
||||||
* mem_init is called.
|
|
||||||
*/
|
*/
|
||||||
void __init setup_arch(char **cmdline_p)
|
void __init setup_arch(char **cmdline_p)
|
||||||
{
|
{
|
||||||
|
@@ -1123,7 +1123,7 @@ void hash_preload(struct mm_struct *mm, unsigned long ea,
|
|||||||
else
|
else
|
||||||
#endif /* CONFIG_PPC_HAS_HASH_64K */
|
#endif /* CONFIG_PPC_HAS_HASH_64K */
|
||||||
rc = __hash_page_4K(ea, access, vsid, ptep, trap, local, ssize,
|
rc = __hash_page_4K(ea, access, vsid, ptep, trap, local, ssize,
|
||||||
subpage_protection(pgdir, ea));
|
subpage_protection(mm, ea));
|
||||||
|
|
||||||
/* Dump some info in case of hash insertion failure, they should
|
/* Dump some info in case of hash insertion failure, they should
|
||||||
* never happen so it is really useful to know if/when they do
|
* never happen so it is really useful to know if/when they do
|
||||||
|
@@ -138,8 +138,11 @@
|
|||||||
cmpldi cr0,r15,0 /* Check for user region */
|
cmpldi cr0,r15,0 /* Check for user region */
|
||||||
std r14,EX_TLB_ESR(r12) /* write crazy -1 to frame */
|
std r14,EX_TLB_ESR(r12) /* write crazy -1 to frame */
|
||||||
beq normal_tlb_miss
|
beq normal_tlb_miss
|
||||||
|
|
||||||
|
li r11,_PAGE_PRESENT|_PAGE_BAP_SX /* Base perm */
|
||||||
|
oris r11,r11,_PAGE_ACCESSED@h
|
||||||
/* XXX replace the RMW cycles with immediate loads + writes */
|
/* XXX replace the RMW cycles with immediate loads + writes */
|
||||||
1: mfspr r10,SPRN_MAS1
|
mfspr r10,SPRN_MAS1
|
||||||
cmpldi cr0,r15,8 /* Check for vmalloc region */
|
cmpldi cr0,r15,8 /* Check for vmalloc region */
|
||||||
rlwinm r10,r10,0,16,1 /* Clear TID */
|
rlwinm r10,r10,0,16,1 /* Clear TID */
|
||||||
mtspr SPRN_MAS1,r10
|
mtspr SPRN_MAS1,r10
|
||||||
|
@@ -585,6 +585,6 @@ void setup_initial_memory_limit(phys_addr_t first_memblock_base,
|
|||||||
ppc64_rma_size = min_t(u64, first_memblock_size, 0x40000000);
|
ppc64_rma_size = min_t(u64, first_memblock_size, 0x40000000);
|
||||||
|
|
||||||
/* Finally limit subsequent allocations */
|
/* Finally limit subsequent allocations */
|
||||||
memblock_set_current_limit(ppc64_memblock_base + ppc64_rma_size);
|
memblock_set_current_limit(first_memblock_base + ppc64_rma_size);
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_PPC64 */
|
#endif /* CONFIG_PPC64 */
|
||||||
|
@@ -47,6 +47,12 @@ config LPARCFG
|
|||||||
config PPC_PSERIES_DEBUG
|
config PPC_PSERIES_DEBUG
|
||||||
depends on PPC_PSERIES && PPC_EARLY_DEBUG
|
depends on PPC_PSERIES && PPC_EARLY_DEBUG
|
||||||
bool "Enable extra debug logging in platforms/pseries"
|
bool "Enable extra debug logging in platforms/pseries"
|
||||||
|
help
|
||||||
|
Say Y here if you want the pseries core to produce a bunch of
|
||||||
|
debug messages to the system log. Select this if you are having a
|
||||||
|
problem with the pseries core and want to see more of what is
|
||||||
|
going on. This does not enable debugging in lpar.c, which must
|
||||||
|
be manually done due to its verbosity.
|
||||||
default y
|
default y
|
||||||
|
|
||||||
config PPC_SMLPAR
|
config PPC_SMLPAR
|
||||||
|
@@ -21,8 +21,6 @@
|
|||||||
* Please address comments and feedback to Linas Vepstas <linas@austin.ibm.com>
|
* Please address comments and feedback to Linas Vepstas <linas@austin.ibm.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#undef DEBUG
|
|
||||||
|
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/list.h>
|
#include <linux/list.h>
|
||||||
|
@@ -25,8 +25,6 @@
|
|||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#undef DEBUG
|
|
||||||
|
|
||||||
#include <linux/pci.h>
|
#include <linux/pci.h>
|
||||||
#include <asm/pci-bridge.h>
|
#include <asm/pci-bridge.h>
|
||||||
#include <asm/ppc-pci.h>
|
#include <asm/ppc-pci.h>
|
||||||
|
Reference in New Issue
Block a user