This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/16602 ) Change subject: card_emu: Avoid recursive calls to card_set_state() ...................................................................... card_emu: Avoid recursive calls to card_set_state() A function that is called to set the state should not in itself contain logic to issue further state changes. Let's shift the related block out to the end of card_emu_io_statechg(), which is the only source of card_set_state() calls for the WAIT_{POWER,CLK,RST} states anyway. As an added benefit, the block of statements is now also executed if there's no state change - something that was prevented by the "if old == new" state guard at the top of card_set_state(). I believe this may help us to cover more (non-standard) card activation sequences. Change-Id: Ieefa1807099eb234cfd994bca83caaa0dcc919b6 --- M firmware/libcommon/source/card_emu.c 1 file changed, 9 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/02/16602/1 diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index f53b3df..66932af 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -429,13 +429,6 @@ case ISO_S_WAIT_RST: /* disable Rx and Tx of UART */ card_emu_uart_enable(ch->uart_chan, 0); - /* check end activation state (only necessary if the reader to not respect the activation sequence) */ - if (ch->vcc_active && ch->clocked && !ch->in_reset) { - /* enable the TC/ETU counter once reset has been released */ - tc_etu_enable(ch->tc_chan); - /* prepare to send the ATR */ - card_set_state(ch, ISO_S_WAIT_ATR); - } break; case ISO_S_WAIT_ATR: /* Reset to initial Fi / Di ratio */ @@ -1114,6 +1107,15 @@ ch->in_reset = active; break; } + + /* check end activation state (only necessary if the reader to + * not respect the activation sequence) */ + if (ch->vcc_active && ch->clocked && !ch->in_reset) { + /* enable the TC/ETU counter once reset has been released */ + tc_etu_enable(ch->tc_chan); + /* prepare to send the ATR */ + card_set_state(ch, ISO_S_WAIT_ATR); + } } /* User sets a new ATR to be returned during next card reset */ -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/16602 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ieefa1807099eb234cfd994bca83caaa0dcc919b6 Gerrit-Change-Number: 16602 Gerrit-PatchSet: 1 Gerrit-Owner: laforge <laforge at osmocom.org> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20191215/b3c333b0/attachment.htm>