[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.02.1403182313110.18573@ionos.tec.linutronix.de>
Date: Tue, 18 Mar 2014 23:15:56 +0100 (CET)
From: Thomas Gleixner <tglx@...utronix.de>
To: Marc Kleine-Budde <mkl@...gutronix.de>
cc: LKML <linux-kernel@...r.kernel.org>,
Wolfgang Grandegger <wg@...ndegger.com>,
Markus Pargmann <mpa@...gutronix.de>,
Benedikt Spranger <b.spranger@...utronix.de>,
linux-can@...r.kernel.org, netdev@...r.kernel.org
Subject: Re: [patch 02/12] can: c_can: Fix hardware raminit function
On Tue, 18 Mar 2014, Marc Kleine-Budde wrote:
> On 03/18/2014 06:19 PM, Thomas Gleixner wrote:
> > +static void c_can_hw_raminit_wait(const struct c_can_priv *priv, u32 mask,
> > + u32 val)
> > +{
> > + /* We look only at the bits of our instance. */
> > + val &= mask;
> > + while ((readl(priv->raminit_ctrlreg) & mask) != val)
> > + udelay(1);
>
> Do we have to add a timeout here, or is it "safe" to have a potential
> endless loop here? As you have probably tortured the hardware and driver
> a lot (or have been tortured by them), I assume you would have added a
> timeout check if you had seen a lockup here.
I haven't seen any failure on that. We could add a timeout for
paranoia reasons. I'm quite sure that the raminit works as advertised
when we do it the right way. The only way to wreckage it so far is by
not waiting for it to complete.
Thanks,
tglx
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists