naca cleanups
Stephen Rothwell
sfr at canb.auug.org.au
Thu Dec 9 17:31:35 EST 2004
On Thu, 9 Dec 2004 02:38:08 +1100 Stephen Rothwell <sfr at canb.auug.org.au> wrote:
>
> Another one for comment. This one takes usage of pftSize out of the naca.
> I couldn't see any reason it should not become a global vaiable. Again,
> the field is left there in case someone uses it from /proc/ppc64/naca.
>
> This applies on top of the previous patch.
New version. This build on iSeries, pSeries and pmac.
--
Cheers,
Stephen Rothwell sfr at canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
diff -ruN linus-bk-naca.1a/arch/ppc64/kernel/pSeries_lpar.c linus-bk-naca.2a/arch/ppc64/kernel/pSeries_lpar.c
--- linus-bk-naca.1a/arch/ppc64/kernel/pSeries_lpar.c 2004-10-28 16:57:54.000000000 +1000
+++ linus-bk-naca.2a/arch/ppc64/kernel/pSeries_lpar.c 2004-12-09 17:17:35.000000000 +1100
@@ -33,7 +33,6 @@
#include <asm/mmu_context.h>
#include <asm/ppcdebug.h>
#include <asm/iommu.h>
-#include <asm/naca.h>
#include <asm/tlbflush.h>
#include <asm/tlb.h>
#include <asm/prom.h>
@@ -352,7 +351,7 @@
static void pSeries_lpar_hptab_clear(void)
{
- unsigned long size_bytes = 1UL << naca->pftSize;
+ unsigned long size_bytes = 1UL << ppc64_pft_size;
unsigned long hpte_count = size_bytes >> 4;
unsigned long dummy1, dummy2;
int i;
diff -ruN linus-bk-naca.1a/arch/ppc64/kernel/prom.c linus-bk-naca.2a/arch/ppc64/kernel/prom.c
--- linus-bk-naca.1a/arch/ppc64/kernel/prom.c 2004-11-26 12:08:51.000000000 +1100
+++ linus-bk-naca.2a/arch/ppc64/kernel/prom.c 2004-12-09 17:08:06.000000000 +1100
@@ -844,12 +844,12 @@
/* On LPAR, look for the first ibm,pft-size property for the hash table size
*/
- if (systemcfg->platform == PLATFORM_PSERIES_LPAR && naca->pftSize == 0) {
+ if (systemcfg->platform == PLATFORM_PSERIES_LPAR && ppc64_pft_size == 0) {
u32 *pft_size;
pft_size = (u32 *)get_flat_dt_prop(node, "ibm,pft-size", NULL);
if (pft_size != NULL) {
/* pft_size[0] is the NUMA CEC cookie */
- naca->pftSize = pft_size[1];
+ ppc64_pft_size = pft_size[1];
}
}
@@ -1018,7 +1018,7 @@
initial_boot_params = params;
/* By default, hash size is not set */
- naca->pftSize = 0;
+ ppc64_pft_size = 0;
/* Retreive various informations from the /chosen node of the
* device-tree, including the platform type, initrd location and
@@ -1047,7 +1047,7 @@
/* If hash size wasn't obtained above, we calculate it now based on
* the total RAM size
*/
- if (naca->pftSize == 0) {
+ if (ppc64_pft_size == 0) {
unsigned long rnd_mem_size, pteg_count;
/* round mem_size up to next power of 2 */
@@ -1058,10 +1058,10 @@
/* # pages / 2 */
pteg_count = (rnd_mem_size >> (12 + 1));
- naca->pftSize = __ilog2(pteg_count << 7);
+ ppc64_pft_size = __ilog2(pteg_count << 7);
}
- DBG("Hash pftSize: %x\n", (int)naca->pftSize);
+ DBG("Hash pftSize: %x\n", (int)ppc64_pft_size);
DBG(" <- early_init_devtree()\n");
}
diff -ruN linus-bk-naca.1a/arch/ppc64/kernel/setup.c linus-bk-naca.2a/arch/ppc64/kernel/setup.c
--- linus-bk-naca.1a/arch/ppc64/kernel/setup.c 2004-12-09 14:46:37.000000000 +1100
+++ linus-bk-naca.2a/arch/ppc64/kernel/setup.c 2004-12-09 17:17:14.000000000 +1100
@@ -55,6 +55,7 @@
#include <asm/iommu.h>
#include <asm/serial.h>
#include <asm/cache.h>
+#include <asm/page.h>
#ifdef DEBUG
#define DBG(fmt...) udbg_printf(fmt)
@@ -111,6 +112,7 @@
int boot_cpuid = 0;
int boot_cpuid_phys = 0;
dev_t boot_dev;
+u64 ppc64_pft_size;
struct ppc64_caches ppc64_caches;
@@ -660,7 +662,7 @@
printk("-----------------------------------------------------\n");
printk("naca = 0x%p\n", naca);
- printk("naca->pftSize = 0x%lx\n", naca->pftSize);
+ printk("ppc64_pft_size = 0x%lx\n", ppc64_pft_size);
printk("naca->debug_switch = 0x%lx\n", naca->debug_switch);
printk("naca->interrupt_controller = 0x%ld\n", naca->interrupt_controller);
printk("systemcfg = 0x%p\n", systemcfg);
diff -ruN linus-bk-naca.1a/arch/ppc64/mm/hash_utils.c linus-bk-naca.2a/arch/ppc64/mm/hash_utils.c
--- linus-bk-naca.1a/arch/ppc64/mm/hash_utils.c 2004-10-29 07:03:21.000000000 +1000
+++ linus-bk-naca.2a/arch/ppc64/mm/hash_utils.c 2004-12-09 17:17:54.000000000 +1100
@@ -41,7 +41,6 @@
#include <asm/types.h>
#include <asm/system.h>
#include <asm/uaccess.h>
-#include <asm/naca.h>
#include <asm/machdep.h>
#include <asm/lmb.h>
#include <asm/abs_addr.h>
@@ -147,7 +146,7 @@
* Calculate the required size of the htab. We want the number of
* PTEGs to equal one half the number of real pages.
*/
- htab_size_bytes = 1UL << naca->pftSize;
+ htab_size_bytes = 1UL << ppc64_pft_size;
pteg_count = htab_size_bytes >> 7;
/* For debug, make the HTAB 1/8 as big as it normally would be. */
diff -ruN linus-bk-naca.1a/include/asm-ppc64/naca.h linus-bk-naca.2a/include/asm-ppc64/naca.h
--- linus-bk-naca.1a/include/asm-ppc64/naca.h 2004-12-09 14:43:33.000000000 +1100
+++ linus-bk-naca.2a/include/asm-ppc64/naca.h 2004-12-09 17:25:40.000000000 +1100
@@ -26,8 +26,6 @@
u64 log; /* Ptr to log buffer 0x30 */
u64 serialPortAddr; /* Phy addr of serial port 0x38 */
u64 interrupt_controller; /* Type of int controller 0x40 */
- u64 unused1; /* was SLB size in entries 0x48 */
- u64 pftSize; /* Log 2 of page table size 0x50 */
};
extern struct naca_struct *naca;
diff -ruN linus-bk-naca.1a/include/asm-ppc64/page.h linus-bk-naca.2a/include/asm-ppc64/page.h
--- linus-bk-naca.1a/include/asm-ppc64/page.h 2004-12-09 14:44:30.000000000 +1100
+++ linus-bk-naca.2a/include/asm-ppc64/page.h 2004-12-09 17:15:33.000000000 +1100
@@ -183,6 +183,8 @@
extern int page_is_ram(unsigned long pfn);
+extern u64 ppc64_pft_size; /* Log 2 of page table size */
+
#endif /* __ASSEMBLY__ */
#ifdef MODULE
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://ozlabs.org/pipermail/linuxppc64-dev/attachments/20041209/dabd65f7/attachment.pgp
More information about the Linuxppc64-dev
mailing list