mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 15:11:31 +00:00
net: ethernet: mtk_wed: do not assume offload callbacks are always set
Check if wlan.offload_enable and wlan.offload_disable callbacks are set in mtk_wed_flow_add/mtk_wed_flow_remove since mt7996 will not rely on them. Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Reviewed-by: Simon Horman <horms@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c123e0d30b
commit
01b38de18d
@ -1713,19 +1713,20 @@ mtk_wed_irq_set_mask(struct mtk_wed_device *dev, u32 mask)
|
||||
int mtk_wed_flow_add(int index)
|
||||
{
|
||||
struct mtk_wed_hw *hw = hw_list[index];
|
||||
int ret;
|
||||
int ret = 0;
|
||||
|
||||
if (!hw || !hw->wed_dev)
|
||||
return -ENODEV;
|
||||
mutex_lock(&hw_lock);
|
||||
|
||||
if (!hw || !hw->wed_dev) {
|
||||
ret = -ENODEV;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!hw->wed_dev->wlan.offload_enable)
|
||||
goto out;
|
||||
|
||||
if (hw->num_flows) {
|
||||
hw->num_flows++;
|
||||
return 0;
|
||||
}
|
||||
|
||||
mutex_lock(&hw_lock);
|
||||
if (!hw->wed_dev) {
|
||||
ret = -ENODEV;
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -1744,14 +1745,15 @@ void mtk_wed_flow_remove(int index)
|
||||
{
|
||||
struct mtk_wed_hw *hw = hw_list[index];
|
||||
|
||||
if (!hw)
|
||||
return;
|
||||
mutex_lock(&hw_lock);
|
||||
|
||||
if (!hw || !hw->wed_dev)
|
||||
goto out;
|
||||
|
||||
if (!hw->wed_dev->wlan.offload_disable)
|
||||
goto out;
|
||||
|
||||
if (--hw->num_flows)
|
||||
return;
|
||||
|
||||
mutex_lock(&hw_lock);
|
||||
if (!hw->wed_dev)
|
||||
goto out;
|
||||
|
||||
hw->wed_dev->wlan.offload_disable(hw->wed_dev);
|
||||
|
Loading…
Reference in New Issue
Block a user