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]
Message-ID: <20231012134310.GI55194@ziepe.ca>
Date:   Thu, 12 Oct 2023 10:43:10 -0300
From:   Jason Gunthorpe <jgg@...pe.ca>
To:     Tina Zhang <tina.zhang@...el.com>
Cc:     Kevin Tian <kevin.tian@...el.com>,
        Lu Baolu <baolu.lu@...ux.intel.com>,
        Michael Shavit <mshavit@...gle.com>,
        Vasant Hegde <vasant.hegde@....com>,
        "Nicolin Chen ^C-cc=iommu @ lists . linux . dev" 
        <nicolinc@...dia.com>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v7 4/5] iommu: Support mm PASID 1:n with sva domains

On Thu, Oct 12, 2023 at 11:01:11AM +0800, Tina Zhang wrote:

> @@ -1188,15 +1193,26 @@ static inline bool tegra_dev_iommu_get_stream_id(struct device *dev, u32 *stream
>  #ifdef CONFIG_IOMMU_SVA
>  static inline void mm_pasid_init(struct mm_struct *mm)
>  {
> -	mm->pasid = IOMMU_PASID_INVALID;
> +	/*
> +	 * During dup_mm(), a new mm will be memcpy'd from an old one and that makes
> +	 * the new mm and the old one point to a same iommu_mm instance. When either
> +	 * one of the two mms gets released, the iommu_mm instance is freed, leaving
> +	 * the other mm running into a use-after-free/double-free problem. To avoid
> +	 * the problem, zeroing the iommu_mm pointer of a new mm is needed here.
> +	 */
> +	mm->iommu_mm = NULL;
>  }

newlines after all the }, between functions doesn't checkpatch
complain?

IMHO this hunk should be moved to the prior patch.

But it all looks good to me now

Thanks,
Jason

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ