728-v6.1-02-net-ethernet-mtk_eth_wed-add-missing-put_device-in-m.patch 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. From 9d4f20a476ca57e4c9246eb1fa2a61bea2354720 Mon Sep 17 00:00:00 2001
  2. From: Yang Yingliang <[email protected]>
  3. Date: Mon, 17 Oct 2022 11:51:55 +0800
  4. Subject: [PATCH 2/3] net: ethernet: mtk_eth_wed: add missing put_device() in
  5. mtk_wed_add_hw()
  6. After calling get_device() in mtk_wed_add_hw(), in error path, put_device()
  7. needs be called.
  8. Fixes: 804775dfc288 ("net: ethernet: mtk_eth_soc: add support for Wireless Ethernet Dispatch (WED)")
  9. Signed-off-by: Yang Yingliang <[email protected]>
  10. Signed-off-by: David S. Miller <[email protected]>
  11. ---
  12. drivers/net/ethernet/mediatek/mtk_wed.c | 10 ++++++++--
  13. 1 file changed, 8 insertions(+), 2 deletions(-)
  14. --- a/drivers/net/ethernet/mediatek/mtk_wed.c
  15. +++ b/drivers/net/ethernet/mediatek/mtk_wed.c
  16. @@ -1084,11 +1084,11 @@ void mtk_wed_add_hw(struct device_node *
  17. get_device(&pdev->dev);
  18. irq = platform_get_irq(pdev, 0);
  19. if (irq < 0)
  20. - return;
  21. + goto err_put_device;
  22. regs = syscon_regmap_lookup_by_phandle(np, NULL);
  23. if (IS_ERR(regs))
  24. - return;
  25. + goto err_put_device;
  26. rcu_assign_pointer(mtk_soc_wed_ops, &wed_ops);
  27. @@ -1131,8 +1131,14 @@ void mtk_wed_add_hw(struct device_node *
  28. hw_list[index] = hw;
  29. + mutex_unlock(&hw_lock);
  30. +
  31. + return;
  32. +
  33. unlock:
  34. mutex_unlock(&hw_lock);
  35. +err_put_device:
  36. + put_device(&pdev->dev);
  37. }
  38. void mtk_wed_exit(void)