> From: Sean Wang > > The longer event such as the event for mcu_get_nic_capability would hold > the data in paged fragment skb for the SDIO device so we turn the skb to > be linearized skb before accessing it to reuse the same event parser > betweem mt7921s and mt7921e. > > Tested-by: Deren Wu > Signed-off-by: Sean Wang > --- > drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c > index 866b8797f16e..863781895652 100644 > --- a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c > +++ b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c > @@ -456,7 +456,14 @@ mt7921_mcu_rx_unsolicited_event(struct mt7921_dev *dev, struct sk_buff *skb) > > void mt7921_mcu_rx_event(struct mt7921_dev *dev, struct sk_buff *skb) > { > - struct mt7921_mcu_rxd *rxd = (struct mt7921_mcu_rxd *)skb->data; > + struct mt7921_mcu_rxd *rxd; > + int ret; > + > + ret = skb_linearize(skb); nit: we do not need ret variable here: if (skb_linearize(skb)) return; > + if (ret) > + return; > + > + rxd = (struct mt7921_mcu_rxd *)skb->data; > > if (rxd->eid == 0x6) { > mt76_mcu_rx_event(&dev->mt76, skb); > -- > 2.25.1 >