[flashrom] [PATCH 2/3] add check_block_erasers which returns the number of well-defined erasers for a chip

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Fri Jul 1 00:25:38 CEST 2011


Am 30.06.2011 22:37 schrieb Stefan Tauner:
> add count_usable_erasers which returns the number of well-defined erasers for a chip
>
> This can be used in various situations (including one in the upcoming SFDP patch) and
> removes one FIXME in current HEAD. Needed to add a declaration of check_block_eraser.
>
> Signed-off-by: Stefan Tauner <stefan.tauner at student.tuwien.ac.at>
>
> diff --git a/flashrom.c b/flashrom.c
> index 13d398e..10035c4 100644
> --- a/flashrom.c
> +++ b/flashrom.c
> @@ -1818,13 +1830,13 @@ int chip_safety_check(struct flashchip *flash, int force, int read_it, int write
>  	}
>  	if (erase_it || write_it) {
>  		/* Write needs erase. */
> -		if (flash->tested & TEST_BAD_ERASE) {
> +		if (flash->tested & TEST_BAD_ERASE ||
> +		    !count_usable_erasers(flash, 0)) {
>   

Please split that if statement. Allowing --force makes sense for
TEST_BAD_ERASE, but it makes no sense if no erase functions are present.
You can reuse the error message, the compiler/linker will only store the
string once.


>  			msg_cerr("Erase is not working on this chip. ");
>  			if (!force)
>  				return 1;
>  			msg_cerr("Continuing anyway.\n");
>  		}
> -		/* FIXME: Check if at least one erase function exists. */
>  	}
>  	if (write_it) {
>  		if (flash->tested & TEST_BAD_WRITE) {
>   

With the split if statement, this is
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>

Regards,
Carl-Daniel

-- 
http://www.hailfinger.org/





More information about the flashrom mailing list