lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 7 Feb 2024 02:50:16 +0000
From: "Tian, Kevin" <kevin.tian@...el.com>
To: Lu Baolu <baolu.lu@...ux.intel.com>, Joerg Roedel <joro@...tes.org>, "Will
 Deacon" <will@...nel.org>, Robin Murphy <robin.murphy@....com>, "Jason
 Gunthorpe" <jgg@...pe.ca>, Jean-Philippe Brucker <jean-philippe@...aro.org>,
	Nicolin Chen <nicolinc@...dia.com>
CC: "Liu, Yi L" <yi.l.liu@...el.com>, Jacob Pan
	<jacob.jun.pan@...ux.intel.com>, Longfang Liu <liulongfang@...wei.com>,
	"Zhao, Yan Y" <yan.y.zhao@...el.com>, Joel Granados <j.granados@...sung.com>,
	"iommu@...ts.linux.dev" <iommu@...ts.linux.dev>, "kvm@...r.kernel.org"
	<kvm@...r.kernel.org>, "linux-kernel@...r.kernel.org"
	<linux-kernel@...r.kernel.org>, Jason Gunthorpe <jgg@...dia.com>
Subject: RE: [PATCH v12 13/16] iommu: Improve iopf_queue_remove_device()

> From: Lu Baolu <baolu.lu@...ux.intel.com>
> Sent: Wednesday, February 7, 2024 9:33 AM
> 
> Convert iopf_queue_remove_device() to return void instead of an error code,
> as the return value is never used. This removal helper is designed to be
> never-failed, so there's no need for error handling.
> 
> Ack all outstanding page requests from the device with the response code of
> IOMMU_PAGE_RESP_INVALID, indicating device should not attempt any retry.
> 
> Add comments to this helper explaining the steps involved in removing a
> device from the iopf queue and disabling its PRI. The individual drivers
> are expected to be adjusted accordingly. Here we just define the expected
> behaviors of the individual iommu driver from the core's perspective.
> 
> Suggested-by: Jason Gunthorpe <jgg@...dia.com>
> Signed-off-by: Lu Baolu <baolu.lu@...ux.intel.com>
> Reviewed-by: Jason Gunthorpe <jgg@...dia.com>
> Tested-by: Yan Zhao <yan.y.zhao@...el.com>

Reviewed-by: Kevin Tian <kevin.tian@...el.com>, with one nit:

> + * Removing a device from an iopf_queue. It's recommended to follow
> these
> + * steps when removing a device:
>   *
> - * Return: 0 on success and <0 on error.
> + * - Disable new PRI reception: Turn off PRI generation in the IOMMU
> hardware
> + *   and flush any hardware page request queues. This should be done
> before
> + *   calling into this helper.
> + * - Acknowledge all outstanding PRQs to the device: Respond to all
> outstanding
> + *   page requests with IOMMU_PAGE_RESP_INVALID, indicating the device
> should
> + *   not retry. This helper function handles this.

this implies calling iopf_queue_remove_device() here.

> + * - Disable PRI on the device: After calling this helper, the caller could
> + *   then disable PRI on the device.
> + * - Call iopf_queue_remove_device(): Calling iopf_queue_remove_device()
> + *   essentially disassociates the device. The fault_param might still exist,
> + *   but iommu_page_response() will do nothing. The device fault parameter
> + *   reference count has been properly passed from
> iommu_report_device_fault()
> + *   to the fault handling work, and will eventually be released after
> + *   iommu_page_response().
>   */

but here it suggests calling iopf_queue_remove_device() again. If the comment
is just about to detail the behavior with that invocation shouldn't it be merged
with the previous one instead of pretending to be the final step for driver
to call?

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ