Lines Matching defs:s_mp

422 dr_move_memory(dr_handle_t *hp, dr_mem_unit_t *s_mp, dr_mem_unit_t *t_mp)
433 s_mp->sbm_cm.sbdev_path,
436 ASSERT(s_mp->sbm_flags & DR_MFLAG_SOURCE);
437 ASSERT(s_mp->sbm_peer == t_mp);
438 ASSERT(s_mp->sbm_mlist);
441 ASSERT(t_mp->sbm_peer == s_mp);
446 * the full source board memlist. s_mp->sbm_del_mlist
450 c_ml = memlist_dup(s_mp->sbm_mlist);
451 d_ml = s_mp->sbm_del_mlist;
461 s_mp->sbm_cm.sbdev_id, c_ml, &cr_id);
463 DRERR_SET_C(&s_mp->sbm_cm.sbdev_error, &err);
493 s_mp->sbm_cm.sbdev_error = hp->h_err;
507 s_bp = s_mp->sbm_cm.sbdev_bp;
524 DRERR_SET_C(&s_mp->sbm_cm.sbdev_error, &err);
544 dr_mem_unit_t *s_mp = (dr_mem_unit_t *)cp;
552 if (s_mp->sbm_flags & DR_MFLAG_SOURCE) {
553 t_mp = s_mp->sbm_peer;
555 ASSERT(t_mp->sbm_peer == s_mp);
561 state = s_mp->sbm_cm.sbdev_state;
563 dr_dev_err(CE_IGNORE, &s_mp->sbm_cm, ESBD_STATE);
581 if (s_mp->sbm_flags & DR_MFLAG_RELDONE) {
583 if (s_mp->sbm_del_mlist)
584 dr_mem_ecache_scrub(s_mp, s_mp->sbm_del_mlist);
602 err = drmach_mem_disable(s_mp->sbm_cm.sbdev_id);
604 DRERR_SET_C(&s_mp->sbm_cm.sbdev_error, &err);
608 rv = dr_move_memory(hp, s_mp, t_mp);
612 s_mp->sbm_cm.sbdev_bp->b_num,
616 (void) dr_cancel_mem(s_mp);
623 err = drmach_unconfigure(s_mp->sbm_cm.sbdev_id,
1105 dr_post_detach_mem_unit(dr_mem_unit_t *s_mp)
1107 uint64_t sz = s_mp->sbm_slice_size;
1121 /* s_mp->sbm_del_mlist could be NULL, meaning no deleted spans */
1123 f, s_mp->sbm_cm.sbdev_path);
1124 PR_MEMLIST_DUMP(s_mp->sbm_del_mlist);
1127 ASSERT(s_mp->sbm_del_mlist == NULL ||
1128 (s_mp->sbm_flags & DR_MFLAG_RELDONE) != 0);
1130 if (s_mp->sbm_flags & DR_MFLAG_SOURCE) {
1131 t_mp = s_mp->sbm_peer;
1134 ASSERT(t_mp->sbm_peer == s_mp);
1153 if (s_mp->sbm_flags & DR_MFLAG_RELDONE) {
1154 x_mp = s_mp;
1172 if (s_mp->sbm_cm.sbdev_error) {
1174 s_mp->sbm_cm.sbdev_path, s_mp->sbm_flags);
1175 DR_DEV_CLR_UNREFERENCED(&s_mp->sbm_cm);
1176 DR_DEV_CLR_RELEASED(&s_mp->sbm_cm);
1177 dr_device_transition(&s_mp->sbm_cm, DR_STATE_CONFIGURED);
1182 s_mp->sbm_cm.sbdev_path, s_mp->sbm_flags);
1191 s_old_basepa = _ptob64(s_mp->sbm_basepfn);
1192 err = drmach_mem_get_base_physaddr(s_mp->sbm_cm.sbdev_id,
1214 s_copy_mlist = memlist_dup(s_mp->sbm_mlist);
1215 for (ml = s_mp->sbm_del_mlist; ml; ml = ml->ml_next) {
1243 for (ml = s_mp->sbm_mlist; ml; ml = ml->ml_next) {
1249 PR_MEMLIST_DUMP(s_mp->sbm_mlist);
1258 t_mp->sbm_dyn_segs = s_mp->sbm_dyn_segs;
1259 s_mp->sbm_dyn_segs = NULL;
1276 if (s_mp->sbm_flags & DR_MFLAG_MEMRESIZE &&
1296 for (ml = s_mp->sbm_del_mlist; ml; ml = ml->ml_next) {
1315 dr_add_memory_spans(s_mp, t_excess_mlist);
1322 * Renaming s_mp->sbm_del_mlist is not necessary. This
1326 for (ml = s_mp->sbm_del_mlist; ml; ml = ml->ml_next) {
1332 PR_MEMLIST_DUMP(s_mp->sbm_del_mlist);
1352 err = drmach_mem_del_span(s_mp->sbm_cm.sbdev_id,
1355 DRERR_SET_C(&s_mp->sbm_cm.sbdev_error, &err);
1360 err = drmach_mem_del_span(s_mp->sbm_cm.sbdev_id,
1363 DRERR_SET_C(&s_mp->sbm_cm.sbdev_error, &err);
1400 * words, when s_mp->sbm_cm.sbdev_error is NULL). This memlist is
1408 if (s_mp->sbm_del_mlist && s_mp->sbm_del_mlist != s_mp->sbm_mlist)
1409 memlist_delete(s_mp->sbm_del_mlist);
1411 if (s_mp->sbm_cm.sbdev_error && s_mp->sbm_mlist) {
1412 memlist_delete(s_mp->sbm_mlist);
1413 s_mp->sbm_mlist = NULL;
1416 if (s_mp->sbm_dyn_segs != NULL && s_mp->sbm_cm.sbdev_error == 0) {
1417 memlist_delete(s_mp->sbm_dyn_segs);
1418 s_mp->sbm_dyn_segs = NULL;
1421 s_mp->sbm_del_mlist = NULL;
1422 s_mp->sbm_peer = NULL;
1423 s_mp->sbm_flags = 0;
1424 s_mp->sbm_cm.sbdev_busy = 0;
1425 dr_init_mem_unit_data(s_mp);
1427 PR_MEM("%s: cached memlist for %s:", f, s_mp->sbm_cm.sbdev_path);
1428 PR_MEMLIST_DUMP(s_mp->sbm_mlist);
1613 dr_mem_unit_t *s_mp = (dr_mem_unit_t *)cp;
1622 if (s_mp->sbm_flags & DR_MFLAG_SOURCE) {
1623 t_mp = s_mp->sbm_peer;
1625 ASSERT(t_mp->sbm_peer == s_mp);
1634 ASSERT(s_mp->sbm_flags & DR_MFLAG_RELOWNER);
1635 ASSERT(s_mp->sbm_flags & DR_MFLAG_RESERVED);
1636 rv = kphysm_del_release(s_mp->sbm_memhandle);
1645 s_mp->sbm_flags &= ~DR_MFLAG_RELOWNER;
1652 if (s_mp->sbm_cm.sbdev_error != NULL) {
1655 s_mp->sbm_cm.sbdev_path,
1656 s_mp->sbm_cm.sbdev_error->e_code);
1672 if (s_mp->sbm_del_mlist != s_mp->sbm_mlist)
1673 memlist_delete(s_mp->sbm_del_mlist);
1674 s_mp->sbm_del_mlist = NULL;
1676 if (s_mp->sbm_mlist != NULL) {
1677 memlist_delete(s_mp->sbm_mlist);
1678 s_mp->sbm_mlist = NULL;
1681 s_mp->sbm_peer = NULL;
1682 s_mp->sbm_flags = 0;
1683 s_mp->sbm_cm.sbdev_busy = 0;
1689 DR_DEV_SET_RELEASED(&s_mp->sbm_cm);
1690 dr_device_transition(&s_mp->sbm_cm, DR_STATE_RELEASE);
1719 if (s_mp->sbm_del_mlist != NULL) {
1720 mp = s_mp;
1736 DR_DEV_INTERNAL_ERROR(&s_mp->sbm_cm);
1740 s_mp->sbm_flags |= DR_MFLAG_RELDONE;
1745 if (dr_release_dev_done(&s_mp->sbm_cm) != 0) {
1752 f, s_mp->sbm_cm.sbdev_path);
1754 s_mp->sbm_cm.sbdev_ostate = SBD_STAT_UNCONFIGURED;
1809 dr_cancel_mem(dr_mem_unit_t *s_mp)
1815 state = s_mp->sbm_cm.sbdev_state;
1817 if (s_mp->sbm_flags & DR_MFLAG_TARGET) {
1821 } else if (s_mp->sbm_flags & DR_MFLAG_SOURCE) {
1822 t_mp = s_mp->sbm_peer;
1824 ASSERT(t_mp->sbm_peer == s_mp);
1836 ASSERT((s_mp->sbm_flags & DR_MFLAG_RELOWNER) == 0);
1846 if (s_mp->sbm_del_mlist != NULL) {
1848 f, s_mp->sbm_cm.sbdev_path);
1850 dr_add_memory_spans(s_mp, s_mp->sbm_del_mlist);
1858 ASSERT((s_mp->sbm_flags & DR_MFLAG_RELOWNER) == 0);
1880 if (s_mp->sbm_del_mlist != s_mp->sbm_mlist)
1881 memlist_delete(s_mp->sbm_del_mlist);
1882 s_mp->sbm_del_mlist = NULL;
1884 if (s_mp->sbm_mlist != NULL) {
1885 memlist_delete(s_mp->sbm_mlist);
1886 s_mp->sbm_mlist = NULL;
1889 s_mp->sbm_peer = NULL;
1890 s_mp->sbm_flags = 0;
1891 s_mp->sbm_cm.sbdev_busy = 0;
1892 dr_init_mem_unit_data(s_mp);
1898 f, (int)state, s_mp->sbm_cm.sbdev_path);
2067 dr_mem_unit_t *s_mp, struct memlist *s_ml)
2069 pgcnt_t sz = _b64top(s_mp->sbm_slice_size);
2100 ASSERT(s_mp->sbm_npages != 0);
2101 s_phi = (s_mp->sbm_basepfn + s_mp->sbm_npages - 1) & sm;
2131 if (s_mp == t_mp) {
2155 if (t_mp->sbm_npages == s_mp->sbm_npages &&
2159 } else if (t_mp->sbm_npages > s_mp->sbm_npages &&
2206 s_mp->sbm_basepfn,
2207 s_mp->sbm_npages, &s_mq);
2215 s_mp->sbm_cm.sbdev_path,
2217 s_mp->sbm_basepfn,
2218 s_mp->sbm_npages);
2242 s_mp->sbm_cm.sbdev_path,
2378 if (t_mp->sbm_npages < s_mp->sbm_npages || t_phi < s_phi) {
2399 (s_mp->sbm_basepfn & sm);
2404 _ptob64(s_mp->sbm_basepfn),
2419 excess = (s_mp->sbm_basepfn + s_mp->sbm_npages)
2432 f, s_mp->sbm_cm.sbdev_path);
2524 if (t_mp->sbm_npages < s_mp->sbm_npages || t_phi < s_phi) {
2537 pfn = s_mp->sbm_basepfn & ~sm;
2547 PR_MEMLIST_DUMP(s_mp->sbm_dyn_segs);
2548 for (ml = s_mp->sbm_dyn_segs; ml; ml = ml->ml_next) {
2561 f, s_mp->sbm_cm.sbdev_path);
2565 if (dr_reserve_mem_spans(&s_mp->sbm_memhandle, d_ml)
2577 s_mp->sbm_flags |= DR_MFLAG_RESERVED;
2587 if (dr_reserve_mem_spans(&s_mp->sbm_memhandle, t_ml) == 0) {
2606 * (s_mp->sbm_memhandle) is kphysm_del_release'd.
2609 s_mp->sbm_flags &= ~DR_MFLAG_RESERVED;
2624 f, s_mp->sbm_cm.sbdev_path);
2635 s_mp->sbm_cm.sbdev_path);
2637 s_mp->sbm_peer = c_mp;
2638 s_mp->sbm_flags |= DR_MFLAG_SOURCE;
2639 s_mp->sbm_del_mlist = d_ml; /* spans to be deleted, if any */
2640 s_mp->sbm_mlist = s_ml;
2641 s_mp->sbm_cm.sbdev_busy = 1;
2643 c_mp->sbm_peer = s_mp;
2649 s_mp->sbm_flags &= ~DR_MFLAG_MEMRESIZE;
2650 if (c_mp->sbm_npages > s_mp->sbm_npages) {
2651 s_mp->sbm_flags |= DR_MFLAG_MEMUPSIZE;
2653 f, s_mp->sbm_npages, c_mp->sbm_npages);
2654 } else if (c_mp->sbm_npages < s_mp->sbm_npages) {
2655 s_mp->sbm_flags |= DR_MFLAG_MEMDOWNSIZE;
2657 f, s_mp->sbm_npages, c_mp->sbm_npages);