[Arm-dev] [PATCH] net: thunderx: acpi: fix LMAC initialization
Vadim Lomovtsev
Vadim.Lomovtsev at caviumnetworks.com
Fri Jan 13 10:44:15 UTC 2017
Hi Jim,
Could you please merge this patch to next kernel build/update?
This patch addresses MAC address instability.
Patch is applied upstream to next-20170113.
http://lists.infradead.org/pipermail/linux-arm-kernel/2017-January/479100.html
WBR,
Vadim
On Fri, Jan 13, 2017 at 02:16:52AM -0800, Vadim Lomovtsev wrote:
> While probing BGX we requesting appropriate QLM for it's configuration
> and get LMAC count by that request. Then, while reading configured
> MAC values from SSDT table we need to save them in proper mapping:
> BGX[i]->lmac[j].mac = <MAC value>
> to later provide for initialization stuff. In order to fill
> such mapping properly we need to add lmac index to be used while
> acpi initialization since at this moment bgx->lmac_count already contains
> actual value.
>
> Signed-off-by: Vadim Lomovtsev <Vadim.Lomovtsev at caviumnetworks.com>
> ---
> drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 11 ++++++-----
> 1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
> index be30ad0..a3f4f83 100644
> --- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
> +++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
> @@ -47,8 +47,9 @@ struct lmac {
> struct bgx {
> u8 bgx_id;
> struct lmac lmac[MAX_LMAC_PER_BGX];
> - int lmac_count;
> + u8 lmac_count;
> u8 max_lmac;
> + u8 acpi_lmac_idx;
> void __iomem *reg_base;
> struct pci_dev *pdev;
> bool is_dlm;
> @@ -1073,13 +1074,13 @@ static acpi_status bgx_acpi_register_phy(acpi_handle handle,
> if (acpi_bus_get_device(handle, &adev))
> goto out;
>
> - acpi_get_mac_address(dev, adev, bgx->lmac[bgx->lmac_count].mac);
> + acpi_get_mac_address(dev, adev, bgx->lmac[bgx->acpi_lmac_idx].mac);
>
> - SET_NETDEV_DEV(&bgx->lmac[bgx->lmac_count].netdev, dev);
> + SET_NETDEV_DEV(&bgx->lmac[bgx->acpi_lmac_idx].netdev, dev);
>
> - bgx->lmac[bgx->lmac_count].lmacid = bgx->lmac_count;
> + bgx->lmac[bgx->acpi_lmac_idx].lmacid = bgx->acpi_lmac_idx;
> + bgx->acpi_lmac_idx++; /* move to next LMAC */
> out:
> - bgx->lmac_count++;
> return AE_OK;
> }
>
> --
> 1.8.3.1
>
More information about the Arm-dev
mailing list