Received: by 2002:a05:6358:e9c4:b0:b2:91dc:71ab with SMTP id hc4csp5058668rwb; Mon, 8 Aug 2022 11:23:15 -0700 (PDT) X-Google-Smtp-Source: AA6agR7Q6XbpIQIGhKj9xC5mY0wn4xbXnYrD/9FQMTuc/JMQJcpJ/ibdpYzmqB8r3I09WpVsbvJC X-Received: by 2002:aa7:d0c8:0:b0:43c:f071:992a with SMTP id u8-20020aa7d0c8000000b0043cf071992amr18916650edo.418.1659982995551; Mon, 08 Aug 2022 11:23:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1659982995; cv=none; d=google.com; s=arc-20160816; b=tcHDzYrmoegL535+VFl23RPjABGZWDOT+mx6SPYwotlS9zlEW10LVcWrKH+6Nz9W/e giR+/yd3GXA1kwPjgoykD+LsAbPvFnQjzwbrCLNUjfWwvutdt7jEWSM1BwYcR/Xv6aNd hTmCIzZ2Cl9518C0OqQqoVxByddYXN6gzWGJBwDMYrgUKlV7lfzVE0Z6p8oE9VvqkkBI LFD+vjVEoQ8nOX32L4N88R2STe7J96zQG1ADTN/H6f+DMGqkJmQuy0VZIhl21DSEJfam 5L82nu+jvaSLe1MR1OibpEgJP0zuHWplaZwETEmlLdLWRHsLEmtkE8D93BSZEcRqzLWE iXwA== 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=8jH7+ZXVqCzuIvf2o9j1mefBDUXyehpM3Odx06gRB+w=; b=fj+efQfNR0226JHc034UqT9ujO0Cn3FtDL25KfuF71vFCbrvZ4aodG2gjSMdc+gF5I 6uFT3SSkT52jLUdZvkglxo4qoLZMP9pfR/QecSkh+y4ABZOLglCfESizpu2cVB1+e1Es IsJGcpRB/WYxdJv1tWMJfEskuVeEtASDPqi203mp0uIxYPfQI6mgImmWmZGAn0bjwy9x VdG/1YlYKo56GW0Tkraj+TjRU8jPFj1krLLwS+F6qQ82tAyN9jmdMVcjsyV7bFcDMFVN caV2MMKlubs2uyvn0ssc+txJacwLyO5Hu2dA4SvwhV+5+ZSIyMLwwzqCE/7QE5wWTpKR RaZg== 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v8-20020a170906338800b00731684de668si205617eja.367.2022.08.08.11.22.49; Mon, 08 Aug 2022 11:23:15 -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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237349AbiHHSSQ (ORCPT + 99 others); Mon, 8 Aug 2022 14:18:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49988 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233696AbiHHSSL (ORCPT ); Mon, 8 Aug 2022 14:18:11 -0400 Received: from mail-yb1-f180.google.com (mail-yb1-f180.google.com [209.85.219.180]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B0CC4B4A5; Mon, 8 Aug 2022 11:18:10 -0700 (PDT) Received: by mail-yb1-f180.google.com with SMTP id n8so14939525yba.2; Mon, 08 Aug 2022 11:18:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=8jH7+ZXVqCzuIvf2o9j1mefBDUXyehpM3Odx06gRB+w=; b=ZQO1uBfRhgTO+skCDBPVVF4Mb0a4ywRSV+OUdUpToo7NAPA55iaADRL57SEpTkDXHp NHUJidLTwtJDjTtdI+4fZb9dPc0z+9cpGCtGxkjc/rW6gEmdiAjmRInNtdudKNY2O57z rJjz0sfoHTYw7WCns8LcVuyFjxWjNpoSPC66pF2QNF0Gfqdbvlpb2E4pvg4/VjE5oePz Zm5j7eb+8iHBM+EcAtWVBVdXPFlIj1H6bvF8R2FM+7GZdjDFdlfRzm6J3HVVTDUSqdpQ qy9PnbgLUiqQJWcOsHoc+KIhtq059YCqqULdQq+yD5WUXHrEMVrRigXTG3c/CKOYO16w ZBeA== X-Gm-Message-State: ACgBeo0UBvno0mPVeV+jIeCo8kj8TI3Fk3EQYy+pngptnyrqQ6nmEVel Uk2dTxTMsIixFuCqqs6SJ6DQobRo8Vs/6UfKw89VMiCk X-Received: by 2002:a25:cc51:0:b0:676:ccba:875 with SMTP id l78-20020a25cc51000000b00676ccba0875mr17832490ybf.137.1659982689714; Mon, 08 Aug 2022 11:18:09 -0700 (PDT) MIME-Version: 1.0 References: <20220805023200.154634-1-justin.he@arm.com> In-Reply-To: <20220805023200.154634-1-justin.he@arm.com> From: "Rafael J. Wysocki" Date: Mon, 8 Aug 2022 20:17:58 +0200 Message-ID: Subject: Re: [PATCH] ACPI: APEI: move edac_init ahead of ghes platform drv register To: Jia He Cc: "Rafael J. Wysocki" , Len Brown , James Morse , Tony Luck , Borislav Petkov , Mauro Carvalho Chehab , Robert Richter , Shuai Xue , Jarkko Sakkinen , ACPI Devel Maling List , Linux Kernel Mailing List , "open list:EDAC-CORE" 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 On Fri, Aug 5, 2022 at 4:32 AM Jia He wrote: > > Commit dc4e8c07e9e2 ("ACPI: APEI: explicit init of HEST and GHES in > apci_init()") introduced a bug that invoking ghes_edac_register() > before edac_init(). Because at that time, the bus "edac" hasn't been > registered, this created sysfs /devices/mc0 instead of > /sys/devices/system/edac/mc/mc0 and caused a sysfs dup splat on an > Ampere eMag server: > sysfs: cannot create duplicate filename '/devices/mc0' > CPU: 19 PID: 1 Comm: swapper/0 Not tainted 5.19.0+ #138 > random: crng init done > Hardware name: MiTAC RAPTOR EV-883832-X3-0001/RAPTOR, BIOS 0.14 02/22/2019 > Call trace: > sysfs_warn_dup+0x6c/0x88 > sysfs_create_dir_ns+0xec/0x108 > kobject_add_internal+0xc0/0x328 > kobject_add+0x94/0x108 > device_add+0x104/0x8b0 > pmu_dev_alloc+0xb4/0x128 > perf_pmu_register+0x308/0x438 > xgene_pmu_dev_add+0x168/0x2c8 > acpi_pmu_dev_add+0x1f0/0x370 > acpi_ns_walk_namespace+0x16c/0x1ec > acpi_walk_namespace+0xb0/0xf8 > xgene_pmu_probe+0x6b8/0x8a0 > platform_probe+0x70/0xe0 > really_probe+0x164/0x3b0 > __driver_probe_device+0x11c/0x190 > driver_probe_device+0x44/0xf8 > __driver_attach+0xc4/0x1b8 > bus_for_each_dev+0x78/0xd0 > driver_attach+0x2c/0x38 > bus_add_driver+0x150/0x240 > driver_register+0x6c/0x128 > __platform_driver_register+0x30/0x40 > xgene_pmu_driver_init+0x24/0x30 > do_one_initcall+0x50/0x248 > kernel_init_freeable+0x284/0x328 > kernel_init+0x2c/0x140 > ret_from_fork+0x10/0x20 > kobject_add_internal failed for mc0 with -EEXIST, don't try to register things with the same name in the same > > This patch fixes it by moving edac_init() into acpi_ghes_init() and ahead of > platform_driver_register(). > > Fixes: dc4e8c07e9e2 ("ACPI: APEI: explicit init of HEST and GHES in apci_init()") > Signed-off-by: Jia He > Cc: Shuai Xue > --- > drivers/acpi/apei/ghes.c | 1 + > drivers/edac/edac_module.c | 3 +-- > include/linux/edac.h | 1 + > 3 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c > index d91ad378c00d..1127dfffeeb0 100644 > --- a/drivers/acpi/apei/ghes.c > +++ b/drivers/acpi/apei/ghes.c > @@ -1462,6 +1462,7 @@ void __init acpi_ghes_init(void) > int rc; > > sdei_init(); > + edac_init(); > > if (acpi_disabled) > return; > diff --git a/drivers/edac/edac_module.c b/drivers/edac/edac_module.c > index 32a931d0cb71..34ada2064b36 100644 > --- a/drivers/edac/edac_module.c > +++ b/drivers/edac/edac_module.c > @@ -99,7 +99,7 @@ EXPORT_SYMBOL_GPL(edac_get_sysfs_subsys); > * edac_init > * module initialization entry point > */ > -static int __init edac_init(void) > +int __init edac_init(void) > { > int err = 0; > > @@ -160,7 +160,6 @@ static void __exit edac_exit(void) > /* > * Inform the kernel of our entry and exit points > */ > -subsys_initcall(edac_init); This effectively makes EDAC depend on GHES which may not be always valid AFAICS. > module_exit(edac_exit); > > MODULE_LICENSE("GPL"); > diff --git a/include/linux/edac.h b/include/linux/edac.h > index e730b3468719..104b22c2c177 100644 > --- a/include/linux/edac.h > +++ b/include/linux/edac.h > @@ -30,6 +30,7 @@ struct device; > > extern int edac_op_state; > > +int __init edac_init(void); > struct bus_type *edac_get_sysfs_subsys(void); > > static inline void opstate_init(void) > --