- ah->seq_no = htonl(++x->replay.oseq);
- xfrm_aevent_doreplay(x);
- ahp->icv(ahp, skb, ah->auth_data);
+ ah->seq_no = htonl(XFRM_SKB_CB(skb)->seq);
+
+ spin_lock_bh(&x->lock);
+ err = ah_mac_digest(ahp, skb, ah->auth_data);
+ memcpy(ah->auth_data, ahp->work_icv, ahp->icv_trunc_len);
+ spin_unlock_bh(&x->lock);
+
+ if (err)
+ goto error;