OSDN Git Service

drm/amd/display: Check hpd_gpio for NULL before accessing it
authorHarry Wentland <harry.wentland@amd.com>
Thu, 7 Feb 2019 20:12:35 +0000 (15:12 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 7 Feb 2019 22:22:12 +0000 (17:22 -0500)
dal_gpio_open and dal_gpio_unlock_pin dereference hpd_gpio.
Check for NULL before calling those functions.

Fixes: ac627caf6b9275a ("drm/amd/display: add gpio lock/unlock")
Reported-by: Przemek Socha <soprwa@gmail.com>
CC: Chiawen Huang <chiawen.huang@amd.com>
CC: Tony Cheng <Tony.Cheng@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Tested-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_link.c

index 6d2cef0..7f5a947 100644 (file)
@@ -1127,10 +1127,11 @@ static bool construct(
                link->dc->res_pool->funcs->link_init(link);
 
        link->hpd_gpio = get_hpd_gpio(link->ctx->dc_bios, link->link_id, link->ctx->gpio_service);
-       dal_gpio_open(link->hpd_gpio, GPIO_MODE_INTERRUPT);
-       dal_gpio_unlock_pin(link->hpd_gpio);
-       if (link->hpd_gpio != NULL)
+       if (link->hpd_gpio != NULL) {
+               dal_gpio_open(link->hpd_gpio, GPIO_MODE_INTERRUPT);
+               dal_gpio_unlock_pin(link->hpd_gpio);
                link->irq_source_hpd = dal_irq_get_source(link->hpd_gpio);
+       }
 
        switch (link->link_id.id) {
        case CONNECTOR_ID_HDMI_TYPE_A: