|
@@ -356,6 +356,27 @@ static int efx_probe_channel(struct efx_channel *channel)
|
|
|
}
|
|
|
|
|
|
|
|
|
+static void efx_set_channel_names(struct efx_nic *efx)
|
|
|
+{
|
|
|
+ struct efx_channel *channel;
|
|
|
+ const char *type = "";
|
|
|
+ int number;
|
|
|
+
|
|
|
+ efx_for_each_channel(channel, efx) {
|
|
|
+ number = channel->channel;
|
|
|
+ if (efx->n_channels > efx->n_rx_queues) {
|
|
|
+ if (channel->channel < efx->n_rx_queues) {
|
|
|
+ type = "-rx";
|
|
|
+ } else {
|
|
|
+ type = "-tx";
|
|
|
+ number -= efx->n_rx_queues;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ snprintf(channel->name, sizeof(channel->name),
|
|
|
+ "%s%s-%d", efx->name, type, number);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
/* Channels are shutdown and reinitialised whilst the NIC is running
|
|
|
* to propagate configuration changes (mtu, checksum offload), or
|
|
|
* to clear hardware error conditions
|
|
@@ -1002,6 +1023,7 @@ static int efx_probe_all(struct efx_nic *efx)
|
|
|
goto fail3;
|
|
|
}
|
|
|
}
|
|
|
+ efx_set_channel_names(efx);
|
|
|
|
|
|
return 0;
|
|
|
|
|
@@ -1483,6 +1505,7 @@ static int efx_netdev_event(struct notifier_block *this,
|
|
|
|
|
|
strcpy(efx->name, net_dev->name);
|
|
|
efx_mtd_rename(efx);
|
|
|
+ efx_set_channel_names(efx);
|
|
|
}
|
|
|
|
|
|
return NOTIFY_DONE;
|
|
@@ -1516,6 +1539,7 @@ static int efx_register_netdev(struct efx_nic *efx)
|
|
|
return rc;
|
|
|
}
|
|
|
strcpy(efx->name, net_dev->name);
|
|
|
+ efx_set_channel_names(efx);
|
|
|
|
|
|
return 0;
|
|
|
}
|