* Otherwise pairwise key must be set */
                if (memcmp(macaddr, arvif->vif->addr, ETH_ALEN))
                        arg.key_flags = WMI_KEY_PAIRWISE;
+ 
+               if (def_idx)
+                       arg.key_flags |= WMI_KEY_TX_USAGE;
                break;
 +      case WLAN_CIPHER_SUITE_AES_CMAC:
 +              /* this one needs to be done in software */
 +              return 1;
        default:
                ath10k_warn(ar, "cipher %d is not supported\n", key->cipher);
                return -EOPNOTSUPP;
 
                        rtlpriv->enter_ps = false;
                        schedule_work(&rtlpriv->works.lps_change_work);
                }
- end:
 +              skb = new_skb;
 +no_new:
                if (rtlpriv->use_new_trx_flow) {
 -                      _rtl_pci_init_one_rxdesc(hw, (u8 *)buffer_desc,
 +                      _rtl_pci_init_one_rxdesc(hw, skb, (u8 *)buffer_desc,
                                                 rxring_idx,
 -                                             rtlpci->rx_ring[rxring_idx].idx);
 +                                               rtlpci->rx_ring[rxring_idx].idx);
                } else {
 -                      _rtl_pci_init_one_rxdesc(hw, (u8 *)pdesc, rxring_idx,
 +                      _rtl_pci_init_one_rxdesc(hw, skb, (u8 *)pdesc,
 +                                               rxring_idx,
                                                 rtlpci->rx_ring[rxring_idx].idx);
 -
                        if (rtlpci->rx_ring[rxring_idx].idx ==
                            rtlpci->rxringcount - 1)
                                rtlpriv->cfg->ops->set_desc(hw, (u8 *)pdesc,