[Skiboot] [PATCH] libflash/blocklevel: Allow double ecc protecting a region
cyril.bur at au1.ibm.com
Thu Jul 14 09:33:10 AEST 2016
On Tue, 12 Jul 2016 17:47:29 +1000
Stewart Smith <stewart at linux.vnet.ibm.com> wrote:
> Stewart Smith <stewart at linux.vnet.ibm.com> writes:
> > Cyril Bur <cyril.bur at au1.ibm.com> writes:
> >> Currently the policy for calling ECC protecting a range at the
> >> blocklevel layer is that the requested region be completely
> >> unprotected otherwise the call will return an error. It turns out that
> >> duplicate calls to ffs_init() with true as the last parameter (for the
> >> same blocklevel structure) will cause duplicate attempts to
> >> ecc_protect() ranges.
> >> Change the policy within blocklevel to allow duplicate protecting.
> >> In fact the new policy almost guarantees no failure (baring something
> >> odd like malloc() failing). It will detect that the range is currently
> >> already fully protected and do nothing, detect that part of the range
> >> is or is not and extend the existing range or detect that a range fits
> >> perfectly between two ranges in which case it will merge the ranges.
> >> Signed-off-by: Cyril Bur <cyril.bur at au1.ibm.com>
> >> ---
> >> Fixes issue exposed by Alistairs patch: 74ba834 ("flash: Use
> >> blocklevel to do ECC reads")
> > Thanks, 74ba834 reapplied and this patch also applied to master as of
> > 0a602c35e5f42aa18ee769cbd6b356ea480eb0df
> Actually, no.
> Just noticed make check failing just before I pushed:
> make -j20 libflash/test/test-blocklevel-check
> [ HOSTCC ] libflash/test/test-blocklevel.c
> [ RUN-TEST ] libflash/test/test-blocklevel
> Shouldn't have succeeded blocklevel_ecc_protect(0x100, 0x1000)
> /home/stewart/skiboot/libflash/test/Makefile.check:17: recipe for target
> 'libflash/test/test-blocklevel-check' failed
Oh wow sorry about that Stewart! I suspect I know whats happened here...
> So I haven't pushed that merge and reapply, and instead will go and make
> 'make check' output a bit saner.
More information about the Skiboot