[PATCH] nvme-pci: Set min align mask before calculating max_hw_sectors

Bhatnagar, Rishabh risbhat at amazon.com
Thu Sep 22 11:06:00 PDT 2022



On 9/21/22, 10:58 PM, "Christoph Hellwig" <hch at lst.de> 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 Wed, Sep 21, 2022 at 11:10:58AM +0300, Sagi Grimberg wrote:
    >
    >> If swiotlb is force enabled dma_max_mapping_size ends up calling
    >> swiotlb_max_mapping_size which takes into account the min align
    >> mask for the device.
    >> Set the min align mask for nvme driver before calling
    >> dma_max_mapping_size while calculating max hw sectors.
    >
    > Does this fix a specific bug? if so it needs a fixes tag so it can
    > go to stable backports as well.

    Hmm.  Basically this is another fixlet for nvme on swiotlb, which
    already drove adding the max_mapping size and the align_mask, and
    it seems we still hadn't covered all corner cases properly.  So
    I think it basically has been broken since day 1, but nvme on
    swiotlb only started becoming "interesting" with the trusted
    hypervisor schemes.

Yes this fixes a bug that we saw in nvme driver(after enabling swiotlb) that resembles what was
fixed in 82806744fd7dde603b64c151eeddaa4ee62193fd. But not setting the
min_align_mask before deriving max hw sectors was causing the bug to still exist.
Also we would probably need to backport the above fix along with (82806744fd7dde603b64c151eeddaa4ee62193fd)
to 5.10 and 5.15 kernels. Let me know what you think is the best way to achieve that.



More information about the Linux-nvme mailing list