Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp410324rwb; Sun, 25 Sep 2022 23:55:50 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7+A64Ww6+bG6F6tNelF6Glb6+2/eKffFeN40CxRxvNDHqkwtjUG0tNr2vatYZLWpgYlpdv X-Received: by 2002:a05:6402:3890:b0:451:ef52:8f9e with SMTP id fd16-20020a056402389000b00451ef528f9emr20621935edb.107.1664175349857; Sun, 25 Sep 2022 23:55:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664175349; cv=none; d=google.com; s=arc-20160816; b=E3yRxn4a1Yw/8WhM3GMhWp3NFpEhIEDKPnPXJAQoTtBKaW19pgLKaiQLyqqJG3j5ri y5ITIkYRxqeksuzVreDIUUOm4Fs/D5bGRD6DAcU/ReHNrMyUyauc7ZfpLuOSLGE3IvZa ROWi7H43hefq9qJXmj/H8GCMajPIpsobv7xXLneECGHer06P/AoAtKCPPh3M0P7hYn5m ZiwKAeThtlLkDNSeMGteFTEQ8T9yMRvrms5VYbNkQ2Q3K3OleU93koECWAdfgjFz6oO2 kk8OAFqBllNGmANObv28dikjEqevVDWeBLM6SDEjWNEgkQykFz4G6iLLH5sQJzyxWvB5 KiNQ== 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=DpSeCH069U0oQBzEhvj6vlaf+LzvI5FdElQpvJFxoso=; b=V9Scv//Z3nqL6sZi+q6/l2IgLFH+xEwSZWuqOhA5tuwW9W32V07HtNOnmqr0PrKkkH cg2PjZ0HUMy5HJXyzYVrUUnHWkiRfCki+vtq0lYKevyuF+D4gWwxtX8t0t70gIjrvqIN y3phS//uZli1us8mHVTSDdHvzRIXzAJCzFVYTj6gCeoBrA9sb31dq7mygNX4Lfq55F6T MM2YMLoAuFP1fVfD8hKEvajuVz8B2YYtSqdMwJqhw68vj4rbN3oOxxPI0vlkRw6tIPNU hGypZJRRMOdH+8dSX1/euVZA1DyU4Yzk2GjIdOlj2sVk5TJbeaoaM5ErMQcyX5JrOfhw lUuA== 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 g7-20020a1709065d0700b0073d6b849d4fsi13025675ejt.731.2022.09.25.23.55.23; Sun, 25 Sep 2022 23:55:49 -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 S233316AbiIZGQq (ORCPT + 99 others); Mon, 26 Sep 2022 02:16:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58036 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232677AbiIZGQo (ORCPT ); Mon, 26 Sep 2022 02:16:44 -0400 Received: from zju.edu.cn (mail.zju.edu.cn [61.164.42.155]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 38DBE1F2E3 for ; Sun, 25 Sep 2022 23:16:42 -0700 (PDT) Received: from ubuntu.localdomain (unknown [10.162.98.155]) by mail-app2 (Coremail) with SMTP id by_KCgDHzSGqQzFjypNUBg--.31490S2; Mon, 26 Sep 2022 14:16:16 +0800 (CST) From: Duoming Zhou To: johannes@sipsolutions.net, gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, rafael@kernel.org, Duoming Zhou Subject: [PATCH V9] devcoredump: add context check in dev_coredumpm Date: Mon, 26 Sep 2022 14:16:09 +0800 Message-Id: <20220926061609.44153-1-duoming@zju.edu.cn> X-Mailer: git-send-email 2.17.1 X-CM-TRANSID: by_KCgDHzSGqQzFjypNUBg--.31490S2 X-Coremail-Antispam: 1UD129KBjvJXoW7AFyDuw4fXrWUAF4DXFWxtFb_yoW8Gr1fpF 4rGa92krWUGrsa9a4UXanIgFy5Aw18AFyxW34jka4j9an3ArnrJrW8AFWYy3s8XryrtFy8 XFn8J348KFyIyFJanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUkF1xkIjI8I6I8E6xAIw20EY4v20xvaj40_Wr0E3s1l1IIY67AE w4v_Jr0_Jr4l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2 IY67AKxVWDJVCq3wA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW0oVCq3wA2z4x0Y4vEx4A2 jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq3wAS0I0E0xvYzxvE52 x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWUGVWU XwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcxkI7VAKI4 8JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwCF04k20xvY0x0EwIxGrwCF04k20xvE74AGY7Cv 6cx26r4fKr1UJr1l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGw C20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r126r1DMIIYrxkI7VAKI48J MIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r1j6r4UMI IF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E 87Iv6xkF7I0E14v26r1j6r4UYxBIdaVFxhVjvjDU0xZFpf9x0JUZa9-UUUUU= X-CM-SenderInfo: qssqjiasttq6lmxovvfxof0/1tbiAgkFAVZdtbo+HwAbsx X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_PASS, 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 The dev_coredumpm(), dev_coredumpv() and dev_coredumpsg() could not be used in atomic context, because they call kvasprintf_const() and kstrdup() with GFP_KERNEL parameter. The process is shown below: dev_coredumpv(.., gfp_t gfp) dev_coredumpm(.., gfp_t gfp) dev_set_name kobject_set_name_vargs kvasprintf_const(GFP_KERNEL, ...); //may sleep kstrdup(s, GFP_KERNEL); //may sleep This patch adds context check in dev_coredumpm() in order to show dev_coredumpm() and its callers could not be used in atomic context. What's more, this change can allow the api to evolve and will not influence the users that call this api. Fixes: 833c95456a70 ("device coredump: add new device coredump class") Signed-off-by: Duoming Zhou --- Changes in v9: - Add context check in dev_coredumpm(). drivers/base/devcoredump.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/base/devcoredump.c b/drivers/base/devcoredump.c index f4d794d6bb8..806ee872f5f 100644 --- a/drivers/base/devcoredump.c +++ b/drivers/base/devcoredump.c @@ -255,6 +255,9 @@ void dev_coredumpm(struct device *dev, struct module *owner, struct devcd_entry *devcd; struct device *existing; + if (!gfpflags_normal_context(gfp)) + goto free; + if (devcd_disabled) goto free; -- 2.17.1