Commit 6602041b authored by Ben Hutchings's avatar Ben Hutchings Committed by David S. Miller

sfc: Store port number in private data, not net_device::dev_id

We should not use net_device::dev_id to indicate the port number, as
this affects the way the local part of IPv6 addresses is normally
generated.

This field was intended for use where multiple devices may share a
single assigned MAC address and need to have different IPv6 addresses.
Siena's two ports each have their own MAC addresses.
Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 503b47ea
...@@ -784,6 +784,7 @@ struct efx_nic { ...@@ -784,6 +784,7 @@ struct efx_nic {
char name[IFNAMSIZ]; char name[IFNAMSIZ];
struct pci_dev *pci_dev; struct pci_dev *pci_dev;
unsigned int port_num;
const struct efx_nic_type *type; const struct efx_nic_type *type;
int legacy_irq; int legacy_irq;
bool legacy_irq_enabled; bool legacy_irq_enabled;
...@@ -916,7 +917,7 @@ static inline int efx_dev_registered(struct efx_nic *efx) ...@@ -916,7 +917,7 @@ static inline int efx_dev_registered(struct efx_nic *efx)
static inline unsigned int efx_port_num(struct efx_nic *efx) static inline unsigned int efx_port_num(struct efx_nic *efx)
{ {
return efx->net_dev->dev_id; return efx->port_num;
} }
/** /**
......
...@@ -304,7 +304,7 @@ static int siena_probe_nic(struct efx_nic *efx) ...@@ -304,7 +304,7 @@ static int siena_probe_nic(struct efx_nic *efx)
} }
efx_reado(efx, &reg, FR_AZ_CS_DEBUG); efx_reado(efx, &reg, FR_AZ_CS_DEBUG);
efx->net_dev->dev_id = EFX_OWORD_FIELD(reg, FRF_CZ_CS_PORT_NUM) - 1; efx->port_num = EFX_OWORD_FIELD(reg, FRF_CZ_CS_PORT_NUM) - 1;
efx_mcdi_init(efx); efx_mcdi_init(efx);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment