Fix netmap emulation when NICs attached to a VALE switch have a different

number of tx and rx rings

Submitted by:	Vincenzo Maffione
This commit is contained in:
luigi 2014-01-10 16:01:44 +00:00
parent 634487fef4
commit fc0f950d52

View File

@ -1835,12 +1835,15 @@ netmap_bwrap_register(struct netmap_adapter *na, int onoff)
hostna->up.na_lut_objtotal = na->na_lut_objtotal;
}
/* cross-link the netmap rings */
for (i = 0; i <= na->num_tx_rings; i++) {
/* cross-link the netmap rings
* The original number of rings comes from hwna,
* rx rings on one side equals tx rings on the other.
*/
for (i = 0; i <= na->num_rx_rings; i++) {
hwna->tx_rings[i].nkr_num_slots = na->rx_rings[i].nkr_num_slots;
hwna->tx_rings[i].ring = na->rx_rings[i].ring;
}
for (i = 0; i <= na->num_rx_rings; i++) {
for (i = 0; i <= na->num_tx_rings; i++) {
hwna->rx_rings[i].nkr_num_slots = na->tx_rings[i].nkr_num_slots;
hwna->rx_rings[i].ring = na->tx_rings[i].ring;
}