]> git.baikalelectronics.ru Git - kernel.git/commit
xen/blkback: correctly respond to unknown, non-native requests
authorDavid Vrabel <david.vrabel@citrix.com>
Thu, 7 Mar 2013 17:32:01 +0000 (17:32 +0000)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Mon, 11 Mar 2013 17:54:28 +0000 (13:54 -0400)
commit131592c8f6ed2cbe48ba2336ab9e6acb81b12288
treef3056dc8de11ab4431cb227f4417af810c7f31e9
parent2e39a3d5ec4b15e0d7a4759672a23de98c33e5b2
xen/blkback: correctly respond to unknown, non-native requests

If the frontend is using a non-native protocol (e.g., a 64-bit
frontend with a 32-bit backend) and it sent an unrecognized request,
the request was not translated and the response would have the
incorrect ID.  This may cause the frontend driver to behave
incorrectly or crash.

Since the ID field in the request is always in the same place,
regardless of the request type we can get the correct ID and make a
valid response (which will report BLKIF_RSP_EOPNOTSUPP).

This bug affected 64-bit SLES 11 guests when using a 32-bit backend.
This guest does a BLKIF_OP_RESERVED_1 (BLKIF_OP_PACKET in the SLES
source) and would crash in blkif_int() as the ID in the response would
be invalid.

Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Cc: stable@vger.kernel.org
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
drivers/block/xen-blkback/blkback.c
drivers/block/xen-blkback/common.h
include/xen/interface/io/blkif.h