All of lore.kernel.org
 help / color / mirror / Atom feed
From: <gregkh@linuxfoundation.org>
To: sumit.semwal@linaro.org, alexander.levin@verizon.com,
	axboe@fb.com, gregkh@linuxfoundation.org, hch@lst.de,
	latha@linux.vnet.ibm.com, manjuhr1@in.ibm.com,
	mauricfo@linux.vnet.ibm.com
Cc: <stable@vger.kernel.org>, <stable-commits@vger.kernel.org>
Subject: Patch "block: allow WRITE_SAME commands with the SG_IO ioctl" has been added to the 4.4-stable tree
Date: Tue, 28 Mar 2017 14:12:57 +0200	[thread overview]
Message-ID: <149070317743218@kroah.com> (raw)
In-Reply-To: <1490458699-24484-15-git-send-email-sumit.semwal@linaro.org>


This is a note to let you know that I've just added the patch titled

    block: allow WRITE_SAME commands with the SG_IO ioctl

to the 4.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     block-allow-write_same-commands-with-the-sg_io-ioctl.patch
and it can be found in the queue-4.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.


>From foo@baz Tue Mar 28 13:59:27 CEST 2017
From: Sumit Semwal <sumit.semwal@linaro.org>
Date: Sat, 25 Mar 2017 21:48:14 +0530
Subject: block: allow WRITE_SAME commands with the SG_IO ioctl
To: stable@vger.kernel.org
Cc: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>, Brahadambal Srinivasan <latha@linux.vnet.ibm.com>, Jens Axboe <axboe@fb.com>, Sasha Levin <alexander.levin@verizon.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Sumit Semwal <sumit.semwal@linaro.org>
Message-ID: <1490458699-24484-15-git-send-email-sumit.semwal@linaro.org>

From: Sumit Semwal <sumit.semwal@linaro.org>


From: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>

[ Upstream commit 25cdb64510644f3e854d502d69c73f21c6df88a9 ]

The WRITE_SAME commands are not present in the blk_default_cmd_filter
write_ok list, and thus are failed with -EPERM when the SG_IO ioctl()
is executed without CAP_SYS_RAWIO capability (e.g., unprivileged users).
[ sg_io() -> blk_fill_sghdr_rq() > blk_verify_command() -> -EPERM ]

The problem can be reproduced with the sg_write_same command

  # sg_write_same --num 1 --xferlen 512 /dev/sda
  #

  # capsh --drop=cap_sys_rawio -- -c \
    'sg_write_same --num 1 --xferlen 512 /dev/sda'
    Write same: pass through os error: Operation not permitted
  #

For comparison, the WRITE_VERIFY command does not observe this problem,
since it is in that list:

  # capsh --drop=cap_sys_rawio -- -c \
    'sg_write_verify --num 1 --ilen 512 --lba 0 /dev/sda'
  #

So, this patch adds the WRITE_SAME commands to the list, in order
for the SG_IO ioctl to finish successfully:

  # capsh --drop=cap_sys_rawio -- -c \
    'sg_write_same --num 1 --xferlen 512 /dev/sda'
  #

That case happens to be exercised by QEMU KVM guests with 'scsi-block' devices
(qemu "-device scsi-block" [1], libvirt "<disk type='block' device='lun'>" [2]),
which employs the SG_IO ioctl() and runs as an unprivileged user (libvirt-qemu).

In that scenario, when a filesystem (e.g., ext4) performs its zero-out calls,
which are translated to write-same calls in the guest kernel, and then into
SG_IO ioctls to the host kernel, SCSI I/O errors may be observed in the guest:

  [...] sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
  [...] sd 0:0:0:0: [sda] tag#0 Sense Key : Aborted Command [current]
  [...] sd 0:0:0:0: [sda] tag#0 Add. Sense: I/O process terminated
  [...] sd 0:0:0:0: [sda] tag#0 CDB: Write Same(10) 41 00 01 04 e0 78 00 00 08 00
  [...] blk_update_request: I/O error, dev sda, sector 17096824

Links:
[1] http://git.qemu.org/?p=qemu.git;a=commit;h=336a6915bc7089fb20fea4ba99972ad9a97c5f52
[2] https://libvirt.org/formatdomain.html#elementsDisks (see 'disk' -> 'device')

Signed-off-by: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
Signed-off-by: Brahadambal Srinivasan <latha@linux.vnet.ibm.com>
Reported-by: Manjunatha H R <manjuhr1@in.ibm.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 block/scsi_ioctl.c |    3 +++
 1 file changed, 3 insertions(+)

--- a/block/scsi_ioctl.c
+++ b/block/scsi_ioctl.c
@@ -182,6 +182,9 @@ static void blk_set_cmd_filter_defaults(
 	__set_bit(WRITE_16, filter->write_ok);
 	__set_bit(WRITE_LONG, filter->write_ok);
 	__set_bit(WRITE_LONG_2, filter->write_ok);
+	__set_bit(WRITE_SAME, filter->write_ok);
+	__set_bit(WRITE_SAME_16, filter->write_ok);
+	__set_bit(WRITE_SAME_32, filter->write_ok);
 	__set_bit(ERASE, filter->write_ok);
 	__set_bit(GPCMD_MODE_SELECT_10, filter->write_ok);
 	__set_bit(MODE_SELECT, filter->write_ok);


Patches currently in stable-queue which might be from sumit.semwal@linaro.org are

queue-4.4/pci-add-comments-about-rom-bar-updating.patch
queue-4.4/acpi-blacklist-make-dell-latitude-3350-ethernet-work.patch
queue-4.4/s390-zcrypt-introduce-cex6-toleration.patch
queue-4.4/block-allow-write_same-commands-with-the-sg_io-ioctl.patch
queue-4.4/pci-do-any-vf-bar-updates-before-enabling-the-bars.patch
queue-4.4/x86-hyperv-handle-unknown-nmis-on-one-cpu-when-unknown_nmi_panic.patch
queue-4.4/serial-8250_pci-detach-low-level-driver-during-pci-error-recovery.patch
queue-4.4/xen-do-not-re-use-pirq-number-cached-in-pci-device-msi-msg-data.patch
queue-4.4/pci-separate-vf-bar-updates-from-standard-bar-updates.patch
queue-4.4/pci-ignore-bar-updates-on-virtual-functions.patch
queue-4.4/pci-update-bars-using-property-bits-appropriate-for-type.patch
queue-4.4/vfio-spapr-postpone-allocation-of-userspace-version-of-tce-table.patch
queue-4.4/pci-don-t-update-vf-bars-while-vf-memory-space-is-enabled.patch
queue-4.4/igb-workaround-for-igb-i210-firmware-issue.patch
queue-4.4/pci-remove-pci_resource_bar-and-pci_iov_resource_bar.patch
queue-4.4/pci-decouple-ioresource_rom_enable-and-pci_rom_address_enable.patch
queue-4.4/acpi-blacklist-add-_rev-quirks-for-dell-precision-5520-and-3520.patch
queue-4.4/igb-add-i211-to-i210-phy-workaround.patch
queue-4.4/uvcvideo-uvc_scan_fallback-for-webcams-with-broken-chain.patch

  reply	other threads:[~2017-03-28 12:13 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-25 16:18 [PATCH for-4.4 00/19] Stable commits from Ubuntu Yakkety 4.9-lts Sumit Semwal
2017-03-25 16:18 ` [PATCH for-4.4 01/19] xen: do not re-use pirq number cached in pci device msi msg data Sumit Semwal
2017-03-28 12:13   ` Patch "xen: do not re-use pirq number cached in pci device msi msg data" has been added to the 4.4-stable tree gregkh
2017-03-25 16:18 ` [PATCH for-4.4 02/19] igb: Workaround for igb i210 firmware issue Sumit Semwal
2017-03-28 12:13   ` Patch "igb: Workaround for igb i210 firmware issue" has been added to the 4.4-stable tree gregkh
2017-03-25 16:18 ` [PATCH for-4.4 03/19] igb: add i211 to i210 PHY workaround Sumit Semwal
2017-03-28 12:13   ` Patch "igb: add i211 to i210 PHY workaround" has been added to the 4.4-stable tree gregkh
2017-03-25 16:18 ` [PATCH for-4.4 04/19] x86/hyperv: Handle unknown NMIs on one CPU when unknown_nmi_panic Sumit Semwal
2017-03-28 12:13   ` Patch "x86/hyperv: Handle unknown NMIs on one CPU when unknown_nmi_panic" has been added to the 4.4-stable tree gregkh
2017-03-25 16:18 ` [PATCH for-4.4 05/19] PCI: Separate VF BAR updates from standard BAR updates Sumit Semwal
2017-03-28 12:13   ` Patch "PCI: Separate VF BAR updates from standard BAR updates" has been added to the 4.4-stable tree gregkh
2017-03-25 16:18 ` [PATCH for-4.4 06/19] PCI: Remove pci_resource_bar() and pci_iov_resource_bar() Sumit Semwal
2017-03-28 12:13   ` Patch "PCI: Remove pci_resource_bar() and pci_iov_resource_bar()" has been added to the 4.4-stable tree gregkh
2017-03-25 16:18 ` [PATCH for-4.4 07/19] PCI: Add comments about ROM BAR updating Sumit Semwal
2017-03-28 12:13   ` Patch "PCI: Add comments about ROM BAR updating" has been added to the 4.4-stable tree gregkh
2017-03-25 16:18 ` [PATCH for-4.4 08/19] PCI: Decouple IORESOURCE_ROM_ENABLE and PCI_ROM_ADDRESS_ENABLE Sumit Semwal
2017-03-28 12:13   ` Patch "PCI: Decouple IORESOURCE_ROM_ENABLE and PCI_ROM_ADDRESS_ENABLE" has been added to the 4.4-stable tree gregkh
2017-03-25 16:18 ` [PATCH for-4.4 09/19] PCI: Don't update VF BARs while VF memory space is enabled Sumit Semwal
2017-03-28 12:13   ` Patch "PCI: Don't update VF BARs while VF memory space is enabled" has been added to the 4.4-stable tree gregkh
2017-03-25 16:18 ` [PATCH for-4.4 10/19] PCI: Update BARs using property bits appropriate for type Sumit Semwal
2017-03-28 12:13   ` Patch "PCI: Update BARs using property bits appropriate for type" has been added to the 4.4-stable tree gregkh
2017-03-25 16:18 ` [PATCH for-4.4 11/19] PCI: Ignore BAR updates on virtual functions Sumit Semwal
2017-03-28 12:13   ` Patch "PCI: Ignore BAR updates on virtual functions" has been added to the 4.4-stable tree gregkh
2017-03-25 16:18 ` [PATCH for-4.4 12/19] PCI: Do any VF BAR updates before enabling the BARs Sumit Semwal
2017-03-28 12:13   ` Patch "PCI: Do any VF BAR updates before enabling the BARs" has been added to the 4.4-stable tree gregkh
2017-03-25 16:18 ` [PATCH for-4.4 13/19] vfio/spapr: Postpone allocation of userspace version of TCE table Sumit Semwal
2017-03-28 12:13   ` Patch "vfio/spapr: Postpone allocation of userspace version of TCE table" has been added to the 4.4-stable tree gregkh
2017-03-25 16:18 ` [PATCH for-4.4 14/19] block: allow WRITE_SAME commands with the SG_IO ioctl Sumit Semwal
2017-03-28 12:12   ` gregkh [this message]
2017-03-25 16:18 ` [PATCH for-4.4 15/19] s390/zcrypt: Introduce CEX6 toleration Sumit Semwal
2017-03-28 12:13   ` Patch "s390/zcrypt: Introduce CEX6 toleration" has been added to the 4.4-stable tree gregkh
2017-03-25 16:18 ` [PATCH for-4.4 16/19] uvcvideo: uvc_scan_fallback() for webcams with broken chain Sumit Semwal
2017-03-28 12:13   ` Patch "uvcvideo: uvc_scan_fallback() for webcams with broken chain" has been added to the 4.4-stable tree gregkh
2017-03-25 16:18 ` [PATCH for-4.4 17/19] ACPI / blacklist: add _REV quirks for Dell Precision 5520 and 3520 Sumit Semwal
2017-03-28 12:12   ` Patch "ACPI / blacklist: add _REV quirks for Dell Precision 5520 and 3520" has been added to the 4.4-stable tree gregkh
2017-03-25 16:18 ` [PATCH for-4.4 18/19] ACPI / blacklist: Make Dell Latitude 3350 ethernet work Sumit Semwal
2017-03-28 12:12   ` Patch "ACPI / blacklist: Make Dell Latitude 3350 ethernet work" has been added to the 4.4-stable tree gregkh
2017-03-25 16:18 ` [PATCH for-4.4 19/19] serial: 8250_pci: Detach low-level driver during PCI error recovery Sumit Semwal
2017-03-28 12:13   ` Patch "serial: 8250_pci: Detach low-level driver during PCI error recovery" has been added to the 4.4-stable tree gregkh

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=149070317743218@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=alexander.levin@verizon.com \
    --cc=axboe@fb.com \
    --cc=hch@lst.de \
    --cc=latha@linux.vnet.ibm.com \
    --cc=manjuhr1@in.ibm.com \
    --cc=mauricfo@linux.vnet.ibm.com \
    --cc=stable-commits@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=sumit.semwal@linaro.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.