From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754419AbcAHRBs (ORCPT ); Fri, 8 Jan 2016 12:01:48 -0500 Received: from 8bytes.org ([81.169.241.247]:34781 "EHLO theia.8bytes.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754148AbcAHRBr (ORCPT ); Fri, 8 Jan 2016 12:01:47 -0500 Date: Fri, 8 Jan 2016 18:01:45 +0100 From: Joerg Roedel To: Wan Zongshun Cc: Wan ZongShun , Wan Zongshun , linux-kernel , iommu@lists.linux-foundation.org, Ray Huang , Borislav Petkov , ken.xue@amd.com Subject: Re: [PATCH 5/6] iommu/amd: Add support for non-pci devices Message-ID: <20160108170145.GW18805@8bytes.org> References: <1451988444-4694-1-git-send-email-vincent.wan@amd.com> <1451988444-4694-6-git-send-email-vincent.wan@amd.com> <20160107120422.GB19149@8bytes.org> <20160108121855.GU18805@8bytes.org> <568FCD4B.4000807@iommu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <568FCD4B.4000807@iommu.org> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 08, 2016 at 10:52:59PM +0800, Wan Zongshun wrote: > Actually I am supposing the '.add_device' will be the first called > in iommu initializing stage, so I think as long as having no error > of check device here, any call-sites of get_device_id() will be > fine, because adding device successfully should be the pre-condition > of any iommu function can be performed, please correct me. > > static int amd_iommu_add_device(struct device *dev) > { > struct iommu_dev_data *dev_data; > struct iommu_domain *domain; > struct amd_iommu *iommu; > u16 devid; > int ret; > > if (!check_device(dev) || get_dev_data(dev)) > return 0; > > devid = get_device_id(dev); > iommu = amd_iommu_rlookup_table[devid]; There are places in the interrupt remapping code that call get_device_id without calling check_device first. See get_irq_domain and get_devid. Joerg