All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lu Baolu <baolu.lu@linux.intel.com>
To: Joerg Roedel <joro@8bytes.org>
Cc: Kevin Tian <kevin.tian@intel.com>,
	Ashok Raj <ashok.raj@intel.com>, David Airlie <airlied@linux.ie>,
	Robin Murphy <robin.murphy@arm.com>,
	iommu@lists.linux-foundation.org,
	Jacob jun Pan <jacob.jun.pan@intel.com>,
	Christoph Hellwig <hch@infradead.org>,
	Alex Williamson <alex.williamson@redhat.com>,
	Thierry Reding <thierry.reding@gmail.com>,
	Ben Skeggs <bskeggs@redhat.com>, Jason Gunthorpe <jgg@nvidia.com>,
	Daniel Vetter <daniel@ffwll.ch>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Will Deacon <will@kernel.org>, Christoph Hellwig <hch@lst.de>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 07/10] iommu: Use right way to retrieve iommu_ops
Date: Tue, 15 Feb 2022 09:46:56 +0800	[thread overview]
Message-ID: <0dd0f4c9-37a6-0418-3f19-22c40ccc8265@linux.intel.com> (raw)
In-Reply-To: <YgpP7AhY5hd/DX/C@8bytes.org>

On 2/14/22 8:49 PM, Joerg Roedel wrote:
> On Mon, Feb 14, 2022 at 09:55:35AM +0800, Lu Baolu wrote:
>> +static inline const struct iommu_ops *dev_iommu_ops(struct device *dev)
>> +{
>> +	/*
>> +	 * Assume that valid ops must be installed if iommu_probe_device()
>> +	 * has succeeded. The device ops are essentially for internal use
>> +	 * within the IOMMU subsystem itself, so we should be able to trust
>> +	 * ourselves not to misuse the helper.
>> +	 */
>> +	WARN_ON(!dev || !dev->iommu || !dev->iommu->iommu_dev ||
>> +		!dev->iommu->iommu_dev->ops);
> 
> There is no need for this WARN_ON, the code will oops anyway when one of
> the pointers checked here is NULL.
> 

We really don't need to WARN_ON intermediate null pointers. But I would
argue that we could add a WARN() on null dev->iommu->iommu_dev->ops, so
that callers have no need to check the returned ops.

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

WARNING: multiple messages have this Message-ID (diff)
From: Lu Baolu <baolu.lu@linux.intel.com>
To: Joerg Roedel <joro@8bytes.org>
Cc: baolu.lu@linux.intel.com, Jason Gunthorpe <jgg@nvidia.com>,
	Christoph Hellwig <hch@infradead.org>,
	Ben Skeggs <bskeggs@redhat.com>,
	Kevin Tian <kevin.tian@intel.com>,
	Ashok Raj <ashok.raj@intel.com>, Will Deacon <will@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Eric Auger <eric.auger@redhat.com>, Liu Yi L <yi.l.liu@intel.com>,
	Jacob jun Pan <jacob.jun.pan@intel.com>,
	David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
	Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org,
	Christoph Hellwig <hch@lst.de>
Subject: Re: [PATCH v3 07/10] iommu: Use right way to retrieve iommu_ops
Date: Tue, 15 Feb 2022 09:46:56 +0800	[thread overview]
Message-ID: <0dd0f4c9-37a6-0418-3f19-22c40ccc8265@linux.intel.com> (raw)
In-Reply-To: <YgpP7AhY5hd/DX/C@8bytes.org>

On 2/14/22 8:49 PM, Joerg Roedel wrote:
> On Mon, Feb 14, 2022 at 09:55:35AM +0800, Lu Baolu wrote:
>> +static inline const struct iommu_ops *dev_iommu_ops(struct device *dev)
>> +{
>> +	/*
>> +	 * Assume that valid ops must be installed if iommu_probe_device()
>> +	 * has succeeded. The device ops are essentially for internal use
>> +	 * within the IOMMU subsystem itself, so we should be able to trust
>> +	 * ourselves not to misuse the helper.
>> +	 */
>> +	WARN_ON(!dev || !dev->iommu || !dev->iommu->iommu_dev ||
>> +		!dev->iommu->iommu_dev->ops);
> 
> There is no need for this WARN_ON, the code will oops anyway when one of
> the pointers checked here is NULL.
> 

We really don't need to WARN_ON intermediate null pointers. But I would
argue that we could add a WARN() on null dev->iommu->iommu_dev->ops, so
that callers have no need to check the returned ops.

Best regards,
baolu

  reply	other threads:[~2022-02-15  1:48 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-14  1:55 [PATCH v3 00/10] iommu cleanup and refactoring Lu Baolu
2022-02-14  1:55 ` Lu Baolu
2022-02-14  1:55 ` [PATCH v3 01/10] iommu/vt-d: Remove guest pasid related callbacks Lu Baolu
2022-02-14  1:55   ` Lu Baolu
2022-02-14  1:55 ` [PATCH v3 02/10] iommu: Remove guest pasid related interfaces and definitions Lu Baolu
2022-02-14  1:55   ` Lu Baolu
2022-02-14  1:55 ` [PATCH v3 03/10] iommu/vt-d: Remove aux-domain related callbacks Lu Baolu
2022-02-14  1:55   ` Lu Baolu
2022-02-14  1:55 ` [PATCH v3 04/10] iommu: Remove aux-domain related interfaces and iommu_ops Lu Baolu
2022-02-14  1:55   ` Lu Baolu
2022-02-14  1:55 ` [PATCH v3 05/10] iommu: Remove apply_resv_region Lu Baolu
2022-02-14  1:55   ` Lu Baolu
2022-02-14  1:55 ` [PATCH v3 06/10] drm/nouveau/device: Get right pgsize_bitmap of iommu_domain Lu Baolu
2022-02-14  1:55   ` Lu Baolu
2022-02-14 12:52   ` Joerg Roedel
2022-02-14 12:52     ` Joerg Roedel
2022-02-15  2:08     ` Lu Baolu
2022-02-15  2:08       ` Lu Baolu
2022-02-14  1:55 ` [PATCH v3 07/10] iommu: Use right way to retrieve iommu_ops Lu Baolu
2022-02-14  1:55   ` Lu Baolu
2022-02-14 12:49   ` Joerg Roedel
2022-02-14 12:49     ` Joerg Roedel
2022-02-15  1:46     ` Lu Baolu [this message]
2022-02-15  1:46       ` Lu Baolu
2022-02-15  2:01       ` Lu Baolu
2022-02-15  2:01         ` Lu Baolu
2022-02-14  1:55 ` [PATCH v3 08/10] iommu: Remove unused argument in is_attach_deferred Lu Baolu
2022-02-14  1:55   ` Lu Baolu
2022-02-14  1:55 ` [PATCH v3 09/10] iommu: Use dev_iommu_ops() helper Lu Baolu
2022-02-14  1:55   ` Lu Baolu
2022-02-14 13:26   ` Jason Gunthorpe via iommu
2022-02-14 13:26     ` Jason Gunthorpe
2022-02-15  1:39     ` Lu Baolu
2022-02-15  1:39       ` Lu Baolu
2022-02-14  1:55 ` [PATCH v3 10/10] iommu: Split struct iommu_ops Lu Baolu
2022-02-14  1:55   ` Lu Baolu
2022-02-14 14:14 ` [PATCH v3 00/10] iommu cleanup and refactoring Joerg Roedel
2022-02-14 14:14   ` Joerg Roedel
2022-02-15  2:05   ` Lu Baolu
2022-02-15  2:05     ` Lu Baolu
2022-02-15  9:17     ` Joerg Roedel
2022-02-15  9:17       ` Joerg Roedel
2022-02-16  2:56       ` Lu Baolu
2022-02-16  2:56         ` Lu Baolu

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=0dd0f4c9-37a6-0418-3f19-22c40ccc8265@linux.intel.com \
    --to=baolu.lu@linux.intel.com \
    --cc=airlied@linux.ie \
    --cc=alex.williamson@redhat.com \
    --cc=ashok.raj@intel.com \
    --cc=bskeggs@redhat.com \
    --cc=daniel@ffwll.ch \
    --cc=hch@infradead.org \
    --cc=hch@lst.de \
    --cc=iommu@lists.linux-foundation.org \
    --cc=jacob.jun.pan@intel.com \
    --cc=jgg@nvidia.com \
    --cc=jonathanh@nvidia.com \
    --cc=joro@8bytes.org \
    --cc=kevin.tian@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=thierry.reding@gmail.com \
    --cc=will@kernel.org \
    /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.