[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