Message ID | 1411742247-11049-1-git-send-email-chris.j.arges@canonical.com |
---|---|
State | New |
Headers | show |
This should be a SAUCE patch. Given the upstream discussion I doubt if it'll get merged in its current form, but it does fix the outstanding issue with little chance for regression. rtg
On Fri, Sep 26, 2014 at 09:37:27AM -0500, Chris J Arges wrote: > BugLink: http://bugs.launchpad.net/bugs/1371591 > > When using a virtual SCSI disk in a VMWare VM if blkdev_issue_zeroout is used > data can be improperly zeroed out using the mptfusion driver. This patch > disables write_same for this driver and the vmware subsystem_vendor which > ensures that manual zeroing out is used instead. > > Cc: stable@vger.kernel.org > BugLink: http://bugs.launchpad.net/bugs/1371591 > Reported-by: Bruce Lucas <bruce.lucas@mongodb.com> > Tested-by: Chris J Arges <chris.j.arges@canonical.com> > Signed-off-by: Chris J Arges <chris.j.arges@canonical.com> > Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com> > Signed-off-by: Christoph Hellwig <hch@lst.de> > (cherry picked from http://git.infradead.org/users/hch/scsi-queue.git/ > commit/4089b71cc820a426d601283c92fcd4ffeb5139c2) > Signed-off-by: Chris J Arges <chris.j.arges@canonical.com> > --- > drivers/message/fusion/mptspi.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c > index 49d1133..2fb90e2 100644 > --- a/drivers/message/fusion/mptspi.c > +++ b/drivers/message/fusion/mptspi.c > @@ -1420,6 +1420,11 @@ mptspi_probe(struct pci_dev *pdev, const struct pci_device_id *id) > goto out_mptspi_probe; > } > > + /* VMWare emulation doesn't properly implement WRITE_SAME > + */ > + if (pdev->subsystem_vendor == 0x15AD) > + sh->no_write_same = 1; > + > spin_lock_irqsave(&ioc->FreeQlock, flags); > > /* Attach the SCSI Host to the IOC structure > -- Looks to be what hch finally is applying. Looks simple and safe, and well contained. Acked-by: Andy Whitcroft <apw@canonical.com> -apw
diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c index 49d1133..2fb90e2 100644 --- a/drivers/message/fusion/mptspi.c +++ b/drivers/message/fusion/mptspi.c @@ -1420,6 +1420,11 @@ mptspi_probe(struct pci_dev *pdev, const struct pci_device_id *id) goto out_mptspi_probe; } + /* VMWare emulation doesn't properly implement WRITE_SAME + */ + if (pdev->subsystem_vendor == 0x15AD) + sh->no_write_same = 1; + spin_lock_irqsave(&ioc->FreeQlock, flags); /* Attach the SCSI Host to the IOC structure