Skip to contentSkip to conversation

nvme-pci: Set min align mask before calculating max_hw_sectors

PATCH In review Rishabh Bhatnagar 3 participants 6 messages Sep 29, 2022 – Oct 11, 2022 1 message not in the archive

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 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")

---
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(-)
drivers/nvme/host/pci.c +2 -1
index 98864b853eef..30e71e41a0a2 100644
@@ -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);
 
Signature · 1 line
2.37.1

A message that is not in the archive (sent off-list or not yet received): [email protected]

#2 lore raw
Quoted 39 lines · Rishabh

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.
Quoted 10 lines
      	 */
      	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

#3 lore raw

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

#4 lore raw
Quoted 6 lines · 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

maintainer
#5 lore raw
Quoted 9 lines · Rishabh
Quoted 6 lines · 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.

Quoted 6 lines

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>

#6 lore raw
Quoted 18 lines · Greg KH

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.

Quoted 5 lines · Rishabh
Quoted 4 lines · 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.

Quoted 8 lines
Quoted 2 lines

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.

Quoted 8 lines

<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.