mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 12:44:11 +08:00
NFC: Handle RSET in SHDLC_CONNECTING state
As queue_work() does not guarantee immediate execution of sm_work it can happen in crossover RSET usecase that connect timer will constantly change the shdlc state from NEGOTIATING to CONNECTING before shdlc has chance to handle incoming frame. Signed-off-by: Waldemar Rymarkiewicz <waldemar.rymarkiewicz@tieto.com> Acked-by: Eric Lapuyade <eric.lapuyade@intel.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
parent
96e324024b
commit
9010e39f50
@ -414,7 +414,8 @@ static void llc_shdlc_rcv_u_frame(struct llc_shdlc *shdlc,
|
||||
|
||||
switch (u_frame_modifier) {
|
||||
case U_FRAME_RSET:
|
||||
if (shdlc->state == SHDLC_NEGOCIATING) {
|
||||
if ((shdlc->state == SHDLC_NEGOCIATING) ||
|
||||
(shdlc->state == SHDLC_CONNECTING)) {
|
||||
/* we sent RSET, but chip wants to negociate */
|
||||
if (skb->len > 0)
|
||||
w = skb->data[0];
|
||||
|
Loading…
Reference in New Issue
Block a user