Change in osmo-ccid-firmware[master]: iso7816_fsm: ignore RX_SINGLE events during transmit

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.org
Thu Sep 3 08:20:02 UTC 2020


laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/19948 )

Change subject: iso7816_fsm: ignore RX_SINGLE events during transmit
......................................................................

iso7816_fsm: ignore RX_SINGLE events during transmit

When logging is enabled, we get a lot of LOGL_ERROR events
about RX_SINGLE events not being permitted.  This is not very
useful in debugging, so suppress those error messages.

Change-Id: I7aec5fb2eaa76076e1bd0c6b8e8d09dc840c3630
---
M ccid_common/iso7816_fsm.c
1 file changed, 16 insertions(+), 4 deletions(-)

Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved



diff --git a/ccid_common/iso7816_fsm.c b/ccid_common/iso7816_fsm.c
index 059950f..3e78fc8 100644
--- a/ccid_common/iso7816_fsm.c
+++ b/ccid_common/iso7816_fsm.c
@@ -417,6 +417,8 @@
 	struct iso7816_3_priv *ip = get_iso7816_3_priv(fi);
 	OSMO_ASSERT(fi->fsm == &iso7816_3_fsm);
 	switch (event) {
+	case ISO7816_E_RX_SINGLE:
+		return;
 	case ISO7816_E_TX_COMPL:
 		/* Rx of single byte is already enabled by previous card_uart_tx() call */
 		osmo_fsm_inst_state_chg(fi, ISO7816_S_IN_PPS_RSP, 0, 0);
@@ -517,7 +519,8 @@
 		.name = "WAIT_PPS_RESP",
 		.in_event_mask =	S(ISO7816_E_TX_COMPL) |
 					S(ISO7816_E_TX_ERR_IND) |
-					S(ISO7816_E_WTIME_EXP),
+					S(ISO7816_E_WTIME_EXP) |
+					S(ISO7816_E_RX_SINGLE),
 		.out_state_mask =	S(ISO7816_S_RESET) |
 					S(ISO7816_S_WAIT_TPDU) |
 					S(ISO7816_S_WAIT_PPS_RSP) |
@@ -1218,6 +1221,8 @@
 	struct iso7816_3_priv *ip = get_iso7816_3_priv(parent_fi);
 	OSMO_ASSERT(fi->fsm == &tpdu_fsm);
 	switch (event) {
+	case ISO7816_E_RX_SINGLE:
+		return;
 	case ISO7816_E_TX_COMPL:
 
 		card_uart_set_rx_threshold(ip->uart, 1);
@@ -1307,6 +1312,8 @@
 	struct iso7816_3_priv *ip = get_iso7816_3_priv(parent_fi);
 
 	switch (event) {
+	case ISO7816_E_RX_SINGLE:
+		return;
 	case ISO7816_E_TX_COMPL:
 		card_uart_set_rx_threshold(ip->uart, 1);
 		card_uart_ctrl(ip->uart, CUART_CTL_RX_TIMER_HINT, 1);
@@ -1325,6 +1332,8 @@
 	struct iso7816_3_priv *ip = get_iso7816_3_priv(parent_fi);
 
 	switch (event) {
+	case ISO7816_E_RX_SINGLE:
+		return;
 	case ISO7816_E_TX_COMPL:
 		tfp->tpdu->l3h += 1;
 		card_uart_set_rx_threshold(ip->uart, 1);
@@ -1484,7 +1493,8 @@
 	},
 	[TPDU_S_TX_HDR] = {
 		.name = "TX_HDR",
-		.in_event_mask = S(ISO7816_E_TX_COMPL),
+		.in_event_mask = S(ISO7816_E_TX_COMPL) |
+				 S(ISO7816_E_RX_SINGLE),
 		.out_state_mask = S(TPDU_S_INIT) |
 				  S(TPDU_S_PROCEDURE),
 		.action = tpdu_s_tx_hdr_action,
@@ -1503,14 +1513,16 @@
 	},
 	[TPDU_S_TX_REMAINING] = {
 		.name = "TX_REMAINING",
-		.in_event_mask = S(ISO7816_E_TX_COMPL),
+		.in_event_mask = S(ISO7816_E_TX_COMPL) |
+				 S(ISO7816_E_RX_SINGLE),
 		.out_state_mask = S(TPDU_S_INIT) |
 				  S(TPDU_S_SW1),
 		.action = tpdu_s_tx_remaining_action,
 	},
 	[TPDU_S_TX_SINGLE] = {
 		.name = "TX_SINGLE",
-		.in_event_mask = S(ISO7816_E_TX_COMPL),
+		.in_event_mask = S(ISO7816_E_TX_COMPL) |
+				 S(ISO7816_E_RX_SINGLE),
 		.out_state_mask = S(TPDU_S_INIT) |
 				  S(TPDU_S_PROCEDURE),
 		.action = tpdu_s_tx_single_action,

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/19948
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ccid-firmware
Gerrit-Branch: master
Gerrit-Change-Id: I7aec5fb2eaa76076e1bd0c6b8e8d09dc840c3630
Gerrit-Change-Number: 19948
Gerrit-PatchSet: 3
Gerrit-Owner: laforge <laforge at osmocom.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200903/76ec94fc/attachment.htm>


More information about the gerrit-log mailing list