]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
xen/blkback: optimize validate_io_op() to filter BLKIF_OP_RESERVED_1 operation
authorDongli Zhang <dongli.zhang@oracle.com>
Wed, 23 Jan 2019 07:48:00 +0000 (15:48 +0800)
committerBrian Maly <brian.maly@oracle.com>
Wed, 30 Jan 2019 04:10:12 +0000 (23:10 -0500)
Instead of hardcoding operation = 4, BLKIF_OP_RESERVED_1 = 4 is defined in
the header file.

Orabug: 29199843

Suggested-by: Ankur Arora <ankur.a.arora@oracle.com>
Signed-off-by: Dongli Zhang <dongli.zhang@oracle.com>
Reviewed-by: Joe Jin <joe.jin@oracle.com>
Reviewed-by: Ankur Arora <ankur.a.arora@oracle.com>
Signed-off-by: Brian Maly <brian.maly@oracle.com>
drivers/block/xen-blkback/blkback.c
include/xen/interface/io/blkif.h

index 34067af643d27c81203885448018dd22904ce72f..1f892410342a9707b9aa6df5030135814313d5df 100644 (file)
@@ -1148,6 +1148,9 @@ static bool validate_io_op(const struct blkif_request *req, unsigned int nseg)
        unsigned short req_operation = req->operation == BLKIF_OP_INDIRECT ?
                        req->u.indirect.indirect_op : req->operation;
 
+       if (unlikely(req_operation == BLKIF_OP_RESERVED_1))
+               goto fail;
+
        /* For discard, nseg is not meaninful */
        if (unlikely(req_operation == BLKIF_OP_DISCARD))
                return true;
index 29949609d98867242090f4cc259a6baf23c942ea..8ac87e97dc1d9ac7992f51938db821582a75e4e7 100644 (file)
@@ -134,6 +134,12 @@ typedef uint64_t blkif_sector_t;
  */
 #define BLKIF_OP_FLUSH_DISKCACHE   3
 
+/*
+ * BLKIF_OP_RESERVED_1 (or BLKIF_OP_PACKET) is neither supported by oracle
+ * linux nor upstream linux. It is primarily used by SLES.
+ */
+#define BLKIF_OP_RESERVED_1        4
+
 /*
  * Recognised only if "feature-discard" is present in backend xenbus info.
  * The "feature-discard" node contains a boolean indicating whether trim