| From 1f3e7dd401d4580b311fe4bb8343abe1b77a45a8 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 29 Jan 2020 20:12:44 +0000 |
| Subject: drm: msm: Fix return type of dsi_mgr_connector_mode_valid for kCFI |
| |
| From: John Stultz <john.stultz@linaro.org> |
| |
| [ Upstream commit 7fd2dfc3694922eb7ace4801b7208cf9f62ebc7d ] |
| |
| I was hitting kCFI crashes when building with clang, and after |
| some digging finally narrowed it down to the |
| dsi_mgr_connector_mode_valid() function being implemented as |
| returning an int, instead of an enum drm_mode_status. |
| |
| This patch fixes it, and appeases the opaque word of the kCFI |
| gods (seriously, clang inlining everything makes the kCFI |
| backtraces only really rough estimates of where things went |
| wrong). |
| |
| Thanks as always to Sami for his help narrowing this down. |
| |
| Cc: Rob Clark <robdclark@gmail.com> |
| Cc: Sean Paul <sean@poorly.run> |
| Cc: Sami Tolvanen <samitolvanen@google.com> |
| Cc: Todd Kjos <tkjos@google.com> |
| Cc: Alistair Delva <adelva@google.com> |
| Cc: Amit Pundir <amit.pundir@linaro.org> |
| Cc: Sumit Semwal <sumit.semwal@linaro.org> |
| Cc: freedreno@lists.freedesktop.org |
| Cc: clang-built-linux@googlegroups.com |
| Signed-off-by: John Stultz <john.stultz@linaro.org> |
| Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> |
| Tested-by: Amit Pundir <amit.pundir@linaro.org> |
| Signed-off-by: Rob Clark <robdclark@chromium.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/gpu/drm/msm/dsi/dsi_manager.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c |
| index 271aa7bbca925..355a60b4a536f 100644 |
| --- a/drivers/gpu/drm/msm/dsi/dsi_manager.c |
| +++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c |
| @@ -336,7 +336,7 @@ static int dsi_mgr_connector_get_modes(struct drm_connector *connector) |
| return num; |
| } |
| |
| -static int dsi_mgr_connector_mode_valid(struct drm_connector *connector, |
| +static enum drm_mode_status dsi_mgr_connector_mode_valid(struct drm_connector *connector, |
| struct drm_display_mode *mode) |
| { |
| int id = dsi_mgr_connector_get_id(connector); |
| -- |
| 2.20.1 |
| |