From: Dongli Zhang Date: Wed, 23 Jan 2019 07:48:00 +0000 (+0800) Subject: xen/blkback: optimize validate_io_op() to filter BLKIF_OP_RESERVED_1 operation X-Git-Tag: v4.1.12-124.31.3~304 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=c60de20a8f08fdd4f01003e0889934414e40c372;p=users%2Fjedix%2Flinux-maple.git xen/blkback: optimize validate_io_op() to filter BLKIF_OP_RESERVED_1 operation Instead of hardcoding operation = 4, BLKIF_OP_RESERVED_1 = 4 is defined in the header file. Orabug: 29199843 Suggested-by: Ankur Arora Signed-off-by: Dongli Zhang Reviewed-by: Joe Jin Reviewed-by: Ankur Arora Signed-off-by: Brian Maly --- diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c index 34067af643d2..1f892410342a 100644 --- a/drivers/block/xen-blkback/blkback.c +++ b/drivers/block/xen-blkback/blkback.c @@ -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; diff --git a/include/xen/interface/io/blkif.h b/include/xen/interface/io/blkif.h index 29949609d988..8ac87e97dc1d 100644 --- a/include/xen/interface/io/blkif.h +++ b/include/xen/interface/io/blkif.h @@ -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