int xenvif_tx_action(struct xenvif *vif, int budget)
{
	unsigned nr_gops;
	int work_done, ret;

	if (unlikely(!tx_work_todo(vif)))
		return 0;

	nr_gops = xenvif_tx_build_gops(vif, budget);

	if (nr_gops == 0)
		return 0;

	ret = gnttab_map_refs(vif->tx_map_ops,
			      NULL,
			      vif->pages_to_map,
			      nr_gops);
	BUG_ON(ret);

	work_done = xenvif_tx_submit(vif);

	return work_done;
}
int xenvif_tx_action(struct xenvif *vif, int budget)
{
	unsigned nr_gops;
	int work_done, ret;

	if (unlikely(!tx_work_todo(vif)))
		return 0;

	nr_gops = xenvif_tx_build_gops(vif, budget);

	if (nr_gops == 0)
		return 0;

	ret = gnttab_map_refs(vif->tx_map_ops,
			      NULL,
			      vif->pages_to_map,
			      nr_gops);
	BUG_ON(ret);

	work_done = xenvif_tx_submit(vif);

	return work_done;
}