diff --git a/src/avr.c b/src/avr.c index cad129fe..c0296764 100644 --- a/src/avr.c +++ b/src/avr.c @@ -471,7 +471,7 @@ int avr_read_mem(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, con if (mem_is_signature(mem)) { if (pgm->read_sig_bytes) { int rc = pgm->read_sig_bytes(pgm, p, mem); - if (rc < 0) + if (rc < 0 && rc != LIBAVRDUDE_EXIT) led_set(pgm, LED_ERR); led_clr(pgm, LED_PGM); return rc; @@ -1236,13 +1236,13 @@ int avr_signature(const PROGRAMMER *pgm, const AVRPART *p) { if(verbose > 1) report_progress(0, 1, "Reading"); rc = avr_read(pgm, p, "signature", 0); - if (rc < LIBAVRDUDE_SUCCESS) { + if (rc < LIBAVRDUDE_SUCCESS && rc != LIBAVRDUDE_EXIT) { pmsg_error("unable to read signature data for part %s, rc=%d\n", p->desc, rc); return rc; } report_progress(1, 1, NULL); - return LIBAVRDUDE_SUCCESS; + return rc < LIBAVRDUDE_SUCCESS? LIBAVRDUDE_EXIT: LIBAVRDUDE_SUCCESS; }