Mercurial > illumos > illumos-gate
changeset 3400:2427f35263a7
6461633 DR cleanup
author | bm42561 |
---|---|
date | Wed, 10 Jan 2007 11:14:23 -0800 |
parents | 24dcc5339d8a |
children | b2b8301bd444 |
files | usr/src/uts/sun4u/opl/io/dr_mem.c usr/src/uts/sun4u/opl/io/drmach.c |
diffstat | 2 files changed, 21 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/uts/sun4u/opl/io/dr_mem.c Wed Jan 10 10:22:46 2007 -0800 +++ b/usr/src/uts/sun4u/opl/io/dr_mem.c Wed Jan 10 11:14:23 2007 -0800 @@ -1776,7 +1776,7 @@ */ /* XXX Can we know that sbdev_error was encountered during release? */ if (s_mp->sbm_cm.sbdev_error != NULL) { - PR_MEM("%s: %s: error %d noted\n", + cmn_err(CE_WARN, "%s: %s: error %d noted\n", f, s_mp->sbm_cm.sbdev_path, s_mp->sbm_cm.sbdev_error->e_code);
--- a/usr/src/uts/sun4u/opl/io/drmach.c Wed Jan 10 10:22:46 2007 -0800 +++ b/usr/src/uts/sun4u/opl/io/drmach.c Wed Jan 10 11:14:23 2007 -0800 @@ -1394,7 +1394,7 @@ return (drerr_new(0, EOPL_INAPPROP, NULL)); if (opl_probe_sb(obj->bnum) != 0) - return (drerr_new(0, EOPL_PROBE, NULL)); + return (drerr_new(1, EOPL_PROBE, NULL)); (void) prom_attach_notice(obj->bnum); @@ -1476,7 +1476,7 @@ obj = (drmach_board_t *)id; if (drmach_disconnect_cpus(obj)) { - err = drerr_new(0, EOPL_DEPROBE, obj->cm.name); + err = drerr_new(1, EOPL_DEPROBE, obj->cm.name); return (err); } @@ -1487,7 +1487,7 @@ obj->connected = 0; } else - err = drerr_new(0, EOPL_DEPROBE, obj->cm.name); + err = drerr_new(1, EOPL_DEPROBE, obj->cm.name); return (err); } @@ -2230,7 +2230,7 @@ dip = mp->dev.node->n_getdip(mp->dev.node); if (drmach_setup_mc_info(dip, mp) != 0) { - return (drerr_new(0, EOPL_MC_SETUP, NULL)); + return (drerr_new(1, EOPL_MC_SETUP, NULL)); } /* make sure we do not create memoryless nodes */ @@ -2526,7 +2526,7 @@ DRMACH_PR("calling opl_probe_board for bnum=%d\n", bp->bnum); rv = opl_probe_sb(bp->bnum); if (rv != 0) { - err = drerr_new(0, EOPL_PROBE, bp->cm.name); + err = drerr_new(1, EOPL_PROBE, bp->cm.name); return (err); } return (err); @@ -2548,7 +2548,7 @@ rv = opl_unprobe_sb(bp->bnum); if (rv != 0) { - err = drerr_new(0, EOPL_DEPROBE, bp->cm.name); + err = drerr_new(1, EOPL_DEPROBE, bp->cm.name); } return (err); @@ -3404,7 +3404,7 @@ (1 << strand_id)) { if (!(bp->cores[onb_core_num].core_started & (1 << strand_id))) { - return (drerr_new(0, EOPL_CPU_STATE, NULL)); + return (drerr_new(1, EOPL_CPU_STATE, NULL)); } } } @@ -3415,28 +3415,28 @@ modgetsymvalue("opl_mc_resume", 0); if (mc_suspend == NULL || mc_resume == NULL) { - return (drerr_new(0, EOPL_MC_OPL, NULL)); + return (drerr_new(1, EOPL_MC_OPL, NULL)); } scf_fmem_start = (int (*)(int, int)) modgetsymvalue("scf_fmem_start", 0); if (scf_fmem_start == NULL) { - return (drerr_new(0, EOPL_SCF_FMEM, NULL)); + return (drerr_new(1, EOPL_SCF_FMEM, NULL)); } scf_fmem_end = (int (*)(void)) modgetsymvalue("scf_fmem_end", 0); if (scf_fmem_end == NULL) { - return (drerr_new(0, EOPL_SCF_FMEM, NULL)); + return (drerr_new(1, EOPL_SCF_FMEM, NULL)); } scf_fmem_cancel = (int (*)(void)) modgetsymvalue("scf_fmem_cancel", 0); if (scf_fmem_cancel == NULL) { - return (drerr_new(0, EOPL_SCF_FMEM, NULL)); + return (drerr_new(1, EOPL_SCF_FMEM, NULL)); } scf_get_base_addr = (uint64_t (*)(void)) modgetsymvalue("scf_get_base_addr", 0); if (scf_get_base_addr == NULL) { - return (drerr_new(0, EOPL_SCF_FMEM, NULL)); + return (drerr_new(1, EOPL_SCF_FMEM, NULL)); } s_mem = s_id; t_mem = t_id; @@ -3543,7 +3543,7 @@ /* now we make sure there is 1K extra */ if ((wp - bp) > PAGESIZE) { - err = drerr_new(0, EOPL_FMEM_SETUP, NULL); + err = drerr_new(1, EOPL_FMEM_SETUP, NULL); goto out; } @@ -3578,7 +3578,7 @@ /* now we are committed, call SCF, soft suspend mac patrol */ if ((*scf_fmem_start)(s_bd, t_bd)) { - err = drerr_new(0, EOPL_SCF_FMEM_START, NULL); + err = drerr_new(1, EOPL_SCF_FMEM_START, NULL); goto out; } prog->data->scf_fmem_end = scf_fmem_end; @@ -3746,7 +3746,9 @@ /* possible ops are SCF_START, MC_SUSPEND */ if (prog->critical->fmem_issued) { if (prog->data->fmem_status.error != FMEM_NO_ERROR) - cmn_err(CE_PANIC, "scf fmem request failed"); + cmn_err(CE_PANIC, "scf fmem request failed. " + "error code = 0x%x.", + prog->data->fmem_status.error); rv = (*prog->data->scf_fmem_end)(); if (rv) { cmn_err(CE_PANIC, "scf_fmem_end() failed rv=%d", rv); @@ -3878,8 +3880,10 @@ extern uint64_t patch_inst(uint64_t *, uint64_t); on_trap_data_t otd; + prog = prog_kmem->locked_prog; + /* * We must immediately drop in the TLB because all pointers * are based on the alternate vmem space. @@ -3940,6 +3944,7 @@ /* * jmp drmach_copy_rename_prog(). */ + drmach_flush(prog->critical, PAGESIZE); rtn = prog->critical->run(prog, cpuid); drmach_flush_icache();