diff options
| author | Gangadhar Mylapuram <Gangadhar.M@Sun.COM> | 2010-01-06 23:29:03 -0800 |
|---|---|---|
| committer | Gangadhar Mylapuram <Gangadhar.M@Sun.COM> | 2010-01-06 23:29:03 -0800 |
| commit | b48b454425acb1c3c363e8a8e08961fd787eaa47 (patch) | |
| tree | e82e908c9063cdde5fe1f284b05e42fe8f3c5e5e /usr/src/uts/sun4 | |
| parent | 3305de375bba96f1dd021c7c07942fa5da91549f (diff) | |
| download | illumos-joyent-b48b454425acb1c3c363e8a8e08961fd787eaa47.tar.gz | |
6840848 zfs boot error "panic - kernel: bop_alloc_chunk failed" when /etc/system file is >8k
Diffstat (limited to 'usr/src/uts/sun4')
| -rw-r--r-- | usr/src/uts/sun4/os/startup.c | 23 | ||||
| -rw-r--r-- | usr/src/uts/sun4/sys/ivintr.h | 9 |
2 files changed, 15 insertions, 17 deletions
diff --git a/usr/src/uts/sun4/os/startup.c b/usr/src/uts/sun4/os/startup.c index ebb336f6d9..7869723891 100644 --- a/usr/src/uts/sun4/os/startup.c +++ b/usr/src/uts/sun4/os/startup.c @@ -20,7 +20,7 @@ */ /* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. + * Copyright 2010 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -37,7 +37,6 @@ #include <sys/prom_plat.h> #include <sys/prom_isa.h> #include <sys/autoconf.h> -#include <sys/intreg.h> #include <sys/ivintr.h> #include <sys/fpu/fpusystm.h> #include <sys/iommutsb.h> @@ -465,8 +464,12 @@ printmemseg(struct memseg *memseg) * | | * | segkmem32 segment | (SYSLIMIT32 - SYSBASE32 = * | | ~64MB) - * 0x00000000.70002000 -|-----------------------| + * -|-----------------------| + * | IVSIZE | + * 0x00000000.70004000 -|-----------------------| * | panicbuf | + * 0x00000000.70002000 -|-----------------------| + * | PAGESIZE | * 0x00000000.70000000 -|-----------------------|- SYSBASE32 * | boot-time | * | temporary space | @@ -822,10 +825,6 @@ alloc_kmem64(caddr_t base, caddr_t end) static prom_memlist_t *boot_physinstalled, *boot_physavail, *boot_virtavail; static size_t boot_physinstalled_len, boot_physavail_len, boot_virtavail_len; -#define IVSIZE roundup(((MAXIVNUM * sizeof (intr_vec_t *)) + \ - (MAX_RSVD_IV * sizeof (intr_vec_t)) + \ - (MAX_RSVD_IVX * sizeof (intr_vecx_t))), PAGESIZE) - #if !defined(C_OBP) /* * Install a temporary tte handler in OBP for kmem64 area. @@ -1470,16 +1469,8 @@ startup_memlist(void) bp_init(shm_alignment, HAT_STRICTORDER); /* - * Reserve space for panicbuf, intr_vec_table, reserved interrupt - * vector data structures and MPO mblock structs from the 32-bit heap. + * Reserve space for MPO mblock structs from the 32-bit heap. */ - (void) vmem_xalloc(heap32_arena, PANICBUFSIZE, PAGESIZE, 0, 0, - panicbuf, panicbuf + PANICBUFSIZE, - VM_NOSLEEP | VM_BESTFIT | VM_PANIC); - - (void) vmem_xalloc(heap32_arena, IVSIZE, PAGESIZE, 0, 0, - intr_vec_table, (caddr_t)intr_vec_table + IVSIZE, - VM_NOSLEEP | VM_BESTFIT | VM_PANIC); if (mpo_heap32_bufsz > (size_t)0) { (void) vmem_xalloc(heap32_arena, mpo_heap32_bufsz, diff --git a/usr/src/uts/sun4/sys/ivintr.h b/usr/src/uts/sun4/sys/ivintr.h index eec54078c5..4283359c4c 100644 --- a/usr/src/uts/sun4/sys/ivintr.h +++ b/usr/src/uts/sun4/sys/ivintr.h @@ -19,13 +19,16 @@ * CDDL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2010 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #ifndef _SYS_IVINTR_H #define _SYS_IVINTR_H +#include <sys/intreg.h> +#include <sys/param.h> + #ifdef __cplusplus extern "C" { #endif @@ -45,6 +48,10 @@ extern "C" { #define MAX_RSVD_IV ((NCPU * 3) + 256) /* HW and Single target SW intrs */ #define MAX_RSVD_IVX 32 /* Multi target software intrs */ +#define IVSIZE roundup(((MAXIVNUM * sizeof (intr_vec_t *)) + \ + (MAX_RSVD_IV * sizeof (intr_vec_t)) + \ + (MAX_RSVD_IVX * sizeof (intr_vecx_t))), PAGESIZE) + #ifndef _ASM typedef uint_t (*intrfunc)(caddr_t, caddr_t); |
