All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org, FelixCuioc <FelixCui-oc@zhaoxin.com>,
	Joerg Roedel <joro@8bytes.org>,
	iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org,
	David Woodhouse <dwmw2@infradead.org>,
	Lu Baolu <baolu.lu@linux.intel.com>
Cc: kbuild-all@lists.01.org, lkp@intel.com, CobeChen-oc@zhaoxin.com
Subject: Re: [PATCH] iommu/vt-d:Add support for probing ACPI device in RMRR
Date: Mon, 24 Aug 2020 13:37:56 +0300	[thread overview]
Message-ID: <20200824103756.GA1793@kadam> (raw)
In-Reply-To: <20200818024623.2406-1-FelixCui-oc@zhaoxin.com>

[-- Attachment #1: Type: text/plain, Size: 6980 bytes --]

Hi FelixCuioc,

Thank you for the patch! Perhaps something to improve:

url:    https://github.com/0day-ci/linux/commits/FelixCuioc/iommu-vt-d-Add-support-for-probing-ACPI-device-in-RMRR/20200818-104920
base:   https://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git next
config: x86_64-randconfig-m001-20200820 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/iommu/intel/iommu.c:4850 probe_acpi_namespace_devices() warn: inconsistent returns 'adev->physical_node_lock'.

Old smatch warnings:
drivers/iommu/intel/iommu.c:836 device_to_iommu() error: we previously assumed 'pdev' could be null (see line 809)
drivers/iommu/intel/iommu.c:2272 __domain_mapping() error: we previously assumed 'sg' could be null (see line 2263)
drivers/iommu/intel/iommu.c:4371 intel_iommu_add() warn: should '(1 << sp)' be a 64 bit type?

# https://github.com/0day-ci/linux/commit/3adfd53a32c52833a34033fabaa5c1e65dfca688
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review FelixCuioc/iommu-vt-d-Add-support-for-probing-ACPI-device-in-RMRR/20200818-104920
git checkout 3adfd53a32c52833a34033fabaa5c1e65dfca688
vim +4850 drivers/iommu/intel/iommu.c

fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4797  static int __init probe_acpi_namespace_devices(void)
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4798  {
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4799  	struct dmar_drhd_unit *drhd;
af88ec3962010e3 drivers/iommu/intel-iommu.c Qian Cai   2019-06-03  4800  	/* To avoid a -Wunused-but-set-variable warning. */
af88ec3962010e3 drivers/iommu/intel-iommu.c Qian Cai   2019-06-03  4801  	struct intel_iommu *iommu __maybe_unused;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4802  	struct device *dev;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4803  	int i, ret = 0;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4804  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4805  	for_each_active_iommu(iommu, drhd) {
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4806  		for_each_active_dev_scope(drhd->devices,
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4807  					  drhd->devices_cnt, i, dev) {
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4808  			struct acpi_device_physical_node *pn;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4809  			struct iommu_group *group;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4810  			struct acpi_device *adev;
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4811  			struct device *pn_dev = NULL;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4812  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4813  			if (dev->bus != &acpi_bus_type)
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4814  				continue;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4815  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4816  			adev = to_acpi_device(dev);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4817  			mutex_lock(&adev->physical_node_lock);
                                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4818  			list_for_each_entry(pn,
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4819  					    &adev->physical_node_list, node) {
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4820  				group = iommu_group_get(pn->dev);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4821  				if (group) {
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4822  					pn_dev = pn->dev;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4823  					iommu_group_put(group);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4824  					continue;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4825  				}
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4826  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4827  				pn->dev->bus->iommu_ops = &intel_iommu_ops;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4828  				ret = iommu_probe_device(pn->dev);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4829  				if (ret)
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4830  					break;
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4831  				pn_dev = pn->dev;
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4832  			}
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4833  			if (pn_dev == NULL) {
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4834  				dev->bus->iommu_ops = &intel_iommu_ops;
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4835  				ret = iommu_probe_device(dev);
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4836  				if (ret) {
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4837  					pr_err("acpi_device probe fail! ret:%d\n", ret);
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4838  					return ret;

Need to unlock.

3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4839  				}
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4840  				return 0;

Here too.

fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4841  			}
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4842  			ret = acpi_device_create_direct_mappings(pn_dev, dev);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4843  			mutex_unlock(&adev->physical_node_lock);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4844  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4845  			if (ret)
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4846  				return ret;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4847  		}
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4848  	}
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4849  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25 @4850  	return 0;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4851  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 36016 bytes --]

[-- Attachment #3: Type: text/plain, Size: 156 bytes --]

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org
Subject: Re: [PATCH] iommu/vt-d:Add support for probing ACPI device in RMRR
Date: Mon, 24 Aug 2020 13:37:56 +0300	[thread overview]
Message-ID: <20200824103756.GA1793@kadam> (raw)
In-Reply-To: <20200818024623.2406-1-FelixCui-oc@zhaoxin.com>

[-- Attachment #1: Type: text/plain, Size: 7076 bytes --]

Hi FelixCuioc,

Thank you for the patch! Perhaps something to improve:

url:    https://github.com/0day-ci/linux/commits/FelixCuioc/iommu-vt-d-Add-support-for-probing-ACPI-device-in-RMRR/20200818-104920
base:   https://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git next
config: x86_64-randconfig-m001-20200820 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/iommu/intel/iommu.c:4850 probe_acpi_namespace_devices() warn: inconsistent returns 'adev->physical_node_lock'.

Old smatch warnings:
drivers/iommu/intel/iommu.c:836 device_to_iommu() error: we previously assumed 'pdev' could be null (see line 809)
drivers/iommu/intel/iommu.c:2272 __domain_mapping() error: we previously assumed 'sg' could be null (see line 2263)
drivers/iommu/intel/iommu.c:4371 intel_iommu_add() warn: should '(1 << sp)' be a 64 bit type?

# https://github.com/0day-ci/linux/commit/3adfd53a32c52833a34033fabaa5c1e65dfca688
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review FelixCuioc/iommu-vt-d-Add-support-for-probing-ACPI-device-in-RMRR/20200818-104920
git checkout 3adfd53a32c52833a34033fabaa5c1e65dfca688
vim +4850 drivers/iommu/intel/iommu.c

fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4797  static int __init probe_acpi_namespace_devices(void)
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4798  {
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4799  	struct dmar_drhd_unit *drhd;
af88ec3962010e3 drivers/iommu/intel-iommu.c Qian Cai   2019-06-03  4800  	/* To avoid a -Wunused-but-set-variable warning. */
af88ec3962010e3 drivers/iommu/intel-iommu.c Qian Cai   2019-06-03  4801  	struct intel_iommu *iommu __maybe_unused;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4802  	struct device *dev;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4803  	int i, ret = 0;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4804  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4805  	for_each_active_iommu(iommu, drhd) {
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4806  		for_each_active_dev_scope(drhd->devices,
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4807  					  drhd->devices_cnt, i, dev) {
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4808  			struct acpi_device_physical_node *pn;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4809  			struct iommu_group *group;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4810  			struct acpi_device *adev;
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4811  			struct device *pn_dev = NULL;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4812  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4813  			if (dev->bus != &acpi_bus_type)
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4814  				continue;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4815  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4816  			adev = to_acpi_device(dev);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4817  			mutex_lock(&adev->physical_node_lock);
                                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4818  			list_for_each_entry(pn,
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4819  					    &adev->physical_node_list, node) {
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4820  				group = iommu_group_get(pn->dev);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4821  				if (group) {
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4822  					pn_dev = pn->dev;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4823  					iommu_group_put(group);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4824  					continue;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4825  				}
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4826  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4827  				pn->dev->bus->iommu_ops = &intel_iommu_ops;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4828  				ret = iommu_probe_device(pn->dev);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4829  				if (ret)
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4830  					break;
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4831  				pn_dev = pn->dev;
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4832  			}
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4833  			if (pn_dev == NULL) {
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4834  				dev->bus->iommu_ops = &intel_iommu_ops;
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4835  				ret = iommu_probe_device(dev);
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4836  				if (ret) {
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4837  					pr_err("acpi_device probe fail! ret:%d\n", ret);
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4838  					return ret;

Need to unlock.

3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4839  				}
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4840  				return 0;

Here too.

fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4841  			}
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4842  			ret = acpi_device_create_direct_mappings(pn_dev, dev);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4843  			mutex_unlock(&adev->physical_node_lock);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4844  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4845  			if (ret)
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4846  				return ret;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4847  		}
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4848  	}
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4849  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25 @4850  	return 0;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4851  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36016 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH] iommu/vt-d:Add support for probing ACPI device in RMRR
Date: Mon, 24 Aug 2020 13:37:56 +0300	[thread overview]
Message-ID: <20200824103756.GA1793@kadam> (raw)
In-Reply-To: <20200818024623.2406-1-FelixCui-oc@zhaoxin.com>

[-- Attachment #1: Type: text/plain, Size: 7076 bytes --]

Hi FelixCuioc,

Thank you for the patch! Perhaps something to improve:

url:    https://github.com/0day-ci/linux/commits/FelixCuioc/iommu-vt-d-Add-support-for-probing-ACPI-device-in-RMRR/20200818-104920
base:   https://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git next
config: x86_64-randconfig-m001-20200820 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/iommu/intel/iommu.c:4850 probe_acpi_namespace_devices() warn: inconsistent returns 'adev->physical_node_lock'.

Old smatch warnings:
drivers/iommu/intel/iommu.c:836 device_to_iommu() error: we previously assumed 'pdev' could be null (see line 809)
drivers/iommu/intel/iommu.c:2272 __domain_mapping() error: we previously assumed 'sg' could be null (see line 2263)
drivers/iommu/intel/iommu.c:4371 intel_iommu_add() warn: should '(1 << sp)' be a 64 bit type?

# https://github.com/0day-ci/linux/commit/3adfd53a32c52833a34033fabaa5c1e65dfca688
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review FelixCuioc/iommu-vt-d-Add-support-for-probing-ACPI-device-in-RMRR/20200818-104920
git checkout 3adfd53a32c52833a34033fabaa5c1e65dfca688
vim +4850 drivers/iommu/intel/iommu.c

fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4797  static int __init probe_acpi_namespace_devices(void)
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4798  {
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4799  	struct dmar_drhd_unit *drhd;
af88ec3962010e3 drivers/iommu/intel-iommu.c Qian Cai   2019-06-03  4800  	/* To avoid a -Wunused-but-set-variable warning. */
af88ec3962010e3 drivers/iommu/intel-iommu.c Qian Cai   2019-06-03  4801  	struct intel_iommu *iommu __maybe_unused;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4802  	struct device *dev;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4803  	int i, ret = 0;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4804  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4805  	for_each_active_iommu(iommu, drhd) {
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4806  		for_each_active_dev_scope(drhd->devices,
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4807  					  drhd->devices_cnt, i, dev) {
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4808  			struct acpi_device_physical_node *pn;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4809  			struct iommu_group *group;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4810  			struct acpi_device *adev;
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4811  			struct device *pn_dev = NULL;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4812  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4813  			if (dev->bus != &acpi_bus_type)
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4814  				continue;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4815  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4816  			adev = to_acpi_device(dev);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4817  			mutex_lock(&adev->physical_node_lock);
                                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4818  			list_for_each_entry(pn,
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4819  					    &adev->physical_node_list, node) {
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4820  				group = iommu_group_get(pn->dev);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4821  				if (group) {
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4822  					pn_dev = pn->dev;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4823  					iommu_group_put(group);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4824  					continue;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4825  				}
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4826  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4827  				pn->dev->bus->iommu_ops = &intel_iommu_ops;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4828  				ret = iommu_probe_device(pn->dev);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4829  				if (ret)
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4830  					break;
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4831  				pn_dev = pn->dev;
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4832  			}
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4833  			if (pn_dev == NULL) {
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4834  				dev->bus->iommu_ops = &intel_iommu_ops;
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4835  				ret = iommu_probe_device(dev);
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4836  				if (ret) {
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4837  					pr_err("acpi_device probe fail! ret:%d\n", ret);
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4838  					return ret;

Need to unlock.

3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4839  				}
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4840  				return 0;

Here too.

fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4841  			}
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4842  			ret = acpi_device_create_direct_mappings(pn_dev, dev);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4843  			mutex_unlock(&adev->physical_node_lock);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4844  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4845  			if (ret)
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4846  				return ret;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4847  		}
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4848  	}
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4849  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25 @4850  	return 0;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4851  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36016 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org, FelixCuioc <FelixCui-oc@zhaoxin.com>,
	Joerg Roedel <joro@8bytes.org>,
	iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org,
	David Woodhouse <dwmw2@infradead.org>,
	Lu Baolu <baolu.lu@linux.intel.com>
Cc: lkp@intel.com, kbuild-all@lists.01.org, CobeChen-oc@zhaoxin.com,
	RaymondPang-oc@zhaoxin.com
Subject: Re: [PATCH] iommu/vt-d:Add support for probing ACPI device in RMRR
Date: Mon, 24 Aug 2020 13:37:56 +0300	[thread overview]
Message-ID: <20200824103756.GA1793@kadam> (raw)
In-Reply-To: <20200818024623.2406-1-FelixCui-oc@zhaoxin.com>

[-- Attachment #1: Type: text/plain, Size: 6980 bytes --]

Hi FelixCuioc,

Thank you for the patch! Perhaps something to improve:

url:    https://github.com/0day-ci/linux/commits/FelixCuioc/iommu-vt-d-Add-support-for-probing-ACPI-device-in-RMRR/20200818-104920
base:   https://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git next
config: x86_64-randconfig-m001-20200820 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/iommu/intel/iommu.c:4850 probe_acpi_namespace_devices() warn: inconsistent returns 'adev->physical_node_lock'.

Old smatch warnings:
drivers/iommu/intel/iommu.c:836 device_to_iommu() error: we previously assumed 'pdev' could be null (see line 809)
drivers/iommu/intel/iommu.c:2272 __domain_mapping() error: we previously assumed 'sg' could be null (see line 2263)
drivers/iommu/intel/iommu.c:4371 intel_iommu_add() warn: should '(1 << sp)' be a 64 bit type?

# https://github.com/0day-ci/linux/commit/3adfd53a32c52833a34033fabaa5c1e65dfca688
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review FelixCuioc/iommu-vt-d-Add-support-for-probing-ACPI-device-in-RMRR/20200818-104920
git checkout 3adfd53a32c52833a34033fabaa5c1e65dfca688
vim +4850 drivers/iommu/intel/iommu.c

fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4797  static int __init probe_acpi_namespace_devices(void)
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4798  {
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4799  	struct dmar_drhd_unit *drhd;
af88ec3962010e3 drivers/iommu/intel-iommu.c Qian Cai   2019-06-03  4800  	/* To avoid a -Wunused-but-set-variable warning. */
af88ec3962010e3 drivers/iommu/intel-iommu.c Qian Cai   2019-06-03  4801  	struct intel_iommu *iommu __maybe_unused;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4802  	struct device *dev;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4803  	int i, ret = 0;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4804  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4805  	for_each_active_iommu(iommu, drhd) {
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4806  		for_each_active_dev_scope(drhd->devices,
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4807  					  drhd->devices_cnt, i, dev) {
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4808  			struct acpi_device_physical_node *pn;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4809  			struct iommu_group *group;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4810  			struct acpi_device *adev;
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4811  			struct device *pn_dev = NULL;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4812  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4813  			if (dev->bus != &acpi_bus_type)
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4814  				continue;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4815  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4816  			adev = to_acpi_device(dev);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4817  			mutex_lock(&adev->physical_node_lock);
                                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4818  			list_for_each_entry(pn,
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4819  					    &adev->physical_node_list, node) {
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4820  				group = iommu_group_get(pn->dev);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4821  				if (group) {
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4822  					pn_dev = pn->dev;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4823  					iommu_group_put(group);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4824  					continue;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4825  				}
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4826  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4827  				pn->dev->bus->iommu_ops = &intel_iommu_ops;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4828  				ret = iommu_probe_device(pn->dev);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4829  				if (ret)
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4830  					break;
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4831  				pn_dev = pn->dev;
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4832  			}
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4833  			if (pn_dev == NULL) {
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4834  				dev->bus->iommu_ops = &intel_iommu_ops;
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4835  				ret = iommu_probe_device(dev);
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4836  				if (ret) {
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4837  					pr_err("acpi_device probe fail! ret:%d\n", ret);
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4838  					return ret;

Need to unlock.

3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4839  				}
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4840  				return 0;

Here too.

fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4841  			}
3adfd53a32c5283 drivers/iommu/intel/iommu.c FelixCuioc 2020-08-17  4842  			ret = acpi_device_create_direct_mappings(pn_dev, dev);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4843  			mutex_unlock(&adev->physical_node_lock);
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4844  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4845  			if (ret)
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4846  				return ret;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4847  		}
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4848  	}
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4849  
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25 @4850  	return 0;
fa212a97f3a366a drivers/iommu/intel-iommu.c Lu Baolu   2019-05-25  4851  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 36016 bytes --]

  reply	other threads:[~2020-08-24 10:38 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-18  2:46 [PATCH] iommu/vt-d:Add support for probing ACPI device in RMRR FelixCuioc
2020-08-18  2:46 ` FelixCuioc
2020-08-24 10:37 ` Dan Carpenter [this message]
2020-08-24 10:37   ` Dan Carpenter
2020-08-24 10:37   ` Dan Carpenter
2020-08-24 10:37   ` Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2020-08-20 17:57 kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200824103756.GA1793@kadam \
    --to=dan.carpenter@oracle.com \
    --cc=CobeChen-oc@zhaoxin.com \
    --cc=FelixCui-oc@zhaoxin.com \
    --cc=baolu.lu@linux.intel.com \
    --cc=dwmw2@infradead.org \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --cc=kbuild-all@lists.01.org \
    --cc=kbuild@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.