Messages in this thread | | | Date | Wed, 9 Sep 2015 22:23:34 +0200 | From | Francois Romieu <> | Subject | Re: [PATCH net] r8169: Fix sleeping function called during get_stats64 |
| |
Corinna Vinschen <vinschen@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
| |