Lines Matching refs:dm

556 static void post_status(struct hv_dynmem_device *dm);
878 struct hv_dynmem_device *dm = &dm_device; in hot_add_req() local
886 pg_start = dm->ha_wrk.ha_page_range.finfo.start_page; in hot_add_req()
887 pfn_cnt = dm->ha_wrk.ha_page_range.finfo.page_cnt; in hot_add_req()
889 rg_start = dm->ha_wrk.ha_region_range.finfo.start_page; in hot_add_req()
890 rg_sz = dm->ha_wrk.ha_region_range.finfo.page_cnt; in hot_add_req()
892 if ((rg_start == 0) && (!dm->host_specified_ha_region)) { in hot_add_req()
918 dm->num_pages_added += resp.page_count; in hot_add_req()
947 dm->state = DM_INITIALIZED; in hot_add_req()
949 vmbus_sendpacket(dm->dev->channel, &resp, in hot_add_req()
955 static void process_info(struct hv_dynmem_device *dm, struct dm_info_msg *msg) in process_info() argument
1010 static void post_status(struct hv_dynmem_device *dm) in post_status() argument
1043 dm->num_pages_ballooned + in post_status()
1044 (dm->num_pages_added > dm->num_pages_onlined ? in post_status()
1045 dm->num_pages_added - dm->num_pages_onlined : 0) + in post_status()
1064 vmbus_sendpacket(dm->dev->channel, &status, in post_status()
1071 static void free_balloon_pages(struct hv_dynmem_device *dm, in free_balloon_pages() argument
1082 dm->num_pages_ballooned--; in free_balloon_pages()
1088 static unsigned int alloc_balloon_pages(struct hv_dynmem_device *dm, in alloc_balloon_pages() argument
1115 dm->num_pages_ballooned += alloc_unit; in alloc_balloon_pages()
1226 static void balloon_down(struct hv_dynmem_device *dm, in balloon_down() argument
1235 free_balloon_pages(dm, &range_array[i]); in balloon_down()
1252 dm->state = DM_INITIALIZED; in balloon_down()
1259 struct hv_dynmem_device *dm = dm_dev; in dm_thread_func() local
1269 post_status(dm); in dm_thread_func()
1276 static void version_resp(struct hv_dynmem_device *dm, in version_resp() argument
1288 complete(&dm->host_event); in version_resp()
1298 if (dm->next_version == 0) in version_resp()
1305 version_req.version.version = dm->next_version; in version_resp()
1313 dm->next_version = DYNMEM_PROTOCOL_VERSION_WIN7; in version_resp()
1317 dm->next_version = 0; in version_resp()
1321 ret = vmbus_sendpacket(dm->dev->channel, &version_req, in version_resp()
1332 dm->state = DM_INIT_ERROR; in version_resp()
1333 complete(&dm->host_event); in version_resp()
1336 static void cap_resp(struct hv_dynmem_device *dm, in cap_resp() argument
1341 dm->state = DM_INIT_ERROR; in cap_resp()
1343 complete(&dm->host_event); in cap_resp()
1353 struct hv_dynmem_device *dm = hv_get_drvdata(dev); in balloon_onchannelcallback() local
1369 version_resp(dm, in balloon_onchannelcallback()
1374 cap_resp(dm, in balloon_onchannelcallback()
1379 if (dm->state == DM_BALLOON_UP) in balloon_onchannelcallback()
1382 dm->state = DM_BALLOON_UP; in balloon_onchannelcallback()
1388 dm->state = DM_BALLOON_DOWN; in balloon_onchannelcallback()
1389 balloon_down(dm, in balloon_onchannelcallback()
1394 if (dm->state == DM_HOT_ADD) in balloon_onchannelcallback()
1396 dm->state = DM_HOT_ADD; in balloon_onchannelcallback()
1404 dm->ha_wrk.ha_page_range = *ha_pg_range; in balloon_onchannelcallback()
1405 dm->ha_wrk.ha_region_range.page_range = 0; in balloon_onchannelcallback()
1412 dm->host_specified_ha_region = true; in balloon_onchannelcallback()
1415 dm->ha_wrk.ha_page_range = *ha_pg_range; in balloon_onchannelcallback()
1416 dm->ha_wrk.ha_region_range = *ha_region; in balloon_onchannelcallback()
1422 process_info(dm, (struct dm_info_msg *)dm_msg); in balloon_onchannelcallback()
1581 struct hv_dynmem_device *dm = hv_get_drvdata(dev); in balloon_remove() local
1585 if (dm->num_pages_ballooned != 0) in balloon_remove()
1586 pr_warn("Ballooned pages: %d\n", dm->num_pages_ballooned); in balloon_remove()
1588 cancel_work_sync(&dm->balloon_wrk.wrk); in balloon_remove()
1589 cancel_work_sync(&dm->ha_wrk.wrk); in balloon_remove()
1592 kthread_stop(dm->thread); in balloon_remove()
1598 list_for_each_safe(cur, tmp, &dm->ha_region_list) { in balloon_remove()