Received: by 2002:a05:6358:bb9e:b0:b9:5105:a5b4 with SMTP id df30csp5684823rwb; Wed, 7 Sep 2022 06:39:07 -0700 (PDT) X-Google-Smtp-Source: AA6agR7EId4QQbMMt5gznzpQQ6BhRlXui93OYibdxA4ZOIvLRCTl7XDCO4ArB+aBDWc1Q39rlWws X-Received: by 2002:a05:6402:1f01:b0:445:fbe8:4b2e with SMTP id b1-20020a0564021f0100b00445fbe84b2emr3127218edb.192.1662557947167; Wed, 07 Sep 2022 06:39:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662557947; cv=none; d=google.com; s=arc-20160816; b=HWn0rPFtxHf2XxjLkrsKo4qelZDj148poadmiFokbZtdG/b6mxFLTUbFKZY3Dx0vHA hOP7UVGjzdTtrXB7ZoXVwa0cyzbKVFI1tOR6U3yTHACsH6aXw/i4iq8a3J09Lwyj/EzO qaZ1QzxkMRxFL/2Q1bxRsxpoGND0qextqaJoFJC+F5m5f1nzoLefZcpWmuenZukZFi+T PdhovwxWx0N3jJMpFYXKOBBQDuLrebskHLjFmsdSLLkG3LzTdXc5MamB4gRYBP4Osgbl A+njPYHTe50EwcwSqLI/YtCfWOSMihOY6aYrThq3v/dJafqe8WVdT46jnTxXQC432Bz7 TMgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:user-agent:references:in-reply-to :subject:cc:to:from:message-id:date:dkim-signature:dkim-signature; bh=m9RdId2aYhts0VZgrmEGspoWMf5BWlaOWWzmna7Fe80=; b=cLIvkQAFTeElN1zMg8GoA6is9YJ/MHbhPl75BdN57/rRTg2nqS3Ho3lrw/KQLsOj9k 7aEAPg1Ko6HWP90UYYZw9KAdYMvqC6H+p/yRuws7IPQQPVnDChEA2qdrdqVZnY7yXjCe x+moOVyzherixr+PT20/vq/o86r+7F4xZkJvPfF6NxI1kdb6hgpKyDIhCp3n42dX4CjS pNtgDWS8LWNyfiymHh9vBXFGJqhHVMXA8Spt7a0hWlyqQexchtlrc2Mb7NCOyvl+cW5S V3ho818weBB4rOj1sxRpM8jrb/f3vJYm7Sgr+5kNNK/npBLCkos+K+59cEnIVSfHuEOH j2EA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=p1uw6XtD; dkim=neutral (no key) header.i=@suse.de header.b=j1g1bka3; 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=suse.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h11-20020a170906854b00b007309e3ce06csi9662393ejy.647.2022.09.07.06.38.41; Wed, 07 Sep 2022 06:39:07 -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; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=p1uw6XtD; dkim=neutral (no key) header.i=@suse.de header.b=j1g1bka3; 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=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229616AbiIGN2g (ORCPT + 99 others); Wed, 7 Sep 2022 09:28:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43012 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229776AbiIGN2e (ORCPT ); Wed, 7 Sep 2022 09:28:34 -0400 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 89D4611C2E for ; Wed, 7 Sep 2022 06:28:33 -0700 (PDT) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 3965333CAD; Wed, 7 Sep 2022 13:28:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1662557312; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=m9RdId2aYhts0VZgrmEGspoWMf5BWlaOWWzmna7Fe80=; b=p1uw6XtDeG2wS+B6Sku6ih4e0qatpSfUCWPQ+qF7EnQUhbZC4GDXc2VIMl76Uo72Vrl7VL x3o+bAKuIGn5cdaLY5vx0TW50iqevAywHypLQKPL0OkXL1xv/iNon0j1Kqmpfjfo9+0ect pVjPS7aSxXJN3m/b3Q12k0vY7WMUS5U= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1662557312; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=m9RdId2aYhts0VZgrmEGspoWMf5BWlaOWWzmna7Fe80=; b=j1g1bka3BM/aj/NvsbvGMEs5uKQ/bguR8guey2LEHOY+3X/1CWPr4OKCVW3k284bYfzOZk 1G1bYXDbDr/rMlBA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 230E613486; Wed, 7 Sep 2022 13:28:32 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id rjlHCICcGGMbHQAAMHmgww (envelope-from ); Wed, 07 Sep 2022 13:28:32 +0000 Date: Wed, 07 Sep 2022 15:28:31 +0200 Message-ID: <87bkrrl3eo.wl-tiwai@suse.de> From: Takashi Iwai To: Jason Gunthorpe Cc: Takashi Iwai , Lu Baolu , Joerg Roedel , Greg Kroah-Hartman , Bjorn Helgaas , Robin Murphy , Eric Auger , regressions@lists.linux.dev, linux-kernel@vger.kernel.org Subject: Re: [REGRESSION 5.19.x] AMD HD-audio devices missing on 5.19 In-Reply-To: <20220823202824.GA4516@nvidia.com> References: <874jy4cqok.wl-tiwai@suse.de> <20220823010021.GA5967@nvidia.com> <87h723sdde.wl-tiwai@suse.de> <87ilmjqj1f.wl-tiwai@suse.de> <20220823202824.GA4516@nvidia.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/27.2 Mule/6.0 MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE 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 On Tue, 23 Aug 2022 22:28:24 +0200, Jason Gunthorpe wrote: > > On Tue, Aug 23, 2022 at 01:46:36PM +0200, Takashi Iwai wrote: > > It was tested now and confirmed that the call path is via AMDGPU, as > > expected: > > amdgpu_pci_probe -> > > amdgpu_driver_load_kms -> > > amdgpu_device_init -> > > amdgpu_amdkfd_device_init -> > > kgd2kfd_device_init -> > > kgd2kfd_resume_iommu -> > > kfd_iommu_resume -> > > amd_iommu_init_device -> > > iommu_attach_group -> > > __iommu_attach_group > > Oh, when you said sound intel I thought this was an Intel CPU.. > > Yes, there is this hacky private path from the amdgpu to > the amd iommu driver that makes a mess of it here. We discussed it in > this thread: > > https://lore.kernel.org/linux-iommu/YgtuJQhY8SNlv9%2F6@8bytes.org/ > > But nobody put it together that it would be a problem with this. > > Something like this, perhaps, but I didn't check if overriding the > type would cause other problems. > > diff --git a/drivers/iommu/amd/iommu_v2.c b/drivers/iommu/amd/iommu_v2.c > index 696d5555be5794..6a1f02c62dffcc 100644 > --- a/drivers/iommu/amd/iommu_v2.c > +++ b/drivers/iommu/amd/iommu_v2.c > @@ -777,6 +777,8 @@ int amd_iommu_init_device(struct pci_dev *pdev, int pasids) > if (dev_state->domain == NULL) > goto out_free_states; > > + /* See iommu_is_default_domain() */ > + dev_state->domain->type = IOMMU_DOMAIN_IDENTITY; > amd_iommu_domain_direct_map(dev_state->domain); > > ret = amd_iommu_domain_enable_v2(dev_state->domain, pasids); > diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c > index 780fb70715770d..fe8bd17f52314b 100644 > --- a/drivers/iommu/iommu.c > +++ b/drivers/iommu/iommu.c > @@ -3076,6 +3076,24 @@ static ssize_t iommu_group_store_type(struct iommu_group *group, > return ret; > } > > +static bool iommu_is_default_domain(struct iommu_group *group) > +{ > + if (group->domain == group->default_domain) > + return true; > + > + /* > + * If the default domain was set to identity and it is still an identity > + * domain then we consider this a pass. This happens because of > + * amd_iommu_init_device() replacing the default idenity domain with an > + * identity domain that has a different configuration for AMDGPU. > + */ > + if (group->default_domain && > + group->default_domain->type == IOMMU_DOMAIN_IDENTITY && > + group->domain && group->domain->type == IOMMU_DOMAIN_IDENTITY) > + return true; > + return false; > +} > + > /** > * iommu_device_use_default_domain() - Device driver wants to handle device > * DMA through the kernel DMA API. > @@ -3094,8 +3112,7 @@ int iommu_device_use_default_domain(struct device *dev) > > mutex_lock(&group->mutex); > if (group->owner_cnt) { > - if (group->domain != group->default_domain || > - group->owner) { > + if (group->owner || iommu_is_default_domain(group)) { Isn't this rather if (group->owner || !iommu_is_default_domain(group)) { ? I'll rebuild the kernel with this change and ask reporters again. Takashi