Re: [PATCH 1/2] efivars: Check max_size only if it is non-zero.

From: Richard Weinberger
Date: Thu Apr 04 2013 - 12:12:48 EST


Am 04.04.2013 18:00, schrieb Luck, Tony:
Some (broken?) EFI implementations return always a MaximumVariableSize of 0,
check against max_size only if it is non-zero.

The spec doesn't say that zero has any special meaning - so if an implementation
returns max_size == 0 but lets you set a variable to a size > 0, then I don't think
there is a need for parentheses or a "?" in this commit comment.

Thanks for the clarification.
Yesterday I've looked into the spec, but the >2000 pages hurt my brain. ;-)

But if Linux silently accepts such broken EFI, then there is no feedback loop
to let EFI implementations know that they are broken. In other areas we have
thrown out messages about firmware being broken ... perhaps:

if (max_size == 0)
printk_once("Broken EFI implementation is returning MaxVariableSize=0\n");

would help? After all there probably *is* a maximum size - but EFI isn't telling us what it is.

Fair point. I'll add such a printk() to my patch and resend.

Thanks,
//richard

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/