mirror of https://gitee.com/openkylin/linux.git
mt76: move mt76_insert_ccmp_hdr in mt76-module
Move mt7615_insert_ccmp_hdr in mac80211.c and rename it in mt76_insert_ccmp_hdr since it is shared between mt7603 and mt7615 drivers Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
5c280ae767
commit
eadfd98f40
|
@ -820,3 +820,26 @@ mt76_set_tim(struct ieee80211_hw *hw, struct ieee80211_sta *sta, bool set)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(mt76_set_tim);
|
EXPORT_SYMBOL_GPL(mt76_set_tim);
|
||||||
|
|
||||||
|
void mt76_insert_ccmp_hdr(struct sk_buff *skb, u8 key_id)
|
||||||
|
{
|
||||||
|
struct mt76_rx_status *status = (struct mt76_rx_status *)skb->cb;
|
||||||
|
int hdr_len = ieee80211_get_hdrlen_from_skb(skb);
|
||||||
|
u8 *hdr, *pn = status->iv;
|
||||||
|
|
||||||
|
__skb_push(skb, 8);
|
||||||
|
memmove(skb->data, skb->data + 8, hdr_len);
|
||||||
|
hdr = skb->data + hdr_len;
|
||||||
|
|
||||||
|
hdr[0] = pn[5];
|
||||||
|
hdr[1] = pn[4];
|
||||||
|
hdr[2] = 0;
|
||||||
|
hdr[3] = 0x20 | (key_id << 6);
|
||||||
|
hdr[4] = pn[3];
|
||||||
|
hdr[5] = pn[2];
|
||||||
|
hdr[6] = pn[1];
|
||||||
|
hdr[7] = pn[0];
|
||||||
|
|
||||||
|
status->flag &= ~RX_FLAG_IV_STRIPPED;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(mt76_insert_ccmp_hdr);
|
||||||
|
|
|
@ -759,6 +759,7 @@ void mt76_csa_check(struct mt76_dev *dev);
|
||||||
void mt76_csa_finish(struct mt76_dev *dev);
|
void mt76_csa_finish(struct mt76_dev *dev);
|
||||||
|
|
||||||
int mt76_set_tim(struct ieee80211_hw *hw, struct ieee80211_sta *sta, bool set);
|
int mt76_set_tim(struct ieee80211_hw *hw, struct ieee80211_sta *sta, bool set);
|
||||||
|
void mt76_insert_ccmp_hdr(struct sk_buff *skb, u8 key_id);
|
||||||
|
|
||||||
/* internal */
|
/* internal */
|
||||||
void mt76_tx_free(struct mt76_dev *dev);
|
void mt76_tx_free(struct mt76_dev *dev);
|
||||||
|
|
|
@ -418,30 +418,6 @@ mt7603_rx_get_wcid(struct mt7603_dev *dev, u8 idx, bool unicast)
|
||||||
return &sta->vif->sta.wcid;
|
return &sta->vif->sta.wcid;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
mt7603_insert_ccmp_hdr(struct sk_buff *skb, u8 key_id)
|
|
||||||
{
|
|
||||||
struct mt76_rx_status *status = (struct mt76_rx_status *)skb->cb;
|
|
||||||
int hdr_len = ieee80211_get_hdrlen_from_skb(skb);
|
|
||||||
u8 *pn = status->iv;
|
|
||||||
u8 *hdr;
|
|
||||||
|
|
||||||
__skb_push(skb, 8);
|
|
||||||
memmove(skb->data, skb->data + 8, hdr_len);
|
|
||||||
hdr = skb->data + hdr_len;
|
|
||||||
|
|
||||||
hdr[0] = pn[5];
|
|
||||||
hdr[1] = pn[4];
|
|
||||||
hdr[2] = 0;
|
|
||||||
hdr[3] = 0x20 | (key_id << 6);
|
|
||||||
hdr[4] = pn[3];
|
|
||||||
hdr[5] = pn[2];
|
|
||||||
hdr[6] = pn[1];
|
|
||||||
hdr[7] = pn[0];
|
|
||||||
|
|
||||||
status->flag &= ~RX_FLAG_IV_STRIPPED;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
int
|
||||||
mt7603_mac_fill_rx(struct mt7603_dev *dev, struct sk_buff *skb)
|
mt7603_mac_fill_rx(struct mt7603_dev *dev, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
|
@ -580,7 +556,7 @@ mt7603_mac_fill_rx(struct mt7603_dev *dev, struct sk_buff *skb)
|
||||||
if (insert_ccmp_hdr) {
|
if (insert_ccmp_hdr) {
|
||||||
u8 key_id = FIELD_GET(MT_RXD1_NORMAL_KEY_ID, rxd1);
|
u8 key_id = FIELD_GET(MT_RXD1_NORMAL_KEY_ID, rxd1);
|
||||||
|
|
||||||
mt7603_insert_ccmp_hdr(skb, key_id);
|
mt76_insert_ccmp_hdr(skb, key_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
hdr = (struct ieee80211_hdr *)skb->data;
|
hdr = (struct ieee80211_hdr *)skb->data;
|
||||||
|
|
|
@ -61,29 +61,6 @@ static int mt7615_get_rate(struct mt7615_dev *dev,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mt7615_insert_ccmp_hdr(struct sk_buff *skb, u8 key_id)
|
|
||||||
{
|
|
||||||
struct mt76_rx_status *status = (struct mt76_rx_status *)skb->cb;
|
|
||||||
int hdr_len = ieee80211_get_hdrlen_from_skb(skb);
|
|
||||||
u8 *pn = status->iv;
|
|
||||||
u8 *hdr;
|
|
||||||
|
|
||||||
__skb_push(skb, 8);
|
|
||||||
memmove(skb->data, skb->data + 8, hdr_len);
|
|
||||||
hdr = skb->data + hdr_len;
|
|
||||||
|
|
||||||
hdr[0] = pn[5];
|
|
||||||
hdr[1] = pn[4];
|
|
||||||
hdr[2] = 0;
|
|
||||||
hdr[3] = 0x20 | (key_id << 6);
|
|
||||||
hdr[4] = pn[3];
|
|
||||||
hdr[5] = pn[2];
|
|
||||||
hdr[6] = pn[1];
|
|
||||||
hdr[7] = pn[0];
|
|
||||||
|
|
||||||
status->flag &= ~RX_FLAG_IV_STRIPPED;
|
|
||||||
}
|
|
||||||
|
|
||||||
int mt7615_mac_fill_rx(struct mt7615_dev *dev, struct sk_buff *skb)
|
int mt7615_mac_fill_rx(struct mt7615_dev *dev, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
struct mt76_rx_status *status = (struct mt76_rx_status *)skb->cb;
|
struct mt76_rx_status *status = (struct mt76_rx_status *)skb->cb;
|
||||||
|
@ -228,7 +205,7 @@ int mt7615_mac_fill_rx(struct mt7615_dev *dev, struct sk_buff *skb)
|
||||||
if (insert_ccmp_hdr) {
|
if (insert_ccmp_hdr) {
|
||||||
u8 key_id = FIELD_GET(MT_RXD1_NORMAL_KEY_ID, rxd1);
|
u8 key_id = FIELD_GET(MT_RXD1_NORMAL_KEY_ID, rxd1);
|
||||||
|
|
||||||
mt7615_insert_ccmp_hdr(skb, key_id);
|
mt76_insert_ccmp_hdr(skb, key_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
hdr = (struct ieee80211_hdr *)skb->data;
|
hdr = (struct ieee80211_hdr *)skb->data;
|
||||||
|
|
Loading…
Reference in New Issue