diff options
| -rw-r--r-- | drivers/net/wireless/realtek/rtw89/core.h | 6 | ||||
| -rw-r--r-- | drivers/net/wireless/realtek/rtw89/pci.h | 9 | 
2 files changed, 10 insertions, 5 deletions
| diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h index ecfbcff85047..2841ea84bbc0 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h @@ -6390,9 +6390,13 @@ static inline void rtw89_hci_clear(struct rtw89_dev *rtwdev, struct pci_dev *pde  static inline  struct rtw89_tx_skb_data *RTW89_TX_SKB_CB(struct sk_buff *skb)  { +	/* +	 * This should be used by/after rtw89_hci_tx_write() and before doing +	 * ieee80211_tx_info_clear_status(). +	 */  	struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); -	return (struct rtw89_tx_skb_data *)info->status.status_driver_data; +	return (struct rtw89_tx_skb_data *)info->driver_data;  }  static inline u8 rtw89_read8(struct rtw89_dev *rtwdev, u32 addr) diff --git a/drivers/net/wireless/realtek/rtw89/pci.h b/drivers/net/wireless/realtek/rtw89/pci.h index fc8268eb44db..cb05c83dfd56 100644 --- a/drivers/net/wireless/realtek/rtw89/pci.h +++ b/drivers/net/wireless/realtek/rtw89/pci.h @@ -1634,10 +1634,7 @@ struct rtw89_pci {  static inline struct rtw89_pci_rx_info *RTW89_PCI_RX_SKB_CB(struct sk_buff *skb)  { -	struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); - -	BUILD_BUG_ON(sizeof(struct rtw89_pci_tx_data) > -		     sizeof(info->status.status_driver_data)); +	BUILD_BUG_ON(sizeof(struct rtw89_pci_rx_info) > sizeof(skb->cb));  	return (struct rtw89_pci_rx_info *)skb->cb;  } @@ -1668,6 +1665,10 @@ static inline struct rtw89_pci_tx_data *RTW89_PCI_TX_SKB_CB(struct sk_buff *skb)  {  	struct rtw89_tx_skb_data *data = RTW89_TX_SKB_CB(skb); +	BUILD_BUG_ON(sizeof(struct rtw89_tx_skb_data) + +		     sizeof(struct rtw89_pci_tx_data) > +		     sizeof_field(struct ieee80211_tx_info, driver_data)); +  	return (struct rtw89_pci_tx_data *)data->hci_priv;  } | 
