[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4800389.dqcmlJY3HC@wuerfel>
Date: Tue, 10 Nov 2015 10:28:46 +0100
From: Arnd Bergmann <arnd@...db.de>
To: linux-arm-kernel@...ts.infradead.org
Cc: Lucas Stach <l.stach@...gutronix.de>,
Sanjeev Sharma <sanjeev_sharma@...tor.com>,
linux-pci@...r.kernel.org, Richard.Zhu@...escale.com,
linux-kernel@...r.kernel.org, David Mueller <dave.mueller@....ch>,
bhelgaas@...gle.com
Subject: Re: [PATCH] PCI: imx6:don't sleep in atomic context
On Tuesday 10 November 2015 09:41:18 Lucas Stach wrote:
> > diff --git a/drivers/pci/host/pci-imx6.c b/drivers/pci/host/pci-imx6.c
> > index 233a196..9769b13 100644
> > --- a/drivers/pci/host/pci-imx6.c
> > +++ b/drivers/pci/host/pci-imx6.c
> > @@ -499,7 +499,7 @@ static int imx6_pcie_link_up(struct pcie_port *pp)
> > * Wait a little bit, then re-check if the link finished
> > * the training.
> > */
> > - usleep_range(1000, 2000);
> > + mdelay(1000);
>
> A mdelay(1000) is a whole different timescale than a usleep(1000). If
> this patch works for you with mdelay(1) or maybe mdelay(2) I would be
> fine with it.
mdelay(1) is still a really long time to block the CPU for, on potentially
every config space access.
Everybody else just returns the link status here, which seems to be
the better alternative. If you need to delay the startup, better have
a msleep(1) loop in the initial probe function where you are allowed to
sleep.
Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists