[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen-blkback: correctly respond to unknown, non-native requests
On 04/03/13 09:57, Jan Beulich wrote: >>>> On 01.03.13 at 18:33, David Vrabel <david.vrabel@xxxxxxxxxx> wrote: >> 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. > > I recognize the need for the change, and I'm also fine with the > patch, but ... > >> --- a/include/xen/interface/io/blkif.h >> +++ b/include/xen/interface/io/blkif.h >> @@ -138,11 +138,21 @@ struct blkif_request_discard { >> uint8_t _pad3; >> } __attribute__((__packed__)); >> >> +struct blkif_request_unknown { >> + uint8_t _pad1; >> + blkif_vdev_t _pad2; /* only for read/write requests */ >> +#ifdef CONFIG_X86_64 >> + uint32_t _pad3; /* offsetof(blkif_req..,u.unknown.id)==8*/ >> +#endif >> + uint64_t id; /* private guest value, echoed in resp */ >> +} __attribute__((__packed__)); >> + >> struct blkif_request { >> uint8_t operation; /* BLKIF_OP_??? */ >> union { >> struct blkif_request_rw rw; >> struct blkif_request_discard discard; >> + struct blkif_request_unknown unknown; >> } u; >> } __attribute__((__packed__)); >> > > ... I wonder whether "unknown" here really is a suitable term. > I'd favor "generic" or "other", as "unknown" suggests we know > _nothing_ about it, which would include the position of the ID > field. 'other' it is then. > Also, we'd need a matching patch for the master copy of the > public header... The header in Xen only has the native structures doesn't have any the union so there's nothing to fix. David _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |