We currently assume that a MI response will be a multiple of four bytes
in length. However, this may not be the case: for example, a Read MI
Data (Controller List) with an even number of controllers, and with an
unpadded response, may only be aligned on a two-byte boundary.
The NVMe-MI spec states, for the MIC field:
This field is byte aligned.
So, relax the requirement for alignment on the response sizes, and the
expected response size values. We only do this for the mi commands; the
Admin commands still require an aligned value for DLEN.
In doing so, drop the explicit alignment tests, and add a couple that
check that the Controller List example above will work.
Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au> Reported-by: Klaus Jensen <its@irrelevant.dk>