Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp3785792pxb; Tue, 19 Apr 2022 09:46:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwLvd9JowRuV9RXnmGPdQMIl2GV/3m6Whjp8/PoFhCu0/2e31iYzxUlaMEal+5x8rxtX3n8 X-Received: by 2002:a17:902:e552:b0:156:9cdc:e6cf with SMTP id n18-20020a170902e55200b001569cdce6cfmr16659836plf.78.1650386785861; Tue, 19 Apr 2022 09:46:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650386785; cv=none; d=google.com; s=arc-20160816; b=nGj8Hcx5PmxDH1vbghjNjgcVgNtsYIdkyBcHvGmNqGrmuXmdvIRrkMSXPaHFOdym/H 5BuvncRaLe6YNiQrNMzaezJoDsX/dVbwLuKYHdkRfo6plP+Qxxhu1Akn75C43rTKJubB +fRqtrG+TZsQhgBjBC6XKuQCjEpoXf2u2sepVa7ut6k+Hk9PH7jVie/RD8o3LMEtqWiy EjixW+auRtoJ0ctc2C3q2fOYwiKykQ0aqoQMTVNaWMzPhurpoBURTgzqwQ2DKXIbLCk6 MI5QgvZ6vTX5JMkar729Qtn5rK1bnLl8S8/o4aMo5lbVQvZ7OdOa7ebCHeMRdAU9CEWN KKUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version; bh=2tS14D5PGmg/JLCqgQ04J95Jt9tqRjNAbrf1/kgwkng=; b=eL5PkvEU5IuXiGKbP2UXQL4n2N7BiAjU+05TiUJtNDS9epKySeMgKuxjsD4pF0sXLv 79c+7CngZKOC13HirCSn9PRWUahOwSoNMGXifsXuyIJWEP+Nt4Ox51tZB0vAzu2cIhLX ifeDgY0lrhOELV6pFRyl0Oj9yvgl8qRJCB1F769TiknAjp1MnHPtnsrTofgxv73wkQWE E7895uhvDwYpn09fweXr/ih4+noqTUIWaNZkheHOeqkRxybVAn8CDFjK2VIjBJ3fR05F B4PtfcK2iKxD3cwc3mx5MgUSOyX4+NkNjWp4tHKdlUAZiO9JDqQzdRjSkVSrTDEB9Ica GQ+Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q12-20020a632a0c000000b00381facb2ec6si11628121pgq.728.2022.04.19.09.46.09; Tue, 19 Apr 2022 09:46:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1350238AbiDSJCr (ORCPT + 99 others); Tue, 19 Apr 2022 05:02:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58510 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1350267AbiDSJCe (ORCPT ); Tue, 19 Apr 2022 05:02:34 -0400 Received: from mail-qk1-f179.google.com (mail-qk1-f179.google.com [209.85.222.179]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 10416B876; Tue, 19 Apr 2022 01:59:51 -0700 (PDT) Received: by mail-qk1-f179.google.com with SMTP id q75so4289800qke.6; Tue, 19 Apr 2022 01:59:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=2tS14D5PGmg/JLCqgQ04J95Jt9tqRjNAbrf1/kgwkng=; b=duf6Gf8DnFDySzprLxJRPqjJacUoAkFKBAEiMVRMfLgDvkr1RZnUbp2X9jGfo0pbBw 3lihBbqPdKGoOYozgCT0GalQ8nd9HIXrcl6DYl0Rw3Pv73+HZPkg5920toXhs0bcF1Fp onFBA3RvUp7ubUwF2R/gJaRah4tjA4edNZy0cNQj0f6TYflvvQ5gnbyuchhgdfvkjfRb nJ5Z9iO0EfVH+v9XkUDk4CYq2fj/+DpYEDG8/G2/g/hI9+o0n0yCy64PioDhRqMEckyj s6+MIQl0FIjc7CPUcT6NFULrGum97VFjMFfljQ8HQn7D7kMyuSWTGaGsmjLVgWvU4tvT HObA== X-Gm-Message-State: AOAM531tdmIoQkhOOha/QfJEgKqsi178+qNNShY4RrQVwwV60HYTIQWR cgcSldTX0gD21xnVzMmCF1mji4D1U/TiUA== X-Received: by 2002:a05:620a:2441:b0:69c:3451:2a60 with SMTP id h1-20020a05620a244100b0069c34512a60mr8674837qkn.181.1650358789985; Tue, 19 Apr 2022 01:59:49 -0700 (PDT) Received: from mail-yw1-f178.google.com (mail-yw1-f178.google.com. [209.85.128.178]) by smtp.gmail.com with ESMTPSA id n22-20020ac85b56000000b002f1d7a2867dsm8945619qtw.67.2022.04.19.01.59.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 19 Apr 2022 01:59:49 -0700 (PDT) Received: by mail-yw1-f178.google.com with SMTP id 00721157ae682-2ebf4b91212so164793507b3.8; Tue, 19 Apr 2022 01:59:49 -0700 (PDT) X-Received: by 2002:a81:5210:0:b0:2ef:21e3:54dd with SMTP id g16-20020a815210000000b002ef21e354ddmr14521561ywb.438.1650358789297; Tue, 19 Apr 2022 01:59:49 -0700 (PDT) MIME-Version: 1.0 References: <20220419085330.1178925-1-valentin.caron@foss.st.com> <20220419085330.1178925-2-valentin.caron@foss.st.com> In-Reply-To: <20220419085330.1178925-2-valentin.caron@foss.st.com> From: Geert Uytterhoeven Date: Tue, 19 Apr 2022 10:59:38 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH V3 1/3] serial: stm32: remove infinite loop possibility in putchar function To: Valentin Caron Cc: Greg Kroah-Hartman , Jiri Slaby , Maxime Coquelin , Alexandre Torgue , "open list:SERIAL DRIVERS" , linux-stm32@st-md-mailman.stormreply.com, Linux ARM , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Valentin, On Tue, Apr 19, 2022 at 10:54 AM Valentin Caron wrote: > Rework stm32_usart_console_putchar() function in order to anticipate > the case where the character can never be sent. > > Signed-off-by: Valentin Caron Thanks for your patch! > --- a/drivers/tty/serial/stm32-usart.c > +++ b/drivers/tty/serial/stm32-usart.c > @@ -1640,10 +1640,16 @@ static void stm32_usart_console_putchar(struct uart_port *port, unsigned char ch > { > struct stm32_port *stm32_port = to_stm32_port(port); > const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; > + u32 isr; > + int ret; > > - while (!(readl_relaxed(port->membase + ofs->isr) & USART_SR_TXE)) > - cpu_relax(); > - > + ret = readl_relaxed_poll_timeout_atomic(port->membase + ofs->isr, isr, > + (isr & USART_SR_TXE), 100, > + STM32_USART_TIMEOUT_USEC); > + if (ret != 0) { > + dev_err(port->dev, "Error while sending data in UART TX : %d\n", ret); Does it make sense to print this message, i.e. will the user ever see it? Or is the failure above temporary? I assume that you have seen this trigger? > + return; > + } > writel_relaxed(ch, port->membase + ofs->tdr); > } Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds