View | Details | Raw Unified | Return to bug 206699
Collapse All | Expand All

(-)sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c (-6 / +6 lines)
Lines 1525-1536 Link Here
1525
{
1525
{
1526
	struct hv_sgl_node *sgl_node = NULL;
1526
	struct hv_sgl_node *sgl_node = NULL;
1527
1527
1528
	sgl_node = LIST_FIRST(&g_hv_sgl_page_pool.in_use_sgl_list);
1528
	if (LIST_EMPTY(&g_hv_sgl_page_pool.in_use_sgl_list)) {
1529
	LIST_REMOVE(sgl_node, link);
1530
	if (NULL == sgl_node) {
1531
		printf("storvsc error: not enough in use sgl\n");
1529
		printf("storvsc error: not enough in use sgl\n");
1532
		return;
1530
		return;
1533
	}
1531
	}
1532
	sgl_node = LIST_FIRST(&g_hv_sgl_page_pool.in_use_sgl_list);
1533
	LIST_REMOVE(sgl_node, link);
1534
	sgl_node->sgl_data = sgl;
1534
	sgl_node->sgl_data = sgl;
1535
	LIST_INSERT_HEAD(&g_hv_sgl_page_pool.free_sgl_list, sgl_node, link);
1535
	LIST_INSERT_HEAD(&g_hv_sgl_page_pool.free_sgl_list, sgl_node, link);
1536
}
1536
}
Lines 1556-1567 Link Here
1556
	struct hv_sgl_node *sgl_node = NULL;	
1556
	struct hv_sgl_node *sgl_node = NULL;	
1557
1557
1558
	/* get struct sglist from free_sgl_list */
1558
	/* get struct sglist from free_sgl_list */
1559
	sgl_node = LIST_FIRST(&g_hv_sgl_page_pool.free_sgl_list);
1559
	if (LIST_EMPTY(&g_hv_sgl_page_pool.free_sgl_list)) {
1560
	LIST_REMOVE(sgl_node, link);
1561
	if (NULL == sgl_node) {
1562
		printf("storvsc error: not enough free sgl\n");
1560
		printf("storvsc error: not enough free sgl\n");
1563
		return NULL;
1561
		return NULL;
1564
	}
1562
	}
1563
	sgl_node = LIST_FIRST(&g_hv_sgl_page_pool.free_sgl_list);
1564
	LIST_REMOVE(sgl_node, link);
1565
	bounce_sgl = sgl_node->sgl_data;
1565
	bounce_sgl = sgl_node->sgl_data;
1566
	LIST_INSERT_HEAD(&g_hv_sgl_page_pool.in_use_sgl_list, sgl_node, link);
1566
	LIST_INSERT_HEAD(&g_hv_sgl_page_pool.in_use_sgl_list, sgl_node, link);
1567
1567
Lines 1924-1929 Link Here
1924
}
1924
}

Return to bug 206699