From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bryan Wu Subject: [PATCH 3/9] Blackfin Serial Driver: use barrier instead of cpu_relax for Blackfin SMP like patch Date: Fri, 17 Oct 2008 01:44:01 +0800 Message-ID: <1224179047-13073-4-git-send-email-cooloney@kernel.org> References: <1224179047-13073-1-git-send-email-cooloney@kernel.org> Return-path: Received: from ti-out-0910.google.com ([209.85.142.191]:21761 "EHLO ti-out-0910.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757891AbYJPRoT (ORCPT ); Thu, 16 Oct 2008 13:44:19 -0400 Received: by ti-out-0910.google.com with SMTP id b6so49515tic.23 for ; Thu, 16 Oct 2008 10:44:18 -0700 (PDT) In-Reply-To: <1224179047-13073-1-git-send-email-cooloney@kernel.org> Sender: linux-serial-owner@vger.kernel.org List-Id: linux-serial@vger.kernel.org To: alan@redhat.com Cc: linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, Graf Yang , Bryan Wu From: Graf Yang We are making a SMP like patch to blackfin, cpu_relax() is replaced by a data cache flush function which will count it to a per-cpu counter. If this serial function is called too early, the per-cpu data area have not been initialized, this call will cause crash. So we'd like to use barrier() instead of cpu_relax(). Signed-off-by: Graf Yang Signed-off-by: Bryan Wu --- drivers/serial/bfin_5xx.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/drivers/serial/bfin_5xx.c b/drivers/serial/bfin_5xx.c index 16b891e..aea3a53 100644 --- a/drivers/serial/bfin_5xx.c +++ b/drivers/serial/bfin_5xx.c @@ -1107,7 +1107,8 @@ static __init void early_serial_putc(struct uart_port *port, int ch) struct bfin_serial_port *uart = (struct bfin_serial_port *)port; while ((!(UART_GET_LSR(uart) & THRE)) && --timeout) - cpu_relax(); + barrier(); + UART_PUT_CHAR(uart, ch); } -- 1.5.6