Messages in this thread | | | From | FelixCui-oc <> | Subject | 答复: 答复: 答复: 答复: 答复: 答 复: 答复: [PATCH] iommu/vt-d:Add support f or ACPI device in RMRR | Date | Fri, 7 Aug 2020 03:29:59 +0000 |
| |
Hi baolu, I understand what you mean is that you want to put the following processing code in the acpi_device_create_direct_mappings() into the probe_acpi_namespace_devices() ,right? If you mean it , I think it's OK.
if (pn_dev == NULL) { acpi_device->bus->iommu_ops = &intel_iommu_ops; ret = iommu_probe_device(acpi_device); if (ret) { pr_err("acpi_device probe fail! ret:%d\n", ret); return ret; } return 0; }
Best regards Felix cui-oc
-----邮件原件----- 发件人: Lu Baolu <baolu.lu@linux.intel.com> 发送时间: 2020年8月7日 9:08 收件人: FelixCui-oc <FelixCui-oc@zhaoxin.com>; Joerg Roedel <joro@8bytes.org>; iommu@lists.linux-foundation.org; linux-kernel@vger.kernel.org; David Woodhouse <dwmw2@infradead.org> 抄送: baolu.lu@linux.intel.com; RaymondPang-oc <RaymondPang-oc@zhaoxin.com>; CobeChen-oc <CobeChen-oc@zhaoxin.com> 主题: Re: 答复: 答复: 答复: 答复: 答复: 答复: [PATCH] iommu/vt-d:Add support for ACPI device in RMRR
Hi Felix,
On 2020/8/6 14:51, FelixCui-oc wrote: > Hi baolu, > >Sure. Before that, let me sync my understanding with you. You have an acpi namespace device in ANDD table, it also shows up in the device scope of a RMRR. > >Current code doesn't enumerate that device for the RMRR, hence iommu_create_device_direct_mappings() doesn't work for this device. > > >At the same time, probe_acpi_namespace_devices() doesn't work for this device, hence you want to add a home-made > >acpi_device_create_direct_mappings() helper. > > Your understanding is right. > But there is a problem that even if the namespace device in rmrr is enumerated in the code, probe_acpi_namespace_devices() also doesn't work for this device. > This is because the dev parameter of the iommu_create_device_direct_mappings() is not the namespace device in RMRR. > The actual parameter passed in is the namespace device's physical node device. > In iommu_create_device_direct_mappings(), the physical node device passed in cannot match the namespace device in rmrr->device[],right? > We need acpi_device_create_direct_mappings() helper ? > > In addition, adev->physical_node_list is related to the __HID of namespace device reported by the bios. > For example, if the __HID reported by the bios belongs to acpi_pnp_device_ids[], adev->physical_node_list has no devices. > So in acpi_device_create_direct_mappings(), I added the case that adev->physical_node_list is empty.
Got you. Thanks!
Have you ever tried to have probe_acpi_namespace_devices() handle the case of empty adev->physical_node_list at the same time?
Best regards, baolu
> > > Best regards > Felix cui > > > > > -----邮件原件----- > 发件人: Lu Baolu <baolu.lu@linux.intel.com> > 发送时间: 2020年8月6日 10:36 > 收件人: FelixCui-oc <FelixCui-oc@zhaoxin.com>; Joerg Roedel > <joro@8bytes.org>; iommu@lists.linux-foundation.org; > linux-kernel@vger.kernel.org; David Woodhouse <dwmw2@infradead.org> > 抄送: baolu.lu@linux.intel.com; RaymondPang-oc > <RaymondPang-oc@zhaoxin.com>; CobeChen-oc <CobeChen-oc@zhaoxin.com> > 主题: Re: 答复: 答复: 答复: 答复: 答复: [PATCH] iommu/vt-d:Add support for ACPI > device in RMRR > > Hi Felix, > > On 8/5/20 3:37 PM, FelixCui-oc wrote: >> Hi baolu, >> Let me talk about why acpi_device_create_direct_mappings() is needed and please tell me if there is an error. > > Sure. Before that, let me sync my understanding with you. You have an acpi namespace device in ANDD table, it also shows up in the device scope of a RMRR. Current code doesn't enumerate that device for the RMRR, hence iommu_create_device_direct_mappings() doesn't work for this device. > > At the same time, probe_acpi_namespace_devices() doesn't work for this > device, hence you want to add a home-made > acpi_device_create_direct_mappings() helper. > > Did I get it right? > >> In the probe_acpi_namespace_devices() function, only the device in the addev->physical_node_list is probed, >> but we need to establish identity mapping for the namespace device in RMRR. These are two different devices. > > The namespace device has been probed and put in one drhd's device list. > Hence, it should be processed by probe_acpi_namespace_devices(). So the question is why there are no devices in addev->physical_node_list? > >> Therefore, the namespace device in RMRR is not mapped in probe_acpi_namespace_devices(). >> acpi_device_create_direct_mappings() is to create direct mappings for namespace devices in RMRR. > > Best regards, > baolu >
| |