2022-09-29 19:38:53

by Bhatnagar, Rishabh

[permalink] [raw]
Subject: [PATCH v2] nvme-pci: Set min align mask before calculating max_hw_sectors

In cases where swiotlb is enabled dma_max_mapping_size takes into
account the min align mask for the device. Right now the mask is
set after the max hw sectors are calculated which might result in
a request size that overflows the swiotlb buffer.
Set the min align mask for nvme driver before calling
dma_max_mapping_size while calculating max hw sectors.

Fixes: 7637de311bd2 ("nvme-pci: limit max_hw_sectors based on the DMA max mapping size")
Cc: [email protected]
Signed-off-by: Rishabh Bhatnagar <[email protected]>
---
Changes in V2:
- Add Cc: <[email protected]> tag
- Improve the commit text
- Add patch version

Changes in V1:
- Add fixes tag

drivers/nvme/host/pci.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index 98864b853eef..30e71e41a0a2 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -2834,6 +2834,8 @@ static void nvme_reset_work(struct work_struct *work)
nvme_start_admin_queue(&dev->ctrl);
}

+ dma_set_min_align_mask(dev->dev, NVME_CTRL_PAGE_SIZE - 1);
+
/*
* Limit the max command size to prevent iod->sg allocations going
* over a single page.
@@ -2846,7 +2848,6 @@ static void nvme_reset_work(struct work_struct *work)
* Don't limit the IOMMU merged segment size.
*/
dma_set_max_seg_size(dev->dev, 0xffffffff);
- dma_set_min_align_mask(dev->dev, NVME_CTRL_PAGE_SIZE - 1);

mutex_unlock(&dev->shutdown_lock);

--
2.37.1


2022-10-10 18:27:53

by Bhatnagar, Rishabh

[permalink] [raw]
Subject: Re: [PATCH v2] nvme-pci: Set min align mask before calculating max_hw_sectors


On 10/4/22 9:27 AM, Bhatnagar, Rishabh wrote:
> On 9/29/22, 11:23 AM, "Rishabh Bhatnagar" <[email protected]> wrote:
>
> In cases where swiotlb is enabled dma_max_mapping_size takes into
> account the min align mask for the device. Right now the mask is
> set after the max hw sectors are calculated which might result in
> a request size that overflows the swiotlb buffer.
> Set the min align mask for nvme driver before calling
> dma_max_mapping_size while calculating max hw sectors.
>
> Fixes: 7637de311bd2 ("nvme-pci: limit max_hw_sectors based on the DMA max mapping size")
> Cc: [email protected]
> Signed-off-by: Rishabh Bhatnagar <[email protected]>
> ---
> Changes in V2:
> - Add Cc: <[email protected]> tag
> - Improve the commit text
> - Add patch version
>
> Changes in V1:
> - Add fixes tag
>
> drivers/nvme/host/pci.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
> index 98864b853eef..30e71e41a0a2 100644
> --- a/drivers/nvme/host/pci.c
> +++ b/drivers/nvme/host/pci.c
> @@ -2834,6 +2834,8 @@ static void nvme_reset_work(struct work_struct *work)
> nvme_start_admin_queue(&dev->ctrl);
> }
>
> + dma_set_min_align_mask(dev->dev, NVME_CTRL_PAGE_SIZE - 1);
> +
> /*
> * Limit the max command size to prevent iod->sg allocations going
> * over a single page.
> @@ -2846,7 +2848,6 @@ static void nvme_reset_work(struct work_struct *work)
> * Don't limit the IOMMU merged segment size.
> */
> dma_set_max_seg_size(dev->dev, 0xffffffff);
> - dma_set_min_align_mask(dev->dev, NVME_CTRL_PAGE_SIZE - 1);
>
> mutex_unlock(&dev->shutdown_lock);
>
> --
> 2.37.1
>
>

Hi. Any review on this patch would be much appreciated!

Thanks
Rishabh

2022-10-11 06:20:13

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH v2] nvme-pci: Set min align mask before calculating max_hw_sectors

The patch already made it to Linux 6.0, so I'm not sure what we need
to review again.

2022-10-11 17:45:43

by Bhatnagar, Rishabh

[permalink] [raw]
Subject: Re: [PATCH v2] nvme-pci: Set min align mask before calculating max_hw_sectors


On 10/10/22 11:08 PM, [email protected] wrote:
> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.
>
>
>
> The patch already made it to Linux 6.0, so I'm not sure what we need
> to review again.

Oh, I never got any email that this was being picked up so sent it
again. Anyways thanks for taking it.
We need this patch for 5.10/5.15 stable kernels as well. I can send
backport patches to stable tree
maintainers unless there is a way for you to mark it so that its
automatically picked for stable trees.

Thanks
Rishabh

2022-10-11 18:26:43

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH v2] nvme-pci: Set min align mask before calculating max_hw_sectors

On Tue, Oct 11, 2022 at 10:05:38AM -0700, Bhatnagar, Rishabh wrote:
>
> On 10/10/22 11:08 PM, [email protected] wrote:
> > CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.
> >
> >
> >
> > The patch already made it to Linux 6.0, so I'm not sure what we need
> > to review again.
>
> Oh, I never got any email that this was being picked up so sent it again.
> Anyways thanks for taking it.
> We need this patch for 5.10/5.15 stable kernels as well. I can send backport
> patches to stable tree
> maintainers unless there is a way for you to mark it so that its
> automatically picked for stable trees.

<formletter>

This is not the correct way to submit patches for inclusion in the
stable kernel tree. Please read:
https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
for how to do this properly.

</formletter>

2022-10-11 21:05:52

by Bhatnagar, Rishabh

[permalink] [raw]
Subject: Re: [PATCH v2] nvme-pci: Set min align mask before calculating max_hw_sectors


On 10/11/22 11:24 AM, Greg KH wrote:
> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.
>
>
>
> On Tue, Oct 11, 2022 at 10:05:38AM -0700, Bhatnagar, Rishabh wrote:
>> On 10/10/22 11:08 PM, [email protected] wrote:
>>> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.
>>>
>>>
>>>
>>> The patch already made it to Linux 6.0, so I'm not sure what we need
>>> to review again.
>> Oh, I never got any email that this was being picked up so sent it again.
>> Anyways thanks for taking it.
>> We need this patch for 5.10/5.15 stable kernels as well. I can send backport
>> patches to stable tree
>> maintainers unless there is a way for you to mark it so that its
>> automatically picked for stable trees.
> <formletter>
>
> This is not the correct way to submit patches for inclusion in the
> stable kernel tree. Please read:
> https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
> for how to do this properly.
>
> </formletter>

Since the original patch doesn't contain the CC:[email protected],
using option 2
makes sense as there is no special handling required to apply this for
5.10/5.15.