Corinna Vinschen <vinsc...@redhat.com> :
[...]
> diff --git a/drivers/net/ethernet/realtek/r8169.c 
> b/drivers/net/ethernet/realtek/r8169.c
> index 24dcbe6..630811a 100644
> --- a/drivers/net/ethernet/realtek/r8169.c
> +++ b/drivers/net/ethernet/realtek/r8169.c
[...]
> +     if (!paddr)
> +             return false;

I guess this is the secret recipe.

What about replacing this part with an adequate barrier in rtl_init_one ?

[...]
> @@ -8447,9 +8411,14 @@ static int rtl_init_one(struct pci_dev *pdev, const 
> struct pci_device_id *ent)
>  
>       tp->rtl_fw = RTL_FIRMWARE_UNKNOWN;
>  
> +     tp->CntArray = dma_alloc_coherent (&pdev->dev, sizeof(*tp->CntArray),
> +                                        &tp->CntPhysAddr, GFP_KERNEL);
> +     if (!tp->CntArray)
> +             goto err_out_cnt_4;
> +

rc is still zero here so rtl_init_one will return success.

>       rc = register_netdev(dev);
>       if (rc < 0)
> -             goto err_out_msi_4;
> +             goto err_out_msi_5;
>  
>       pci_set_drvdata(pdev, dev);

-- 
Ueimor
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to