From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:38736) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SFowU-0003lQ-Vs for qemu-devel@nongnu.org; Thu, 05 Apr 2012 11:49:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SFow8-0006pS-Pk for qemu-devel@nongnu.org; Thu, 05 Apr 2012 11:49:43 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47714) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SFow8-0006oN-HA for qemu-devel@nongnu.org; Thu, 05 Apr 2012 11:49:24 -0400 From: Kevin Wolf Date: Thu, 5 Apr 2012 17:51:52 +0200 Message-Id: <1333641144-13612-15-git-send-email-kwolf@redhat.com> In-Reply-To: <1333641144-13612-1-git-send-email-kwolf@redhat.com> References: <1333641144-13612-1-git-send-email-kwolf@redhat.com> Subject: [Qemu-devel] [PATCH 14/46] block: enforce constraints on block size properties List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: anthony@codemonkey.ws Cc: kwolf@redhat.com, qemu-devel@nongnu.org From: Stefan Hajnoczi Nicolae Mogoreanu noticed that I/O requests can lead to QEMU crashes when the logical_block_size property is smaller than 512 bytes. Using the new "blocksize" property we can properly enforce constraints on the block size such that QEMU's block layer is able to operate correctly. Reported-by: Nicolae Mogoreanu Reported-by: Michael Halcrow Signed-off-by: Stefan Hajnoczi Reviewed-by: Paolo Bonzini Signed-off-by: Kevin Wolf --- block.h | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/block.h b/block.h index e670606..c51ab16 100644 --- a/block.h +++ b/block.h @@ -435,10 +435,10 @@ static inline unsigned int get_physical_block_exp(BlockConf *conf) #define DEFINE_BLOCK_PROPERTIES(_state, _conf) \ DEFINE_PROP_DRIVE("drive", _state, _conf.bs), \ - DEFINE_PROP_UINT16("logical_block_size", _state, \ - _conf.logical_block_size, 512), \ - DEFINE_PROP_UINT16("physical_block_size", _state, \ - _conf.physical_block_size, 512), \ + DEFINE_PROP_BLOCKSIZE("logical_block_size", _state, \ + _conf.logical_block_size, 512), \ + DEFINE_PROP_BLOCKSIZE("physical_block_size", _state, \ + _conf.physical_block_size, 512), \ DEFINE_PROP_UINT16("min_io_size", _state, _conf.min_io_size, 0), \ DEFINE_PROP_UINT32("opt_io_size", _state, _conf.opt_io_size, 0), \ DEFINE_PROP_INT32("bootindex", _state, _conf.bootindex, -1), \ -- 1.7.6.5