clang warning: implicit conversion in intel_ddi.c:1481

From: Ozan Alpay
Date: Thu Feb 01 2018 - 12:33:38 EST


Dear Rodrigo Vivi, Ville SyrjÃlÃ,

My name is Ozan Alpay, and I am a student mentored by Lukas Bulwahn. We
intend to use static analysis tools on the kernel source to identify,
analyze and report issues. As a very first step, we are looking into
clang compiler warnings and will then move to more sophisticated tools.

When compiling Linux 4.15 with clang, we have discovered that your commit
2952cd6fb4cc ("drm/i915: Let's use more enum intel_dpll_id pll_id.")
introduced the following warning:

drivers/gpu/drm/i915/intel_ddi.c:1481:30: warning: implicit conversion from enumeration type 'enum port' to different enumeration type 'enum intel_dpll_id' [-Wenum-conversion]
enum intel_dpll_id pll_id = port;

To reproduce it, you can compile Linux 4.15 with clang with this command:

make HOSTCC=clang-5.0 defconfig && make -j32 HOSTCC=clang-5.0 CC=clang-5.0

If you don't have clang installed in your system, you can use this simple
docker setup to compile the kernel with clang:

wget https://raw.githubusercontent.com/bulwahn/linux-kernel-analysis/master/docker/kernel-clang/Dockerfile && \
docker build -t kernel-clang . && \
docker run -v <your kernel source directory>:/linux/ kernel-clang /bin/sh -c "cd linux && make CC=clang-5.0 clean && make HOSTCC=clang-5.0 defconfig && make -j32 HOSTCC=clang-5.0 CC=clang-5.0"

While we were doing our analysis on 4.15, we noticed that you already
resolved this warning on linux-next with your work in commit bb911536f07e
("drm/i915: Eliminate pll->state usage from bxt_calc_pll_link()"). So,
since it is resolved on linux-next and we expect that this commit will be
merged in the merge window for 4.16, there is probably nothing further to
do.

Linux 4.15 is shipped with this clang warning, but we don't see the
crucial need to provide a backport commit to the stable branch for 4.15.
We just wanted to inform you about our analysis of this clang warning.
Ultimately the final call if you would like to address this clang warning
in 4.15 is yours.

Best regards,

Ozan & Lukas