status2errno(rpl->status));
        connect_reply_upcall(ep, status2errno(rpl->status));
        state_set(&ep->com, DEAD);
-       if (ep->com.tdev->type == T3B && act_open_has_tid(rpl->status))
+       if (ep->com.tdev->type != T3A && act_open_has_tid(rpl->status))
                release_tid(ep->com.tdev, GET_TID(rpl), NULL);
        cxgb3_free_atid(ep->com.tdev, ep->atid);
        dst_release(ep->dst);
        skb_trim(skb, sizeof(struct cpl_tid_release));
        skb_get(skb);
 
-       if (tdev->type == T3B)
+       if (tdev->type != T3A)
                release_tid(tdev, hwtid, skb);
        else {
                struct cpl_pass_accept_rpl *rpl;
 
        if (err)
                goto err;
 
-       if (udata && t3b_device(rhp)) {
+       if (udata && !t3a_device(rhp)) {
                uresp.pbl_addr = (mhp->attr.pbl_addr -
                                 rhp->rdev.rnic_info.pbl_base) >> 3;
                PDBG("%s user resp pbl_addr 0x%x\n", __FUNCTION__,