platform_get_irq_byname() will return a negative value if an error
happens, so it should be checked and not just passed directly into
devm_request_threaded_irq() hoping all will be ok.

Cc: Maxime Ripard <[email protected]>
Cc: Dave Stevenson <[email protected]>
Cc: "MaĆ­ra Canal" <[email protected]>
Cc: Raspberry Pi Kernel Maintenance <[email protected]>
Cc: Maarten Lankhorst <[email protected]>
Cc: Thomas Zimmermann <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Simona Vetter <[email protected]>
Cc: stable <[email protected]>
Assisted-by: gkh_clanker_2000
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
 drivers/gpu/drm/vc4/vc4_hdmi.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index fda214b5a466..ac1c484c8a89 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -2449,17 +2449,22 @@ static int vc4_hdmi_hotplug_init(struct vc4_hdmi 
*vc4_hdmi)
        int ret;
 
        if (vc4_hdmi->variant->external_irq_controller) {
-               unsigned int hpd_con = platform_get_irq_byname(pdev, 
"hpd-connected");
-               unsigned int hpd_rm = platform_get_irq_byname(pdev, 
"hpd-removed");
+               int hpd = platform_get_irq_byname(pdev, "hpd-connected");
+               if (hpd < 0)
+                       return hpd;
 
-               ret = devm_request_threaded_irq(&pdev->dev, hpd_con,
+               ret = devm_request_threaded_irq(&pdev->dev, hpd,
                                                NULL,
                                                vc4_hdmi_hpd_irq_thread, 
IRQF_ONESHOT,
                                                "vc4 hdmi hpd connected", 
vc4_hdmi);
                if (ret)
                        return ret;
 
-               ret = devm_request_threaded_irq(&pdev->dev, hpd_rm,
+               hpd = platform_get_irq_byname(pdev, "hpd-removed");
+               if (hpd < 0)
+                       return hpd;
+
+               ret = devm_request_threaded_irq(&pdev->dev, hpd,
                                                NULL,
                                                vc4_hdmi_hpd_irq_thread, 
IRQF_ONESHOT,
                                                "vc4 hdmi hpd disconnected", 
vc4_hdmi);
-- 
2.53.0

Reply via email to