From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752135AbbKJJaL (ORCPT ); Tue, 10 Nov 2015 04:30:11 -0500 Received: from mout.kundenserver.de ([212.227.17.24]:54390 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751756AbbKJJaG (ORCPT ); Tue, 10 Nov 2015 04:30:06 -0500 From: Arnd Bergmann To: linux-arm-kernel@lists.infradead.org Cc: Lucas Stach , Sanjeev Sharma , linux-pci@vger.kernel.org, Richard.Zhu@freescale.com, linux-kernel@vger.kernel.org, David Mueller , bhelgaas@google.com Subject: Re: [PATCH] PCI: imx6:don't sleep in atomic context Date: Tue, 10 Nov 2015 10:28:46 +0100 Message-ID: <4800389.dqcmlJY3HC@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) In-Reply-To: <1447144878.3142.3.camel@pengutronix.de> References: <1447066080-5859-1-git-send-email-sanjeev_sharma@mentor.com> <1447144878.3142.3.camel@pengutronix.de> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:Aho0ImTUBCK59OEfaF005smYmPELk1sq589AEIEzH9o5t7zWMt5 R5YgDqxWGbRRyALMukayb+v8QnXV0RnaYcGk5dypXblyfvLdTzrT5cuJYUPbYawtDM21gkT ZGJL2MHY3tOXCLqbx0eaRatqOVN9R/YDRNeJYH6QQCgS3R9m8J7QJsCfx2/xeKmpyWYE5dx ZenKUa4qyoNYFR+EcBiSw== X-UI-Out-Filterresults: notjunk:1;V01:K0:rWKYxo4i/YQ=:QQLXmgWnpzkjVycC9k5g2n 3c6j+f8koN/l0vJq0a+6J2qIGaNmo89nvAMStmsXPuUi1B84frKFh4dV7KK9vtwSwkL+TjvnQ tRJUypnEhP21eE92Y+wD0jTAlOK0yUpANtRmq2w5I75asLkuVAJGIr30OQt9qHZAx16nZ9rRY dvAfaFuWcuYIZ9AZjP/+qmWMOaCb+ifaHEHaZzwVlTrVuZ4keTdnxpkIQbZ0Voa9i/m0StMYD 3qpNvvrcCvapERRXUHkQY7Bo+k3VcqJ6yoy25rqohw74naYLYeywU8CabLpbDr2VXYmCzN5xI 4srmNlDnE/s2VcYlj1URKO+S1OGuB34Z15J4cVXAH1WLmO0UUrHezJsWz7/aXpd7/vA2S5+4Z QzR8hJgOTkKyR+VCo19LpNr/K8RqXBUBq3R3FrUycLn+uNVh9ZYOFp+1+TDbVSLRgdTY2QSJv M3Vc3Hd8MJliIUV52UdR4SREWFf4bEsaS7XalZKZZqa3kMHNVJonWAr2G4lVi2SLLaDAWX+6p fj1EDQD2Wxy4lzGyBwUzez6w2lmfa5YzbemMqHDSo9Y719KIyJ6pk2+aH9gXN2qUogoiRXTub RD63Z/1gMQOJPhHjUWDyO7jPWsNfYgLAxWorKcwigdE6vjwv8UtTABqIll+TfVReD4tsH1cYk 3rHw4N5FjyYE4qPYOWmeFaWoUQi2x2/4a+F7I9VR0vPEE5ihNwb8vms4aud1qNdQ5UL2KRRSn hjSfL0+9SiBtXQ1X Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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