Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp463188rwb; Mon, 26 Sep 2022 01:03:42 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7pHYgcCezHmOkEmBm4JlTzT20ob+kDejbVYVFm8kz9xowXFJ1Ef+EEnT23wPFjHR6Kzsom X-Received: by 2002:a63:90:0:b0:439:befb:fdab with SMTP id 138-20020a630090000000b00439befbfdabmr18087502pga.341.1664179422063; Mon, 26 Sep 2022 01:03:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664179422; cv=none; d=google.com; s=arc-20160816; b=Zq9IwZ8G8u49BrClScAkPKSONdOw+3ildLrLdOFhEaR8L1eS2SRbxR5jBUI7MgEus0 cKbaL1gMy1EkXEEmHHFmhW9xqiEYHsYnHGt40HHWHlnOq2g6YTVi22nJWifQ1tvJKRjO C+mtrFKmPZO5jxcYsxPFo5nndhMF1wPmerPlpkVJFanuBn8qYtE/w+Kyi7I4JVdpMOjF QlQDiKkpxABfWsVs1jfwS5nllOYmLvEdRKPqCncNfQo3dpgqAypXnmy2rUjPdyuC6fun AzdgZpGjGT1F9E0yZFJ/1DdDAdlrsI8/3281kFIPbNnGehD8J9Pm2TmgGntM/XWL1INn nfHA== 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=ePJtO7GHyDHDgQ14rjC77SCwTjicqw1Co3ZYxt+q7Yc=; b=GWtBDEUovjn8JZa+fCPZxaFKqMKZnXJ8V74RaImzpUqdbyoR7P5l2KM41x4GcS5fne wqm5aavsuReGbWqdAaCTIVwgL4WPtfecG/pQvlFXmiNsP3dqxohyl9t++XOSJu6N/6HD xPV9eovsZ55kT1xyVISSXnpfGjNks0gOkqQ2uQ+c7dPDxq1ricIxUbwL4i2uHmJG9N2m 3VfnJjMoCNb2b/w/dTZApLXzaGnOc0yGwq8hoF+PdqqtfBrt0L/K3QFwYPeG42rnkvNX ihLvz3Zel7uekNmYw02+LHlkuKu7V3+MQkhppSGnqDu0Ik0S426zg4DDwe+r68acj4QC /RoA== 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 13-20020a63010d000000b0043c22e9127bsi12049880pgb.831.2022.09.26.01.03.30; Mon, 26 Sep 2022 01:03:42 -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 S233578AbiIZGv4 (ORCPT + 99 others); Mon, 26 Sep 2022 02:51:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42290 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233001AbiIZGvy (ORCPT ); Mon, 26 Sep 2022 02:51:54 -0400 Received: from zju.edu.cn (mail.zju.edu.cn [61.164.42.155]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 1416B2716E for ; Sun, 25 Sep 2022 23:51:52 -0700 (PDT) Received: from ubuntu.localdomain (unknown [10.162.98.155]) by mail-app3 (Coremail) with SMTP id cC_KCgAnn6rvSzFjTFQYBw--.30427S2; Mon, 26 Sep 2022 14:51:33 +0800 (CST) From: Duoming Zhou To: gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org Cc: johannes@sipsolutions.net, rafael@kernel.org, Duoming Zhou Subject: [PATCH V10] devcoredump: add context check in dev_coredumpm Date: Mon, 26 Sep 2022 14:51:26 +0800 Message-Id: <20220926065126.46080-1-duoming@zju.edu.cn> X-Mailer: git-send-email 2.17.1 X-CM-TRANSID: cC_KCgAnn6rvSzFjTFQYBw--.30427S2 X-Coremail-Antispam: 1UD129KBjvJXoW7AFyDuw4fXrWUAF4DXFWxtFb_yoW8JFW3pF 4rGa92krWUGrsa9a4DJa1a9F15Aw18JFyxW34jka4j9an3ArnrGrWrAFWYy3s8Xr1rtFyr XFn8J34vkFy2yF7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUkI1xkIjI8I6I8E6xAIw20EY4v20xvaj40_Wr0E3s1l1IIY67AE w4v_Jr0_Jr4l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2 IY67AKxVWDJVCq3wA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVWxJr0_GcWl84ACjcxK6I8E 87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_GcCE3s1le2I262IYc4CY6c 8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_JrI_ JrylYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwI xGrwACjI8F5VA0II8E6IAqYI8I648v4I1l42xK82IYc2Ij64vIr41l42xK82IY6x8ErcxF aVAv8VW8uw4UJr1UMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr 4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAVWUtwCIc40Y0x0EwIxG rwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8Jw CI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2 z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7VU1a9aPUUUUU== X-CM-SenderInfo: qssqjiasttq6lmxovvfxof0/1tbiAg0FAVZdtbpalgAFsG 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. Signed-off-by: Duoming Zhou --- Changes since v9: - v9: Add context check in dev_coredumpm(). - v10: Remove the "Fixes" tag. 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