Fix the following sparse warning in mt76_npu_setup_tc_block_cb routine running rcu_dereference_protected() to get ppe_dev pointer. drivers/net/wireless/mediatek/mt76/npu.c:314:63: warning: incorrect type in argument 1 (different address spaces) drivers/net/wireless/mediatek/mt76/npu.c:314:63: expected struct airoha_ppe_dev *dev drivers/net/wireless/mediatek/mt76/npu.c:314:63: got struct airoha_ppe_dev [noderef] __rcu *ppe_dev Fixes: 62f1347fa5bf6 ("wifi: mt76: Introduce the NPU generic layer") Signed-off-by: Lorenzo Bianconi --- drivers/net/wireless/mediatek/mt76/npu.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/npu.c b/drivers/net/wireless/mediatek/mt76/npu.c index df5cecd05f50366397a25f14092702513049c5d6..ec36975f6dc946f5dbc5ab6029b0574fbc602615 100644 --- a/drivers/net/wireless/mediatek/mt76/npu.c +++ b/drivers/net/wireless/mediatek/mt76/npu.c @@ -304,15 +304,22 @@ static int mt76_npu_setup_tc_block_cb(enum tc_setup_type type, void *type_data, void *cb_priv) { struct mt76_phy *phy = cb_priv; + struct mt76_dev *dev = phy->dev; + struct airoha_ppe_dev *ppe_dev; + int err = -EOPNOTSUPP; if (type != TC_SETUP_CLSFLOWER) return -EOPNOTSUPP; - if (!mt76_ppe_device_active(phy->dev)) - return -EOPNOTSUPP; + mutex_lock(&dev->mutex); + + ppe_dev = rcu_dereference_protected(dev->mmio.ppe_dev, &dev->mutex); + if (ppe_dev) + err = airoha_ppe_dev_setup_tc_block_cb(ppe_dev, type_data); + + mutex_unlock(&dev->mutex); - return airoha_ppe_dev_setup_tc_block_cb(phy->dev->mmio.ppe_dev, - type_data); + return err; } static int mt76_npu_setup_tc_block(struct mt76_phy *phy, --- base-commit: e1ed98b1836e2bf0aba98f9790be4f3c6bca9d0d change-id: 20251123-fix-airoha_ppe_dev-sparse-warning-66c62fdb7f72 Best regards, -- Lorenzo Bianconi