Received: by 2002:ac0:e34a:0:0:0:0:0 with SMTP id g10csp385536imn; Mon, 25 Jul 2022 20:29:40 -0700 (PDT) X-Google-Smtp-Source: AGRyM1se+Q5UOktf2h5O9wV2JE7E7DwgW+b+EmJH5TdmM88i+wXpgvYg+MdUIkcscOcRueNXo4fs X-Received: by 2002:aa7:d9d3:0:b0:43b:c457:fb06 with SMTP id v19-20020aa7d9d3000000b0043bc457fb06mr15635104eds.5.1658806179963; Mon, 25 Jul 2022 20:29:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658806179; cv=none; d=google.com; s=arc-20160816; b=Z9YiljWzH8HG7iOGyo8eQSxoKYMzEfWZ7mwwSwbqS5eIfkzxEYxaQ8qHfqKGIEzOqZ J8/oECVxxqkzekpqw2I7jtUf4Jbiy7zI65kz0ta5EquC0mf/jTQ8l1ijBr0h7yiCticl xqKt8Xl+r1yFhqmTg9X9SdkroThiDoaAYF4OM1XMqLg9dM3pq4zXnpgGbPqV+WogGOsX XOGgbjzMXn4cS5TiUcuCfW9xhtrE+ylnzWlY4Ryszhqs+g0P88LThBCNlgPePj2xLNbU D6bPJAoOzbDohZdsQfqWVAaTOnKqdNpgMIg+jtPZQP9FjPPlVpd8H3CSB1SwQS3RTfW7 ZY/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from; bh=TD+e/I7GGS+ILXwRG14A/tVOiaz5z/MRcnupqXPUxN4=; b=LTkLitD5brd258qJsMauhcAcF113oxRL3paiOLEKI8FtiBzQKfRKvqVDGdXj9Zmy7L RwJ5WmXb47WWNF+v4KpzrDa84qRbpd6k+EAuvH8cic5Kc3C3zo6jiW2eKI528pPM+04+ V/bLCpatQdJ+oJQVh3Hdq67VmgXkgdf6r7tVnttwAvvLxtbc08+8/ybterJcTBrMVtwU qw9khdfwat2jC/YqjRj6B4UWAkS6L3SLIkCZgQ1WHypkAJnL0PFuUS/6ha1L6Ou52pho GfjXdzMg71f08c9lmG5vMRZRcOLkBYG+jztXM3DoGGdQ6Ca/Agrxl4jlF4cfTF+zI/8K kJ1g== 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 z12-20020a056402274c00b0043bdd032e2esi10357134edd.473.2022.07.25.20.29.02; Mon, 25 Jul 2022 20:29:39 -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 S236994AbiGZDYr (ORCPT + 99 others); Mon, 25 Jul 2022 23:24:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35690 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237524AbiGZDYn (ORCPT ); Mon, 25 Jul 2022 23:24:43 -0400 Received: from zg8tmja5ljk3lje4ms43mwaa.icoremail.net (zg8tmja5ljk3lje4ms43mwaa.icoremail.net [209.97.181.73]) by lindbergh.monkeyblade.net (Postfix) with SMTP id D08EA2A703; Mon, 25 Jul 2022 20:24:40 -0700 (PDT) Received: from ubuntu.localdomain (unknown [218.12.17.60]) by mail-app2 (Coremail) with SMTP id by_KCgAnLfVlXt9iqVNnAQ--.12653S2; Tue, 26 Jul 2022 11:24:30 +0800 (CST) From: Duoming Zhou To: linux-hams@vger.kernel.org Cc: ralf@linux-mips.org, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Duoming Zhou Subject: [PATCH net v2] netrom: fix sleep in atomic context bugs in timer handlers Date: Tue, 26 Jul 2022 11:24:20 +0800 Message-Id: <20220726032420.5516-1-duoming@zju.edu.cn> X-Mailer: git-send-email 2.17.1 X-CM-TRANSID: by_KCgAnLfVlXt9iqVNnAQ--.12653S2 X-Coremail-Antispam: 1UD129KBjvJXoW7CrW5AFW8AF4kuFWxKw17ZFb_yoW8GFyDpF Z7KF9IyF4qqw1UAay8Jw4ku34Y9wn5JF43G340vw4Fy3s0qrWUJFWjkFWjqF4v9rWxWFWY vFs0v3WUJ3W2yFJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUkq14x267AKxVW8JVW5JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02 1l84ACjcxK6xIIjxv20xvE14v26w1j6s0DM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4U JVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gc CE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E 2Ix0cI8IcVAFwI0_JrI_JrylYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJV W8JwACjcxG0xvY0x0EwIxGrwACjI8F5VA0II8E6IAqYI8I648v4I1lc2xSY4AK67AK6r48 MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr 0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUtVW8ZwCIc40Y0x0E wIxGrwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVW8JV WxJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAI cVC2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7VUb2g4DUUUUU== X-CM-SenderInfo: qssqjiasttq6lmxovvfxof0/1tbiAggDAVZdta05PAABsf X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS autolearn=ham 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 There are sleep in atomic context bugs in timer handlers of netrom such as nr_t1timer_expiry(), nr_t2timer_expiry(), nr_heartbeat_expiry(), nr_idletimer_expiry() and so on. The root cause is kmemdup() with GFP_KERNEL parameter that may sleep could be called by different timer handlers which is in interrupt context. One of the call paths that could trigger bug is shown below: (interrupt context) nr_heartbeat_expiry nr_write_internal nr_transmit_buffer nr_route_frame nr_add_node kmemdup(..,GFP_KERNEL) //may sleep This patch changes gfp_t parameter of kmemdup in nr_add_node() from GFP_KERNEL to GFP_ATOMIC in order to prevent sleep in atomic context bugs. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Signed-off-by: Duoming Zhou --- Changes in v2: - Correct the "Fixes" tag. net/netrom/nr_route.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/netrom/nr_route.c b/net/netrom/nr_route.c index baea3cbd76c..1ddcf13de6a 100644 --- a/net/netrom/nr_route.c +++ b/net/netrom/nr_route.c @@ -163,7 +163,7 @@ static int __must_check nr_add_node(ax25_address *nr, const char *mnemonic, if (ax25_digi != NULL && ax25_digi->ndigi > 0) { nr_neigh->digipeat = kmemdup(ax25_digi, sizeof(*ax25_digi), - GFP_KERNEL); + GFP_ATOMIC); if (nr_neigh->digipeat == NULL) { kfree(nr_neigh); if (nr_node) -- 2.17.1