/* ring full, shall not happen because queue is stopped if full
                 * below
                 */
-               netif_stop_queue(tx->adapter->netdev);
+               netif_stop_subqueue(tx->adapter->netdev, tx->queue_index);
  
 -              spin_unlock_irqrestore(&tx->lock, flags);
 -
                return NETDEV_TX_BUSY;
        }
  
  
        if (tsnep_tx_desc_available(tx) < (MAX_SKB_FRAGS + 1)) {
                /* ring can get full with next frame */
-               netif_stop_queue(tx->adapter->netdev);
+               netif_stop_subqueue(tx->adapter->netdev, tx->queue_index);
        }
  
 -      spin_unlock_irqrestore(&tx->lock, flags);
 -
        return NETDEV_TX_OK;
  }
  
        } while (likely(budget));
  
        if ((tsnep_tx_desc_available(tx) >= ((MAX_SKB_FRAGS + 1) * 2)) &&
-           netif_queue_stopped(tx->adapter->netdev)) {
-               netif_wake_queue(tx->adapter->netdev);
+           netif_tx_queue_stopped(nq)) {
+               netif_tx_wake_queue(nq);
        }
  
 -      spin_unlock_irqrestore(&tx->lock, flags);
 +      __netif_tx_unlock(nq);
  
 -      return (budget != 0);
 +      return budget != 0;
  }
  
  static bool tsnep_tx_pending(struct tsnep_tx *tx)
 
                i = 9;
                break;
        case SCTP_CID_HEARTBEAT_ACK:
 -              pr_debug("SCTP_CID_HEARTBEAT_ACK");
                i = 10;
                break;
-       case SCTP_CID_DATA:
-       case SCTP_CID_SACK:
-               i = 11;
-               break;
        default:
                /* Other chunks like DATA or SACK do not change the state */
 -              pr_debug("Unknown chunk type, Will stay in %s\n",
 -                       sctp_conntrack_names[cur_state]);
 +              pr_debug("Unknown chunk type %d, Will stay in %s\n",
 +                       chunk_type, sctp_conntrack_names[cur_state]);
                return cur_state;
        }
  
  
                if (!sctp_new(ct, skb, sh, dataoff))
                        return -NF_ACCEPT;
-       } else {
-               /* Check the verification tag (Sec 8.5) */
-               if (!test_bit(SCTP_CID_INIT, map) &&
-                   !test_bit(SCTP_CID_SHUTDOWN_COMPLETE, map) &&
-                   !test_bit(SCTP_CID_COOKIE_ECHO, map) &&
-                   !test_bit(SCTP_CID_ABORT, map) &&
-                   !test_bit(SCTP_CID_SHUTDOWN_ACK, map) &&
-                   !test_bit(SCTP_CID_HEARTBEAT, map) &&
-                   !test_bit(SCTP_CID_HEARTBEAT_ACK, map) &&
-                   sh->vtag != ct->proto.sctp.vtag[dir]) {
-                       nf_ct_l4proto_log_invalid(skb, ct, state,
-                                                 "verification tag check failed %x vs %x for dir %d",
-                                                 sh->vtag, ct->proto.sctp.vtag[dir], dir);
-                       goto out;
-               }
+       }
+ 
+       /* Check the verification tag (Sec 8.5) */
+       if (!test_bit(SCTP_CID_INIT, map) &&
+           !test_bit(SCTP_CID_SHUTDOWN_COMPLETE, map) &&
+           !test_bit(SCTP_CID_COOKIE_ECHO, map) &&
+           !test_bit(SCTP_CID_ABORT, map) &&
+           !test_bit(SCTP_CID_SHUTDOWN_ACK, map) &&
+           !test_bit(SCTP_CID_HEARTBEAT, map) &&
+           !test_bit(SCTP_CID_HEARTBEAT_ACK, map) &&
+           sh->vtag != ct->proto.sctp.vtag[dir]) {
 -              pr_debug("Verification tag check failed\n");
++              nf_ct_l4proto_log_invalid(skb, ct, state,
++                                        "verification tag check failed %x vs %x for dir %d",
++                                        sh->vtag, ct->proto.sctp.vtag[dir], dir);
+               goto out;
        }
  
        old_state = new_state = SCTP_CONNTRACK_NONE;