int
ionic_lif_start(struct ionic_lif *lif)
{
- uint32_t rx_mode = 0;
+ uint32_t rx_mode;
uint32_t i;
int err;
if (err)
return err;
- IONIC_PRINT(DEBUG, "Setting RX mode on port %u",
- lif->port_id);
-
- rx_mode |= IONIC_RX_MODE_F_UNICAST;
- rx_mode |= IONIC_RX_MODE_F_MULTICAST;
- rx_mode |= IONIC_RX_MODE_F_BROADCAST;
+ if (!lif->rx_mode) {
+ IONIC_PRINT(DEBUG, "Setting RX mode on %s",
+ lif->name);
- lif->rx_mode = 0; /* set by ionic_set_rx_mode */
+ rx_mode = IONIC_RX_MODE_F_UNICAST;
+ rx_mode |= IONIC_RX_MODE_F_MULTICAST;
+ rx_mode |= IONIC_RX_MODE_F_BROADCAST;
- ionic_set_rx_mode(lif, rx_mode);
+ ionic_set_rx_mode(lif, rx_mode);
+ }
IONIC_PRINT(DEBUG, "Starting %u RX queues and %u TX queues "
"on port %u",