]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/i915/display: PORT_NONE is not valid
authorJonathan Cavitt <jonathan.cavitt@intel.com>
Fri, 23 Jan 2026 15:21:22 +0000 (15:21 +0000)
committerJani Nikula <jani.nikula@intel.com>
Tue, 17 Mar 2026 09:19:11 +0000 (11:19 +0200)
Static analysis issue:

In assert_port_valid, add a check to ensure port != PORT_NONE, as that
is not a valid port.  The check must be explicit to prevent a bad bit
shift operation in the general case via short-circuiting.  It's not
likely this will ever come up in a real use case, but it's at least
worth guarding against.

It would probably also be pertinent to modify the behavior of the
port_name function to correctly print PORT_NONE in this case, as
currently the port would be reported as 'port @' by the debugger.  But
that should be done separately, and given port_name is mostly just a
debug printing helper function anyways, fixing it is a low priority.

v2:
- Conditional check was backwards.  Fix it.  (Jani)

Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patch.msgid.link/20260123152121.7042-2-jonathan.cavitt@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_display.c

index b18ce0c36a6497d0e4a271ad6077a1508a98d42d..ee501009a251f18c1c14b6df5c267b7f761871ab 100644 (file)
@@ -7890,7 +7890,8 @@ static bool intel_ddi_crt_present(struct intel_display *display)
 
 bool assert_port_valid(struct intel_display *display, enum port port)
 {
-       return !drm_WARN(display->drm, !(DISPLAY_RUNTIME_INFO(display)->port_mask & BIT(port)),
+       return !drm_WARN(display->drm,
+                        !(port >= 0 && DISPLAY_RUNTIME_INFO(display)->port_mask & BIT(port)),
                         "Platform does not support port %c\n", port_name(port));
 }