From: "Michael S. Tsirkin" <mst@redhat.com>
To: Rusty Russell <rusty@rustcorp.com.au>
Cc: lkml <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/5] virtio: Don't expose legacy block features when VIRTIO_BLK_NO_LEGACY defined.
Date: Sun, 8 Feb 2015 12:01:17 +0100 [thread overview]
Message-ID: <20150208110117.GK3185@redhat.com> (raw)
In-Reply-To: <1423199216-2094-3-git-send-email-rusty@rustcorp.com.au>
On Fri, Feb 06, 2015 at 03:36:53PM +1030, Rusty Russell wrote:
> This allows modern implementations to ensure they don't use legacy
> feature bits or SCSI commands (which are not used in v1.0 non-legacy).
>
> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
> ---
> include/uapi/linux/virtio_blk.h | 17 +++++++++++++----
> 1 file changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/include/uapi/linux/virtio_blk.h b/include/uapi/linux/virtio_blk.h
> index 247c8ba8544a..3c53eec4ae22 100644
> --- a/include/uapi/linux/virtio_blk.h
> +++ b/include/uapi/linux/virtio_blk.h
> @@ -31,22 +31,25 @@
> #include <linux/virtio_types.h>
>
> /* Feature bits */
> -#define VIRTIO_BLK_F_BARRIER 0 /* Does host support barriers? */
> #define VIRTIO_BLK_F_SIZE_MAX 1 /* Indicates maximum segment size */
> #define VIRTIO_BLK_F_SEG_MAX 2 /* Indicates maximum # of segments */
> #define VIRTIO_BLK_F_GEOMETRY 4 /* Legacy geometry available */
> #define VIRTIO_BLK_F_RO 5 /* Disk is read-only */
> #define VIRTIO_BLK_F_BLK_SIZE 6 /* Block size of disk is available*/
> -#define VIRTIO_BLK_F_SCSI 7 /* Supports scsi command passthru */
> -#define VIRTIO_BLK_F_WCE 9 /* Writeback mode enabled after reset */
> #define VIRTIO_BLK_F_TOPOLOGY 10 /* Topology information is available */
> -#define VIRTIO_BLK_F_CONFIG_WCE 11 /* Writeback mode available in config */
> #define VIRTIO_BLK_F_MQ 12 /* support more than one vq */
>
> +/* Legacy feature bits */
> +#ifndef VIRTIO_BLK_NO_LEGACY
> +#define VIRTIO_BLK_F_BARRIER 0 /* Does host support barriers? */
> +#define VIRTIO_BLK_F_SCSI 7 /* Supports scsi command passthru */
> +#define VIRTIO_BLK_F_WCE 9 /* Writeback mode enabled after reset */
> +#define VIRTIO_BLK_F_CONFIG_WCE 11 /* Writeback mode available in config */
> #ifndef __KERNEL__
> /* Old (deprecated) name for VIRTIO_BLK_F_WCE. */
> #define VIRTIO_BLK_F_FLUSH VIRTIO_BLK_F_WCE
> #endif
> +#endif /* !VIRTIO_BLK_NO_LEGACY */
>
> #define VIRTIO_BLK_ID_BYTES 20 /* ID string length */
>
> @@ -100,8 +103,10 @@ struct virtio_blk_config {
> #define VIRTIO_BLK_T_IN 0
> #define VIRTIO_BLK_T_OUT 1
>
> +#ifndef VIRTIO_BLK_NO_LEGACY
> /* This bit says it's a scsi command, not an actual read or write. */
> #define VIRTIO_BLK_T_SCSI_CMD 2
> +#endif /* VIRTIO_BLK_NO_LEGACY */
>
> /* Cache flush command */
> #define VIRTIO_BLK_T_FLUSH 4
> @@ -109,8 +114,10 @@ struct virtio_blk_config {
> /* Get device ID command */
> #define VIRTIO_BLK_T_GET_ID 8
>
> +#ifndef VIRTIO_BLK_NO_LEGACY
> /* Barrier before this op. */
> #define VIRTIO_BLK_T_BARRIER 0x80000000
> +#endif /* !VIRTIO_BLK_NO_LEGACY */
>
> /* This is the first element of the read scatter-gather list. */
> struct virtio_blk_outhdr {
> @@ -122,12 +129,14 @@ struct virtio_blk_outhdr {
> __virtio64 sector;
> };
>
> +#ifndef VIRTIO_BLK_NO_LEGACY
> struct virtio_scsi_inhdr {
> __virtio32 errors;
> __virtio32 data_len;
> __virtio32 sense_len;
> __virtio32 residual;
> };
> +#endif /* !VIRTIO_BLK_NO_LEGACY */
>
> /* And this is the final byte of the write scatter-gather list. */
> #define VIRTIO_BLK_S_OK 0
> --
> 2.1.0
next prev parent reply other threads:[~2015-02-08 11:01 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-06 5:06 [PATCH 0/5] virtio 1.0 cleanups and one fix Rusty Russell
2015-02-06 5:06 ` [PATCH 1/5] virtio: define VIRTIO_PCI_CAP_PCI_CFG in header Rusty Russell
2015-02-08 11:00 ` Michael S. Tsirkin
2015-02-06 5:06 ` [PATCH 2/5] virtio: Don't expose legacy block features when VIRTIO_BLK_NO_LEGACY defined Rusty Russell
2015-02-08 11:01 ` Michael S. Tsirkin [this message]
2015-02-06 5:06 ` [PATCH 3/5] virtio: Don't expose legacy net features when VIRTIO_NET_NO_LEGACY defined Rusty Russell
2015-02-08 10:59 ` Michael S. Tsirkin
2015-02-08 23:50 ` Rusty Russell
2015-02-11 0:06 ` Rusty Russell
2015-02-16 5:14 ` Michael S. Tsirkin
2015-02-16 6:09 ` Rusty Russell
2015-02-14 20:43 ` Michael S. Tsirkin
2015-02-16 3:29 ` Rusty Russell
2015-02-06 5:06 ` [PATCH 4/5] virtio: Don't expose legacy config features when VIRTIO_CONFIG_NO_LEGACY defined Rusty Russell
2015-02-08 11:03 ` Michael S. Tsirkin
2015-02-06 5:06 ` [PATCH 5/5] virtio: don't require a config space on the console device Rusty Russell
2015-02-08 11:03 ` Michael S. Tsirkin
2015-02-08 23:56 ` Rusty Russell
2015-02-11 11:16 ` Amit Shah
2015-02-08 9:52 ` [PATCH 0/5] virtio 1.0 cleanups and one fix Michael S. Tsirkin
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=20150208110117.GK3185@redhat.com \
--to=mst@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rusty@rustcorp.com.au \
/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.