*because hw will nerver use hw_rate
                         *when tcb_desc->use_driver_rate = false
                         *so we never set highest N rate here,
 -                       *and N rate will all be controled by FW
 +                       *and N rate will all be controlled by FW
                         *when tcb_desc->use_driver_rate = false
                         */
-                       if (rtlmac->ht_enable) {
+                       if (sta && (sta->ht_cap.ht_supported)) {
                                tcb_desc->hw_rate = _rtl_get_highest_n_rate(hw);
                        } else {
                                if (rtlmac->mode == WIRELESS_MODE_B) {
 
                }
  
                if (opt == BT_FLUSHABLE_OFF) {
-                       struct l2cap_conn *conn = l2cap_pi(sk)->conn;
+                       struct l2cap_conn *conn = chan->conn;
 -                      /* proceed futher only when we have l2cap_conn and
 +                      /* proceed further only when we have l2cap_conn and
                           No Flush support in the LM */
                        if (!conn || !lmp_no_flush_capable(conn->hcon->hdev)) {
                                err = -EINVAL;