Hi Jonas, On Thu, 2018-03-01 at 14:27 +0100, Jonas Rabenstein wrote: > The length must be given as bytes and not as 4 bit tuples. > > Signed-off-by: Jonas Rabenstein <jonas.rabenstein@xxxxxxxxxxx-erlange > n.de> > --- > block/sed-opal.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/block/sed-opal.c b/block/sed-opal.c > index 36842bfa572e..d5f565e1557a 100644 > --- a/block/sed-opal.c > +++ b/block/sed-opal.c > @@ -562,7 +562,7 @@ static void add_token_u64(int *err, struct > opal_dev *cmd, u64 number) > } > > msb = fls(number); > - len = DIV_ROUND_UP(msb, 4); > + len = DIV_ROUND_UP(msb, 8); This change looks partially correct, but I believe we should be doing fls64() on 'number' as well. It looks like it currently coincidentally works with u64 numbers falling in 32-bit ranges. > > if (cmd->pos >= IO_BUFFER_LENGTH - len - 1) { > pr_debug("Error adding u64: end of buffer.\n");
Attachment:
smime.p7s
Description: S/MIME cryptographic signature