[Skiboot] [PATCH] opal-gard: Account for ECC size when clearing partition

Stewart Smith stewart at linux.ibm.com
Tue May 21 13:08:07 AEST 2019

"Oliver O'Halloran" <oohall at gmail.com> writes:
> When 'opal-gard clear all' is run, it works by erasing the GUARD then
> using blockevel_smart_write() to write nothing to the partition. This
> second write call is needed because we rely on libflash to set the ECC
> bits appropriately when the partition contained ECCed data.
> The API for this is a little odd with the caller specifying how much
> actual data to write, and libflash writing size + size/8 bytes
> since there is one additional ECC byte for every eight bytes of data.
> We currently do not account for the extra space consumed by the ECC data
> in reset_partition() which is used to handle the 'clear all' command.
> Which results in the paritition following the GUARD partition being
> partially overwritten when the command is used. This patch fixes the
> problem by reducing the length we would normally write by the number
> of ECC bytes required.
> Signed-off-by: Oliver O'Halloran <oohall at gmail.com>
> ---
>  external/gard/gard.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

Merged to master as of 27d1ef2ebabb07a1958b94049cac3d90a101c3d5, and
should no doubt also go to stable.

Stewart Smith
OPAL Architect, IBM.

More information about the Skiboot mailing list