Messages in this thread | | | Date | Fri, 6 Mar 2009 14:38:16 -0800 | From | Andrew Morton <> | Subject | Re: [PATCH 06/18] Blackfin Serial Driver: explain why we cannot cpu_relax() in early serial code |
| |
On Fri, 6 Mar 2009 14:42:48 +0800 Bryan Wu <cooloney@kernel.org> wrote:
> From: Mike Frysinger <vapier.adi@gmail.com> > > Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> > Signed-off-by: Bryan Wu <cooloney@kernel.org> > --- > drivers/serial/bfin_5xx.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/drivers/serial/bfin_5xx.c b/drivers/serial/bfin_5xx.c > index 5a163f6..de8709d 100644 > --- a/drivers/serial/bfin_5xx.c > +++ b/drivers/serial/bfin_5xx.c > @@ -1190,6 +1190,10 @@ static __init void early_serial_putc(struct uart_port *port, int ch) > unsigned timeout = 0xffff; > struct bfin_serial_port *uart = (struct bfin_serial_port *)port; > > + /* We cannot cpu_relax() here as doing so on the BF561 relies > + * on the per-cpu region being setup, and since this is early > + * serial code, it may not yet be usable ... > + */ > while ((!(UART_GET_LSR(uart) & THRE)) && --timeout) > barrier();
Again: this is blackfin core breakage.
| |