Fix returned data in case of command TPDU

When Lc>0 (command TPDU), our response always copied the command
data in front of the response (which is a SW of 2 bytes in this case).

This of course confuses the hell out of users.  The response to a Lc>0
TPDU should be just the two-bytes status word.

Introduce the use of msgb->l4h for the point in the buffer from where
we receive data from the card.  all bytes before l4h are transmitted
to the card.

Change-Id: Ie3fc7437d39dc330b9f2b7d7960ad2560b6be4b7
diff --git a/ccid_common/ccid_slot_fsm.c b/ccid_common/ccid_slot_fsm.c
index 747fef3..4bd1b0d 100644
--- a/ccid_common/ccid_slot_fsm.c
+++ b/ccid_common/ccid_slot_fsm.c
@@ -172,7 +172,7 @@
 		tpdu = data;
 		LOGPCS(cs, LOGL_DEBUG, "%s(event=%d, data=%s)\n", __func__, event,
 			msgb_hexdump(tpdu));
-		resp = ccid_gen_data_block(cs, ss->seq, CCID_CMD_STATUS_OK, 0, msgb_l2(tpdu), msgb_l2len(tpdu));
+		resp = ccid_gen_data_block(cs, ss->seq, CCID_CMD_STATUS_OK, 0, msgb_l4(tpdu), msgb_l4len(tpdu));
 		ccid_slot_send_unbusy(cs, resp);
 		msgb_free(tpdu);
 		cs->event = 0;